JP4702777B2 - Secret logic calculation method and apparatus, and program - Google Patents

Secret logic calculation method and apparatus, and program Download PDF

Info

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
Application number
JP2005123119A
Other languages
Japanese (ja)
Other versions
JP2006301310A (en
Inventor
剛 山本
浩司 千田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2005123119A priority Critical patent/JP4702777B2/en
Publication of JP2006301310A publication Critical patent/JP2006301310A/en
Application granted granted Critical
Publication of JP4702777B2 publication Critical patent/JP4702777B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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 Document 1, Non-Patent Document 2, and the like. By using these technologies, a certain number (multiple) is converted by using a certain cryptographic algorithm to conceal the number, and the converted number is used as input to allow a plurality of devices to cooperate in the calculation. By doing so, the output result of the function can be obtained without leaking the (original) numerical value of the input. Furthermore, it is possible to verify the validity of the output result, that is, whether each device has performed the correct processing. If the technique of Non-Patent Document 2 is used, a secret calculation with a reduced calculation time can be realized.

B.Schoenmakers and P.Tuyls,“Practical Two-Party Computation based on the Conditional Gates,”ASIACRYPT2004,Dec.2004.B. Schoenmakers and P.M. Tuyls, “Practical Two-Party Calculation based on the Conditional Gates,” ASIACRYPT 2004, Dec. 2004. 千田、山本、鈴木、内山、「ElGamal暗号を用いたマルチパーティ−による秘匿回路計算」,SCIS2005,2005年1月25〜28日Senda, Yamamoto, Suzuki, Uchiyama, "Multi-party secret circuit calculation using ElGamal encryption", SCIS2005, January 25-28, 2005

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と定義する。そして、論理ゲートを、
a,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次形式の関数を考える。
a,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 secret logic computer 10 receives the ciphertexts E (a), E (b), E (c), E (d), E (x), E (y) as input, and E (a + b * x + c * y + d *). (X * y)) is calculated, and the calculation result is output in a secret manner. The calculation of E (a + b * x + c * y + d * (x * y)) is performed by, for example, using a secret circuit calculation method described in Non-Patent Document 2 and repeatedly applying it. However, the method described in Non-Patent Document 2 is not necessarily required.

該秘匿論理計算装置10によれば、演算内容を秘匿したまま2次形式関数の演算を実施することができ、しかも、a,b,c,dの値を適切に調整することで、任意の論理ゲートが実現でき、同時にゲートの種類を秘匿できる。   According to the concealment logic computing device 10, it is possible to perform the computation of the quadratic function while keeping the computation content concealed, and by adjusting the values of a, b, c, and d appropriately, A logic gate can be realized and the type of gate can be concealed at the same time.

図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 secret logic computer 10. Here, it is assumed that the ciphertexts E (a), E (b), E (c), E (d), E (x), and E (y) are generated in advance by a ciphertext generation device or the like. The secret logic computer 10 inputs the ciphertexts E (a), E (b), E (c), E (d), E (x), and E (y) (step 11). 2, the E (b * x) is first calculated from E (b) and E (x) by applying the secret circuit calculation method described in 2 and any other secret calculation method (step 12). E (c * y) is calculated from (c) and E (y) (step 13). Next, E (x * y) is calculated from E (x) and E (y), and E (d * (x * y)) is calculated from E (d) and E (x * y). (Step 14). An intermediate result of the calculation is stored in a storage device or the like. Finally, all of E (a), E (b * x), E (c * y), E (d * (x * y)) are added (step 15), and the calculation result E (a + b * x + c *) y + d * (x * y)) is output (step 16). Steps 12, 13, and 14 are in no particular order. In step 14, E (d * x) is calculated from E (d) and E (x), and E (d * x * y) is calculated from E (d * x) and E (y). Even so, the result is the same.

図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 secret logic computer 10. Here, 21 to 24 are secret calculation means for calculating E (A * X) by using E (A) and E (X) as inputs, and basically any type of E (A * X) can be calculated. The thing of a structure may be sufficient. Reference numeral 25 denotes a simple addition means.

図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 adder 25 outputs the output E (b * x) of the secret calculation means 21, the output E (c * y) of the secret calculation means 22, the output E (d * (x * y)) of the secret calculation means 24, and E Input (a), add them all, and output E (a + b * x + c * y + d * (x * y)).

なお、図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)のように表わされる。
AND(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と計算しても、結果は同じである。したがって、
AND(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でも、結果は同じである。したがって、
AND(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でも、結果は同じである。したがって、
AND(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でも、結果は同じである。したがって、
AND(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)のように表わされる。
OR(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でも、結果は同じである。したがって、
OR(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でも、結果は同じである。したがって、
OR(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でも、結果は同じである。したがって、
OR(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でも、結果は同じである。したがって、
OR(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)のように表わされる。
XOR(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でも、結果は同じである。したがって、
XOR(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でも、結果は同じである。したがって、
XOR(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でも、結果は同じである。したがって、
XOR(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でも、結果は同じである。したがって、
XOR(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.

本発明による秘匿論理計算装置の概念図。The conceptual diagram of the secret logic computer by this invention. 本発明の一実施例の処理フロー図。The processing flowchart of one Example of this invention. 本発明のほかの実施例の機能ブロック図。The functional block diagram of the other Example of this invention. 論理ゲートとパラメータ値の対応関係の一例を示す図。The figure which shows an example of the correspondence of a logic gate and a parameter value.

符号の説明Explanation of symbols

10 秘匿論理計算装置
21〜24 秘匿計算手段
25 加算手段
DESCRIPTION OF SYMBOLS 10 Secret logic calculation apparatus 21-24 Secret calculation means 25 Addition means

Claims (9)

二つの数値x,yの演算x*yとして、y=0の場合はx*y=x、y=1の場合はx*y=1−xと定義し、
論理ゲートを
a,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:
請求項1記載の秘匿論理計算方法において、パラメータ(a,b,c,d)は、予め所定の値に調整されることを特徴とする秘匿論理計算方法。   2. The secret logic calculation method according to claim 1, wherein the parameters (a, b, c, d) are adjusted to predetermined values in advance. 請求項2記載の秘匿論理計算方法において、パラメータ(a,b,c,d)=(−5×4-1,4-1,4-1,3×4-1)として、ANDゲートを実現することを特徴とする秘匿論理計算方法。 3. The method according to claim 2, wherein an AND gate is realized with parameters (a, b, c, d) = (− 5 × 4 −1 , 4 −1 , 4 −1 , 3 × 4 −1 ). A secret logic calculation method characterized by: 請求項2記載の秘匿論理計算方法において、パラメータ(a,b,c,d)=(−3×4-1,4-1,4-1,4-1)として、ORゲートを実現することを特徴とする秘匿論理計算方法。 3. The secret logic calculation method according to claim 2, wherein an OR gate is realized with parameters (a, b, c, d) = (− 3 × 4 −1 , 4 −1 , 4 −1 , 4 −1 ). A secret logic calculation method characterized by 請求項2記載の秘匿論理計算方法において、パラメータ(a,b,c,d)=(−1,2-1,2-1,0)として、XORゲートを実現することを特徴とする秘匿論理計算方法。 In confidential logical calculation method according to claim 2, wherein the parameters (a, b, c, d ) = (- 1,2 -1, 2 -1, 0) as the concealment logic, characterized in that to realize a XOR gate Method of calculation. 二つの数値x,yの演算として、y=0の場合はx*y=x、y=1の場合はx*y=1−xと定義し、
論理ゲートを
a,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:
請求項6記載の秘匿論理計算装置において、前記第1、第2、第3及び第4の秘匿計算手段は同一の秘匿計算手段で構成されることを特徴とする秘匿論理計算装置。   7. The secret logic calculation apparatus according to claim 6, wherein the first, second, third and fourth secret calculation means are composed of the same secret calculation means. 請求項1乃至5のいずれか1項に記載の秘匿論理計算方法をコンピュータに実行させるためのプログラム。   A program for causing a computer to execute the secret logic calculation method according to any one of claims 1 to 5. 請求項1乃至5のいずれか1項に記載の秘匿論理計算方法をコンピュータに実行させるためのプログラムを記録した記録媒体。   A recording medium storing a program for causing a computer to execute the secret logic calculation method according to claim 1.
JP2005123119A 2005-04-21 2005-04-21 Secret logic calculation method and apparatus, and program Active JP4702777B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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