JP2017003961A - Secret computing device and program - Google Patents

Secret computing device and program Download PDF

Info

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
Application number
JP2015223418A
Other languages
Japanese (ja)
Other versions
JP6599215B2 (en
Inventor
幸太郎 鈴木
Kotaro Suzuki
幸太郎 鈴木
カルメン ケムプカ
Kempka Carmen
カルメン ケムプカ
奨 清島
Susumu Kiyoshima
奨 清島
亮 菊池
Akira Kikuchi
亮 菊池
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
Publication of JP2017003961A publication Critical patent/JP2017003961A/en
Application granted granted Critical
Publication of JP6599215B2 publication Critical patent/JP6599215B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a secret computing device using a secret circuit that is reduced in a size of the circuit.SOLUTION: A secret computing device obtains an inverse image by a trap door unidirectional substitution of an image based on a value corresponding to an input label based on each original of a domain of each gate and an output key of the gate based on each of an output value when the original is input into the gate, and obtains an input key according to each original using the inverse image. Furthermore, a secret output label making a secret of an output label based on the output value when the original is input into the gate is obtained by using the input key.EFFECT: It is not necessary to store an encrypted message of the output key in a circuit in comparison with a conventional secret computing device, and therefore a size of a secret circuit can be reduced.SELECTED DRAWING: Figure 2

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 Document 1 discloses a conventional technique of a two-party calculation method using a secret circuit. In the secret circuit of Non-Patent Document 1, an input key and an input label corresponding to the input truth value of each gate constituting the circuit before concealment are set, and an output corresponding to the combination of the input truth value of each gate. An output key and an output label corresponding to the truth value of are set. The output key and the output label are encrypted by common key encryption so that they can be decrypted by a combination of input keys. The output of the gate becomes the input of the next gate.

この秘匿回路を用いた計算では、各ゲートの入力の真理値の組み合わせに対応する入力鍵および入力ラベルを用いて当該ゲートの暗号文を復号し、出力鍵および出力ラベルを得る。出力鍵および出力ラベルは、次のゲートで入力鍵および入力ラベルとして利用され、同様に次のゲートの暗号文を復号して次の出力鍵および出力ラベルを得る。これを繰り返すことで最終段のゲートの出力ラベルを得る。この出力ラベルは演算結果に対応する。   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.

Benny Pinkas, Thomas Schneider, Nigel P. Smart, Stephen C. Williams, “Secure Two-Party Computation Is Practical,” ASIACRYPT 2009, 250-267.Benny Pinkas, Thomas Schneider, Nigel P. Smart, Stephen C. Williams, “Secure Two-Party Computation Is Practical,” ASIACRYPT 2009, 250-267.

従来方式では、各ゲートの出力鍵および出力ラベルの暗号文を保存しておかなければならず、秘匿回路のサイズが大きいという問題がある。本発明の課題は、秘匿回路のサイズを削減することである。   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.

図1は実施形態の秘匿計算システムの構成を例示したブロック図である。FIG. 1 is a block diagram illustrating a configuration of a secret calculation system according to an embodiment. 図2は実施形態の秘匿計算装置の構成を例示したブロック図である。FIG. 2 is a block diagram illustrating the configuration of the secret calculation apparatus according to the embodiment. 図3は実施形態の秘匿計算装置の構成を例示したブロック図である。FIG. 3 is a block diagram illustrating the configuration of the secret calculation apparatus according to the embodiment. 図4は第1実施形態の回路秘匿化方法を例示したフロー図である。FIG. 4 is a flowchart illustrating the circuit concealment method according to the first embodiment. 図5は第1実施形態の回路秘匿化方法を例示したフロー図である。FIG. 5 is a flowchart illustrating the circuit concealment method according to the first embodiment. 図6は第1実施形態の入力値の符号化方法を例示したフロー図である。FIG. 6 is a flowchart illustrating an input value encoding method according to the first embodiment. 図7は第1実施形態の秘匿回路の計算方法を例示したフロー図である。FIG. 7 is a flowchart illustrating the calculation method of the secret circuit according to the first embodiment. 図8Aおよび図8Bは秘匿化対象の回路を例示した概念図である。8A and 8B are conceptual diagrams illustrating the circuit to be concealed. 図9は実施形態の秘匿計算装置の構成を例示したブロック図である。FIG. 9 is a block diagram illustrating the configuration of the secret calculation apparatus according to the embodiment. 図10は実施形態の秘匿計算装置の構成を例示したブロック図である。FIG. 10 is a block diagram illustrating the configuration of the secret calculation apparatus according to the embodiment. 図11は第2実施形態の回路秘匿化方法を例示したフロー図である。FIG. 11 is a flowchart illustrating the circuit concealment method according to the second embodiment. 図12は第2実施形態の秘匿回路の計算方法を例示したフロー図である。FIG. 12 is a flowchart illustrating the calculation method of the secret circuit according to the second embodiment. 図13は第2実施形態の秘匿回路を説明するための図である。FIG. 13 is a diagram for explaining a secret circuit according to the second embodiment. 図14は第3実施形態の前処理を例示したフロー図である。FIG. 14 is a flowchart illustrating the preprocessing of the third embodiment. 図15は第3実施形態の前処理を例示したフロー図である。FIG. 15 is a flowchart illustrating the preprocessing of the third embodiment. 図16は第3実施形態の回路秘匿化方法を例示したフロー図である。FIG. 16 is a flowchart illustrating the circuit concealment method according to the third embodiment. 図17は第3実施形態の秘匿回路の計算方法を例示したフロー図である。FIG. 17 is a flowchart illustrating the calculation method of the secret circuit according to the third embodiment. 図18は第4実施形態の前処理を例示したフロー図である。FIG. 18 is a flowchart illustrating the preprocessing of the fourth embodiment. 図19は第4実施形態の秘匿回路の計算方法を例示したフロー図である。FIG. 19 is a flowchart illustrating the calculation method of the secret circuit according to the fourth embodiment.

以下、本発明の実施形態を説明する。
[概要]
秘匿回路の生成では、各ゲートの定義域の元のそれぞれに応じた入力ラベルに対応する値と、当該元が当該ゲートに入力された際の出力値のそれぞれに応じたゲートの出力鍵と、に応じた像のトラップドア一方向性置換による逆像を得、当該逆像を用いて当該元のそれぞれに応じた入力鍵を得る。さらに当該入力鍵を用い、当該元が当該ゲートに入力された際の出力値に応じた出力ラベルを秘匿化した秘匿化出力ラベルを得る。
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 secure calculation system 1 of the present embodiment includes a secure calculation device 11 that generates a secure circuit, and a secure calculation device 12 that performs a secure calculation using the secure circuit.

<秘匿計算装置11>
図2に例示するように、本形態の秘匿計算装置11は、通信部1111、入力部1112、記憶部112、制御部113、初期設定部114、入力ワイヤ設定部115、置換ビット設定部1161、入力ラベル設定部1162、写像部1171、逆像部1172、入力鍵生成部1173、入力鍵・ラベルテーブル設定部1174、ラベル秘匿化部1181、出力ラベルテーブル設定部1182、符号化部1191、分離部1192、および紛失通信処理部1193を有する。
<Secret calculation device 11>
As illustrated in FIG. 2, the secure calculation device 11 according to the present embodiment includes a communication unit 1111, an input unit 1112, a storage unit 112, a control unit 113, an initial setting unit 114, an input wire setting unit 115, a replacement bit setting unit 1161, Input label setting unit 1162, mapping unit 1171, inverse image unit 1172, input key generation unit 1173, input key / label table setting unit 1174, label concealment unit 1181, output label table setting unit 1182, encoding unit 1191, separation unit 1192 and a lost communication processing unit 1193.

<秘匿計算装置12>
図3に例示するように、本形態の秘匿計算装置12は、通信部1211、入力部1212、記憶部122、制御部123、紛失通信処理部124、分離部125、設定部126、入力ワイヤ設定部1271、写像部1272、出力鍵生成部1273、分離部1274、およびラベル復元部1275、および出力値生成部128を有する。
<Secret calculation device 12>
As illustrated in FIG. 3, the secure calculation device 12 according to this embodiment includes a communication unit 1211, an input unit 1212, a storage unit 122, a control unit 123, a lost communication processing unit 124, a separation unit 125, a setting unit 126, and an input wire setting. Section 1271, mapping section 1272, output key generation section 1273, separation section 1274, label restoration section 1275, and output value generation section 128.

各秘匿計算装置は、例えば、通信装置、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 secret calculation devices 11 and 12 perform each process under the control of the control units 113 and 123, respectively. In addition, data obtained in each unit is stored in a memory (not shown) one by one, and read and used as necessary.

<前処理>
正整数であるセキュリティパラメータkに基づき、以下の前処理が行われる。
任意長ビットの値をkビットの値に写す一方向性写像H:{0,1}→{0,1}、および任意長ビットの値を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}に対して1ビットの出力値Y∈{0,1}を出力する写像(関数)である(f:{0,1}→{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 concealment calculation device 11 is stored in the storage unit 112. The circuit f is a mapping (function) that outputs a 1-bit output value Y∈ {0,1} to an n-bit input value Z∈ {0,1} n (f: {0,1} n → {0,1}). However, n is an even number of 2 or more, n = 4 may be sufficient, and n> = 6 may be sufficient. u is an integer of 1 or more, and u ≧ 3 may be satisfied. FIG. 8B is an example of n = 10 and u = 9.

図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(μ)))の関係は以下のようになる。

Figure 2017003961
Types of gates G (μ) (where μ∈ {n + 1,..., N + u}) and input values I (A (μ)), I of input wires W (A (μ)) and W (B (μ)) In response to (B (μ)) ε {0,1}, the output value G μ (I (A (μ)), I (B (μ))) ε {0,1} of the output wire W (μ) is Determined. That is, the logical operation result at the gate G (μ) for I (A (μ)) and I (B (μ)) is G μ (I (A (μ)), I (B (μ))). . For example, when the gate G (μ) is an AND gate, I (A (μ)), I (B (μ)), G μ (I (A (μ)), I (B (μ))) The relationship is as follows.
Figure 2017003961

<秘匿回路の生成処理>
図4および図5を用い、本形態の秘匿回路の生成処理を説明する。
まず、秘匿計算装置11(図2)の初期設定部114が、位数qの有限体Fの元をFの元に写すトラップドア一方向性置換Eι:F→Fおよびそのトラップドア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 initial setting unit 114 of the secret computing device 11 (FIG. 2) traps one-way replacement E ι : F q → F q in which the element of the finite field F q of order q is copied to the element of F q and its Select trapdoor t ι . However, q is a positive integer, for example, a prime number. Unless the trap door t ι is used, it is difficult to obtain a reverse image of the trap door unidirectional replacement. On the other hand, by using the trap door t ι , an inverse image of the trap door unidirectional replacement can be obtained in polynomial time. The trapdoor unidirectional replacement may be a function or an algorithm. The initial setting unit 114 selects and outputs the H key R at random (for example, uniform random) (step S100).

さらに、初期設定部114は、記憶部112に格納された回路fを参照し、有限体Fの2個の元をランダム(例えば、一様ランダム)に選択し、それらを出力鍵K n+u,K n+u∈Fとして設定して出力する。ただし、出力鍵K n+uはGn+u(I(A(n+u)),I(B(n+u)))=0に対応し、出力鍵K n+uはGn+u(I(A(n+u)),I(B(n+u)))=1に対応する(ステップS101)。 Further, the initial setting unit 114 refers to the circuit f stored in the storage unit 112, selects two elements of the finite field F q at random (for example, uniform random), and selects them as the output key K 0 n + u. , K 1 n + u ∈ F q is set and output. However, the output key K 0 n + u corresponds to G n + u (I (A (n + u)), I (B (n + u))) = 0, and the output key K 1 n + u is G n + u (I (A (n + u)), I (B (n + u))) = 1 (step S101).

次に、初期設定部114は、置換ビットλn+u、出力ラベルL n+u:=λn+u,L n+u:=λn+u(+)1を設定する。ただし、α(+)βはαとβとの排他的論理和

Figure 2017003961

を表す。出力ラベルL n+uはGn+u(I(A(n+u)),I(B(n+u)))=0に対応し、出力ラベルL 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 initial setting unit 114 sets replacement bits λ n + u , output labels L 0 n + u : = λ n + u , L 1 n + u : = λ n + u (+) 1. Where α (+) β is the exclusive OR of α and β
Figure 2017003961

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 control unit 113 sets i: = n + u (step S103).

入力ワイヤ設定部115は、A:=A(i),B:=B(i)に設定する(ステップS104)。置換ビット設定部1161は、入力ワイヤW(A),W(B)に対し、それぞれ置換ビットλ,λ∈{0,1}をランダムに選択する(ステップS105)。入力ラベル設定部1162は、すべての(a,b)∈{0,1}について、以下のように入力ラベルL ,L ∈{0,1}を設定する。ただし、a∈{0,1}は入力ワイヤW(A)の入力値であり、b∈{0,1}は入力ワイヤW(B)の入力値である。
:=λ(+)a
:=λ(+)b
すなわち、入力ラベル設定部1162は、ゲートG(i)の定義域の元(a,b)のそれぞれに応じた入力ラベル(L ,L )を設定して出力する。なお、図8Aおよび図8Bに例示するように、入力ラベルL は、ゲートG(i)の入力ワイヤW(A)となる別のゲートG(i’)(ただし、i≠i’,i’∈{n+1,…,n+u−1})の出力ワイヤW(i’)の出力ラベル

Figure 2017003961

でもある。同様に、入力ラベルL は、ゲートG(i)の入力ワイヤW(B)となる別のゲートG(i”)(ただし、i≠i”,i”∈{n+1,…,n+u−1})の出力ワイヤW(i”)の出力ラベル
Figure 2017003961

でもある(ステップS106)。 The input wire setting unit 115 sets A: = A (i) and B: = B (i) (step S104). The replacement bit setting unit 1161 randomly selects replacement bits λ A and λ B ε {0, 1} for the input wires W (A) and W (B) (step S105). The input label setting unit 1162 sets the input labels L a A and L b B ε {0, 1} for all (a, b) ε {0, 1} 2 as follows. However, aε {0,1} is an input value of the input wire W (A), and bε {0,1} is an input value of the input wire W (B).
L a A : = λ A (+) a
L b B : = λ B (+) b
That is, the input label setting unit 1162 sets and outputs the input labels (L a A , L b B ) corresponding to the elements (a, b) of the domain of the gate G (i). As illustrated in FIG. 8A and FIG. 8B, the input label L a A includes another gate G (i ′) (where i ≠ i ′, which is the input wire W (A) of the gate G (i). i′∈ {n + 1,..., n + u−1}) output wire W (i ′) output label
Figure 2017003961

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 ″)
Figure 2017003961

(Step S106).

写像部1171が、鍵Rを用い、x=0,1,2,3およびiについてc:=H(R,i|x)を生成して出力する。ただし、H(R,i|x)は、Rに応じたHに対し、i|xを入力して得られる像である。α|βはαとβとの連結を表す。xは(L ,L )の4通りの組み合わせに対応する(ステップS107)。 The mapping unit 1171 uses the key R to generate and output c x : = H (R, i | x) for x = 0, 1, 2, 3 and i. However, H (R, i | x) is an image obtained by inputting i | x to H corresponding to R. α | β represents a connection between α and β. x corresponds to four combinations of (L a A , L b B ) (step S107).

逆像部1172が、記憶部112に格納された回路fを参照し、Eι,tι,L ,L ,K ,K を用い、すべての(a,b)∈{0,1}について、逆像

Figure 2017003961

を得て出力する。すなわち、逆像部1172は、ゲートG(i)の定義域の元(a,b)のそれぞれに応じた入力ラベル(L ,L )に対応する値
Figure 2017003961

と、元(a,b)がゲートG(i)に入力された際の出力値G(a,b)のそれぞれに応じたゲートG(i)の出力鍵
Figure 2017003961

と、に応じた像
Figure 2017003961

のトラップドア一方向性置換Eιによる逆像を得て出力する。本形態の逆像部1172は、入力ラベル(L ,L )に対応する値と当該「出力鍵」との排他的論理和である像のトラップドア一方向性置換による逆像を得て出力する(ステップS108)。 The inverse image unit 1172 refers to the circuit f stored in the storage unit 112, uses E ι , t ι , L a A , L b B , K 0 i , and K 1 i and uses all (a, b). For ∈ {0,1} 2 , the inverse image
Figure 2017003961

And output. That is, the inverse image unit 1172 has values corresponding to the input labels (L a A , L b B ) corresponding to the respective elements (a, b) of the domain of the gate G (i).
Figure 2017003961

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)
Figure 2017003961

And statues according to
Figure 2017003961

A reverse image of the trap door unidirectional replacement E ι is obtained and output. The inverse image unit 1172 of this embodiment performs an inverse image by trapdoor unidirectional replacement of an image that is an exclusive OR of the value corresponding to the input label (L a A , L b B ) and the “output key”. Obtain and output (step S108).

入力鍵生成部1173は、ステップS108で得られた逆像P,P,P,Pを用い、以下の連立方程式を解いて、a,b∈{0,1}のそれぞれに応じた入力鍵K ,K ,K ,K ∈Fを得て出力する。

Figure 2017003961

この連立方程式はガウスの消去法等の周知の方法を用いて解くことができる。なお、図8Aおよび図8Bに例示するように、入力鍵K ,K は、それぞれ、ゲートG(i)の入力ワイヤW(A)となる別のゲートG(i’)(ただし、i≠i’,i’∈{n+1,…,n+u−1})の出力ワイヤW(i’)の出力鍵K i’,K i’でもある。同様に、入力鍵K ,K は、それぞれ、ゲートG(i)の入力ワイヤW(B)となる別のゲートG(i”)(ただし、i≠i”,i”∈{n+1,…,n+u−1})の出力ワイヤW(i”)の出力鍵K i”,K i”でもある(ステップS109)。 The input key generation unit 1173 uses the inverse images P 0 , P 1 , P 2 , and P 3 obtained in step S108 to solve the following simultaneous equations and responds to each of a, bε {0, 1}. The input keys K 0 A , K 1 A , K 0 B , and K 1 B ∈ F q are obtained and output.
Figure 2017003961

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は、入力鍵K ,K ,K ,K および入力ラベルL ,L ,L ,L を入力とし、Aに対してテーブルe[A]:=(K |L ,K |L )を設定し、Bに対してテーブルe[B]:=(K |L ,K |L )を設定して出力する(ステップS110)。 The input key / label table setting unit 1174 receives the input keys K 0 A , K 1 A , K 0 B , K 1 B and the input labels L 0 A , L 1 A , L 0 B , L 1 B, and inputs A table e [a] with respect to: = (K 0 a | L 0 a, K 1 a | L 1 a) set the table e [B] with respect to B: = (K 0 B | L 0 B , K 1 B | L 1 B ) is set and output (step S110).

ラベル秘匿化部1181は、記憶部112に格納された回路fを参照し、入力鍵K ,K ,K ,K および出力ラベルL Gi(a,b)を用い、すべての(a,b)∈{0,1}について、以下のように秘匿化出力ラベル

Figure 2017003961

を設定して出力する。すなわち、ラベル秘匿化部1181は、入力鍵K ,K に対応する値H’(K |K )で出力ラベルL Gi(a,b)を秘匿化してこれらの秘匿化出力ラベルb,b,b,bを得る。出力ラベルL Gi(a,b)は、元(a,b)がゲートG(i)に入力された際の出力値G(a,b)に対応する。図8Aおよび図8Bに例示するように、i≠n+uの場合、ゲートG(i)の出力ラベルL 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)」は「G(a,b)」を意味する(ステップS111)。 The label concealment unit 1181 refers to the circuit f stored in the storage unit 112 and uses the input keys K 0 A , K 1 A , K 0 B , K 1 B and the output label L i Gi (a, b) . , For all (a, b) ε {0,1} 2 , the concealment output label as
Figure 2017003961

Set and output. That is, the label concealment unit 1181 conceals the output label L i Gi (a, b) with the value H ′ (K a A | K b B ) corresponding to the input keys K a A and K b B. The concealment output labels b 0 , b 1 , b 2 , b 3 are obtained. The output label L i Gi (a, b) corresponds to the output value G i (a, b) when the element (a, b) is input to the gate G (i). As illustrated in FIGS. 8A and 8B, when i ≠ n + u, the output label L i Gi (a, b) of the gate G (i) inputs the output wire W (i) of the gate G (i). Whether the input label LA (ω) a ′ of the other gate G (ω) as the wire W (A (ω)) (where a′∈ {0, 1}), the output wire W (i) is The input label L B (ω) b ′ of the other gate G (ω) as the input wire W (B (ω)) (where b′∈ {0, 1}). The superscript “Gi (a, b)” means “G i (a, b)” (step S111).

出力ラベルテーブル設定部1182は、秘匿化出力ラベルb,b,b,bを用い、秘匿化出力ラベルL[i]:=(b,b,b,b)を得て出力する(ステップS112)。 The output label table setting unit 1182 uses the concealment output labels b 0 , b 1 , b 2 , and b 3 and uses the concealment output labels L [i]: = (b 0 , b 1 , b 2 , b 3 ). Obtain and output (step S112).

制御部113は、i=n+1であるかを判定する(ステップS113)。i=n+1でなければ、制御部113は、i:=i−1とし(i−1を新たなiとし)、処理をステップS104に戻す(ステップS114)。一方、i=n+1であれば、制御部113はステップS115の処理を実行させる。   The control unit 113 determines whether i = n + 1 (step S113). If i = n + 1 is not satisfied, the control unit 113 sets i: = i−1 (i−1 is a new i), and returns the process to step S104 (step S114). On the other hand, if i = n + 1, the control unit 113 causes the process of step S115 to be executed.

ステップ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 table setting unit 1174 outputs L [n + 1], ..., L [n + u] as L: = {L [n + 1], ..., L [n + u]} ( Step S115). Next, the input key / label table setting unit 1174 receives e [A (3n / 2 + 1)], e [B (3n / 2 + 1)],..., E [A (n + u)], e [B (n + u) )] Is output as a table e: = {e [A (3n / 2 + 1)], e [B (3n / 2 + 1)],..., E [A (n + u)], e [B (n + u)]} (Step S116). The communication unit 1111 receives R, L, ι, e, and λ n + u as inputs, and outputs the secret circuit F: = (R, L, ι), table e, and label decryption key d: = λ n + u . However, ι is information for specifying E ι . The secret circuit F: = (R, L, ι), the table e, and the label decryption key d: = λ n + u are transmitted to the secret calculation device 12, received by the communication unit 1211 of the secret calculation device 12 (FIG. 3), and stored. The data is stored in the unit 122 (step S117).

秘匿計算装置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 table setting unit 1174 of the secret calculation device 11 (FIG. 2)
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}の各ビットをx∈{0,1}(ただし、j∈{1,...,n})と表記する。秘匿計算装置11(図2)の入力部1112には、集合{x,...,x}の真部分集合sub:={xu(1),...,xu(P)}⊂{x,...,x}が入力される。ただし、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 input unit 1112 of the secret computing device 11 (FIG. 2) includes a true subset sub 1 of the set {x 1 ,..., X n }: = {x u (1) ,. )} ⊂ {x 1, ... , x n} is input. However, P is an integer greater than or equal to 1, and is {u (1),..., U (P)} ⊂ {1,..., N} (step S121). The control unit 113 sets p: = 1 (step S122).

分離部1192は、記憶部112に格納されたe[u(p)]を抽出し、e[u(p)]=(e,e):=(K u(p)|L u(p),K u(p)|L u(p))に分離(パース)して出力する(ステップS123)。 The separation unit 1192 extracts e [u (p)] stored in the storage unit 112 and e [u (p)] = (e 0 , e 1 ): = (K 0 u (p) | L 0. u (p), K 1 u (p) | L 1 u (p)) in the separation (Perth) and outputs (step S123).

符号化部1191は、xu(1)および(e,e)を用い、

Figure 2017003961

を得て出力する(ステップS124)。 The encoding unit 1191 uses x u (1) and (e 0 , e 1 ),
Figure 2017003961

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 control unit 113 determines whether p = P (step S126). If p = P is not satisfied, the control unit 113 sets p: = p + 1 (p + 1 is a new p), and returns the process to step S123 (step S125). On the other hand, if p = P, X [x u (1) ],..., X [x u (P) ] is sent to the communication unit 1111, and the communication unit 1111 receives X [x u (1) ], ..., X [x u (P) ] are transmitted to the secure computing device 12 (step S127).

X[xu(1)],...,X[xu(P)]は秘匿計算装置12(図3)の通信部1211で受信され、記憶部122に格納される。なお、秘匿計算装置12はe[1],...,e[n]を保持していないため、X[xu(p)](ただし、p∈{1,...,P})に対応するxの値を知ることはできない(ステップS128)。 X [x u (1) ],..., X [x u (P) ] are received by the communication unit 1211 of the secure computing device 12 (FIG. 3) and stored in the storage unit 122. Since the secret calculation device 12 does not hold e [1],..., E [n], X [x u (p) ] (where p∈ {1,..., P}) It is impossible to know the value of x j corresponding to (step S128).

秘匿計算装置12(図3)の入力部1212には、集合{x,...,x}の真部分集合sub:={xv(1),...,xv(Q)}⊂{x,...,x}が入力される。ただし、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 input unit 1212 of the secret calculation device 12 (FIG. 3) includes a true subset sub 2 of the set {x 1 ,..., X n }: = {x v (1) ,. )} ⊂ {x 1, ... , x n} is input. However, Q is an integer greater than or equal to 1, {v (1), ..., v (Q)} ⊂ {1, ..., n}, {1, ..., n} = { u (1), ..., u (P)} ∪ {v (1), ..., v (Q)}. For example, {u (1),..., U (P)} ∩ {v (1),..., V (Q)} is an empty set, but this may not be an empty set (step S129). ). The control unit 113 sets q: = 1 (step S130).

紛失通信処理部124は、xv(q)を用い、通信部1211および秘匿計算装置11(図2)の通信部1111を通じ、紛失通信処理部1193と紛失通信(OT:Oblivious transfer)を行い、xv(q)に対応する

Figure 2017003961

を得る。紛失通信処理部124は紛失通信処理部1193にxv(q)を開示することなく、紛失通信処理部1193は
Figure 2017003961

を紛失通信処理部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)を用いてeを暗号化した暗号文ENC(pk(0),e)およびpk(1)を用いてeを暗号化した暗号文ENC(pk(1),e)を紛失通信処理部124に送る。
(3)紛失通信処理部124は、秘密鍵sk(xv(q))を用いて暗号文ENC(pk(0),e)およびENC(pk(1),e)を復号する。これらのうち、ENC(pk(v(q)),ev(q))のみが正しく復号され、X[v(q)]:=ev(q)が得られる(ステップS131)。 The lost communication processing unit 124 uses xv (q ) to perform lost communication (OT: Oblivious transfer) with the lost communication processing unit 1193 through the communication unit 1211 and the communication unit 1111 of the secret computing device 11 (FIG. 2). corresponding to x v (q)
Figure 2017003961

Get. The lost communication processing unit 124 does not disclose xv (q) to the lost communication processing unit 1193, and the lost communication processing unit 1193
Figure 2017003961

Is not disclosed to the lost communication processing unit 124, and the lost communication processing unit 124 obtains X [v (q)]. What is necessary is just to use a well-known method for lost communication (for example, refer nonpatent literature 1). An example of this lost communication is shown.
(1) loss public key pk communication processing unit 124 corresponding to x v (q) (x v (q)) and a private key sk (x v (q)) and random PK (x v (q) (+ ) 1) is generated and transmitted to the lost communication processing unit 1193.
(2) The lost communication processing unit 1193 uses the ciphertext ENC (pk (0), e 0 ) obtained by encrypting e 0 using pk (0) and the cipher obtained by encrypting e 1 using pk (1). The sentence ENC (pk (1), e 1 ) is sent to the lost communication processing unit 124.
(3) The lost communication processing unit 124 decrypts the ciphertexts ENC (pk (0), e 0 ) and ENC (pk (1), e 1 ) using the secret key sk (x v (q) ). Of these, only ENC (pk (v (q)), ev (q) ) is correctly decoded, and X [v (q)]: = ev (q) is obtained (step S131).

制御部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 control unit 123 determines whether q = Q (step S132). If q = Q is not satisfied, the control unit 123 sets q: = q + 1 (q + 1 is set as a new q), and returns the process to step S131 (step S133). On the other hand, if q = Q, the control unit 123 stores X [ xv (1) ],..., X [ xv (Q) ] in the storage unit 122 (step S134).

<秘匿回路を用いた秘匿計算>
図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 separation unit 125 of the secret calculation device 12 (FIG. 3) reads the secret circuit F: = (R, L, ι) from the storage unit 122, separates it into R, L, and ι and outputs it (step). S141). The control unit 123 sets j: = 1 (step S142).

設定部126は、記憶部122からX[x]を読み込み、K|L:=X[x]となる入力鍵および入力ラベルLを得て出力する。入力鍵Kおよび入力ラベルLはxに対応する。すなわち、x=0の場合にはK:=K かつL:=L であり、x=1の場合にはK=K かつL:=L である(ステップS143)。制御部123はj=nであるかを判定する(ステップS144)。j=nでなければ、制御部123はj:=j+1とし(j+1を新たなjとし)、処理をステップS143に戻す(ステップS145)。一方、j=nであれば、制御部123はi:=n+1とする(ステップS146)。 The setting unit 126 reads X [x j ] from the storage unit 122, obtains and outputs an input key j and an input label L j that satisfy K j | L j : = X [x j ]. The input key K j and the input label L j correspond to x j . That is, when x j = 0, K j : = K 0 j and L j : = L 0 j , and when x j = 1, K j = K 1 j and L j : = L 1 j (Step S143). The control unit 123 determines whether j = n (step S144). If j = n is not satisfied, the control unit 123 sets j: = j + 1 (j + 1 is a new j), and returns the process to step S143 (step S145). On the other hand, if j = n, the control unit 123 sets i: = n + 1 (step S146).

ステップS146の処理の後、入力ワイヤ設定部1271は、A:=A(i),B:=B(i)に設定する(ステップS147)。写像部1272は、入力ラベルL,Lを用い、x:=2L+Lを得(ステップS148)、R,i,xを用いてc:=H(R,i|x)を得て出力する(ステップS149)。制御部123はx=0であるかを判定する(ステップS150)。出力鍵生成部1273はιを用いてEiを特定し、x=0であればK,KおよびcからK:=Ei(K+2K)(+)cを得て出力し(ステップS151)、x≠0であればK,KおよびcからK:=Ei(K+K)(+)cを得て出力する(ステップS152)。すなわち、出力鍵生成部1273は、ゲートG(i)の入力値に応じた入力ラベルL,Lに対応する値cとゲートG(i)の入力鍵K,Kのトラップドア一方向性置換Eiによる像Ei(K+2K)またはEi(K+K)とに応じたゲートの出力鍵Kを得る。言い換えると、本形態の出力鍵生成部1273は、入力ラベルL,Lに対応する値cとゲートG(i)の入力鍵K,Kのトラップドア一方向性置換Eiによる像である値Ei(K+K)との排他的論理和をゲートG(i)の出力鍵Kとする。なお、図8Aおよび図8Bに例示するように、ゲートG(ν)の出力鍵Kν(ただし、ν∈{n+1,…,n+u−1})は、ゲートG(ν)の出力ワイヤW(ν)を入力ワイヤとする他のゲートG(ν’)の入力鍵KA(ν’)またはKB(ν’)である。 After the process of step S146, the input wire setting unit 1271 sets A: = A (i) and B: = B (i) (step S147). Mapping unit 1272, using the input label L A, L B, x: = give 2L A + L B (step S148), R, i, c x with x: = H (R, i | x) and Obtain and output (step S149). The control unit 123 determines whether x = 0 (step S150). The output key generation unit 1273 identifies E i using ι, and if x = 0, K i : = E i (K A + 2K B ) (+) c x is obtained from K A , K B and c x. If x ≠ 0, K i : = E i (K A + K B ) (+) c x is obtained from K A , K B and c x and output (step S 152). That is, the output key generation unit 1273 traps the value c x corresponding to the input labels L A and L B according to the input value of the gate G (i) and the input keys K A and K B of the gate G (i). obtain the output key K i of the gate corresponding to the image E i (K a + 2K B ) or E i (K a + K B ) by one-way permutation E i. In other words, the output key generation unit 1273 of the present embodiment uses the value c x corresponding to the input labels L A and L B and the trap door unidirectional replacement E i of the input keys K A and K B of the gate G (i). The exclusive OR with the value E i (K A + K B ) which is an image is set as the output key K i of the gate G (i). As illustrated in FIGS. 8A and 8B, the output key K ν (where ν∈ {n + 1,..., N + u−1}) of the gate G (ν) is the output wire W ( An input key K A (ν ′) or K B (ν ′) of another gate G (ν ′) using ν) as an input wire.

ラベル復元部1275は、記憶部122からLが含む秘匿化出力ラベルL[i]を読み込み、L[i]:=(b,b,b,b)に分離する(ステップS153)。ラベル復元部1275は、入力鍵K,K、および秘匿化出力ラベルbを用い、以下のように出力ラベルLを得て出力する。
:=H’(K|K)(+)b (2)
すなわち、ラベル復元部1275は、ゲートG(i)の入力値に応じた秘匿化出力ラベルbおよびゲートG(i)の入力鍵K,Kを用い、ゲートG(i)の出力値に応じた出力ラベルLを得て出力する。なお、図8Aおよび図8Bに例示するように、ゲートG(ν)の出力ラベルLν(ただし、ν∈{n+1,…,n+u−1})は、ゲートG(ν)の出力ワイヤW(ν)を入力ワイヤとする他のゲートG(ν’)の入力ラベルLA(ν’)またはLB(ν’)である(ステップS154)。
The label restoration unit 1275 reads the concealment output label L [i] included in L from the storage unit 122 and separates it into L [i]: = (b 0 , b 1 , b 2 , b 3 ) (step S153). . Label restoration unit 1275, an input key K A, K B, and using a concealed output label b x, and outputs the resulting output label L i as follows.
L i : = H ′ (K A | K B ) (+) b x (2)
That is, the label recovery unit 1275, using the input key K A, K B of the gate G concealed output label corresponding to the input values of (i) b x and the gate G (i), the output value of the gate G (i) An output label L i corresponding to is obtained and output. As illustrated in FIGS. 8A and 8B, the output label L ν (where ν∈ {n + 1,..., N + u−1}) of the gate G (ν) is the output wire W ( a 'input label L a of) ([nu' other gate G that receives wires ν) (ν) or L B (ν ') (step S154).

制御部123はi=n+uであるかを判定する(ステップS155)。i=n+uでなければ、制御部123はi:=i+1とし(i+1を新たなiとし)、処理をステップS147に戻す(ステップS156)。   The controller 123 determines whether i = n + u (step S155). If i = n + u is not satisfied, the control unit 123 sets i: = i + 1 (i + 1 is set as a new i), and returns the process to step S147 (step S156).

一方、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 value generation unit 128 uses the output label L n + u and the label decryption key d: = λ n + u read from the storage unit 122 to obtain Y: = L n + u (+) λ n + u . (Step S157).

<第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 secure calculation system 2 of this embodiment includes a secure calculation device 21 that generates a secure circuit, and a secure calculation device 22 that performs a secure calculation using the secure circuit.

<秘匿計算装置21>
図9に例示するように、本形態の秘匿計算装置21は、通信部1111、入力部1112、記憶部112、制御部113、初期設定部114、入力ワイヤ設定部115、置換ビット設定部1161、入力ラベル設定部1162、補完部2171a,2171b、逆像部2172、入力鍵生成部1173、入力鍵・ラベルテーブル設定部1174、ラベル秘匿化部1181、出力ラベルテーブル設定部1182、符号化部1191、分離部1192、および紛失通信処理部1193を有する。
<Secret calculation device 21>
As illustrated in FIG. 9, the secure calculation device 21 according to the present embodiment includes a communication unit 1111, an input unit 1112, a storage unit 112, a control unit 113, an initial setting unit 114, an input wire setting unit 115, a replacement bit setting unit 1161, Input label setting unit 1162, complementing units 2171a and 2171b, inverse image unit 2172, input key generating unit 1173, input key / label table setting unit 1174, label concealing unit 1181, output label table setting unit 1182, encoding unit 1191, A separation unit 1192 and a lost communication processing unit 1193 are included.

<秘匿計算装置22>
図10に例示するように、本形態の秘匿計算装置22は、通信部1211、入力部1212、記憶部122、制御部123、紛失通信処理部124、分離部125、設定部126、入力ワイヤ設定部1271、写像部2272、出力鍵生成部2273、補完部2274、およびラベル復元部1275、および出力値生成部128を有する。
<Secret calculation device 22>
As illustrated in FIG. 10, the secure calculation device 22 of this embodiment includes a communication unit 1211, an input unit 1212, a storage unit 122, a control unit 123, a lost communication processing unit 124, a separation unit 125, a setting unit 126, and an input wire setting. A unit 1271, a mapping unit 2272, an output key generation unit 2273, a complement unit 2274, a label restoration unit 1275, and an output value generation unit 128.

<前処理>
第1実施形態と同じである。
<Pretreatment>
The same as in the first embodiment.

<秘匿回路の生成処理>
図11を用い、本形態の秘匿回路の生成処理を説明する。
まず、秘匿計算装置21(図9)が第1実施形態で説明したステップS100からS106の処理を実行する。次に、補完部2171aが、鍵Rおよび出力鍵K を用い、(4,H(R,i|4)),(5,H(R,i|5)),(−1,K )を多項式補完して、これら3点を通る2次多項式Pを得て出力する(図13)。すなわち、補完部2171aは、ゲートG(i)に応じた複数の点(4,H(R,i|4)),(5,H(R,i|5))、ならびに、所定値(−1)と、出力値(0,1)の何れかである第1値(0)に応じた出力鍵K とからなる点(−1,K )によって定まる第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 complementing unit 2171a uses the key R and the output key K 0 i , and (4, H (R, i | 4)), (5, H (R, i | 5)), (-1, K 0 i ) is complemented by a polynomial, and a quadratic polynomial P passing through these three points is obtained and output (FIG. 13). That is, the complementing unit 2171a includes a plurality of points (4, H (R, i | 4)), (5, H (R, i | 5)) corresponding to the gate G (i), and a predetermined value (− 1) and a first polynomial expression (P) determined by a point (−1, K 0 i ) consisting of an output key K 0 i corresponding to the first value (0) which is one of the output values (0, 1) And output. P corresponds to the case where the value of the output wire of the gate G (i) is 0 (step S2071).

補完部2171bが、鍵Rおよび出力鍵K を用い、(4,H(R,i|4)),(5,H(R,i|5)),(−1,K )を多項式補完して、これら3点を通る2次多項式Qを得て出力する(図13)。すなわち、補完部2171bは、ゲートG(i)に応じた複数の点(4,H(R,i|4)),(5,H(R,i|5))、ならびに、所定値(−1)と、出力値(0,1)の何れかである第2値(1)に応じた出力鍵K とからなる点(−1,K )によって定まる第2整式(Q)を得て出力する。QはゲートG(i)の出力ワイヤの値が1である場合に対応する(ステップS2072)。 The complementing unit 2171b uses the key R and the output key K 1 i , and (4, H (R, i | 4)), (5, H (R, i | 5)), (-1, K 1 i ). To obtain a quadratic polynomial Q that passes through these three points and outputs it (FIG. 13). That is, the complementing unit 2171b includes a plurality of points (4, H (R, i | 4)), (5, H (R, i | 5)) corresponding to the gate G (i), and a predetermined value (− 1) and a second integer (Q) determined by a point (−1, K 1 i ) consisting of an output key K 1 i corresponding to the second value (1) which is one of the output values (0, 1 ) And output. Q corresponds to the case where the value of the output wire of the gate G (i) is 1 (step S2072).

逆像部2172が、記憶部112に格納された回路fを参照し、Eι,tι,L ,L ,P,Qを用い、すべての(a,b)∈{0,1}について、

Figure 2017003961

を得て出力する。すなわち、逆像部2172は、ゲートG(i)の定義域の元(a,b)のそれぞれに応じた入力ラベルL ,L に対応する値2L +L と、元(a,b)がゲートG(i)に入力された際の出力値G(a,b)のそれぞれに応じた出力鍵K またはK と(上述のようにPは出力鍵K に応じて定まり、Qは出力鍵K に応じて定まる)、に応じた像
Figure 2017003961

のトラップドア一方向性置換Eιによる逆像を得て出力する。言い換えると、逆像部2172は、ゲートG(i)に入力された際の出力値G(a,b)が第1値(0)となる元(a,b)に応じた入力ラベルL ,L に対応する値2L +L を第1整式(P)に代入して得られる値である像
Figure 2017003961

のトラップドア一方向性置換Eιによる逆像、および、ゲートG(i)に入力された際の出力値G(a,b)が第2値(1)となる元(a,b)に応じた入力ラベルL ,L に対応する値2L +L を第2整式(Q)に代入して得られる値である像
Figure 2017003961

のトラップドア一方向性置換による逆像を得る。図13に、ゲートG(i)がANDゲートであり、λ=λ=0である場合の像P(0),P(1),P(2),Q(3)を例示する(ステップS208)。 The inverse image unit 2172 refers to the circuit f stored in the storage unit 112, uses E ι , t ι , L a A , L b B , P, Q, and uses all (a, b) ε {0, 1} For 2 ,
Figure 2017003961

And output. That is, the inverse image unit 2172 has a value 2L a A + L b B corresponding to the input labels L a A and L b B corresponding to the respective elements (a, b) of the domain of the gate G (i), The output key K 0 i or K 1 i corresponding to each of the output values G i (a, b) when (a, b) is input to the gate G (i) (P is the output key as described above) Depending on K 0 i and Q is determined according to the output key K 1 i )
Figure 2017003961

A reverse image of the trap door unidirectional replacement E ι is obtained and output. In other words, the inverse image unit 2172 has the input label L corresponding to the element (a, b) whose output value G i (a, b) is the first value (0) when input to the gate G (i). a a, the image is a value obtained values corresponding to L b B 2L a a + L b B are substituted into the first polynomial (P)
Figure 2017003961

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 value 2L a A + L b B corresponding to the input labels L a A and L b B according to the second integer (Q)
Figure 2017003961

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 secret calculation devices 11 and 12 are replaced with the secret calculation devices 21 and 22.

<回路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およびK,KからV:=(x,Ei(K+2K))を得て出力し(ステップS251)、x≠0であれば、xおよびK,KからV:=(x,Ei(K+K))を得て出力する(ステップ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=2L+LおよびゲートG(i)の入力鍵のトラップドア一方向性置換による像である値Ei(K+2K)またはEi(K+2K)からなる点Vによって定まる整式Uを得る。例えば、図13の例ではx=2L+L=3のときにU=Qとなり、x=0,1,2のときにU=Pとなる(ステップS253)。出力鍵生成部2273は、出力鍵K:=U(−1)を得て出力する。すなわち、出力鍵生成部2273は、整式Uに所定値(−1)を代入してゲートG(i)の出力鍵Kを得て出力する。言い換えると、出力鍵生成部2273は、ゲートG(i)の入力値(a,b)に応じた入力ラベルL,Lに対応する値x=2L+LとゲートG(i)の入力鍵K,Kのトラップドア一方向性置換Eiによる像Ei(K+2K)とに応じたゲートG(i)の出力鍵Kを得て出力する(ステップ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 mapping unit 1272, the mapping unit 2272 executes the process of step S148. Thereafter, the complementing unit 2274 uses E to identify E i , and if x = 0, obtains V: = (x, E i (K A + 2K B )) from x and K A , K B and outputs it If x ≠ 0, V: = (x, E i (K A + K B )) is obtained and output from x and K A , K B (step S252). Next, the complementing unit 2274 uses R, i, and V and performs polynomial interpolation on (4, H (R, i | 4)), (5, H (R, i | 5)), V to obtain a quadratic order. A polynomial U is generated. That is, the complementing unit 2274 supports a plurality of points (4, H (R, i | 4)), (5, H (R, i | 5)) corresponding to the gate G (i), and input labels. A point V consisting of a value E i (K A + 2K B ) or E i (K A + 2K B ) which is an image obtained by trap door unidirectional replacement of the input key x = 2L A + L B and the input key of the gate G (i) An equation U determined by is obtained. For example, in the example of FIG. 13, U = Q when x = 2L A + L B = 3, and U = P when x = 0, 1, 2 (step S253). The output key generation unit 2273 obtains and outputs the output key K i : = U (−1). That is, the output key generation unit 2273 obtains and outputs the output key K i of the gate G (i) by substituting the predetermined value (−1) into the equation U. In other words, the output key generating unit 2273, the input value of the gate G (i) of (a, b) input label according to the L A, a value corresponding to L B x = 2L A + L B and the gate G (i) input key K a, the trapdoor one-way permutation E i image E i (K a + 2K B ) by the K B and obtained outputs an output key K i of the gate G (i) corresponding to (step S254).

それ以降の処理は、第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 secure calculation system 3 of this embodiment includes a secure calculation device 31 that generates a secure circuit, and a secure calculation device 32 that performs a secure calculation using the secure circuit.

<秘匿計算装置31>
図2に例示するように、本形態の秘匿計算装置31は、通信部1111、入力部1112、記憶部112、制御部113、初期設定部314、入力ワイヤ設定部315、置換ビット設定部1161、入力ラベル設定部1162、写像部3171、逆像部3172、入力鍵生成部3173、入力鍵・ラベルテーブル設定部3174、ラベル秘匿化部3181、出力ラベルテーブル設定部3182、符号化部1191、分離部1192、紛失通信処理部1193、および秘匿回路構成部3183を有する。
<Secret calculation device 31>
As illustrated in FIG. 2, the secure calculation device 31 of this embodiment includes a communication unit 1111, an input unit 1112, a storage unit 112, a control unit 113, an initial setting unit 314, an input wire setting unit 315, a replacement bit setting unit 1161, Input label setting unit 1162, mapping unit 3171, inverse image unit 3172, input key generation unit 3173, input key / label table setting unit 3174, label concealment unit 3181, output label table setting unit 3182, encoding unit 1191, separation unit 1192, a lost communication processing unit 1193, and a secret circuit configuration unit 3183.

<秘匿計算装置32>
図3に例示するように、本形態の秘匿計算装置32は、通信部1211、入力部1212、記憶部122、制御部123、紛失通信処理部124、分離部125、設定部126、入力ワイヤ設定部1271、写像部3272、出力鍵生成部1273、復元部3273、分離部1274、およびラベル復元部1275、および出力値生成部128を有する。
<Secret calculation device 32>
As illustrated in FIG. 3, the secure calculation device 32 of this embodiment includes a communication unit 1211, an input unit 1212, a storage unit 122, a control unit 123, a lost communication processing unit 124, a separation unit 125, a setting unit 126, and an input wire setting. A unit 1271, a mapping unit 3272, an output key generation unit 1273, a restoration unit 3273, a separation unit 1274, a label restoration unit 1275, and an output value generation unit 128.

<前処理>
第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 storage unit 112 and that a plurality of general gates are concealed. Others are the same as the first embodiment.

図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’(S)をANDゲートとし、G’(S+1),…,G’(S)をORゲートとし、G’(S+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’(I(A’(s)),I(B’(s)))∈{0,1}が決まる。すなわち、I(A’(s))およびI(B’(s))に対するゲートG’(s)での論理演算結果がG’(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の有限体Fの元をFの元に写すトラップドア一方向性置換Eι:F→Fおよびそのトラップドアtιを選択する。また初期設定部314は、Hの鍵Rをランダム(例えば、一様ランダム)に選択して出力する(ステップS100)。次に、制御部113がs:=Sに設定する(ステップS303)。 First, the initial setting unit 314 of the concealment computing device 31 (FIG. 2) is of order q finite field F q of based on F trapdoor one-way permutation copy the original q E iota of: F qF q and Select trapdoor t ι . The initial setting unit 314 selects and outputs the H key R at random (for example, uniformly random) (step S100). Next, the control unit 113 sets s: = S (step S303).

入力ワイヤ設定部315は、A:=A’(s),B:=B’(s)に設定する(ステップS304)。   The input wire setting unit 315 sets A: = A ′ (s) and B: = B ′ (s) (step S304).

初期設定部314は、有限体Fの2個の元をランダム(例えば、一様ランダム)に選択し、それらを出力鍵K ,K ∈Fとして設定して出力する。ただし、出力鍵K はG’(I(A’(s)),I(B’(s)))=0に対応し、出力鍵K はG’(I(A’(s)),I(B’(s)))=1に対応する(ステップS301)。 The initial setting unit 314 randomly selects two elements of the finite field F q (for example, uniform random), sets them as output keys K 0 s and K 1 s ∈ F q , and outputs them. However, the output key K 0 s corresponds to G ′ s (I (A ′ (s)), I (B ′ (s))) = 0, and the output key K 1 s is G ′ s (I (A ′). (S)), I (B ′ (s))) = 1 (step S301).

さらに初期設定部314は、置換ビットλ、出力ラベルL :=λ,L :=λ(+)1を設定する。出力ラベルL はG’(I(A’(s)),I(B’(s)))=0に対応し、出力ラベルL はG’(I(A’(s)),I(B’(s)))=1に対応する。すなわち、出力ラベルL は出力鍵K に対応し、出力鍵K は出力ラベルL に対応する。λ=0であってもよいし、λ=1であってもよい(ステップS305)。 Further, the initial setting unit 314 sets the replacement bit λ s , output label L 0 s : = λ s , L 1 s : = λ s (+) 1. The output label L 0 s corresponds to G ′ s (I (A ′ (s)), I (B ′ (s))) = 0, and the output label L 1 s is G ′ s (I (A ′ (s )), I (B ′ (s))) = 1. That is, the output label L 0 s corresponds to the output key K 0 s , and the output key K 1 s corresponds to the output label L 1 s . λ s = 0 or λ s = 1 may be set (step S305).

置換ビット設定部1161は、入力ワイヤW(A),W(B)に対し、それぞれ置換ビットλ,λ∈{0,1}をランダムに選択する(ステップS105)。入力ラベル設定部1162は、すべての(a,b)∈{0,1}について、以下のように入力ラベルL ,L ∈{0,1}を設定する。ただし、a∈{0,1}は入力ワイヤW(A)の入力値であり、b∈{0,1}は入力ワイヤW(B)の入力値である(ステップS106)。
:=λ(+)a
:=λ(+)b
The replacement bit setting unit 1161 randomly selects replacement bits λ A and λ B ε {0, 1} for the input wires W (A) and W (B) (step S105). The input label setting unit 1162 sets the input labels L a A and L b B ε {0, 1} for all (a, b) ε {0, 1} 2 as follows. However, aε {0,1} is an input value of the input wire W (A), and bε {0,1} is an input value of the input wire W (B) (step S106).
L a A : = λ A (+) a
L b B : = λ B (+) b

写像部3171が、鍵Rを用い、x=0,1,2,3およびsについてc:=H(R,s|x)を生成して出力する(ステップS307)。 The mapping unit 3171 generates and outputs c x : = H (R, s | x) for x = 0, 1, 2, 3 and s using the key R (step S307).

逆像部3172が、Eι,tι,L ,L ,K ,K を用い、すべての(a,b)∈{0,1}について、逆像

Figure 2017003961

を得て出力する(ステップS308)。 The inverse image unit 3172 uses E ι , t ι , L a A , L b B , K 0 i , K 1 i , and for all (a, b) ε {0, 1} 2
Figure 2017003961

Is obtained and output (step S308).

入力鍵生成部3173は、ステップS308で得られた逆像P,P,P,Pを用い、以下の連立方程式を解いて、a,b∈{0,1}のそれぞれに応じた入力鍵K ,K ,K ,K ∈Fを得て出力する(ステップS309)。

Figure 2017003961
The input key generation unit 3173 solves the following simultaneous equations using the inverse images P 0 , P 1 , P 2 , and P 3 obtained in step S308, and responds to each of a, b∈ {0, 1}. The input keys K 0 A , K 1 A , K 0 B , and K 1 B εF q are obtained and output (step S309).
Figure 2017003961

ラベル秘匿化部3181は、入力鍵K ,K ,K ,K および出力ラベルL G’s(a,b)を用い、すべての(a,b)∈{0,1}について、以下のように秘匿化出力ラベル

Figure 2017003961

を設定して出力する。出力ラベルL G’s(a,b)は、元(a,b)がゲートG’(s)に入力された際の出力値G’(a,b)に対応する。なお、上付き添え字の「G’s(a,b)」は「G’(a,b)」を意味する(ステップS311)。 The label concealment unit 3181 uses the input keys K 0 A , K 1 A , K 0 B , K 1 B and the output label L s G ′ s (a, b) , and all (a, b) ε {0, 1 } For 2 , the concealment output label as follows
Figure 2017003961

Set and output. The output label L s Gs (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は、秘匿化出力ラベルb,b,b,bを用い、秘匿化出力ラベルL[s]:=(b,b,b,b)を得て出力する(ステップS312)。 The output label table setting unit 3182 uses the concealment output labels b 0 , b 1 , b 2 , and b 3 and uses the concealment output labels L [s]: = (b 0 , b 1 , b 2 , b 3 ). Obtain and output (step S312).

入力鍵・ラベルテーブル設定部3174は、入力鍵K ,K ,K ,K 、入力ラベルL ,L ,L ,L 、出力鍵K ,K 、出力ラベルL ,L 、および秘匿化出力ラベルL[s]を入力とし、ゲートをG’(s)に対して、(G’(s);K |L ,K |L ,K |L ,K |L ,K |L ,K |L ,L[s])を設定し、記憶部113に格納する(ステップS3121)。 The input key / label table setting unit 3174 includes input keys K 0 A , K 1 A , K 0 B , K 1 B , input labels L 0 A , L 1 A , L 0 B , L 1 B , and an output key K s. 0 , K s 1 , output labels L 0 s , L 1 s , and concealed output label L [s] are input, and the gate is set to G ′ (s) with (G ′ (s); K 0 A | L 0 A, K 1 A | L 1 A, K 0 B | L 0 B, K 1 B | L 1 B, K 0 s | L 0 s, K 1 s | L 1 s, L [s]) Is stored in the storage unit 113 (step S3121).

制御部113は、s=1であるかを判定する(ステップS3092)。s=1でなければ、制御部113は、s:=s−1とし(s−1を新たなsとし)、処理をステップS304に戻す(ステップS3093)。一方、s=1であれば処理を終える。   The control unit 113 determines whether s = 1 (step S3092). If not s = 1, the control unit 113 sets s: = s-1 (s-1 is set as a new s), and returns the process to step S304 (step S3093). On the other hand, if s = 1, the process ends.

<秘匿回路の生成処理>
図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 calculation device 31 and stored in the storage unit 112. Thereafter, first, the control unit 113 sets i: = n + u (step S303).

入力ワイヤ設定部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は、以下のようにK ,L ,K ,L ,K ,L ,K ,L ,K ,L ,K ,L ,L[i]を設定する(ステップS3073)。
:=K A(s’),L :=L A(s’)
:=K A(s’),L :=L A(s’)
:=K B(s’),L :=L B(s’)
:=K B(s’),L :=L B(s’)
:=K s’,L :=L s’
:=K s’,L :=L s’
L[i]:=L[s’]
The input wire setting unit 315 sets A: = A (i) and B: = B (i) (step S104). The concealment circuit configuration unit 3183 refers to the concealment target circuit f stored in the storage unit 112, and performs one logical operation that is the same as the gate G (i) εG set constituting the circuit f. ') (Where s'ε {1,..., S}) is selected (step S3071), and a mapping s ′ = map (i) that maps i to s ′ is set. map may be a table that associates s ′ with i, or may be a function that obtains s ′ from i (step S3072). Further, the secret circuit configuration unit 3183 is configured as follows: K 0 A , L 0 A , K 1 A , L 1 A , K 0 B , L 0 B , K 1 B , L 1 B , K 0 i , L 0 i , K 1 i , L 0 i , and L [i] are set (step S3073).
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は、入力鍵K ,K ,K ,K および入力ラベルL ,L ,L ,L を入力とし、Aに対してテーブルe[A]:=(K |L ,K |L )を設定し、Bに対してテーブルe[B]:=(K |L ,K |L )を設定して出力する(ステップS310)。 The input key / label table setting unit 3174 receives the input keys K 0 A , K 1 A , K 0 B , K 1 B and the input labels L 0 A , L 1 A , L 0 B , L 1 B, and inputs A table e [a] with respect to: = (K 0 a | L 0 a, K 1 a | L 1 a) set the table e [B] with respect to B: = (K 0 B | L 0 B , K 1 B | L 1 B ) is set and output (step S310).

制御部113は、i=n+1であるかを判定する(ステップS113)。i=n+1でなければ、制御部113は、i:=i−1とし(i−1を新たなiとし)、処理をステップS104に戻す(ステップS114)。一方、i=n+1であれば、制御部113はステップS313の処理を実行させる。   The control unit 113 determines whether i = n + 1 (step S113). If i = n + 1 is not satisfied, the control unit 113 sets i: = i−1 (i−1 is a new i), and returns the process to step S104 (step S114). On the other hand, if i = n + 1, the control unit 113 causes the process of step S313 to be executed.

ステップ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’)の出力鍵K i’を共通鍵として用い、共通鍵暗号方式に則って、ゲートG(i”)の入力鍵K A(i”)を暗号化し、暗号文E(i”,c):=Enc(K i’,K A(i”))を得て出力する。さらにこの場合、秘匿回路構成部3183は、ゲートG(i’)の出力ラベルL i’を共通鍵として用い、共通鍵暗号方式に則って、ゲートG(i”)の入力ラベルL A(i”)を暗号化し、暗号文EL(i”,c):=Enc(L i’,L A(i”))を得て出力する。
(B)ゲートG(i’)∈Gsetの出力ワイヤW(i’)が他のゲートG(i”)∈Gset(ただし、i”≠i’かつi”∈{n+1,...,n+u})の入力ワイヤW(B(i”))である場合、秘匿回路構成部3183は、ゲートG(i’)の出力鍵K i’を共通鍵として用い、共通鍵暗号方式に則って、ゲートG(i”)の入力鍵K B(i”)を暗号化し、暗号文E(i”,c):=Enc(K i’,K A(i”))を得て出力する。さらにこの場合、秘匿回路構成部3183は、ゲートG(i’)の出力ラベルL i’を共通鍵として用い、共通鍵暗号方式に則って、ゲートG(i”)の入力ラベルL B(i”)を暗号化し、暗号文EL(i”,c):=Enc(L i’,L B(i”))を得て出力する(ステップS313)。
In step S313, the concealment circuit configuration unit 3183 refers to the concealment target circuit f stored in the storage unit 112, and all cε {0, 1}, i′ε {n + 1,. . . , N + u−1}, the following encryption processing is performed.
(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 circuit constituting unit 3183 uses the output key K c i ′ of the gate G (i ′) as a common key, and uses the common key encryption. In accordance with the scheme, the input key K c A (i ″) of the gate G (i ″) is encrypted, and the ciphertext E A (i ″, c): = Enc (K c i ′ , K c A (i ″) ) ) Is obtained and output. Furthermore, in this case, the concealment circuit configuration unit 3183 uses the output label L c i ′ of the gate G (i ′) as a common key, and in accordance with the common key cryptosystem, the input label L c A of the gate G (i ″). (I ″) is encrypted, and the ciphertext EL A (i ″, c): = Enc (L c i ′ , L c A (i ″) ) is obtained and output.
(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 circuit constituting unit 3183 uses the output key K c i ′ of the gate G (i ′) as a common key, and uses the common key encryption method. Accordingly, the input key K c B (i ″) of the gate G (i ″) is encrypted, and the ciphertext E B (i ″, c): = Enc (K c i ′ , K c A (i ″) ) And output. Furthermore, in this case, the concealment circuit configuration unit 3183 uses the output label L c i ′ of the gate G (i ′) as a common key, and in accordance with the common key cryptosystem, the input label L c B of the gate G (i ″). (I ″) is encrypted, and the ciphertext EL B (i ″, c): = Enc (L c i ′ , L c B (i ″) ) is obtained and output (step S313).

その後、第1実施形態で説明したステップS115およびS116の処理が行われる。次に、通信部1111は、秘匿回路F:=(R,L,ι)、テーブルe、ラベル復号鍵d:=λn+u、写像map、暗号化テーブル{(E(i”,0)|L i’),(E(i”,1)|L i’),(EL(i”,0)|L i’),(EL(i”,1)|L i’)}or{(E(i”,0)|L i’),(E(i”,1)|L i’),(EL(i”,0)|L i’),(EL(i”,1)|L 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 communication unit 1111 includes the concealment circuit F: = (R, L, ι), the table e, the label decryption key d: = λ n + u , the mapping map, and the encryption table {(E A (i ″, 0) | L 0 i ′ ), (E A (i ″, 1) | L 1 i ′ ), (EL A (i ″, 0) | L 0 i ′ ), (EL A (i ″, 1) | L 1 i ′ )} or {(E B (i ″, 0) | L 0 i ′ ), (E B (i ″, 1) | L 1 i ′ ), (EL B (i ″, 0) | L 0 i ′ ), (EL B (i ″, 1) | L 1 i ′ )} is output. However, ι is information for specifying E ι . These are transmitted to the secure calculation device 32, received by the communication unit 1211 of the secure calculation device 32 (FIG. 3), and stored in the storage unit 122 (step S317). Thereafter, the process of step S118 described in the first embodiment is performed, and the process ends.

<回路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を用いてc:=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 secret calculation device 12, the secret calculation device 32 (FIG. 3) executes the processing of steps S141 to S148 described in the first embodiment. Next, the mapping unit 3272 obtains and outputs c x : = H (R, map (i) | x) using R, i, x, and map (step S349). Next, instead of the secret calculation device 12, the secret calculation device 32 executes the processing from step S150 to S155 described in the first embodiment.

ステップS155でi=n+uでなければ、復元部3273が以下のように(KA(i”),LA(i”))または(KB(i”),LB(i”))を得て出力する。
(A)ゲートG(i)の出力ワイヤW(i)が他のゲートG(i”)の入力ワイヤW(A(i”))である場合、復元部3273は、K,L,E(i”),EL(i”)から
A(i”):=Dec(K,E(i”))
A(i”):=Dec(L,EL(i”))
を得て出力する。
(B)ゲートG(i)の出力ワイヤW(i)が他のゲートG(i”)の入力ワイヤW(B(i”))である場合、復元部3273は、K,L,E(i”),EL(i”)から
B(i”):=Dec(K,E(i”))
B(i”):=Dec(L,EL(i”))
を得て出力する。
ただし、L=L の場合にE(i”)=E(i”,0)かつE(i”)=E(i”,0)であり、L=L の場合にE(i”)=E(i”,1)かつE(i”)=E(i”,1)である。Dec(α,β)は、αを共通鍵として用い、ステップS313と同じ共通鍵暗号方式に則り、暗号文βを復号して得られる値を意味する(ステップS3551)。その後、ステップS156の処理の後、ステップS147に戻る。
If i = n + u is not satisfied in step S155, the restoration unit 3273 performs (KA (i ") , LA (i") ) or (KB (i ") , LB (i") ) as follows. Output.
(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 restoration unit 3273 has K i , L i , E A (i ″), EL A (i ″) to K A (i ″) : = Dec (K i , E A (i ″))
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 restoration unit 3273 has K i , L i , From E B (i ″), EL B (i ″) to K B (i ″) : = Dec (K i , E B (i ″))
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 secure calculation system 4 of this embodiment includes a secure calculation device 41 that generates a secure circuit, and a secure calculation device 42 that performs a secure calculation using the secure circuit.

<秘匿計算装置41>
図9に例示するように、本形態の秘匿計算装置41は、通信部1111、入力部1112、記憶部112、制御部113、初期設定部314、入力ワイヤ設定部315、置換ビット設定部1161、入力ラベル設定部1162、補完部4171a,4171b、逆像部4172、入力鍵生成部3173、入力鍵・ラベルテーブル設定部3174、ラベル秘匿化部3181、出力ラベルテーブル設定部3182、符号化部1191、分離部1192、紛失通信処理部1193、および秘匿回路構成部3183を有する。
<Secret calculation device 41>
As illustrated in FIG. 9, the secure calculation device 41 of the present embodiment includes a communication unit 1111, an input unit 1112, a storage unit 112, a control unit 113, an initial setting unit 314, an input wire setting unit 315, a replacement bit setting unit 1161, Input label setting unit 1162, complementing units 4171a and 4171b, inverse image unit 4172, input key generating unit 3173, input key / label table setting unit 3174, label concealing unit 3181, output label table setting unit 3182, encoding unit 1191, It has a separation unit 1192, a lost communication processing unit 1193, and a secret circuit configuration unit 3183.

<秘匿計算装置42>
図10に例示するように、本形態の秘匿計算装置42は、通信部1211、入力部1212、記憶部122、制御部123、紛失通信処理部124、分離部125、設定部126、入力ワイヤ設定部1271、写像部4272、出力鍵生成部2273、補完部4274、復元部3273、ラベル復元部1275、および出力値生成部128を有する。
<Secret calculation device 42>
As illustrated in FIG. 10, the secure calculation device 42 according to the present embodiment includes a communication unit 1211, an input unit 1212, a storage unit 122, a control unit 123, a lost communication processing unit 124, a separation unit 125, a setting unit 126, and an input wire setting. A unit 1271, a mapping unit 4272, an output key generation unit 2273, a complement unit 4274, a restoration unit 3273, a label restoration unit 1275, and an output value generation unit 128.

<前処理>
第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 storage unit 112 and that a plurality of general gates are concealed. Others are the same as the first embodiment.

図18を用い、本形態で行う一般的なゲートの秘匿化処理を説明する。まず、秘匿計算装置41(図9)が、前述したステップS100,S303,S304,S301,S105,S305,S106の処理を実行する。次に補完部4171aが、鍵Rおよび出力鍵K を用い、(4,H(R,s|4)),(5,H(R,s|5)),(−1,K )を多項式補完して、これら3点を通る2次多項式Pを得て出力する(ステップS4071)。さらに補完部4171bが、鍵Rおよび出力鍵K を用い、(4,H(R,s|4)),(5,H(R,s|5)),(−1,K )を多項式補完して、これら3点を通る2次多項式Qを得て出力する(ステップS4072)。また逆像部2172が、Eι,tι,L ,L ,P,Qを用い、すべての(a,b)∈{0,1}について、

Figure 2017003961

を得て出力する(ステップ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 complement unit 4171a uses the key R and the output key K 0 s, and uses (4, H (R, s | 4)), (5, H (R, s | 5)), (−1, K 0. s ) is subjected to polynomial interpolation to obtain and output a quadratic polynomial P passing through these three points (step S4071). Further, the complementing unit 4171b uses the key R and the output key K 1 s, and uses (4, H (R, s | 4)), (5, H (R, s | 5)), (−1, K 1 s). ) To obtain a quadratic polynomial Q that passes through these three points and outputs it (step S4072). Further, the inverse image portion 2172 uses E ι , t ι , L a A , L b B , P, and Q, and for all (a, b) ε {0, 1} 2 ,
Figure 2017003961

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 secret calculation device 22, the secret calculation device 42 (FIG. 10) executes the processing of steps S141 to S148, S150, S251, and S252. Thereafter, the complementing unit 4274 uses R, i, V, and map, and (4, H (R, map (i) | 4)), (5, H (R, map (i) | 5)), V And a quadratic polynomial U is generated (step S453).

その後、ステップ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}について、

Figure 2017003961

を満たす秘匿化出力ラベル
Figure 2017003961

を設定してもよい。ただし、H”は任意長ビットの値をkビット(k>3)の値に写す一方向性写像H”:{0,1}→{0,1}である。一方向性写像の例はハッシュ関数である。共通鍵暗号関数または公開鍵暗号関数を一方向性写像として用いてもよい。一方向性写像は、関数であってもよいし、アルゴリズムであってもよい。また[α]βはαのβに対応するビット位置(例えば先頭からβ+1ビット目)のビット値を表す。すなわち、秘匿化出力ラベルが、入力鍵に対応するビット列の元(a,b)に応じたビット位置を表してもよい。この場合、ステップS154では、式(2)に代えて、以下のように出力ラベルLを得る。
Figure 2017003961
[Modifications, etc.]
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 ,
Figure 2017003961

Concealed output label that satisfies
Figure 2017003961

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).
Figure 2017003961

上述の実施形態では、L ,L に対応する値として2L +L を用い、L,Lに対応する値として2L+Lを用いた。しかしながら、2L +L に代えてその他の単射な写像g(L ,L ):{0,1}→{0,1}を用い、2L+Lに代えてg(L,L)を用いてもよい。 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で例示したK ,K ,K ,K についての連立方程式に代え、P,P,P,P,K ,K ,K ,K を用いたK ,K ,K ,K についてのその他の連立方程式を用いてもよい。この場合には、使用する連立方程式の左辺のPと等号が成立する右辺の式に応じ、ステップS150,S151,S152,S251,S252の各xに対応するK,Kについての式を変更すればよい。例えば、以下の連立方程式が用いられてもよい。

Figure 2017003961

この場合、ステップS150〜S152に代えて、x=1であればK,KおよびcからK:=Ei(K+K)(+)cを得て出力し、x≠1であればK,KおよびcからK:=Ei(K+2K)(+)cを得て出力すればよい。ステップS150,S251,S252に代えて、x=1であれば、xおよびK,KからV:=(x,Ei(K+2K))を得て出力し、x≠1であれば、xおよびK,KからV:=(x,Ei(K+K))を得て出力すればよい。 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.
Figure 2017003961

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.
請求項1の秘匿計算装置であって、
前記逆像部は、前記入力ラベルに対応する値と前記出力鍵との排他的論理和である前記像のトラップドア一方向性置換による逆像を得る、秘匿計算装置。
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整式を得る第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.
請求項1から3の何れかの秘匿計算装置であって、
前記出力ラベル秘匿化部は、前記入力鍵に対応する値で前記出力ラベルを秘匿化して前記秘匿化出力ラベルを得る、または、前記入力鍵に対応するビット列の前記元に応じたビット位置を表す前記秘匿化出力ラベルを得る、秘匿計算装置。
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.
請求項5の秘匿計算装置であって、
前記出力鍵生成部は、前記入力ラベルに対応する値と前記ゲートの入力鍵のトラップドア一方向性置換による像である値との排他的論理和を前記ゲートの出力鍵とする、秘匿計算装置。
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 .
請求項5の秘匿計算装置であって、
前記出力鍵生成部は、
前記ゲートに応じた複数の点、ならびに、前記入力ラベルに対応する値および前記ゲートの入力鍵のトラップドア一方向性置換による像である値からなる点によって定まる整式を得る補完部と、
前記整式に所定値を代入して前記ゲートの出力鍵を得る代入部と、を含む秘匿計算装置。
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.
請求項1から7の何れかの秘匿計算装置としてコンピュータを機能させるためのプログラム。   A program for causing a computer to function as the secret calculation device according to claim 1.
JP2015223418A 2015-06-10 2015-11-13 Secret calculation device and program Active JP6599215B2 (en)

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)

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

Patent Citations (3)

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

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