JP5438650B2 - 不正検知方法、秘密計算システム、計算装置、計算プログラム - Google Patents
不正検知方法、秘密計算システム、計算装置、計算プログラム Download PDFInfo
- Publication number
- JP5438650B2 JP5438650B2 JP2010221723A JP2010221723A JP5438650B2 JP 5438650 B2 JP5438650 B2 JP 5438650B2 JP 2010221723 A JP2010221723 A JP 2010221723A JP 2010221723 A JP2010221723 A JP 2010221723A JP 5438650 B2 JP5438650 B2 JP 5438650B2
- Authority
- JP
- Japan
- Prior art keywords
- computing device
- calculation
- fragments
- fragment
- mod
- 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
Description
X=x0+x1+x2 mod M
の関係を満たすとする。
D=Sa0+Sa1+Sa2 mod M
の秘密計算を行い、計算装置P0に断片(d0,d1)を取得させ、計算装置P1に断片(d1,d2)を取得させ、計算装置P2に断片(d2,d0)を取得させる。第2乗算結果分散手段は、
E=DB mod M
の秘密計算を行い、計算装置P0に断片(e0,e1)を取得させ、計算装置P1に断片(e1,e2)を取得させ、計算装置P2に断片(e2,e0)を取得させる。
f=e1+e2−Sc1−Sc2 mod M
を計算させ、計算装置P2に
g=e0−Sc0 mod M
を計算させ、計算装置P1または計算装置P2に
f+g=0 mod M
かを確認させる。もしくは、乗算確認手段は、計算装置P1に
f=e1−Sc1 mod M
を計算させ、計算装置P2に
g=e2+e0−Sc2−Sc0 mod M
を計算させ、計算装置P1または計算装置P2に
f+g=0 mod M
かを確認させる。
X=x0+x1+x2 mod M
ただし、Mは2以上の整数
の関係を満たすとする。なお、計算装置Pn(ただし、nは0,1,2のいずれか)として動作する計算装置の各構成部を、データ取得部110n、乱数共有部120n、第1乗算結果分散部130n、乗算結果加算部140n、第2乗算結果分散部150n、乗算確認部160n、記録部190nと表記する。
C=AB mod M
の秘密計算を実行して、断片を計算装置P0,P1,P2が取得した数値である。
D=Sa0+Sa1+Sa2 mod M
の秘密計算を行い、計算装置P0が断片(d0,d1)を取得し、計算装置P1が断片(d1,d2)を取得し、計算装置P2が断片(d2,d0)を取得する(S140)。
E=DB mod M
の秘密計算を行い、計算装置P0が断片(e0,e1)を取得し、計算装置P1が断片(e1,e2)を取得し、計算装置P2が断片(e2,e0)を取得する(S150)。なお、数値D,Eは、上述のように、計算装置P0,P1,P2の間で
D=SA mod M
E=DB mod M =SAB mod M
の秘密計算を実行して、断片を計算装置P0,P1,P2が取得した数値である。このように計算を行うので、数値D,Eは、計算装置P0,P1,P2のどの装置も知らない数値である。
f=e1+e2−Sc1−Sc2 mod M
を計算し、計算装置P2の乗算確認部1602は、
g=e0−Sc0 mod M
を計算し、計算装置P1の乗算確認部1601または計算装置P2の乗算確認部1602は、
f+g=0 mod M
かを確認する(S160)。この式が成り立つ場合には計算装置P0は不正を行っていないと判断し、成り立たない場合は計算装置P0が不正を行ったと判断する。もしくは、ステップS160として、計算装置P1の乗算確認部1601は、
f=e1−Sc1 mod M
を計算し、計算装置P2の乗算確認部1602は、
g=e2+e0−Sc2−Sc0 mod M
を計算し、計算装置P1の乗算確認部1601または計算装置P2の乗算確認部1602は、
f+g=0 mod M
かを確認する。そして、この式が成り立つ場合には計算装置P0は不正を行っていないと判断し、成り立たない場合は計算装置P0が不正を行ったと判断する。なお、
f+g=0 mod M
の確認を計算装置P1で行う場合は計算装置P1は計算装置P2からgを受信した上で、計算装置P2で行う場合は計算装置P2は計算装置P1からfを受信した上で確認を行う。
[不正が検知できる理由]
次に、上述の乗算の不正検知について補足説明する。
=DB−SC mod M
=SAB−SC mod M
が成り立つから、秘密計算システムが正しく動作すれば
f+g=0 mod M
となる。計算装置P0が不正データを送信した場合、e0,e1,e2,c0,c1,c2が不正データとなり得る。これをe’0,e’1,e’2,c’0,c’1,c’2とおくと、計算装置P0は
f’=e’1+e’2−Sc’1−Sc’2 mod M
g’=e’0−Sc’0 mod M
もしくは、
f’=e’1−Sc’1 mod M
g’=e’2+e’0−Sc’2−Sc’0 mod M
について
f’+g’=0 mod M
となるようにe’0,e’1,e’2,c’0,c’1,c’2を選ぶ必要がある。ここで、本来の値と不正値の差分を
ΔC=C−(c’0+c’1+c’2) mod M
ΔE=SC−(e’0+e’1+e’2) mod M
とおくと、
f’+g’=(SC−ΔE)−S(C−ΔC) mod M
となるから、
f’+g’=0 mod M ⇔ ΔE=SΔC mod M
成り立ち、任意のSについて
f’+g’=0 mod M
が成り立つためには
ΔE=ΔC=0
でなければならないので、不正が成立しない。なお、不正が成立するためには、
ΔE≠0またはΔC≠0として
f’+g’=0 mod M
が成り立つ、すなわちΔE=SΔC mod Mが成り立つ必要がある。しかし、計算装置P0がSを知らない限り、Mが大きく、かつSとMの最大公約数が小さければこれは困難である。
U=C−C’ mod M
の秘密計算と、
V=C−C” mod M
の秘密計算とを行い、計算装置P0が断片(u0,u1),(v0,v1)を取得し、計算装置P1が断片(u1,u2),(v1,v2)を取得し、計算装置P2が断片(u2,u0),(v2,v0)を取得する(S170)。
減算確認部1800、1801、1802が、数値UとVを復元し、U=0かつV=0であることを確認する(S180)。
C’≠AB mod M
または
C”≠AB mod M
となった場合、ステップS180で不正が検知できる。したがって、実施例2の秘密計算システムによれば、実施例1と同じ効果が得られるだけでなく、乗算の秘密計算において各計算装置の不正処理を検知できる。
実施例1、実施例2の説明では、秘密計算については、1つの方法に限定しないことを前提としており、具体例は示さなかった。以下では、本発明の秘密計算システムの各構成部が利用できる基本的な秘密計算の具体例を示す。なお、以下の説明では、計算装置1000,1001,1002が分散して記録する数値Aの断片を(a0,a1),(a1,a2),(a2,a0)、数値Bの断片を(b0,b1),(b1,b2),(b2,b0)、数値Cの断片を(c0,c1),(c1,c2),(c2,c0)とする。また、Mを2以上の整数とする。
(1)0以上M未満の整数の乱数a0,a1を生成する。
(2)a2=A−a0−a1を計算し、断片を(a0,a1),(a1,a2),(a2,a0)とし、計算装置P0,P1,P2に分散して記録する。
(1)計算装置P0は計算装置P1にa0を送信し、計算装置P2にa1を送信する。計算装置P1は計算装置P2にa1を送信し、計算装置P0にa2を送信する。計算装置P2は計算装置P0にa2を送信し、計算装置P1にa0を送信する。
(2)計算装置P0は計算装置P1から受信したa2と計算装置P2から受信したa2とが一致していれば、
a0+a1+a2 mod M
を計算して数値Aを復元する。計算装置P1は計算装置P2から受信したa0と計算装置P0から受信したa0とが一致していれば、
a0+a1+a2 mod M
を計算して数値Aを復元する。計算装置P2は計算装置P0から受信したa1と計算装置P1から受信したa1とが一致していれば、
a0+a1+a2 mod M
を計算して数値Aを復元する。
計算装置P0は
(c0,c1)=(a0+b0 mod M,a1+b1 mod M)
を計算して記録し、計算装置P1は
(c1,c2)=(a1+b1 mod M,a2+b2 mod M)
を計算して記録し、計算装置P2は
(c2,c0)=(a2+b2 mod M,a0+b0 mod M)
を計算して記録する。
計算装置P0は
(c0,c1)=(a0−b0 mod M,a1−b1 mod M)
を計算して記録し、計算装置P1は
(c1,c2)=(a1−b1 mod M,a2−b2 mod M)
を計算して記録し、計算装置P2は
(c2,c0)=(a2−b2 mod M,a0−b0 mod M)
を計算して記録する。
計算装置P0は
(c0,c1)=(a0+S mod M,a1)
を計算して記録し、計算装置P2は
(c2,c0)=(a2,a0+S mod M)
を計算して記録する。計算装置P1の処理はない。
計算装置P0は
(c0,c1)=(a0S mod M,a1S mod M)
を計算して記録し、計算装置P1は
(c1,c2)=(a1S mod M,a2S mod M)
を計算して記録し、計算装置P2は
(c2,c0)=(a2S mod M,a0S mod M)
を計算して記録する。
(1)計算装置P0は、0以上M未満の整数の乱数r1,r2,c0を生成し、
c1=(a0+a1)(b0+b1)−r1−r2−c0 mod M
を計算する。そして、計算装置P0は、計算装置P1に(r1,c1)を、計算装置P2に(r2,c0)を送信する。
(2)計算装置P1は、
y=a1b2+a2b1+r1 mod M
を計算し、計算装置P2に送信する。
(3)計算装置P2は、
z=a2b0+a0b2+r2 mod M
を計算し、計算装置P0に送信する。
(4)計算装置P1と計算装置P2は、それぞれ
c2=y+z+a2b2 mod M
を計算する。
(5)計算装置P0は(c0,c1)を記録し、計算装置P1は(c1,c2)を記録し、計算装置P2は(c2,c0)を記録する。
計算装置P0は
(c0,c1)=(1−a0,−a1 mod M)
を計算して記録し、計算装置P1は
(c1,c2)=(−a1 mod M,−a2 mod M)
を計算して記録し、計算装置P2は
(c2,c0)=(−a2 mod M,1−a0)
を計算して記録する。
計算装置P0,P1,P2は、整数の乗算(C=AB mod M)の秘密計算と同じ処理を行う。
(1)計算装置P0,P1,P2は、整数の加算(C=A+B mod M)の秘密計算と同じ処理を行い、C’=A+Bの結果として、計算装置P0が断片(c0’,c1’)を、計算装置P1が断片(c1’,c2’)を、計算装置P2が断片(c2’,c0’)を記録する。また、計算装置P0,P1,P2は、整数の乗算(C=AB mod M)の秘密計算と同じ処理を行い、C”=ABの結果として、計算装置P0が断片(c0”,c1”)を、計算装置P1が断片(c1”,c2”)を、計算装置P2が断片(c2”,c0”)を記録する。
(2)計算装置P0,P1,P2は、S=−1として整数の乗算(C=AS mod M)の秘密計算(ただし、Sは既知の定数)と同じ処理を行い、C’’’=−C”の結果として、計算装置P0が断片(c0’’’,c1’’’)を、計算装置P1が断片(c1’’’,c2’’’)を、計算装置P2が断片(c2’’’,c0’’’)を記録する。
(3)計算装置P0,P1,P2は、整数の加算(C=A+B mod M)の秘密計算と同じ処理を行い、C=C’+C’’’の結果として、計算装置P0が断片(c0,c1)を、計算装置P1が断片(c1,c2)を、計算装置P2が断片(c2,c0)を記録する。
(1)計算装置P0,P1,P2は、整数の加算(C=A+B mod M)の秘密計算と同じ処理を行い、C’=A+Bの結果として、計算装置P0が断片(c0’,c1’)を、計算装置P1が断片(c1’,c2’)を、計算装置P2が断片(c2’,c0’)を記録する。また、計算装置P0,P1,P2は、整数の乗算(C=AB mod M)の秘密計算と同じ処理を行い、C”=ABの結果として、計算装置P0が断片(c0”,c1”)を、計算装置P1が断片(c1”,c2”)を、計算装置P2が断片(c2”,c0”)を記録する。
(2)計算装置P0,P1,P2は、S=−2として整数の乗算(C=AS mod M)の秘密計算(ただし、Sは既知の定数)の秘密計算と同じ処理を行い、C’’’=−2C”の結果として、計算装置P0が断片(c0’’’,c1’’’)を、計算装置P1が断片(c1’’’,c2’’’)を、計算装置P2が断片(c2’’’,c0’’’)を記録する。
(3)計算装置P0,P1,P2は、整数の加算(C=A+B mod M)の秘密計算と同じ処理を行い、C=C’+C’’’の結果として、計算装置P0が断片(c0,c1)を、計算装置P1が断片(c1,c2)を、計算装置P2が断片(c2,c0)を記録する。
ビットA(n)の整数変換とは、
x(n)は、xの下位n+1番目のビットを示すものとする。
(1)n=0からN−1について、計算装置1001が(a1+a2 mod M)(n)を秘密分散し、計算装置1000,1001,1002が(a1+a2 mod M)(n)の断片(b(n)0,b(n)1)、(b(n)1,b(n)2)、(b(n)2,b(n)0)を分散して記録する。n=0からN−1について、計算装置1002が(a0)(n)を秘密分散し、計算装置1000,1001,1002が(a0)(n)の断片((a0)(n)0,(a0)(n)1)、((a0)(n)1,(a0)(n)2)、((a0)(n)2,(a0)(n)0)を分散して記録する。
(2)c0=0とし、n=0からN−1について(2−1)から(2−3)の処理を繰返し実行する。
(2−1)dn=b(n)+(a0)(n)−2b(n)(a0)(n)
の秘密計算を実行し、dnの断片を分散して記録する。
(2−2)a(n)=dn+cn−2dncn
の秘密計算を実行し、a(n)の断片を分散して記録する。
(2−3)n<N−1であれば、
cn+1=b(n)(a0)(n)+dncn−b(n)(a0)(n)dncn
の秘密計算を実行し、cn+1の断片を分散して記録する。
計算装置P0は、計算装置P1から受信したa1と自身が記録していたa1が等しいこと、計算装置P2から受信したa0と自身が記録していたa0が等しいことを検証する。計算装置P1は、計算装置P2から受信したa2と自身が記録していたa2が等しいこと、計算装置P0から受信したa1と自身が記録していたa1が等しいことを検証する。計算装置P2は、計算装置P0から受信したa0と自身が記録していたa0が等しいこと、計算装置P1から受信したa2と自身が記録していたa2が等しいことを検証する。すべての検証が成功すればtrueを出力し、いずれかの検証が失敗すればfalseを出力する。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
120 乱数共有部 130 第1乗算結果分散部
140 乗算結果加算部 150 第2乗算結果分散部
160 乗算確認部 170 減算結果分散部
180 減算確認部 190 記録部
1000 ネットワーク
Claims (7)
- 数値Xを3つの計算装置α、β、γで分散して記録し、秘密計算を行う秘密計算システムを用いてC=ABの秘密計算での不正を検知する不正検知方法であって、
Mを2以上の整数、計算装置P0として動作する計算装置が記録する断片を(x0,x1)、計算装置P1として動作する計算装置が記録する断片を(x1,x2)、計算装置P2として動作する計算装置が記録する断片を(x2,x0)、数値Xと断片とは
X=x0+x1+x2 mod M
の関係を満たすとし、
数値A,B,Cの断片として、計算装置P0が断片(a0,a1),(b0,b1),(c0,c1)を取得し、計算装置P1が断片(a1,a2),(b1,b2),(c1,c2)を取得し、計算装置P2が断片(a2,a0),(b2,b0),(c2,c0)を取得するデータ取得ステップと、
計算装置P1と計算装置P2が、ランダムに選んだ2以上M以下の整数Sを共有する乱数共有ステップと、
計算装置P1がSa1を分散し、計算装置P1または計算装置P2がSa2を分散し、計算装置P2がSa0を分散して、計算装置P0が断片((Sa0)0,(Sa0)1),((Sa1)0,(Sa1)1),((Sa2)0,(Sa2)1)を取得し、計算装置P1が断片((Sa0)1,(Sa0)2),((Sa1)1,(Sa1)2),((Sa2)1,(Sa2)2)を取得し、計算装置P2が断片((Sa0)2,(Sa0)0),((Sa1)2,(Sa1)0),((Sa2)2,(Sa2)0)を取得する第1乗算結果分散ステップと、
計算装置P0,P1,P2が、
D=Sa0+Sa1+Sa2 mod M
の秘密計算を行い、計算装置P0が断片(d0,d1)を取得し、計算装置P1が断片(d1,d2)を取得し、計算装置P2が断片(d2,d0)を取得する乗算結果加算ステップと、
計算装置P0,P1,P2が、
E=DB mod M
の秘密計算を行い、計算装置P0が断片(e0,e1)を取得し、計算装置P1が断片(e1,e2)を取得し、計算装置P2が断片(e2,e0)を取得する第2乗算結果分散ステップと、
計算装置P1が
f=e1+e2−Sc1−Sc2 mod M
を計算し、計算装置P2が
g=e0−Sc0 mod M
を計算し、計算装置P1または計算装置P2が
f+g=0 mod M
かを確認する、もしくは、
計算装置P1が
f=e1−Sc1 mod M
を計算し、計算装置P2が
g=e2+e0−Sc2−Sc0 mod M
を計算し、計算装置P1または計算装置P2が
f+g=0 mod M
かを確認する乗算確認ステップと、
を有する不正検知方法。 - 請求項1記載の不正検知方法であって、
計算装置αが記録する断片を(xγα,xαβ)、計算装置βが記録する断片を(xαβ,xβγ)、計算装置γが記録する断片を(xβγ,xγα)とし、
断片(c0,c1),(c1,c2),(c2,c0)は計算装置αが計算装置P0として、計算装置βが計算装置P1として、計算装置γが計算装置P2としてC=ABの秘密計算を行った結果、断片(c’0,c’1),(c’1,c’2),(c’2,c’0)は計算装置αが計算装置P1として、計算装置βが計算装置P2として、計算装置γが計算装置P0としてC=ABの秘密計算を行った結果、断片(c”0,c”1),(c”1,c”2),(c”2,c”0)は計算装置αが計算装置P2として、計算装置βが計算装置P0として、計算装置γが計算装置P1としてC=ABの秘密計算を行った結果とし、
前記データ取得ステップは、計算装置αが断片(a0,a1),(b0,b1),(c0,c1),(c’1,c’2),(c”2,c”0)を取得し、計算装置βが断片(a0,a1),(b0,b1),(c0,c1),(c’2,c”0),(c”0,c”1)を取得し、計算装置γが断片(a0,a1),(b0,b1),(c0,c1),(c’0,c’1),(c”1,c”2)を取得するステップであり、
断片(a0,a1),(a1,a2),(a2,a0)と断片(b0,b1),(b1,b2),(b2,b0)と断片(c0,c1),(c1,c2),(c2,c0)を用いて、計算装置αが計算装置P0として、計算装置βが計算装置P1として、計算装置γが計算装置P2として、前記乱数共有ステップ、前記第1乗算結果分散ステップ、前記乗算結果加算ステップ、前記第2乗算結果分散ステップ、前記乗算確認ステップを実行し、
断片(a’0,a’1),(a’1,a’2),(a’2,a’0)と断片(b’0,b’1),(b’1,b’2),(b’2,b’0)と断片(c’0,c’1),(c’1,c’2),(c’2,c’0)を用いて(ただし、a’0=a2,a’1=a0,a’2=a1,b’0=b2,b’1=b0,b’2=b1)、計算装置αが計算装置P1として、計算装置βが計算装置P2として、計算装置γが計算装置P0として、前記乱数共有ステップ、前記第1乗算結果分散ステップ、前記乗算結果加算ステップ、前記第2乗算結果分散ステップ、前記乗算確認ステップを実行し、
断片(a”0,a”1),(a”1,a”2),(a”2,a”0)と断片(b”0,b”1),(b”1,b”2),(b”2,b”0)と断片(c”0,c”1),(c”1,c”2),(c”2,c”0)を用いて(ただし、a”0=a1,a”1=a2,a”2=a0,b”0=b1,b”1=b2,b”2=b0)、計算装置αが計算装置P2として、計算装置βが計算装置P0として、計算装置γが計算装置P1として、前記乱数共有ステップ、前記第1乗算結果分散ステップ、前記乗算結果加算ステップ、前記第2乗算結果分散ステップ、前記乗算確認ステップを実行し、
計算装置α、β、γが計算装置P0,P1,P2のいずれの計算装置として動作するかを決め、
U=C−C’ mod M
の秘密計算と、
V=C−C” mod M
の秘密計算とを行い、計算装置P0が断片(u0,u1),(v0,v1)を取得し、計算装置P1が断片(u1,u2),(v1,v2)を取得し、計算装置P2が断片(u2,u0),(v2,v0)を取得する減算結果分散ステップと、
計算装置P0,P1,P2が、数値UとVを復元し、U=0かつV=0であることを確認する減算確認ステップと、
を有することを特徴とする不正検知方法。 - 数値Xを3つの計算装置α、β、γで分散して記録し、秘密計算を行う秘密計算システムであって、
Mを2以上の整数、計算装置P0として動作する計算装置が記録する断片を(x0,x1)、計算装置P1として動作する計算装置が記録する断片を(x1,x2)、計算装置P2として動作する計算装置が記録する断片を(x2,x0)、数値Xと断片とは
X=x0+x1+x2 mod M
の関係を満たすとし、
数値A,B,Cの断片として、計算装置P0に断片(a0,a1),(b0,b1),(c0,c1)を取得させ、計算装置P1に断片(a1,a2),(b1,b2),(c1,c2)を取得させ、計算装置P2に断片(a2,a0),(b2,b0),(c2,c0)を取得させるデータ取得手段と、
計算装置P1と計算装置P2に、ランダムに選んだ2以上M以下の整数Sを共有させる乱数共有手段と、
計算装置P1にSa1を分散させ、計算装置P1または計算装置P2にSa2を分散させ、計算装置P2にSa0を分散させて、計算装置P0に断片((Sa0)0,(Sa0)1),((Sa1)0,(Sa1)1),((Sa2)0,(Sa2)1)を取得させ、計算装置P1に断片((Sa0)1,(Sa0)2),((Sa1)1,(Sa1)2),((Sa2)1,(Sa2)2)を取得させ、計算装置P2に断片((Sa0)2,(Sa0)0),((Sa1)2,(Sa1)0),((Sa2)2,(Sa2)0)を取得させる第1乗算結果分散手段と、
D=Sa0+Sa1+Sa2 mod M
の秘密計算を行い、計算装置P0に断片(d0,d1)を取得させ、計算装置P1に断片(d1,d2)を取得させ、計算装置P2に断片(d2,d0)を取得させる乗算結果加算手段と、
E=DB mod M
の秘密計算を行い、計算装置P0に断片(e0,e1)を取得させ、計算装置P1に断片(e1,e2)を取得させ、計算装置P2に断片(e2,e0)を取得させる第2乗算結果分散手段と、
計算装置P1に
f=e1+e2−Sc1−Sc2 mod M
を計算させ、計算装置P2に
g=e0−Sc0 mod M
を計算させ、計算装置P1または計算装置P2に
f+g=0 mod M
かを確認させる、もしくは、
計算装置P1に
f=e1−Sc1 mod M
を計算させ、計算装置P2に
g=e2+e0−Sc2−Sc0 mod M
を計算させ、計算装置P1または計算装置P2に
f+g=0 mod M
かを確認させる乗算確認手段と、
を有する秘密計算システム。 - 請求項3記載の秘密計算システムであって、
計算装置αが記録する断片を(xγα,xαβ)、計算装置βが記録する断片を(xαβ,xβγ)、計算装置γが記録する断片を(xβγ,xγα)とし、
断片(c0,c1),(c1,c2),(c2,c0)は計算装置αが計算装置P0として、計算装置βが計算装置P1として、計算装置γが計算装置P2としてC=ABの秘密計算を行った結果、断片(c’0,c’1),(c’1,c’2),(c’2,c’0)は計算装置αが計算装置P1として、計算装置βが計算装置P2として、計算装置γが計算装置P0としてC=ABの秘密計算を行った結果、断片(c”0,c”1),(c”1,c”2),(c”2,c”0)は計算装置αが計算装置P2として、計算装置βが計算装置P0として、計算装置γが計算装置P1としてC=ABの秘密計算を行った結果とし、
前記データ取得手段は、計算装置αに断片(a0,a1),(b0,b1),(c0,c1),(c’1,c’2),(c”2,c”0)を取得させ、計算装置βに断片(a0,a1),(b0,b1),(c0,c1),(c’2,c”0),(c”0,c”1)を取得させ、計算装置γに断片(a0,a1),(b0,b1),(c0,c1),(c’0,c’1),(c”1,c”2)を取得させる手段であり、
断片(a0,a1),(a1,a2),(a2,a0)と断片(b0,b1),(b1,b2),(b2,b0)と断片(c0,c1),(c1,c2),(c2,c0)を用いて、計算装置αが計算装置P0として、計算装置βが計算装置P1として、計算装置γが計算装置P2として、前記乱数共有手段、前記第1乗算結果分散手段、前記乗算結果加算手段、前記第2乗算結果分散手段、前記乗算確認手段を実行し、
断片(a’0,a’1),(a’1,a’2),(a’2,a’0)と断片(b’0,b’1),(b’1,b’2),(b’2,b’0)と断片(c’0,c’1),(c’1,c’2),(c’2,c’0)を用いて(ただし、a’0=a2,a’1=a0,a’2=a1,b’0=b2,b’1=b0,b’2=b1)、計算装置αが計算装置P1として、計算装置βが計算装置P2として、計算装置γが計算装置P0として、前記乱数共有手段、前記第1乗算結果分散手段、前記乗算結果加算手段、前記第2乗算結果分散手段、前記乗算確認手段を実行し、
断片(a”0,a”1),(a”1,a”2),(a”2,a”0)と断片(b”0,b”1),(b”1,b”2),(b”2,b”0)と断片(c”0,c”1),(c”1,c”2),(c”2,c”0)を用いて(ただし、a”0=a1,a”1=a2,a”2=a0,b”0=b1,b”1=b2,b”2=b0)、計算装置αが計算装置P2として、計算装置βが計算装置P0として、計算装置γが計算装置P1として、前記乱数共有手段、前記第1乗算結果分散手段、前記乗算結果加算手段、前記第2乗算結果分散手段、前記乗算確認手段を実行し、
計算装置α、β、γが計算装置P0,P1,P2のいずれの計算装置として動作するかを決め、
U=C−C’ mod M
の秘密計算と、
V=C−C” mod M
の秘密計算とを行い、計算装置P0に断片(u0,u1),(v0,v1)を取得させ、計算装置P1に断片(u1,u2),(v1,v2)を取得させ、計算装置P2に断片(u2,u0),(v2,v0)を取得させる減算結果分散手段と、
数値UとVを復元し、U=0かつV=0であることを確認する減算確認手段と、
を備える秘密計算システム。 - 数値Xを3つの計算装置α、β、γで分散して記録し、秘密計算を行う秘密計算システムの計算装置であって、
Mを2以上の整数、計算装置P0として動作する計算装置が記録する断片を(x0,x1)、計算装置P1として動作する計算装置が記録する断片を(x1,x2)、計算装置P2として動作する計算装置が記録する断片を(x2,x0)、数値Xと断片とは
X=x0+x1+x2 mod M
の関係を満たすとし、
数値A,B,Cの断片として、計算装置P0として動作するときは断片(a0,a1),(b0,b1),(c0,c1)を取得し、計算装置P1として動作するときは断片(a1,a2),(b1,b2),(c1,c2)を取得し、計算装置P2として動作するときは断片(a2,a0),(b2,b0),(c2,c0)を取得するデータ取得部と、
計算装置P1として動作するときは、ランダムに選んだ2以上M以下の整数Sを計算装置P2と共有し、計算装置P2として動作するときは、ランダムに選んだ2以上M以下の整数Sを計算装置P1と共有する乱数共有部と、
計算装置P1として動作するときはSa1を分散し、計算装置P1または計算装置P2として動作するときはSa2を分散し、計算装置P2として動作するときはSa0を分散し、計算装置P0として動作するときは断片((Sa0)0,(Sa0)1),((Sa1)0,(Sa1)1),((Sa2)0,(Sa2)1)を取得し、計算装置P1として動作するときは断片((Sa0)1,(Sa0)2),((Sa1)1,(Sa1)2),((Sa2)1,(Sa2)2)を取得し、計算装置P2として動作するときは断片((Sa0)2,(Sa0)0),((Sa1)2,(Sa1)0),((Sa2)2,(Sa2)0)を取得する第1乗算結果分散部と、
D=Sa0+Sa1+Sa2 mod M
の秘密計算を行い、計算装置P0として動作するときは断片(d0,d1)を取得し、計算装置P1として動作するときは断片(d1,d2)を取得し、計算装置P2として動作するときは断片(d2,d0)を取得する乗算結果加算部と、
E=DB mod M
の秘密計算を行い、計算装置P0として動作するときは断片(e0,e1)を取得し、計算装置P1として動作するときは断片(e1,e2)を取得し、計算装置P2として動作するときは断片(e2,e0)を取得する第2乗算結果分散部と、
計算装置P1として動作するときは
f=e1+e2−Sc1−Sc2 mod M
を計算し、計算装置P2として動作するときは
g=e0−Sc0 mod M
を計算し、計算装置P1または計算装置P2として動作するときは
f+g=0 mod M
かを確認する、もしくは、
計算装置P1として動作するときは
f=e1−Sc1 mod M
を計算し、計算装置P2として動作するときは
g=e2+e0−Sc2−Sc0 mod M
を計算し、計算装置P1または計算装置P2として動作するときは
f+g=0 mod M
かを確認する乗算確認手段と、
を備える計算装置。 - 請求項5記載の計算装置であって、
U=C−C’ mod M
の秘密計算と、
V=C−C” mod M
の秘密計算とを行い、計算装置P0として動作するときは断片(u0,u1),(v0,v1)を取得し、計算装置P1として動作するときは断片(u1,u2),(v1,v2)を取得し、計算装置P2として動作するときは断片(u2,u0),(v2,v0)を取得する減算結果分散部と、
数値UとVを復元し、U=0かつV=0であることを確認する減算確認部
も備える計算装置。 - 請求項5または6記載の計算装置としてコンピュータを機能させる計算プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010221723A JP5438650B2 (ja) | 2010-09-30 | 2010-09-30 | 不正検知方法、秘密計算システム、計算装置、計算プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010221723A JP5438650B2 (ja) | 2010-09-30 | 2010-09-30 | 不正検知方法、秘密計算システム、計算装置、計算プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012078446A JP2012078446A (ja) | 2012-04-19 |
JP5438650B2 true JP5438650B2 (ja) | 2014-03-12 |
Family
ID=46238795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010221723A Active JP5438650B2 (ja) | 2010-09-30 | 2010-09-30 | 不正検知方法、秘密計算システム、計算装置、計算プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5438650B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6016948B2 (ja) * | 2013-01-17 | 2016-10-26 | 日本電信電話株式会社 | 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム |
JP6493697B2 (ja) * | 2014-09-19 | 2019-04-03 | 日本電気株式会社 | 秘密計算装置、方法、記録媒体、および秘密計算システム |
WO2018061391A1 (ja) * | 2016-09-30 | 2018-04-05 | 日本電気株式会社 | 秘密計算システム、秘密計算装置、秘密計算方法および秘密計算プログラム |
WO2018211676A1 (en) * | 2017-05-18 | 2018-11-22 | Nec Corporation | Multiparty computation method, apparatus and program |
JP6810393B2 (ja) | 2017-05-18 | 2021-01-06 | 日本電気株式会社 | 数値分散装置、送信情報生成装置、秘密計算装置、方法、プログラム、および秘密計算システム |
US11456862B2 (en) * | 2017-07-05 | 2022-09-27 | Nippon Telegraph And Telephone Corporation | Secure computation system, secure computation apparatus, secure computation method, and recording medium |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0353367A (ja) * | 1989-07-20 | 1991-03-07 | Toshiba Corp | 分散型情報処理システム |
JPH0619393A (ja) * | 1992-03-31 | 1994-01-28 | Toshiba Corp | 依頼計算装置 |
JP4706811B2 (ja) * | 2000-09-06 | 2011-06-22 | ネッツエスアイ東洋株式会社 | 依頼計算を用いた演算装置、及び記録媒体 |
JP5578754B2 (ja) * | 2007-01-22 | 2014-08-27 | 日本電信電話株式会社 | 暗号変換方法および装置、並びにプログラム |
JP5047198B2 (ja) * | 2008-01-21 | 2012-10-10 | 日本電信電話株式会社 | 秘密計算システム、秘密計算方法、秘密計算装置、検証装置、およびプログラム |
WO2009142285A1 (ja) * | 2008-05-23 | 2009-11-26 | 日本電気株式会社 | 分散情報生成装置 |
-
2010
- 2010-09-30 JP JP2010221723A patent/JP5438650B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2012078446A (ja) | 2012-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8656175B2 (en) | Secure processing device, secure processing method, encrypted confidential information embedding method, program, storage medium, and integrated circuit | |
JP5438650B2 (ja) | 不正検知方法、秘密計算システム、計算装置、計算プログラム | |
CN101682612B (zh) | 受控的功能激活 | |
JP5957095B2 (ja) | 改ざん検知装置、改ざん検知方法、およびプログラム | |
US10083314B2 (en) | Secret parallel processing device, secret parallel processing method, and program | |
JP2022141772A (ja) | ブロックチェーンのための暗号化データ共有管理 | |
JPWO2012046692A1 (ja) | 秘密分散システム、秘密分散装置、秘密分散方法、秘密ソート方法、秘密分散プログラム | |
CN104919752A (zh) | 秘密密钥分割保管系统、分割保管装置、秘密密钥分割保管方法 | |
US9449193B2 (en) | Information processing apparatus | |
US10950144B2 (en) | Secret falsification detecting system, secret computation apparatus, secret falsification detecting method, and program | |
JP2021507615A (ja) | パスワード認証のための準同型暗号 | |
JP7318490B2 (ja) | 暗号処理システム及び暗号処理方法 | |
JP6053238B2 (ja) | 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム | |
JP5972181B2 (ja) | 改ざん検知装置、改ざん検知方法、およびプログラム | |
JP2015513156A (ja) | ビザンチン・フォールトトレランス及び閾値コイントス | |
CN109818965A (zh) | 个人身份验证装置及方法 | |
WO2013153628A1 (ja) | 演算処理システムおよび演算結果認証方法 | |
CN114026586A (zh) | 用于授予对加密资产的访问权的零知识或有支付协议 | |
CN101556638A (zh) | 数据处理设备 | |
CN113132078A (zh) | 一种基于同态承诺的区块链隐私保护方法及区块链系统 | |
JP2013009245A (ja) | 秘密情報分散システム及び秘密情報分散方法並びに秘密情報生成プログラム及び秘密情報復元プログラム | |
JP6251163B2 (ja) | 暗号化署名システム、暗号化署名装置、調停装置、暗号化検証装置、暗号化署名演算装置、暗号化署名方法、プログラム | |
CN110210189A (zh) | 软件验证方法、软硬件绑定方法及其可编程器件 | |
JP6059160B2 (ja) | シェア変換システム、シェア変換方法、プログラム | |
KR102234542B1 (ko) | 블록 체인 기반 영상 저작물 관리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121026 |
|
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: 20131203 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131213 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5438650 Country of ref document: JP 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 |