JP5400705B2 - 秘密計算システム、秘密計算方法、計算装置 - Google Patents
秘密計算システム、秘密計算方法、計算装置 Download PDFInfo
- Publication number
- JP5400705B2 JP5400705B2 JP2010117721A JP2010117721A JP5400705B2 JP 5400705 B2 JP5400705 B2 JP 5400705B2 JP 2010117721 A JP2010117721 A JP 2010117721A JP 2010117721 A JP2010117721 A JP 2010117721A JP 5400705 B2 JP5400705 B2 JP 5400705B2
- Authority
- JP
- Japan
- Prior art keywords
- fragment
- computing device
- unit
- calculation
- numerical 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Description
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
b1=b22+b23
b2=(b21,b22)
b3=(b21,b23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ、第1要素b21,第2要素b22,第3要素b23はB=b21+b22+b23を満たす任意の数値の組合せ
の関係を有し、計算装置Xとして機能する計算装置が第1断片を記録し、計算装置Yとして機能する計算装置が第2断片を記録し、計算装置Zとして機能する計算装置が第3断片を記録する。
c1=a1+b1
のように求める第1加算部を有し、計算装置Yが、A+Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(a21+b21,a22+b22)
のように求める第2加算部を有し、計算装置Zが、A+Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(a21+b21,a23+b23)
のように求める第3加算部を有す。
c1=a1−b1
のように求める第1減算部を有し、計算装置Yが、A−Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(a21−b21,a22−b22)
のように求める第2減算部を有し、計算装置Zが、A−Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(a21−b21,a23−b23)
のように求める第3減算部を有す。
c1=Ba1
のように求める第1定数倍計算部を有し、計算装置Yが、Aを数値B倍した結果である数値Cの第2断片c2を、
c2=(c21,c22)=(Ba21,Ba22)
のように求める第2定数倍計算部を有し、計算装置Zが、Aを数値B倍した結果である数値Cの第3断片c3を、
c3=(c21,c23)=(Ba21,Ba23)
のように求める第3定数倍計算部を有す。
c1=a1b1−r3−r4
c22=r5
c23=c1−c22
のように求める。第1乗算送信部は、計算装置Yに(r1,r2,r3,c22)を、計算装置Zに(a1−r1,b1−r2,r4,c23)を送信する。第2乗算乱数受信部は、計算装置Xから(r1,r2,r3,c22)を受信する。第2乗算中間値計算部は、数値yを
y=a21b21+a21r2+r1b21+r3
のように求める。第2乗算送信部は、計算装置Zに数値yを送信する。第2乗算中間値受信部は、計算装置Zから数値zを受信する。第2乗算部は、A×Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(y+z,c22)
のように求める。第3乗算乱数受信部は、計算装置Xから(a1−r1,b1−r2,r4,c23)を受信する。第3乗算中間値計算部は、数値zを
z=a21(b1−r2)+(a1−r1)b21+r4
のように求める。第3乗算送信部は、計算装置Yに数値zを送信する。第3乗算中間値受信部は、計算装置Yから数値yを受信する。第3乗算部は、A×Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(y+z,c23)
のように求める。
c1=−a1
のように求める第1否定部を有し、計算装置Yが、1−Aの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(1−a21,−a22)
のように求める第2否定部を有し、計算装置Zが、1−Aの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(1−a21,−a23)
のように求める第3否定部を有す。
S=s21+s22+s23
を満たすランダムな組合せである第1要素s21,第2要素s22,第3要素s23と
s1=s22+s23
s2=(s21,s22)
s3=(s21,s23)
の関係を有する第1断片s1,第2断片s2,第3断片s3を求める断片生成部と、計算装置Xとして機能する計算装置が第1断片s1を、計算装置Yとして機能する計算装置が第2断片s2を、計算装置Zとして機能する計算装置が第3断片s3を記録した状態にする断片分配部とを備える。
を有し、計算装置Zが、第3断片送信部と第3断片受信部と第3復元部を有す。第1断片送信部は、計算装置Yまたは計算装置Zに第1断片を送信する。第1断片受信部は、計算装置Yまたは計算装置Zから第1要素を受信する。第1復元部は、第1断片受信部が受信した第1要素と当該第1要素に対応する第1断片とを加算することで数値を復元する。第2断片送信部は、計算装置Xに第1要素を送信する、または計算装置Zに第2要素を送信する。第2断片受信部は、計算装置Xから第1断片を受信する、または計算装置Zから第3要素を受信する。第2復元部は、第2断片受信部が受信した第1断片と当該第1断片に対応する第1要素とを加算することで数値を復元する、または第2断片受信部が受信した第3要素と当該第3要素に対応する第1要素と第2要素とを加算することで数値を復元する。第3断片送信部は、計算装置Xに第1要素を送信する、または計算装置Yに第3要素を送信する。第3断片受信部は、計算装置Xから第1断片を受信する、または計算装置Yから第2要素を受信する。第3復元部は、第3断片受信部が受信した第1断片と当該第1断片に対応する第1要素とを加算することで数値を復元する、または第3断片受信部が受信した第2要素と当該第2要素に対応する第1要素と第3要素とを加算することで数値を復元する。
実施例1の秘密計算システムは、ネットワーク1000で接続された3つの計算装置100X、100Y、100Zで構成される。計算装置Xとして機能する計算装置100Xは、第1加算部1101、第1減算部1201、第1定数倍計算部1301、乗算乱数生成部1411、第1乗算部1421、第1乗算送信部1431、第1否定部1501、第1記録部1901を備える。計算装置Yとして機能する計算装置100Yは、第2加算部1102、第2減算部1202、第2定数倍計算部1302、第2乗算乱数受信部1442、第2乗算中間値計算部1452、第2乗算送信部1462、第2乗算中間値受信部1472、第2乗算部1482、第2否定部1502、第2記録部1902を備える。計算装置Zとして機能する計算装置100Zは、第3加算部1103、第3減算部1203、第3定数倍計算部1303、第3乗算乱数受信部1443、第3乗算中間値計算部1453、第3乗算送信部1463、第3乗算中間値受信部1473、第3乗算部1483、第3否定部1503、第3記録部1903を備える。なお、実際の秘密計算システムでは、そのシステムで実行する計算に対応した構成を、これらの中から選んで備えればよい。例えば、秘密加算のみを行うのであれば、計算装置100Xは、第1加算部1101と第1記録部1901を備え、計算装置100Yは、第2加算部1102と第2記録部1902を備え、計算装置100Zは、第3加算部1103と第3記録部1903を備えればよい。
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
b1=b22+b23
b2=(b21,b22)
b3=(b21,b23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ、第1要素b21,第2要素b22,第3要素b23はB=b21+b22+b23を満たす任意の数値の組合せ
の関係を持つ。そして、計算装置100Xの第1記録部1901が第1断片を記録し、計算装置100Yの第2記録部1902が第2断片を記録し、計算装置100Zの第3記録部1903が第3断片を記録する。
実施例1の秘密計算システムの秘密加算手段10は、計算装置100Xが第1加算部1101を有し、計算装置100Yが第2加算部1102を有し、計算装置100Zが第3加算部1103を有す。そして、秘密加算過程S10は以下の処理で構成されている。第1加算部1101が、A+Bの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=a1+b1
のように求める(S1101)。第2加算部1102が、A+Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(a21+b21,a22+b22)
のように求める(S1102)。第3加算部1103が、A+Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(a21+b21,a23+b23)
のように求める(S1103)。
実施例1の秘密計算システムの秘密減算手段20は、計算装置100Xが第1減算部1201を有し、計算装置100Yが第2減算部1202を有し、計算装置100Zが第3減算部1203を有す。そして、秘密減算過程S20は以下の処理で構成されている。第1減算部1201が、A−Bの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=a1−b1
のように求める(S1201)。第2減算部1202が、A−Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(a21−b21,a22−b22)
のように求める(S1202)。第3減算部1203が、A−Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(a21−b21,a23−b23)
のように求める(S1203)。
実施例1の秘密計算システムの秘密定数倍手段30は、計算装置100Xが第1定数倍計算部1301を有し、計算装置100Yが第2定数倍計算部1302を有し、計算装置100Zが第3定数倍計算部1303を有す。そして、秘密定数倍過程S30は以下の処理で構成されている。第1定数倍計算部1301が、Aを数値B倍した結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=Ba1
のように求める(S1301)。第2定数倍計算部1302が、Aを数値B倍した結果である数値Cの第2断片c2を、
c2=(c21,c22)=(Ba21,Ba22)
のように求める(S1302)。第3定数倍計算部1303が、Aを数値B倍した結果である数値Cの第3断片c3を、
c3=(c21,c23)=(Ba21,Ba23)
のように求める(S1303)。
実施例1の秘密計算システムの秘密乗算手段40は、計算装置100Xが、乗算乱数生成部1411、第1乗算部1421、第1乗算送信部1431を有し、計算装置100Yが、第2乗算乱数受信部1442、第2乗算中間値計算部1452、第2乗算送信部1462、第2乗算中間値受信部1472、第2乗算部1482を有し、計算装置100Zが、第3乗算乱数受信部1443、第3乗算中間値計算部1453、第3乗算送信部1463、第3乗算中間値受信部1473、第3乗算部1483を有す。そして、秘密乗算過程S40は以下の処理で構成されている。
c1=a1b1−r3−r4
c22=r5
c23=c1−c22
のように求める(S1421)。第1乗算送信部1431は、計算装置100Yに(r1,r2,r3,c22)を、計算装置100Zに(a1−r1,b1−r2,r4,c23)を送信する(S1431)。
y=a21b21+a21r2+r1b21+r3
のように求める(S1452)。第3乗算中間値計算部1453は、数値zを
z=a21(b1−r2)+(a1−r1)b21+r4
のように求める(S1453)。第2乗算送信部1462は、計算装置100Zに数値yを送信する(S1462)。第3乗算送信部1463は、計算装置100Yに数値zを送信する(S1463)。第2乗算中間値受信部1472は、計算装置100Zから数値zを受信する(S1472)。第3乗算中間値受信部1473は、計算装置100Yから数値yを受信する(S1473)。第2乗算部1482は、A×Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(y+z,c22)
のように求める(S1482)。第3乗算部1483は、A×Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(y+z,c23)
のように求める(S1483)。
これまでの説明は、算術演算についてであったが、論理演算も可能である。まず、否定を行う手段について説明する。実施例1の秘密計算システムの秘密否定手段50は、計算装置100Xが第1否定部1501を有し、計算装置100Yが第2否定部1502を有し、計算装置100Zが第3否定部1503を有す。そして、秘密否定過程S50は以下の処理で構成されている。第1否定部1501が、1−Aの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=−a1
のように求める(S1501)。第2否定部1502が、1−Aの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(1−a21,−a22)
のように求める(S1502)。第3否定部1503が、1−Aの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(1−a21,−a23)
のように求める(S1503)。
次に、論理積を行う方法について説明する。AとBとの論理積(C=A∧B)は、乗算と同じなので、秘密乗算過程S40を実行すればよい。
AとBの論理和(C=A∨B)は、
C=A∨B=A+B−AB
の演算を行えばよい。したがって、例えば、以下の処理を行えばよい。
(1)秘密加算過程S10によってD1=A+Bを求める。
(2)秘密乗算過程S40によってD2=ABを求める。
(3)秘密減算過程S20によってC=D1−D2を求める。
AとBの排他的論理和は、
(1)秘密加算過程S10によってD1=A+Bを求める。
(2)秘密乗算過程S40によってD2=ABを求める。
(3)秘密定数倍過程S30によって、D3=2D2
(4)秘密減算過程S20によってC=D1−D3を求める。
次に、いずれかの計算装置が保有している数値の3つの断片を生成し、断片を3つの計算装置で共有する処理について説明する。図12は実施例1の秘匿処理手段の構成例を示す図、図13は秘匿処理のフローを示す図である。図13(A)は計算装置100Xとして機能する計算装置が保有する数値を秘匿処理する過程(秘匿処理X過程)を示す図であり、図13(B)は計算装置100Yとして機能する計算装置が保有する数値を秘匿処理する過程(秘匿処理Y過程)を示す図であり、図13(C)は計算装置100Zとして機能する計算装置が保有する数値を秘匿処理する過程(秘匿処理Z過程)を示す図である。
S=s21+s22+s23
を満たすランダムな組合せである第1要素s21,第2要素s22,第3要素s23と
s1=s22+s23
s2=(s21,s22)
s3=(s21,s23)
の関係を有する第1断片s1,第2断片s2,第3断片s3を求める(S1611、S1612、S1613)。断片分配部1621、1622、1623は、計算装置Xとして機能する計算装置100Xが第1断片s1を、計算装置Yとして機能する計算装置100Yが第2断片s2を、計算装置Zとして機能する計算装置100Zが第3断片s3を記録した状態にする(S1621、S1622、S1623)。なお、秘匿処理手段は、秘匿処理したい数値を保有する計算装置に備えればよく、秘匿処理したい数値を保有しない計算装置には具備しなくてもよい。
第1の秘密2進変換手段
図14は、図1の秘密計算システムに秘匿手段を付加した秘密計算システムの機能構成例である。図15は、図14に示した秘密計算システムを用いた秘密2進変換過程のフローの第1の例を示す図である。なお、図15のフローでは、計算装置100Xが保有する数値(第1断片a1)と計算装置100Yが保有する数値(第1要素a21)を秘匿処理することで、2進表現された数値Aの各ビットA[1],…,A[N]を秘匿処理する例を示している。この例の場合、断片生成部1613と断片分配部1623は不要である。なお、数値Aと断片a1と第1要素a21は高々Nビットであるとし、A[n]は数値Aの下位n番目のビットを、a1[n]は第1断片a1の下位n番目のビットを、a21[n]は第1要素a21の下位n番目のビットをあらわす。
(1−1)計算装置100Xの秘匿処理X手段601によって、第1断片a1[1],…,a1[N]を秘匿処理する(S311)。
(1−2)計算装置100Yの秘匿処理Y手段602によって、第1要素a21[1],…,a21[N]を秘匿処理する(S312)。
(2−1)秘密計算システムは、c1=0、n=1のように初期設定を行う(S321)。具体的には、いずれかの計算装置100でS321を行えばよい。
(2−2)秘密加算過程S10、秘密乗算過程S40、秘密定数倍過程S30、秘密減算過程S20によって、
dn=a1[n]+a21[n]−2a1[n]a21[n]
を行う(S330)。これは、第1断片a1の下位n番目a1[n]と第1要素a21の下位n番目a21[n]の排他的論理和に相当する計算である。排他的論理和の処理の詳細は、上述の秘密排他的論理和手段に示されている。
(2−3)秘密加算過程S10、秘密乗算過程S40、秘密定数倍過程S30、秘密減算過程S20によって、
A[n]=dn+cn−2dncn
を行う(S340)。これは、dnとcnの排他的論理和に相当する計算である。ステップS330とS340の処理によって、
(2−4)次に、ステップS321を行った計算装置100が、n=Nかを確認する(S322)。ステップS322がYesの場合には処理を終了し、Noの場合には次の処理に進む。
(2−5)ステップS322がNoの場合には、秘密加算過程S10、秘密乗算過程S40、秘密減算過程S20によって、
cn+1=a1[n]a21[n]+dncn−a1[n]a21[n]dncn
を行う(S350)。これは、a1[n]a21[n]とdncnとの論理和に相当する計算である。
(2−6)ステップS321を行った計算装置100が、nにn+1を代入し(S323)、ステップS330に戻る。
図16は、図14に示した秘密計算システムを用いた秘密2進変換過程のフローの第2の例を示す図である。なお、図16のフローでも、計算装置100Xが保有する数値(第1断片a1)と計算装置100Yが保有する数値(第1要素a21)を秘匿処理することで、2進表現された数値Aの各ビットA[1],…,A[N]を秘匿処理する例を示している。この例の場合、断片生成部1613と断片分配部1623は不要である。なお、数値Aと断片a1と第1要素a21は高々Nビットであるとし、A[n]は数値Aの下位n番目のビットを、a1[n]は第1断片a1の下位n番目のビットを、a21[n]は第1要素a21の下位n番目のビットをあらわす。
(1−1)計算装置100Xの秘匿処理X手段601によって、第1断片a1[1],…,a1[N]を秘匿処理する(S311)。
(1−2)計算装置100Yの秘匿処理Y手段602によって、第1要素a21[1],…,a21[N]を秘匿処理する(S312)。
(2−1)秘密計算システムは、秘密加算過程S10、秘密乗算過程S40、秘密定数倍過程S30、秘密減算過程S20によって、
(3−1)秘密計算システムは、n=2のように初期設定を行う(S325)。具体的には、いずれかの計算装置100でS325を行えばよい。
(3−2)秘密計算システムは、秘密定数倍過程S30、秘密加算過程S10、秘密減算過程S20によって、
(3−3)計算装置100Xの秘匿処理X手段601によって、B(n)の第1断片b1 (n)を秘匿処理する。また、計算装置100Yの秘匿処理Y手段602によって、B(n)の第1要素b21 (n)を秘匿処理する(S332)。
(3−4)秘密計算システムは、秘密加算過程S10、秘密乗算過程S40、秘密定数倍過程S30、秘密減算過程S20によって、
(4−1)各計算装置100は、それぞれc1 (n)=0、i=1のように初期設定を行う(S341)。
(4−2)計算装置Xとして機能する計算装置100Xは、
(4−3)各計算装置100は、それぞれ
ci+1 (n)=ci (n)b1 (n)[i]∨ci (n)b21 (n)[i]∨b1 (n)[i]b21 (n)[i]
を計算する(S343)。
(4−4)各計算装置100は、それぞれi=n−1かを確認する(S344)。各計算装置100は、ステップS344がNoの場合には、iにi+1を代入し(S345)、ステップS342に戻る。ステップS344がYesの場合には、ステップS351に進む。
(5−1)秘密計算システムは、cn (n)=0ならば各計算装置が分散して記録しているD(n)の断片を、各計算装置が分散して記録するA[n]の断片とする。また、cn (n)=1ならば各計算装置が断片を分散して記録しているD(n)の否定を秘密否定過程S50で計算し、D(n)の否定の断片を、自己が記録するA[n]の断片とする(S351)。
(5−2)秘密計算システムは、n=Nかを確認する(S326)。秘密計算システムは、ステップS326がNoの場合には、nにn+1を代入し(S327)、ステップS331に戻る。ステップS326がYesの場合には、処理を終了する。
ここでは、2進表現された数値Aの各ビットA[1],…,A[N]の断片が3つの計算装置で分散して記録された状態から、整数表現の数値Aの断片A1,A2,A3が3つの計算装置に分散して記録された状態にするための手段について説明する。整数表現された数値Aは、2進表現された数値Aの各ビットA[1],…,A[N]を用いて
分散して記録された状態の断片から数値を復元する手段について説明する。図17に実施例1の復元手段を計算装置に配置した構成例を示す。また、図18に実施例1の復元手段の処理フローを示す。図18(A)の実線は、計算装置Xとして機能する計算装置100Xが、計算装置Yとして機能する計算装置100Yに第1断片を送り、計算装置100Yが数値を復元する処理フロー(復元XY過程S7012)を示している。図18(A)の点線は、計算装置100Xが、計算装置Zとして機能する計算装置100Zに第1断片を送り、計算装置100Zが数値を復元する処理フロー(復元XZ過程S7013)を示している。図18(B)の実線は、計算装置100Yが計算装置100Xに第2断片を送り、計算装置100Xが数値を復元する処理フロー(復元YX過程S7021)を示している。図18(B)の点線は、計算装置100Yが計算装置100Zに第2断片を送り、計算装置100Zが数値を復元する処理フロー(復元YZ過程S7023)を示している。図18(C)の実線は、計算装置100Zが計算装置100Xに第3断片を送り、計算装置100Xが数値を復元する処理フロー(復元ZX過程S7031)を示している。図18(C)の点線は、計算装置100Zが計算装置100Yに第3断片を送り、計算装置100Yが数値を復元する処理フロー(復元ZY過程S7032)を示している。秘密計算システムが、上記の復元処理のすべてを実行できるようにするためには、計算装置100Xが、第1断片送信部1711、第1断片受信部1721、第1復元部1731を有し、計算装置100Yが、第2断片送信部1712、第2断片受信部1722、第2復元部1732を有し、計算装置100Zが、第3断片送信部1713、第3断片受信部1723、第3復元部1733を有する必要がある。なお、システムの設計上必要のない構成部は適宜省略してもよい。
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
A=a21+a22+a23
の関係を有していることに注意されたい。
第1断片送信部1711は、計算装置100Yに第1断片a1を送信する(S17112)。第2断片受信部1722は、計算装置100Xから第1断片a1を受信する(S17212)。第2復元部1732は、次式のように第2断片受信部1722が受信した第1断片a1と当該第1断片a1に対応する第1要素a21とを加算することで数値Aを復元する(S17213)。
a1+a21=a22+a23+a21=A
第1断片送信部1711は、計算装置100Zに第1断片a1を送信する(S17112)。第3断片受信部1723は、計算装置100Xから第1断片a1を受信する(S17212)。第3復元部1733は、次式のように第3断片受信部1723が受信した第1断片a1と当該第1断片a1に対応する第1要素a21とを加算することで数値を復元する(S17312)。
a1+a21=a22+a23+a21=A
第2断片送信部1712は、計算装置100Xに第1要素a21を送信する(S17121)。第1断片受信部1721は、計算装置100Yから第1要素a21を受信する(S17221)。第1復元部1731は、次式のように第1断片受信部1721が受信した第1要素a21と当該第1要素a21に対応する第1断片a1とを加算することで数値を復元する(S17321)。
a21+a1=a21+a22+a23=A
第2断片送信部1712は、計算装置100Zに第2要素a22を送信する(S17123)。第3断片受信部1723は、計算装置100Yから第2要素a21を受信する(S17223)。第3復元部1733は、次式のように第3断片受信部1723が受信した第2要素a22と当該第2要素a22に対応する第1要素a21と第3要素a23とを加算することで数値を復元する(S17323)。
a22+a21+a23=A
第3断片送信部1713は、計算装置100Xに第1要素a21を送信する(S17131)。第1断片受信部1721は、計算装置100Zから第1要素a21を受信する(S17231)。第1復元部1731は、次式のように第1断片受信部1721が受信した第1要素a21と当該第1要素a21に対応する第1断片a1とを加算することで数値を復元する(S17331)。
a21+a1=a21+a22+a23=A
第3断片送信部1713は、計算装置100Yに第3要素a23を送信する(S17132)。第2断片受信部1722は、計算装置100Zから第3要素a23を受信する(S17232)。第2復元部1732は、次式のように第2断片受信部1722が受信した第3要素a23と当該第3要素a23に対応する第1要素a21と第2要素a22とを加算することで数値Aを復元する(S17332)。
a23+a21+a22=A
図19に、図1と図12と図17に示した計算装置100X,100Y,100Zのいずれの計算装置としても機能できる計算装置1001(1002,1003)の機能構成例を示す。基本処理部1011(1012,1013)は、図1と図12と図17に示した構成部をすべで備えている。このように1つの計算装置が、計算装置X,計算装置Y,計算装置Zのいずれの計算装置としても機能できるようにしてもよい。この場合は、記録しているデータが第1断片から第3断片のいずれの断片かによって、その計算装置が、計算装置Xとして機能するか、計算装置Yとして機能するか、計算装置Zとして機能するかが決まる。もしくは、どの計算装置として機能させるかによって、秘匿処理などで渡す断片を決めればよい。このように、データごとに計算装置が発揮する機能が異なるようにすることで、より自由度の高い秘密計算システムを構築できる。
次に、1つの計算装置が、計算装置X,計算装置Y,計算装置Zのいずれの計算装置としても機能できるようにしたときの例として、入力された断片のデータが正しいかを確認する方法と、計算結果である断片のデータ(出力)が正しいかを確認する方法を示す。図20は、入力と出力の不正を検出するための計算装置の機能構成例を示す図である。
(a1 (1),a2 (1),a3 (1))、(a1 (2),a2 (2),a3 (2))、(a1 (3),a2 (3),a3 (3))は互いに異なり、
(c1 (1),c2 (1),c3 (1))、(c1 (2),c2 (2),c3 (2))、(c1 (3),c2 (3),c3 (3))は互いに異なり、
(X(1),Y(1),Z(1))、(X(2),Y(2),Z(2))、(X(3),Y(3),Z(3))は互いに異なる。
図21に入力の不正を検出する処理フローを示す。また、図22は第1要素の不正を検出する処理フローを、図23は第1断片の不正を検出する処理フローを、図24は第2要素の不正を検出する処理フローを、図25は第3要素の不正を検出する処理フローを示す図である。いずれかの計算装置2001が、j=1とする(S201)。そして、第1要素不正検出過程S21、第1断片不正検出過程S22、第2要素不正検出過程S23、第3要素不正検出過程S24を実行する。
a1 (j)+a21 (j)+r
ただし、r=rx+ry+rz
の計算結果の断片を、3つの計算装置で分散して記録した状態にする(S210)。いずれかの計算装置2001の復元手段70は、他の計算装置2002または計算装置2003から必要な情報を受け取り、
a1 (j)+a21 (j)+r
を復元して記録しておく(S270)。この処理は、jの値を変更しながら3回繰り替えされるが、計算装置X,Y,Zのどの計算装置として機能しているかに関わらず、同じ計算装置がおこなえばよい。なお、この復元を行う計算装置は、ステップS201を行った計算装置(jの値を管理している計算装置)とすればよい。そして、その計算装置が、計算装置X,Y,Zのどの計算装置として機能しているかによって、適宜復元手段を選択すればよい。ステップS201を行った計算装置(jの値を管理している計算装置)は、j=3かを確認し(S202)、Noの場合にはjにj+1を代入し(S203)ステップS21〜S24に戻る。ステップS202がYesの場合には、3つの復元結果a1 (1)+a21 (1)+r,a1 (2)+a21 (2)+r,a1 (3)+a21 (3)+rを取得できるいずれかの計算装置(つまり、S270を3回行った計算装置)が、復元入力確認部254で、3つの結果が等しいことを確認する(S254)。
図26に出力の不正を検出する処理フローを示す。いずれかの計算装置2001が、j=1とする(S281)。次に、所定の計算を行う(S285)。所定の計算とは、この秘密計算システムを用いて行う計算と同じにすればよく、加算、乗算、論理演算などのいずれかでも、いくつかの組合せでもかまわない。
c1 (j)+c22 (j)+r
ただし、r=rx+ry+rz
の計算結果の断片を、3つの計算装置で分散して記録した状態にする(S215)。計算装置200X (j)と計算装置200Y (j)の一方は、他方から必要な情報を受け取り、c1 (j)+c22 (j)+r=CXY (j)を復元して記録しておく(S271)。計算装置200Y (j)と計算装置200Z (j)の一方は、他方から必要な情報を受け取り、c1 (j)+c22 (j)+r=CYZ (j)を復元して記録しておく(S272)。計算装置200X (j)と計算装置200Z (j)の一方は、他方から必要な情報を受け取り、c1 (j)+c22 (j)+r=CXZ (j)を復元して記録しておく(S273)。ステップS281を行った計算装置(jの値を管理している計算装置)は、j=3かを確認し(S282)、Noの場合にはjにj+1を代入し(S283)ステップS285に戻る。ステップS282がYesの場合には、9つの復元結果CXY (1),CYZ (1),CXZ (1),CXY (2),CYZ (2),CXZ (2),CXY (3),CYZ (3),CXZ (3)を取得できるいずれかの計算装置(1つの計算装置では不可能なので、他の計算装置から復元結果を受信できる計算装置)が、復元結果CXY (1),CYZ (1),CXZ (1),CXY (2),CYZ (2),CXZ (2),CXY (3),CYZ (3),CXZ (3)がすべて等しいことを確認する(S255)。なお、すべての計算装置が復元結果を出力し、外部の計算装置で確認してもよい。
計算結果を改ざんする不正は、
A.入力の分散データを不正値とする、
B.乗算または2進変換処理の秘匿処理の手続きで他の計算装置に不正値を送信する、
C.復元処理で不正値を開示する
の何れかに帰着されることに着目する。なお、図21の処理において何れかの計算装置が手続きを偽った場合は、不正Aの検出ができなくなるが、その場合は不正BまたはCの問題に帰着される。
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ
の関係を持つ。そして、計算装置500Xの第1記録部591が第1断片を記録し、計算装置500Yの第2記録部592が第2断片を記録し、計算装置500Zの第3記録部593が第3断片を記録する。
a1=f1(A)
a2=f2(A)
a3=f3(A)
A=g12(a1,a2)=g23(a2,a3)=g13(a1,a3)
の関係を持つ。そして、計算装置700Xの第1記録部591が第1断片を記録し、計算装置700Yの第2記録部792が第2断片を記録し、計算装置700Zの第3記録部793が第3断片を記録する。
1101 第1加算部 1201 第1減算部
1301 第1定数倍計算部 1411 乗算乱数生成部
1421 第1乗算部 1431 第1乗算送信部
1501 第1否定部 1901、591 第1記録部
1102 第2加算部 1202 第2減算部
1302 第2定数倍計算部 1442 第2乗算乱数受信部
1452 第2乗算中間値計算部 1462 第2乗算送信部
1472 第2乗算中間値受信部 1482 第2乗算部
1502 第2否定部 1902、592、792 第2記録部
1103 第3加算部 1203 第3減算部
1303 第3定数倍計算部 1443 第3乗算乱数受信部
1453 第3乗算中間値計算部 1463 第3乗算送信部
1473 第3乗算中間値受信部 1483 第3乗算部
1503 第3否定部 1903、593、793 第3記録部
1611、1612、1613 断片生成部
1621、1622、1623 断片分配部
1711 第1断片送信部 1721 第1断片受信部
1731 第1復元部 1712 第2断片送信部
1722 第2断片受信部 1732 第2復元部
1713 第3断片送信部 1723 第3断片受信部
1733 第3復元部 1011、1012、1013 基本処理部
2411 第1乱数rxy共有部 2421 第1Z送信部
2311 第1乱数rxz共有部 2321 第1Y送信部
2231 第1受信部 2241 第1断片確認部
2511 第1確認乱数生成部 2112 要素送信部
2122 Y要素受信部 2132 Y要素確認部
2412 第2乱数rxy共有部 2422 第2Z送信部
2212 第2乱数ryz共有部 2222 第2X送信部
2332 第2受信部 2342 第2断片確認部
2512 第2確認乱数生成部 2113 Z要素送信部
2123 Z要素受信部 2133 Z要素確認部
2313 第3乱数rxz共有部 2323 第3Y送信部
2213 第3乱数ryz共有部 2223 第3X送信部
2433 第3受信部 2443 第3断片確認部
2513 第3確認乱数生成部 254 復元入力確認部
255 復元出力確認部 511 乱数生成部
521 第1演算送信部 531 第1演算受信部
541 第1演算復号部 512 第2置換乱数受信部
522 要素生成部 532、732 garbled circuit生成部
542、742 第2演算送信部 752 第2乱数断片受信部
562、762 第2演算復号部 513、713 第3演算受信部
523、723 演算実行部 533、733 第3演算送信部
543、743 第3演算復号部
Claims (29)
- 3つの計算装置から構成される秘密計算システムであって、
数値Aの第1断片a1,第2断片a2,第3断片a3と、数値Bの第1断片b1,第2断片b2,第3断片b3は、
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
b1=b22+b23
b2=(b21,b22)
b3=(b21,b23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ、第1要素b21,第2要素b22,第3要素b23はB=b21+b22+b23を満たす任意の数値の組合せ
の関係を有し、
計算装置Xとして機能する計算装置が第1断片を記録し、
計算装置Yとして機能する計算装置が第2断片を記録し、
計算装置Zとして機能する計算装置が第3断片を記録し、
秘密加算手段として、
前記計算装置Xが、
A+Bの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=a1+b1
のように求める第1加算部
を有し、
前記計算装置Yが、
A+Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(a21+b21,a22+b22)
のように求める第2加算部
を有し、
前記計算装置Zが、
A+Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(a21+b21,a23+b23)
のように求める第3加算部
を有す
ことを特徴とする秘密計算システム。 - 3つの計算装置から構成される秘密計算システムであって、
数値Aの第1断片a1,第2断片a2,第3断片a3と、数値Bの第1断片b1,第2断片b2,第3断片b3は、
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
b1=b22+b23
b2=(b21,b22)
b3=(b21,b23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ、第1要素b21,第2要素b22,第3要素b23はB=b21+b22+b23を満たす任意の数値の組合せ
の関係を有し、
計算装置Xとして機能する計算装置が第1断片を記録し、
計算装置Yとして機能する計算装置が第2断片を記録し、
計算装置Zとして機能する計算装置が第3断片を記録し、
前記計算装置Xは、
A−Bの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=a1−b1
のように求める第1減算部
を有し、
前記計算装置Yは、
A−Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(a21−b21,a22−b22)
のように求める第2減算部
を有し、
前記計算装置Zは、
A−Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(a21−b21,a23−b23)
のように求める第3減算部
を有す
ことを特徴とする秘密計算システム。 - 3つの計算装置から構成される秘密計算システムであって、
数値Aの第1断片a1,第2断片a2,第3断片a3は、
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ
の関係を有し、
計算装置Xとして機能する計算装置が第1断片を記録し、
計算装置Yとして機能する計算装置が第2断片を記録し、
計算装置Zとして機能する計算装置が第3断片を記録し、
前記計算装置Xは、
Aを数値B倍した結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=Ba1
のように求める第1定数倍計算部
を有し、
前記計算装置Yは、
Aを数値B倍した結果である数値Cの第2断片c2を、
c2=(c21,c22)=(Ba21,Ba22)
のように求める第2定数倍計算部
を有し、
前記計算装置Zは、
Aを数値B倍した結果である数値Cの第3断片c3を、
c3=(c21,c23)=(Ba21,Ba23)
のように求める第3定数倍計算部
を有す
ことを特徴とする秘密計算システム。 - 3つの計算装置から構成される秘密計算システムであって、
数値Aの第1断片a1,第2断片a2,第3断片a3と、数値Bの第1断片b1,第2断片b2,第3断片b3は、
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
b1=b22+b23
b2=(b21,b22)
b3=(b21,b23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ、第1要素b21,第2要素b22,第3要素b23はB=b21+b22+b23を満たす任意の数値の組合せ
の関係を有し、
計算装置Xとして機能する計算装置が第1断片を記録し、
計算装置Yとして機能する計算装置が第2断片を記録し、
計算装置Zとして機能する計算装置が第3断片を記録し、
前記計算装置Xは、
乱数r1,r2,r3,r4,r5を生成する乗算乱数生成部と、
A×Bの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1、第2要素c22、第3要素c23を
c1=a1b1−r3−r4
c22=r5
c23=c1−c22
のように求める第1乗算部と、
前記計算装置Yに(r1,r2,r3,c22)を、前記計算装置Zに(a1−r1,b1−r2,r4,c23)を送信する第1乗算送信部と
を有し、
前記計算装置Yは、
前記計算装置Xから(r1,r2,r3,c22)を受信する第2乗算乱数受信部と、
数値yを
y=a21b21+a21r2+r1b21+r3
のように求める第2乗算中間値計算部と、
前記計算装置Zに数値yを送信する第2乗算送信部と、
前記計算装置Zから数値zを受信する第2乗算中間値受信部と、
A×Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(y+z,c22)
のように求める第2乗算部
を有し、
前記計算装置Zは、
前記計算装置Xから(a1−r1,b1−r2,r4,c23)を受信する第3乗算乱数受信部と、
数値zを
z=a21(b1−r2)+(a1−r1)b21+r4
のように求める第3乗算中間値計算部と、
前記計算装置Yに数値zを送信する第3乗算送信部と、
前記計算装置Yから数値yを受信する第3乗算中間値受信部と、
A×Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(y+z,c23)
のように求める第3乗算部
を有す
ことを特徴とする秘密計算システム。 - 3つの計算装置から構成される秘密計算システムであって、
数値Aの第1断片a1,第2断片a2,第3断片a3は、
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ
の関係を有し、
計算装置Xとして機能する計算装置が第1断片を記録し、
計算装置Yとして機能する計算装置が第2断片を記録し、
計算装置Zとして機能する計算装置が第3断片を記録し、
前記計算装置Xは、
1−Aの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=−a1
のように求める第1否定部
を有し、
前記計算装置Yは、
1−Aの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(1−a21,−a22)
のように求める第2否定部
を有し、
前記計算装置Zは、
1−Aの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(1−a21,−a23)
のように求める第3否定部
を有す
ことを特徴とする秘密計算システム。 - 請求項1から5のいずれかに記載の秘密計算システムであって、
いずれかの計算装置が、
自己が保持する数値Sから
S=s21+s22+s23
を満たすランダムな組合せである第1要素s21,第2要素s22,第3要素s23と
s1=s22+s23
s2=(s21,s22)
s3=(s21,s23)
の関係を有する第1断片s1,第2断片s2,第3断片s3を求める断片生成部と、
計算装置Xとして機能する計算装置が第1断片s1を、計算装置Yとして機能する計算装置が第2断片s2を、計算装置Zとして機能する計算装置が第3断片s3を記録した状態にする断片分配部と
を備えることを特徴とする秘密計算システム。 - 請求項1記載の秘密計算システムであって、
jを1以上3以下の整数、a1 (j),a2 (j),a3 (j)を数値Aに対するj番目の第1断片,第2断片,第3断片、a21 (j)をj番目の第1要素、計算装置X(j),計算装置Y(j),計算装置Z(j)をj番目の第1断片a1 (j),第2断片a2 (j),第3断片a3 (j)に対して計算装置X,計算装置Y,計算装置Zとして機能する計算装置、乱数rを乱数rx,ry,rzの和とし、
前記3つの計算装置は、どの計算装置も、計算装置X,計算装置Y,計算装置Zのいずれとしても機能でき、
(X(1),Y(1),Z(1))、(X(2),Y(2),Z(2))、(X(3),Y(3),Z(3))はそれぞれ異なり、
(a1 (1),a2 (1),a3 (1))、(a1 (2),a2 (2),a3 (2))、(a1 (3),a2 (3),a3 (3))はそれぞれ異なり、
秘匿処理手段は、任意の数値Sに対して、
S=s21+s22+s23
を満たすランダムな組合せである第1要素s21,第2要素s22,第3要素s23と
s1=s22+s23
s2=(s21,s22)
s3=(s21,s23)
の関係を有する第1断片s1,第2断片s2,第3断片s3を求める断片生成部と、
前記計算装置Xが第1断片s1を、前記計算装置Yが第2断片s2を、前記計算装置Zが第3断片s3を記録した状態にする断片分配部と
を有する手段であり、
復元手段は、
前記計算装置Xが、
前記計算装置Yまたは前記計算装置Zに第1断片を送信する第1断片送信部と、
前記計算装置Yまたは前記計算装置Zから第1要素を受信する第1断片受信部と、
前記第1断片受信部が受信した第1要素と当該第1要素に対応する第1断片とを加算することで数値を復元する第1復元部
も有し、
前記計算装置Yが、
前記計算装置Xに第1要素を送信する、または前記計算装置Zに第2要素を送信する第2断片送信部と、
前記計算装置Xから第1断片を受信する、または前記計算装置Zから第3要素を受信する第2断片受信部と、
前記第2断片受信部が受信した第1断片と当該第1断片に対応する第1要素とを加算することで数値を復元する、または前記第2断片受信部が受信した第3要素と当該第3要素に対応する第1要素と第2要素とを加算することで数値を復元する第2復元部
も有し、
前記計算装置Zが、
前記計算装置Xに第1要素を送信する、または前記計算装置Yに第3要素を送信する第3断片送信部と、
前記計算装置Xから第1断片を受信する、または前記計算装置Yから第2要素を受信する第3断片受信部と、
前記第3断片受信部が受信した第1断片と当該第1断片に対応する第1要素とを加算することで数値を復元する、または前記第3断片受信部が受信した第2要素と当該第2要素に対応する第1要素と第3要素とを加算することで数値を復元する第3復元部
も有する手段であり、
すべての計算装置は、
前記秘匿手段と前記復元手段を有すると共に、
計算装置X(j)として機能するために、
計算装置Y(j)との間で乱数rxyを共有するための第1乱数rxy共有部と、
計算装置Z(j)にux(=a1 (j)+rxy)を送信する第1Z送信部と、
計算装置Z(j)との間で乱数rxzを共有するための第1乱数rxz共有部と、
計算装置Y(j)にux(=a1 (j)+rxz)を送信する第1Y送信部と、
計算装置Y(j)からuyを、計算装置Z(j)からuzを受信する第1受信部と、
a1 (j)=uy+uzであることを確認する第1断片確認部と、
乱数rxを生成する第1確認乱数生成部と、
を有し、
計算装置Y(j)として機能するために、
計算装置Z(j)に自己が保有する第1要素a21y (j)を送信するY要素送信部と、
計算装置Z(j)から第1要素a21z (j)を受信するY要素受信部と、
自己が保有する第1要素a21y (j)と計算装置Z(j)から受信した第1要素a21z (j)とが等しいことを確認するY要素確認部と、
計算装置X(j)との間で乱数rxyを共有するための第2乱数rxy共有部と、
計算装置Z(j)にuy(=a22 (j)+rxy)を送信する第2Z送信部と、
計算装置Z(j)との間で乱数ryzを共有するための第2乱数ryz共有部と、
計算装置X(j)にuy(=a22 (j)+ryz)を送信する第2X送信部と、
計算装置X(j)からuxを、計算装置Z(j)からuzを受信する第2受信部と、
a22 (j)=ux−uzであることを確認する第2断片確認部と、
乱数ryを生成する第2確認乱数生成部と、
を有し、
計算装置Z(j)として機能するために、
計算装置Y(j)に自己が保有する第1要素a21z (j)を送信するZ要素送信部と、
計算装置Y(j)から第1要素a21y (j)を受信するZ要素受信部と、
自己が保有する第1要素a21z (j)と計算装置Y(j)から受信した第1要素a21y (j)とが等しいことを確認するZ要素確認部と、
計算装置X(j)との間で乱数rxzを共有するための第3乱数rxz共有部と、
計算装置Y(j)にuz(=a23 (j)+rxz)を送信する第3Y送信部と、
計算装置Y(j)との間で乱数ryzを共有するための第3乱数ryz共有部と、
計算装置X(j)にuz(=a23 (j)−ryz)を送信する第3X送信部と、
計算装置X(j)からuxを、計算装置Y(j)からuyを受信する第3受信部と、
a23 (j)=ux−uyであることを確認する第3断片確認部と、
乱数rzを生成する第3確認乱数生成部と
を有し、
前記秘匿手段は、
計算装置X(j)として機能するときは、第1断片a1 (j),乱数rxの断片を分散した状態とし、
計算装置Y(j)として機能するときは、第1要素a21 (j),乱数ryの断片を分散した状態とし、
計算装置Z(j)として機能するときは、乱数rzの断片を分散した状態とする
手段であり、
前記秘密加算手段は
a1 (j)+a21 (j)+r
の断片を求める手段であり、
前記復元手段は
a1 (1)+a21 (1)+r,a1 (2)+a21 (2)+r,a1 (3)+a21 (3)+r
を復元する手段であり、
3つの復元結果を取得できるいずれかの計算装置が、3つの結果が等しいことを確認する復元入力確認部を備える
ことを特徴とする秘密計算システム。 - 同一の数値に対する異なる3種類の断片の組合せを入力とし、それぞれの断片の組合せに対して計算を行う請求項1記載の秘密計算システムであって、
jを1以上3以下の整数、c1 (j),c2 (j),c3 (j)を計算結果である数値Cに対するj番目の第1断片,第2断片,第3断片、c21 (j),c22 (j),c23 (j)をj番目の第1要素,第2要素,第3要素、計算装置X(j),計算装置Y(j),計算装置Z(j)をj番目の第1断片c1 (j),第2断片c2 (j),第3断片c3 (j)を求めたときに計算装置X,計算装置Y,計算装置Zとして機能した計算装置、乱数rを乱数rx,ry,rzの和とし、
前記3つの計算装置は、どの計算装置も、計算装置X,計算装置Y,計算装置Zのいずれとしても機能でき、
(X(1),Y(1),Z(1))、(X(2),Y(2),Z(2))、(X(3),Y(3),Z(3))はそれぞれ異なり、
(c1 (1),c2 (1),c3 (1))、(c1 (2),c2 (2),c3 (2))、(c1 (3),c2 (3),c3 (3))はそれぞれ異なり、
秘匿処理手段は、任意の数値Sに対して、
S=s21+s22+s23
を満たすランダムな組合せである第1要素s21,第2要素s22,第3要素s23と
s1=s22+s23
s2=(s21,s22)
s3=(s21,s23)
の関係を有する第1断片s1,第2断片s2,第3断片s3を求める断片生成部と、
前記計算装置Xが第1断片s1を、前記計算装置Yが第2断片s2を、前記計算装置Zが第3断片s3を記録した状態にする断片分配部と
を有する手段であり、
復元手段は、
前記計算装置Xが、
前記計算装置Yまたは前記計算装置Zに第1断片を送信する第1断片送信部と、
前記計算装置Yまたは前記計算装置Zから第1要素を受信する第1断片受信部と、
前記第1断片受信部が受信した第1要素と当該第1要素に対応する第1断片とを加算することで数値を復元する第1復元部
も有し、
前記計算装置Yが、
前記計算装置Xに第1要素を送信する、または前記計算装置Zに第2要素を送信する第2断片送信部と、
前記計算装置Xから第1断片を受信する、または前記計算装置Zから第3要素を受信する第2断片受信部と、
前記第2断片受信部が受信した第1断片と当該第1断片に対応する第1要素とを加算することで数値を復元する、または前記第2断片受信部が受信した第3要素と当該第3要素に対応する第1要素と第2要素とを加算することで数値を復元する第2復元部
も有し、
前記計算装置Zが、
前記計算装置Xに第1要素を送信する、または前記計算装置Yに第3要素を送信する第3断片送信部と、
前記計算装置Xから第1断片を受信する、または前記計算装置Yから第2要素を受信する第3断片受信部と、
前記第3断片受信部が受信した第1断片と当該第1断片に対応する第1要素とを加算することで数値を復元する、または前記第3断片受信部が受信した第2要素と当該第2要素に対応する第1要素と第3要素とを加算することで数値を復元する第3復元部
も有する手段であり、
すべての計算装置は、
前記秘匿手段と前記復元手段を有すると共に、
計算装置X(j)として機能するために、乱数rxを生成する第1確認乱数生成部を有し、
計算装置Y(j)として機能するために、乱数ryを生成する第2確認乱数生成部を有し、
計算装置Z(j)として機能するために、乱数rzを生成する第3確認乱数生成部を有し、
前記秘匿手段は、
計算装置X(j)として機能するときは、第1断片c1 (j),乱数rxの断片を分散した状態とし、
計算装置Y(j)として機能するときは、第1要素c21 (j),乱数ryの断片を分散した状態とし、
計算装置Z(j)として機能するときは、乱数rzの断片を分散した状態とする
手段であり、
前記秘密加算手段は
c1 (j)+c22 (j)+r
の断片を求める手段でもあり、
前記復元手段は
j=1,2,3に対して、
c1 (j)+c22 (j)+r
の計算結果を、計算装置X(j)と計算装置Y(j)による復元と、計算装置Y(j)と計算装置Z(j)による復元と、計算装置X(j)と計算装置Z(j)による復元とを行う手段であり、
9つの復元結果を取得できるいずれかの計算装置が、9つの結果が等しいことを確認する復元出力確認部を備える
ことを特徴とする秘密計算システム。 - 同一の数値に対する異なる3種類の断片の組合せを入力とし、それぞれの断片の組合せに対して計算を行う請求項2から5のいずれかに記載の秘密計算システムであって、
jを1以上3以下の整数、c1 (j),c2 (j),c3 (j)を計算結果である数値Cに対するj番目の第1断片,第2断片,第3断片、c21 (j),c22 (j),c23 (j)をj番目の第1要素,第2要素,第3要素、計算装置X(j),計算装置Y(j),計算装置Z(j)をj番目の第1断片c1 (j),第2断片c2 (j),第3断片c3 (j)を求めたときに計算装置X,計算装置Y,計算装置Zとして機能した計算装置、乱数rを乱数rx,ry,rzの和とし、
前記3つの計算装置は、どの計算装置も、計算装置X,計算装置Y,計算装置Zのいずれとしても機能でき、
(X(1),Y(1),Z(1))、(X(2),Y(2),Z(2))、(X(3),Y(3),Z(3))はそれぞれ異なり、
(c1 (1),c2 (1),c3 (1))、(c1 (2),c2 (2),c3 (2))、(c1 (3),c2 (3),c3 (3))はそれぞれ異なり、
秘匿処理手段は、任意の数値Sに対して、
S=s21+s22+s23
を満たすランダムな組合せである第1要素s21,第2要素s22,第3要素s23と
s1=s22+s23
s2=(s21,s22)
s3=(s21,s23)
の関係を有する第1断片s1,第2断片s2,第3断片s3を求める断片生成部と、
前記計算装置Xが第1断片s1を、前記計算装置Yが第2断片s2を、前記計算装置Zが第3断片s3を記録した状態にする断片分配部と
を有する手段であり、
秘密加算手段は、
前記計算装置Xが、
A+Bの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=a1+b1
のように求める第1加算部
を有し、
前記計算装置Yが、
A+Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(a21+b21,a22+b22)
のように求める第2加算部
を有し、
前記計算装置Zが、
A+Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(a21+b21,a23+b23)
のように求める第3加算部
を有する手段であり、
復元手段は、
前記計算装置Xが、
前記計算装置Yまたは前記計算装置Zに第1断片を送信する第1断片送信部と、
前記計算装置Yまたは前記計算装置Zから第1要素を受信する第1断片受信部と、
前記第1断片受信部が受信した第1要素と当該第1要素に対応する第1断片とを加算することで数値を復元する第1復元部
も有し、
前記計算装置Yが、
前記計算装置Xに第1要素を送信する、または前記計算装置Zに第2要素を送信する第2断片送信部と、
前記計算装置Xから第1断片を受信する、または前記計算装置Zから第3要素を受信する第2断片受信部と、
前記第2断片受信部が受信した第1断片と当該第1断片に対応する第1要素とを加算することで数値を復元する、または前記第2断片受信部が受信した第3要素と当該第3要素に対応する第1要素と第2要素とを加算することで数値を復元する第2復元部
も有し、
前記計算装置Zが、
前記計算装置Xに第1要素を送信する、または前記計算装置Yに第3要素を送信する第3断片送信部と、
前記計算装置Xから第1断片を受信する、または前記計算装置Yから第2要素を受信する第3断片受信部と、
前記第3断片受信部が受信した第1断片と当該第1断片に対応する第1要素とを加算することで数値を復元する、または前記第3断片受信部が受信した第2要素と当該第2要素に対応する第1要素と第3要素とを加算することで数値を復元する第3復元部
も有する手段であり、
すべての計算装置は、
前記秘匿手段と前記秘密加算手段と前記復元手段を有すると共に、
計算装置X(j)として機能するために、乱数rxを生成する第1確認乱数生成部を有し、
計算装置Y(j)として機能するために、乱数ryを生成する第2確認乱数生成部を有し、
計算装置Z(j)として機能するために、乱数rzを生成する第3確認乱数生成部を有し、
前記秘匿手段は、
計算装置X(j)として機能するときは、第1断片c1 (j),乱数rxの断片を分散した状態とし、
計算装置Y(j)として機能するときは、第1要素c21 (j),乱数ryの断片を分散した状態とし、
計算装置Z(j)として機能するときは、乱数rzの断片を分散した状態とする
手段であり、
前記秘密加算手段は
c1 (j)+c22 (j)+r
の断片を求める手段であり、
前記復元手段は
j=1,2,3に対して、
c1 (j)+c22 (j)+r
の計算結果を、計算装置X(j)と計算装置Y(j)による復元と、計算装置Y(j)と計算装置Z(j)による復元と、計算装置X(j)と計算装置Z(j)による復元とを行う手段であり、
9つの復元結果を取得できるいずれかの計算装置が、9つの結果が等しいことを確認する復元出力確認部を備える
ことを特徴とする秘密計算システム。 - 3つの計算装置から構成される秘密計算システムであって、
数値Aの第1断片a1,第2断片a2,第3断片a3は、
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ
の関係を有し、
計算装置Xとして機能する計算装置が第1断片を記録し、
計算装置Yとして機能する計算装置が第2断片を記録し、
計算装置Zとして機能する計算装置が第3断片を記録し、
Nを2以上の整数、nを1以上N以下の整数、a1[n]を第1断片a1を2進表現したときの下位n桁目の値とし、
前記計算装置Xは、
2N個の乱数(r0,1,r1,1),…,(r0,N,r1,N)を生成する乱数生成部と、
乱数(r0,1,r1,1),…,(r0,N,r1,N)を前記計算装置Yに送信し、ra1[1],1,…,ra1[N],Nを前記計算装置Zに送信する第1演算送信部と、
前記計算装置Yから第1断片関数t1を受信し、前記計算装置Zから第1乱数断片e’1を受信する第1演算受信部と、
第1断片e1をe1=t1(e’1)のように求める第1演算復号部と
を有し、
前記計算装置Yは、
前記計算装置Xから乱数(r0,1,r1,1),…,(r0,N,r1,N)を受信する第2置換乱数受信部と、
Nビットの乱数e21,e22を生成し、第1要素e21,第2要素e22とする要素生成部と、
第1断片a1が入力された場合に第1断片e1と第3要素e23を出力する論理回路C”の入出力を乱数に置き換えたgarbled circuit GC”(ただし、入力である第1断片a1は乱数(r0,1,r1,1),…,(r0,N,r1,N)に置き換えられる)と、前記garbled circuit GC”の出力である第1乱数断片e’1,第3乱数要素e’23それぞれを、第1断片e1,第3要素e23に変換する第1断片関数t1,第3要素関数t23を生成するgarbled circuit生成部と、
第1断片関数t1を前記計算装置Xに送信し、garbled circuit GC”と第3要素関数t23と第1要素e21を前記計算装置Zに送信する第2演算送信部と、
第2断片e2をe2=(e21,e22)とする第2演算復号部と
を有し、
前記計算装置Zは、
前記計算装置Xからra1[1],1,…,ra1[N],Nを受信し、前記計算装置Yからgarbled circuit GC”と第3要素関数t23と第1要素e21を受信する第3演算受信部と、
ra1[1],1,…,ra1[N],Nとgarbled circuit GC”とを用いて、第1乱数断片e’1,第3乱数要素e’23を求める演算実行部と、
第1乱数断片e’1を前記計算装置Xに送信する第3演算送信部と、
第3要素e23をe23=t23(e’23)のように求め、第3断片e3をe3=(e21,e23)とする第3演算復号部と
を有す
ことを特徴とする秘密計算システム。 - 請求項1から6、もしくは10のいずれかに記載の秘密計算システムであって、
さらに、復元手段として、
前記計算装置Xが、
前記計算装置Yまたは前記計算装置Zに第1断片を送信する第1断片送信部と、
前記計算装置Yまたは前記計算装置Zから第1要素を受信する第1断片受信部と、
前記第1断片受信部が受信した第1要素と当該第1要素に対応する第1断片とを加算することで数値を復元する第1復元部
も有し、
前記計算装置Yが、
前記計算装置Xに第1要素を送信する、または前記計算装置Zに第2要素を送信する第2断片送信部と、
前記計算装置Xから第1断片を受信する、または前記計算装置Zから第3要素を受信する第2断片受信部と、
前記第2断片受信部が受信した第1断片と当該第1断片に対応する第1要素とを加算することで数値を復元する、または前記第2断片受信部が受信した第3要素と当該第3要素に対応する第1要素と第2要素とを加算することで数値を復元する第2復元部
も有し、
前記計算装置Zが、
前記計算装置Xに第1要素を送信する、または前記計算装置Yに第3要素を送信する第3断片送信部と、
前記計算装置Xから第1断片を受信する、または前記計算装置Yから第2要素を受信する第3断片受信部と、
前記第3断片受信部が受信した第1断片と当該第1断片に対応する第1要素とを加算することで数値を復元する、または前記第3断片受信部が受信した第2要素と当該第2要素に対応する第1要素と第3要素とを加算することで数値を復元する第3復元部
も有す
ことを特徴とする秘密計算システム。 - 第1断片を記録する計算装置Xと、
第2断片を記録する計算装置Yと、
第3断片を記録する計算装置Zから構成される秘密計算システムであって、
前記第1断片,第2断片,第3断片は、これらの中の2つが分かれば元の数値が復元できるものであり、
Nを2以上の整数、nを1以上N以下の整数、a1,a2,a3をNビット以下の数値Aの第1断片,第2断片,第3断片、e1,e2,e3を数値Aを論理回路Cに入力したときの出力E=C(A)の第1断片,第2断片,第3断片、a1[n]を第1断片a1を2進表現したときの下位n桁目の値とし、
前記計算装置Xは、
2N個の乱数(r0,1,r1,1),…,(r0,N,r1,N)を生成する乱数生成部と、
乱数(r0,1,r1,1),…,(r0,N,r1,N)を前記計算装置Yに送信し、ra1[1],1,…,ra1[N],Nを前記計算装置Zに送信する第1演算送信部と、
前記計算装置Yから第1断片関数t1を受信し、前記計算装置Zから第1乱数断片e’1を受信する第1演算受信部と、
第1断片e1をe1=t1(e’1)のように求める第1演算復号部と
を有し、
前記計算装置Yは、
前記計算装置Xから乱数(r0,1,r1,1),…,(r0,N,r1,N)を受信する第2置換乱数受信部と、
第1断片a1が入力された場合に第1断片e1,第2断片e2,第3断片e3を出力する論理回路C’の入出力を乱数に置き換えたgarbled circuit GC’(ただし、入力である第1断片a1は乱数(r0,1,r1,1),…,(r0,N,r1,N)に置き換えられる)と、前記garbled circuit GC’の出力である第1乱数断片e’1,第2乱数断片e’2,第3乱数断片e’3それぞれを、第1断片e1,第2断片e2,第3断片e3に変換する第1断片関数t1,第2断片関数t2,第3断片関数t3を生成するgarbled circuit生成部と、
第1断片関数t1を前記計算装置Xに送信し、garbled circuit GC’と第3断片関数t3を前記計算装置Zに送信する第2演算送信部と、
前記計算装置Zから第2乱数断片e’2を受信する第2乱数断片受信部と、
第2断片e2をe2=t2(e’2)のように求める第2演算復号部と
を有し、
前記計算装置Zは、
前記計算装置Xからra1[1],1,…,ra1[N],Nを受信し、前記計算装置Yからgarbled circuit GC’と第3断片関数t3を受信する第3演算受信部と、
ra1[1],1,…,ra1[N],Nとgarbled circuit GC’とを用いて、第1乱数断片e’1,第2乱数断片e’2,第3乱数断片e’3を求める演算実行部と、
第1乱数断片e’1を前記計算装置Xに送信し、第2乱数断片e’2を前記計算装置Yに送信する第3演算送信部と、
第3断片e3をe3=t3(e’3)のように求める第3演算復号部と
を有す
ことを特徴とする秘密計算システム。 - 3つの計算装置から構成される秘密計算システムを用いた秘密計算方法であって、
数値Aの第1断片a1,第2断片a2,第3断片a3と、数値Bの第1断片b1,第2断片b2,第3断片b3は、
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
b1=b22+b23
b2=(b21,b22)
b3=(b21,b23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ、第1要素b21,第2要素b22,第3要素b23はB=b21+b22+b23を満たす任意の数値の組合せ
の関係を有し、
計算装置Xとして機能する計算装置が第1断片を記録し、
計算装置Yとして機能する計算装置が第2断片を記録し、
計算装置Zとして機能する計算装置が第3断片を記録し、
秘密加算過程として、
前記計算装置Xが、A+Bの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=a1+b1
のように求める第1加算ステップと、
前記計算装置Yが、A+Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(a21+b21,a22+b22)
のように求める第2加算ステップと、
前記計算装置Zが、A+Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(a21+b21,a23+b23)
のように求める第3加算ステップと
を有す
ことを特徴とする秘密計算方法。 - 3つの計算装置から構成される秘密計算システムを用いた秘密計算方法であって、
数値Aの第1断片a1,第2断片a2,第3断片a3と、数値Bの第1断片b1,第2断片b2,第3断片b3は、
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
b1=b22+b23
b2=(b21,b22)
b3=(b21,b23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ、第1要素b21,第2要素b22,第3要素b23はB=b21+b22+b23を満たす任意の数値の組合せ
の関係を有し、
計算装置Xとして機能する計算装置が第1断片を記録し、
計算装置Yとして機能する計算装置が第2断片を記録し、
計算装置Zとして機能する計算装置が第3断片を記録し、
秘密減算過程として、
前記計算装置Xが、A−Bの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=a1−b1
のように求める第1減算ステップと、
前記計算装置Yが、A−Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(a21−b21,a22−b22)
のように求める第2減算ステップと、
前記計算装置Zが、A−Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(a21−b21,a23−b23)
のように求める第3減算ステップと
を有す
ことを特徴とする秘密計算方法。 - 3つの計算装置から構成される秘密計算システムを用いた秘密計算方法であって、
数値Aの第1断片a1,第2断片a2,第3断片a3は、
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ
の関係を有し、
計算装置Xとして機能する計算装置が第1断片を記録し、
計算装置Yとして機能する計算装置が第2断片を記録し、
計算装置Zとして機能する計算装置が第3断片を記録し、
秘密定数倍過程として、
前記計算装置Xが、Aを数値B倍した結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=Ba1
のように求める第1定数倍計算ステップと、
前記計算装置Yが、Aを数値B倍した結果である数値Cの第2断片c2を、
c2=(c21,c22)=(Ba21,Ba22)
のように求める第2定数倍計算ステップと、
前記計算装置Zが、Aを数値B倍した結果である数値Cの第3断片c3を、
c3=(c21,c23)=(Ba21,Ba23)
のように求める第3定数倍計算ステップと
を有す
ことを特徴とする秘密計算方法。 - 3つの計算装置から構成される秘密計算システムを用いた秘密計算方法であって、
数値Aの第1断片a1,第2断片a2,第3断片a3と、数値Bの第1断片b1,第2断片b2,第3断片b3は、
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
b1=b22+b23
b2=(b21,b22)
b3=(b21,b23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ、第1要素b21,第2要素b22,第3要素b23はB=b21+b22+b23を満たす任意の数値の組合せ
の関係を有し、
計算装置Xとして機能する計算装置が第1断片を記録し、
計算装置Yとして機能する計算装置が第2断片を記録し、
計算装置Zとして機能する計算装置が第3断片を記録し、
秘密乗算過程として、
前記計算装置Xが、乱数r1,r2,r3,r4,r5を生成する乗算乱数生成ステップと、
前記計算装置Xが、A×Bの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1、第2要素c22、第3要素c23を
c1=a1b1−r3−r4
c22=r5
c23=c1−c22
のように求める第1乗算ステップと、
前記計算装置Xが、前記計算装置Yに(r1,r2,r3,c22)を、前記計算装置Zに(a1−r1,b1−r2,r4,c23)を送信する第1乗算送信ステップと、
前記計算装置Yが、前記計算装置Xから(r1,r2,r3,c22)を受信する第2乗算乱数受信ステップと、
前記計算装置Zが、前記計算装置Xから(a1−r1,b1−r2,r4,c23)を受信する第3乗算乱数受信ステップと、
前記計算装置Yが、数値yを
y=a21b21+a21r2+r1b21+r3
のように求める第2乗算中間値計算ステップと、
前記計算装置Zが、数値zを
z=a21(b1−r2)+(a1−r1)b21+r4
のように求める第3乗算中間値計算ステップと、
前記計算装置Yが、前記計算装置Zに数値yを送信する第2乗算送信ステップと、
前記計算装置Zが、前記計算装置Yに数値zを送信する第3乗算送信ステップと、
前記計算装置Yが、前記計算装置Zから数値zを受信する第2乗算中間値受信ステップと、
前記計算装置Zが、前記計算装置Yから数値yを受信する第3乗算中間値受信ステップと、
前記計算装置Yが、A×Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(y+z,c22)
のように求める第2乗算ステップと、
前記計算装置Zが、A×Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(y+z,c23)
のように求める第3乗算ステップと
を有す
ことを特徴とする秘密計算方法。 - 3つの計算装置から構成される秘密計算システムを用いた秘密計算方法であって、
数値Aの第1断片a1,第2断片a2,第3断片a3は、
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ
の関係を有し、
計算装置Xとして機能する計算装置が第1断片を記録し、
計算装置Yとして機能する計算装置が第2断片を記録し、
計算装置Zとして機能する計算装置が第3断片を記録し、
秘密否定過程として、
前記計算装置Xが、1−Aの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=−a1
のように求める第1否定ステップと、
前記計算装置Yが、1−Aの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(1−a21,−a22)
のように求める第2否定ステップと、
前記計算装置Zが、1−Aの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(1−a21,−a23)
のように求める第3否定ステップと
を有す
ことを特徴とする秘密計算方法。 - 請求項13から17のいずれかに記載の秘密計算方法であって、
いずれかの計算装置が、
秘匿処理過程として、
自己が保持する数値Sから
S=s21+s22+s23
を満たすランダムな組合せである第1要素s21,第2要素s22,第3要素s23と
s1=s22+s23
s2=(s21,s22)
s3=(s21,s23)
の関係を有する第1断片s1,第2断片s2,第3断片s3を求める断片生成ステップと、
計算装置Xとして機能する計算装置が第1断片s1を、計算装置Yとして機能する計算装置が第2断片s2を、計算装置Zとして機能する計算装置が第3断片s3を記録した状態にする断片分配ステップと
を有す
ことを特徴とする秘密計算方法。 - 請求項13記載の秘密計算方法であって、
jを1以上3以下の整数、a1 (j),a2 (j),a3 (j)を数値Aに対するj番目の第1断片,第2断片,第3断片、a21 (j)をj番目の第1要素、計算装置X(j),計算装置Y(j),計算装置Z(j)をj番目の第1断片a1 (j),第2断片a2 (j),第3断片a3 (j)に対して計算装置X,計算装置Y,計算装置Zとして機能する計算装置、乱数rを乱数rx,ry,rzの和とし、
前記3つの計算装置は、どの計算装置も、計算装置X,計算装置Y,計算装置Zのいずれとしても機能でき、
(X(1),Y(1),Z(1))、(X(2),Y(2),Z(2))、(X(3),Y(3),Z(3))はそれぞれ異なり、
(a1 (1),a2 (1),a3 (1))、(a1 (2),a2 (2),a3 (2))、(a1 (3),a2 (3),a3 (3))はそれぞれ異なり、
秘匿処理過程は、
自己が保持する数値Sから
S=s21+s22+s23
を満たすランダムな組合せである第1要素s21,第2要素s22,第3要素s23と
s1=s22+s23
s2=(s21,s22)
s3=(s21,s23)
の関係を有する第1断片s1,第2断片s2,第3断片s3を求める断片生成ステップと、
計算装置Xとして機能する計算装置が第1断片s1を、計算装置Yとして機能する計算装置が第2断片s2を、計算装置Zとして機能する計算装置が第3断片s3を記録した状態にする断片分配ステップと
を有する過程であり、
復元過程は、
計算装置Xが、計算装置Yに第1断片a1を送信する第1断片Y送信サブステップと、
計算装置Yが、計算装置Xから第1断片a1を受信する第2断片X受信サブステップと、
計算装置Yが、受信した第1断片a1と当該第1断片a1に対応する第1要素a21とを加算することで数値Aを復元する第2X復元サブステップ
からなる復元XYステップ、
計算装置Xが、計算装置100Zに第1断片a1を送信する第1断片Z送信サブステップと、
計算装置Zが、計算装置Xから第1断片a1を受信する第3断片X受信サブステップと、
計算装置Zが、受信した第1断片a1と当該第1断片a1に対応する第1要素a21とを加算することで数値を復元する第3X復元サブステップと
からなる復元XZステップ、
計算装置Yが、計算装置Xに第1要素a21を送信する第2断片X送信サブステップと、
計算装置Xが、計算装置Yから第1要素a21を受信する第1断片Y受信サブステップと、
計算装置Xが、受信した第1要素a21と当該第1要素a21に対応する第1断片a1とを加算することで数値を復元する第1Y復元サブステップと
からなる復元YXステップ、
計算装置Yが、計算装置Zに第2要素a22を送信する第2断片Z送信サブステップと、
計算装置Zが、計算装置Yから第2要素a21を受信する第3断片Y受信サブステップと、
計算装置Zが、受信した第2要素a22と当該第2要素a22に対応する第1要素a21と第3要素a23とを加算することで数値を復元する第3Y復元サブステップと
からなる復元YZステップ、
計算装置Zが、計算装置Xに第1要素a21を送信する第3断片X送信サブステップと、
計算装置Xが、計算装置Zから第1要素a21を受信する第1断片Z受信サブステップと、
計算装置Xが、受信した第1要素a21と当該第1要素a21に対応する第1断片a1とを加算することで数値を復元する第1Z復元サブステップと
からなる復元ZXステップ、
計算装置Zが、計算装置Yに第3要素a23を送信する第3断片送信サブステップと、
計算装置Yが、計算装置Zから第3要素a23を受信する第2断片受信サブステップと、
計算装置Yが、受信した第3要素a23と当該第3要素a23に対応する第1要素a21と第2要素a22とを加算することで数値Aを復元する第2復元サブステップと
からなる復元ZYステップ
の中の少なくともいずれか1つのステップを有する過程であり、
いずれかの計算装置が、j=1とする初期化ステップと、
計算装置Y(j)が保有する第1要素a21y (j)と計算装置Z(j)が保有する第1要素a21z (j)とが等しいことを確認する第1要素不正検出ステップと、
第1断片a1 (j)が第2要素a22 (j)と第3要素a23 (j)の和であることを確認する第1断片不正検出ステップと、
第2要素a22 (j)が第1断片a1 (j)と第3要素a23 (j)の差であることを確認する第2要素不正検出ステップと、
第3要素a23 (j)が第1断片a1 (j)と第2要素a22 (j)の差であることを確認する第3要素不正検出ステップと、
計算装置X(j)が、乱数rxを生成する第1確認乱数生成ステップと、
計算装置X(j)が、前記秘匿処理過程によって第1断片a1 (j),乱数rxの断片を、3つの計算装置で分散して記録した状態にする秘匿Xステップと、
計算装置Y(j)が、乱数ryを生成する第2確認乱数生成ステップと、
計算装置Y(j)が、前記秘匿処理過程によって第1要素a21 (j),乱数ryの断片を、3つの計算装置で分散して記録した状態にする秘匿Yステップと、
計算装置Z(j)が、乱数rzを生成する第3確認乱数生成ステップと、
計算装置200Z (j)が、前記秘匿処理過程によって乱数rzの断片を、3つの計算装置で分散して記録した状態にする秘匿Zステップと、
前記秘密加算過程によって、
a1 (j)+a21 (j)+r
ただし、r=rx+ry+rz
の計算結果の断片を、3つの計算装置で分散して記録した状態にする秘密加算ステップと、
前記復元過程によって、
a1 (j)+a21 (j)+r
を復元し、いずれかの計算装置に記録しておく入力復元ステップと、
いずれかの計算装置が、j=3かを確認する条件確認ステップと、
j≠3のときにはjにj+1を代入し、前記第1要素不正検出ステップに戻る繰返ステップと、
j=3のときには、いずれかの計算装置が、3つの復元結果a1 (1)+a21 (1)+r,a1 (2)+a21 (2)+r,a1 (3)+a21 (3)+rが等しいことを確認する結果確認ステップと
を有すことを特徴とする秘密計算方法。 - 同一の数値に対する異なる3種類の断片の組合せを入力とし、それぞれの断片の組合せに対して計算を行う請求項13記載の秘密計算方法であって、
jを1以上3以下の整数、c1 (j),c2 (j),c3 (j)を計算結果である数値Cに対するj番目の第1断片,第2断片,第3断片、c21 (j),c22 (j),c23 (j)をj番目の第1要素,第2要素,第3要素、計算装置X(j),計算装置Y(j),計算装置Z(j)をj番目の第1断片c1 (j),第2断片c2 (j),第3断片c3 (j)を求めたときに計算装置X,計算装置Y,計算装置Zとして機能した計算装置、乱数rを乱数rx,ry,rzの和とし、
前記3つの計算装置は、どの計算装置も、計算装置X,計算装置Y,計算装置Zのいずれとしても機能でき、
(X(1),Y(1),Z(1))、(X(2),Y(2),Z(2))、(X(3),Y(3),Z(3))はそれぞれ異なり、
(c1 (1),c2 (1),c3 (1))、(c1 (2),c2 (2),c3 (2))、(c1 (3),c2 (3),c3 (3))はそれぞれ異なり、
秘匿処理過程は、
自己が保持する数値Sから
S=s21+s22+s23
を満たすランダムな組合せである第1要素s21,第2要素s22,第3要素s23と
s1=s22+s23
s2=(s21,s22)
s3=(s21,s23)
の関係を有する第1断片s1,第2断片s2,第3断片s3を求める断片生成ステップと、
計算装置Xとして機能する計算装置が第1断片s1を、計算装置Yとして機能する計算装置が第2断片s2を、計算装置Zとして機能する計算装置が第3断片s3を記録した状態にする断片分配ステップと
を有する過程であり、
復元過程は、
計算装置Xが、計算装置Yに第1断片a1を送信する第1断片Y送信サブステップと、
計算装置Yが、計算装置Xから第1断片a1を受信する第2断片X受信サブステップと、
計算装置Yが、受信した第1断片a1と当該第1断片a1に対応する第1要素a21とを加算することで数値Aを復元する第2X復元サブステップ
からなる復元XYステップ、
計算装置Xが、計算装置100Zに第1断片a1を送信する第1断片Z送信サブステップと、
計算装置Zが、計算装置Xから第1断片a1を受信する第3断片X受信サブステップと、
計算装置Zが、受信した第1断片a1と当該第1断片a1に対応する第1要素a21とを加算することで数値を復元する第3X復元サブステップと
からなる復元XZステップ、
計算装置Yが、計算装置Xに第1要素a21を送信する第2断片X送信サブステップと、
計算装置Xが、計算装置Yから第1要素a21を受信する第1断片Y受信サブステップと、
計算装置Xが、受信した第1要素a21と当該第1要素a21に対応する第1断片a1とを加算することで数値を復元する第1Y復元サブステップと
からなる復元YXステップ、
計算装置Yが、計算装置Zに第2要素a22を送信する第2断片Z送信サブステップと、
計算装置Zが、計算装置Yから第2要素a21を受信する第3断片Y受信サブステップと、
計算装置Zが、受信した第2要素a22と当該第2要素a22に対応する第1要素a21と第3要素a23とを加算することで数値を復元する第3Y復元サブステップと
からなる復元YZステップ、
計算装置Zが、計算装置Xに第1要素a21を送信する第3断片X送信サブステップと、
計算装置Xが、計算装置Zから第1要素a21を受信する第1断片Z受信サブステップと、
計算装置Xが、受信した第1要素a21と当該第1要素a21に対応する第1断片a1とを加算することで数値を復元する第1Z復元サブステップと
からなる復元ZXステップ、
計算装置Zが、計算装置Yに第3要素a23を送信する第3断片送信サブステップと、
計算装置Yが、計算装置Zから第3要素a23を受信する第2断片受信サブステップと、
計算装置Yが、受信した第3要素a23と当該第3要素a23に対応する第1要素a21と第2要素a22とを加算することで数値Aを復元する第2復元サブステップと
からなる復元ZYステップ
の中の少なくともいずれか1つのステップを有する過程であり、
いずれかの計算装置が、j=1とする初期化ステップと、
計算装置X(j)が、乱数rxを生成する第1確認乱数生成ステップと、
計算装置X(j)が、前記秘匿処理過程によって第1断片c1 (j),乱数rxの断片を、3つの計算装置で分散して記録した状態にする秘匿Xステップと、
計算装置Y(j)が、乱数ryを生成する第2確認乱数生成ステップと、
計算装置Y(j)が、前記秘匿処理過程によって第1要素c21 (j),乱数ryの断片を、3つの計算装置で分散して記録した状態にする秘匿Yステップと、
計算装置Z(j)が、乱数rzを生成する第3確認乱数生成ステップと、
計算装置Z(j)が、前記秘匿処理過程によって乱数rzの断片を3つの計算装置で分散して記録した状態にする秘匿Zステップと、
前記秘密加算過程によって、
c1 (j)+c22 (j)+r
ただし、r=rx+ry+rz
の計算結果の断片を、3つの計算装置で分散して記録した状態にする秘密加算ステップと、
前記復元XYステップまたは復元YXステップからなる前記復元過程によって、
c1 (j)+c22 (j)+r=CXY (j)を復元して記録しておき、
前記復元YZステップまたは復元ZYステップからなる前記復元過程によって、
c1 (j)+c22 (j)+r=CYZ (j)を復元して記録しておき、
前記復元XZステップまたは復元ZXステップからなる前記復元過程によって、
c1 (j)+c22 (j)+r=CXZ (j)を復元して記録しておく結果復元ステップと、
いずれかの計算装置が、j=3かを確認する条件確認ステップと、
j≠3のときにはjにj+1を代入し、前記第1確認乱数生成ステップに戻る繰返ステップと、
j=3のときには、9つの復元結果CXY (1),CYZ (1),CXZ (1),CXY (2),CYZ (2),CXZ (2),CXY (3),CYZ (3),CXZ (3)がすべて等しいことを確認する結果確認ステップと
を有すことを特徴とする秘密計算方法。 - 同一の数値に対する異なる3種類の断片の組合せを入力とし、それぞれの断片の組合せに対して計算を行う請求項14から17のいずれかに記載の秘密計算方法であって、
jを1以上3以下の整数、c1 (j),c2 (j),c3 (j)を計算結果である数値Cに対するj番目の第1断片,第2断片,第3断片、c21 (j),c22 (j),c23 (j)をj番目の第1要素,第2要素,第3要素、計算装置X(j),計算装置Y(j),計算装置Z(j)をj番目の第1断片c1 (j),第2断片c2 (j),第3断片c3 (j)を求めたときに計算装置X,計算装置Y,計算装置Zとして機能した計算装置、乱数rを乱数rx,ry,rzの和とし、
前記3つの計算装置は、どの計算装置も、計算装置X,計算装置Y,計算装置Zのいずれとしても機能でき、
(X(1),Y(1),Z(1))、(X(2),Y(2),Z(2))、(X(3),Y(3),Z(3))はそれぞれ異なり、
(c1 (1),c2 (1),c3 (1))、(c1 (2),c2 (2),c3 (2))、(c1 (3),c2 (3),c3 (3))はそれぞれ異なり、
秘匿処理過程は、
自己が保持する数値Sから
S=s21+s22+s23
を満たすランダムな組合せである第1要素s21,第2要素s22,第3要素s23と
s1=s22+s23
s2=(s21,s22)
s3=(s21,s23)
の関係を有する第1断片s1,第2断片s2,第3断片s3を求める断片生成ステップと、
計算装置Xとして機能する計算装置が第1断片s1を、計算装置Yとして機能する計算装置が第2断片s2を、計算装置Zとして機能する計算装置が第3断片s3を記録した状態にする断片分配ステップと
を有する過程であり、
秘密加算過程は、
前記計算装置Xが、A+Bの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=a1+b1
のように求める第1加算ステップと、
前記計算装置Yが、A+Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(a21+b21,a22+b22)
のように求める第2加算ステップと、
前記計算装置Zが、A+Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(a21+b21,a23+b23)
のように求める第3加算ステップと
を有する過程であり、
復元過程は、
計算装置Xが、計算装置Yに第1断片a1を送信する第1断片Y送信サブステップと、
計算装置Yが、計算装置Xから第1断片a1を受信する第2断片X受信サブステップと、
計算装置Yが、受信した第1断片a1と当該第1断片a1に対応する第1要素a21とを加算することで数値Aを復元する第2X復元サブステップ
からなる復元XYステップ、
計算装置Xが、計算装置100Zに第1断片a1を送信する第1断片Z送信サブステップと、
計算装置Zが、計算装置Xから第1断片a1を受信する第3断片X受信サブステップと、
計算装置Zが、受信した第1断片a1と当該第1断片a1に対応する第1要素a21とを加算することで数値を復元する第3X復元サブステップと
からなる復元XZステップ、
計算装置Yが、計算装置Xに第1要素a21を送信する第2断片X送信サブステップと、
計算装置Xが、計算装置Yから第1要素a21を受信する第1断片Y受信サブステップと、
計算装置Xが、受信した第1要素a21と当該第1要素a21に対応する第1断片a1とを加算することで数値を復元する第1Y復元サブステップと
からなる復元YXステップ、
計算装置Yが、計算装置Zに第2要素a22を送信する第2断片Z送信サブステップと、
計算装置Zが、計算装置Yから第2要素a21を受信する第3断片Y受信サブステップと、
計算装置Zが、受信した第2要素a22と当該第2要素a22に対応する第1要素a21と第3要素a23とを加算することで数値を復元する第3Y復元サブステップと
からなる復元YZステップ、
計算装置Zが、計算装置Xに第1要素a21を送信する第3断片X送信サブステップと、
計算装置Xが、計算装置Zから第1要素a21を受信する第1断片Z受信サブステップと、
計算装置Xが、受信した第1要素a21と当該第1要素a21に対応する第1断片a1とを加算することで数値を復元する第1Z復元サブステップと
からなる復元ZXステップ、
計算装置Zが、計算装置Yに第3要素a23を送信する第3断片送信サブステップと、
計算装置Yが、計算装置Zから第3要素a23を受信する第2断片受信サブステップと、
計算装置Yが、受信した第3要素a23と当該第3要素a23に対応する第1要素a21と第2要素a22とを加算することで数値Aを復元する第2復元サブステップと
からなる復元ZYステップ
の中の少なくともいずれか1つのステップを有する過程であり、
いずれかの計算装置が、j=1とする初期化ステップと、
計算装置X(j)が、乱数rxを生成する第1確認乱数生成ステップと、
計算装置X(j)が、前記秘匿処理過程によって第1断片c1 (j),乱数rxの断片を、3つの計算装置で分散して記録した状態にする秘匿Xステップと、
計算装置Y(j)が、乱数ryを生成する第2確認乱数生成ステップと、
計算装置Y(j)が、前記秘匿処理過程によって第1要素c21 (j),乱数ryの断片を、3つの計算装置で分散して記録した状態にする秘匿Yステップと、
計算装置Z(j)が、乱数rzを生成する第3確認乱数生成ステップと、
計算装置Z(j)が、前記秘匿処理過程によって乱数rzの断片を3つの計算装置で分散して記録した状態にする秘匿Zステップと、
前記秘密加算過程によって、
c1 (j)+c22 (j)+r
ただし、r=rx+ry+rz
の計算結果の断片を、3つの計算装置で分散して記録した状態にする秘密加算ステップと、
前記復元XYステップまたは復元YXステップからなる前記復元過程によって、
c1 (j)+c22 (j)+r=CXY (j)を復元して記録しておき、
前記復元YZステップまたは復元ZYステップからなる前記復元過程によって、
c1 (j)+c22 (j)+r=CYZ (j)を復元して記録しておき、
前記復元XZステップまたは復元ZXステップからなる前記復元過程によって、
c1 (j)+c22 (j)+r=CXZ (j)を復元して記録しておく結果復元ステップと、
いずれかの計算装置が、j=3かを確認する条件確認ステップと、
j≠3のときにはjにj+1を代入し、前記第1確認乱数生成ステップに戻る繰返ステップと、
j=3のときには、9つの復元結果CXY (1),CYZ (1),CXZ (1),CXY (2),CYZ (2),CXZ (2),CXY (3),CYZ (3),CXZ (3)がすべて等しいことを確認する結果確認ステップと
を有すことを特徴とする秘密計算方法。 - 3つの計算装置から構成される秘密計算システムを用いた秘密計算方法であって、
数値Aの第1断片a1,第2断片a2,第3断片a3は、
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ
の関係を有し、
計算装置Xとして機能する計算装置が第1断片を記録し、
計算装置Yとして機能する計算装置が第2断片を記録し、
計算装置Zとして機能する計算装置が第3断片を記録し、
Nを2以上の整数、nを1以上N以下の整数、a1[n]を第1断片a1を2進表現したときの下位n桁目の値とし、
計算装置Xが、2N個の乱数(r0,1,r1,1),…,(r0,N,r1,N)を生成する乱数生成ステップと、
計算装置Xが、乱数(r0,1,r1,1),…,(r0,N,r1,N)を計算装置Yに送信し、ra1[1],1,…,ra1[N],Nを計算装置Zに送信する第1演算送信ステップと、
計算装置Yが、計算装置Xから乱数(r0,1,r1,1),…,(r0,N,r1,N)を受信する第2置換乱数受信ステップと、
計算装置Yが、Nビットの乱数e21,e22を生成し、第1要素e21,第2要素e22とする要素生成ステップと、
計算装置Yが、第1断片a1が入力された場合に第1断片e1と第3要素e23を出力する論理回路C”の入出力を乱数に置き換えたgarbled circuit GC”(ただし、入力である第1断片a1は乱数(r0,1,r1,1),…,(r0,N,r1,N)に置き換えられる)と、garbled circuit GC”の出力である第1乱数断片e’1,第3乱数要素e’23それぞれを、第1断片e1,第3要素e23に変換する第1断片関数t1,第3要素関数t23を生成するgarbled circuit生成ステップと、
計算装置Yが、第1断片関数t1を計算装置Xに送信し、garbled circuit GC”と第3要素関数t23と第1要素e21を計算装置Zに送信する第2演算送信ステップと、
計算装置Zが、計算装置Xからra1[1],1,…,ra1[N],Nを受信し、計算装置Yからgarbled circuit GC”と第3要素関数t23と第1要素e21を受信する第3演算受信ステップと、
計算装置Zが、ra1[1],1,…,ra1[N],Nとgarbled circuit GC”とを用いて、第1乱数断片e’1,第3乱数要素e’23を求める演算実行ステップと、
計算装置Zが、第1乱数断片e’1を計算装置Xに送信する第3演算送信ステップと、
計算装置Xが、計算装置Yから第1断片関数t1を受信し、計算装置Zから第1乱数断片e’1を受信する第1演算受信ステップと、
計算装置Xが、第1断片e1をe1=t1(e’1)のように求める第1演算復号ステップと、
計算装置Yが、第2断片e2をe2=(e21,e22)とする第2演算復号ステップと、
計算装置Zが、第3要素e23をe23=t23(e’23)のように求め、第3断片e3をe3=(e21,e23)とする第3演算復号ステップと
を有することを特徴とする秘密計算方法。 - 請求項13から18、もしくは22のいずれかに記載の秘密計算方法であって、
計算装置Xが、計算装置Yに第1断片a1を送信する第1断片Y送信ステップと、
計算装置Yが、計算装置Xから第1断片a1を受信する第2断片X受信ステップと、
計算装置Yが、受信した第1断片a1と当該第1断片a1に対応する第1要素a21とを加算することで数値Aを復元する第2X復元ステップ
からなる復元XY過程、
計算装置Xが、計算装置100Zに第1断片a1を送信する第1断片Z送信ステップと、
計算装置Zが、計算装置Xから第1断片a1を受信する第3断片X受信ステップと、
計算装置Zが、受信した第1断片a1と当該第1断片a1に対応する第1要素a21とを加算することで数値を復元する第3X復元ステップと
からなる復元XZ過程、
計算装置Yが、計算装置Xに第1要素a21を送信する第2断片X送信ステップと、
計算装置Xが、計算装置Yから第1要素a21を受信する第1断片Y受信ステップと、
計算装置Xが、受信した第1要素a21と当該第1要素a21に対応する第1断片a1とを加算することで数値を復元する第1Y復元ステップと
からなる復元YX過程、
計算装置Yが、計算装置Zに第2要素a22を送信する第2断片Z送信ステップと、
計算装置Zが、計算装置Yから第2要素a21を受信する第3断片Y受信ステップと、
計算装置Zが、受信した第2要素a22と当該第2要素a22に対応する第1要素a21と第3要素a23とを加算することで数値を復元する第3Y復元ステップと
からなる復元YZ過程、
計算装置Zが、計算装置Xに第1要素a21を送信する第3断片X送信ステップと、
計算装置Xが、計算装置Zから第1要素a21を受信する第1断片Z受信ステップと、
計算装置Xが、受信した第1要素a21と当該第1要素a21に対応する第1断片a1とを加算することで数値を復元する第1Z復元ステップと
からなる復元ZX過程、
計算装置Zが、計算装置Yに第3要素a23を送信する第3断片送信ステップと、
計算装置Yが、計算装置Zから第3要素a23を受信する第2断片受信ステップと、
計算装置Yが、受信した第3要素a23と当該第3要素a23に対応する第1要素a21と第2要素a22とを加算することで数値Aを復元する第2復元ステップと
からなる復元ZY過程
の中の少なくともいずれか1つの過程も有することを特徴とする秘密計算方法。 - 第1断片を記録する計算装置Xと、
第2断片を記録する計算装置Yと、
第3断片を記録する計算装置Zから構成される秘密計算システムを用いた秘密計算方法であって、
前記第1断片,第2断片,第3断片は、これらの中の2つが分かれば元の数値が復元できるものであり、
Nを2以上の整数、nを1以上N以下の整数、a1,a2,a3をNビット以下の数値Aの第1断片,第2断片,第3断片、e1,e2,e3を数値Aを論理回路Cに入力したときの出力E=C(A)の第1断片,第2断片,第3断片、a1[n]を第1断片a1を2進表現したときの下位n桁目の値とし、
計算装置Xが、2N個の乱数(r0,1,r1,1),…,(r0,N,r1,N)を生成する乱数生成ステップと、
計算装置Xが、乱数(r0,1,r1,1),…,(r0,N,r1,N)を計算装置Yに送信し、ra1[1],1,…,ra1[N],Nを計算装置Zに送信する第1演算送信ステップと、
計算装置Yが、計算装置Xから乱数(r0,1,r1,1),…,(r0,N,r1,N)を受信する第2置換乱数受信ステップと、
計算装置Yが、第1断片a1が入力された場合に第1断片e1,第2断片e2,第3断片e3を出力する論理回路C’の入出力を乱数に置き換えたgarbled circuit GC’(ただし、入力である第1断片a1は乱数(r0,1,r1,1),…,(r0,N,r1,N)に置き換えられる)と、前記garbled circuit GC’の出力である第1乱数断片e’1,第2乱数断片e’2,第3乱数断片e’3それぞれを、第1断片e1,第2断片e2,第3断片e3に変換する第1断片関数t1,第2断片関数t2,第3断片関数t3を生成するgarbled circuit生成ステップと、
計算装置Yが、第1断片関数t1を計算装置Xに送信し、garbled circuit GC’と第3断片関数t3を計算装置Zに送信する第2演算送信ステップと、
計算装置Zが、計算装置Xからra1[1],1,…,ra1[N],Nを受信し、計算装置Yからgarbled circuit GC’と第3断片関数t3を受信する第3演算受信ステップと、
計算装置Zが、ra1[1],1,…,ra1[N],Nとgarbled circuit GC’とを用いて、第1乱数断片e’1,第2乱数断片e’2,第3乱数断片e’3を求める演算実行ステップと、
計算装置Zが、第1乱数断片e’1を計算装置Xに送信し、第2乱数断片e’2を計算装置Yに送信する第3演算送信ステップと、
計算装置Xが、計算装置Yから第1断片関数t1を受信し、計算装置Zから第1乱数断片e’1を受信する第1演算受信ステップと、
計算装置Xが、第1断片e1をe1=t1(e’1)のように求める第1演算復号ステップと、
計算装置Yが、計算装置Zから第2乱数断片e’2を受信する第2乱数断片受信ステップと、
計算装置Yが、第2断片e2をe2=t2(e’2)のように求める第2演算復号ステップと、
計算装置Zが、第3断片e3をe3=t3(e’3)のように求める第3演算復号ステップと
を有することを特徴とする秘密計算方法。 - 数値Aの第1断片a1,第2断片a2,第3断片a3と、数値Bの第1断片b1,第2断片b2,第3断片b3は、
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
b1=b22+b23
b2=(b21,b22)
b3=(b21,b23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ、第1要素b21,第2要素b22,第3要素b23はB=b21+b22+b23を満たす任意の数値の組合せ
の関係を有し、
計算装置Xとして機能する計算装置が第1断片を記録し、
計算装置Yとして機能する計算装置が第2断片を記録し、
計算装置Zとして機能する計算装置が第3断片を記録するときに、
計算装置Xとして機能する計算装置であって、
A+Bの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=a1+b1
のように求める第1加算部と、
A−Bの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=a1−b1
のように求める第1減算部と、
Aを数値B倍した結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=Ba1
のように求める第1定数倍計算部と、
乱数r1,r2,r3,r4,r5を生成する乗算乱数生成部と、
A×Bの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1、第2要素c22、第3要素c23を
c1=a1b1−r3−r4
c22=r5
c23=c1−c22
のように求める第1乗算部と、
前記計算装置Yに(r1,r2,r3,c22)を、前記計算装置Zに(a1−r1,b1−r2,r4,c23)を送信する第1乗算送信部と、
1−Aの結果である数値C(ただし、C=c21+c22+c23)の第1断片c1を、
c1=−a1
のように求める第1否定部と、
自己が保持する数値Sから
S=s21+s22+s23
を満たすランダムな組合せである第1要素s21,第2要素s22,第3要素s23と
s1=s22+s23
s2=(s21,s22)
s3=(s21,s23)
の関係を有する第1断片s1,第2断片s2,第3断片s3を求める断片生成部と、
計算装置Yとして機能する計算装置が第2断片s2を、計算装置Zとして機能する計算装置が第3断片s3を記録した状態にする断片分配部と、
を備える計算装置。 - 数値Aの第1断片a1,第2断片a2,第3断片a3と、数値Bの第1断片b1,第2断片b2,第3断片b3は、
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
b1=b22+b23
b2=(b21,b22)
b3=(b21,b23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ、第1要素b21,第2要素b22,第3要素b23はB=b21+b22+b23を満たす任意の数値の組合せ
の関係を有し、
計算装置Xとして機能する計算装置が第1断片を記録し、
計算装置Yとして機能する計算装置が第2断片を記録し、
計算装置Zとして機能する計算装置が第3断片を記録するときに、
計算装置Yとして機能する計算装置であって、
A+Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(a21+b21,a22+b22)
のように求める第2加算部と、
A−Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(a21−b21,a22−b22)
のように求める第2減算部と、
Aを数値B倍した結果である数値Cの第2断片c2を、
c2=(c21,c22)=(Ba21,Ba22)
のように求める第2定数倍計算部と、
前記計算装置Xから(r1,r2,r3,c22)を受信する第2乗算乱数受信部と、
数値yを
y=a21b21+a21r2+r1b21+r3
のように求める第2乗算中間値計算部と、
前記計算装置Zに数値yを送信する第2乗算送信部と、
前記計算装置Zから数値zを受信する第2乗算中間値受信部と、
A×Bの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(y+z,c22)
のように求める第2乗算部と、
1−Aの結果である数値Cの第2断片c2を、
c2=(c21,c22)=(1−a21,−a22)
のように求める第2否定部と、
自己が保持する数値Sから
S=s21+s22+s23
を満たすランダムな組合せである第1要素s21,第2要素s22,第3要素s23と
s1=s22+s23
s2=(s21,s22)
s3=(s21,s23)
の関係を有する第1断片s1,第2断片s2,第3断片s3を求める断片生成部と、
計算装置Xとして機能する計算装置が第1断片s1を、計算装置Zとして機能する計算装置が第3断片s3を記録した状態にする断片分配部と
を備える計算装置。 - 数値Aの第1断片a1,第2断片a2,第3断片a3と、数値Bの第1断片b1,第2断片b2,第3断片b3は、
a1=a22+a23
a2=(a21,a22)
a3=(a21,a23)
b1=b22+b23
b2=(b21,b22)
b3=(b21,b23)
ただし、第1要素a21,第2要素a22,第3要素a23はA=a21+a22+a23を満たす任意の数値の組合せ、第1要素b21,第2要素b22,第3要素b23はB=b21+b22+b23を満たす任意の数値の組合せ
の関係を有し、
計算装置Xとして機能する計算装置が第1断片を記録し、
計算装置Yとして機能する計算装置が第2断片を記録し、
計算装置Zとして機能する計算装置が第3断片を記録するときに、
計算装置Zとして機能する計算装置であって、
A+Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(a21+b21,a23+b23)
のように求める第3加算部と、
A−Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(a21−b21,a23−b23)
のように求める第3減算部と、
Aを数値B倍した結果である数値Cの第3断片c3を、
c3=(c21,c23)=(Ba21,Ba23)
のように求める第3定数倍計算部と、
前記計算装置Xから(a1−r1,b1−r2,r4,c23)を受信する第3乗算乱数受信部と、
数値zを
z=a21(b1−r2)+(a1−r1)b21+r4
のように求める第3乗算中間値計算部と、
前記計算装置Yに数値zを送信する第3乗算送信部と、
前記計算装置Yから数値yを受信する第3乗算中間値受信部と、
A×Bの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(y+z,c23)
のように求める第3乗算部と、
1−Aの結果である数値Cの第3断片c3を、
c3=(c21,c23)=(1−a21,−a23)
のように求める第3否定部と、
自己が保持する数値Sから
S=s21+s22+s23
を満たすランダムな組合せである第1要素s21,第2要素s22,第3要素s23と
s1=s22+s23
s2=(s21,s22)
s3=(s21,s23)
の関係を有する第1断片s1,第2断片s2,第3断片s3を求める断片生成部と、
計算装置Xとして機能する計算装置が第1断片s1を、計算装置Yとして機能する計算装置が第2断片s2を、計算装置Zとして機能する計算装置が第3断片s3を記録した状態にする断片分配部と
を備える計算装置。 - 請求項25記載の計算装置と、
請求項26記載の計算装置と、
請求項27記載の計算装置とを有する秘密計算システムであって、
前記第1加算部、前記第2加算部、前記第3加算部で構成される秘密加算手段と、
前記第1減算部、前記第2減算部、前記第3減算部で構成される秘密減算手段と、
前記第1定数倍計算部、前記第2定数倍計算部、前記第3定数倍計算部で構成される秘密定数倍手段と、
前記乗算乱数生成部、前記第1乗算部、前記第1乗算送信部、前記第2乗算乱数受信部、前記第2乗算中間値計算部、前記第2乗算送信部、前記第2乗算中間値受信部、前記第2乗算部、前記第3乗算乱数受信部、前記第3乗算中間値計算部、前記第3乗算送信部、前記第3乗算中間値受信部、前記第3乗算部で構成される秘密乗算手段と、
前記第1否定部、前記第2否定部、前記第3否定部で構成される秘密否定手段と、
少なくとも前記計算装置Xの断片生成部と断片分配部と、前記計算装置Yの断片生成部と断片分配部とで構成される秘匿処理手段と、
を有し、
さらに、数値Aを2進数に変換するための秘密2進変換手段も有しており、
前記秘密2進変換手段は、
(1)前記秘匿処理手段を用いて、第1断片a1[1],…,a1[N]と、第1要素a21[1],…,a21[N]を秘匿処理し、
(2)前記秘密加算手段、前記秘密乗算手段、前記秘密定数倍手段、前記秘密減算手段を用いて、
を行って、各前記計算装置が、A[1]の断片を分散して記録した状態とし、
(3−1)n=2のように初期設定を行い、
(3−2)前記秘密定数倍手段、前記秘密加算手段、前記秘密減算手段によって、
を行って、各前記計算装置が、B(n)の断片b1 (n),b2 (n),b3 (n)を分散して記録した状態とし、
(3−3)前記秘匿処理手段によって、B(n)の第1断片b1 (n)とB(n)の第1要素b21 (n)を秘匿処理し、
(3−4)前記秘密加算手段、前記秘密乗算手段、前記秘密定数倍手段、前記秘密減算手段によって、
を行って、D(n)の断片d1 (n),d2 (n),d3 (n)を分散して記録した状態にし、
(4−1)前記計算装置は、それぞれc1 (n)=0、i=1のように初期設定を行い、
(4−2)前記計算装置Xは、
を計算し、前記計算装置Yと前記計算装置Zは、
を計算し、
(4−3)前記計算装置100は、それぞれ
ci+1 (n)=ci (n)b1 (n)[i]∨ci (n)b21 (n)[i]∨b1 (n)[i]b21 (n)[i]
を計算し、
(4−4)前記計算装置は、i=1からn−1まで上記の(4−2)と(4−3)を繰返し、
(5−1)cn (n)=0ならば、各計算装置は、分散して記録しているD(n)の断片を、各計算装置が分散して記録するA[n]の断片とし、cn (n)=1ならば各計算装置が断片を分散して記録しているD(n)の否定を前記秘密否定手段で計算し、D(n)の否定の断片を、各計算装置が記録するA[n]の断片とし、
(5−2)n=Nかを確認し、Noの場合には、nにn+1を代入して上記(3−2)に戻り、Yesの場合には処理を終了する
ことを特徴とする秘密計算システム。 - 請求項25記載の計算装置と、
請求項26記載の計算装置と、
請求項27記載の計算装置とを用いて秘密計算を行う秘密計算方法であって、
前記第1加算部、前記第2加算部、前記第3加算部を用いて秘密加算を行う秘密加算過程と、
前記第1減算部、前記第2減算部、前記第3減算部を用いて秘密減算を行う秘密減算過程と、
前記第1定数倍計算部、前記第2定数倍計算部、前記第3定数倍計算部を用いて秘密定数倍を行う秘密定数倍過程と、
前記乗算乱数生成部、前記第1乗算部、前記第1乗算送信部、前記第2乗算乱数受信部、前記第2乗算中間値計算部、前記第2乗算送信部、前記第2乗算中間値受信部、前記第2乗算部、前記第3乗算乱数受信部、前記第3乗算中間値計算部、前記第3乗算送信部、前記第3乗算中間値受信部、前記第3乗算部を用いて秘密乗算を行う秘密乗算過程と、
前記第1否定部、前記第2否定部、前記第3否定部を用いて秘密否定を行う秘密否定過程と、
少なくとも前記計算装置Xの断片生成部と断片分配部と、前記計算装置Yの断片生成部と断片分配部を用いて秘匿処理を行う秘匿処理過程と、
を有し、
さらに、数値Aを2進数に変換するための秘密2進変換過程も有しており、
前記秘密2進変換過程は、
(1)前記秘匿処理過程を用いて、第1断片a1[1],…,a1[N]と、第1要素a21[1],…,a21[N]を秘匿処理するステップと、
(2)前記秘密加算過程、前記秘密乗算過程、前記秘密定数倍過程、前記秘密減算過程を用いて、
を行って、各前記計算装置が、A[1]の断片を分散して記録した状態とするステップと、
(3−1)n=2のように初期設定を行うステップと、
(3−2)前記秘密定数倍過程、前記秘密加算過程、前記秘密減算過程を用いて、
を行って、各前記計算装置が、B(n)の断片b1 (n),b2 (n),b3 (n)を分散して記録した状態とするステップと、
(3−3)前記秘匿処理過程を用いて、B(n)の第1断片b1 (n)とB(n)の第1要素b21 (n)を秘匿処理するステップと、
(3−4)前記秘密加算過程、前記秘密乗算過程、前記秘密定数倍過程、前記秘密減算過程を用いて、
を行って、D(n)の断片d1 (n),d2 (n),d3 (n)を分散して記録した状態にするステップと、
(4−1)前記計算装置が、それぞれc1 (n)=0、i=1のように初期設定を行うステップと、
(4−2)前記計算装置Xが、
を計算し、前記計算装置Yと前記計算装置Zが、
を計算するステップと、
(4−3)前記計算装置100が、それぞれ
ci+1 (n)=ci (n)b1 (n)[i]∨ci (n)b21 (n)[i]∨b1 (n)[i]b21 (n)[i]
を計算するステップと、
(4−4)前記計算装置が、i=1からn−1まで上記の(4−2)と(4−3)を繰返し、
(5−1)cn (n)=0ならば、各計算装置が、分散して記録しているD(n)の断片を、各計算装置が分散して記録するA[n]の断片とし、cn (n)=1ならば各計算装置が断片を分散して記録しているD(n)の否定を前記秘密否定過程で計算し、D(n)の否定の断片を、各計算装置が記録するA[n]の断片とするステップと、
(5−2)n=Nかを確認し、Noの場合には、nにn+1を代入して上記(3−2)に戻り、Yesの場合には処理を終了するステップと
を有することを特徴とする秘密計算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010117721A JP5400705B2 (ja) | 2010-02-24 | 2010-05-21 | 秘密計算システム、秘密計算方法、計算装置 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010038664 | 2010-02-24 | ||
JP2010038664 | 2010-02-24 | ||
JP2010117721A JP5400705B2 (ja) | 2010-02-24 | 2010-05-21 | 秘密計算システム、秘密計算方法、計算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011199821A JP2011199821A (ja) | 2011-10-06 |
JP5400705B2 true JP5400705B2 (ja) | 2014-01-29 |
Family
ID=44877405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010117721A Active JP5400705B2 (ja) | 2010-02-24 | 2010-05-21 | 秘密計算システム、秘密計算方法、計算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5400705B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5677252B2 (ja) * | 2010-09-24 | 2015-02-25 | ミツビシ・エレクトリック・リサーチ・ラボラトリーズ・インコーポレイテッド | 第1のベクトルおよび第2のベクトルに関数を適用した結果を求めるための方法、および第3のプロセッサを用いて第1のベクトルおよび第2のベクトルに関数を適用した結果を求めるためのシステム |
US10417442B2 (en) | 2015-02-09 | 2019-09-17 | Nec Corporation | Server device, data search system, search method, and recording medium for extracting concealed data |
US10749671B2 (en) | 2015-04-03 | 2020-08-18 | Nec Corporation | Secure computation system, server apparatus, secure computation method, and program |
EP3346455B1 (en) | 2015-08-31 | 2020-09-30 | Nec Corporation | Secret calculation system, secret calculation apparatus, and secret calculation method |
WO2019176520A1 (ja) * | 2018-03-12 | 2019-09-19 | 日本電信電話株式会社 | 秘密計算装置、秘密計算方法、プログラム、および記録媒体 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0373990A (ja) * | 1989-05-18 | 1991-03-28 | Toshiba Corp | 分散型情報処理装置 |
JP4565628B2 (ja) * | 2004-11-26 | 2010-10-20 | 日本電信電話株式会社 | 秘密計算方法及びシステム、並びにプログラム |
JP5578754B2 (ja) * | 2007-01-22 | 2014-08-27 | 日本電信電話株式会社 | 暗号変換方法および装置、並びにプログラム |
JP4979068B2 (ja) * | 2007-01-22 | 2012-07-18 | 日本電信電話株式会社 | 秘匿関数計算方法及び装置、並びにプログラム |
-
2010
- 2010-05-21 JP JP2010117721A patent/JP5400705B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2011199821A (ja) | 2011-10-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11586743B2 (en) | Secure data processing | |
US11811923B2 (en) | Single node multi-party encryption | |
Niemiec | Error correction in quantum cryptography based on artificial neural networks | |
JP5400705B2 (ja) | 秘密計算システム、秘密計算方法、計算装置 | |
CN108629193B (zh) | 一种针对人工神经网络模型的加密保护系统及方法 | |
JP7259876B2 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
Zhang et al. | Multi-party quantum summation without a trusted third party based on single particles | |
CN110999200B (zh) | 一种用于评估监测函数以确定是否满足触发条件的方法及系统 | |
CN113591146A (zh) | 基于合作的高效安全两方计算系统及计算方法 | |
Tao et al. | Two semi-quantum direct communication protocols with mutual authentication based on bell states | |
US11599681B2 (en) | Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program | |
US20240178989A1 (en) | Polynomial representation of nn for communication-less smpc and method of performing statistical information-theoretical secure (sits) distributed communication-less smpc (dclsmpc) of a distributed unknown finite state machine (dufsm) | |
Yang et al. | Fault tolerant quantum key distributions using entanglement swapping of GHZ states over collective-noise channels | |
Nilesh et al. | Quantum blockchain based on dimensional lifting generalized gram-schmidt procedure | |
US11895230B2 (en) | Information processing apparatus, secure computation method, and program | |
Musanna et al. | Quantum secret sharing using GHZ state qubit positioning and selective qubits strategy with simulation analysis | |
Lai et al. | Hybrid threshold adaptable quantum secret sharing scheme with reverse Huffman-Fibonacci-tree coding | |
JP7259875B2 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
Ueno et al. | Tackling biased PUFs through biased masking: A debiasing method for efficient fuzzy extractor | |
Deryabin et al. | Secure verifiable secret short sharing scheme for multi-cloud storage | |
CN114422130A (zh) | 一种基于量子幂函数混淆的量子加密方法 | |
CN110011797B (zh) | 一种基于d级单粒子的量子秘密共享方法 | |
Hinkelmann et al. | A cryptographically t‐private auction system | |
JP7334789B2 (ja) | 秘密計算システム、秘密計算サーバ、補助サーバ、秘密計算方法及びプログラム | |
Raina et al. | Recovery from an eavesdropping attack on a qubit of a graph state |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20110701 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120830 |
|
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: 20131015 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131025 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5400705 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |