JP4702777B2 - Secret logic calculation method and apparatus, and program - Google Patents
Secret logic calculation method and apparatus, and program Download PDFInfo
- Publication number
- JP4702777B2 JP4702777B2 JP2005123119A JP2005123119A JP4702777B2 JP 4702777 B2 JP4702777 B2 JP 4702777B2 JP 2005123119 A JP2005123119 A JP 2005123119A JP 2005123119 A JP2005123119 A JP 2005123119A JP 4702777 B2 JP4702777 B2 JP 4702777B2
- Authority
- JP
- Japan
- Prior art keywords
- secret
- calculation
- logic
- term
- function
- 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
本発明は、情報セキュリティの技術分野に関し、特に暗号情報を応用し、関数を解析不能な形で提供し、関数への入力値を知ることなく、当該関数の計算および出力結果の取得を可能とする技術に関する。 The present invention relates to the technical field of information security, and in particular, applies cryptographic information, provides a function in an unanalyzable form, and enables calculation of the function and acquisition of an output result without knowing an input value to the function. Related to technology.
従来、関数への入力値を知ることなく、当該関数の計算および出力結果の取得を可能とする技術としては、例えば、非特許文献1や非特許文献2などに記載の技術がある。これらの技術を用いれば、ある(複数の)数値に対して、ある暗号アルゴリズムを用いて変換することで当該数値を秘匿し、当該変換された数値を入力として、ある複数の装置が計算に協力することで、入力の(元の)数値を漏らすことなく関数の出力結果を得ることができる。更に出力結果の正当性、すなわち各装置が正しい処理を行ったかどうかを検証することができる。非特許文献2の技術を用いれば計算時間を削減した秘密計算を実現することもできる。
Conventionally, as a technique that enables calculation of the function and acquisition of an output result without knowing an input value to the function, for example, there are techniques described in Non-Patent
0または1からなる入力の数値が暗号化された状態のまま、当該数値の加算および排他的論理和の結果(の暗号化)を求めることができれば、当該数値の論理(OR)および論理積(AND)の結果(の暗号文)を求めることができる。すなわち、理論的には、入力の数値が暗号化された状態のまま多くの関数を計算できることになる。これを秘匿論理計算と呼ぶことにする。 If the numerical value of the input consisting of 0 or 1 is encrypted and the result of the addition and exclusive OR (encryption thereof) of the numerical value can be obtained, the logical (OR) and logical product ( AND) result (ciphertext) can be obtained. That is, in theory, many functions can be calculated with the input numerical value encrypted. This is called a secret logic calculation.
既存の秘匿論理計算方式においては、入出力が暗号化されるのみで、演算の内容そのものは公開の下で実施されることが想定される。一方、演算の内容を非公開のまま演算を実施することは、デジタル権利管理モジュールや暗号モジュールなどの実装においては重要な課題である。 In the existing secret logic calculation method, it is assumed that only the input / output is encrypted, and the content of the operation itself is performed in public. On the other hand, it is an important issue in implementing a digital rights management module, a cryptographic module, and the like to perform a calculation while keeping the contents of the calculation private.
本発明は、関数を解析不能な形で提供し、関数への入力値を知ることなく、演算内容を秘匿したまま演算を実施して出力結果の取得を可能とすることで、任意の論理ゲートを実現する秘匿論理計算方法およびシステム、並びにプログラムを提供することにある。 The present invention provides a function in an unanalyzable form, and allows an arbitrary logic gate to obtain an output result by performing an operation while keeping the operation contents secret without knowing an input value to the function. It is an object to provide a secret logic calculation method and system for realizing the above, and a program.
二つの数値x,yの演算x*yとして、y=0の場合はx*y=x、y=1の場合はx*y=1−xと定義する。そして、論理ゲートを、
fa,b,c,d(x,y)=a+b*x+c*y+d*(x*y)
の2次形式の関数で表現する(a,b,c,dはパラメータ)。
この2次形式によって表現された関数について、非特許文献2に記載されているような秘匿回路計算方式を複数回組み合わせ、入出力値および演算内容を秘匿したまま演算を行う。関数はa,b,c,dを適切に調整することで任意の論理ゲートが実現できるので、ゲートの種類と入出力の両方を秘匿したまま任意の論理ゲートを実現できる。
As an operation x * y of two numerical values x and y, x * y = x is defined when y = 0, and x * y = 1−x when y = 1. And the logic gate
f a, b, c, d (x, y) = a + b * x + c * y + d * (x * y)
Is expressed by a function of the quadratic form of (a, b, c, d are parameters).
With respect to the function expressed in the secondary format, a secret circuit calculation method as described in Non-Patent Document 2 is combined a plurality of times, and the calculation is performed while the input / output values and the calculation contents are kept secret. Since an arbitrary logic gate can be realized by appropriately adjusting a, b, c, and d in the function, an arbitrary logic gate can be realized while keeping both the gate type and input / output secret.
本発明により、関数への入力値を知ることなく、演算内容を秘匿したまま演算を実施して出力結果を取得でき、ゲートの種類と入出力の両方を秘匿したまま任意の論理ゲートを実現できる。 According to the present invention, without knowing the input value to the function, it is possible to obtain the output result by performing the operation while keeping the contents of the operation secret, and to realize an arbitrary logic gate while keeping both the gate type and the input / output secret. .
以下、本発明の実施の形態について詳細に説明する。
Eを積と和の演算について準同型性を持つ公開鍵暗号の暗号化関数とする。すなわち、平文x,yについて
E(x)+E(y)=E(x+y)
E(x)E(y)=E(xy)
が成り立つ。ここでは、Eを加法的準同型性を持つ公開鍵暗号の暗号化関数とする。
Hereinafter, embodiments of the present invention will be described in detail.
Let E be a public key cryptography encryption function that has homomorphism for the product and sum operations. That is, for plaintext x and y, E (x) + E (y) = E (x + y)
E (x) E (y) = E (xy)
Holds. Here, E is an encryption function of public key cryptography having additive homomorphism.
いま、Eについて、暗号文E(x),E(y)から、何らかの2次式E(x*y)を計算する手段が与えられているとする。「*」としては、排他的論理和演算を次のように拡張した演算を行うものと定義する。
y=0の場合 : x*y=x
y=1の場合 : x*y=1−x
Now, for E, a means for calculating some quadratic expression E (x * y) from ciphertexts E (x) and E (y) is given. “*” Is defined as performing an operation obtained by extending the exclusive OR operation as follows.
When y = 0: x * y = x
When y = 1: x * y = 1−x
ここで、次のように、パラメータa,b,c,dを持つ2次形式の関数を考える。
fa,b,c,d(x,y)=a+b*x+c*y+d*(x*y) (1)
この2次形式によって表現された関数は、a,b,c,dの値を適切に調整することで任意の論理ゲート機能を実現できる。
Here, consider a quadratic function having parameters a, b, c, and d as follows.
f a, b, c, d (x, y) = a + b * x + c * y + d * (x * y) (1)
The function expressed in the secondary form can realize an arbitrary logic gate function by appropriately adjusting the values of a, b, c, and d.
本発明では、上記2次形式によって表現される関数について、加法的準同型性を持つ公開鍵暗号の暗号化関数Eを適用して、入出力と演算内容を秘匿したまま演算を行うことで、出力結果を取得する。これにより、任意の論理ゲートを、当該ゲートの種類と入出力の両方を秘匿したまま計算することが可能となる。 In the present invention, by applying the encryption function E of public key cryptography having additive homomorphism to the function expressed by the above-mentioned quadratic form, performing the operation while keeping the input / output and the operation content secret, Get the output result. This makes it possible to calculate an arbitrary logic gate while keeping both the type and input / output of the gate concealed.
図1は本発明による秘匿論理計算装置の概念図である。ここで、E(a),E(b),E(c),E(d),E(x),E(y)は、それぞれa,b,c,d,x,yの暗号文である。秘匿論理計算装置10は、暗号文E(a),E(b),E(c),E(d),E(x),E(y)を入力として、E(a+b*x+c*y+d*(x*y))を計算し、その計算結果を秘匿のまま出力する。当該E(a+b*x+c*y+d*(x*y))の計算は、例えば、非特許文献2に記載されている秘匿回路計算方式を用い、これを複数回繰り返し適用して行う。ただし、かならず非特許文献2に記載の方式である必要はない。
FIG. 1 is a conceptual diagram of a secret logic computer according to the present invention. Here, E (a), E (b), E (c), E (d), E (x), and E (y) are ciphertexts of a, b, c, d, x, and y, respectively. is there. The
該秘匿論理計算装置10によれば、演算内容を秘匿したまま2次形式関数の演算を実施することができ、しかも、a,b,c,dの値を適切に調整することで、任意の論理ゲートが実現でき、同時にゲートの種類を秘匿できる。
According to the concealment
図2は秘匿論理計算装置10の一実施例としての処理フローを示したものである。ここで、暗号文E(a),E(b),E(c),E(d),E(x),E(y)は、あらかじめ暗号文生成装置等により生成されているとする。秘匿論理計算装置10は、該暗号文E(a),E(b),E(c),E(d),E(x),E(y)を入力し(ステップ11)、非特許文献2に記載の秘匿回路計算方式、その他の任意の秘密計算方式を適用して、まず、E(b)とE(x)からE(b*x)を計算し(ステップ12)、また、E(c)とE(y)からE(c*y)を計算する(ステップ13)。次に、E(x)とE(y)からE(x*y)を計算し、E(d)と該E(x*y)とからE(d*(x*y))を計算する(ステップ14)。計算の途中結果は記憶装置等に保持しておく。最後に、E(a),E(b*x),E(c*y),E(d*(x*y))の全てを足し合わせ(ステップ15)、計算結果E(a+b*x+c*y+d*(x*y))を出力する(ステップ16)。なお、ステップ12,13,14は順不同である。また、ステップ14では、E(d)とE(x)からE(d*x)を計算し、、該E(d*x)とE(y)からE(d*x*y)を計算しても、結果は同じである。
FIG. 2 shows a processing flow as one embodiment of the
図3は秘匿論理計算装置10の他の実施例としての機能ブロック図を示したものである。ここで、21〜24は、一般にE(A),E(X)を入力としてE(A*X)を計算する秘匿計算手段で、基本的にE(A*X)を計算できればどのような構成のものでもよい。25は単純な加算手段である。
FIG. 3 shows a functional block diagram as another embodiment of the
図2の場合と同様に、暗号文E(a),E(b),E(c),E(d),E(x),E(y)は、あらかじめ暗号文生成装置等により生成されているとする。秘匿計算手段21はE(b)とE(x)を入力してE(b*x)を出力する。同様に、秘匿計算手段22はE(c)とE(y)を入力してE(c*y)を出力する。秘匿計算手段23はE(x)とE(y)を入力してE(x*y)を出力し、秘匿計算手段24は、E(d)と秘匿計算手段23の出力E(x*y)を入力してE(d*(x*y))を出力する。加算手段25は、秘匿計算手段21の出力E(b*x)、秘匿計算手段22の出力E(c*y)、秘匿計算手段24の出力E(d*(x*y))、及びE(a)を入力して、これらをすべて足し合わせ、E(a+b*x+c*y+d*(x*y))を出力する。
As in the case of FIG. 2, the ciphertexts E (a), E (b), E (c), E (d), E (x), E (y) are generated in advance by a ciphertext generator or the like. Suppose that The secret calculation means 21 inputs E (b) and E (x) and outputs E (b * x). Similarly, the secret calculation means 22 inputs E (c) and E (y) and outputs E (c * y). The secret calculation means 23 inputs E (x) and E (y) and outputs E (x * y), and the secret calculation means 24 outputs E (d) and the output E (x * y) of the secret calculation means 23. ) And E (d * (x * y)) is output. The
なお、図3において、秘匿計算手段21〜24は基本的に同じ構成でよい。したがって、制御手段等の制御下で、一つの秘匿計算手段にて秘匿計算手段21〜24の演算を繰り返し実行するようにして、その演算結果をメモリ等に保持し、加算手段25に与えることで、上記と同様の動作が可能である。また、秘匿計算手段23,24は、E(d)とE(x)を入力してE(d*x)を計算する秘匿計算手段、及び、このE(d*x)とE(y)を入力してE(d*x*y)を計算する秘匿計算手段に置き換えても、計算結果は同じである。 In FIG. 3, the secret calculation means 21 to 24 may basically have the same configuration. Therefore, under the control of the control means or the like, the calculation of the secret calculation means 21 to 24 is repeatedly executed by one secret calculation means, and the calculation result is held in the memory or the like and given to the addition means 25. The same operation as described above is possible. The secret calculation means 23 and 24 receive E (d) and E (x) and calculate E (d * x), and the E (d * x) and E (y) The calculation result is the same even if it is replaced with a secret calculation means for calculating E (d * x * y) by inputting.
次に、二、三の具体例を示す。ここでは、一例としてAND,OR,XOR(排他OR)の論理ゲートを実現するとする。図4(a)〜(c)に、AND,OR,XORの各論理ゲートとパラメータa,b,c,dの値との対応関係を示す。以下に、パラメータa,b,c,dの値を図4(a)〜(c)とすることにより、それぞれAND,OR,XORの論理ゲートが実現することを証明する。 Next, a few specific examples are shown. Here, as an example, an AND, OR, XOR (exclusive OR) logic gate is realized. 4A to 4C show the correspondence between AND, OR, and XOR logic gates and the values of parameters a, b, c, and d. Hereinafter, it will be proved that logic gates of AND, OR, and XOR are realized by setting the values of parameters a, b, c, and d to FIGS.
[ANDゲート]
(1)式は、図4(a)のパラメータ値(a,b,c,d)=(−5×4-1,4-1,4-1,3×4-1)を代入すると、式(2)のように表わされる。
fAND(x,y)=−5×4-1+4-1*x+4-1*y+3×4-1*(x*y) (2)
(i)x=0,y=0の場合
先の「*」の演算の定義により、右辺第2項は4-1*x=4-1*0=4-1、同様に右辺第3項も、4-1*y=4-1*0=4-1である。右辺第4項は、x*y=0*0=0で、3×4-1*(x*y)=3×4-1*0=3×4-1である。この右辺第4項は、3×4-1*x=3×4-1*0=3×4-1、3×4-1*y=3×4-1*0=3×4-1と計算しても、結果は同じである。したがって、
fAND(0,0)=−5×4-1+4-1+4-1+3×4-1=0
(ii)x=1,y=0の場合
右辺第2項は4-1*x=4-1*1=1−4-1=3×4-1である。右辺第3項は、4-1*y=4-1*0=4-1である。右辺第4項は、x*y=1*0=1で、d*(x*y)=3×4-1*1=1−3×4-1=4-1である。この右辺第4項は、3×4-1*x=3×4-1*1=1−3×4-1=4-1、4-1*y=4-1*0=4-1でも、結果は同じである。したがって、
fAND(1,0)=−5×4-1+3×4-1+4-1+4-1=0
(iii)x=0,y=1の場合
右辺第2項は4-1*x=4-1*0=4-1である。右辺第3項は4-1*y=4-1*1=1−4-1=3×4-1である。右辺第4項は、x*y=0*1=1−0=1で、d*(x*y)=3×4-1*1=1−3×4-1=4-1である。この右辺第4項は、3×4-1*x=3×4-1*0=3×4-1、3×4-1*y=3×4-1*1=1−3×4-1=4-1でも、結果は同じである。したがって、
fAND(0,1)=−5×4-1+4-1+3×4-1+4-1=0
(iv)x=1,y=1の場合
右辺第2項は4-1*x=4-1*1=1−4-1=3×4-1、同様に右辺第3項も、4-1*y=4-1*1=3×4-1である。右辺第4項は、x*y=1*1=1−1=0で、d*(x*y)=3×4-1*0=3×4-1である。この右辺第4項は、3×4-1*x=3×4-1*1=1−3×4-1=4-1、4-1*y=4-1*1=1−4-1=3×4-1でも、結果は同じである。したがって、
fAND(1,1)=−5×4-1+3×4-1+3×4-1+3×4-1=1
[AND gate]
When the parameter values (a, b, c, d) = (− 5 × 4 −1 , 4 −1 , 4 −1 , 3 × 4 −1 ) in FIG. It is expressed as equation (2).
f AND (x, y) = − 5 × 4 −1 +4 −1 * x + 4 −1 * y + 3 × 4 −1 * (x * y) (2)
(I) When x = 0 and y = 0 According to the definition of the operation of “*” above, the second term on the right side is 4 −1 * x = 4 −1 * 0 = 4 −1 , and the third term on the right side is also the same. 4 −1 * y = 4 −1 * 0 = 4 −1 . The fourth term on the right side is x * y = 0 * 0 = 0, and 3 × 4 −1 * (x * y) = 3 × 4 −1 * 0 = 3 × 4 −1 . The fourth term on the right side is 3 × 4 −1 * x = 3 × 4 −1 * 0 = 3 × 4 −1 , 3 × 4 −1 * y = 3 × 4 −1 * 0 = 3 × 4 −1 And the result is the same. Therefore,
f AND (0,0) = − 5 × 4 −1 +4 −1 +4 −1 + 3 × 4 −1 = 0
(Ii) When x = 1 and y = 0 The second term on the right side is 4 −1 * x = 4 −1 * 1 = 1−4 −1 = 3 × 4 −1 . The third term on the right side is 4 −1 * y = 4 −1 * 0 = 4 −1 . The fourth term on the right side is x * y = 1 * 0 = 1 and d * (x * y) = 3 × 4 −1 * 1 = 1−3 × 4 −1 = 4 −1 . The fourth term on the right side is 3 × 4 −1 * x = 3 × 4 −1 * 1 = 1-3 × 4 −1 = 4 −1 , 4 −1 * y = 4 −1 * 0 = 4 −1. But the result is the same. Therefore,
f AND (1, 0) = − 5 × 4 −1 + 3 × 4 −1 +4 −1 +4 −1 = 0
(Iii) When x = 0, y = 1 The second term on the right side is 4 −1 * x = 4 −1 * 0 = 4 −1 . The third term on the right side is 4 −1 * y = 4 −1 * 1 = 1−4 −1 = 3 × 4 −1 . The fourth term on the right side is x * y = 0 * 1 = 1-0 = 1 and d * (x * y) = 3 × 4 −1 * 1 = 1-3 × 4 −1 = 4 −1 . . The fourth term on the right side is 3 × 4 −1 * x = 3 × 4 −1 * 0 = 3 × 4 −1 , 3 × 4 −1 * y = 3 × 4 −1 * 1 = 1−3 × 4 Even if -1 = 4 -1 , the result is the same. Therefore,
f AND (0,1) = − 5 × 4 −1 +4 −1 + 3 × 4 −1 +4 −1 = 0
(Iv) When x = 1, y = 1 The second term on the right side is 4 −1 * x = 4 −1 * 1 = 1-4 −1 = 3 × 4 −1 , and the third term on the right side is also 4 −1 * y = 4 −1 * 1 = 3 × 4 −1 . The fourth term on the right side is x * y = 1 * 1 = 1−1 = 0, and d * (x * y) = 3 × 4 −1 * 0 = 3 × 4 −1 . The fourth term on the right side is 3 × 4 −1 * x = 3 × 4 −1 * 1 = 1−3 × 4 −1 = 4 −1 , 4 −1 * y = 4 −1 * 1 = 1-4. The result is the same when -1 = 3 × 4 -1 . Therefore,
f AND (1,1) = − 5 × 4 −1 + 3 × 4 −1 + 3 × 4 −1 + 3 × 4 −1 = 1
[ORゲート]
(1)式は、図4(b)のパラメータ値(a,b,c,d)=(−3×4-1,4-1,4-1,4-1)を代入すると、次式(3)のように表わされる。
fOR(x,y)=−3×4-1+4-1*x+4-1*y+4-1*(x*y) (3)
(i)x=0,y=0の場合
右辺第2項は4-1*x=4-1*0=4-1、同様に右辺第3項も、4-1*y=4-1*0=4-1である。右辺第4項は、x*y=0*0=0で、d*(x*y)=4-1*0=4-1である。この右辺第4項は、4-1*x=4-1*0=4-1、4-1*y=4-1*0=4-1でも、結果は同じである。したがって、
fOR(0,0)=−3×4-1+4-1+4-1+4-1=0
(ii)x=1,y=0の場合
右辺第2項は4-1*x=4-1*1=1−4-1=3×4-1である。右辺第3項は、4-1*y=4-1*0=4-1である。右辺第4項は、x*y=1*0=1で、d*(x*y)=4-1*1=1−4-1=3×4-1である。この右辺第4項は、4-1*x=4-1*1=3×4-1、3×4-1*y=3×4-1*0=3×4-1でも、結果は同じである。したがって、
fOR(1,0)=−3×4-1+3×4-1+4-1+3×4-1=1
(iii)x=0,y=1の場合
右辺第2項は4-1*x=4-1*0=4-1である。右辺第3項は4-1*y=4-1*1=3×4-1である。右辺第4項は、x*y=0*1=1−0=1、d*(x*y)=4-1*1=1−4-1=3×4-1である。この右辺第4項は、4-1*x=4-1*0=4-1、4-1*y=4-1*1=1−4-1=3×4-1でも、結果は同じである。したがって、
fOR(0,1)=−3×4-1+4-1+3×4-1+3×4-1=1
(iv)x=1,y=1の場合
右辺第2項は4-1*x=4-1*1=1−4-1=3×4-1である。同様に右辺第3項も、4-1*y=4-1*1=3×4-1である。右辺第4項は、x*y=1*1=0で、d*(x*y)=4-1*0=4-1である。この右辺第4項は、4-1*x=4-1*1=3×4-1、3×4-1*y=3×4-1*1=1−3×4-1=4-1でも、結果は同じである。したがって、
fOR(1,1)=−3×4-1+3×4-1+3×4-1+4-1=1
[OR gate]
Equation (1) is obtained by substituting the parameter values (a, b, c, d) = (− 3 × 4 −1 , 4 −1 , 4 −1 , 4 −1 ) in FIG. It is expressed as (3).
f OR (x, y) = − 3 × 4 −1 +4 −1 * x + 4 −1 * y + 4 −1 * (x * y) (3)
(I) When x = 0, y = 0 The second term on the right side is 4 −1 * x = 4 −1 * 0 = 4 −1 , and the third term on the right side is also 4 −1 * y = 4 −1. * 0 = 4 -1 . The fourth term on the right side is x * y = 0 * 0 = 0 and d * (x * y) = 4 −1 * 0 = 4 −1 . The fourth term on the right side has the same result even when 4 −1 * x = 4 −1 * 0 = 4 −1 , 4 −1 * y = 4 −1 * 0 = 4 −1 . Therefore,
f OR (0,0) = − 3 × 4 −1 +4 −1 +4 −1 +4 −1 = 0
(Ii) When x = 1 and y = 0 The second term on the right side is 4 −1 * x = 4 −1 * 1 = 1−4 −1 = 3 × 4 −1 . The third term on the right side is 4 −1 * y = 4 −1 * 0 = 4 −1 . The fourth term on the right side is x * y = 1 * 0 = 1 and d * (x * y) = 4 −1 * 1 = 1−4 −1 = 3 × 4 −1 . The fourth term on the right side is 4 −1 * x = 4 −1 * 1 = 3 × 4 −1 , 3 × 4 −1 * y = 3 × 4 −1 * 0 = 3 × 4 −1. The same. Therefore,
f OR (1, 0) = − 3 × 4 −1 + 3 × 4 −1 +4 −1 + 3 × 4 −1 = 1
(Iii) When x = 0, y = 1 The second term on the right side is 4 −1 * x = 4 −1 * 0 = 4 −1 . The third term on the right side is 4 −1 * y = 4 −1 * 1 = 3 × 4 −1 . The fourth term on the right side is x * y = 0 * 1 = 1-0 = 1, d * (x * y) = 4 −1 * 1 = 1 −1 −1 = 3 × 4 −1 . The 4th term on the right side is 4 -1 * x = 4 -1 * 0 = 4 -1 , 4 -1 * y = 4 -1 * 1 = 1 -4 -1 = 3 × 4 -1 The same. Therefore,
f OR (0,1) = − 3 × 4 −1 +4 −1 + 3 × 4 −1 + 3 × 4 −1 = 1
(Iv) When x = 1 and y = 1 The second term on the right side is 4 −1 * x = 4 −1 * 1 = 1−4 −1 = 3 × 4 −1 . Similarly, the third term on the right side is 4 −1 * y = 4 −1 * 1 = 3 × 4 −1 . The fourth term on the right side is x * y = 1 * 1 = 0 and d * (x * y) = 4 −1 * 0 = 4 −1 . The fourth term on the right side is 4 −1 * x = 4 −1 * 1 = 3 × 4 −1 , 3 × 4 −1 * y = 3 × 4 −1 * 1 = 1−3 × 4 −1 = 4 Even at -1 , the result is the same. Therefore,
f OR (1,1) = − 3 × 4 −1 + 3 × 4 −1 + 3 × 4 −1 +4 −1 = 1
[XORゲート]
(1)式は、図4(c)のパラメータ値(a,b,c,d)=(−1,2-1,2-1,0)を代入すると、次式(4)のように表わされる。
fXOR(x,y)=−1+2-1*x+2-1*y+0*x*y (4)
(i)x=0,y=0の場合
右辺第2項は2-1*x=2-1*0=2-1、同様に右辺第3項も、2-1*y=2-1*0=2-1である。右辺第4項は、x*y=0*0=0で、d*(x*y)=0*0=0である。この右辺第4項は、0*x=0*0=0、0*y=0*0=0でも、結果は同じである。したがって、
fXOR(0,0)=−1+2-1+2-1+0=0
(ii)x=1,y=0の場合
右辺第2項は2-1*x=2-1*1=1−2-1=2-1である。右辺第3項は、2-1*y=2-1*0=2-1である。右辺第4項は、x*y=1*0=1で、d*(x*y)=0*1=1−0=1である。この右辺第4項は、0*x=0*1=1−0=1、1*y=1*0=1でも、結果は同じである。したがって、
fXOR(1,0)=−1+2-1+2-1+1=1
(iii)x=0,y=1の場合
右辺第2項は2-1*x=2-1*0=2-1である。右辺第3項は2-1*y=2-1*1=2-1である。右辺第4項は、x*y=0*1=1−0=1で、d*(x*y)=0*1=1−0=1である。この右辺第4項は、0*x=0*0=0、0*y=0*1=1−0=1でも、結果は同じである。したがって、
fXOR(0,y)=−1+2-1+2-1+1=1
(iv)x=1,y=1の場合
右辺第2項は2-1*x=2-1*1=2-1である。同様に右辺第3項も、2-1*y=2-1*1=2-1である。右辺第4項は、x*y=1*1=1−1=0で、d*(x*y)=0*0=0である。この右辺第4項は、0*x=0*1=1−0=1、1*y=1*1=1−1=0でも、結果は同じである。したがって、
fXOR(1,1)=−1+2-1+2-1+0=0
[XOR gate]
(1) formula, 4 parameter values (c) (a, b, c, d) = (- 1,2 -1, 2 -1, 0) Substituting, as the following formula (4) Represented.
f XOR (x, y) = − 1 + 2 −1 * x + 2 −1 * y + 0 * x * y (4)
(I) When x = 0, y = 0 The second term on the right side is 2 −1 * x = 2 −1 * 0 = 2 −1 , and the third term on the right side is also 2 −1 * y = 2 −1. * 0 = 2 -1 . The fourth term on the right side is x * y = 0 * 0 = 0 and d * (x * y) = 0 * 0 = 0. The fourth term on the right side has the same result even when 0 * x = 0 * 0 = 0 and 0 * y = 0 * 0 = 0. Therefore,
f XOR (0,0) = − 1 + 2 −1 +2 −1 + 0 = 0
(Ii) When x = 1 and y = 0 The second term on the right side is 2 −1 * x = 2 −1 * 1 = 1−2 −1 = 2 −1 . The third term on the right side is 2 −1 * y = 2 −1 * 0 = 2 −1 . The fourth term on the right side is x * y = 1 * 0 = 1 and d * (x * y) = 0 * 1 = 1-0 = 1. The fourth term on the right side has the same result even if 0 * x = 0 * 1 = 1-0 = 1, 1 * y = 1 * 0 = 1. Therefore,
f XOR (1, 0) = − 1 + 2 −1 +2 −1 + 1 = 1
(Iii) When x = 0 and y = 1 The second term on the right side is 2 −1 * x = 2 −1 * 0 = 2 −1 . The third term on the right side is 2 −1 * y = 2 −1 * 1 = 2 −1 . The fourth term on the right side is x * y = 0 * 1 = 1-0 = 1, and d * (x * y) = 0 * 1 = 1-0 = 1. The fourth term on the right side has the same result even when 0 * x = 0 * 0 = 0, 0 * y = 0 * 1 = 1-0 = 1. Therefore,
f XOR (0, y) = − 1 + 2 −1 +2 −1 + 1 = 1
(Iv) When x = 1 and y = 1 The second term on the right side is 2 −1 * x = 2 −1 * 1 = 2 −1 . Similarly, the third term on the right side is 2 -1 * y = 2 -1 * 1 = 2 -1 . The fourth term on the right side is x * y = 1 * 1 = 1−1 = 0 and d * (x * y) = 0 * 0 = 0. The fourth term on the right side has the same result even when 0 * x = 0 * 1 = 1-0 = 1, 1 * y = 1 * 1 = 1-1 = 0. Therefore,
f XOR (1,1) = − 1 + 2 −1 +2 −1 + 0 = 0
以上、一例として、AND,OR,XORの論理ゲートの場合を示したが、同様にして、(1)式におけるa,b,c,dの値を調整すれば、任意の論理ゲートを実現できる。そして、本発明によれば、入出力を暗号化したまま、同時に論理ゲートの種類、内容を秘匿して、計算を実行することができる。 As described above, the case of AND, OR, and XOR logic gates has been shown as an example. Similarly, any logic gate can be realized by adjusting the values of a, b, c, and d in equation (1). . According to the present invention, it is possible to execute the calculation while concealing the type and contents of the logic gate while the input / output is encrypted.
なお、図3などで示した装置における各部の一部もしくは全部の処理機能をコンピュータのプログラムで構成し、そのプログラムをコンピュータを用いて実行して本発明を実現することができること、あるいは、図2などで示した処理手順をコンピュータのプログラムで構成し、そのプログラムをコンピュータに実行させることができることは言うまでもない。また、コンピュータでその処理機能を実現するためのプログラム、あるいは、コンピュータにその処理手順を実行させるためのプログラムを、そのコンピュータが読み取り可能な記録媒体、例えば、FD、MO、ROM、メモリカード、CD、DVD、リムーバブルディスクなどに記録して、保存したり、提供したりすることができるとともに、インターネット等のネットワークを通してそのプログラムを配布したりすることが可能である。 It should be noted that some or all of the processing functions of each unit in the apparatus shown in FIG. 3 and the like can be configured by a computer program and the program can be executed using the computer to implement the present invention, or FIG. It goes without saying that the processing procedure shown by the above can be constituted by a computer program, and the program can be executed by the computer. In addition, a computer-readable recording medium such as an FD, MO, ROM, memory card, CD, or the like is stored in the computer. In addition, the program can be recorded and stored on a DVD, a removable disk, etc., and the program can be distributed through a network such as the Internet.
10 秘匿論理計算装置
21〜24 秘匿計算手段
25 加算手段
DESCRIPTION OF
Claims (9)
論理ゲートを
fa,b,c,d(x,y)=a+b*x+c*y+d*(x*y)
の2次形式の関数で表現し(a,b,c,dはパラメータ)、
秘匿論理計算装置により、加法的準同型性を持つ暗号化関数Eを適用して、入出力値および演算内容を秘匿にして前記関数を計算することにより、任意の論理ゲートを実現する秘匿論理計算方法であって、
a,b,c,d,x,yの暗号文E(a),E(b),E(c),E(d),E(x),E(y)を入力として、
E(b),E(x)からE(b*x)を計算し、E(c),E(y)からE(c*y)を計算し、E(x),E(y)からE(x*y)を計算し、E(d),E(x*y)からE(d*(x*y))を計算し、
E(a)、及び、前記E(b*x),E(c*y),E(d*(x*y))を足し合わせて、
E(a+b*x+c*y+d*(x*y))
を得ることを特徴とする秘匿論理計算方法。 An operation x * y of two numerical values x and y is defined as x * y = x when y = 0, and x * y = 1−x when y = 1,
The logic gates are expressed as f a, b, c, d (x, y) = a + b * x + c * y + d * (x * y)
Expressed in a quadratic function of (a, b, c, d are parameters),
Secret logic calculation that realizes an arbitrary logic gate by applying an encryption function E having additive homomorphism and calculating the function while keeping input / output values and calculation contents secret by a secret logic calculation device A method,
With ciphertexts E (a), E (b), E (c), E (d), E (x), E (y) of a, b, c, d, x, y as inputs,
E (b * x) is calculated from E (b) and E (x), E (c * y) is calculated from E (c) and E (y), and E (x) and E (y) are calculated. E (x * y) is calculated, E (d * (x * y)) is calculated from E (d) and E (x * y),
E (a) and E (b * x), E (c * y), E (d * (x * y)) are added together,
E (a + b * x + c * y + d * (x * y))
A secret logic calculation method characterized by:
論理ゲートを
fa,b,c,d(x,y)=a+b*x+c*y+d*(x*y)
の2次形式の関数で表現し(a,b,c,dはパラメータ)、
加法的準同型性を持つ暗号化関数Eを適用して、入出力値および演算内容を秘匿にして前記関数を計算することにより、任意の論理ゲートを実現する秘匿論理計算装置であって、
a,b,c,d,x,yの暗号文E(a),E(b),E(c),E(d),E(x),E(y)を入力する入力手段と、
E(b),E(x)からE(b*x)を計算する第1の秘匿計算手段と、
E(c),E(y)からE(c*y)を計算する第2の秘匿計算手段と、
E(x),E(y)からE(x*y)を計算する第3の秘匿計算手段と、
E(d),前記第3の秘匿計算手段で得られたE(x*y)からE(d*(x*y))を計算する第4の秘匿計算手段と、
E(a)、前記第1、第2及び第4の秘匿計算手段の計算結果のE(b*x),E(c*y),E(d*(x,y))を足し合わせて、E(a+b*x+c*y+d*(x*y))を得る加算手段と、
を有することを特徴とする秘匿論理計算装置。 As an operation of two numerical values x and y, when y = 0, it is defined as x * y = x, and when y = 1, x * y = 1−x,
The logic gates are expressed as f a, b, c, d (x, y) = a + b * x + c * y + d * (x * y)
Expressed in a quadratic function of (a, b, c, d are parameters),
A secret logic calculation device that realizes an arbitrary logic gate by applying an encryption function E having additive homomorphism and calculating the function while keeping input / output values and calculation contents secret,
input means for inputting ciphertexts E (a), E (b), E (c), E (d), E (x), E (y) of a, b, c, d, x, y;
First secret calculation means for calculating E (b * x) from E (b) and E (x);
A second secret calculation means for calculating E (c * y) from E (c) and E (y);
A third secret calculation means for calculating E (x * y) from E (x) and E (y);
E (d), fourth secret calculation means for calculating E (d * (x * y)) from E (x * y) obtained by the third secret calculation means;
E (a), E (b * x), E (c * y), E (d * (x, y)) of the calculation results of the first, second and fourth secret calculation means are added together , E (a + b * x + c * y + d * (x * y)) adding means,
A secret logic computer characterized by comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005123119A JP4702777B2 (en) | 2005-04-21 | 2005-04-21 | Secret logic calculation method and apparatus, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005123119A JP4702777B2 (en) | 2005-04-21 | 2005-04-21 | Secret logic calculation method and apparatus, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006301310A JP2006301310A (en) | 2006-11-02 |
JP4702777B2 true JP4702777B2 (en) | 2011-06-15 |
Family
ID=37469668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005123119A Active JP4702777B2 (en) | 2005-04-21 | 2005-04-21 | Secret logic calculation method and apparatus, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4702777B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5103408B2 (en) * | 2009-01-19 | 2012-12-19 | 日本電信電話株式会社 | Secret calculation system, secret calculation method, secret calculation program |
AU2019233029B2 (en) * | 2018-03-12 | 2021-07-22 | Nippon Telegraph And Telephone Corporation | Secure computation apparatus, secure computation method, program, and recording medium |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006227563A (en) * | 2005-01-24 | 2006-08-31 | Nippon Telegr & Teleph Corp <Ntt> | Method, system, and program for secret calculation |
-
2005
- 2005-04-21 JP JP2005123119A patent/JP4702777B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006227563A (en) * | 2005-01-24 | 2006-08-31 | Nippon Telegr & Teleph Corp <Ntt> | Method, system, and program for secret calculation |
Also Published As
Publication number | Publication date |
---|---|
JP2006301310A (en) | 2006-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Orsini et al. | Overdrive2k: efficient secure MPC over from somewhat homomorphic encryption | |
JP5491638B2 (en) | Proxy calculation system, calculation device, capability providing device, proxy calculation method, capability providing method, program, and recording medium | |
Kim et al. | Access control encryption for general policies from standard assumptions | |
Chaudhary et al. | Analysis and comparison of various fully homomorphic encryption techniques | |
JP5257357B2 (en) | Key generation device, encryption device, and decryption device | |
Alexandru et al. | Secure multi-party computation for cloud-based control | |
Bose et al. | Cryptography and network security | |
Orsini et al. | Bootstrapping BGV ciphertexts with a wider choice of p and q | |
Gaffar et al. | The multi layer auto encoder neural network (ML-AENN) for encryption and decryption of text message | |
US11599681B2 (en) | Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program | |
Yan et al. | Cybercryptography: Applicable Cryptography for Cyberspace Security | |
EP3633656B1 (en) | Secret tampering detection system, secret tampering detection apparatus, secret tampering detection method, and program | |
JP6467063B2 (en) | Secret authentication code adding apparatus, secret authentication code adding method, and program | |
JP4702777B2 (en) | Secret logic calculation method and apparatus, and program | |
AL-Rummana et al. | Homomorphic encryption for big data security: A survey | |
Aly et al. | Practically efficient secure distributed exponentiation without bit-decomposition | |
JP5513444B2 (en) | Vector configuration system, method, apparatus, program, and encryption system | |
Rao et al. | Secure and practical outsourcing of linear programming in cloud computing: A survey | |
Sadi | Homomorphic encryption | |
Klemsa | TFHE Parameter Setup for Effective and Error-Free Neural Network Prediction on Encrypted Data | |
JP5103408B2 (en) | Secret calculation system, secret calculation method, secret calculation program | |
Chattopadhyay et al. | Quantum Safe Internet-of-Things (IoT) | |
Msilini et al. | Homomorphic Cryptosystems for Securing Data in Public Cloud Computing | |
Ling et al. | Public-Key Encryption with Keyword Search in Multi-user, Multi-challenge Setting under Adaptive Corruptions | |
Raina et al. | A Framework for Security Management in Cloud Based on Quantum Cryptography |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070809 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101215 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110207 |
|
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: 20110302 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110302 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4702777 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
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 |