JP7219437B2 - 秘匿演算変換システム、秘匿演算変換方法、および、秘匿演算変換プログラム - Google Patents
秘匿演算変換システム、秘匿演算変換方法、および、秘匿演算変換プログラム Download PDFInfo
- Publication number
- JP7219437B2 JP7219437B2 JP2018139191A JP2018139191A JP7219437B2 JP 7219437 B2 JP7219437 B2 JP 7219437B2 JP 2018139191 A JP2018139191 A JP 2018139191A JP 2018139191 A JP2018139191 A JP 2018139191A JP 7219437 B2 JP7219437 B2 JP 7219437B2
- Authority
- JP
- Japan
- Prior art keywords
- secret
- data
- conversion
- negotiation
- arithmetic
- 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、Yの長さnをベクトル次数と呼ぶ。
また、ベクトルXを機関P1が繰り返し用いた場合、機関P2がベクトルXに関する情報を引き出すことができるという安全上の問題がある。また、n/r回のn次元のベクトルの送受信を必要としており、安全性を向上させようとすると大量の情報を送受信することとなり効率上の問題もある。
機関P1は自分の公開鍵K=g S (mod P) (ここで、gは原始元、Pは素数、Sは秘密鍵であり、以降、暗号文の計算では (mod P)を省略することがある。)を公開した上で、各顧客の利用金額Xiの暗号値(2X iKr i, gr i) (ここで、riは乱数とする)からなる暗号文ベクトルを作成し、機関P2に送信する。
暗号文を受け取った機関P1は暗号文2項組を自身の秘密鍵を用いて復号し、得られた平文の2の対数を求めることにより値Φ=Σ1≦i≦n XiYi + Rを得る。値Φと値Ψを機関P1、機関P2で交換することにより、互いに内積値を求めることができる。
Paillier方式では公開鍵を提供する公開者が秘密鍵となる2つの大きな素数p、qを選定し、N=p×qを満たすNと乱数kを選び、g=(1+kN)modN2を満たすgを求めることにより公開鍵Pk=(N,g)を作成する。
平文mを暗号化するには乱数rを用いて、C=gmrNmodNを計算することで暗号文Cを作成する。一方、復号はm=(L(CλmodN2)/L(gλmodN2))modNを計算することで実行される。ここで、関数L(U)はL(U)=(U-1)/Nと定義され、λはp-1とq-1の最小公倍数lcm(p-1、q-1)と等しいとする。λはユークリッドの互除法により効率よく求めることができる。
同様に、暗号文C1を用いて、C3=C1 m2 modNを計算すると、C3はC3=gm1m2(r1 m2)N mod N=EPk(m1m2、r1 m2)を満たし、乗法準同型性を満たすことより、C1を利用してm1にm2を乗算した暗号文C3を作成できる。
前記演算処理手段は、前記秘密データと他の前記データ処理装置が記憶する秘密データを入力として前記変換前演算型Aの演算を行ったときの結果と、前記出力データと前記他のデータ処理装置の出力データを入力として前記変換後演算型Bを行ったときの結果が同じであることを保証する、
ことを特徴とする。
前記演算処理ステップは、前記秘密データと他のデータ処理装置の秘密データを入力として前記変換前演算型Aの演算を行った時の結果と前記出力データと他のデータ処理装置のもつ出力データを入力として前記変換後演算型Bの演算を行った時の結果が同じ値であることを保証する、
ことを特徴とする。
前記データ処理装置はそれぞれの秘密データを記憶する秘密データ記憶ステップと、それぞれの出力データを記憶する出力データ記憶ステップと、前記交渉秘密情報を記憶する交渉秘密情報記憶ステップと、前記秘密データを入力として、他の前記データ処理装置と連携して、演算変換方式型に従って、前記出力データを秘匿に計算する演算処理ステップを有し、
前記演算処理ステップは、前記秘密データと他のデータ処理装置の秘密データを入力として前記変換前演算型Aの演算を行った時の結果と前記出力データとたのデータ処理装置のもつ出力データを入力として前記変換後演算型Bの演算を行った時の結果が同じ値であることを保証する、
ことを特徴とする。
本発明の秘匿演算変換システムは、機関P1もしくは機関P2のもつ秘密データX、秘密データYについて、第三者の助けなしにある演算Aを秘密データXと秘密データYに対して適用したときと同じ結果を得ることができる別の演算Bに対する入力の組合せOutputX、OutputYを秘匿に計算することで、機関P1、機関P2の双方が同意した意味のある秘匿情報を公平に得るための情報交換システムである。以下、秘匿演算変換システムの基本構成について図面を参照しながら説明する。
以上、秘匿演算変換システム1の構成と各部の機能について説明したが、次に、図4を用いて、本発明の実施形態1に係る演算処理部160での「秘匿演算変換処理」と「交渉秘密情報取得処理」の概要について説明する。
なお、簡略化の為、図4では制御部110を割愛したが、各構成要素間の情報の授受、機関P1、機関P2間の送受信は、制御部110によって制御・統制されていることは勿論である。
機関P1及び機関P2の秘匿演算変換処理部161は連携して、自己の秘密データと相手機関の秘密データに演算Aを適用して得られる結果と同じ結果を得られるような演算Bの入力の組OutputX、OutputYをそれぞれ秘匿に計算し、機関P1は自己の秘密出力データOutputXのみを、機関P2は自己の秘密データ出力OutputYのみを取得する。
同様に、機関P2の交渉秘密情報取得処理部162も秘密出力データOutputY、秘密データY、演算変換方式型TypeをObjectYとしてまとめる。
さらに、機関P1及び機関P2は連携して、ObjectXとObjectYに付ける、両機関で同一の索引Idを決定し、交渉秘密情報SecretX[Id]として、それぞれの記憶部130に格納する。
以下、秘匿演算変換処理部161での演算変換処理に使用された秘密データX、秘密データYと交渉秘密情報取得処理部162で記憶部130に格納された秘密データX、秘密データYを弁別する目的で、交渉秘密情報として記憶部130に格納された秘密データX、秘密データYを、それぞれ、演算変換入力InputX、演算変換入力InputYと記すことがある。
また、機関P1、機関P2で求められた秘密出力データOutputX、秘密出力データOutputYと交渉秘密情報取得処理部162で記憶部130に格納された秘密出力データOutputX、秘密出力データOutputYを弁別する目的で、交渉秘密情報として記憶部130に格納された秘密出力データOutputX、秘密出力データOutputYを、それぞれ演算変換出力OutputX、演算変換出力OutputYと記すことがある。
機関P1の秘匿演算変換処理部161は(式1)、(式2)で示される、自己の秘密データXを含んだ値CA1,CA2,CA3,DA1,DA2,DA3を計算して機関P2に送信する。
(CA1、CA2、CA3)=(α1KA1、α3KA1、gγ1) (1)
(DA1、DA2、DA3)=(α2KA2、α4KA2、gγ2) (2)
ここに、α1、α2、α3、α4 は秘密データXをX = X1/X2 と表した時、X1=α1+α2、X2 = α3+α4の関係を満たす機関P1のみが知る乱数、KA1,KA2は機関P1及び機関P2が知る公開鍵Z(=gx)と原始元g、機関P1のみが知る乱数γ1、γ2とを用いて、KA1=Zγ1、KA2=Zγ2と表せる値、xは機関P1の秘密鍵であり、予め機関P1の記憶部130に格納されている。
機関P2の秘匿演算変換処理部161は、機関P1からのCA1、CA2、CA3、DA1、DA2、DA3を受信して、(式3)、(式4)で示される、予め機関P2の記憶部130に格納されている秘密データY、自己の乱数Ψ、λ1、λ2、λ3、λ4、λ5、λ6、λ7、λ8、を含んだ値CB1、CB2、CB3、CB4、CB5、CB6、CB7、CB8、DB1、DB2、DB3、DB4、DB5、DB6、DB7、DB8を計算して機関P1に送信する。
(CB1、CB2、CB3、CB4、CB5、CB6、CB7、CB8)
=(θ1Zλ1、θ2Zλ2、β1Zλ3、θ3Zλ4、β2Zλ5、β3Zλ6、θ4Zλ7、β4Zλ8) (3)
(DB1、DB2、DB3、DB4、DB5、DB6、DB7、DB8)
=(gλ1DA3、gλ2DA3、gλ3CA3、gλ4DA3、gλ5CA3、gλ6CA3、gλ7DA3、gλ8CA3、)
(4)
ここに、θ1、θ2、θ3、θ4、β1、β2、β3、β4は、秘密データYをY = Y2/Y1と表した時CA1Y1+CA2Y2=β1+β2+β3+β4、DA1Y1+DA2Y2=θ1+θ2+θ3+θ4満たす値である。
機関P1では、機関P2からのデータCBi、DBiを受信して、(式5)で示される値OutputXを求める。
OutputX = Σ1≦i≦8 CBiDBi -x/X2
(=(Σ1≦i≦4βiCA3 -1+Σ1≦i≦4θiDA3 -1)/X2))
(=(ΓB1CA3 -1+ΓB2DA3 -1 )/X2))
(=((α1Y1+α3Y2)+ (α2Y1+α4Y2))/X2))
(=((α1+α2) Y1+(α3+α4) Y2))/X2))
≡ (X1Y1+X2Y2)/X2 (5)
機関P2では、(式6)で示される値OutputYを求める。
OutputY = 1/Y1 (6)
(式5)、(式6)から判るように、それぞれの機関で計算したOutputX、OutputYを交換し合うことで、(式7)によって、秘密データXと秘密データYを加算した値X+Yが求まる。
OutputX×OutputY = (X1Y1+X2Y2)/(X2Y1)
(=X1/X2+Y2/Y1)
= X+Y (7)
(式7)から判るように、図5に示した演算変換処理では、機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X+Y)を行ったときと同じ結果を得ることができる演算B(OutputX×OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができる。
以下、(式1)から(式7)に示した演算変換方式を分割加算乗算演算変換法と略記することがある。
図5は、簡単のため、機関P1の秘密データXおよび機関P2の秘密データYが1次元の場合(XあるいはYのデータ数が1つの場合)を示したが、秘密データ数がnの場合は、CA1i,CA2i, CA3i, DA1i,DA2i,DA3i,CB1i,CB2i,CB3i,CB4i,CB5i,CB6i,CB7i,CB8i,
DB1i,DB2i,DB3i,DB4i,DB5i,DB6i,DB7i,DB8i(i=1,2,3,・・・n)について同様の計算と情報の交換を行うことでΣ1≦i≦n( Xi+Yi)を求めることができる。
機関P1の交渉秘密情報取得処理部162では、演算変換入力InputX、演算変換出力OutputX、Type(図5では演算Aである加算を演算Bである乗算に変換したという情報)を含むObjectXを求め、交渉秘密情報SecretX[Id]として設定して、記憶部130に格納する。
同様に、機関P2の交渉秘密情報取得処理部162では、演算変換入力InputY、演算変換出力OutputY、演算変換処理の型Type(図5では演算Aである加算を演算Bである乗算に変換したという情報)を含むObjectYを求め、交渉秘密情報SecretY[Id]として設定して、記憶部130に格納する。
なお、交渉秘密情報SecretX[Id]と交渉秘密情報SecretY[Id]におけるIdは同一の番号としておく。
同様の演算変換は良く知られた、秘匿性に優れるElGamal方式を利用することでも実現可能であり、図6を用いて説明する。
図6において、機関P1の秘匿演算変換処理部161は(式8)、(式9)で示される、自己の秘密データXを含んだ値CA1、CA2を計算して機関P2に送信する。
CA1 = 2XPKγ1 (8)
CA2 = gγ1 (9)
ここに、gは機関P1、機関P2が共有する原始元、PK(=gSK)は公開鍵、SKは機関P1の秘密鍵、γ1は機関P1のみが知る乱数であり、予め機関P1の記憶部130に格納されている。
機関P2の秘匿演算変換処理部161は機関P1からのCA1、CA2を受信して(式10)、(式11)で示される自己の秘密データYを含んだ値CB1、CB2を計算して機関P1に送る。
CB1=(2YCA1)1/ΨPKγ2 (10)
CB2 =(CA2)1/Ψgγ2 (11)
ここに、Ψ、γ2は機関P2のみが知る乱数であり、予め、機関P2の記憶部130に格納されている。
機関P1では、機関P2からのデータCB1、CB2を受信して、(式12)で示される値OutputXを求める。
OutputX = log2(CB1/(CB2)SK)
(= log2(2(X+Y)/Ψ)PK(γ1+γ2)/Ψ/(g(γ1+γ2)/Ψ)SK)
(= Log2(2(X+Y)/Ψ) )
(=(X+Y)/Ψ)
≡ Φ (12)
機関P2では、(式13)で示される値OutputYを求める。
OutputY=Ψ (13)
(式12)、(式13)から判るように、機関P1で計算したOutputXと機関P2のOutputYを交換し合うことで、(式14)によって、秘密データXと秘密データYを加算した値X+Yが求まる。
OutputX×OutputY = Φ×Ψ
= X+Y (14)
(式14)から判るように、図6に示した演算変換処理では、機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X+Y)を行ったときと同じ結果を得ることができる演算B(OutputX×OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができる。
以下、(式8)から(式14)に示した演算変換方式をElGamal加算乗算演算変換法と略記することがある。
図6は、簡単のため、機関P1の秘密データXおよび機関P2の秘密データYが1次元の場合(XあるいはYのデータ数が1つの場合)を示したが、秘密データ数がnの場合は、CA1i,CA2i,CB1i,CB2i(i=1,2,3,・・・n)について同様の計算と情報の交換を行うことで
Σ1≦i≦n( Xi+Yi)を求めることができる。
機関P1の交渉秘密情報取得処理部162では、演算変換入力InputX、演算変換出力OutputX、Type(図6では演算Aである加算を演算Bである乗算に変換したという情報)を含むObjectXを求め、交渉秘密情報SecretX[Id]として設定して、記憶部130に格納する。
同様に、機関P2の交渉秘密情報取得処理部162では、演算変換入力InputY、演算変換出力OutputY、Type(図6では演算Aである加算を演算Bである乗算に変換したという情報)を含むObjectYを求め、交渉秘密情報SecretY[Id]として設定して、記憶部130に格納する。
なお、交渉秘密情報SecretX[Id]と交渉秘密情報SecretY[Id]におけるIdは同一の番号としておく。
同様の演算変換は良く知られた、秘匿性に優れるPaillier方式を利用することでも実現可能であり、図7を用いて説明する。
図7において、機関P1の秘匿演算変換処理部161は(式15)で示される、自己の秘密データXを含んだ値CA1を計算して機関P2に送信する。
CA1 = gXγ1NmodN (15)
ここに、γ1は機関P1のみが知る乱数、N、gは、N=p×q、g=(1+kN)modN2の関係を満たす公開鍵であり、予め、機関P1及び機関P2の記憶部130に格納されている。
なお、p,qは大きな素数であり、秘密鍵として、予め機関P1の記憶部130に格納されており、kは機関P1のみが知る乱数である。
機関P2の秘匿演算変換処理部161は機関P1からのCA1を受信して(式16)で示される自己の秘密データYを含んだ値CB1を計算して機関P1に送る。
CB1 = (gYCA1)1/ΨmodN (16)
ここに、Ψは機関P2のみが知る乱数であり、予め、機関P2の記憶部130に格納されている。
機関P1では、機関P2からのデータCB1を受信して、(式17)で示される値OutputXを求める。
OutputX = (L(CB1modN2/L(gλmodN2))modN
(= (X+Y)/Ψ)
≡ Φ (17)
ここに、λは機関P1のみが知る秘密鍵であり、大きな素数p,qについて(p-1)と(q-1)の最小公倍数であり、予め、機関P1の記憶部130に格納されている。
また、L(U)は、L(U)=(U-1)/Nを満たす関数である。
機関P2では、(式18)で示される値OutputYを求める。
OutputY=Ψ (18)
(式17)、(式18)から判るように、機関P1で計算したOutputXと機関P2のOutputYを交換し合うことで、(式19)によって、秘密データXと秘密データYを加算した値X+Yが求まる。
OutputX×OutputY = Φ×Ψ
= X+Y (19)
(式19)から判るように、図7に示した演算変換処理では、機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X+Y)を行ったときと同じ結果を得ることができる演算B(OutputX×OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができる。
以下、(式15)から(式19)に示した演算変換方式をPaillier加算乗算演算変換法と略記することがある。
図7は、簡単のため、機関P1の秘密データXおよび機関P2の秘密データYが1次元の場合(XあるいはYのデータ数が1つの場合)を示したが、秘密データ数がnの場合は、CA1i、CB1i(i=1,2,3,・・・n)について同様の計算と情報の交換を行うことでΣ1≦i≦n( Xi+Yi)を求めることができる。
機関P1の交渉秘密情報取得処理部162では、演算変換入力InputX、演算変換出力OutputX、Type(図7では演算Aである加算を演算Bである乗算に変換したという情報)を含むObjectXを求め、交渉秘密情報SecretX[Id]として設定して、記憶部130に格納する。
同様に、機関P2の交渉秘密情報取得処理部162では、演算変換入力InputY、演算変換出力OutputY、Type(図7では演算Aである加算を演算Bである乗算に変換したという情報)を含むObjectYを求め、交渉秘密情報SecretY[Id]として設定して、記憶部130に格納する。
なお、交渉秘密情報SecretX[Id]と交渉秘密情報SecretY[Id]におけるIdは同一の番号としておく。
すなわち、例えば、秘密データX1と秘密データY1に関する演算時にはPaillier加算乗算演算変換法による演算変換を行い、秘密データX2,X3,X4,・・・と、秘密データY2,Y3,Y4,・・・に関する演算時には、分割加算乗算演算変換法による演算変換を行う等の任意の組み合わせも可能である。
次に、図8によって、機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X×Y)を行ったときと同じ結果を得ることができる演算B(OutputX+OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができることを示す。
(CA1、CA2、CA3)=(α1KA1、α3KA1、gγ1) (20)
(DA1、DA2、DA3)=(α2KA2、α4KA2、gγ2) (21)
ここに、α1、α2はX=α1+α2の関係を満たす機関P1のみが知る乱数、α3、α4はα3+α4=1の関係を満たす機関P1のみが知る乱数、KA1,KA2は機関P1及び機関P2が知る公開鍵Z(=gx)と原始元g、機関P1のみが知る乱数γ1、γ2とを用いて、KA1=Zγ1、KA2=Zγ2と表せる値、xは機関P1の秘密鍵であり、予め機関P1の記憶部130に格納されている。
機関P2の秘匿演算変換処理部161は、機関P1からのCA1、CA2、CA3、DA1、DA2、DA3を受信して、(式22)、(式23)で示される、予め機関P2の記憶部130に格納されている秘密データY、自己の乱数Ψ、λ1、λ2、λ3、λ4、λ5、λ6、λ7、λ8、を含んだ値CB1,CB2,CB3,CB4,CB5,CB6,CB7,CB8,DB1,DB2,DB3,DB4,DB5,DB6,DB7,DB8を計算して機関P1に送信する。
(CB1、CB2、CB3、CB4、CB5、CB6、CB7、CB8)
=(θ1Zλ1、θ2Zλ2、β1Zλ3、θ3Zλ4、β2Zλ5、β3Zλ6、θ4Zλ7、β4Zλ8) (22)
(DB1、DB2、DB3、DB4、DB5、DB6、DB7、DB8)
=(gλ1DA3、gλ2DA3、gλ3CA3、gλ4DA3、gλ5CA3、gλ6CA3、gλ7DA3、gλ8CA3、)
(23)
ここに、θ1、θ2、θ3、θ4、β1、β2、β3、β4は、CA1Y+CA2Ψ=β1+β2+β3+β4、DA1Y+DA2Ψ=θ1+θ2+θ3+θ4満たす値である。
機関P1では、機関P2からのデータCBi、DBiを受信して、(式24)で示される値OutputXを求める。
OutputX = Σ1≦i≦8 CBiDBi -x
(= Σ1≦i≦8 CBiDBi -x =Σ1≦i≦4βiCA3 -1+Σ1≦i≦4θiDA3 -1=ΓB1CA3 -1+ΓB2DA3 -1 =(α1Y−α3ψ)+ (α2Y−α4ψ)=(α1+α2) Y−(α3+α4) ψ)
(=X×Y−ψ)
≡ Φ (24)
機関P2では、(式25)で示される値OutputYを求める。
OutputY = Ψ (25)
(式24)、(式25)から判るように、それぞれの機関で計算したOutputX、OutputYを交換し合うことで、(式26)によって、秘密データXと秘密データYを加算した値X+Yが求まる。
OutputX+OutputY = Φ+Ψ
= X×Y (26)
(式26)から判るように、図8に示した演算変換処理では、機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X×Y)を行ったときと同じ結果を得ることができる演算B(OutputX+OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができる。
以下、(式20)から(式26)に示した演算変換方式を分割乗算加算演算変換法と略記することがある。
図8は、簡単のため、機関P1の秘密データXおよび機関P2の秘密データYが1次元の場合(XあるいはYのデータ数が1つの場合)を示したが、秘密データ数がnの場合は、
CA1i,CA2i, CA3i, DA1i,DA2i,DA3i,CB1i,CB2i,CB3i,CB4i,CB5i,CB6i,CB7i,CB8i,
DB1i,DB2i,DB3i,DB4i,DB5i,DB6i,DB7i,DB8i(i=1,2,3,・・・n)について同様の計算と情報の交換を行うことでΣ1≦i≦n( Xi×Yi)を求めることができる。
機関P1の交渉秘密情報取得処理部162では、演算変換入力InputX、演算変換出力OutputX、演算変換処理の型Type(図8では演算Aである乗算を演算Bである加算に変換したとする情報)を含むObjectXを求め、交渉秘密情報SecretX[Id]として設定して、記憶部130に格納する。
同様に、機関P2の交渉秘密情報取得処理部162では、演算変換入力InputY、演算変換出力OutputY、Type(図8では演算Aである乗算を演算Bである加算に変換したとする情報)を含むObjectYを求め、交渉秘密情報SecretY[Id]として設定して、記憶部130に格納する。
なお、交渉秘密情報SecretX[Id]と交渉秘密情報SecretY[Id]におけるIdは同一の番号としておく。
同様の演算変換は良く知られた、秘匿性に優れるElGamal方式を利用することでも実現可能であり、図9を用いて説明する。
機関P1の秘匿演算変換処理部161は(式27)、(式28)で示される、自己の秘密データXを含んだ値CA1,CA2を計算して機関P2に送信する。
CA1 = 2XPKγ1 (27)
CA2 = gγ1 (28)
ここに、gは機関P1、機関P2が共有する原始元、PK(=gSK)は公開鍵、SKは機関P1の秘密鍵、γ1は機関P1のみが知る乱数であり、予め機関P1の記憶部130に格納されている。
機関P2の秘匿演算変換処理部161は、機関P1からのCA1、CA2を受信して(式29)、(式30)で示される自己の秘密データYを含んだ値CB1,CB2を計算して機関P1に送信する。
CB1 = 2-Ψ(CA1)YPKγ2 (29)
CB2 = (CA2)Ygγ2 (30)
ここに、Ψ、γ2は機関P2のみが知る乱数であり、予め機関P2の記憶部130に格納されている。
機関P1では、機関P2からのデータCB1,CB2を受信して、(式31)で示される値OutputXを求める。
OutputX = log2(CB1/(CB2)SK)
(= log2(2(X×Y-Ψ)PK(γ1+γ2)Y/(g(γ1+γ2)Y)SK))
(= log2(2(X×Y-Ψ)) )
= X×Y-Ψ (31)
機関P2では、(式32)で示される値OutputYを求める。
OutputY=Ψ (32)
(式31)、(式32)から判るように、機関P1で計算したOutputXと機関P2で計算したOutputYを交換し合うことで、(式33)によって、秘密データXと秘密データYを乗算した値X×Yが求まる。
OutputX+OutputY = X×Y (33)
(式33)から判るように、図9に示した演算変換処理では、機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X×Y)を行ったときと同じ結果を得ることができる演算B(OutputX+OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができる。
以下、(式27)から(式33)に示した演算変換方式をElGamal乗算加算演算変換法と略記することがある。
図9は、簡単のため、機関P1の秘密データXおよび機関P2の秘密データYが1次元の場合(XあるいはYのデータ数が1つの場合)を示したが、秘密データ数がnの場合は、CA1i,
CA2i,CB1i,CB2i(i=1,2,3,・・・n)について同様の計算と情報の交換を行うことで
Σ1≦i≦n XiYiを求めることができる。
機関P1の交渉秘密情報取得処理部162では、演算変換入力InputX、演算変換出力OutputX、Type(図9では演算Aである乗算を演算Bである加算に変換したとする情報)を含むObjectXを求め、交渉秘密情報SecretX[Id]として設定して、記憶部130に格納する。
同様に、機関P2の交渉秘密情報取得処理部162では、演算変換入力InputY、演算変換出力OutputY、演算変換処理の型Type(図9では演算Aである乗算を演算Bである加算に変換したとする情報)を含むObjectYを求め、交渉秘密情報SecretY[Id]として設定して、記憶部130に格納する。
なお、交渉秘密情報SecretX[Id]と交渉秘密情報SecretY[Id]におけるIdは同一の番号としておく。
同様の演算変換は良く知られた、秘匿性に優れるPaillier方式を利用することでも実現可能であり、図10を用いて説明する。
図10において、機関P1の秘匿演算変換処理部161は(式34)で示される、自己の秘密データXを含んだ値CA1を計算して機関P2に送信する。
CA1 = gXγ1NmodN (34)
ここに、N、gは、N=p×q、g=(1+kN)modN2の関係を満たす公開鍵であり、予め、機関P1及び機関P2の記憶部130に格納されている。
なお、p,qは大きな素数であり、秘密鍵として、予め、機関P1の記憶部130に格納されており、kは機関P1のみが知る乱数である。
機関P2の秘匿演算変換処理部161は機関P1からのCA1を受信して(式35)で示される自己の秘密データYを含んだ値CB1を計算して機関P1に送る。
CB1 = (g-ΨCA1)YmodN (35)
ここに、Ψは機関P2のみが知る乱数であり、予め、機関P2の記憶部130に格納されている。
機関P1では、機関P2からのデータCB1を受信して、(式36)で示される値OutputXを求める。
OutputX = (L(CB1modN2/L(gλmodN2))modN
= (X×Y)-Ψ (36)
ここに、λは機関P1のみが知る秘密鍵であり、予め、機関P1の記憶部130に格納されている。
またL(U)は、L(U)=(U-1)/Nを満たす関数である。
機関P2では、(式37)で示される値OutputYを求める。
OutputY=Ψ (37)
(式36)、(式37)から判るよに、機関P1で計算したOutputXと機関P2で計算したOutputYを交換し合うことで、(式38)によって、秘密データXと秘密データYを加算した値X+Yが求まる。
OtputX+OutputY = X×Y (38)
(式38)から判るように、図10に示した演算変換処理では、機関P1、機関P2が保持している秘密データX、秘密データYを入力として演算A(X×Y)を行ったときと同じ結果を得ることができる演算B(OutputX+OutputY)に対する複数の入力OutputX、OutputYを秘匿に計算することができる。
以下、(式34)から(式38)に示した演算変換方式をPaillier乗算加算演算変換法と略記することがある。
図10は、簡単のため、機関P1の秘密データXおよび機関P2の秘密データYが1次元の場合(XあるいはYのデータ数が1つの場合)を示したが、秘密データ数がnの場合は、CA1i,CB1i(i=1,2,3,・・・n)について同様の計算と情報の交換を行うことでΣ1≦i≦n( Xi×Yi)を求めることができる。
機関P1の交渉秘密情報取得処理部162では、演算変換入力InputX、演算変換出力OutputX、Type(図10では演算Aである乗算を演算Bである加算に変換したとする情報)を含むObjectXを求め、交渉秘密情報SecretX[Id]として設定して、記憶部130に格納する。
同様に、機関P2の交渉秘密情報取得処理部162では、演算変換入力InputY、演算変換出力OutputY、演算変換処理の型Type(図10では演算Aである乗算を演算Bである加算に変換したとする情報)を含むObjectYを求め、交渉秘密情報SecretY[Id]として設定して、記憶部130に格納する。
なお、交渉秘密情報SecretX[Id]と交渉秘密情報SecretY[Id]におけるIdは同一の番号としておく。
すなわち、例えば、秘密データX1と秘密データY1に関する演算時にはPaillier乗算加算演算変換法による演算変換を行い、秘密データX2,X3,X4,・・・と、秘密データY2,Y3,Y4,・・・に関する演算時には、分割乗算加算演算変換法による演算変換を行う等の任意の組み合わせも可能である。
すなわち、それぞれの演算変換法では、機関P1、機関P2での秘匿演算変換部161での演算処理において、演算負荷の大きな「べき乗計算」を行っており、演算対象の秘密ベクトルX、秘密ベクトルYの次元nが大きくなると計算負荷の増大を招くことになり、システム全体の動作速度を低下させてしまう。
上記の問題点を解消するため、本発明の実施形態2では、図5、図6、図7、図8、図9、図10で説明した、分割加算乗算演算変換法、ElGamal加算乗算演算変換法、Paillier加算乗算演算変換法、分割乗算加算演算変換法、ElGamal乗算加算演算変換法、Paillier乗算加算演算変換法のような、秘匿性に優れるが計算負荷の大きい演算法と、後述する、これらの演算時に記憶部130に格納された秘匿性の高い交渉秘密情報を用いて計算負荷の小さい演算行う演算法を組み合わせて、システム全体としての秘匿性と計算負荷のバランスの取れた秘匿演算変換処理を実行する。
以下、簡略化の為、機関P1での処理動作についてのみ説明し、機関P2での機関P1と同様の処理動作の説明は割愛することがある。
また、以降の説明では、記憶部130に蓄えられている演算変換入力InputX、演算変換入力InputYを、それぞれ、InputX、InputYと略記することがある。
S1110では、演算の対象となる秘密データX、Type、交渉秘密情報を利用するか否かを示す変数Negotiationの値、PTypeの値(PTypeの値は、予め、分割加算乗算演算変換法あるいは分割乗算加算演算変換法の場合はPType=1、ElGamal加算乗算演算変換法あるいはElGamal乗算加算演算変換法の場合はPType=2、Paillier加算乗算演算変換法あるいはPaillier乗算加算演算変換法の場合はPType=3、と設定されている。)を記憶部130から読み出し、S1120でNegotiationの値が1か否かの判定を行う。Negotiationが1であれば、交渉秘密情報を利用する演算と判断し、交渉秘密情報Idを記憶部130より読み出し、Idを索引としてもつ交渉秘密情報SecretX[Id](=(演算変換入力InputX、演算変換出力OutputX、Type))も読み出し、そのTypeをS_typeとする。S1140でSecretX[Id]中の交渉秘密情報のType(即ち、S_type)と当該演算で利用したい交渉秘密情報の型であるTypeが一致しているか否かの判定を行い、両者が一致している場合には、S1150で第1交渉情報Secret_In_XにInputX、第2交渉情報Secret_Out_XにOutputXを代入する。両者が一致していない場合には、S1160で、第1交渉情報Secret_In_XにOutputXを、第2交渉情報Secret_Out_XにInputXを代入する。
S1120でNegotiationが1でなければ、交渉秘密情報を利用しない演算と判断し、(図12の)S1200にもどり、S1400で交渉秘密情報無演算変換処理を行う。
S1300では秘密データX,第1交渉秘密情報Secret_In_X,第2交渉秘密情報Scret_Out_X,演算変換型Typeを入力として、演算変換結果OutputXを計算するが、S1310で演算変換が乗算から加算への変換か、加算から乗算への変換かを示すType値の判定を行い、Typeの値が1の場合には交渉秘密情報有乗算加算変換処理(S1320)に、そうでない場合には交渉秘密情報有加算乗算変換処理(S1330)に進む。
S1320あるいはS1330での演算処理の後、S1340に進む。
機関P1の秘匿演算変換部161は、自身の秘密データXと記憶部130に格納されている第1交渉秘密情報Secret_In_Xを用いて、(式39)で示されるCAを作成し、機関P2に送る。
CA = X+Secret_In_X (39)
同様に、機関P2の秘匿演算変換部161は、自身の秘密データYと記憶部130に格納されている第1交渉秘密情報Secret_In_Yを用いて、(式40)で示されるCBを作成し、機関P1に送る。
CB = Y+Secret_In_Y (40)
その後、機関P1、機関P2はそれぞれ、(式41)、(式42)で示される秘密出力OutputX、OutputYを計算する。
OutputX = CB・X+Secret_Out_X
(= (Y+Secret_In_Y)×X+Secret_Out_X)
(= X・Y+X・Secret_In_Y+Secret_Out_X)
≡ Φ (41)
OutputY = -CA×Secret_In_Y+Secret_Out_Y
(=-(X+Secret_In_X)×Secret_In_Y+Secret_Out_Y)
(=-X・Secret_In_Y-Secret_In_X・Secret_In_Y+Secret_Out_Y)
≡ Ψ (42)
(式39)、(式40)、(式41)、(式42)において、Secret_In_X、Secret_Out_Xは機関P1の秘密情報、Secret_In_Y、Secret_Out_Yは機関P2の秘密情報であり、これらには、例えば(式26)から判るように、(式43)の関係が成立している。
Secret_In_X・Secret_In_Y=Secret_Out_X+Secret_Out_Y (43)
(式41)、(式42)、(式43)から判るように、秘密出力OutputX、秘密出力OutputY、秘密データX、秘密データYには(式44)に示される関係が成立しており、乗算から加算への変換が、交渉秘密情報を用いて簡便に実行されていることが判る。
X×Y = OutputX+OutputY (44)
この場合は、前述したようにSecret_In_X=OutputX、Secret_Out_X=X、Secret_In_Y=OutputY、Secret_Out_Y=Y、として(式39)から(式42)に相当する演算を行うことで、演算Aが(X+Y)、演算Bが(OutputX×OutputY)である場合にはSecret_In_X+Secret_In_Y=Secret_Out_X×Secret_Out_Y という関係が成り立っていることから、同様に(式44)が得られる。
機関P1の秘匿演算変換部161は、自身の秘密データXと記憶部130に格納されている第1交渉秘密情報Secret_In_XとSecret_Out_Xを用いて、(式45)で示されるCAを作成し、機関P2に送る。
CA =(X-Secret_In_X )/(Secrt_Out_X) (45)
同様に、機関P2の秘匿演算変換部161は、自身の秘密データYと記憶部130に格納されている第1交渉秘密情報Secret_In_YとSecret_Out_Yを用いて、(式46)で示されるCBを作成し、機関P1に送る。
CB =(Y-Secret_In_Y)/(CA+Secret_Out_Y) (46)
その後、機関P1、機関P2はそれぞれ、(式47)、(式48)で示される秘密出力OutputX、秘密出力OutputYを計算する。
OutputX = CB+Secret_Out_X
(= (Y-Secret_In_Y)/Ψ+Secret_Out_X)
≡ Φ (47)
OutputY = CA+Secret_Out_Y
( =-(X+Secret_In_X)×Secret_In_Y+Secret_Out_Y)
( =(X-Secret_In_X)/Secret_Out_X+Secret_Out_Y)
≡ Ψ (48)
(式45)、(式46)、(式47)、(式48)において、Secret_In_X、Secret_Out_Xは機関P1の秘密情報、Secret_In_Y、Secret_Out_Yは機関P2の秘密情報であり、これらには、例えば(式7)から判るように、(式49)の関係が成立している。
Secret_In_X+Secret_In_Y = Scret_Out_X・Secret_Out_Y (49)
(式47)、(式48)、(式49)から判るように、秘密出力OutputX、OutputY、秘密データX、秘密データYには(式50)に示される関係が成立しており、加算から乗算への変換が、交渉秘密情報を用いて簡便に実行されていることが判る。
X+Y=OutputX×OtputY (50)
この場合は、前述したようにSecret_In_X=OutputX、Secret_Out_X=X、Secret_In_Y=OutputY、Secret_Out_Y=Y、として(式45)から(式48)に相当する演算を行うことで、演算Aが(X×Y)、演算Bが(OutputX+OutputY)である場合にはSecret_In_X×Secret_In_Y=Secret_Out_X+Secret_Out_Y という関係が成り立っていることから、同様に(式50)が得られる。
したがって、交渉秘密情報有乗算加算変換処理あるいは交渉秘密情報有加算乗算変換処理で用いる交渉秘密情報である第1交渉秘密情報Secret_In_X、第1交渉秘密情報 Secret_In_Y、第2交渉秘密情報Secret_Out_X、第2交渉秘密情報 Secret_Out_Yの取得は、機関P1、機関P2が保有する実際の秘密データX、秘密データYを用いて実施される必要はなく、Secret_Out_X+Secret_Out_Y=Secret_In_X×Secret_In_Y、あるいはSecret_Out_X×Secret_Out_Y=Secret_In_X+Secret_In_Yを満たすように、分割加算乗算演算変換法、ElGamal加算乗算演算変換法、Paillier加算乗算演算変換法、分割乗算加算演算変換法、ElGamal乗算加算演算変換法、Paillier乗算加算演算変換法等によって、実際の演算に先だってダミーデータを用いて取得しておくことも可能である。
機関P1、機関P2の秘匿演算変換部161は、それぞれの記憶部130に格納された演算変換型変数Typeの値が1であるなら、S1420に進み交渉秘密情報無乗算加算変換処理を相手機関と協力し実行する。Typeの値が1でなければ、双方の秘匿演算変換部161はS1430に進み交渉秘密情報無加算乗算変換処理に進む。
S1420あるいはS1430での演算処理の後、S1440に進む。
機関P1、機関P2は連携して、指定された演算変換法によって、(式51)を満たす秘密出力OutputX、OutputYを求める。
OuputX+OutputY=X×Y (51)
機関P1、機関P2は連携して、指定された演算変換法によって、(式52)を満たす秘密出力OutputX、OutputYを求める。
OutputX×OutputY=X+Y (52)
図6、図7、図9、図10に示したElGamal加算乗算演算変換法、Paillier加算乗算演算変換法、ElGamal乗算加算演算変換法、Paillier乗算加算演算変換法等の交渉秘密情報無演算変換プロトコルでは秘匿演算変換処理を公開鍵により行い、かつ、秘密入力を用いたべき乗計算を必要としており、計算コストは大きいが、気密性の高い交渉秘密情報を取得することができる。
したがって、2つの種類の処理を組み合せることにより、すなわち、交渉秘密情報無演算変換により高い機密性をもつ交渉秘密情報を作成し、その情報を利用して交渉秘密情報有演算変換を行うことで、秘密入力を用いた演算変換を高速に、かつ、高機密に行うことが可能となる。
秘匿演算変換部161でのS1000の処理が完了すると、交渉秘密情報取得部162はS2000の交渉秘密情報取得処理を開始する。
S2100で、相手機関のデータ処理装置100と連携し、S1000で作成した秘密出力の組(演算変換入力InputX、演算変換出力OutputX、Type)を後に索引により選別し秘密情報として利用するため、共通変数Idに索引を設定する。また、新しい交渉秘密情報を古い交渉秘密情報と組み合わせるか否かを決定し、変数Combineに設定する。
ここで、作成された秘密情報を他の交渉秘密情報と組み合わせる場合にはCombine=1、そうでない場合には、Combine=0とする。
さらに、S2500で、機関P1の交渉秘密取得部162は索引Id_Oldをもつ古い交渉秘密情報SecretX[Id_Old]を記憶部130より読み出し、機関P2の交渉秘密取得部162は古い交渉秘密情報SecretY[Id_Old]を記憶部130より読み出す。
S2600では、最初にS2610で秘密情報のTypeが乗算から加算への変換を示す1かどうか判定し、Typeが1であれば、S2620で、機関P1では、InputX、OutputXに、それぞれ、SecretX[Id].InputX、SecretX[Id].OutputXを設定する。そうでなければ、S2630で、InputX、OutputXに、それぞれ、SecretX「Id」.Output、SecretX[Id].InputXを設定する。機関P2の場合も同様にInputY、OutputYを設定する。
機関P2も同様に、O_InputX、O_OutputX、O_InputY、O_OutputYに値を設定する。
InputX×(InputY+O_IputY)=OutputX+OutputY+O_OutputX+O_OutputY(53)よって、機関P1ではInputX、OutputX+O_OutputX、Type=1を新しい秘密情報として、機関P2ではInputY+O_InpuY、OutputY+O_OutputY、Type=1を新しい秘密情報として利用することができる。
実施形態1での演算変換法では機関P1、P2での秘匿演算変換部161での演算処理において、演算負荷の大きな「べき乗計算」を行っていた。また、それらのべき乗計算は秘密データX,Yが決定しなければ、実行できないという問題があった。本発明の実施形態3では図5、図8の分割加算乗算演算変換法、分割乗算加算演算変換法において、秘密データX、Yが決定されてから実行する全ての演算を、計算負荷の小さい「加減乗除算」とする二段階交渉秘密情報無演算変換処理を実行する。
(CA1、CA2、CA3)=(α1KA1、α3KA1、gγ1) (53)
DA3 = gγ2 (54)
ここに、α1、α3、γ1、γ2は機関P1のみが知る乱数、gは機関P1及び機関P2が知る原始元、xは機関P1のみが知る秘密鍵であり、KA1,KA2は公開鍵Z(=gx)と乱数γ1、γ2とを用いて、KA1=Zγ1、KA2=Zγ2と表せる値であり、予め機関P1の記憶部130に格納されている。
CA1,CA2,CA3,DA3を受信した機関P2はCA3,DA3と自身が決定したランダムな2分割(N1,N2), 乱数パラメータβ1,・・・β(|N1|-1), θ1,・・・,θ(|N2|-1),λ1, ・・・,λnを用いて、(式55)、(式56)で示されるCB1,…,CB(n-2)とDB1,…,DBnを計算し、機関P1へ送信する。ここで、図5で説明した分割加算乗算演算変換法とは異なり、この段階ではCB(n-1), CBnの送信は行わない。
CBi = β#1(i) Zλi (if i∈N1-{n-1,n})、 θ#2(i) Zλi (if i∈N2) (55)
DBi = ZλiCA3 (if i∈N1)、 ZλiDA3 (if i∈N2) (56)
ここで、#1( i )は番号iが集合N1の要素を増加順に列挙したときに出現する順番を示し、#2( i )についても集合N2に関して同様の定義を持つ順番とする。また、パラメータβ1,・・・β(|N1|-1), θ1,・・・,θ(|N2|-1)は完全に機関P2が独自に選択した乱数で良い。
機関P2より暗号文の列(CB1,…,CB(n-2))と(DB1,…,DBn)を受信した機関P1は、(式57)、(式58)、(式59)で示される3つのパラメータEA1,FA1,FA2を計算する。
EA1=Σ1≦i≦n-2 CBi DBi-x (57)
FA1=DB(n-1) -x (58)
FA2=DBn -x (59)
上記の機関P1,P2で行われる計算、および、情報交換を入力前計算とする。
機関P1より暗号文DA1,DA2を受信し、自身の秘密入力データYが決定した機関P2はYより選択した乱数Y1,Y2(ここで、Y2/Y1=Y)より、ΓB1=CA1Y1+CA2Y2、ΓB2= DA1Y1+DA2Y2という内部計算を行い、パラメータΓB1, ΓB2の値を求める。さらに、ΓB1, ΓB2の値を用いて、β|N1|=ΓB1-Σ1≦i≦|N1|-1βiによりパラメータβ|N1|の値を、θ|N2|=ΓB2-Σ1≦i≦|N2|-1θiによりパラメータθ|N2|の値を計算する。パラメータβ|N1|、θ|N2|より暗号文CBn-1 をCBn-1=β|N1|CB(n-1)’により、暗号文CBnをCBn=θ|N2|CBn’として計算し、(CBn-1,CBn)を機関P2に送信する。
機関P2より(CBn-1,CBn)を受信した機関P1は入力前計算にて得ていた値EA1,FA1,FA2を用いて、秘密出力Φを(式60)によって計算する。
Φ=(EA1+CB(n-1)FA1+CB2FA2)/X2 (60)
機関P2では(式61)で示される秘密出力Ψを計算しており、機関P1、P2が秘密出力Φと秘密出力Ψを交換することで、(式62)から判るように、双方が演算結果(X+Y)を得ることができる。
Ψ=1/Y1 (61)
Φ×Ψ=(X1Y1+X2Y2)/(X2Y1)
= X1/X2 + Y2/Y1
= X + Y (62)
以下では秘密入力データ決定後の処理について説明する。
機関P1より暗号文DA1,DA2を受信し、自身の秘密入力データYが決定した機関P2は選択した乱数Ψより、ΓB1=CA1Y+CA2Ψ、ΓB2= DA1Y+DA2Ψという内部計算を行い、パラメータΓB1, ΓB2の値を求める。さらに、ΓB1, ΓB2の値を用いて、β|N1|=ΓB1-Σ1≦i≦|N1|-1βiによりパラメータβ|N1|の値を、θ|N2|=ΓB2-Σ1≦i≦|N2|-1θiによりパラメータθ|N2|の値を計算する。パラメータβ|N1|、θ|N2|より暗号文CBn-1 をCBn-1=β|N1|CB(n-1)’により、暗号文CBnをCBn=θ|N2|CBn’として計算し、(CBn-1,CBn)を機関P2に送信する。
機関P2より(CBn-1,CBn)を受信した機関P1は入力前計算にて得ていた値EA1,FA1,FA2を用いて、秘密出力Φを(式63)によって計算する。
Φ=(EA1+CB(n-1)FA1+CB2FA2) (63)
機関P2では秘密出力Ψを乱数として選択しており、機関P1、P2が秘密出力Φと秘密出力Ψを交換することで、(式64)から判るように、双方が演算結果(X×Y)を得ることができる。
Φ+Ψ=(X×Y — 1×Ψ)+ Ψ
= X×Y (64)
実施形態1,2,3では乗算から加算、加算から乗算に変化させる演算変換について説明した。実施形態4では、乗算から加算、加算から乗算に変化させる演算変換を組み合わせることで、底とべき指数の両方を機関P1,P2双方で変化させる秘密べき乗算演算変換法を実現する。本実施の形態では、機関P1の秘密入力は底に関する秘密入力Xとべき指数に関する秘密入力A、機関P2の秘密入力は底に関する秘密入力Yとべき指数に関する秘密入力Bとするとき、(X+Y)AB、(X+Y)(A+B)、(X×Y)AB、(X×Y)(A+B)の形で表せるべき乗計算と等しい値を求めることができる秘密出力OutputX, OutputYをそれぞれの機関P1,P2の出力として交換することで、秘密べき乗演算変換を実現する。
まず、底を秘匿しながら計算するため、機関P1とP2が協力し、図5を用いて説明した交渉秘密情報無加算乗算演算変換法、あるいは図16で説明した交渉秘密情報有加算乗算演算変換法によって加算乗算変換を行い、X+Y=Φ×Ψとなるような中間の秘密出力Φ、Ψを機関P1,P2双方で得る。その後、機関P1、機関P2それぞれで、中間秘密出力Φ、Ψにそれぞれの秘密べき指数A, Bをべき乗し、FA=ΦA, FB=ΨBなる暗号文FA, FBをそれぞれ得る。次に、機関P1, P2は暗号文FA,FBを交換し、機関P1はFBに秘密べき指数Aを、機関P2はFAに秘密べき指数Bをべき乗して得られた値をそれぞれの秘密入力として、図8を用いて説明した交渉秘密情報無乗算加算演算変換法、あるいは図16を用いて説明した交渉秘密情報有乗算加算変換法によって乗算加算変換を行うことで、秘密出力OutputX, OutputYをそれぞれ得る。
機関P1,P2が秘密出OutputX、OutputYを交換することで、(式63)から、(X+Y)ABを求めることができる。
OutputX+OutputY=FBA×FAB=ΨBA×ΦAB=(Ψ×Φ)AB=(X+Y)AB (63)
なお、図23は交渉秘密情報有の場合の(即ち、交渉秘密情報を利用する場合の)プロトコルの概要を示したものである。
OutputX+OutputY = Ψψφ×ΦφΨ (64)
OutputX+OutputY = Ψψφ×ΦφΨ=(Ψ×Φ)φψ=(X+Y)(A+B) (65)
ただし、素数pを法とする剰余環上で演算を行う場合、第二段階で行う指数部の秘密入力の交渉情報有加算乗算変換ではp−1を法とする剰余環上で計算しなければならない(フェルマーの小定理よりap-1≡1(mod p)のため, ここでaはpの倍数でない整数)。よって、第二段階で用いる交渉秘密情報SecretX[ID2], SecretY[ID2]もp-1を法とする剰余環上で計算された情報でなければならない。このとき、p-1が素数でないため、除算を正確に計算できない場合が存在することに注意する必要がある。
OutputX+OutputY = YBA×XAB (66)
OutputX+OutputY = YBA×XAB=(X×Y)AB (67)
OutputX+OutputY = Xψφ×Yφψ (68)
OutputX+OutputY = Yψφ×Xφψ=(X×Y)ψφ=(X×Y)(A+B) (69)
130 記憶部、140 操作部、150 インタフェース部、160 演算処理部、
161 秘匿演算変換処理部、162 交渉秘密情報取得処理部、200 通信線
Claims (5)
- 2以上のデータ処理装置で構成され、前記データ処理装置はそれぞれの秘密データを記憶する秘密データ記憶手段と、それぞれの出力データを記憶する出力データ記憶手段と、前記秘密データを入力として、他の前記データ処理装置と連携して、前記出力データをそれぞれ秘匿に計算する演算処理手段と、を有し、
前記演算処理手段は、前記秘密データと前記他のデータ処理装置が記憶する秘密データを入力として変換前演算型Aの演算を行ったときの結果と、前記出力データと前記他のデータ処理装置の出力データを入力として変換後演算型Bの演算を行ったときの結果が同じであることを保証し、
前記データ処理装置は、前記秘密データ、前記出力データ、前記変換前演算型Aと前記変換後演算型Bの組み合わせを指定する演算変換方式型からなるデータセットをそれぞれの交渉秘密情報として記憶する交渉秘密情報記憶手段をさらに備え、
前記演算処理手段が、新たな秘密データに対して、前記交渉秘密情報記憶手段に記憶されている前記交渉秘密情報を用いてべき乗演算によらず加減乗除演算により、新たな出力データを計算する、
ことを特徴とする秘匿演算変換システム。 - 前記交渉秘密情報記憶手段が、前記新たな秘密データと前記交渉秘密情報を用いて得られた前記新たな出力データを新たな交渉秘密情報として記憶する、請求項1に記載の秘匿演算経変換システム。
- 前記演算処理手段は、前記変換前演算型Aが加算であり前記変換後演算型Bが乗算である演算処理と、前記変換前演算型Aが乗算であり前記変換後演算型Bが加算である演算処理とを組み合わせて、底とべき指数の両方を秘密データとし前記変換前演算型Aがべき乗算であり前記変換後演算型Bが乗算または加算である演算変換処理を行う、請求項1または2に記載の秘匿演算変換システム。
- 2以上のデータ処理装置で構成されるシステムにおける前記データ処理装置が、それぞれの秘密データを入力として、他の前記データ処理装置と連携して、それぞれの出力データを秘匿に計算する演算処理ステップを有し、
前記演算処理ステップは、前記秘密データと前記他のデータ処理装置の秘密データを入力として変換前演算型Aの演算を行ったときの結果と前記出力データと前記他のデータ処理装置の出力データを入力として変換後演算型Bの演算を行ったときの結果が同じ値であることを保証し、
前記データ処理装置が、前記秘密データ、前記出力データ、前記変換前演算型Aと前記変換後演算型Bの組み合わせを指定する演算変換方式型からなるデータセットをそれぞれの交渉秘密情報として記憶し、
前記データ処理装置が、新たな秘密データに対して、前記記憶されている前記交渉秘密情報を用いてべき乗演算によらず加減乗除演算により、新たな出力データを計算する、
ことを特徴とする秘匿演算変換方法。 - 2以上のデータ処理装置で構成されるシステムにおける前記データ処理装置に、それぞれの秘密データを入力として、他の前記データ処理装置と連携して、それぞれの出力データを秘匿に計算する演算処理ステップを実行させるプログラムであって、
前記演算処理ステップは、前記秘密データと前記他のデータ処理装置の秘密データを入力として変換前演算型Aの演算を行ったときの結果と前記出力データと前記他のデータ処理装置の出力データを入力として変換後演算型Bの演算を行ったときの結果が同じ値であることを保証し、
前記データ処理装置が、前記秘密データ、前記出力データ、前記変換前演算型Aと前記変換後演算型Bの組み合わせを指定する演算変換方式型からなるデータセットをそれぞれの交渉秘密情報として記憶し、
前記データ処理装置が、新たな秘密データに対して、前記記憶されている前記交渉秘密情報を用いてべき乗演算によらず加減乗除演算により、新たな出力データを秘匿に計算するように、前記データ処理装置を動作させる、
ことを特徴とする秘匿演算変換プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018139191A JP7219437B2 (ja) | 2018-07-25 | 2018-07-25 | 秘匿演算変換システム、秘匿演算変換方法、および、秘匿演算変換プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018139191A JP7219437B2 (ja) | 2018-07-25 | 2018-07-25 | 秘匿演算変換システム、秘匿演算変換方法、および、秘匿演算変換プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020016739A JP2020016739A (ja) | 2020-01-30 |
JP7219437B2 true JP7219437B2 (ja) | 2023-02-08 |
Family
ID=69580978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018139191A Active JP7219437B2 (ja) | 2018-07-25 | 2018-07-25 | 秘匿演算変換システム、秘匿演算変換方法、および、秘匿演算変換プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7219437B2 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016027391A (ja) | 2014-06-25 | 2016-02-18 | 公立大学法人広島市立大学 | 秘匿ベクトル内積計算システム、データ処理装置、秘匿ベクトル内積計算方法、秘匿ベクトル内積プログラム、および、記録媒体 |
JP2016109891A (ja) | 2014-12-08 | 2016-06-20 | 公立大学法人広島市立大学 | 秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体 |
JP2017129644A (ja) | 2016-01-19 | 2017-07-27 | 公立大学法人広島市立大学 | 秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体 |
-
2018
- 2018-07-25 JP JP2018139191A patent/JP7219437B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016027391A (ja) | 2014-06-25 | 2016-02-18 | 公立大学法人広島市立大学 | 秘匿ベクトル内積計算システム、データ処理装置、秘匿ベクトル内積計算方法、秘匿ベクトル内積プログラム、および、記録媒体 |
JP2016109891A (ja) | 2014-12-08 | 2016-06-20 | 公立大学法人広島市立大学 | 秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体 |
JP2017129644A (ja) | 2016-01-19 | 2017-07-27 | 公立大学法人広島市立大学 | 秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体 |
Non-Patent Citations (1)
Title |
---|
YU Ching-Hua, et al.,Efficient Secure Two-Party Exponentiation,Lecture Notes in Computer Science,2011年,vol 6558,pp. 17-32 |
Also Published As
Publication number | Publication date |
---|---|
JP2020016739A (ja) | 2020-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gai et al. | Blend arithmetic operations on tensor-based fully homomorphic encryption over real numbers | |
EP3553995B1 (en) | Terminal device for performing homomorphic encryption, server device for processing cipher text thereof, and methods therefor | |
JP6180177B2 (ja) | プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム | |
CN112367169A (zh) | 数据加解密方法、装置、设备及存储介质 | |
Liu et al. | An efficient privacy-preserving outsourced computation over public data | |
CN110826089B (zh) | 一种实现大尺度矩阵乘法安全高效的可验证外包计算方法、客户端及云计算系统 | |
CN108718231A (zh) | 一种全同态加密方法、装置和计算机可读存储介质 | |
JP6974461B2 (ja) | 幾何代数を用いた高度データ中心型暗号化システムのための方法およびシステム | |
US20190044697A1 (en) | Methods and systems for enhanced data-centric homomorphic encryption searching using geometric algebra | |
Jayapandian et al. | Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption | |
EP2742644B1 (en) | Encryption and decryption method | |
CN110147681A (zh) | 一种支持灵活访问控制的隐私保护大数据处理方法及系统 | |
CN114039785B (zh) | 数据加密、解密、处理方法、装置、设备和存储介质 | |
JP4869824B2 (ja) | 受信者装置及び送信者装置及び暗号通信システム及びプログラム | |
CN104158880A (zh) | 一种用户端云数据共享解决方法 | |
CN109688143A (zh) | 一种面向云环境中隐私保护的聚类数据挖掘方法 | |
CN104077356A (zh) | 基于同态加密的云存储平台检索方法 | |
CN111639345A (zh) | 基于同态加密的安全的多方云计算的方法和系统 | |
Saarinen | The BlueJay ultra-lightweight hybrid cryptosystem | |
CN109040041B (zh) | 数据分层加密装置及相关电子装置、存储介质 | |
Mir et al. | A public and private key image encryption by modified approach of Vigener cipher and the chaotic maps | |
JP7219437B2 (ja) | 秘匿演算変換システム、秘匿演算変換方法、および、秘匿演算変換プログラム | |
JP2016027391A (ja) | 秘匿ベクトル内積計算システム、データ処理装置、秘匿ベクトル内積計算方法、秘匿ベクトル内積プログラム、および、記録媒体 | |
CN115918028A (zh) | 对同态密文执行统计操作的装置及其方法 | |
JP2017129644A (ja) | 秘匿計算情報交換システム、データ処理装置、秘匿計算情報交換方法、秘匿計算情報交換プログラム、および、記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210129 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20210129 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211018 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211102 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220510 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220530 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20221004 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20221128 |
|
C60 | Trial request (containing other claim documents, opposition documents) |
Free format text: JAPANESE INTERMEDIATE CODE: C60 Effective date: 20221128 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20221208 |
|
C21 | Notice of transfer of a case for reconsideration by examiners before appeal proceedings |
Free format text: JAPANESE INTERMEDIATE CODE: C21 Effective date: 20221213 |
|
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: 20230117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230120 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7219437 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |