JP2017003961A - Secret computing device and program - Google Patents
Secret computing device and program Download PDFInfo
- Publication number
- JP2017003961A JP2017003961A JP2015223418A JP2015223418A JP2017003961A JP 2017003961 A JP2017003961 A JP 2017003961A JP 2015223418 A JP2015223418 A JP 2015223418A JP 2015223418 A JP2015223418 A JP 2015223418A JP 2017003961 A JP2017003961 A JP 2017003961A
- Authority
- JP
- Japan
- Prior art keywords
- output
- input
- gate
- value
- key
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、情報セキュリティ技術の応用技術に関し、特に秘匿回路を用いた計算技術に関する。 The present invention relates to an application technology of information security technology, and more particularly to a calculation technology using a secret circuit.
非特許文献1には、秘匿回路を用いた2パーティ計算方式の従来技術が開示されている。非特許文献1の秘匿回路では、秘匿化前の回路を構成する各ゲートの入力の真理値に対応する入力鍵および入力ラベルが設定され、さらに各ゲートの入力の真理値の組み合わせに応じた出力の真理値に対応する出力鍵および出力ラベルが設定される。出力鍵および出力ラベルは、入力鍵の組み合わせによって復号可能なように共通鍵暗号によって暗号化されている。ゲートの出力は次のゲートの入力となる。
Non-Patent
この秘匿回路を用いた計算では、各ゲートの入力の真理値の組み合わせに対応する入力鍵および入力ラベルを用いて当該ゲートの暗号文を復号し、出力鍵および出力ラベルを得る。出力鍵および出力ラベルは、次のゲートで入力鍵および入力ラベルとして利用され、同様に次のゲートの暗号文を復号して次の出力鍵および出力ラベルを得る。これを繰り返すことで最終段のゲートの出力ラベルを得る。この出力ラベルは演算結果に対応する。 In the calculation using the concealment circuit, the ciphertext of the gate is decrypted using the input key and the input label corresponding to the combination of the truth values of the inputs of each gate, and the output key and the output label are obtained. The output key and the output label are used as the input key and the input label at the next gate, and the ciphertext of the next gate is similarly decrypted to obtain the next output key and the output label. By repeating this, the output label of the gate at the final stage is obtained. This output label corresponds to the operation result.
従来方式では、各ゲートの出力鍵および出力ラベルの暗号文を保存しておかなければならず、秘匿回路のサイズが大きいという問題がある。本発明の課題は、秘匿回路のサイズを削減することである。 In the conventional method, the output key of each gate and the ciphertext of the output label must be stored, and there is a problem that the size of the concealment circuit is large. An object of the present invention is to reduce the size of a secret circuit.
各ゲートの定義域の元のそれぞれに応じた入力ラベルに対応する値と、当該元が当該ゲートに入力された際の出力値のそれぞれに応じたゲートの出力鍵と、に応じた像のトラップドア一方向性置換による逆像を得、当該逆像を用いて当該元のそれぞれに応じた入力鍵を得る。さらに当該入力鍵を用い、当該元が当該ゲートに入力された際の出力値に応じた出力ラベルを秘匿化した秘匿化出力ラベルを得る。 An image trap corresponding to a value corresponding to an input label corresponding to each original element in the domain of each gate and an output key of the gate corresponding to each output value when the element is input to the gate. An inverse image is obtained by door unidirectional replacement, and an input key corresponding to each of the original is obtained using the inverse image. Further, using the input key, a concealed output label is obtained by concealing the output label corresponding to the output value when the source is input to the gate.
これにより、各ゲートの出力鍵に対応する暗号文の保存が不要となり、秘匿回路のサイズを削減できる。 Thereby, it is not necessary to store the ciphertext corresponding to the output key of each gate, and the size of the secret circuit can be reduced.
以下、本発明の実施形態を説明する。
[概要]
秘匿回路の生成では、各ゲートの定義域の元のそれぞれに応じた入力ラベルに対応する値と、当該元が当該ゲートに入力された際の出力値のそれぞれに応じたゲートの出力鍵と、に応じた像のトラップドア一方向性置換による逆像を得、当該逆像を用いて当該元のそれぞれに応じた入力鍵を得る。さらに当該入力鍵を用い、当該元が当該ゲートに入力された際の出力値に応じた出力ラベルを秘匿化した秘匿化出力ラベルを得る。
Embodiments of the present invention will be described below.
[Overview]
In the generation of the concealment circuit, a value corresponding to the input label corresponding to each of the elements in the domain of each gate, an output key of the gate corresponding to each of the output values when the element is input to the gate, An inverse image is obtained by unidirectional replacement of the trap door according to the image, and an input key corresponding to each of the original is obtained using the inverse image. Further, using the input key, a concealed output label is obtained by concealing the output label corresponding to the output value when the source is input to the gate.
通常の一方向性写像の場合、その像から逆像を得ることは困難である。一方、トラップドア一方向性置換の場合、秘密情報であるトラップドアを用いることで、その像から逆像を得ることができる。トラップドア一方向性置換の例は、RSA暗号などの公開鍵暗号方式の暗号化関数であり、トラップドアの例は公開鍵暗号方式の秘密鍵である。本形態では、このようなトラップドア一方向性置換を用い、各ゲートの入力値の各真理値に対応する入力ラベルに対応する値と、それに応じた出力値の各真理値に対応する出力鍵とから、その各真理値に応じた入力の真理値に対応する入力鍵を逆向きに設定していき、回路を秘匿化する。これにより、出力鍵の暗号文を保存しておくことなく、入力ラベルに対応する真理値に対応する入力鍵を用いた復号処理によって、当該入力ラベルに対応する真理値に応じた出力値に対応する出力鍵を復元可能な秘匿回路を構成できる。すなわち、この秘匿回路を用いた秘匿計算では、ゲートの入力値に応じた入力ラベルに対応する値と当該ゲートの入力鍵のトラップドア一方向性置換による像とに応じたゲートの出力鍵を得、当該ゲートの出力値に応じた秘匿化出力ラベルおよびゲートの入力鍵を用い、ゲートの出力値に応じた出力ラベルを得ることができる。このように出力鍵の暗号文を保存しておく必要がないため、秘匿回路のサイズを削減できる。 In the case of a normal one-way map, it is difficult to obtain an inverse image from the image. On the other hand, in the case of trap door unidirectional replacement, a reverse image can be obtained from the image by using the trap door which is secret information. An example of trapdoor unidirectional replacement is an encryption function of a public key cryptosystem such as RSA cryptography, and an example of trapdoor is a secret key of a public key cryptosystem. In this embodiment, such a trapdoor unidirectional replacement is used, a value corresponding to an input label corresponding to each truth value of an input value of each gate, and an output key corresponding to each truth value of an output value corresponding thereto. Then, the input key corresponding to the truth value of the input corresponding to each truth value is set in the reverse direction to conceal the circuit. As a result, without saving the ciphertext of the output key, the decryption process using the input key corresponding to the truth value corresponding to the input label supports the output value corresponding to the truth value corresponding to the input label. A secret circuit capable of restoring the output key to be configured can be configured. That is, in the secret calculation using this secret circuit, an output key of the gate corresponding to the value corresponding to the input label corresponding to the input value of the gate and the image by the trap door unidirectional replacement of the input key of the gate is obtained. By using the concealment output label corresponding to the output value of the gate and the input key of the gate, an output label corresponding to the output value of the gate can be obtained. Thus, since it is not necessary to save the ciphertext of the output key, the size of the secret circuit can be reduced.
後述の第1実施形態の秘匿回路の生成では、入力ラベルに対応する値と出力鍵との排他的論理和である像のトラップドア一方向性置換による逆像を得、当該逆像を用いて各入力鍵を設定する。これにより、「入力ラベルに対応する値」を出力鍵の暗号文とみなし、入力ラベルに対応する真理値に対応する入力鍵を復号鍵とする復号処理によって、当該入力ラベルに対応する真理値に応じた出力値に対応する出力鍵を復元可能な秘匿回路を構成できる。すなわち、この秘匿回路を用いた秘匿計算では、入力ラベルに対応する値とゲートの入力鍵のトラップドア一方向性置換による像である値との排他的論理和をゲートの出力鍵とする。この「入力ラベルに対応する値」は、入力ラベルから得ることができるため、これを格納しておく必要はない。 In the generation of the concealment circuit according to the first embodiment described later, an inverse image is obtained by unidirectional replacement of the image, which is an exclusive OR of the value corresponding to the input label and the output key, and the inverse image is used. Set each input key. As a result, the “value corresponding to the input label” is regarded as the ciphertext of the output key, and the decryption process using the input key corresponding to the truth value corresponding to the input label as the decryption key results in the truth value corresponding to the input label. A secret circuit capable of restoring the output key corresponding to the corresponding output value can be configured. That is, in the secret calculation using this secret circuit, the exclusive OR of the value corresponding to the input label and the value that is an image obtained by trapdoor unidirectional replacement of the input key of the gate is used as the output key of the gate. Since this “value corresponding to the input label” can be obtained from the input label, it is not necessary to store it.
後述の第2実施形態の秘匿回路の生成では、(1)各ゲートに応じた複数の点、ならびに、所定値と出力値の何れかである第1値に応じた出力鍵とからなる点によって定まる第1整式を得、(2)当該複数の点、ならびに、所定値と出力値の何れかである第2値に応じた出力鍵とからなる点によって定まる第2整式を得る。ただし、第1値と第2値とは異なる。さらにこの秘匿回路の生成では、(3)ゲートに入力された際の出力値が第1値となる元に応じた入力ラベルに対応する値を第1整式に代入して得られる値である像のトラップドア一方向性置換による逆像、および、ゲートに入力された際の出力値が第2値となる元に応じた入力ラベルに対応する値を第2整式に代入して得られる値である像のトラップドア一方向性置換による逆像を得、当該逆像を用いて各入力鍵を設定する。これにより、入力ラベルに対応する真理値に対応する入力鍵を復号鍵とする復号処理によって、当該入力ラベルに対応する真理値に応じた出力値に対応する出力鍵を復元可能な秘匿回路を構成できる。すなわち、この秘匿回路を用いた秘匿計算では、多項式補完によって、ゲートに応じた複数の点、ならびに、入力ラベルに対応する値およびゲートの入力鍵のトラップドア一方向性置換による像である値からなる点によって定まる整式を得、当該整式に所定値を代入してゲートの出力鍵を得ることができる。「ゲートに応じた複数の点」はゲートに対して定めることができ、「入力ラベルに対応する値」および「入力鍵」はそれぞれ入力ラベルおよび入力鍵から定めることができる。そのため、これらを格納しておく必要はない。 In the generation of the concealment circuit of the second embodiment described later, (1) by a point comprising a plurality of points corresponding to each gate and an output key corresponding to the first value which is one of a predetermined value and an output value. A first formula that is determined is obtained, and (2) a second formula that is determined by the points including the plurality of points and an output key corresponding to the second value that is one of the predetermined value and the output value is obtained. However, the first value and the second value are different. Further, in the generation of the concealment circuit, (3) an image which is a value obtained by substituting a value corresponding to an input label corresponding to an element whose output value when inputted to the gate becomes the first value into the first integer The value obtained by substituting the value corresponding to the input label corresponding to the element in which the output value when input to the gate becomes the second value into the second integer, by the trapdoor unidirectional replacement of A reverse image is obtained by unidirectional replacement of the trap door of an image, and each input key is set using the reverse image. As a result, a secret circuit that can restore the output key corresponding to the output value corresponding to the truth value corresponding to the input label by the decryption process using the input key corresponding to the truth value corresponding to the input label as the decryption key is configured. it can. That is, in the concealment calculation using the concealment circuit, by polynomial interpolation, a plurality of points corresponding to the gate, and a value corresponding to the input label and a value that is an image obtained by trap door unidirectional replacement of the input key of the gate are obtained. It is possible to obtain an integer formula determined by a certain point and substitute a predetermined value into the formula to obtain an output key of the gate. “A plurality of points according to the gate” can be determined for the gate, and “value corresponding to the input label” and “input key” can be determined from the input label and the input key, respectively. Therefore, it is not necessary to store them.
秘匿回路の生成の際の秘匿化出力ラベルの設定は、上述のように設定された入力鍵に基づいて行われる。例えば、入力鍵に対応する値で出力ラベルを秘匿化して秘匿化出力ラベルを得てもよいし、入力鍵に対応するビット列の「ゲートの定義域の元」に応じたビット位置を表す値を秘匿化出力ラベルとしてもよい。秘匿化出力ラベルは格納しておく必要はあるが、ラベルと出力鍵の両方の暗号文を格納していた従来技術よりも秘匿回路のサイズを小さくできる。 The setting of the concealment output label when generating the concealment circuit is performed based on the input key set as described above. For example, the output label may be concealed with a value corresponding to the input key to obtain a concealed output label, or a value representing a bit position corresponding to the “source of the domain of the gate” of the bit string corresponding to the input key It may be a concealment output label. Although it is necessary to store the concealment output label, the size of the concealment circuit can be made smaller than that of the prior art in which the ciphertext of both the label and the output key is stored.
[第1実施形態]
次に図面を用いて第1実施形態を説明する。
<構成>
図1に例示するように、本形態の秘匿計算システム1は、秘匿回路を生成する秘匿計算装置11、および当該秘匿回路を用いた秘匿計算を行う秘匿計算装置12を有する。
[First Embodiment]
Next, a first embodiment will be described with reference to the drawings.
<Configuration>
As illustrated in FIG. 1, the
<秘匿計算装置11>
図2に例示するように、本形態の秘匿計算装置11は、通信部1111、入力部1112、記憶部112、制御部113、初期設定部114、入力ワイヤ設定部115、置換ビット設定部1161、入力ラベル設定部1162、写像部1171、逆像部1172、入力鍵生成部1173、入力鍵・ラベルテーブル設定部1174、ラベル秘匿化部1181、出力ラベルテーブル設定部1182、符号化部1191、分離部1192、および紛失通信処理部1193を有する。
<
As illustrated in FIG. 2, the
<秘匿計算装置12>
図3に例示するように、本形態の秘匿計算装置12は、通信部1211、入力部1212、記憶部122、制御部123、紛失通信処理部124、分離部125、設定部126、入力ワイヤ設定部1271、写像部1272、出力鍵生成部1273、分離部1274、およびラベル復元部1275、および出力値生成部128を有する。
<
As illustrated in FIG. 3, the
各秘匿計算装置は、例えば、通信装置、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される装置である。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。秘匿計算装置11,12は、それぞれ制御部113,123の制御のもとで各処理を行う。また、各部で得られたデータは、逐一、メモリ(図示せず)に格納され、必要に応じて読み出されて使用される。
Each of the secret computing devices includes, for example, a communication device, a processor (hardware processor) such as a CPU (central processing unit), and a memory such as a random-access memory (RAM) and a read-only memory (ROM). It is an apparatus configured by a dedicated computer executing a predetermined program. The computer may include a single processor and memory, or may include a plurality of processors and memory. This program may be installed in a computer, or may be recorded in a ROM or the like in advance. In addition, some or all of the processing units are configured using an electronic circuit that realizes a processing function without using a program, instead of an electronic circuit (circuitry) that realizes a functional configuration by reading a program like a CPU. May be. In addition, an electronic circuit constituting one device may include a plurality of CPUs. The
<前処理>
正整数であるセキュリティパラメータkに基づき、以下の前処理が行われる。
任意長ビットの値をkビットの値に写す一方向性写像H:{0,1}*→{0,1}k、および任意長ビットの値を1ビットの値に写す一方向性写像H’:{0,1}*→{0,1}が設定される。一方向性写像の例はハッシュ関数である。例えば、暗号学的なハッシュ関数を一方向性写像とすることができる。Hは鍵あり一方向性写像であり、H’は鍵なし一方向性写像である。共通鍵暗号関数または公開鍵暗号関数を一方向性写像として用いてもよい。一方向性写像は、関数であってもよいし、アルゴリズムであってもよい。
<Pretreatment>
Based on the security parameter k, which is a positive integer, the following preprocessing is performed.
A one-way map H that maps an arbitrary-length bit value to a k-bit value: {0,1} * → {0,1} k , and a one-way map H that maps an arbitrary-length bit value to a one-bit value ': {0, 1} * → {0, 1} is set. An example of a one-way map is a hash function. For example, a cryptographic hash function can be a one-way map. H is a one-way map with a key, and H ′ is a one-way map without a key. A common key encryption function or a public key encryption function may be used as the one-way map. The one-way map may be a function or an algorithm.
秘匿計算装置11に入力された秘匿対象の回路fが記憶部112に格納される。回路fはnビットの入力値Z∈{0,1}nに対して1ビットの出力値Y∈{0,1}を出力する写像(関数)である(f:{0,1}n→{0,1})。ただし、nは2以上の偶数であり、n=4であってもよいし、n≧6であってもよい。uは1以上の整数であり、u≧3であってもよい。図8Bはn=10,u=9の例である。
The circuit f to be concealed input to the
図8Aおよび図8Bに例示するように、回路fはu個のゲートG(n+1),…,G(n+u)から構成される。ゲートG(i)(ただし、i∈{n+1,…,n+u})は2入力1出力の論理ゲートである(G(i):{0,1}×{0,1}→{0,1})。ゲートG(n+1),…,G(n+u)の集合をGset:={G(n+1),…,G(n+u)}と表記する。入力側のn/2個のゲートG(n+1),…,G(3n/2)の集合をGinput:={G(n+1),…,G(3n/2)}と表記する。ただし、「α:=β」はαをβとすることを意味する。ゲートの例は、ANDゲート、ORゲート、XORゲートなどである。 As illustrated in FIGS. 8A and 8B, the circuit f includes u gates G (n + 1),..., G (n + u). The gate G (i) (where i∈ {n + 1,..., N + u}) is a 2-input 1-output logic gate (G (i): {0, 1} × {0, 1} → {0, 1) }). A set of gates G (n + 1),..., G (n + u) is denoted as G set : = {G (n + 1),..., G (n + u)}. A set of n / 2 gates G (n + 1),..., G (3n / 2) on the input side is denoted as G input : = {G (n + 1),..., G (3n / 2)}. However, “α: = β” means that α is β. Examples of gates are AND gates, OR gates, XOR gates, and the like.
ゲートG(i)への入力変数を入力ワイヤと呼び、出力変数を出力ワイヤと呼ぶ。各ゲートG(i)は2個の入力ワイヤと1個の出力ワイヤを持つ。入力ワイヤおよび出力ワイヤを総称してワイヤと呼ぶ。ゲートG(i)の入力ワイヤをW(A(i))およびW(B(i))と表記し、出力ワイヤをW(i)と表記する。ゲートG(n+1),…,G(n+u)のワイヤの集合をWset:={W(1),…,W(n+u)}と表記する。ただし、A(i)<B(i)<iであり、A(n+1)=1,B(n+1)=2,…,A(3n/2)=n−1,B(3n/2)=n,…,A(n+u)=n+u−2,B(n+u)=n+u−1である。集合Ginputに属するn/2個のゲートG(n+1),…,G(3n/2)の入力ワイヤW(A(n+1))=W(1),W(B(n+1))=W(2),…,W(A(3n/2))=W(n−1),W(B(3n/2))=W(n)の集合をWinput:={W(1),…,W(n)}と表記する。ゲートG(n+u)の出力ワイヤW(n+u)をWoutput:=W(n+u)と表記する。Aset:={A(n+1),…,A(n+u)}と表記し、Bset:={B(n+1),…,B(n+u)}と表記する。また、回路fを(n,u,Aset,Bset,Gset)と表記する。 An input variable to the gate G (i) is called an input wire, and an output variable is called an output wire. Each gate G (i) has two input wires and one output wire. Input wires and output wires are collectively referred to as wires. The input wires of the gate G (i) are denoted as W (A (i)) and W (B (i)), and the output wires are denoted as W (i). A set of wires of the gates G (n + 1),..., G (n + u) is expressed as W set : = {W (1),..., W (n + u)}. However, A (i) <B (i) <i, A (n + 1) = 1, B (n + 1) = 2,..., A (3n / 2) = n−1, B (3n / 2) = n,..., A (n + u) = n + u-2, B (n + u) = n + u-1. The input wires W (A (n + 1)) = W (1), W (B (n + 1)) = W (of n / 2 gates G (n + 1),..., G (3n / 2) belonging to the set G input 2),..., W (A (3n / 2)) = W (n−1), W (B (3n / 2)) = W (n) is set to W input : = {W (1),. , W (n)}. The output wire W (n + u) of the gate G (n + u) is expressed as W output : = W (n + u). A set : = {A (n + 1),..., A (n + u)}, and B set : = {B (n + 1),..., B (n + u)}. The circuit f is expressed as (n, u, A set , B set , G set ).
集合Ginputに属するゲートの入力ワイヤW(1),…,W(n)は回路fの入力ワイヤであり、nビットの入力値Zに対応する。ゲートG(ν)(ただし、ν∈{n+1,…,n+u−1})の出力ワイヤW(ν)は、それぞれ、何れかのゲートG(ω)∈Gset\{G(n+1),…,G(n+u−1)}の入力ワイヤW(A(ω))またはW(B(ω))である。ただし、「α\β」は集合αにおける集合βの補集合を表す。ν<ωであり、互いに異なる出力ワイヤが同一の入力ワイヤとなることはなく、単一の出力ワイヤが複数の入力ワイヤとなることもない。ゲートG(n+u)の出力ワイヤW(n+u)は回路fの出力ワイヤであり、出力値Yに対応する。 Input wires W (1),..., W (n) of the gates belonging to the set G input are input wires of the circuit f and correspond to the n-bit input value Z. The gate G (ν) (however, ν∈ {n + 1, ... , n + u-1}) output wires W ([nu) of each one of the gate G (ω) ∈G set \ { G (n + 1), ... , G (n + u−1)} input wires W (A (ω)) or W (B (ω)). However, “α \ β” represents a complement of the set β in the set α. Since ν <ω, different output wires do not become the same input wire, and a single output wire does not become a plurality of input wires. An output wire W (n + u) of the gate G (n + u) is an output wire of the circuit f and corresponds to the output value Y.
ゲートG(μ)(ただし、μ∈{n+1,…,n+u})の種類および入力ワイヤW(A(μ)),W(B(μ))の入力値I(A(μ)),I(B(μ))∈{0,1}に応じ、出力ワイヤW(μ)の出力値Gμ(I(A(μ)),I(B(μ)))∈{0,1}が決まる。すなわち、I(A(μ))およびI(B(μ))に対するゲートG(μ)での論理演算結果がGμ(I(A(μ)),I(B(μ)))となる。例えば、ゲートG(μ)がANDゲートである場合、I(A(μ)),I(B(μ)),Gμ(I(A(μ)),I(B(μ)))の関係は以下のようになる。
<秘匿回路の生成処理>
図4および図5を用い、本形態の秘匿回路の生成処理を説明する。
まず、秘匿計算装置11(図2)の初期設定部114が、位数qの有限体Fqの元をFqの元に写すトラップドア一方向性置換Eι:Fq→Fqおよびそのトラップドアtιを選択する。ただし、qは正整数であり、例えば素数である。トラップドアtιを用いない限り、トラップドア一方向性置換の逆像を得ることは困難である。一方、トラップドアtιを用いることにより、トラップドア一方向性置換の逆像を多項式時間で求めることができる。トラップドア一方向性置換は、関数であってもよいし、アルゴリズムであってもよい。また初期設定部114は、Hの鍵Rをランダム(例えば、一様ランダム)に選択して出力する(ステップS100)。
<Secret circuit generation processing>
The generation process of the secret circuit of this embodiment will be described with reference to FIGS. 4 and 5.
First, the
さらに、初期設定部114は、記憶部112に格納された回路fを参照し、有限体Fqの2個の元をランダム(例えば、一様ランダム)に選択し、それらを出力鍵K0 n+u,K1 n+u∈Fqとして設定して出力する。ただし、出力鍵K0 n+uはGn+u(I(A(n+u)),I(B(n+u)))=0に対応し、出力鍵K1 n+uはGn+u(I(A(n+u)),I(B(n+u)))=1に対応する(ステップS101)。
Further, the
次に、初期設定部114は、置換ビットλn+u、出力ラベルL0 n+u:=λn+u,L1 n+u:=λn+u(+)1を設定する。ただし、α(+)βはαとβとの排他的論理和
を表す。出力ラベルL0 n+uはGn+u(I(A(n+u)),I(B(n+u)))=0に対応し、出力ラベルL1 n+uはGn+u(I(A(n+u)),I(B(n+u)))=1に対応する。λn+u=0であってもよいし、λn+u=1であってもよい(ステップS102)。さらに制御部113がi:=n+uに設定する(ステップS103)。
Next, the
Represents. The output label L 0 n + u corresponds to G n + u (I (A (n + u)), I (B (n + u))) = 0, and the output label L 1 n + u is G n + u (I (A (n + u)), I ( B (n + u))) = 1. λ n + u = 0 or λ n + u = 1 may be set (step S102). Further, the
入力ワイヤ設定部115は、A:=A(i),B:=B(i)に設定する(ステップS104)。置換ビット設定部1161は、入力ワイヤW(A),W(B)に対し、それぞれ置換ビットλA,λB∈{0,1}をランダムに選択する(ステップS105)。入力ラベル設定部1162は、すべての(a,b)∈{0,1}2について、以下のように入力ラベルLa A,Lb B∈{0,1}を設定する。ただし、a∈{0,1}は入力ワイヤW(A)の入力値であり、b∈{0,1}は入力ワイヤW(B)の入力値である。
La A:=λA(+)a
Lb B:=λB(+)b
すなわち、入力ラベル設定部1162は、ゲートG(i)の定義域の元(a,b)のそれぞれに応じた入力ラベル(La A,Lb B)を設定して出力する。なお、図8Aおよび図8Bに例示するように、入力ラベルLa Aは、ゲートG(i)の入力ワイヤW(A)となる別のゲートG(i’)(ただし、i≠i’,i’∈{n+1,…,n+u−1})の出力ワイヤW(i’)の出力ラベル
でもある。同様に、入力ラベルLb Bは、ゲートG(i)の入力ワイヤW(B)となる別のゲートG(i”)(ただし、i≠i”,i”∈{n+1,…,n+u−1})の出力ワイヤW(i”)の出力ラベル
でもある(ステップS106)。
The input
L a A : = λ A (+) a
L b B : = λ B (+) b
That is, the input
But there is. Similarly, the input label L b B indicates that another gate G (i ″) (where i ≠ i ″, i ″ ε {n + 1,..., N + u−) that becomes the input wire W (B) of the gate G (i). 1}) output label of output wire W (i ″)
(Step S106).
写像部1171が、鍵Rを用い、x=0,1,2,3およびiについてcx:=H(R,i|x)を生成して出力する。ただし、H(R,i|x)は、Rに応じたHに対し、i|xを入力して得られる像である。α|βはαとβとの連結を表す。xは(La A,Lb B)の4通りの組み合わせに対応する(ステップS107)。
The
逆像部1172が、記憶部112に格納された回路fを参照し、Eι,tι,La A,Lb B,K0 i,K1 iを用い、すべての(a,b)∈{0,1}2について、逆像
を得て出力する。すなわち、逆像部1172は、ゲートG(i)の定義域の元(a,b)のそれぞれに応じた入力ラベル(La A,Lb B)に対応する値
と、元(a,b)がゲートG(i)に入力された際の出力値Gi(a,b)のそれぞれに応じたゲートG(i)の出力鍵
と、に応じた像
のトラップドア一方向性置換Eιによる逆像を得て出力する。本形態の逆像部1172は、入力ラベル(La A,Lb B)に対応する値と当該「出力鍵」との排他的論理和である像のトラップドア一方向性置換による逆像を得て出力する(ステップS108)。
The
And output. That is, the
And an output key of the gate G (i) corresponding to each of the output values G i (a, b) when the element (a, b) is input to the gate G (i)
And statues according to
A reverse image of the trap door unidirectional replacement E ι is obtained and output. The
入力鍵生成部1173は、ステップS108で得られた逆像P0,P1,P2,P3を用い、以下の連立方程式を解いて、a,b∈{0,1}のそれぞれに応じた入力鍵K0 A,K1 A,K0 B,K1 B∈Fqを得て出力する。
この連立方程式はガウスの消去法等の周知の方法を用いて解くことができる。なお、図8Aおよび図8Bに例示するように、入力鍵K0 A,K1 Aは、それぞれ、ゲートG(i)の入力ワイヤW(A)となる別のゲートG(i’)(ただし、i≠i’,i’∈{n+1,…,n+u−1})の出力ワイヤW(i’)の出力鍵K0 i’,K1 i’でもある。同様に、入力鍵K0 B,K1 Bは、それぞれ、ゲートG(i)の入力ワイヤW(B)となる別のゲートG(i”)(ただし、i≠i”,i”∈{n+1,…,n+u−1})の出力ワイヤW(i”)の出力鍵K0 i”,K1 i”でもある(ステップS109)。
The input
This simultaneous equation can be solved using a known method such as Gaussian elimination. As illustrated in FIGS. 8A and 8B, each of the input keys K 0 A and K 1 A has another gate G (i ′) (however, the input wire W (A) of the gate G (i)) , I ≠ i ′, i′∈ {n + 1,..., N + u−1}) are also output keys K 0 i ′ and K 1 i ′ of the output wire W (i ′). Similarly, each of the input keys K 0 B and K 1 B has another gate G (i ″) (where i ≠ i ″, i ″ ∈ {) serving as the input wire W (B) of the gate G (i). n + 1,..., n + u−1}) are also output keys K 0 i ″ and K 1 i ″ of the output wire W (i ″) (step S109).
入力鍵・ラベルテーブル設定部1174は、入力鍵K0 A,K1 A,K0 B,K1 Bおよび入力ラベルL0 A,L1 A,L0 B,L1 Bを入力とし、Aに対してテーブルe[A]:=(K0 A|L0 A,K1 A|L1 A)を設定し、Bに対してテーブルe[B]:=(K0 B|L0 B,K1 B|L1 B)を設定して出力する(ステップS110)。
The input key / label
ラベル秘匿化部1181は、記憶部112に格納された回路fを参照し、入力鍵K0 A,K1 A,K0 B,K1 Bおよび出力ラベルLi Gi(a,b)を用い、すべての(a,b)∈{0,1}2について、以下のように秘匿化出力ラベル
を設定して出力する。すなわち、ラベル秘匿化部1181は、入力鍵Ka A,Kb Bに対応する値H’(Ka A|Kb B)で出力ラベルLi Gi(a,b)を秘匿化してこれらの秘匿化出力ラベルb0,b1,b2,b3を得る。出力ラベルLi Gi(a,b)は、元(a,b)がゲートG(i)に入力された際の出力値Gi(a,b)に対応する。図8Aおよび図8Bに例示するように、i≠n+uの場合、ゲートG(i)の出力ラベルLi Gi(a,b)は、このゲートG(i)の出力ワイヤW(i)を入力ワイヤW(A(ω))とする他のゲートG(ω)の入力ラベルLA(ω) a’であるか(ただし、a’∈{0,1})、出力ワイヤW(i)を入力ワイヤW(B(ω))とする他のゲートG(ω)の入力ラベルLB(ω) b’である(ただし、b’∈{0,1})。なお、上付き添え字の「Gi(a,b)」は「Gi(a,b)」を意味する(ステップS111)。
The
Set and output. That is, the
出力ラベルテーブル設定部1182は、秘匿化出力ラベルb0,b1,b2,b3を用い、秘匿化出力ラベルL[i]:=(b0,b1,b2,b3)を得て出力する(ステップS112)。
The output label
制御部113は、i=n+1であるかを判定する(ステップS113)。i=n+1でなければ、制御部113は、i:=i−1とし(i−1を新たなiとし)、処理をステップS104に戻す(ステップS114)。一方、i=n+1であれば、制御部113はステップS115の処理を実行させる。
The
ステップS115では、入力鍵・ラベルテーブル設定部1174が、L[n+1],...,L[n+u]をL:={L[n+1],...,L[n+u]}として出力する(ステップS115)。次に、入力鍵・ラベルテーブル設定部1174が、e[A(3n/2+1)],e[B(3n/2+1)],...,e[A(n+u)],e[B(n+u)]をテーブルe:={e[A(3n/2+1)],e[B(3n/2+1)],...,e[A(n+u)],e[B(n+u)]}として出力する(ステップS116)。通信部1111は、R,L,ι,e,λn+uを入力として、秘匿回路F:=(R,L,ι)、テーブルe、ラベル復号鍵d:=λn+uとして出力する。ただし、ιはEιを特定するための情報である。秘匿回路F:=(R,L,ι)、テーブルe、ラベル復号鍵d:=λn+uは秘匿計算装置12に送信され、秘匿計算装置12(図3)の通信部1211で受信され、記憶部122に格納される(ステップS117)。
In step S115, the input key / label
秘匿計算装置11(図2)の入力鍵・ラベルテーブル設定部1174は、
e[1]:=e[A(n+1)]
e[2]:=e[B(n+1)]
・・・
e[n−1]:=e[A(3n/2)]
e[n]:=e[B(3n/2)]
を記憶部112に格納する(ステップS118)。
The input key / label
e [1]: = e [A (n + 1)]
e [2]: = e [B (n + 1)]
...
e [n-1]: = e [A (3n / 2)]
e [n]: = e [B (3n / 2)]
Is stored in the storage unit 112 (step S118).
<回路fの入力値の符号化処理>
図6を用い、本形態の入力値の符号化処理を説明する。
以下では、回路fの入力値Z∈{0,1}nの各ビットをxj∈{0,1}(ただし、j∈{1,...,n})と表記する。秘匿計算装置11(図2)の入力部1112には、集合{x1,...,xn}の真部分集合sub1:={xu(1),...,xu(P)}⊂{x1,...,xn}が入力される。ただし、Pは1以上の整数であり、{u(1),...,u(P)}⊂{1,...,n}である(ステップS121)。制御部113はp:=1とする(ステップS122)。
<Encoding process of input value of circuit f>
The input value encoding process of this embodiment will be described with reference to FIG.
Hereinafter, each bit of the input value Zε {0,1} n of the circuit f is expressed as x j ε {0,1} (where jε {1,..., N}). The
分離部1192は、記憶部112に格納されたe[u(p)]を抽出し、e[u(p)]=(e0,e1):=(K0 u(p)|L0 u(p),K1 u(p)|L1 u(p))に分離(パース)して出力する(ステップS123)。
The
符号化部1191は、xu(1)および(e0,e1)を用い、
を得て出力する(ステップS124)。
The
Is obtained and output (step S124).
制御部113はp=Pであるかを判定する(ステップS126)。p=Pでなければ、制御部113は、p:=p+1とし(p+1を新たなpとし)、処理をステップS123に戻す(ステップS125)。一方p=Pであれば、X[xu(1)],...,X[xu(P)]が通信部1111に送られ、通信部1111はX[xu(1)],...,X[xu(P)]を秘匿計算装置12に送信する(ステップS127)。
The
X[xu(1)],...,X[xu(P)]は秘匿計算装置12(図3)の通信部1211で受信され、記憶部122に格納される。なお、秘匿計算装置12はe[1],...,e[n]を保持していないため、X[xu(p)](ただし、p∈{1,...,P})に対応するxjの値を知ることはできない(ステップS128)。
X [x u (1) ],..., X [x u (P) ] are received by the
秘匿計算装置12(図3)の入力部1212には、集合{x1,...,xn}の真部分集合sub2:={xv(1),...,xv(Q)}⊂{x1,...,xn}が入力される。ただし、Qは1以上の整数であり、{v(1),...,v(Q)}⊂{1,...,n}であり、{1,...,n}={u(1),...,u(P)}∪{v(1),...,v(Q)}である。例えば{u(1),...,u(P)}∩{v(1),...,v(Q)}は空集合であるが、これが空集合でなくてもよい(ステップS129)。制御部113はq:=1とする(ステップS130)。
The
紛失通信処理部124は、xv(q)を用い、通信部1211および秘匿計算装置11(図2)の通信部1111を通じ、紛失通信処理部1193と紛失通信(OT:Oblivious transfer)を行い、xv(q)に対応する
を得る。紛失通信処理部124は紛失通信処理部1193にxv(q)を開示することなく、紛失通信処理部1193は
を紛失通信処理部124に開示することなく、紛失通信処理部124がX[v(q)]を得る。紛失通信には周知の方法を用いればよい(例えば、非特許文献1参照)。この紛失通信の一例を示す。
(1)紛失通信処理部124はxv(q)に対応する公開鍵pk(xv(q))および秘密鍵sk(xv(q))ならびにランダムなPK(xv(q)(+)1)を生成し、紛失通信処理部1193に送信する。
(2)紛失通信処理部1193は、pk(0)を用いてe0を暗号化した暗号文ENC(pk(0),e0)およびpk(1)を用いてe1を暗号化した暗号文ENC(pk(1),e1)を紛失通信処理部124に送る。
(3)紛失通信処理部124は、秘密鍵sk(xv(q))を用いて暗号文ENC(pk(0),e0)およびENC(pk(1),e1)を復号する。これらのうち、ENC(pk(v(q)),ev(q))のみが正しく復号され、X[v(q)]:=ev(q)が得られる(ステップS131)。
The lost
Get. The lost
Is not disclosed to the lost
(1) loss public key pk
(2) The lost
(3) The lost
制御部123はq=Qであるかを判定する(ステップS132)。q=Qでなければ、制御部123はq:=q+1とし(q+1を新たなqとし)、処理をステップS131に戻す(ステップS133)。一方q=Qであれば、制御部123はX[xv(1)],...,X[xv(Q)]を記憶部122に格納する(ステップS134)。
The
<秘匿回路を用いた秘匿計算>
図7を用い、本形態の秘匿回路を用いた秘匿計算処理を説明する。
まず、秘匿計算装置12(図3)の分離部125が、記憶部122から秘匿回路F:=(R,L,ι)を読み込み、それをR,L,ιに分離して出力する(ステップS141)。制御部123はj:=1とする(ステップS142)。
<Concealment calculation using concealment circuit>
The secret calculation process using the secret circuit of this embodiment will be described with reference to FIG.
First, the
設定部126は、記憶部122からX[xj]を読み込み、Kj|Lj:=X[xj]となる入力鍵jおよび入力ラベルLjを得て出力する。入力鍵Kjおよび入力ラベルLjはxjに対応する。すなわち、xj=0の場合にはKj:=K0 jかつLj:=L0 jであり、xj=1の場合にはKj=K1 jかつLj:=L1 jである(ステップS143)。制御部123はj=nであるかを判定する(ステップS144)。j=nでなければ、制御部123はj:=j+1とし(j+1を新たなjとし)、処理をステップS143に戻す(ステップS145)。一方、j=nであれば、制御部123はi:=n+1とする(ステップS146)。
The
ステップS146の処理の後、入力ワイヤ設定部1271は、A:=A(i),B:=B(i)に設定する(ステップS147)。写像部1272は、入力ラベルLA,LBを用い、x:=2LA+LBを得(ステップS148)、R,i,xを用いてcx:=H(R,i|x)を得て出力する(ステップS149)。制御部123はx=0であるかを判定する(ステップS150)。出力鍵生成部1273はιを用いてEiを特定し、x=0であればKA,KBおよびcxからKi:=Ei(KA+2KB)(+)cxを得て出力し(ステップS151)、x≠0であればKA,KBおよびcxからKi:=Ei(KA+KB)(+)cxを得て出力する(ステップS152)。すなわち、出力鍵生成部1273は、ゲートG(i)の入力値に応じた入力ラベルLA,LBに対応する値cxとゲートG(i)の入力鍵KA,KBのトラップドア一方向性置換Eiによる像Ei(KA+2KB)またはEi(KA+KB)とに応じたゲートの出力鍵Kiを得る。言い換えると、本形態の出力鍵生成部1273は、入力ラベルLA,LBに対応する値cxとゲートG(i)の入力鍵KA,KBのトラップドア一方向性置換Eiによる像である値Ei(KA+KB)との排他的論理和をゲートG(i)の出力鍵Kiとする。なお、図8Aおよび図8Bに例示するように、ゲートG(ν)の出力鍵Kν(ただし、ν∈{n+1,…,n+u−1})は、ゲートG(ν)の出力ワイヤW(ν)を入力ワイヤとする他のゲートG(ν’)の入力鍵KA(ν’)またはKB(ν’)である。
After the process of step S146, the input
ラベル復元部1275は、記憶部122からLが含む秘匿化出力ラベルL[i]を読み込み、L[i]:=(b0,b1,b2,b3)に分離する(ステップS153)。ラベル復元部1275は、入力鍵KA,KB、および秘匿化出力ラベルbxを用い、以下のように出力ラベルLiを得て出力する。
Li:=H’(KA|KB)(+)bx (2)
すなわち、ラベル復元部1275は、ゲートG(i)の入力値に応じた秘匿化出力ラベルbxおよびゲートG(i)の入力鍵KA,KBを用い、ゲートG(i)の出力値に応じた出力ラベルLiを得て出力する。なお、図8Aおよび図8Bに例示するように、ゲートG(ν)の出力ラベルLν(ただし、ν∈{n+1,…,n+u−1})は、ゲートG(ν)の出力ワイヤW(ν)を入力ワイヤとする他のゲートG(ν’)の入力ラベルLA(ν’)またはLB(ν’)である(ステップS154)。
The
L i : = H ′ (K A | K B ) (+) b x (2)
That is, the
制御部123はi=n+uであるかを判定する(ステップS155)。i=n+uでなければ、制御部123はi:=i+1とし(i+1を新たなiとし)、処理をステップS147に戻す(ステップS156)。
The
一方、i=n+uであれば、出力値生成部128は、出力ラベルLn+uおよび記憶部122から読み込んだラベル復号鍵d:=λn+uを用い、Y:=Ln+u(+)λn+uを得て出力する(ステップS157)。
On the other hand, if i = n + u, the output
<第1実施形態の特徴>
以上のように、本形態では各ゲートの出力鍵に対応する暗号文を保存して必要がないため、秘匿回路のサイズを削減でき、通信量も従来方式のO(k・u)からO(u)にまで減らすことができる。
<Features of First Embodiment>
As described above, in this embodiment, since it is not necessary to store the ciphertext corresponding to the output key of each gate, the size of the concealment circuit can be reduced, and the communication amount is changed from O (k · u) to O (k u).
[第2実施形態]
次に第2実施形態を説明する。以降、これまでに説明した事項との相違点を中心に説明し、既に説明した事項についてはそれと同じ参照番号を流用して説明を簡略化する。
<構成>
図1に例示するように、本形態の秘匿計算システム2は、秘匿回路を生成する秘匿計算装置21、および当該秘匿回路を用いた秘匿計算を行う秘匿計算装置22を有する。
[Second Embodiment]
Next, a second embodiment will be described. In the following, differences from the items described so far will be mainly described, and the same reference numerals will be used for the items already described to simplify the description.
<Configuration>
As illustrated in FIG. 1, the
<秘匿計算装置21>
図9に例示するように、本形態の秘匿計算装置21は、通信部1111、入力部1112、記憶部112、制御部113、初期設定部114、入力ワイヤ設定部115、置換ビット設定部1161、入力ラベル設定部1162、補完部2171a,2171b、逆像部2172、入力鍵生成部1173、入力鍵・ラベルテーブル設定部1174、ラベル秘匿化部1181、出力ラベルテーブル設定部1182、符号化部1191、分離部1192、および紛失通信処理部1193を有する。
<
As illustrated in FIG. 9, the
<秘匿計算装置22>
図10に例示するように、本形態の秘匿計算装置22は、通信部1211、入力部1212、記憶部122、制御部123、紛失通信処理部124、分離部125、設定部126、入力ワイヤ設定部1271、写像部2272、出力鍵生成部2273、補完部2274、およびラベル復元部1275、および出力値生成部128を有する。
<
As illustrated in FIG. 10, the
<前処理>
第1実施形態と同じである。
<Pretreatment>
The same as in the first embodiment.
<秘匿回路の生成処理>
図11を用い、本形態の秘匿回路の生成処理を説明する。
まず、秘匿計算装置21(図9)が第1実施形態で説明したステップS100からS106の処理を実行する。次に、補完部2171aが、鍵Rおよび出力鍵K0 iを用い、(4,H(R,i|4)),(5,H(R,i|5)),(−1,K0 i)を多項式補完して、これら3点を通る2次多項式Pを得て出力する(図13)。すなわち、補完部2171aは、ゲートG(i)に応じた複数の点(4,H(R,i|4)),(5,H(R,i|5))、ならびに、所定値(−1)と、出力値(0,1)の何れかである第1値(0)に応じた出力鍵K0 iとからなる点(−1,K0 i)によって定まる第1整式(P)を得て出力する。PはゲートG(i)の出力ワイヤの値が0である場合に対応する(ステップS2071)。
<Secret circuit generation processing>
The generation process of the secret circuit of this embodiment will be described with reference to FIG.
First, the secret calculation device 21 (FIG. 9) executes the processing of steps S100 to S106 described in the first embodiment. Next, the
補完部2171bが、鍵Rおよび出力鍵K1 iを用い、(4,H(R,i|4)),(5,H(R,i|5)),(−1,K1 i)を多項式補完して、これら3点を通る2次多項式Qを得て出力する(図13)。すなわち、補完部2171bは、ゲートG(i)に応じた複数の点(4,H(R,i|4)),(5,H(R,i|5))、ならびに、所定値(−1)と、出力値(0,1)の何れかである第2値(1)に応じた出力鍵K1 iとからなる点(−1,K1 i)によって定まる第2整式(Q)を得て出力する。QはゲートG(i)の出力ワイヤの値が1である場合に対応する(ステップS2072)。
The
逆像部2172が、記憶部112に格納された回路fを参照し、Eι,tι,La A,Lb B,P,Qを用い、すべての(a,b)∈{0,1}2について、
を得て出力する。すなわち、逆像部2172は、ゲートG(i)の定義域の元(a,b)のそれぞれに応じた入力ラベルLa A,Lb Bに対応する値2La A+Lb Bと、元(a,b)がゲートG(i)に入力された際の出力値Gi(a,b)のそれぞれに応じた出力鍵K0 iまたはK1 iと(上述のようにPは出力鍵K0 iに応じて定まり、Qは出力鍵K1 iに応じて定まる)、に応じた像
のトラップドア一方向性置換Eιによる逆像を得て出力する。言い換えると、逆像部2172は、ゲートG(i)に入力された際の出力値Gi(a,b)が第1値(0)となる元(a,b)に応じた入力ラベルLa A,Lb Bに対応する値2La A+Lb Bを第1整式(P)に代入して得られる値である像
のトラップドア一方向性置換Eιによる逆像、および、ゲートG(i)に入力された際の出力値Gi(a,b)が第2値(1)となる元(a,b)に応じた入力ラベルLa A,Lb Bに対応する値2La A+Lb Bを第2整式(Q)に代入して得られる値である像
のトラップドア一方向性置換による逆像を得る。図13に、ゲートG(i)がANDゲートであり、λA=λB=0である場合の像P(0),P(1),P(2),Q(3)を例示する(ステップS208)。
The
And output. That is, the
A reverse image of the trap door unidirectional replacement E ι is obtained and output. In other words, the
Of the trap door unidirectional replacement E ι and the output value G i (a, b) when input to the gate G (i) becomes the second value (1) (a, b) An image which is a value obtained by substituting the
A reverse image is obtained by unidirectional replacement of the trapdoor. FIG. 13 illustrates images P (0), P (1), P (2), and Q (3) when the gate G (i) is an AND gate and λ A = λ B = 0 ( Step S208).
以降の処理は、秘匿計算装置11,12が秘匿計算装置21,22に置換される以外、第1実施形態で説明したステップS111〜S118と同じである。
The subsequent processing is the same as steps S111 to S118 described in the first embodiment except that the
<回路fの入力値の符号化処理>
第1実施形態と同じである。
<Encoding process of input value of circuit f>
The same as in the first embodiment.
<秘匿回路を用いた秘匿計算>
図12を用い、本形態の秘匿回路を用いた秘匿計算処理を説明する。
まず、秘匿計算装置22(図10)が第1実施形態で説明したステップS141〜S148,S150の処理を実行する。ただし、写像部1272に代えて写像部2272がステップS148の処理を実行する。その後、補完部2274がιを用いてEiを特定し、x=0であれば、xおよびKA,KBからV:=(x,Ei(KA+2KB))を得て出力し(ステップS251)、x≠0であれば、xおよびKA,KBからV:=(x,Ei(KA+KB))を得て出力する(ステップS252)。次に、補完部2274は、R,i,Vを用い、(4,H(R,i|4)),(5,H(R,i|5)),Vを多項式補完して2次多項式Uを生成する。すなわち、補完部2274は、ゲートG(i)に応じた複数の点(4,H(R,i|4)),(5,H(R,i|5))、ならびに、入力ラベルに対応する値x=2LA+LBおよびゲートG(i)の入力鍵のトラップドア一方向性置換による像である値Ei(KA+2KB)またはEi(KA+2KB)からなる点Vによって定まる整式Uを得る。例えば、図13の例ではx=2LA+LB=3のときにU=Qとなり、x=0,1,2のときにU=Pとなる(ステップS253)。出力鍵生成部2273は、出力鍵Ki:=U(−1)を得て出力する。すなわち、出力鍵生成部2273は、整式Uに所定値(−1)を代入してゲートG(i)の出力鍵Kiを得て出力する。言い換えると、出力鍵生成部2273は、ゲートG(i)の入力値(a,b)に応じた入力ラベルLA,LBに対応する値x=2LA+LBとゲートG(i)の入力鍵KA,KBのトラップドア一方向性置換Eiによる像Ei(KA+2KB)とに応じたゲートG(i)の出力鍵Kiを得て出力する(ステップS254)。
<Concealment calculation using concealment circuit>
The secret calculation process using the secret circuit of this embodiment will be described with reference to FIG.
First, the secret calculation device 22 (FIG. 10) executes the processes of steps S141 to S148 and S150 described in the first embodiment. However, instead of the
それ以降の処理は、第1実施形態で説明したステップS154〜S157と同じである。 The subsequent processing is the same as steps S154 to S157 described in the first embodiment.
<第2実施形態の特徴>
以上のように、本形態では各ゲートの出力鍵に対応する暗号文を保存して必要がないため、秘匿回路のサイズを削減でき、通信量も減らすことができる。
<Features of Second Embodiment>
As described above, in this embodiment, since it is not necessary to store the ciphertext corresponding to the output key of each gate, the size of the secret circuit can be reduced and the communication amount can also be reduced.
[第3実施形態]
第3実施形態は第1実施形態の変形例である。第1実施形態では、秘匿化対象の回路fが特定された後に当該回路fの各ゲートが秘匿化された。本形態では、秘匿化対象の回路fが特定される前に一般的なANDゲート、ORゲート、XORなどのゲートを秘匿化しておき、秘匿化されたゲートを用いて秘匿化対象の回路fを秘匿化する。これにより、秘匿化対象の回路fを秘匿化する際の演算量を削減できる。
[Third Embodiment]
The third embodiment is a modification of the first embodiment. In the first embodiment, after the circuit f to be concealed is specified, each gate of the circuit f is concealed. In this embodiment, a general AND gate, an OR gate, an XOR, and the like are concealed before the concealment target circuit f is specified, and the concealment target circuit f is changed using the concealed gate. Conceal. Thereby, it is possible to reduce the amount of calculation when concealing the circuit f to be concealed.
<構成>
図1に例示するように、本形態の秘匿計算システム3は、秘匿回路を生成する秘匿計算装置31、および当該秘匿回路を用いた秘匿計算を行う秘匿計算装置32を有する。
<Configuration>
As illustrated in FIG. 1, the
<秘匿計算装置31>
図2に例示するように、本形態の秘匿計算装置31は、通信部1111、入力部1112、記憶部112、制御部113、初期設定部314、入力ワイヤ設定部315、置換ビット設定部1161、入力ラベル設定部1162、写像部3171、逆像部3172、入力鍵生成部3173、入力鍵・ラベルテーブル設定部3174、ラベル秘匿化部3181、出力ラベルテーブル設定部3182、符号化部1191、分離部1192、紛失通信処理部1193、および秘匿回路構成部3183を有する。
<
As illustrated in FIG. 2, the
<秘匿計算装置32>
図3に例示するように、本形態の秘匿計算装置32は、通信部1211、入力部1212、記憶部122、制御部123、紛失通信処理部124、分離部125、設定部126、入力ワイヤ設定部1271、写像部3272、出力鍵生成部1273、復元部3273、分離部1274、およびラベル復元部1275、および出力値生成部128を有する。
<
As illustrated in FIG. 3, the
<前処理>
第1実施形態の前処理との相違点は、秘匿対象の回路fを記憶部112に格納しない点、および、一般的な複数のゲートを秘匿化しておく点である。その他は、第1実施形態と同じである。
<Pretreatment>
The differences from the preprocessing of the first embodiment are that the circuit f to be concealed is not stored in the
図14および図15を用い、本形態で行う一般的なゲートの秘匿化処理を説明する。本形態ではSをu以上の正の整数とし、S個の一般的なゲートをG’(1),…,G’(S)と表記する。ゲートG’(s)(ただし、s∈{1,…,S})は2入力1出力の論理ゲートである(G’(s):{0,1}×{0,1}→{0,1})。例えば、G’(1),…,G’(S1)をANDゲートとし、G’(S1+1),…,G’(S2)をORゲートとし、G’(S2+1),…,G’(S)をXORゲートとする。ゲートG’(s)の入力ワイヤをW(A’(s))およびW(B’(s))と表記し、出力ワイヤをW(s)と表記する。ゲートG’(s)(ただし、s∈{1,…,S})の種類および入力ワイヤW(A’(s)),W(B’(s))の入力値I(A’(s)),I(B’(s))∈{0,1}に応じ、出力ワイヤW(s)の出力値G’s(I(A’(s)),I(B’(s)))∈{0,1}が決まる。すなわち、I(A’(s))およびI(B’(s))に対するゲートG’(s)での論理演算結果がG’s(I(A’(s)),I(B’(s)))となる。 A general gate concealment process performed in this embodiment will be described with reference to FIGS. 14 and 15. In this embodiment, S is a positive integer greater than or equal to u, and S general gates are represented as G ′ (1),..., G ′ (S). The gate G ′ (s) (where sε {1,..., S}) is a 2-input 1-output logic gate (G ′ (s): {0, 1} × {0, 1} → {0 , 1}). For example, G ′ (1),..., G ′ (S 1 ) is an AND gate, G ′ (S 1 +1),..., G ′ (S 2 ) is an OR gate, and G ′ (S 2 +1), ..., G '(S) is an XOR gate. The input wires of the gate G ′ (s) are denoted as W (A ′ (s)) and W (B ′ (s)), and the output wires are denoted as W (s). The type of the gate G ′ (s) (where s∈ {1,..., S}) and the input value I (A ′ (s) of the input wires W (A ′ (s)) and W (B ′ (s)) )), I (B ′ (s)) ∈ {0, 1}, the output value G ′ s (I (A ′ (s)), I (B ′ (s))) of the output wire W (s) ) ∈ {0, 1} is determined. That is, the logical operation results at the gate G ′ (s) for I (A ′ (s)) and I (B ′ (s)) are G ′ s (I (A ′ (s)), I (B ′ ( s))).
まず、秘匿計算装置31(図2)の初期設定部314が、位数qの有限体Fqの元をFqの元に写すトラップドア一方向性置換Eι:Fq→Fqおよびそのトラップドアtιを選択する。また初期設定部314は、Hの鍵Rをランダム(例えば、一様ランダム)に選択して出力する(ステップS100)。次に、制御部113がs:=Sに設定する(ステップS303)。
First, the
入力ワイヤ設定部315は、A:=A’(s),B:=B’(s)に設定する(ステップS304)。
The input
初期設定部314は、有限体Fqの2個の元をランダム(例えば、一様ランダム)に選択し、それらを出力鍵K0 s,K1 s∈Fqとして設定して出力する。ただし、出力鍵K0 sはG’s(I(A’(s)),I(B’(s)))=0に対応し、出力鍵K1 sはG’s(I(A’(s)),I(B’(s)))=1に対応する(ステップS301)。
The
さらに初期設定部314は、置換ビットλs、出力ラベルL0 s:=λs,L1 s:=λs(+)1を設定する。出力ラベルL0 sはG’s(I(A’(s)),I(B’(s)))=0に対応し、出力ラベルL1 sはG’s(I(A’(s)),I(B’(s)))=1に対応する。すなわち、出力ラベルL0 sは出力鍵K0 sに対応し、出力鍵K1 sは出力ラベルL1 sに対応する。λs=0であってもよいし、λs=1であってもよい(ステップS305)。
Further, the
置換ビット設定部1161は、入力ワイヤW(A),W(B)に対し、それぞれ置換ビットλA,λB∈{0,1}をランダムに選択する(ステップS105)。入力ラベル設定部1162は、すべての(a,b)∈{0,1}2について、以下のように入力ラベルLa A,Lb B∈{0,1}を設定する。ただし、a∈{0,1}は入力ワイヤW(A)の入力値であり、b∈{0,1}は入力ワイヤW(B)の入力値である(ステップS106)。
La A:=λA(+)a
Lb B:=λB(+)b
The replacement
L a A : = λ A (+) a
L b B : = λ B (+) b
写像部3171が、鍵Rを用い、x=0,1,2,3およびsについてcx:=H(R,s|x)を生成して出力する(ステップS307)。
The
逆像部3172が、Eι,tι,La A,Lb B,K0 i,K1 iを用い、すべての(a,b)∈{0,1}2について、逆像
を得て出力する(ステップS308)。
The
Is obtained and output (step S308).
入力鍵生成部3173は、ステップS308で得られた逆像P0,P1,P2,P3を用い、以下の連立方程式を解いて、a,b∈{0,1}のそれぞれに応じた入力鍵K0 A,K1 A,K0 B,K1 B∈Fqを得て出力する(ステップS309)。
ラベル秘匿化部3181は、入力鍵K0 A,K1 A,K0 B,K1 Bおよび出力ラベルLs G’s(a,b)を用い、すべての(a,b)∈{0,1}2について、以下のように秘匿化出力ラベル
を設定して出力する。出力ラベルLs G’s(a,b)は、元(a,b)がゲートG’(s)に入力された際の出力値G’s(a,b)に対応する。なお、上付き添え字の「G’s(a,b)」は「G’s(a,b)」を意味する(ステップS311)。
The
Set and output. The output label L s G ′ s (a, b) corresponds to the output value G ′ s (a, b) when the element (a, b) is input to the gate G ′ (s). The superscript “G ′ s (a, b)” means “G ′ s (a, b)” (step S311).
出力ラベルテーブル設定部3182は、秘匿化出力ラベルb0,b1,b2,b3を用い、秘匿化出力ラベルL[s]:=(b0,b1,b2,b3)を得て出力する(ステップS312)。
The output label
入力鍵・ラベルテーブル設定部3174は、入力鍵K0 A,K1 A,K0 B,K1 B、入力ラベルL0 A,L1 A,L0 B,L1 B、出力鍵Ks 0,Ks 1、出力ラベルL0 s,L1 s、および秘匿化出力ラベルL[s]を入力とし、ゲートをG’(s)に対して、(G’(s);K0 A|L0 A,K1 A|L1 A,K0 B|L0 B,K1 B|L1 B,K0 s|L0 s,K1 s|L1 s,L[s])を設定し、記憶部113に格納する(ステップS3121)。
The input key / label
制御部113は、s=1であるかを判定する(ステップS3092)。s=1でなければ、制御部113は、s:=s−1とし(s−1を新たなsとし)、処理をステップS304に戻す(ステップS3093)。一方、s=1であれば処理を終える。
The
<秘匿回路の生成処理>
図16を用い、本形態の秘匿回路の生成処理を説明する。
秘匿計算装置31に秘匿対象の回路f:=(n,u,Aset,Bset,Gset)が入力され、記憶部112に格納される。その後まず、制御部113がi:=n+uに設定する(ステップS303)。
<Secret circuit generation processing>
The secret circuit generation processing of this embodiment will be described with reference to FIG.
A circuit f to be concealed: = (n, u, A set , B set , G set ) is input to the cipher
入力ワイヤ設定部315は、A:=A(i),B:=B(i)に設定する(ステップS104)。秘匿回路構成部3183は、記憶部112に格納された秘匿対象の回路fを参照し、回路fを構成するゲートG(i)∈Gsetと同一の論理演算を行う1つのゲートG’(s’)(ただし、s’∈{1,…,S})を選択し(ステップS3071)、iをs’に写す写像s’=map(i)を設定を設定する。mapはs’とiとを対応付けるテーブルであってもよいし、iからs’を得る関数であってもよい(ステップS3072)。また、秘匿回路構成部3183は、以下のようにK0 A,L0 A,K1 A,L1 A,K0 B,L0 B,K1 B,L1 B,K0 i,L0 i,K1 i,L0 i,L[i]を設定する(ステップS3073)。
K0 A:=K0 A(s’),L0 A:=L0 A(s’)
K1 A:=K1 A(s’),L1 A:=L1 A(s’)
K0 B:=K0 B(s’),L0 B:=L0 B(s’)
K1 B:=K1 B(s’),L1 B:=L1 B(s’)
K0 i:=K0 s’,L0 i:=L0 s’
K1 i:=K1 s’,L0 i:=L0 s’
L[i]:=L[s’]
The input
K 0 A: = K 0 A (s '), L 0 A: = L 0 A (s')
K 1 A : = K 1 A (s ′) , L 1 A : = L 1 A (s ′)
K 0 B : = K 0 B (s ′) , L 0 B : = L 0 B (s ′)
K 1 B : = K 1 B (s ′) , L 1 B : = L 1 B (s ′)
K 0 i : = K 0 s ′ , L 0 i : = L 0 s ′
K 1 i : = K 1 s ′ , L 0 i : = L 0 s ′
L [i]: = L [s ′]
入力鍵・ラベルテーブル設定部3174は、入力鍵K0 A,K1 A,K0 B,K1 Bおよび入力ラベルL0 A,L1 A,L0 B,L1 Bを入力とし、Aに対してテーブルe[A]:=(K0 A|L0 A,K1 A|L1 A)を設定し、Bに対してテーブルe[B]:=(K0 B|L0 B,K1 B|L1 B)を設定して出力する(ステップS310)。
The input key / label
制御部113は、i=n+1であるかを判定する(ステップS113)。i=n+1でなければ、制御部113は、i:=i−1とし(i−1を新たなiとし)、処理をステップS104に戻す(ステップS114)。一方、i=n+1であれば、制御部113はステップS313の処理を実行させる。
The
ステップS313では、秘匿回路構成部3183が、記憶部112に格納された秘匿対象の回路fを参照し、すべてのc∈{0,1},i’∈{n+1,...,n+u−1}について、次のような暗号化処理を行う。
(A)ゲートG(i’)∈Gsetの出力ワイヤW(i’)が他のゲートG(i”)∈Gset(ただし、i”≠i’かつi”∈{3n/2+1,...,n+u})の入力ワイヤW(A(i”))である場合、秘匿回路構成部3183は、ゲートG(i’)の出力鍵Kc i’を共通鍵として用い、共通鍵暗号方式に則って、ゲートG(i”)の入力鍵Kc A(i”)を暗号化し、暗号文EA(i”,c):=Enc(Kc i’,Kc A(i”))を得て出力する。さらにこの場合、秘匿回路構成部3183は、ゲートG(i’)の出力ラベルLc i’を共通鍵として用い、共通鍵暗号方式に則って、ゲートG(i”)の入力ラベルLc A(i”)を暗号化し、暗号文ELA(i”,c):=Enc(Lc i’,Lc A(i”))を得て出力する。
(B)ゲートG(i’)∈Gsetの出力ワイヤW(i’)が他のゲートG(i”)∈Gset(ただし、i”≠i’かつi”∈{n+1,...,n+u})の入力ワイヤW(B(i”))である場合、秘匿回路構成部3183は、ゲートG(i’)の出力鍵Kc i’を共通鍵として用い、共通鍵暗号方式に則って、ゲートG(i”)の入力鍵Kc B(i”)を暗号化し、暗号文EB(i”,c):=Enc(Kc i’,Kc A(i”))を得て出力する。さらにこの場合、秘匿回路構成部3183は、ゲートG(i’)の出力ラベルLc i’を共通鍵として用い、共通鍵暗号方式に則って、ゲートG(i”)の入力ラベルLc B(i”)を暗号化し、暗号文ELB(i”,c):=Enc(Lc i’,Lc B(i”))を得て出力する(ステップS313)。
In step S313, the concealment
(A) The output wire W (i ′) of the gate G (i ′) ∈G set is connected to another gate G (i ″) ∈G set (where i ″ ≠ i ′ and i ″ ∈ {3n / 2 + 1,. , N + u}), the secret
(B) The output wire W (i ′) of the gate G (i ′) ∈G set is connected to another gate G (i ″) ∈G set (where i ″ ≠ i ′ and i ″ ∈ {n + 1,... , N + u}) input wire W (B (i ″)), the concealment
その後、第1実施形態で説明したステップS115およびS116の処理が行われる。次に、通信部1111は、秘匿回路F:=(R,L,ι)、テーブルe、ラベル復号鍵d:=λn+u、写像map、暗号化テーブル{(EA(i”,0)|L0 i’),(EA(i”,1)|L1 i’),(ELA(i”,0)|L0 i’),(ELA(i”,1)|L1 i’)}or{(EB(i”,0)|L0 i’),(EB(i”,1)|L1 i’),(ELB(i”,0)|L0 i’),(ELB(i”,1)|L1 i’)}を出力する。ただし、ιはEιを特定するための情報である。これらは秘匿計算装置32に送信され、秘匿計算装置32(図3)の通信部1211で受信され、記憶部122に格納される(ステップS317)。その後、第1実施形態で説明したステップS118の処理が行われ、処理を終了する。
Thereafter, the processes of steps S115 and S116 described in the first embodiment are performed. Next, the
<回路fの入力値の符号化処理>
第1実施形態と同じである。
<Encoding process of input value of circuit f>
The same as in the first embodiment.
<秘匿回路を用いた秘匿計算>
図17を用い、本形態の秘匿回路を用いた秘匿計算処理を説明する。
まず、秘匿計算装置12に代えて秘匿計算装置32(図3)が、第1実施形態で説明したステップS141からS148の処理を実行する。次に、写像部3272は、R,i,x,mapを用いてcx:=H(R,map(i)|x)を得て出力する(ステップS349)。次に、秘匿計算装置12に代えて秘匿計算装置32が、第1実施形態で説明したステップS150からS155の処理を実行する。
<Concealment calculation using concealment circuit>
The secret calculation process using the secret circuit of the present embodiment will be described with reference to FIG.
First, instead of the
ステップS155でi=n+uでなければ、復元部3273が以下のように(KA(i”),LA(i”))または(KB(i”),LB(i”))を得て出力する。
(A)ゲートG(i)の出力ワイヤW(i)が他のゲートG(i”)の入力ワイヤW(A(i”))である場合、復元部3273は、Ki,Li,EA(i”),ELA(i”)から
KA(i”):=Dec(Ki,EA(i”))
LA(i”):=Dec(Li,ELA(i”))
を得て出力する。
(B)ゲートG(i)の出力ワイヤW(i)が他のゲートG(i”)の入力ワイヤW(B(i”))である場合、復元部3273は、Ki,Li,EB(i”),ELB(i”)から
KB(i”):=Dec(Ki,EB(i”))
LB(i”):=Dec(Li,ELB(i”))
を得て出力する。
ただし、Li=L0 iの場合にEA(i”)=EA(i”,0)かつEB(i”)=EB(i”,0)であり、Li=L1 iの場合にEA(i”)=EA(i”,1)かつEB(i”)=EB(i”,1)である。Dec(α,β)は、αを共通鍵として用い、ステップS313と同じ共通鍵暗号方式に則り、暗号文βを復号して得られる値を意味する(ステップS3551)。その後、ステップS156の処理の後、ステップS147に戻る。
If i = n + u is not satisfied in step S155, the
(A) When the output wire W (i) of the gate G (i) is the input wire W (A (i ″)) of the other gate G (i ″), the
L A (i ″) : = Dec (L i , EL A (i ″))
And output.
(B) When the output wire W (i) of the gate G (i) is the input wire W (B (i ″)) of the other gate G (i ″), the
L B (i ″) : = Dec (L i , EL B (i ″))
And output.
However, when L i = L 0 i , E A (i ″) = E A (i ″, 0) and E B (i ″) = E B (i ″, 0), and L i = L 1 For i , E A (i ″) = E A (i ″, 1) and E B (i ″) = E B (i ″, 1). Dec (α, β) means a value obtained by decrypting the ciphertext β in accordance with the same common key cryptosystem as in step S313 using α as a common key (step S3551). Thereafter, after the process of step S156, the process returns to step S147.
一方、ステップS155でi=n+uであれば、ステップS157の処理が実行されて処理を終了する。 On the other hand, if i = n + u in step S155, the process in step S157 is executed and the process is terminated.
[第4実施形態]
第4実施形態は第2実施形態の変形例である。本形態では、秘匿化対象の回路fが特定される前に一般的なゲートを秘匿化しておき、秘匿化されたゲートを用いて秘匿化対象の回路fを秘匿化する。これにより、秘匿化対象の回路fを秘匿化する際の演算量を削減できる。
[Fourth Embodiment]
The fourth embodiment is a modification of the second embodiment. In this embodiment, a general gate is concealed before the circuit f to be concealed is specified, and the circuit f to be concealed is concealed using the concealed gate. Thereby, it is possible to reduce the amount of calculation when concealing the circuit f to be concealed.
<構成>
図1に例示するように、本形態の秘匿計算システム4は、秘匿回路を生成する秘匿計算装置41、および当該秘匿回路を用いた秘匿計算を行う秘匿計算装置42を有する。
<Configuration>
As illustrated in FIG. 1, the
<秘匿計算装置41>
図9に例示するように、本形態の秘匿計算装置41は、通信部1111、入力部1112、記憶部112、制御部113、初期設定部314、入力ワイヤ設定部315、置換ビット設定部1161、入力ラベル設定部1162、補完部4171a,4171b、逆像部4172、入力鍵生成部3173、入力鍵・ラベルテーブル設定部3174、ラベル秘匿化部3181、出力ラベルテーブル設定部3182、符号化部1191、分離部1192、紛失通信処理部1193、および秘匿回路構成部3183を有する。
<
As illustrated in FIG. 9, the
<秘匿計算装置42>
図10に例示するように、本形態の秘匿計算装置42は、通信部1211、入力部1212、記憶部122、制御部123、紛失通信処理部124、分離部125、設定部126、入力ワイヤ設定部1271、写像部4272、出力鍵生成部2273、補完部4274、復元部3273、ラベル復元部1275、および出力値生成部128を有する。
<
As illustrated in FIG. 10, the
<前処理>
第1実施形態の前処理との相違点は、秘匿対象の回路fを記憶部112に格納しない点、および、一般的な複数のゲートを秘匿化しておく点である。その他は、第1実施形態と同じである。
<Pretreatment>
The differences from the preprocessing of the first embodiment are that the circuit f to be concealed is not stored in the
図18を用い、本形態で行う一般的なゲートの秘匿化処理を説明する。まず、秘匿計算装置41(図9)が、前述したステップS100,S303,S304,S301,S105,S305,S106の処理を実行する。次に補完部4171aが、鍵Rおよび出力鍵K0 sを用い、(4,H(R,s|4)),(5,H(R,s|5)),(−1,K0 s)を多項式補完して、これら3点を通る2次多項式Pを得て出力する(ステップS4071)。さらに補完部4171bが、鍵Rおよび出力鍵K1 sを用い、(4,H(R,s|4)),(5,H(R,s|5)),(−1,K1 s)を多項式補完して、これら3点を通る2次多項式Qを得て出力する(ステップS4072)。また逆像部2172が、Eι,tι,La A,Lb B,P,Qを用い、すべての(a,b)∈{0,1}2について、
を得て出力する(ステップS408)。
A general gate concealment process performed in this embodiment will be described with reference to FIG. First, the secret calculation device 41 (FIG. 9) executes the processes of steps S100, S303, S304, S301, S105, S305, and S106 described above. Next, the
Is obtained and output (step S408).
その後、第3実施形態と同様に、ステップS109,S311,S3121,S3092の処理が実行され、s=1でなければ、制御部113は、s:=s−1とし(s−1を新たなsとし)、処理をステップS304に戻す(ステップS3093)。一方、s=1であれば処理を終える。 Thereafter, similarly to the third embodiment, the processes of steps S109, S311, S3121, and S3092 are executed. The process returns to step S304 (step S3093). On the other hand, if s = 1, the process ends.
<秘匿回路の生成処理>
第3実施形態と同じである。
<Secret circuit generation processing>
The same as in the third embodiment.
<回路fの入力値の符号化処理>
第1実施形態と同じである。
<Encoding process of input value of circuit f>
The same as in the first embodiment.
<秘匿回路を用いた秘匿計算>
図19を用い、本形態の秘匿回路を用いた秘匿計算処理を説明する。
まず、秘匿計算装置22に代えて秘匿計算装置42(図10)がステップS141からS148,S150,S251,S252の処理を実行する。その後、補完部4274は、R,i,V,mapを用い、(4,H(R,map(i)|4)),(5,H(R,map(i)|5)),Vを多項式補完して2次多項式Uを生成する(ステップS453)。
<Concealment calculation using concealment circuit>
The secret calculation process using the secret circuit of this embodiment will be described with reference to FIG.
First, instead of the
その後、ステップS254,S153からS155の処理が実行され、ステップS155でi=n+uでなければステップS3551,S156の処理の後、ステップS147に戻る。ステップS155でi=n+uであれば、ステップS157の処理が実行されて処理を終了する。 Thereafter, the processes of steps S254, S153 to S155 are executed. If i = n + u is not satisfied in step S155, the process returns to step S147 after the processes of steps S3551 and S156. If i = n + u in step S155, the process of step S157 is executed and the process is terminated.
[変形例等]
なお、本発明は上述の実施形態に限定されるものではない。例えば、ステップS111の式(1)に代えて、すべての(a、b)∈{0,1}2について、
を満たす秘匿化出力ラベル
を設定してもよい。ただし、H”は任意長ビットの値をkビット(k>3)の値に写す一方向性写像H”:{0,1}*→{0,1}kである。一方向性写像の例はハッシュ関数である。共通鍵暗号関数または公開鍵暗号関数を一方向性写像として用いてもよい。一方向性写像は、関数であってもよいし、アルゴリズムであってもよい。また[α]βはαのβに対応するビット位置(例えば先頭からβ+1ビット目)のビット値を表す。すなわち、秘匿化出力ラベルが、入力鍵に対応するビット列の元(a,b)に応じたビット位置を表してもよい。この場合、ステップS154では、式(2)に代えて、以下のように出力ラベルLiを得る。
In addition, this invention is not limited to the above-mentioned embodiment. For example, instead of equation (1) in step S111, for all (a, b) ε {0, 1} 2 ,
Concealed output label that satisfies
May be set. Here, H ″ is a one-way map H ″: {0, 1} * → {0, 1} k that maps an arbitrary-length bit value to a k-bit (k> 3) value. An example of a one-way map is a hash function. A common key encryption function or a public key encryption function may be used as the one-way map. The one-way map may be a function or an algorithm. [Α] β represents a bit value of a bit position (for example, β + 1 bit from the head) corresponding to β of α. That is, the concealment output label may represent a bit position corresponding to the element (a, b) of the bit string corresponding to the input key. In this case, in step S154, the output label L i is obtained as follows instead of the equation (2).
上述の実施形態では、La A,Lb Bに対応する値として2La A+Lb Bを用い、LA,LBに対応する値として2LA+LBを用いた。しかしながら、2La A+Lb Bに代えてその他の単射な写像g(La A,Lb B):{0,1}2→{0,1}を用い、2LA+LBに代えてg(LA,LB)を用いてもよい。 In the embodiment described above, with L a A, L b with 2L a A + L b B as a value corresponding to B, L A, 2L A + L B as a value corresponding to the L B. However, instead of 2L a A + L b B , another injective map g (L a A , L b B ): {0,1} 2 → {0,1} is used, and instead of 2L A + L B g (L A , L B ) may be used.
また、ステップS110で例示したK0 A,K1 A,K0 B,K1 Bについての連立方程式に代え、P0,P1,P2,P3,K0 A,K1 A,K0 B,K1 Bを用いたK0 A,K1 A,K0 B,K1 Bについてのその他の連立方程式を用いてもよい。この場合には、使用する連立方程式の左辺のPxと等号が成立する右辺の式に応じ、ステップS150,S151,S152,S251,S252の各xに対応するKA,KBについての式を変更すればよい。例えば、以下の連立方程式が用いられてもよい。
この場合、ステップS150〜S152に代えて、x=1であればKA,KBおよびcxからKi:=Ei(KA+KB)(+)cxを得て出力し、x≠1であればKA,KBおよびcxからKi:=Ei(KA+2KB)(+)cxを得て出力すればよい。ステップS150,S251,S252に代えて、x=1であれば、xおよびKA,KBからV:=(x,Ei(KA+2KB))を得て出力し、x≠1であれば、xおよびKA,KBからV:=(x,Ei(KA+KB))を得て出力すればよい。
Further, instead of the simultaneous equations for K 0 A , K 1 A , K 0 B , and K 1 B exemplified in step S110, P 0 , P 1 , P 2 , P 3 , K 0 A , K 1 A , K 0 B, K with K 1 B 0 a, K 1 a, K 0 B, may be used other simultaneous equations for K 1 B. In this case, according to P x on the left side of the simultaneous equations to be used and the expression on the right side where the equal sign is established, the expressions for K A and K B corresponding to x in steps S150, S151, S152, S251, and S252. Can be changed. For example, the following simultaneous equations may be used.
In this case, instead of steps S150 to S152, if x = 1, K i : = E i (K A + K B ) (+) c x is obtained and output from K A , K B and c x , x If ≠ 1, K i : = E i (K A + 2K B ) (+) c x may be obtained from K A , K B and c x and output. Instead of steps S150, S251 and S252, if x = 1, V: = (x, E i (K A + 2K B )) is obtained from x and K A , K B and output, and x ≠ 1 If there is, V: = (x, E i (K A + K B )) may be obtained from x and K A , K B and output.
回路fが複数並列に存在する場合には、回路ごとに独立に上述の形態の処理を行えばよい。また、第2実施形態の多項式が単項式であってもよい。さらに、1個の秘匿計算装置が回路fの全ゲートを秘匿化するのではなく、複数の秘密計算装置で回路fのゲートを分担して秘匿化してもよい。例えば、ゲートごとに異なる秘密計算装置が上述した秘匿化処理を行ってもよい。 When a plurality of circuits f exist in parallel, the above-described processing may be performed independently for each circuit. The polynomial of the second embodiment may be a monomial. Further, instead of concealing all the gates of the circuit f by one secret calculation device, the gates of the circuit f may be shared by a plurality of secret calculation devices. For example, a secret calculation device that is different for each gate may perform the above-described concealment process.
また、λn+u=0であってもよい。この場合にはステップS157に代えてY:=Ln+uとすればよい。 Also, λ n + u = 0 may be used. In this case, Y: = L n + u may be used instead of step S157.
その他、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。或いは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。 In addition, instead of each device exchanging information via a network, at least a part of the devices may exchange information via a portable recording medium. Alternatively, at least some of the devices may exchange information via a non-portable recording medium.
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。 The various processes described above are not only executed in time series according to the description, but may also be executed in parallel or individually as required by the processing capability of the apparatus that executes the processes. Needless to say, other modifications are possible without departing from the spirit of the present invention.
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。 When the above configuration is realized by a computer, the processing contents of the functions that each device should have are described by a program. By executing this program on a computer, the above processing functions are realized on the computer. The program describing the processing contents can be recorded on a computer-readable recording medium. An example of a computer-readable recording medium is a non-transitory recording medium. Examples of such a recording medium are a magnetic recording device, an optical disk, a magneto-optical recording medium, a semiconductor memory, and the like.
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。 This program is distributed, for example, by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。 A computer that executes such a program first stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, this computer reads a program stored in its own recording device and executes a process according to the read program. As another execution form of the program, the computer may read the program directly from the portable recording medium and execute processing according to the program, and each time the program is transferred from the server computer to the computer. The processing according to the received program may be executed sequentially. The above-described processing may be executed by a so-called ASP (Application Service Provider) type service that realizes a processing function only by an execution instruction and result acquisition without transferring a program from the server computer to the computer. Good.
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。 In the above embodiment, the processing functions of the apparatus are realized by executing a predetermined program on a computer. However, at least a part of these processing functions may be realized by hardware.
11,12,21,22 秘匿計算装置 11, 12, 21, 22 Secret calculation device
Claims (8)
前記逆像を用い、前記元のそれぞれに応じた入力鍵を得る入力鍵生成部と、
前記入力鍵を用い、前記元が前記ゲートに入力された際の出力値に応じた出力ラベルを秘匿化した秘匿化出力ラベルを得るラベル秘匿化部と、
を有する秘匿計算装置。 An image trap corresponding to a value corresponding to an input label corresponding to each element of the domain of the gate and an output key of the gate corresponding to each output value when the element is input to the gate A reverse image part for obtaining a reverse image by door one-way replacement;
An input key generation unit that obtains an input key corresponding to each of the originals using the inverse image;
A label concealment unit that obtains a concealed output label using the input key and concealing an output label according to an output value when the source is input to the gate;
A secret computing device.
前記逆像部は、前記入力ラベルに対応する値と前記出力鍵との排他的論理和である前記像のトラップドア一方向性置換による逆像を得る、秘匿計算装置。 The secret calculation device according to claim 1,
The secret image calculation apparatus, wherein the inverse image unit obtains an inverse image by trapdoor unidirectional replacement of the image, which is an exclusive OR of a value corresponding to the input label and the output key.
前記ゲートに応じた複数の点、ならびに、所定値と前記出力値の何れかである第1値に応じた前記出力鍵とからなる点によって定まる第1整式を得る第1補完部と、
前記複数の点、ならびに、前記所定値と前記出力値の何れかである第2値に応じた前記出力鍵とからなる点によって定まる第2整式を得る第2補完部とを有し、
前記第1値と前記第2値とは異なり、
前記逆像部は、前記ゲートに入力された際の前記出力値が前記第1値となる前記元に応じた入力ラベルに対応する値を前記第1整式に代入して得られる値である前記像のトラップドア一方向性置換による逆像、および、前記ゲートに入力された際の前記出力値が前記第2値となる前記元に応じた入力ラベルに対応する値を前記第2整式に代入して得られる値である前記像のトラップドア一方向性置換による逆像を得る、秘匿計算装置。 The secret calculation device according to claim 1,
A first complement that obtains a first formula determined by a plurality of points according to the gate and a point consisting of a predetermined value and the output key according to a first value that is one of the output values;
A second complementing unit that obtains a second equation determined by the plurality of points and a point formed by the predetermined value and the output key corresponding to a second value that is one of the output values;
Unlike the first value and the second value,
The inverse image portion is a value obtained by substituting a value corresponding to an input label corresponding to the element whose output value when input to the gate is the first value into the first integer. Substitute an image of the image by the trapdoor unidirectional replacement, and a value corresponding to the input label corresponding to the element in which the output value when input to the gate becomes the second value is substituted into the second integer The secret calculation apparatus which obtains the reverse image by trapdoor unidirectional replacement | exchange of the said image which is the value obtained by this.
前記出力ラベル秘匿化部は、前記入力鍵に対応する値で前記出力ラベルを秘匿化して前記秘匿化出力ラベルを得る、または、前記入力鍵に対応するビット列の前記元に応じたビット位置を表す前記秘匿化出力ラベルを得る、秘匿計算装置。 The secret calculation device according to any one of claims 1 to 3,
The output label concealment unit conceals the output label with a value corresponding to the input key to obtain the concealed output label, or represents a bit position corresponding to the source of the bit string corresponding to the input key A secret calculation device for obtaining the concealment output label.
前記ゲートの出力値に応じた秘匿化出力ラベルおよび前記ゲートの入力鍵を用い、前記ゲートの出力値に応じた出力ラベルを得るラベル復元部と、
を有する秘匿計算装置。 An output key generating unit for obtaining an output key of the gate according to a value corresponding to an input label according to an input value of the gate and an image obtained by trap door unidirectional replacement of the input key of the gate;
Using a concealment output label according to the output value of the gate and an input key of the gate, a label restoration unit for obtaining an output label according to the output value of the gate;
A secret computing device.
前記出力鍵生成部は、前記入力ラベルに対応する値と前記ゲートの入力鍵のトラップドア一方向性置換による像である値との排他的論理和を前記ゲートの出力鍵とする、秘匿計算装置。 The secret calculation device according to claim 5,
The secret key calculation apparatus, wherein the output key generation unit uses, as an output key of the gate, an exclusive OR of a value corresponding to the input label and a value that is an image obtained by trapdoor unidirectional replacement of the input key of the gate .
前記出力鍵生成部は、
前記ゲートに応じた複数の点、ならびに、前記入力ラベルに対応する値および前記ゲートの入力鍵のトラップドア一方向性置換による像である値からなる点によって定まる整式を得る補完部と、
前記整式に所定値を代入して前記ゲートの出力鍵を得る代入部と、を含む秘匿計算装置。 The secret calculation device according to claim 5,
The output key generation unit
A plurality of points according to the gate, and a complementing unit for obtaining an equation determined by a point consisting of a value corresponding to the input label and a value that is an image obtained by trapdoor unidirectional replacement of the input key of the gate;
And a substituting unit that obtains an output key of the gate by substituting a predetermined value into the formula.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015117289 | 2015-06-10 | ||
JP2015117289 | 2015-06-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017003961A true JP2017003961A (en) | 2017-01-05 |
JP6599215B2 JP6599215B2 (en) | 2019-10-30 |
Family
ID=57754162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015223418A Active JP6599215B2 (en) | 2015-06-10 | 2015-11-13 | Secret calculation device and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6599215B2 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110216902A1 (en) * | 2010-03-05 | 2011-09-08 | Kolesnikov Vladimir Y | Computation of garbled tables in garbled circuit |
US20120079602A1 (en) * | 2010-09-28 | 2012-03-29 | Alcatel-Lucent Usa Inc | Garbled Circuit Generation in a Leakage-Resilient Manner |
JP2012528532A (en) * | 2009-05-29 | 2012-11-12 | アルカテル−ルーセント | Efficient method for calculating secret functions using resettable tamper-resistant hardware tokens |
-
2015
- 2015-11-13 JP JP2015223418A patent/JP6599215B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012528532A (en) * | 2009-05-29 | 2012-11-12 | アルカテル−ルーセント | Efficient method for calculating secret functions using resettable tamper-resistant hardware tokens |
US20110216902A1 (en) * | 2010-03-05 | 2011-09-08 | Kolesnikov Vladimir Y | Computation of garbled tables in garbled circuit |
US20120079602A1 (en) * | 2010-09-28 | 2012-03-29 | Alcatel-Lucent Usa Inc | Garbled Circuit Generation in a Leakage-Resilient Manner |
Non-Patent Citations (3)
Title |
---|
SUZUKI, K. ET AL.: "Garbling Scheme for Formulas with Constant Size of Garbled Gates", PROCEEDINGS OF THE 21ST INTERNATIONAL CONFERENCE ON THE THEORY AND APPLICATION OF CRYPTOLOGY AND INF, JPN6018035934, November 2015 (2015-11-01), pages pp. 758-782 * |
千田 浩司ほか: "秘匿回路計算の高効率化と機密情報の安全な活用について", 情報処理学会論文誌, vol. Vol. 52, No. 6, JPN6018035932, 15 June 2011 (2011-06-15), pages pp. 1993-2008 * |
柴田 賢介ほか: "表計算ソフトをフロントエンドとした委託型2パーティ秘匿回路計算システム", コンピュータセキュリティシンポジウム2009 (CSS 2009) 論文集, vol. 第二分冊, JPN6018035930, 19 October 2009 (2009-10-19), pages pp. 625-630 * |
Also Published As
Publication number | Publication date |
---|---|
JP6599215B2 (en) | 2019-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110612696B (en) | Post-quantum secure private stream aggregation | |
US11082482B2 (en) | Block chain encoding with fair delay for distributed network devices | |
JP2016035554A (en) | Compact fuzzy private matching using full homomorphic encryption scheme | |
EP2526505B1 (en) | Device and method for obtaining a cryptographic key | |
JP6363032B2 (en) | Key change direction control system and key change direction control method | |
EP2920908A2 (en) | Method for secure substring search | |
JP2007139895A (en) | Encryption device, decryption device, program, and method | |
JPWO2019130528A1 (en) | Conversion key generation device, ciphertext conversion device, secret information processing system, conversion key generation method, conversion key generation program, ciphertext conversion method, and ciphertext conversion program | |
Sokouti et al. | Medical image encryption: an application for improved padding based GGH encryption algorithm | |
US20140233731A1 (en) | Device and Method for Generating Keys with Enhanced Security for Fully Homomorphic Encryption Algorithm | |
TWI597960B (en) | Key splitting | |
JP6059347B2 (en) | Decoding device, decoding capability providing device, method and program thereof | |
WO2020044748A1 (en) | Device for configuring id-based hash proof system, id-based encryption device, method for configuring id-based hash proof system, and program | |
JP6273226B2 (en) | Encryption system, authentication system, encryption device, decryption device, authenticator generation device, verification device, encryption method, authentication method | |
JP7233265B2 (en) | Signature device, verification device, signature method, verification method, signature program and verification program | |
JP2018036418A (en) | Encryption system, encryption method, and encryption program | |
KR20240004830A (en) | Blind rotation for use in fully homomorphic encryption | |
JP6599215B2 (en) | Secret calculation device and program | |
WO2019016916A1 (en) | Encryption device, decryption device, encryption method, encryption program, decryption method and decryption program | |
Alsaedi et al. | Retrieving Encrypted Images Using Convolution Neural Network and Fully Homomorphic Encryption | |
JP6629461B2 (en) | Circuit concealment device, secret calculation system and program | |
JP2006184831A (en) | Key generating device, encryption device, inspection device, decryption device, and key generating program, encryption program, inspection program, decryption program | |
US11811741B2 (en) | Information processing system and information processing method | |
JP7158635B2 (en) | Cryptographic system, encryption device, decryption device and key generation device | |
JP2024517800A (en) | Blind Rotations for Use with Fully Homomorphic Encryption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171215 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180918 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181030 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190326 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190510 |
|
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: 20191001 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191002 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6599215 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |