JP6933293B2 - 秘密計算装置、秘密計算方法、プログラム、および記録媒体 - Google Patents

秘密計算装置、秘密計算方法、プログラム、および記録媒体 Download PDF

Info

Publication number
JP6933293B2
JP6933293B2 JP2020505736A JP2020505736A JP6933293B2 JP 6933293 B2 JP6933293 B2 JP 6933293B2 JP 2020505736 A JP2020505736 A JP 2020505736A JP 2020505736 A JP2020505736 A JP 2020505736A JP 6933293 B2 JP6933293 B2 JP 6933293B2
Authority
JP
Japan
Prior art keywords
secret
secret sharing
value
calculation
sharing value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020505736A
Other languages
English (en)
Other versions
JPWO2019176520A1 (ja
Inventor
大 五十嵐
大 五十嵐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2019176520A1 publication Critical patent/JPWO2019176520A1/ja
Application granted granted Critical
Publication of JP6933293B2 publication Critical patent/JP6933293B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)

Description

本発明は、秘密計算技術に関し、特に、不正な計算を検知することが可能な秘密計算技術に関する。
α∈{0,1}とα∈{0,1}との排他的論理和α∈{0,1}はα=α+α‐2ααによって計算できる。これを利用するとαとαとα∈{0,1}との排他的論理和β=α(XOR)α(XOR)α∈{0,1}は以下のように計算できる。
α=α+α‐2αα (1)
β=α+α‐2αα (2)
値を秘匿しつつ加算、減算、乗算を行う秘密計算技術が知られている(例えば、非特許文献1等参照)。例えば、α,α,αをそれぞれ秘匿した秘密分散値{α},{α},{α}を用い、秘密計算によって式(1)および式(2)の計算を行うと、α,α,αとの排他的論理和βの秘密分散値{β}を得ることができる。このような秘密計算を複数の秘密計算装置で実行し、それぞれの秘密計算装置で得られた結果を所定個数集めることで排他的論理和βを復元できる。
秘密計算では秘密分散値を用いた計算が行われるため、不正な計算が行われたことを検知することが困難である。特に秘密計算による乗算が不正に行われたことを検知することは困難である。そのため、本来の計算式の秘密計算に加え、当該計算式に乱数を乗じた秘密計算も行い、それらの結果を用いて不正な計算を検知する方法が考えられる。
しかし、定数倍を行う場合を除き、秘密計算で乗算を行う場合には秘密計算装置間での通信が必要となる。そのため、定数倍以外の乗算回数が少ないほど通信量が少なくなる。式(1)および式(2)にそれぞれ乱数rを乗じた値を秘密計算する場合、式(1)の計算のために定数倍以外の乗算を3回行う必要があり(rα,rα,2rαα)、式(2)の計算のために定数倍以外の乗算をさらに1回行う必要がある(rα)。そのため、秘密計算で4つの乗算を行うための通信が必要である。
本発明では、不正な計算を検知することが可能なように3個の値の排他的論理和の秘密計算を行う場合の通信量を削減する。
本発明では、i=0,1,2であり、xの秘密分散値{x}を用いて秘密分散値{s}={x}‐1/2を計算し、秘密分散値{s}を用いた秘密計算によって秘密分散値{y}={4s}+1/2を計算して出力し、乱数rの秘密分散値{r}および秘密分散値{s}を用いた秘密計算によって秘密分散値{y}={4rs}+{r}/2を計算して出力する。
これにより、不正な計算を検知することが可能なように3個の値の排他的論理和の秘密計算を行う場合の通信量を削減できる。
図1は実施形態の秘密計算システムの構成を例示したブロック図である。 図2は実施形態の秘密計算装置の構成を例示したブロック図である。 図3は実施形態の秘密計算方法を説明するためのフロー図である。
以下、本発明の実施形態を説明する。
[概要]
まず実施形態の概要を説明する。実施形態の秘密計算装置では、まず減算部がx∈{0,1}の秘密分散値{x}を用いて秘密分散値{s}={x}‐1/2を計算して出力する。ただし、i=0,1,2である。例えば、減算部は秘密分散値{s}={x}‐1/2 mod qを計算する。ただし、qは正整数である。例えば、qは2以上または3以上の整数(例えば、素数)である。次に、第1排他的論理和演算部が秘密分散値{s}を用いた秘密計算によって秘密分散値
{y}={4s}+1/2 (3)
を計算して出力する。例えば、第1排他的論理和演算部は、秘密分散値{4s}および秘密分散値{s}を用いた秘密計算によって秘密分散値{4s}を得、秘密分散値{4s}および秘密分散値{s}を用いた秘密計算によって秘密分散値{4s}を得る。次に第2排他的論理和演算部が乱数rの秘密分散値{r}および秘密分散値{s}を用いた秘密計算によって秘密分散値
{y}={4rs}+{r}/2 (4)
を計算して出力する。例えば、第2排他的論理和演算部は、秘密分散値{4r}および秘密分散値{s}を用いた秘密計算によって秘密分散値{4rs}を得、秘密分散値{4rs}および秘密分散値{s}を用いた秘密計算によって秘密分散値{4rs}を得、秘密分散値{4rs}および秘密分散値{s}を用いた秘密計算によって秘密分散値{4rs}を得る。なお、秘密計算方式に限定はなく、例えば非特許文献1に記載された方式を用いることができる。上述のようにs,y,yは四則演算が定義された集合の元である。四則演算が定義されているのであれば、どのような集合であってもよい。このような集合の一例は位数pの有限体Fである。pは2以上の整数である。pの例は3以上の整数であり、例えば、pは3以上の素数である。s∈F,y∈F,y∈Fそれぞれの秘密分散値を{s}∈{F},{y}∈{F},{y}∈{F}と表現する。
ここでy=4s+1/2およびs=x‐1/2を満たすが、このようなyはxとxとxとの排他的論理和y=x(XOR)x(XOR)xとなっている。以下にこの真理値表を示す。
Figure 0006933293
すなわち、y=4s+1/2によって、前述した式(1)(2)においてα=x=x+x‐2x、β=y、α=x、α=x、α=xとしたのと同じ結果を得ることができる。ここで、式(1)(2)に従って秘密分散値{y}を計算するために必要な定数倍以外の乗算回数は2回であり({2x},{2xx})、式(1)(2)に従って{y}を計算するために必要な定数倍以外の乗算回数は5回である({rx},{rx},{2rx},{rx},{2rxx})。これに対し、式(3)を用いて秘密分散値{y}を計算するために必要な定数倍以外の乗算回数は2回であり({4s},{4s})、式(4)を用いて{y}を計算するために必要な定数倍以外の乗算回数は3回である({4rs},{4rs},{4rs})。そのため、式(3)(4)を用いて秘密計算を行うことにより、式(1)(2)に従って秘密計算を行う場合に比べて定数倍以外の乗算回数を2回削減できる。秘密計算によって定数倍以外の乗算を行う場合には秘密計算装置間で通信を行う必要がある。そのため、定数倍以外の乗算回数を削減する本方式は式(1)(2)に従って秘密計算を行う場合に比べて通信量を削減できる。
,x,x∈{0,1}がどのような性質の値であるかは本質的ではない。例えば、x,x,x∈{0,1}は、乱数であってもよいし、他の演算結果であってもよいし、入力値であってもよい。秘密分散値のペア{y}{y}をどのような用途に用いるかも本質的ではない。秘密計算によってxとxとxとの排他的論理和y=x(XOR)x(XOR)xの秘密分散値{y}と、この秘密分散値{y}が不正に計算されたことを検知するための秘密分散値{y}とを用いるのであれば、どのような用途に実施形態の手法が適用されてもよい。
例えば、j=0,1,2であり、上述の秘密計算装置が3個の秘密計算装置P,P,Pのいずれかの秘密計算装置Pであり、秘密計算装置Pに対する秘密分散値{x}が{xであり、秘密計算装置Pの乱数取得部が、乱数w∈{0,1}ついてw=w+w+w mod 2を満たす秘密分散値{w} =(w,w(j+1) mod 3)を生成し、減算部が{x}(ただし、i=0,1,2)として{x=(w,0),{x(j+1) mod 3=(0,w(j+1) mod 3),{x(j+2) mod 3=(0,0)を用いて秘密分散値{s}={x}‐1/2を計算し、第1排他的論理和演算部が、当該秘密分散値{s}を用いた秘密計算によって秘密分散値{y}={4s}+1/2を計算し、第2排他的論理和演算部が、秘密分散値{r}および秘密分散値{s}を用いた秘密計算によって秘密分散値{y}={4rs}+{r}/2を計算してもよい。なお、j=0,1,2について{x,{x(j+1) mod 3,{x(j+2) mod 3を列挙すると以下のようになる。
{x=(w,0),{x=(0,0),{x=(0,w
{x=(0,w),{x=(w,0),{x=(0,0)
{x=(0,0),{x=(0,w),{x=(w,0)
,w,w∈{0,1}は(2,3)しきい値秘密分散方式の加法的秘密分散方式(例えば、非特許文献1等参照)に則って乱数wをmod 2上で秘密分散して得られる秘密分散値のサブシェアである。(k,n)しきい値秘密分散方式(「k-of-nしきい値秘密分散方式」ともいう)とは、n個の秘密分散値のうち互いに相違するk個の秘密分散値を用いれば平文を復元できるが、互いに相違するk個未満の秘密分散値からは平文の情報が一切得られない秘密分散方式をいう。ただし、k≦nであり、kおよびnは2以上の整数である。乱数wは各秘密計算装置P(ただし、j=0,1,2)に対して秘匿されているが、各秘密計算装置Pが自ら乱数w∈{0,1}を生成し、各秘密計算装置P(j‐1) mod 3に送信することで、各秘密計算装置Pはサブシェアwおよびw(j+1) mod 3を得ることができる。各秘密計算装置Pが生成した乱数w,w,wに応じて乱数w=w+w+w mod 2が定まる。
{x=(w,0),{x(j+1) mod 3=(0,w(j+1) mod 3),{x(j+2) mod 3=(0,0)であり、s∈F,y∈F,y∈Fである場合、減算部は、w∈{0,1}およびw(j+1) mod 3∈{0,1}を有限体Fの元として扱って秘密分散値{s}を計算する。例えば、有限体Fのすべての元の集合が{φ,…,φp−1}である場合、0を有限体Fの元φと扱い、1を有限体Fの元φと扱って有限体F上で秘密分散値{s}を計算する。{y}は乱数w=w+w+w mod 2を有限体F上で秘密分散した場合に得られる秘密分散値{w}∈{F}となる。すなわち、このような秘密計算装置の処理は、(2,3)しきい値秘密分散方式の加法的秘密分散方式に則って乱数wをmod 2上で秘密分散して得られる秘密分散値{w} を、当該乱数wの有限体F上の秘密分散値{y}∈{F}と秘密分散値{y}∈{F}とのペア(秘密乱数ペア)に変換する処理となる。
上述の{r},{y},{y}をチェックサムとして用いることで{y}が正しく計算されていたかを事後的に検証できる。例えば、{r},{y},{y}を用いた秘密計算によってy=ryが満たされるか否かを表す情報の秘密分散値(例えば、{y=ry})が生成されてもよいし(例えば、国際公開WO2014/112548号公報(参考文献1)等参照)、検証装置が{r},{y},{y}からr,y,yを復元してからy=ryが満たされるか否かが検証されてもよい。後者の場合、検証装置は上述の秘密分散値{y}={4s}+1/2と秘密分散値{y}={4rs}+{r}/2と秘密分散値{r}の入力を受け付け、秘密分散値{y}と秘密分散値{y}と秘密分散値{r}とを復元してy=4s+1/2とy=4rs+r/2とrとを得、rとyとを用いてy’=ryを得、y’=yである場合に検証成功である旨を出力し、y’≠yである場合に検証失敗である旨を出力する。
なお、通常、秘密分散値{y},{y},{r}は互いに同一の秘密分散方式(例えば、加法的秘密分散方式)に則ったものである。しかし、公知手法によって秘密分散値の方式変換が可能であるため(参考文献2〜6等参照)、秘密分散値{y},{y},{r}がすべて互いに同一の秘密分散方式に則ったものでなくてもよい。また、上述のように得られた{y}や{y}が別の方式に則った秘密分散値に変換されてもよい。
参考文献2:Ronald Cramer, Ivan Damgard, and Yuval Ishai, "Share conversion, pseudorandom secret-sharing and applications to secure distributed computing," Theory of Cryptography (2005): 342-362
参考文献3:特開2016−173533号公報
参考文献4:特開2016−173532号公報
参考文献5:特開2016−173531号公報
参考文献6:特開2016−156853号公報
[第1実施形態]
図面を用いて第1実施形態を詳細に説明する。
<構成>
図1に例示するように、実施形態の秘密計算システム1は、N個の秘密計算装置11−0,…,11−(N−1)と検証装置12とを有し、これらはネットワークを通じて通信可能に構成されている。ただし、Nは2以上の整数である。例えば、Nは3以上の整数であり、その一例はN=3である。図2に例示するように、秘密計算装置11−j(ただし、j=0,…,N−1)は、入力部111−jと出力部112−jと記憶部113−jと制御部114−jと減算部116−jと排他的論理和演算部117−j,118−jとを有する。秘密計算装置11−jは、制御部114−jの制御の下で各処理を実行する。秘密計算装置11−jの各部で得られたデータは、逐一、記憶部113−jに格納され、必要に応じて読み出されて他の処理に利用される。
<秘密計算処理>
図3を用いて秘密計算装置11−jが行う秘密計算処理を説明する。秘密分散方式や秘密計算方式の詳細については、例えば、非特許文献1等を参照されたい。
各秘密計算装置11−j(ただし、j=0,…,N−1)の入力部111−jには、有限体F上の乱数r∈Fの秘密分散値{r}∈{F}が入力される。なお、各秘密計算装置11−jに対応する各値γの秘密分散値は互いに相違するが、記載の簡略化の観点から、特に断りのない限り、値γの秘密分散値を単に{γ}と表記する。ただし、各秘密計算装置11−jに対応する秘密分散値であることを明記する場合には、各秘密計算装置11−jに対応する秘密分散値を{γ}と表記することにする。本実施形態では、加法的秘密分散方式に則って有限体F上の乱数rを秘密分散したものを{r}とするが、これは本発明において本質的な事項ではない。本実施形態の秘密分散値{r}は各秘密計算装置11−jの外部で生成されたものである。乱数rの値は各秘密計算装置11−jに秘匿される。例えば、検証装置12が、乱数rの値を各秘密計算装置11−jに知られることなく、乱数rの秘密分散値{r}を生成して各秘密計算装置11−jに送信してもよい。秘密分散値{r}がどこで作成されるかも、本発明において本質的な事項ではない。秘密分散値{r}は各秘密計算装置11−jの記憶部113−jに格納される(ステップS111−j)。
記憶部113−jにはx∈{0,1}の秘密分散値{x}が格納されている(ただし、i=0,1,2)。xはどのような値であってもよい。秘密分散値{x}は、秘密計算装置11−の外部から入力されたものであってもよいし、秘密計算装置11−jの内部で生成されたものであってもよいし、秘密計算装置11−jとその外部の秘密計算装置11−j”(ただし、j”∈{0,…,N−1}、j”≠j)との協力によって生成されたものであってもよい。減算部116−jは、記憶部113−jから秘密分散値{x}を読み込み、当該秘密分散値{x}を用いた秘密計算によって秘密分散値{s}={x}‐1/2を計算して出力する(ステップS116−j)。
排他的論理和演算部117−j(第1排他的論理和演算部)は、減算部116−jから出力された秘密分散値{s}を用い、秘密計算によって秘密分散値{y}={4s}+1/2を計算して出力する。例えば、排他的論理和演算部117−jは、秘密分散値{4s}および秘密分散値{s}を用いた秘密計算によって秘密分散値{4s}を得、秘密分散値{4s}および秘密分散値{s}を用いた秘密計算によって秘密分散値{4s}を得、秘密分散値{4s}および1/2を用いて秘密分散値{y}を得て出力する。これらの秘密計算には秘密計算装置11−0〜11−(N−1)間での通信が必要となる。一方、秘密分散値{4s}の計算には通信は不要である。すなわち、各秘密計算装置1−jの排他的論理和演算部117−jは、通信を行うことなく、秘密分散値{s}を用いて秘密分散値{4s}を計算できる(ステップS117−j)。
排他的論理和演算部118−j(第2排他的論理和演算部)は、減算部116−jから出力された秘密分散値{s}と記憶部113−jから読み出した秘密分散値{r}とを用い、秘密計算によって秘密分散値{y}={4rs}+{r}/2を計算して出力する。例えば、排他的論理和演算部118−jは、秘密分散値{4r}および秘密分散値{s}を用いた秘密計算によって秘密分散値{4rs}を得、秘密分散値{4rs}および秘密分散値{s}を用いた秘密計算によって秘密分散値{4rs}を得、秘密分散値{4rs}および秘密分散値{s}を用いた秘密計算によって秘密分散値{4rs}を得、秘密分散値{4rs}および1/2を用いて秘密分散値{y}を得て出力する。これらの秘密計算には秘密計算装置11−0〜11−(N−1)間での通信が必要となる。一方、秘密分散値{4r}の計算には通信は不要である。すなわち、各排他的論理和演算部117−jの排他的論理和演算部117−jは、通信を行うことなく、秘密分散値{r}を用いて秘密分散値{4r}を計算できる(ステップS118−j)。
秘密分散値{y},{y},{r}は互いに対応付けられて記憶部113−jに格納される(ステップS113−j)。出力部112−jは秘密分散値{y}を出力する(ステップS112−j)。秘密分散値{y}は他の任意の秘密計算に用いられる。
秘密分散値{y}が正当に計算されたことを検証する場合には、秘密分散値{y},{y},{r}が記憶部113−jから読み出され、これらの整合性の検証が行われる。例えば、秘密計算装置11−jが秘密分散値{y},{y},{r}を用いた秘密計算によって秘密分散値{ry‐y}を計算して出力する(参考文献1参照)。秘密計算装置11−jは秘密分散値{ry‐y}を検証装置12に送信する。検証装置12は各秘密計算装置11−jから送られた所定個数以上の秘密分散値{ry‐y}からry‐yを復元し、ry‐y=0の場合に検証合格である旨を出力し、ry‐y≠0の場合に検証失敗である旨を出力する。あるいは、秘密計算装置11−jが秘密分散値{y},{y},{r}を検証装置12に送信する。検証装置12は、各秘密計算装置11−jから送られたそれぞれが所定個数以上の秘密分散値{y},{y},{r}からy,y,rを復元し、ry‐y=0を満たす場合に検証合格である旨を出力し、ry‐y≠0を満たす場合に検証失敗である旨を出力する。
[第2実施形態]
第2実施形態を説明する。本実施形態では、(2,3)しきい値秘密分散方式の加法的秘密分散方式に則って乱数wをmod 2上で秘密分散して得られる秘密分散値{w} を、当該乱数wの有限体F上の秘密分散値{y}∈{F}と秘密分散値{y}∈{F}とのペア(秘密乱数ペア)に変換する処理を説明する。
<構成>
図1に例示するように、実施形態の秘密計算システム2は、3個の秘密計算装置21−0,21−1,21−2と検証装置12とを有し、これらはネットワークを通じて通信可能に構成されている。図2に例示するように、秘密計算装置21−j(ただし、j=0,1,2)は、入力部111−jと出力部112−jと記憶部113−jと制御部114−jと乱数取得部215−jと減算部216−jと排他的論理和演算部117−j,118−jと設定部219−jとを有する。秘密計算装置21−jは、制御部114−jの制御の下で各処理を実行する。秘密計算装置21−jの各部で得られたデータは、逐一、記憶部113−jに格納され、必要に応じて読み出されて他の処理に利用される。
<秘密計算処理>
図3を用いて秘密計算装置21−j(ただし、j=0,1,2)が行う秘密計算処理を説明する。以下では第1実施形態との相違点を中心に説明し、共通する事項については説明を簡略化する。
各秘密計算装置21−jの入力部111−jには、有限体F上の乱数r∈Fの秘密分散値{r}∈{F}が入力される。本実施形態の秘密分散値{r}は、例えば(2,3)しきい値秘密分散方式の加法的秘密分散方式に則った秘密分散値である。秘密分散値{r}は各秘密計算装置21−jの記憶部113−jに格納される(ステップS111−j)。
各秘密計算装置21−jの乱数取得部215−jが、乱数w∈{0,1}ついてw=w+w+w mod 2を満たす秘密分散値{w} =(w,w(j+1) mod 3)を得て出力する。すなわち、乱数取得部215−0は{w} =(w,w)を得、乱数取得部215−1は{w} =(w,w)を得、乱数取得部215−2は{w} =(w,w)を得て出力する。ただし、この処理は乱数wが各秘密計算装置21−jに対して秘匿された状態で行われる。例えば、各乱数取得部215−jが乱数w∈{0,1}を生成し、当該乱数wを出力部112−jから秘密計算装置21−((j‐1) mod 3)に対して送信する。秘密計算装置21−((j+1) mod 3)から送信された乱数w(j+1) mod 3は秘密計算装置21−jの入力部111−jに入力され、乱数取得部215−jに送られる。以上の処理により、乱数取得部215−jは{w} =(w,w(j+1)mod 3 )を得る(ステップS215−j)。
設定部219−jは、秘密分散値{w} =(w,w(j+1) mod 3)のサブシェアw,w(j+1) mod 3∈{0,1}を入力とし、{x=(w,0),{x(j+1) mod 3=(0,w(j+1) mod 3),{x(j+2) mod 3=(0,0)を得て出力する(ステップS219−j)。
減算部216−jには、{x=(w,0),{x(j+1) mod 3=(0,w(j+1) mod 3),{x(j+2) mod 3=(0,0)が{x}(ただし、i=0,1,2)として入力される。すなわち、減算部216−0には{x}={x=(w,0),{x}={x=(0,w),{x}={x=(0,0)が入力される。減算部216−1には{x}={x=(0,0),{x}={x=(w,0),{x}={x=(0,w)が入力される。減算部216−2には{x}={x=(0,w),{x}={x=(0,0),{x}={x=(w,0)入力される。減算部216−jは、入力された{x}を用いて秘密分散値{s}={x}‐1/2∈{F}を計算して出力する。例えば{x}がxをx=xi,0+xi,1+xi,2を満たす3個の秘密分散値(xi,0,xi,1),(xi,1,xi,2),(xi,2,xi,0)に秘密分散したものである場合、秘密分散値(xi,0,xi,1),(xi,1,xi,2),(xi,2,xi,0)のそれぞれに対応する秘密分散値{s}は、例えば(xi,0‐1/2,xi,1),(xi,1,xi,2),(xi,2,xi,0‐1/2)となる。その他、各秘密分散値{s}が、例えば(xi,0‐1/6,xi,1‐1/6),(xi,1‐1/6,xi,2‐1/6),(xi,2‐1/6,xi,0‐1/6)であってもよい。前者の方が高速な処理が可能である。この際、減算部216−jは、w∈{0,1}およびw(j+1) mod 3∈{0,1}を有限体Fの元として扱って秘密分散値{s}を計算する(ステップS21−j)。
排他的論理和演算部117−j(第1排他的論理和演算部)は、減算部216−jから出力された秘密分散値{s}∈{F}を用い、秘密計算によって秘密分散値{y}={4s}+1/2∈{F}を計算して出力する(ステップS117−j)。
排他的論理和演算部118−j(第2排他的論理和演算部)は、減算部116−jから出力された秘密分散値{s}と記憶部113−jから読み出した秘密分散値{r}とを用い、秘密計算によって秘密分散値{y}={4rs}+{r}/2∈{F}を計算して出力する(ステップS118−j)。
秘密分散値{y},{y},{r}は互いに対応付けられて記憶部113−jに格納される(ステップS113−j)。出力部112−jは秘密分散値{y}を出力する(ステップS112−j)。秘密分散値{y}∈{F}は有限体F上の乱数yの秘密分散値である。{y}が他の秘密分散方式に則った秘密分散値(例えば、シャミア秘密分散方式)に変換されて出力されてもよい。
秘密分散値{y}が正当に計算されたことを検証する場合には、秘密分散値{y},{y},{r}が記憶部113−jから読み出され、これらの整合性が検証される。
[変形例等]
なお、本発明は上述の実施形態に限定されるものではない。例えば、上述の実施形態では、各秘密計算装置11−jに乱数r∈Fの秘密分散値{r}が入力された。しかしながら、各秘密計算装置11−jがそれぞれの秘密分散値{r}を生成してもよい。ただし、乱数rは各秘密計算装置11−jに秘匿しなければならない。このような方法はよく知られており、どのような方法が用いられてもよい。例えば、秘密計算装置11−0,…,11−(N−1)が協調して秘密分散値{r}を生成することができる。一例を挙げると、各秘密計算装置11−j’がそれぞれ乱数r jの秘密分散値{r j j ∈[F]を計算して秘密計算装置11−jに送り(ただし、j=0,…,N−1、j’=0,…,N−1かつj’≠j)、各秘密計算装置11−jが秘密分散値{r j ,…,{rN−1 j を用いた秘密計算によって{r}={r+…+rN−1 j を得る。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上記の各装置は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されるのではなく、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
1,2 秘密計算システム
11−j,21−j 秘密計算装置

Claims (8)

  1. i=0,1,2であり、
    ∈{0,1}の秘密分散値{x}を用いて秘密分散値{s}={x}‐1/2を計算する減算部と、
    前記秘密分散値{s}を用いた秘密計算によって秘密分散値{y}={4s}+1/2を計算して出力する第1排他的論理和演算部と、
    乱数rの秘密分散値{r}および前記秘密分散値{s}を用いた秘密計算によって秘密分散値{y}={4rs}+{r}/2を計算して出力する第2排他的論理和演算部と、
    を有する秘密計算装置。
  2. 請求項1の秘密計算装置であって、
    j=0,1,2であり、当該秘密計算装置は3個の秘密計算装置P,P,Pのいずれかの秘密計算装置Pであり、前記秘密計算装置Pに対する前記秘密分散値{x}が{xであり、
    乱数w∈{0,1}ついてw=w+w+w mod 2を満たす秘密分散値{w} =(w,w(j+1)mod 3 )を得る乱数取得部をさらに有し、
    {x=(w,0),{x(j+1) mod 3=(0,w(j+1) mod 3),{x(j+2) mod 3=(0,0)である、秘密計算装置。
  3. 請求項2の秘密計算装置であって、
    前記減算部は、wおよびw(j+1) mod 3を有限体の元として扱って前記秘密分散値{s}を計算し、
    前記秘密分散値{y}は、前記乱数wを前記有限体上で秘密分散した場合に得られる秘密分散値である、秘密計算装置。
  4. 請求項1から3の何れかの秘密計算装置であって、
    前記第1排他的論理和演算部は、秘密分散値{4s}および秘密分散値{s}を用いた秘密計算によって秘密分散値{4s}を得、前記秘密分散値{4s}および秘密分散値{s}を用いた秘密計算によって秘密分散値{4s}を得、
    前記第2排他的論理和演算部は、秘密分散値{4r}および秘密分散値{s}を用いた秘密計算によって秘密分散値{4rs}を得、前記秘密分散値{4rs}および秘密分散値{s}を用いた秘密計算によって秘密分散値{4rs}を得、前記秘密分散値{4rs}および秘密分散値{s}を用いた秘密計算によって秘密分散値{4rs}を得る、秘密計算装置。
  5. 秘密計算装置の秘密計算方法であって、
    i=0,1,2であり、
    減算部が、x∈{0,1}の秘密分散値{x}を用いて秘密分散値{s}={x}‐1/2を計算する減算ステップと、
    第1排他的論理和演算部が、前記秘密分散値{s}を用いた秘密計算によって秘密分散値{y}={4s}+1/2を計算して出力する第1排他的論理和演算ステップと、
    第2排他的論理和演算部が、乱数rの秘密分散値{r}および前記秘密分散値{s}を用いた秘密計算によって秘密分散値{y}={4rs}+{r}/2を計算して出力する第2排他的論理和演算ステップと、
    を有する秘密計算方法。
  6. 請求項5の秘密計算方法であって、
    j=0,1,2であり、前記秘密計算装置は3個の秘密計算装置P,P,Pのいずれかの秘密計算装置Pであり、前記秘密計算装置Pに対する前記秘密分散値{x}が{xであり、
    乱数取得部が、乱数w∈{0,1}ついてw=w+w+w mod 2を満たす秘密分散値{w} =(w,w(j+1) mod 3 )を得る乱数取得ステップをさらに有し、
    {x=(w,0),{x(j+1) mod 3=(0,w(j+1) mod 3),{x(j+2) mod 3=(0,0)である、秘密計算方法。
  7. 請求項1から4のいずれかの秘密計算装置としてコンピュータを機能させるためのプログラム。
  8. 請求項1から4のいずれかの秘密計算装置としてコンピュータを機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
JP2020505736A 2018-03-12 2019-02-26 秘密計算装置、秘密計算方法、プログラム、および記録媒体 Active JP6933293B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018044026 2018-03-12
JP2018044026 2018-03-12
PCT/JP2019/007172 WO2019176520A1 (ja) 2018-03-12 2019-02-26 秘密計算装置、秘密計算方法、プログラム、および記録媒体

Publications (2)

Publication Number Publication Date
JPWO2019176520A1 JPWO2019176520A1 (ja) 2021-02-12
JP6933293B2 true JP6933293B2 (ja) 2021-09-08

Family

ID=67907720

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020505736A Active JP6933293B2 (ja) 2018-03-12 2019-02-26 秘密計算装置、秘密計算方法、プログラム、および記録媒体

Country Status (6)

Country Link
US (1) US20210006393A1 (ja)
EP (1) EP3767608A4 (ja)
JP (1) JP6933293B2 (ja)
CN (1) CN111837170A (ja)
AU (1) AU2019233029B2 (ja)
WO (1) WO2019176520A1 (ja)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4702777B2 (ja) * 2005-04-21 2011-06-15 日本電信電話株式会社 秘匿論理計算方法および装置、並びにプログラム
JP5400705B2 (ja) * 2010-02-24 2014-01-29 日本電信電話株式会社 秘密計算システム、秘密計算方法、計算装置
US9064123B2 (en) * 2011-03-10 2015-06-23 Nippon Telegraph And Telephone Corporation Secure product-sum combination system, computing apparatus, secure product-sum combination method and program therefor
JP6089668B2 (ja) * 2012-12-13 2017-03-08 日本電気株式会社 暗号化処理回路及び復号処理回路とその方法並びにそのプログラム
WO2014112548A1 (ja) 2013-01-17 2014-07-24 日本電信電話株式会社 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム
US10490107B2 (en) * 2014-09-19 2019-11-26 Nec Corporation Secret calculation device, method, recording medium, and secret calculation system
US10950144B2 (en) * 2014-12-26 2021-03-16 Nippon Telegraph And Telephone Corporation Secret falsification detecting system, secret computation apparatus, secret falsification detecting method, and program
JP5889454B1 (ja) 2015-02-23 2016-03-22 日本電信電話株式会社 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム
JP5864004B1 (ja) 2015-03-18 2016-02-17 日本電信電話株式会社 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム
JP5872085B1 (ja) 2015-03-18 2016-03-01 日本電信電話株式会社 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム
JP5872084B1 (ja) 2015-03-18 2016-03-01 日本電信電話株式会社 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム

Also Published As

Publication number Publication date
JPWO2019176520A1 (ja) 2021-02-12
AU2019233029B2 (en) 2021-07-22
CN111837170A (zh) 2020-10-27
AU2019233029A1 (en) 2020-10-01
EP3767608A1 (en) 2021-01-20
WO2019176520A1 (ja) 2019-09-19
US20210006393A1 (en) 2021-01-07
EP3767608A4 (en) 2021-12-08

Similar Documents

Publication Publication Date Title
US11374735B2 (en) Processing apparatus, processing method, storage medium, and encryption processing system
US10083314B2 (en) Secret parallel processing device, secret parallel processing method, and program
JP6629466B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、プログラム
JP6766182B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、プログラム
JP6583970B2 (ja) 秘密乱数合成装置、秘密乱数合成方法、およびプログラム
JP6832013B2 (ja) 処理装置、推論装置、学習装置、処理システム、処理方法、及び処理プログラム
JP7096610B2 (ja) 処理装置、推論装置、学習装置、処理システム、処理方法、及び処理プログラム
WO2016104476A1 (ja) 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム
US10748454B2 (en) Secret computation apparatus, method for the same, and program
US20190229904A1 (en) Secure computation system, secure computation device, secure computation method, and program
JP2016146530A (ja) 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム
JP6053238B2 (ja) 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム
JP6933290B2 (ja) 秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム
JP6933293B2 (ja) 秘密計算装置、秘密計算方法、プログラム、および記録媒体
WO2018008547A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
EP3096308B1 (en) Element replication device, element replication method, and program
WO2013153628A1 (ja) 演算処理システムおよび演算結果認証方法
Ganesan et al. Efficient ml models for practical secure inference
WO2019009180A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、プログラム、および記録媒体
JP6885467B2 (ja) シェア生成装置、シェア変換装置、秘密計算システム、シェア生成方法、シェア変換方法、プログラム、および記録媒体
CN116599662A (zh) 针对弱口令的审计方法及装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200831

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200831

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210720

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210802

R150 Certificate of patent or registration of utility model

Ref document number: 6933293

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150