WO2009093603A1 - 秘密計算システム - Google Patents
秘密計算システム Download PDFInfo
- Publication number
- WO2009093603A1 WO2009093603A1 PCT/JP2009/050857 JP2009050857W WO2009093603A1 WO 2009093603 A1 WO2009093603 A1 WO 2009093603A1 JP 2009050857 W JP2009050857 W JP 2009050857W WO 2009093603 A1 WO2009093603 A1 WO 2009093603A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- secret
- fragment
- computing device
- logic circuit
- 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.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
- H04L9/3221—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/50—Oblivious transfer
Definitions
- the present invention relates to a cryptographic application technique, and more particularly to a technique for obtaining an operation result for an input value while keeping the input value secret.
- Non-Patent Document 1 discloses a technique for obtaining a calculation result while keeping an input value secret.
- FIG. 1 is a block diagram showing a configuration of a secret calculation system using the technique disclosed in Non-Patent Document 1.
- the secret calculation system includes a secret calculation device 81A and a secret calculation device 81B.
- the secret computing device 81A has a logic circuit function f (x, y) and a bit string m A that is an input to x.
- the secret computing device 81B similarly has a logic circuit function f (x, y) and a bit string m B that is an input to y.
- the secret computing device 81A obtains data that allows the secret computing device 81B to easily restore m A without obtaining data that can easily restore m B.
- One or both of the secret computing devices 81A and 81B obtain the operation result f (m A , m B ) of the logic circuit function f (x, y).
- the logic circuit function f (x, y) can be realized by a combination of one or more logic gates g.
- the logic gate g performs a predetermined logical operation on the input one or two bits and outputs one bit indicating the result. Examples of logic gates are AND gates, OR gates, and the like.
- the input / output series of each logic gate g is called a wire, the input side wire is called an input wire, and the output side wire is called an output wire.
- Non-Patent Document 1 The method disclosed in Non-Patent Document 1 will be outlined. As an example, a processing procedure for the secret computing device 81A to obtain f (m A , m B ) will be described below.
- Step C1-1 The secret computing device B having the logic circuit function f (x, y) and the bit string m B that is input to y has a truth table of each logic gate constituting the logic circuit function f (x, y). By concealing, the logic circuit function f (x, y) is concealed.
- the secret computing device B When concealing a logic gate, the secret computing device B sets a pair of a fixed-length random number corresponding to the value of each wire and a random bit corresponding to the value of each wire to each input wire and output wire. Associate. Then, the truth table is concealed by reconstructing the truth table using the associated (fixed-length random number, random bit). However, with this alone, even those who do not know the correspondence between the value of each wire and (fixed-length random number, random bit), from the combination of (fixed-length random number, random bit) corresponding to the output wire, The contents of the gate can be guessed. Therefore, further concealment is performed using a pseudo-random function. Thereby, the logic gate can be concealed.
- the logic circuit function f (x, m B ) can be concealed by executing similar concealment for each logic gate constituting the logic circuit function f (x, m B ).
- the secret computing device B conceals the logic circuit function f (x, m B ) by executing the following (a) to (d).
- the secret computing device 81B uses a fixed-length random number for each wire i of the logic circuit function f (x, m B ).
- the secret computing device 81B generates random bits c i ⁇ ⁇ 0, 1 ⁇ . c i is used as a randomized label.
- C Furthermore, the secret computing device 81B
- the secret computing device 81B has four labeled data for the logic gate g having i and j as input wires and k as an output wire.
- T g as described above is generated for each gate constituting the logic circuit function f (x, m B ), and the set T of the generated T g is concealment of the logic circuit function f (x, m B ).
- the data is transmitted as data to the secret computing device 81A.
- Step C1-2 The secret computing device 81A that holds the bit string m A that is input to x executes the 1-out-of-2 Oblivious Transfer protocol with the secret computing device 81B. Thereby, the secret computing device 81A causes the data corresponding to the wire having the bit b ⁇ ⁇ 0, 1 ⁇ of m A as an input.
- the secret computing device 81A receives the data T g received from the secret computing device 81B,
- step C1-3 in the procedure secure computing apparatus 81A includes a data
- the T g corresponds to the input wire i, j, the gate of the output wire k,
- the secret computing device 81A Take out.
- the secret computing device 81A performs exclusive OR of the expressions (2) and (3), and the data corresponding to the output wire
- the secret computing device 81A uses the data corresponding to the output wire as one data of the input wires of the other logic gates, and performs the same processing for the other logic gates.
- the output of the logic gate g wire is obtained.
- Non-Patent Document 1 it is necessary for the secret computing device 81A and the secret computing device 81B to execute the 1-out-of-2 Oblivious Transfer protocol in the second step.
- 1-out-of-2 Oblivious Transfer Protocol secure computing apparatus 81B can hold data d 0, d 1, when the secure computing apparatus 81A's bits b, to be secure computing apparatus 81A can obtain the d b Yes, but
- the secret computing device 81B is a protocol having such a feature that b cannot be obtained.
- the secure computing apparatus 81A to the secure computing apparatus 81B it is possible to prevent the bit b of m A is leaked, the logic circuit function f is concealed in T g (x, m B) Can be prevented from leaking to the secret computing device 81A. Details of this protocol are described in Non-Patent Document 2.
- Non-Patent Document 3 discloses another technique for obtaining a calculation result while keeping an input value secret.
- FIG. 2 is a block diagram showing a configuration of a secret calculation system using the technique disclosed in Non-Patent Document 3.
- the secret calculation system includes a plurality of conversion devices 90 1 to 90 N and secret calculation devices 91A and 91B.
- the secret calculation device group 91 is formed by the two secret calculation devices 91A and 91B.
- the secret computing device group 91 composed of the secret computing devices 91A and 91B uses data mn (1 ⁇ n ⁇ N) held by each of the conversion devices 90 1 to 90 N to easily restore the input value mn. Without obtaining the calculation result f (m 1 ,..., M N ) of the logic circuit function f (x 1 ,..., X N ).
- the secret computing device 91B conceals the logic circuit function f by executing the following (a) to (d).
- the secure computing apparatus 91B transmits the data
- the T g corresponds to the logic circuit function f, a logic circuit function f (x 1, ⁇ , x N) to the secure computing apparatus 91A as concealing data.
- the secret computing device 91B uses a fixed-length random number for each wire i of the logic circuit function f (x 1 ,..., X N ).
- the secret computing device 91B generates random bits c i ⁇ ⁇ 0, 1 ⁇ .
- the secret computing device 91B Furthermore, the secret computing device 91B
- the secret computing device 91B has four labeled data for the logic gate g having i and j as input wires and k as an output wire.
- Step C2-2 When each of the conversion devices 90 1 to 90 N executes the proxy 1-out-of-2 Oblivious Transfer protocol together with the secret calculation devices 91A and 91B, the secret calculation device 91A transmits to the input wire i of each bit b of m. Corresponding data
- the secret computing device 91A includes data T g and
- the proxy 1-out-of-2 Oblivious Transfer protocol is used.
- This protocol is an extended version of the 1-out-of-2 Obvious Transfer protocol.
- the secret calculation device 91A is used instead of the conversion devices 90 1 to 90 N without the bit b, which is information relating to the data held by the conversion devices 90 1 to 90 N being known to the secret calculation device 91A. But
- Non-Patent Document 1 it is necessary that the secret computing devices 81A and 81B execute the 1-out-of-2 Oblivious Transfer protocol. Further, in the method disclosed in Patent Document 3, it is necessary for the conversion devices 90 1 to 90 N and the secret calculation devices 91A and 91B to execute the proxy 1-out-of-2 Oblivious Transfer protocol.
- the amount of calculation required to execute the proxy 1-out-of-2 Oblivious Transfer Protocol which is an extension of the 1-out-of-2 Oblivious Transfer Protocol, is the same as that of the 1-out-of-2 Oblivious Transfer Protocol. Degree.
- the first aspect of the present invention is executed by the first secret calculation device, the second secret calculation device storing the logic circuit function f, and the third secret calculation device.
- the third secret computing device transmits the data Wb to the first secret computing device without specifying the correspondence between the bit b and the inverted bit (1-b) and the data Wb and the data W (1-b). , Data Wb and data W including data W (1-b) are transmitted to the second secret computing device.
- the second secret computing device transmits data T to the first secret computing device.
- Data T and data Wb are input to the first secret computation device, and an operation result f (mA) is calculated using data T and data Wb.
- the second aspect of the present invention is executed by the first secret calculation device storing the logic circuit function f (x) and the second secret calculation device.
- Fragment B out of fragment A and fragment B divided from input value m is input to the first secret computing device.
- the first secret computing device uses the logic circuit function f (x) and the fragment B, and is the data T in which the logic circuit function f (x) is concealed. Generate what can determine (m). Fragment A and data T are input to the second secret computing device, and calculation result f (m) is calculated using fragment A and data T.
- the input value information of the logic circuit function f is divided into two fragments, and the two divided fragments are input to different secret computing devices and processed.
- the processing load on the 1-out-of-2 Obvious Transfer protocol and the proxy 1-out-of-2 Obvious Transfer protocol can be reduced, and the load on the secret computing device can be greatly reduced.
- FIG. 1 is a block diagram showing a configuration of a secret calculation system using the technique disclosed in Non-Patent Document 1.
- FIG. 2 is a block diagram showing a configuration of a secret calculation system using the technique disclosed in Non-Patent Document 3.
- FIG. 3 is a block diagram illustrating a configuration of the secret calculation system according to the first embodiment.
- 4A, 4B, and 4C are block diagrams illustrating a configuration of a secret calculation device 11A included in the secret calculation system according to the first embodiment.
- FIG. 5 is a sequence diagram illustrating a specific example of the operation of the secret calculation system according to the first embodiment. It is a block diagram which shows the structure of the secret calculation system of 2nd Embodiment.
- FIGS. 11A and 11B are block diagrams illustrating the configuration of a secret calculation device included in the secret calculation system according to the third embodiment.
- FIG. 12 is a sequence diagram illustrating a specific example of the operation of the secret calculation system according to the third embodiment.
- FIG. 13 is a block diagram illustrating a configuration of a secret calculation system according to the fourth embodiment.
- FIGS. 14A and 14B are block diagrams showing the configuration of the secret calculation device included in the secret calculation system.
- FIG. 15 is a block diagram illustrating a configuration of a conversion device included in the secret calculation system.
- FIG. 16 is a sequence diagram illustrating a specific example of the operation of the secret calculation system according to the fourth embodiment.
- the secret calculation system of this embodiment is composed of three secret calculation devices. Each of the two secret calculation devices constituting the secret calculation system holds input values that are independent of each other.
- the secret calculation system of this embodiment calculates the calculation result of the logic circuit function f for the input value held by the secret calculation device without being known to other secret calculation devices.
- FIG. 3 is a block diagram illustrating a configuration of the secret calculation system 1 according to the first embodiment.
- 4A, 4B, and 4C are block diagrams illustrating the configuration of the secret computing devices 11A, 11B, and 11C included in the secret computing system 1.
- the secret calculation system 1 includes secret calculation devices 11A, 11B, and 11C (first, second, and third secret calculation devices).
- the secret calculation device 11A includes a storage unit 11AA, an input unit 11AB, an output unit 11AC, a division unit 11AD, a bit concealment unit 11AE, and a secret calculation unit 11AF.
- the secret calculation device 11B includes a storage unit 11BA, an input unit 11BB, an output unit 11BC, a bit concealment unit 11BD, and a function concealment unit 11BF.
- the secret calculation device 11C includes a storage unit 11CA, an input unit 11CB, an output unit 11CC, a bit concealment unit 11CD, and a selection unit 11CE.
- examples of the secret computing devices 11A, 11B, and 11C include a known CPU (central processing unit), RAM (random-access memory), ROM (read-only memory), a communication device, an input interface, an output interface, and the like. It is an apparatus configured by reading a predetermined program into a computer. Moreover, the secret computing devices 11A, 11B, and 11C may include an integrated circuit.
- the processing of this embodiment is an example of the first aspect of the present invention described above.
- the input value m A is stored in the storage unit 11AA of the secret calculation device 11A by preprocessing
- the input value m B and the logic circuit function f (x, y) are stored in the storage unit 11BA of the secret calculation device 11B.
- the secret calculation system 1 according to the present embodiment is such that the input value m A held by the secret calculation device 11A is not known to the secret calculation device, and the input value m B held by the secret calculation device 11B is the secret calculation device.
- the calculation result f (m A , m B ) of the logic circuit function f (x, y) is calculated without being known.
- the fragment t is transmitted to the secret computing device 11C (step E1-1).
- the secret computing device 11C generates each data Wb corresponding to each bit b of the inputted fragment t and each data W (1-b) corresponding to each inverted bit (1-b) of each bit b. . Then, the secret computation device 11C includes the data Wb and the data W (1-b) without specifying the correspondence between the bit b and the inverted bit (1-b), the data Wb and the data W (1-b).
- the data W is transmitted to the secret computing device 11B, and the data Wb is transmitted to the secret computing device 11A (step E1-2).
- the secret computing device 11B uses the fragment s, the logic circuit function f (x, y), the data W, and the input value m B , and the fragment s and the input value m B are embedded in the logic circuit function f (x, y).
- the logic circuit function f (s * X, m B ) is concealed, and the logic circuit function f (x, y) for the input value m A and the input value m B from the data T and the data Wb. That can obtain the calculation result f (m A , m B ) is generated.
- the secret computing device 11B transmits data T to the secret computing device 11A (step E1-3).
- Data T and data Wb are input to the secret computing device 11A.
- the secret computing device 11A calculates the calculation result f (m A , m B ) using the data T and the data Wb (steps E1-4, 5).
- FIG. 5 is a sequence diagram illustrating a specific example of the operation of the secret calculation system 1 according to the first embodiment.
- XOR exclusive OR operator
- the dividing unit 11AD of the secret computing device 11A uses the input value m A stored in the storage unit 11AA.
- step S101 the output unit 11AC of the secret calculation device 11A transmits the fragment s to the secret calculation device 11B (step S102), and transmits the fragment t to the secret calculation device 11C (step S103).
- the selection unit 11CE corresponds to the W i generated as described above, each bit b of the real t 'set
- step S104 are selected (step S104).
- b ′ means the lower wth bit of the fragment t when the input to the input wire i is the lower wth bit of the fragment t.
- the output unit 11CC secure computing apparatus 11C transmits the W i to secure computing apparatus 11B (step S105),
- Step E1-3 By secure computing apparatus 11B executes following the (a) ⁇ (d), the logic circuit function f (x, y) to the fragment s and the input value m B and is embedded logic function f (s * X, m B ) is kept secret.
- the bit concealment unit 11BD of the secret computing device 11B uses a fixed-length random number for each wire i of f (s * X, m B ).
- bit concealing part 11BD in the secure computing apparatus 11B generates a random bit c i.
- the bit concealment unit 11BD of the secret computing device 11B Furthermore, the bit concealment unit 11BD of the secret computing device 11B
- the function concealment unit 11BF of the secret computing device 11B has four labeled data for each logic gate g having i and j as input wires and k as an output wire.
- T g data in which they are arranged in a random order is generated.
- the set T of T g becomes data in which the logic circuit function f (s * X, m B ) is concealed (step S107). Note that ck of T g corresponding to the gate g in the final stage of the logic circuit function f (s * X, m B ) is set to 0.
- the output unit 11BC of the secret calculation device 11B transmits the set T of T g to the secret calculation device 11A as the concealment data of the logic circuit function f (s * X, m B ) (step S108).
- the input unit 11AB of the secret computing device 11A has a set T of data T g and
- the secret calculation unit 11AF of the secret calculation apparatus 11A receives the data T g and
- step E1-4 of the above processing procedure the secret calculation unit 11AF of the secret calculation device 11A is supplied with T g corresponding to the gates g of the input wires i and j and the output wire k, and
- the secret calculation unit 11AF first labels from T g
- the secret calculation unit 11AF performs an exclusive OR of Expression (6) and Expression (7), and data corresponding to the output wire
- the secret calculation unit 11AF uses the data corresponding to the output wire as one data of the input wire of the other gate, performs the same processing for the other gate, and finally performs the final stage of the logic circuit function f.
- the output of the wire of the logic gate g is obtained.
- the 1-out-of-2 Oblivious Transfer protocol that occupies most of the total calculation amount in the secret calculation system using the technique of Non-Patent Document 1 is secret. Since it is not necessary to execute any of the computing devices 11A, 11B, and 11C, the load on the secret computing devices 11A, 11B, and 11C can be greatly reduced.
- the secret calculation device 11C added in this embodiment is only given the fragment t of the input value m A , the secret calculation device 11C does not impair the confidentiality of the input values m A and m B.
- the operator * an example in which XOR is used as the operator * is shown, but the present invention is not limited to this. For example, addition / subtraction, multiplication, or any other operator may be used as the operator *.
- the second embodiment is a modification of the first embodiment.
- the secret calculation system is composed of three secret calculation devices.
- a secret calculation system is composed of N conversion devices (N is a positive integer) and three secret calculation devices.
- N is a positive integer
- two secret calculation devices each hold an input value, and one secret calculation device divides the input value into two pieces.
- each converter holds input values that are independent of each other, and each converter divides the input value into two pieces.
- FIG. 6 is a block diagram illustrating a configuration of the secret calculation system 2 according to the second embodiment.
- FIGS. 7A, 7B, and 7C are block diagrams showing the configuration of the secret computing devices 21A, 21B, and 21C included in the secret computing system 2.
- FIG. 8 is a block diagram showing a configuration of the conversion device 20 included in the secret calculation system 2.
- the conversion devices 20 1 to 20 N are collectively referred to as the conversion device 20.
- the secret calculation system 2 includes secret calculation devices 21A, 21B, and 21C (first, second, and third secret calculation devices).
- the secret calculation device 21A includes a storage unit 21AA, an input unit 21AB, an output unit 21AC, a bit concealment unit 21AE, and a secret calculation unit 21AF.
- the secret calculation device 21B includes a storage unit 21BA, an input unit 21BB, an output unit 21BC, a bit concealment unit 21BD, a selection unit 21BE, and a function concealment unit 21BF.
- the secret calculation device 21C includes a storage unit 21CA, an input unit 21CB, an output unit 21CC, a bit concealment unit 21CD, and a selection unit 21CE.
- the conversion device 20 includes a storage unit 20A, an input unit 20B, an output unit 20C, and a dividing unit 20D.
- examples of the secret computing devices 11A, 11B, and 11C and the conversion device 20 are devices configured by reading a predetermined program into a known computer including a CPU, a RAM, a ROM, a communication device, an input interface, an output interface, and the like. It is. Moreover, the secret calculation devices 21A, 21B, and 21C and the conversion device 20 may include an integrated circuit.
- the processing of this embodiment is an example of the first aspect of the present invention described above.
- the input values m 1 to m N are stored in the storage units 20A of the respective conversion devices 20 1 to 20 N by preprocessing, and the logic circuit function f (x (x) is stored in the storage unit 21BA of the secret calculation device 21B. 1 ,..., X N ) are stored.
- the input values m 1 to m N held by the conversion devices 20 1 to 20 N are not known to other devices, and the input values m n (1 ⁇ n ⁇ N) a logic circuit function f as input to calculate (x 1, ⁇ , x N ) computation result f of (m 1, ⁇ , m N ) a.
- the secure computing apparatus 21A, 21B, 21C without restoring the input values m n, and without obtaining data that can be easily restored input values m n, the operation result f (m 1, ⁇ ⁇ ⁇ , M N ).
- the operations of the other conversion devices 20 2 to 20 N are the same as those of the conversion device 20 1 (step E2-1).
- the secret computing device 21C has each data Wb corresponding to each bit b of the fragment t n transmitted from the converting devices 20 1 to 20 N and each data W corresponding to each inverted bit (1-b) of each bit b. (1-b) is generated. Then, the output unit 21CC of the secret computing device 21C does not specify the correspondence between the bit b and the inverted bit (1-b), the data Wb and the data W (1-b), and the data Wb and the data W (1- The data W including b) is transmitted to the secret computing device 21B, and the data Wb is transmitted to the secret computing device 21A (step E2-2).
- the secret computing device 21B uses the fragment s n , the logic circuit function f (x 1 ,..., X N ) and the data W transmitted from the conversion devices 20 1 to 20 N , and uses the logic circuit function f (x 1 , , X N ) is data T in which the logic circuit function f (s 1 * X 1 ,..., S N * X N ) in which the fragment s n is embedded is concealed, What can obtain the calculation result f (m 1 ,..., M N ) of the logic circuit function f (x 1 ,..., X N ) for the input values m 1 to m N from the data Wb. Generate.
- the secret computing device 21B transmits data T to the secret computing device 21A (step E2-3).
- Data T and data Wb are input to the secret computing device 21A.
- the secret computing device 21A calculates the calculation result f (m 1 ,..., M N ) using the data T and the data Wb (steps E2-4, 5).
- FIG. 9 is a sequence diagram illustrating a specific example of the operation of the secret calculation system 2 according to the second embodiment.
- XOR is used as the operator *.
- the dividing unit 20D of each of the conversion devices 20 1 to 20 N uses the input value mn stored in the respective storage unit 21A.
- step S201 Is divided into random fragments s n and t n (step S201). Then, the output unit 20C of each of the conversion devices 20 1 to 20 N transmits the fragment s n to the secret calculation device 21B (step S202), and transmits the fragment t n to the secret calculation device 21C (step S203).
- the set selecting unit 21CE is corresponding to the W i generated as described above, each bit b of the real t n '
- step S204 is when the input to the input wire i is lower w th bit fragments t n, means a lower w-th bit of the fragments t n. Also,
- the output unit 21CC secure computing apparatus 21C transmits the W i to secure computing apparatus 21B (step S205),
- the secret computing device 21B executes the following (a) to (d), whereby the logic circuit function f (s) in which the fragment s n is embedded in the logic circuit function f (x 1 ,..., X N ). 1 * X 1 ,..., S N * X N ) is concealed.
- the logic gates constituting such a logic circuit function f (s 1 * X 1 ,..., S N * X N ) are concealed.
- the bit concealment unit 21BD of the secret computing device 21B uses a fixed-length random number for each wire i of the logic circuit function f (s 1 * X 1 ,..., S N * X N ).
- the bit concealing part 11BD in the secure computing apparatus 21B generates a random bit c i.
- the bit concealment unit 21BD of the secret calculation device 21B Furthermore, the bit concealment unit 21BD of the secret calculation device 21B
- the function concealment unit 21BF of the secret computing device 21B has four labeled data for the logic gate g with i, j as input wires and k as output wires.
- the output unit 21BC of the secret calculation device B21 transmits the set T of T g to the secret calculation device 21A as the confidential data of f (s 1 * X 1 ,..., S N * X N ) (step S208). .
- the secret calculation unit 21AF of the secret calculation device 21A receives the data T g and
- the proxy 1-out-of-2 Oblivious Transfer Protocol which occupies most of the entire calculation amount in the secret calculation system using the technique of Non-Patent Document 3, is used. Since it is not necessary to execute any of the secret computing devices 21A, 21B, and 21C, the load on the secret computing devices 21A, 21B, and 21C can be greatly reduced.
- the secret calculation device 21C added in the present embodiment is only given the fragment t n of the input value mn , the secret calculation device 21C does not impair the confidentiality of the input value mn .
- an example in which XOR is used as the operator * is shown, but the present invention is not limited to this. For example, addition / subtraction, multiplication, or any other operator may be used as the operator *.
- each fragment t n divided by each of the conversion devices 20 1 to 20 N is transmitted to the secret calculation device 21C (step S203).
- the configuration may be such that each fragment t n divided by each of the conversion devices 20 1 to 20 N is first transmitted to the secret computing device 21A and then transferred to the secret computing device 21C. Further, each fragment t n divided by each of the conversion devices 20 1 to 20 N is transmitted to the secret calculation device 21A, and the secret calculation device 21A executes the processing of steps S204 and S205 of this embodiment. Also good. Even in these cases, since the fragment t n and the fragment s n are not concealed and input to the same secret computing device, the confidentiality of the input value mn is not impaired.
- secure computing apparatus 21C that fragments t n has been input generates data W i, the generated data W i has a structure to be transmitted to the secure computing apparatus 21B.
- secure computing apparatus 21B generates data W i, the generated data W i may be configured to send to the secure computing apparatus 21C.
- the secret calculation system of this embodiment includes N (N is a positive integer) conversion devices and two secret calculation devices. Each conversion device holds an independent input value.
- the secret calculation system of this embodiment calculates the operation result of the logic circuit function f for the input values held by each conversion device without being known to other devices.
- FIG. 10 is a block diagram illustrating a configuration of the secret calculation system 3 according to the third embodiment.
- FIGS. 11A and 11B are block diagrams showing the configuration of the secret calculation devices 31A and 31B included in the secret calculation system 3.
- FIG. 11A and 11B are block diagrams showing the configuration of the secret calculation devices 31A and 31B included in the secret calculation system 3.
- the secret calculation system 3 includes conversion devices 20 1 to 20 N and secret calculation devices 31A and 31B (first and second secret calculation devices).
- the secret computing device 31A includes a storage unit 31AA, an input unit 31AB, an output unit 31AC, a bit concealment unit 31AD, a selection unit 31AE, a function concealment unit 31AF, and a 1-out-of-2 OT.
- An execution unit 31AG is included.
- the secret calculation device 31B includes a storage unit 31BA, an input unit 31BB, an output unit 31BC, and a secret calculation unit 31BF.
- the secret calculation unit 31BF includes a 1-out-of-2 OT execution unit 31BFA. Note that the configurations of the converters 20 1 to 20 N are the same as those described in the second embodiment (FIG. 8).
- examples of the secret computing devices 31A and 31B are devices configured by reading a predetermined program into a known computer including a CPU, a RAM, a ROM, a communication device, an input interface, an output interface, and the like.
- the secret computing devices 31A and 31B may include an integrated circuit.
- the processing of this embodiment is an example of the second aspect of the present invention described above.
- the input values m 1 to m N are stored in the storage units 20A of the respective conversion devices 20 1 to 20 N by preprocessing, and the logic circuit function f (x (x) is stored in the storage unit 31AA of the secret calculation device 31A. 1 ,..., X N ) are stored.
- the input values m 1 to m N held by the conversion devices 20 1 to 20 N are not known to other devices, and the input values m n (1 ⁇ n ⁇ N) a logic circuit function f as input to calculate (x 1, ⁇ , x N ) computation result f of (m 1, ⁇ , m N ) a.
- the secure computing apparatus 31A, 31B without restoring the input values m n, and without obtaining data that can be easily restored input values m n, the operation result f (m 1, ⁇ , m N ).
- the operations of the other conversion devices 20 2 to 20 N are the same as those of the conversion device 20 1 (step E3-1).
- the secret computing device 31A uses the logic circuit function f (x) and the fragment t n transmitted from the conversion devices 20 1 to 20 N and uses the logic circuit function f (x) in which the fragment t n is embedded.
- f (X 1 * t 1, ⁇ , X n * t n) is the confidential data T
- the operation result f (m 1 and a corresponding data T and fragmentation s n, ⁇ , m n ) Is generated.
- the secret computing device 31A transmits data T to the secret computing device 31B (step E3-2).
- the secure computing apparatus 31B, the fragment s n and the data T is inputted.
- Secure computing apparatus 31B, the operation result f by using the fragment s n and the data T (m 1, ⁇ , m N) is calculated.
- the secret computing device 11B receives the fragment s n and calculates the operation result f (m 1 ,..., M N ) from the data T g without actually restoring the input value mn (step E3- 3, 4, 5).
- FIG. 12 is a sequence diagram illustrating a specific example of the operation of the secret calculation system 3 according to the third embodiment.
- the dividing unit 20D of each of the conversion devices 20 1 to 20 N uses the input value mn stored in the respective storage unit 21A.
- step S301 the output unit 20C of each of the conversion devices 20 1 to 20 N transmits the fragment s n to the secret calculation device 31B (step S302), and transmits the fragment t n to the secret calculation device 31A (step S303).
- Step E3-2 By executing the following (a) to (d), the secret computing device 31A performs a logic circuit function f (X (X 1 ,..., X N ) in which a fragment t n is embedded. 1 * t 1 ,..., X N * t N ) are concealed.
- each logic gate constituting such a logic circuit function f (X 1 * t 1 ,..., X N * t N ) is concealed.
- the bit concealment unit 31AD of the secret calculation device 31A is fixed to each wire i of each logic gate constituting the logic circuit function f (s 1 * X 1 ,..., S N * X N ). Long random number
- the bit concealment unit 31AD of the secret calculation device 31A generates random bits c i ⁇ ⁇ 0, 1 ⁇ .
- the bit concealment unit 31AD of the secret calculation device 31A generates random bits c i ⁇ ⁇ 0, 1 ⁇ .
- b w is the lower w-th bit of the fragment t n .
- the function concealment unit 31AF of the secret computing device 31A has four labeled data for the logic gate g having i and j as input wires and k as an output wire.
- the output unit 31AC of the secret calculation device 31A transmits the set T of T g to the secret calculation device 31B as concealment data of the logic circuit function f (X 1 * t 1 ,..., X N * t N ) ( Step S305).
- the input section 31BB of the secure computing apparatus 31B, fragments s n transmitted from each converter 20 1 ⁇ 20 N are input.
- the secret calculation unit 31BD of the secret calculation device 31B uses these fragments s n and corresponds to each bit b of the fragment s n.
- the 1-out-of-2 OT execution unit 31BDA and the 1-out-of-2 OT execution unit 31AG cooperate to generate a prime number p and satisfy 2 or more and less than p satisfying h q ⁇ 1 (mod p).
- An integer h and a minimum natural number q are obtained.
- an integer z of 2 or more and less than p is selected.
- the prime number p, natural number q, integer h, and integer z set in this way are stored in, for example, the storage unit 31AA of the secret calculation device 31A and the storage unit 31BA of the secret calculation device 31B.
- the 1-out-of-2 OT execution unit 31BDA randomly selects a natural number u less than q. This natural number u is a secret key.
- the output unit 31AC of the secret calculation device 31A transmits the obtained ciphertexts Z 0 and Z 1 to the secret calculation device 31B.
- E PK (x) is an encryption function using the public key PK of plaintext x, and the ciphertext can be decrypted by the decryption key u.
- the 1-out-of-2 OT execution unit 31BDA of the secret computing device 31B decrypts Z 0 and Z 1 using the decryption key u, and the decryption result identified by C when correctly restored
- the input unit 31BB of the secret computing device 31B has a set T of data T g and
- the secret calculation unit 31BD of the secret calculation apparatus 31B has T g and
- the conversion devices 20 1 to 20 N divide the data m n held into s n and t n , send s n to the secret calculation device 31B, and send t n to the secret calculation device 31A. And does not need to run the proxy 1-out-of-2 Oblivious Transfer Protocol. Therefore, compared with the method disclosed in Non-Patent Document 3 that requires this, the load on the conversion devices 201 to 20N is reduced.
- secure computing apparatus 31B is, in step S306, as the data corresponding to each bit b of the fragment s n, confidential data of each bit b
- Such a configuration can be realized, for example, by using the following Z 0 and Z 1 instead of the above Z 0 and Z 1 when the operator * is XOR.
- v denotes the bit fragments t n.
- the secret calculation system of this embodiment includes N (N is a positive integer) conversion devices and two secret calculation devices. Each conversion device holds an independent input value.
- the secret calculation system of this embodiment calculates the operation result of the logic circuit function f for the input values held by each conversion device without being known to other devices. However, in this embodiment, the 1-out-of-2 Oblivious Transfer Protocol is not used.
- FIG. 13 is a block diagram illustrating a configuration of the secret calculation system 4 according to the fourth embodiment.
- FIGS. 14A and 14B are block diagrams showing the configuration of the secret calculation devices 41A and 41B included in the secret calculation system 4.
- FIG. 15 is a block diagram showing the configuration of the conversion devices 40 1 to 40 N included in the secret calculation system 4.
- the conversion devices 40 1 to 40 N are collectively referred to as the conversion device 40.
- the secret calculation system 4 includes conversion devices 40 1 to 40 N and secret calculation devices 41A and 41B (first and second secret calculation devices).
- the secret calculation device 41A includes a storage unit 41AA, an input unit 41AB, an output unit 41AC, a bit concealment unit 41AD, and a function concealment unit 41AF.
- the secret calculation device 41B includes a storage unit 41BA, an input unit 41BB, an output unit 41BC, and a secret calculation unit 41BF.
- the conversion device 40 includes a storage unit 40A, an input unit 40B, an output unit 40C, a bit concealment unit 40D, and a selection unit 40E.
- examples of the secret computing devices 41A and 41B and the conversion device 40 are devices configured by reading a predetermined program into a known computer including a CPU, a RAM, a ROM, a communication device, an input interface, an output interface, and the like. Moreover, the secret calculation devices 31A and 31B and the conversion device 40 may include an integrated circuit.
- the processing of this embodiment is an example of the second aspect of the present invention described above.
- the input values m 1 to m N are stored in the storage units 40A of the respective conversion devices 40 1 to 40 N by preprocessing, and the logic circuit function f (x (x)) is stored in the storage unit 41AA of the secret calculation device 41A. 1 ,..., X N ) are stored.
- the input values m 1 to m N held in the conversion devices 40 1 to 40 N are not known to other devices, and the input values m n (1 ⁇ n ⁇ N) a logic circuit function f as input to calculate (x 1, ⁇ , x N ) computation result f of (m 1, ⁇ , m N ) a.
- the secure computing apparatus 41A, 41B without restoring the input values m n, and without obtaining data that can be easily restored input values m n, the operation result f (m 1, ⁇ , m N ).
- the converters 40 1 to 40 N have data Wb corresponding to each bit b of each input value m 1 to m N and data W (1-b) corresponding to an inverted bit (1-b) for each bit b. ) And generate. Then, the conversion devices 40 1 to 40 N transmit the data Wb as one fragment obtained by dividing the input values m 1 to m N to the secret calculation device 41B. The conversion devices 40 1 to 40 N convert the data Wb and the data W (1-b) corresponding to the inverted bit (1-b) of each bit b into the data Wb and the data W (1-b and b And the data W including without specifying the correspondence with (1-b) is transmitted to the secret computing device 41A as the other fragment (step E4-1).
- the secret computing device 41A uses the data W and generates the data T in which the logic circuit function f is concealed and the operation result f (m) can be obtained using the data T and the data Wb.
- the secret calculation device 41A transmits the generated data T to the secret calculation device 41B (step E4-2).
- Data T and data Wb are input to the secret computing device 11A.
- the secret computing device 11A calculates the calculation result f (m) using the data T and the data Wb (steps E4-3, 4, 5).
- FIG. 16 is a sequence diagram illustrating a specific example of the operation of the secret calculation system 4 according to the fourth embodiment.
- Bit concealing part 40D of the converter 40 1 ⁇ 40 N are, among the logic gates constituting the logic circuit function f (x 1, ⁇ , x N) a, bit b of each input value m 1 ⁇ m N for each input wire i but inputted, the random bit c i and a random number of fixed length
- Step E4-2 The function concealment unit 41AF of the secret calculation device 41A executes the logic circuit functions f (x 1 ,..., X N ) by executing (a) to (d) as in step E3-2 described above.
- a set T of T g in which each constituting logic gate is concealed is generated.
- the input wire i of each bit of the input values m 1 to m N is
- the output unit 41AC of the secret calculation device 41A transmits the set T of T g to the secret calculation device 41B as the concealment data of the logic circuit function f (x 1 ,..., X N ) (step S406).
- the secret calculation unit 41BF of the secret calculation device 41B has T g and
- the secret calculation devices 41A and 41B cannot obtain significant information regarding the input value mn only from the information received by the secret calculation devices 41A and 41B, and the confidentiality of the input value mn is ensured.
- the present invention is not limited to the embodiment described above.
- the configuration method of the logic circuit function in which input values and fragments are embedded is not limited to the above.
- the various processes described above are not only executed in time series according to the description, but may be executed in parallel or individually according to the processing capability of the apparatus that executes the processes or as necessary.
- the system is a logical set configuration of a plurality of devices.
- the configuration of each device is not necessarily in the same housing. Needless to say, other modifications are possible without departing from the spirit of the present invention.
- processing contents of functions that each device should have are described by a program.
- the processing functions are realized on the computer by executing the program on the computer.
- the program describing the processing contents can be recorded on a computer-readable recording medium.
- the computer-readable recording medium for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.
- this program is distributed 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.
- a computer that executes such a program first stores a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device.
- the computer reads a program stored in its own recording medium and executes a process according to the read program.
- the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer.
- the processing according to the received program may be executed sequentially.
- the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good.
- ASP Application Service Provider
- the present invention can be applied to, for example, various systems that utilize personal information while protecting privacy.
- the present invention can be used for any information aggregation system including an auction.
- an auction result or a decision result by majority decision can be obtained as a calculation result without leaking data held by each user.
- Another application example of the present invention is, for example, a system that aggregates data held by each user without the knowledge of others and performs various statistical processing and mining processing based on the data.
- the present invention can be used in a biometric authentication system. In this case, it is possible to determine whether or not the biometric information is valid while the biometric information of each user is kept secret.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Logic Circuits (AREA)
- Storage Device Security (AREA)
Abstract
第3の秘密計算装置は、第1の入力値mA及び演算子*に対してmA=s*tを満たす断片tの各ビットbに対応した各データWbと、各ビットbの各反転ビット(1-b)に対応した各データW(1-b)とを生成し、データWbを第1の秘密計算装置に送信し、データWb及びデータW(1-b)を含むデータWを第2の秘密計算装置に送信する。第2の秘密計算装置は、mA=s*tを満たす断片sと論理回路関数fとデータWとを用い、論理回路関数fに断片sが埋め込まれた論理回路関数f(s*X)が秘匿されたデータTであって、当該データTとデータWbとから演算結果f(mA)を求めることができるものを生成し、データTを第1の秘密計算装置に送信する。第1の秘密計算装置は、データTとデータWbとを用いて演算結果f(mA)を算出する。
Description
本発明は暗号応用技術に関し、特に、入力値を秘匿したまま、その入力値に対する演算の結果を得る技術に関する。
非特許文献1には、入力値を秘匿したままで演算結果を得る技術が開示されている。図1は、非特許文献1に開示された技術を用いた秘密計算システムの構成を示すブロック図である。図1を参照すると、秘密計算システムは、秘密計算装置81Aと秘密計算装置81Bを有している。
秘密計算装置81Aは、論理回路関数f(x,y)と、xへの入力となるビット列mAとを保有している。秘密計算装置81Bは、同じく論理回路関数f(x,y)と、yへの入力となるビット列mBとを保有している。
秘密計算装置81Aと秘密計算装置81Bが互いに通信することにより、秘密計算装置81AがmBを容易に復元できるデータを得ることなく、秘密計算装置81BがmAを容易に復元できるデータを得ることなく、秘密計算装置81A,Bのいずれか一方または両方が論理回路関数f(x,y)の演算結果f(mA,mB)を得る。
なお、論理回路関数f(x,y)は、1又は複数の論理ゲートgの組み合わせで実現できる。論理ゲートgは、入力された1つ又は2つのビットに対して所定の論理演算を行い、その結果を示す1つのビットを出力する。論理ゲートの例は、ANDゲート、ORゲートなどである。また、各論理ゲートgの入出力系列をワイヤーと呼び、入力側のワイヤーを入力ワイヤーと呼び、出力側のワイヤーを出力ワイヤーと呼ぶ。
非特許文献1に開示された方法について概説する。以下に、一例として、秘密計算装置81Aがf(mA,mB)を得るための処理手順を挙げる。
[ステップC1-1]
論理回路関数f(x,y)と、yへの入力となるビット列mBとを保有する秘密計算装置Bは、論理回路関数f(x,y)を構成する各論理ゲートの真理値表を秘匿することで論理回路関数f(x,y)を秘匿する。
論理回路関数f(x,y)と、yへの入力となるビット列mBとを保有する秘密計算装置Bは、論理回路関数f(x,y)を構成する各論理ゲートの真理値表を秘匿することで論理回路関数f(x,y)を秘匿する。
論理ゲートの真理値表は以下のようになる。なお、ANDゲートの例では、g(0,0)=g(0,1)=g(1,0)=0,g(1,1)=1である。
入力ワイヤー 出力ワイヤー
0,0 g(0,0)
0,1 g(0,1)
1,0 g(1,0)
1,1 g(1,1)
入力ワイヤー 出力ワイヤー
0,0 g(0,0)
0,1 g(0,1)
1,0 g(1,0)
1,1 g(1,1)
論理ゲートを秘匿する場合、秘密計算装置Bは、各入力ワイヤーと出力ワイヤーとに、それぞれ、各ワイヤーの値に対応する固定長の乱数と、各ワイヤーの値に対応するランダムビットとの組を対応付ける。そして、対応付けられた(固定長の乱数,ランダムビット)を用いて真理値表を再構成することで真理値表を秘匿する。ただし、これだけでは、各ワイヤーの値と(固定長の乱数,ランダムビット)との対応を知らない者であっても、出力ワイヤーに対応する(固定長の乱数,ランダムビット)の組み合わせから、論理ゲートの内容が推測できてしまう。そのため、擬似ランダム関数を用い、更なる秘匿を行う。これにより、論理ゲートを秘匿できる。そして、論理回路関数f(x,mB)を構成する各論理ゲートについて同様な秘匿化を実行することで、論理回路関数f(x,mB)を秘匿できる。
具体的には、秘密計算装置Bは、以下の(a)~(d)を実行することにより、論理回路関数f(x,mB)を秘匿する。
(a) 秘密計算装置81Bは、論理回路関数f(x,mB)の各ワイヤーiに対して、固定長の乱数
(a) 秘密計算装置81Bは、論理回路関数f(x,mB)の各ワイヤーiに対して、固定長の乱数
を生成し、それらをランダムな順番に並べたデータTgを生成する。ここでコロンの左側をラベル、右側をデータとし、FW(x)はx,Wを入力として、x,Wに対して一義的に定まる固定長の乱数を出力する関数(擬似ランダム関数)である。また、
また、論理回路関数fの最終段のゲートgに対応するTgのckは0に設定しておく。
上記のようなTgは、論理回路関数f(x,mB)を構成する各ゲートについて生成され、生成されたTgの集合Tは、論理回路関数f(x,mB)の秘匿化データとして秘密計算装置81Aに送信される。
上記のようなTgは、論理回路関数f(x,mB)を構成する各ゲートについて生成され、生成されたTgの集合Tは、論理回路関数f(x,mB)の秘匿化データとして秘密計算装置81Aに送信される。
[ステップC1-2]
xへの入力となるビット列mAを保有する秘密計算装置81Aは、秘密計算装置81Bと1-out-of-2 Oblivious Transferプロトコルを実行する。これにより、秘密計算装置81Aは、mAのビットb∈{0,1}を入力とするワイヤーに対応するデータ
xへの入力となるビット列mAを保有する秘密計算装置81Aは、秘密計算装置81Bと1-out-of-2 Oblivious Transferプロトコルを実行する。これにより、秘密計算装置81Aは、mAのビットb∈{0,1}を入力とするワイヤーに対応するデータ
を得る。
[ステップC1-3]
続いて、秘密計算装置81Aは、秘密計算装置81Bから受信したデータTgと、
続いて、秘密計算装置81Aは、秘密計算装置81Bから受信したデータTgと、
[ステップC1-4]
更に、秘密計算装置81Aは、
更に、秘密計算装置81Aは、
[ステップC1-3の詳細]
上記処理手順におけるステップC1-3では、秘密計算装置81Aは、入力ワイヤーi,j、出力ワイヤーkのゲートに対応するデータTgと、
上記処理手順におけるステップC1-3では、秘密計算装置81Aは、入力ワイヤーi,j、出力ワイヤーkのゲートに対応するデータTgと、
[ステップC1-4の詳細]
論理回路関数fの最終段のゲートgに対応するTgのckを0に設定しておくことで、
論理回路関数fの最終段のゲートgに対応するTgのckを0に設定しておくことで、
以上説明したように、非特許文献1の方法では、第2のステップにおいて秘密計算装置81Aと秘密計算装置81Bが1-out-of-2 Oblivious Transferプロトコルを実行する必要がある。1-out-of-2 Oblivious Transferプロトコルは、秘密計算装置81Bがデータd0,d1を保有し、秘密計算装置81Aがビットbを保有するとき、秘密計算装置81Aはdbを得ることができるが、
を得ることはできず、かつ秘密計算装置81Bはbを得ることができないような特徴をもつプロトコルである。このプロトコルを用いることで、秘密計算装置81Aから秘密計算装置81Bへ、mAのビットbが漏洩することを防止できるとともに、Tgに秘匿化されている論理回路関数f(x,mB)の情報が秘密計算装置81Aに漏洩することを防止できる。なお、このプロトコルの詳細は、非特許文献2に説明がある。
非特許文献3には、入力値を秘匿したままで演算結果を得る他の技術が開示されている。図2は、非特許文献3に開示された技術を用いた秘密計算システムの構成を示すブロック図である。図2を参照すると、秘密計算システムは、複数の変換装置901~90Nと秘密計算装置91A,91Bとを有している。2つの秘密計算装置91A,91Bによって秘密計算装置群91をなしている。
秘密計算装置91A,91Bからなる秘密計算装置群91は、各変換装置901~90Nが保有するデータmn(1≦n≦N)を用いて、入力値mnを容易に復元できるデータを得ることなく、論理回路関数f(x1,・・・,xN)の演算結果f(m1,・・・,mN)を求める。
以下にその処理手順について概説する。
[ステップC2-1]
まず、秘密計算装置91Bは、以下の(a)~(d)を実行することにより、論理回路関数fを秘匿する。そして、秘密計算装置91Bは、論理回路関数fに対応するデータTgを、論理回路関数f(x1,・・・,xN)の秘匿化データとして秘密計算装置91Aに送信する。
(a) 秘密計算装置91Bは論理回路関数f(x1,・・・,xN)の各ワイヤーiに対して、固定長の乱数
[ステップC2-1]
まず、秘密計算装置91Bは、以下の(a)~(d)を実行することにより、論理回路関数fを秘匿する。そして、秘密計算装置91Bは、論理回路関数fに対応するデータTgを、論理回路関数f(x1,・・・,xN)の秘匿化データとして秘密計算装置91Aに送信する。
(a) 秘密計算装置91Bは論理回路関数f(x1,・・・,xN)の各ワイヤーiに対して、固定長の乱数
を生成し、それらをランダムな順番に並べたデータTgを生成する。データTgの集合Tが、論理回路関数f(x1,・・・,xN)の秘匿化データとして秘密計算装置91Aに送信される。
[ステップC2-2]
各変換装置901~90Nが、秘密計算装置91A,91Bとともに、proxy 1-out-of-2 Oblivious Transferプロトコルを実行することにより、秘密計算装置91Aはmの各ビットbの入力ワイヤーiに対応するデータ
各変換装置901~90Nが、秘密計算装置91A,91Bとともに、proxy 1-out-of-2 Oblivious Transferプロトコルを実行することにより、秘密計算装置91Aはmの各ビットbの入力ワイヤーiに対応するデータ
[ステップC2-3]
更に、秘密計算装置91Aは、データTgと、
更に、秘密計算装置91Aは、データTgと、
(ステップC2-4)
更に、秘密計算装置91Aは、
更に、秘密計算装置91Aは、
上記処理手順のステップC2-2では、proxy 1-out-of-2 Oblivious Transferプロトコルが用いられている。このプロトコルは、1-out-of-2 Oblivious Transferプロトコルを拡張したプロトコルである。このプロトコルによれば、変換装置901~90Nが保有しているデータに関する情報であるビットbを秘密計算装置91Aに知られることなく、変換装置901~90Nの代わりに秘密計算装置91Aが
を算出することができる。
A.C.Yao, How to generate and exchange secrets,Proc. of FOCS ’86, pp.162-167,IEEE Press,1986. S.Even, O.Goldreich and A.Lempel,A randomized protocol for signing contracts, Communications of the ACM,Vol.28,No.6,pp.637-647,1985. M.Naor, B.Pinkas, and R.Sumner,Privacy preserving auctions and mechanism design,Proc. of ACM EC ’99,pp.129-139,ACM Press,1999.
上述したように、非特許文献1に開示された方法では、秘密計算装置81A,81Bが1-out-of-2 Oblivious Transferプロトコルを実行する必要がある。また、特許文献3に開示された方法では、変換装置901~90N及び秘密計算装置91A,91Bが、proxy 1-out-of-2 Oblivious Transferプロトコルを実行する必要がある。
D.Malkhi, N.Nisan, B.Pinkas, and Y.Sella,Fairplay - a secure two-party computation system,Proc. of USENIX Security Symposium,pp.287-302,USENIX,2004.という文献によれば、実装上、1-out-of-2 Oblivious Transferプロトコルを実行するための計算量が秘密計算システム全体の計算量の大部分を占めると報告されている。
また、1-out-of-2 Oblivious Transferプロトコルを拡張したproxy 1-out-of-2 Oblivious Transferプロトコルを実行する際に必要となる計算量は、1-out-of-2 Oblivious Transferプロトコルと同程度である。
したがって、実装上、これらのプロトコルに関連する処理量を削減することができれば、秘密計算システムの負荷を低減することができる。
本発明の第1態様は、第1の秘密計算装置と、論理回路関数fを格納した第2の秘密計算装置と、第3の秘密計算装置とによって実行される。
第3の秘密計算装置は、第1の入力値mA及び演算子*に対してmA=s*tを満たす断片tの各ビットbに対応した各データWbと、各ビットbの各反転ビット(1-b)に対応した各データW(1-b)とを生成する。第3の秘密計算装置は、データWbを第1の秘密計算装置に送信し、ビットb及び反転ビット(1-b)とデータWb及びデータW(1-b)との対応を特定せずに、データWb及びデータW(1-b)を含むデータWを第2の秘密計算装置に送信する。
第2の秘密計算装置は、mA=s*tを満たす断片sと論理回路関数fとデータWとを用い、論理回路関数fに断片sが埋め込まれた論理回路関数f(s*X)が秘匿されたデータTであって、当該データTとデータWbとから演算結果f(mA)を求めることができるものを生成する。第2の秘密計算装置は、データTを第1の秘密計算装置に送信する。
第1の秘密計算装置には、データTとデータWbとが入力され、データTとデータWbとを用いて演算結果f(mA)を算出する。
本発明の第2態様は、論理回路関数f(x)を格納した第1の秘密計算装置と、第2の秘密計算装置とによって実行される。
本発明の第2態様は、論理回路関数f(x)を格納した第1の秘密計算装置と、第2の秘密計算装置とによって実行される。
第1の秘密計算装置には、入力値mから分割された断片Aと断片Bとのうち断片Bが入力される。第1の秘密計算装置は、論理回路関数f(x)と断片Bとを用い、論理回路関数f(x)が秘匿されたデータTであって、当該データTと断片Aとから演算結果f(m)を求めることのできるものを生成する。
第2の秘密計算装置には、断片AとデータTとが入力され、断片AとデータTとを用いて演算結果f(m)を算出する。
第2の秘密計算装置には、断片AとデータTとが入力され、断片AとデータTとを用いて演算結果f(m)を算出する。
本発明によれば、論理回路関数fの入力値の情報が2つの断片に分割され、分割された2つの断片がそれぞれ異なる秘密計算装置に入力されて処理される。その結果、1-out-of-2 Oblivious Transferプロトコルやproxy 1-out-of-2 Oblivious Transferプロトコルに関する処理負荷を軽減でき、秘密計算装置の負荷を大幅に低減できる。
1~4 秘密計算システム
本発明の実施形態を、図面を参照して詳細に説明する。
〔第1の実施形態〕
本実施形態の秘密計算システムは3つの秘密計算装置からなる。この秘密計算システムを構成する2つの秘密計算装置は、それぞれ、互いに独立な入力値を保持している。本実施形態の秘密計算システムは、秘密計算装置によって保有された入力値が他の秘密計算装置に知られることなく、当該入力値に対する論理回路関数fの演算結果を算出する。
〔第1の実施形態〕
本実施形態の秘密計算システムは3つの秘密計算装置からなる。この秘密計算システムを構成する2つの秘密計算装置は、それぞれ、互いに独立な入力値を保持している。本実施形態の秘密計算システムは、秘密計算装置によって保有された入力値が他の秘密計算装置に知られることなく、当該入力値に対する論理回路関数fの演算結果を算出する。
<構成>
図3は、第1の実施形態の秘密計算システム1の構成を示すブロック図である。また、図4(A)(B)(C)は、秘密計算システム1が含む秘密計算装置11A,11B,11Cの構成を示すブロック図である。
図3に示すように、秘密計算システム1は、秘密計算装置11A,11B,11C(第1、2、3の秘密計算装置)を有する。
図3は、第1の実施形態の秘密計算システム1の構成を示すブロック図である。また、図4(A)(B)(C)は、秘密計算システム1が含む秘密計算装置11A,11B,11Cの構成を示すブロック図である。
図3に示すように、秘密計算システム1は、秘密計算装置11A,11B,11C(第1、2、3の秘密計算装置)を有する。
図4(A)に示すように、秘密計算装置11Aは、記憶部11AA、入力部11AB、出力部11AC、分割部11AD、ビット秘匿部11AE及び秘密計算部11AFを有する。また、図4(B)に示すように、秘密計算装置11Bは、記憶部11BA、入力部11BB、出力部11BC、ビット秘匿部11BD、及び関数秘匿部11BFを有する。また、図4(C)に示すように、秘密計算装置11Cは、記憶部11CA、入力部11CB、出力部11CC、ビット秘匿部11CD及び選択部11CEを有する。
なお、秘密計算装置11A,11B,11Cの例は、CPU(central processing unit)、RAM(random-access memory)、ROM(read-only memory)、通信装置、入力インタフェース、出力インタフェースなどからなる公知のコンピュータに所定のプログラムが読み込まれて構成された装置である。また、秘密計算装置11A,11B,11Cが集積回路を含んでもよい。
<処理>
本実施形態の処理は、前述した本発明の第1態様の一例である。本実施形態では、前処理によって、秘密計算装置11Aの記憶部11AAに入力値mAが格納され、秘密計算装置11Bの記憶部11BAに入力値mBと論理回路関数f(x,y)とが格納されている。本実施形態の秘密計算システム1は、秘密計算装置11Aによって保有された入力値mAが秘密計算装置に知られることなく、かつ、秘密計算装置11Bによって保有された入力値mBが秘密計算装置に知られることなく、論理回路関数f(x,y)の演算結果f(mA,mB)を算出する。
本実施形態の処理は、前述した本発明の第1態様の一例である。本実施形態では、前処理によって、秘密計算装置11Aの記憶部11AAに入力値mAが格納され、秘密計算装置11Bの記憶部11BAに入力値mBと論理回路関数f(x,y)とが格納されている。本実施形態の秘密計算システム1は、秘密計算装置11Aによって保有された入力値mAが秘密計算装置に知られることなく、かつ、秘密計算装置11Bによって保有された入力値mBが秘密計算装置に知られることなく、論理回路関数f(x,y)の演算結果f(mA,mB)を算出する。
まず、秘密計算装置11Aは、入力値mAを、演算子*に対してmA=s*tを満たす断片sと断片tの2つに分割し、断片sを秘密計算装置11Bに送信し、断片tを秘密計算装置11Cに送信する(ステップE1-1)。
秘密計算装置11Cは、入力された断片tの各ビットbに対応した各データWbと、各ビットbの各反転ビット(1-b)に対応した各データW(1-b)とを生成する。そして、秘密計算装置11Cは、ビットb及び反転ビット(1-b)とデータWb及びデータW(1-b)との対応を特定せずに、データWb及びデータW(1-b)を含むデータWを秘密計算装置11Bに送信し、データWbを秘密計算装置11Aに送信する(ステップE1-2)。
秘密計算装置11Bは、断片sと論理回路関数f(x,y)とデータWと入力値mBを用い、論理回路関数f(x,y)に断片sと入力値mBとが埋め込まれた論理回路関数f(s*X,mB)が秘匿されたデータTであって、当該データTとデータWbとから入力値mA及び入力値mBに対する論理回路関数f(x,y)の演算結果f(mA,mB)を求めることができるものを生成する。秘密計算装置11Bは、データTを秘密計算装置11Aに送信する(ステップE1-3)。
秘密計算装置11Aには、データTとデータWbとが入力される。秘密計算装置11Aは、データTとデータWbとを用いて演算結果f(mA,mB)を算出する(ステップE1-4,5)。
以下に、本実施形態の秘密計算システム1の動作の具体例を示す。
図5は、第1の実施形態の秘密計算システム1の動作の具体例を示すシーケンス図である。
[ステップE1-1]
この例では、演算子*としてXOR(排他的論理和演算子)を用いる。秘密計算装置11Aの分割部11ADが、記憶部11AAに格納された入力値mAを
図5は、第1の実施形態の秘密計算システム1の動作の具体例を示すシーケンス図である。
[ステップE1-1]
この例では、演算子*としてXOR(排他的論理和演算子)を用いる。秘密計算装置11Aの分割部11ADが、記憶部11AAに格納された入力値mAを
となるランダムな断片s,tに分割する(ステップS101)。そして、秘密計算装置11Aの出力部11ACが、断片sを秘密計算装置11Bに送信し(ステップS102)、断片tを秘密計算装置11Cにそれぞれ送信する(ステップS103)。
[ステップE1-2]
秘密計算装置11Cのビット秘匿部11CDは、論理回路関数f(s*X,mB)のmA=s*XのXに対応する入力ワイヤーiごとに、固定長の乱数であるデータWi 0とランダムビットciとの組、及び、固定長の乱数であるWi 1とランダムビットciの反転ビットとの組からなる
秘密計算装置11Cのビット秘匿部11CDは、論理回路関数f(s*X,mB)のmA=s*XのXに対応する入力ワイヤーiごとに、固定長の乱数であるデータWi 0とランダムビットciとの組、及び、固定長の乱数であるWi 1とランダムビットciの反転ビットとの組からなる
また、選択部11CEは、上記のように生成されたWiから、実際のtの各ビットb’に対応する組
[ステップE1-3]
秘密計算装置11Bが、以下の(a)~(d)を実行することにより、論理回路関数f(x,y)に断片sと入力値mBとが埋め込まれた論理回路関数f(s*X,mB)を秘匿する。なお、この例の論理回路関数f(x,y)に断片sと入力値mBとが埋め込まれた論理回路関数f(s*X,mB)は、断片X=tを入力としてmA=s*Xを復元する関数mA=s*Xと、論理回路関数f(x,y)に入力値mBが埋め込まれた論理回路関数f(x,mB)とを含み、論理回路関数f(x,mB)に関数mA=s*Xの出力値mAを入力してf(mA,mB)を出力する関数である。以下では、このような論理回路関数f(x,mB)を構成する各論理ゲートを秘匿する。
(a) 秘密計算装置11Bのビット秘匿部11BDが、f(s*X,mB)の各ワイヤーiに対して、固定長の乱数
秘密計算装置11Bが、以下の(a)~(d)を実行することにより、論理回路関数f(x,y)に断片sと入力値mBとが埋め込まれた論理回路関数f(s*X,mB)を秘匿する。なお、この例の論理回路関数f(x,y)に断片sと入力値mBとが埋め込まれた論理回路関数f(s*X,mB)は、断片X=tを入力としてmA=s*Xを復元する関数mA=s*Xと、論理回路関数f(x,y)に入力値mBが埋め込まれた論理回路関数f(x,mB)とを含み、論理回路関数f(x,mB)に関数mA=s*Xの出力値mAを入力してf(mA,mB)を出力する関数である。以下では、このような論理回路関数f(x,mB)を構成する各論理ゲートを秘匿する。
(a) 秘密計算装置11Bのビット秘匿部11BDが、f(s*X,mB)の各ワイヤーiに対して、固定長の乱数
を対応させる。
(b) 次に、秘密計算装置11Bのビット秘匿部11BDは、ランダムビットciを生成する。ただし、関数mA=s*Xを構成する論理ゲートのうち、X=tのビットが入力される入力ワイヤーに対しては、秘密計算装置11Cから受け取ったciを用いるため、X=tのビットが入力される入力ワイヤーに対しては新たなランダムビットciを生成しない。
(c) 更に、秘密計算装置11Bのビット秘匿部11BDは、
を対応させる。ここで、bは断片sの下位w番目のビットである。
(d) 次に、秘密計算装置11Bの関数秘匿部11BFが、i,jを入力ワイヤー、kを出力ワイヤーとする各論理ゲートgに対して、4つのラベル付きデータ
を生成し、それらをランダムな順番に並べたデータTgを生成する。このTgの集合Tが論理回路関数f(s*X,mB)を秘匿したデータとなる(ステップS107)。なお、論理回路関数f(s*X,mB)の最終段のゲートgに対応するTgのckは0に設定しておく。
秘密計算装置11Bの出力部11BCは、Tgの集合Tを論理回路関数f(s*X,mB)の秘匿化データとして秘密計算装置11Aに送信する(ステップS108)。
[ステップE1-4]
秘密計算装置11Aの入力部11ABには、データTgの集合Tと
[ステップE1-4]
秘密計算装置11Aの入力部11ABには、データTgの集合Tと
[ステップE1-5の詳細]
論理回路関数f(s*X,mB)の最終段のゲートgに対応するTgのckを0に設定しておくことで、
論理回路関数f(s*X,mB)の最終段のゲートgに対応するTgのckを0に設定しておくことで、
以上、説明したように、本実施形態によれば、非特許文献1の技術を用いた秘密計算システムでは全体の計算量の大部分を占めていた1-out-of-2 Oblivious Transferプロトコルを秘密計算装置11A,11B,11Cのいずれも実行する必要がないので、秘密計算装置11A,11B,11Cの負荷を大幅に低減することができる。
なお、本実施形態で追加された秘密計算装置11Cには入力値mAの断片tが与えられるだけなので、秘密計算装置11Cによって入力値mA,mBの秘匿性が損なわれることはない。
また、本実施形態では、XORを演算子*として用いる例を示したが、本発明はこれに限定されるものではない。例えば、加減算、乗算、その他どのような演算子を演算子*としてもよい。
また、本実施形態では、XORを演算子*として用いる例を示したが、本発明はこれに限定されるものではない。例えば、加減算、乗算、その他どのような演算子を演算子*としてもよい。
〔第2の実施形態〕
第2の実施形態は第1の実施形態の変形例である。第2の実施形態の第1の実施形態との主な相違点は以下である。
・第1の実施形態では、3つの秘密計算装置から秘密計算システムが構成されていた。第2の実施形態では、N個(Nは正の整数)の変換装置と3つの秘密計算装置とから秘密計算システムが構成される。
・第1の実施形態では、2つの秘密計算装置がそれぞれ入力値を保持し、1つの秘密計算装置が入力値を2つの断片に分割していた。第2の実施形態では、各変換装置がそれぞれ互いに独立な入力値を保持し、各変換装置が入力値を2つの断片に分割する。
第2の実施形態は第1の実施形態の変形例である。第2の実施形態の第1の実施形態との主な相違点は以下である。
・第1の実施形態では、3つの秘密計算装置から秘密計算システムが構成されていた。第2の実施形態では、N個(Nは正の整数)の変換装置と3つの秘密計算装置とから秘密計算システムが構成される。
・第1の実施形態では、2つの秘密計算装置がそれぞれ入力値を保持し、1つの秘密計算装置が入力値を2つの断片に分割していた。第2の実施形態では、各変換装置がそれぞれ互いに独立な入力値を保持し、各変換装置が入力値を2つの断片に分割する。
<構成>
図6は、第2の実施形態の秘密計算システム2の構成を示すブロック図である。また、図7(A)(B)(C)は、秘密計算システム2が含む秘密計算装置21A,21B,21Cの構成を示すブロック図である。また、図8は、秘密計算システム2が含む変換装置20の構成を示すブロック図である。なお、変換装置201~20Nを総称して変換装置20と呼ぶ。
図6は、第2の実施形態の秘密計算システム2の構成を示すブロック図である。また、図7(A)(B)(C)は、秘密計算システム2が含む秘密計算装置21A,21B,21Cの構成を示すブロック図である。また、図8は、秘密計算システム2が含む変換装置20の構成を示すブロック図である。なお、変換装置201~20Nを総称して変換装置20と呼ぶ。
図6に示すように、秘密計算システム2は、秘密計算装置21A,21B,21C(第1、2、3の秘密計算装置)を有する。
図7(A)に示すように、秘密計算装置21Aは、記憶部21AA、入力部21AB、出力部21AC、ビット秘匿部21AE及び秘密計算部21AFを有する。また、図7(B)に示すように、秘密計算装置21Bは、記憶部21BA、入力部21BB、出力部21BC、ビット秘匿部21BD、選択部21BE及び関数秘匿部21BFを有する。また、図7(C)に示すように、秘密計算装置21Cは、記憶部21CA、入力部21CB、出力部21CC、ビット秘匿部21CD及び選択部21CEを有する。また、図8に示すように、変換装置20は、それぞれ、記憶部20A、入力部20B、出力部20C及び分割部20Dを有する。
なお、秘密計算装置11A,11B,11C、変換装置20の例は、CPU、RAM、ROM、通信装置、入力インタフェース、出力インタフェースなどからなる公知のコンピュータに所定のプログラムが読み込まれて構成された装置である。また、秘密計算装置21A,21B,21C、変換装置20が集積回路を含んでもよい。
<処理>
本実施形態の処理は、前述した本発明の第1態様の一例である。
本実施形態では、前処理によって、各変換装置201~20Nの記憶部20Aに、それぞれ入力値m1~mNが格納され、秘密計算装置21Bの記憶部21BAに論理回路関数f(x1,・・・,xN)が格納されている。本実施形態の秘密計算システム2は、各変換装置201~20Nによって保有された入力値m1~mNが他の装置に知られることなく、入力値mn(1≦n≦N)を入力とした論理回路関数f(x1,・・・,xN)の演算結果f(m1,・・・,mN)を算出する。その際、各秘密計算装置21A,21B,21Cは、入力値mnを復元することなく、また入力値mnを容易に復元できるデータを得ることなく、演算結果f(m1,・・・,mN)を求める。
本実施形態の処理は、前述した本発明の第1態様の一例である。
本実施形態では、前処理によって、各変換装置201~20Nの記憶部20Aに、それぞれ入力値m1~mNが格納され、秘密計算装置21Bの記憶部21BAに論理回路関数f(x1,・・・,xN)が格納されている。本実施形態の秘密計算システム2は、各変換装置201~20Nによって保有された入力値m1~mNが他の装置に知られることなく、入力値mn(1≦n≦N)を入力とした論理回路関数f(x1,・・・,xN)の演算結果f(m1,・・・,mN)を算出する。その際、各秘密計算装置21A,21B,21Cは、入力値mnを復元することなく、また入力値mnを容易に復元できるデータを得ることなく、演算結果f(m1,・・・,mN)を求める。
まず、変換装置201は、入力値m1を、演算子*に対してm1=s1*t1を満たす断片s1と断片t1の2つに分割し、断片s1を秘密計算装置21Bに送信し、断片t1を秘密計算装置21Cに送信する。他の変換装置202~20Nの動作も変換装置201と同様である(ステップE2-1)。
秘密計算装置21Cは、変換装置201~20Nから送信された断片tnの各ビットbに対応した各データWbと、各ビットbの各反転ビット(1-b)に対応した各データW(1-b)とを生成する。そして、秘密計算装置21Cの出力部21CCは、ビットb及び反転ビット(1-b)とデータWb及びデータW(1-b)との対応を特定せずに、データWb及びデータW(1-b)を含むデータWを秘密計算装置21Bに送信し、データWbを秘密計算装置21Aに送信する(ステップE2-2)。
秘密計算装置21Bは、変換装置201~20Nから送信された断片snと論理回路関数f(x1,・・・,xN)とデータWを用い、論理回路関数f(x1,・・・,xN)に断片snが埋め込まれた論理回路関数f(s1*X1,・・・,sN*XN)が秘匿されたデータTであって、当該データTとデータWbとから、入力値m1~mNに対する論理回路関数f(x1,・・・,xN)の演算結果f(m1,・・・,mN)を求めることができるものを生成する。秘密計算装置21Bは、データTを秘密計算装置21Aに送信する(ステップE2-3)。
秘密計算装置21Aには、データTとデータWbとが入力される。秘密計算装置21Aは、データTとデータWbとを用いて演算結果f(m1,・・・,mN)を算出する(ステップE2-4,5)。
以下に、本実施形態の秘密計算システム2の動作の具体例を示す。
図9は、第2の実施形態の秘密計算システム2の動作の具体例を示すシーケンス図である。
[ステップE2-1]
この例では、演算子*としてXORを用いる。各変換装置201~20Nの分割部20Dが、それぞれの記憶部21Aに格納された入力値mnを
図9は、第2の実施形態の秘密計算システム2の動作の具体例を示すシーケンス図である。
[ステップE2-1]
この例では、演算子*としてXORを用いる。各変換装置201~20Nの分割部20Dが、それぞれの記憶部21Aに格納された入力値mnを
となるランダムな断片sn,tnに分割する(ステップS201)。そして、各変換装置201~20Nの出力部20Cが、断片snを秘密計算装置21Bに送信し(ステップS202)、断片tnを秘密計算装置21Cにそれぞれ送信する(ステップS203)。
[ステップE2-2]
秘密計算装置21Cのビット秘匿部21CDは、論理回路関数f(s1*X1,・・・,sN*XN)のmn=sn*XnのXnに対応する入力ワイヤーiごとに、固定長の乱数であるデータWi 0とランダムビットciとの組、及び、固定長の乱数であるWi 1とランダムビットciの反転ビットとの組からなる
秘密計算装置21Cのビット秘匿部21CDは、論理回路関数f(s1*X1,・・・,sN*XN)のmn=sn*XnのXnに対応する入力ワイヤーiごとに、固定長の乱数であるデータWi 0とランダムビットciとの組、及び、固定長の乱数であるWi 1とランダムビットciの反転ビットとの組からなる
また、選択部21CEは、上記のように生成されたWiから、実際のtnの各ビットb’に対応する組
そして、秘密計算装置21Cの出力部21CCは、Wiを秘密計算装置21Bに送信し(ステップS205)、
[ステップE2-3]
秘密計算装置21Bが、以下の(a)~(d)を実行することにより、論理回路関数f(x1,・・・,xN)に断片snが埋め込まれた論理回路関数f(s1*X1,・・・,sN*XN)を秘匿する。なお、この例の論理回路関数f(x1,・・・,xN)に断片snが埋め込まれた論理回路関数f(s1*X1,・・・,sN*XN)は、断片X=tnを入力としてmn=sn*Xnを復元する関数mn=sn*Xnと、論理回路関数f(x1,・・・,xN)とを含み、論理回路関数f(x1,・・・,xN)に各関数mn=sn*Xnの出力値mnを入力してf(m1,・・・,mN)を出力する関数である。以下では、このような論理回路関数f(s1*X1,・・・,sN*XN)を構成する各論理ゲートを秘匿する。
秘密計算装置21Bが、以下の(a)~(d)を実行することにより、論理回路関数f(x1,・・・,xN)に断片snが埋め込まれた論理回路関数f(s1*X1,・・・,sN*XN)を秘匿する。なお、この例の論理回路関数f(x1,・・・,xN)に断片snが埋め込まれた論理回路関数f(s1*X1,・・・,sN*XN)は、断片X=tnを入力としてmn=sn*Xnを復元する関数mn=sn*Xnと、論理回路関数f(x1,・・・,xN)とを含み、論理回路関数f(x1,・・・,xN)に各関数mn=sn*Xnの出力値mnを入力してf(m1,・・・,mN)を出力する関数である。以下では、このような論理回路関数f(s1*X1,・・・,sN*XN)を構成する各論理ゲートを秘匿する。
(a) 秘密計算装置21Bのビット秘匿部21BDが、論理回路関数f(s1*X1,・・・,sN*XN)の各ワイヤーiに対して、固定長の乱数
(b) 次に、秘密計算装置21Bのビット秘匿部11BDは、ランダムビットciを生成する。ただし、関数mn=sn*Xnを構成する論理ゲートのうち、Xn=tnのビットが入力される入力ワイヤーに対しては、秘密計算装置11Cから受け取ったciを用いるため、Xn=tnのビットが入力される入力ワイヤーに対しては新たなランダムビットciを生成しない。
(c) 更に、秘密計算装置21Bのビット秘匿部21BDは、
(c) 更に、秘密計算装置21Bのビット秘匿部21BDは、
を対応させる。ここでbはsnの下位w番目のビットである。
(d) 更に、秘密計算装置21Bの関数秘匿部21BFが、i,jを入力ワイヤー、kを出力ワイヤーとする論理ゲートgに対して、4つのラベル付きデータ
秘密計算装置B21の出力部21BCは、Tgの集合Tをf(s1*X1,・・・,sN*XN)の秘匿化データとして秘密計算装置21Aに送信する(ステップS208)。
[ステップE2-4]
秘密計算装置21Aの入力部21ABには、データTgの集合Tと
[ステップE2-4]
秘密計算装置21Aの入力部21ABには、データTgの集合Tと
[ステップE2-5]
秘密計算装置21Aの秘密計算部21AFは、
秘密計算装置21Aの秘密計算部21AFは、
以上、説明したように、本実施形態によれば、非特許文献3の技術を用いた秘密計算システムでは全体の計算量の大部分を占めていた、proxy 1-out-of-2 Oblivious Transferプロトコルを秘密計算装置21A,21B,21Cのいずれも実行する必要がないので、秘密計算装置21A,21B,21Cの負荷を大幅に低減することができる。
なお、本実施形態で追加された秘密計算装置21Cには入力値mnの断片tnが与えられるだけなので、秘密計算装置21Cによって入力値mnの秘匿性が損なわれることはない。
また、本実施形態では、XORを演算子*として用いる例を示したが、本発明はこれに限定されるものではない。例えば、加減算、乗算、その他どのような演算子を演算子*としてもよい。
また、本実施形態では、XORを演算子*として用いる例を示したが、本発明はこれに限定されるものではない。例えば、加減算、乗算、その他どのような演算子を演算子*としてもよい。
また、本実施形態では、各変換装置201~20Nによって分割された各断片tnが秘密計算装置21Cに送信される構成であった(ステップS203)。しかし、各変換装置201~20Nによって分割された各断片tnが、まず、秘密計算装置21Aに送信され、そこから秘密計算装置21Cに転送される構成であってもよい。また、各変換装置201~20Nによって分割された各断片tnが、秘密計算装置21Aに送信され、本実施形態のステップS204,S205の処理を秘密計算装置21Aが実行する構成であってもよい。これらの場合であっても、断片tnと断片snとが秘匿されることなく同一の秘密計算装置に入力されることはないため、入力値mnの秘匿性が損なわれることはない。
また、本実施形態では、断片tnが入力された秘密計算装置21CがデータWiを生成し、生成したデータWiを秘密計算装置21Bに送信する構成とした。しかし、秘密計算装置21BがデータWiを生成し、生成したデータWiを秘密計算装置21Cに送信する構成であってもよい。
〔第3の実施形態〕
本実施形態の秘密計算システムは、N個(Nは正の整数)の変換装置と2つの秘密計算装置とからなる。各変換装置はそれぞれ互いに独立な入力値を保持している。本実施形態の秘密計算システムは、各変換装置によって保有された入力値が他の装置に知られることなく、それらの入力値に対する論理回路関数fの演算結果を算出する。
本実施形態の秘密計算システムは、N個(Nは正の整数)の変換装置と2つの秘密計算装置とからなる。各変換装置はそれぞれ互いに独立な入力値を保持している。本実施形態の秘密計算システムは、各変換装置によって保有された入力値が他の装置に知られることなく、それらの入力値に対する論理回路関数fの演算結果を算出する。
<構成>
図10は、第3の実施形態の秘密計算システム3の構成を示すブロック図である。また、図11(A)(B)は、秘密計算システム3が含む秘密計算装置31A,31Bの構成を示すブロック図である。
図10は、第3の実施形態の秘密計算システム3の構成を示すブロック図である。また、図11(A)(B)は、秘密計算システム3が含む秘密計算装置31A,31Bの構成を示すブロック図である。
図10に示すように、秘密計算システム3は、変換装置201~20N及び秘密計算装置31A,31B(第1、2の秘密計算装置)を有する。図11(A)に示すように、秘密計算装置31Aは、記憶部31AA、入力部31AB、出力部31AC、ビット秘匿部31AD、選択部31AE、関数秘匿部31AF及び1-out-of-2 OT実行部31AGを有する。また、図11(B)に示すように、秘密計算装置31Bは、記憶部31BA、入力部31BB、出力部31BC及び秘密計算部31BFを有する。秘密計算部31BFは1-out-of-2 OT実行部31BFAを含む。なお、変換装置201~20Nの構成は、第2の実施形態で説明したものと同様である(図8)。
なお、秘密計算装置31A,31Bの例は、CPU、RAM、ROM、通信装置、入力インタフェース、出力インタフェースなどからなる公知のコンピュータに所定のプログラムが読み込まれて構成された装置である。また、秘密計算装置31A,31Bが集積回路を含んでもよい。
<処理>
本実施形態の処理は、前述した本発明の第2態様の一例である。本実施形態では、前処理によって、各変換装置201~20Nの記憶部20Aに、それぞれ入力値m1~mNが格納され、秘密計算装置31Aの記憶部31AAに論理回路関数f(x1,・・・,xN)が格納されている。本実施形態の秘密計算システム3は、各変換装置201~20Nによって保有された入力値m1~mNが他の装置に知られることなく、入力値mn(1≦n≦N)を入力とした論理回路関数f(x1,・・・,xN)の演算結果f(m1,・・・,mN)を算出する。その際、各秘密計算装置31A,31Bは、入力値mnを復元することなく、また入力値mnを容易に復元できるデータを得ることなく、演算結果f(m1,・・・,mN)を求める。
本実施形態の処理は、前述した本発明の第2態様の一例である。本実施形態では、前処理によって、各変換装置201~20Nの記憶部20Aに、それぞれ入力値m1~mNが格納され、秘密計算装置31Aの記憶部31AAに論理回路関数f(x1,・・・,xN)が格納されている。本実施形態の秘密計算システム3は、各変換装置201~20Nによって保有された入力値m1~mNが他の装置に知られることなく、入力値mn(1≦n≦N)を入力とした論理回路関数f(x1,・・・,xN)の演算結果f(m1,・・・,mN)を算出する。その際、各秘密計算装置31A,31Bは、入力値mnを復元することなく、また入力値mnを容易に復元できるデータを得ることなく、演算結果f(m1,・・・,mN)を求める。
まず、変換装置201は、入力値m1を、演算子*に対してm1=s1*t1を満たす断片s1と断片t1の2つに分割し、断片t1を秘密計算装置31Aに送信し、断片s1を秘密計算装置31Bに送信する。他の変換装置202~20Nの動作も変換装置201と同様である(ステップE3-1)。
秘密計算装置31Aは、論理回路関数f(x)と変換装置201~20Nから送信された断片tnとを用い、論理回路関数f(x)に断片tnが埋め込まれた論理回路関数f(X1*t1,・・・,XN*tN)が秘匿されたデータTであって、当該データTと断片snとから演算結果f(m1,・・・,mN)を求めることのできるものを生成する。秘密計算装置31Aは、データTを秘密計算装置31Bに送信する(ステップE3-2)。
秘密計算装置31Bには、断片snとデータTとが入力される。秘密計算装置31Bは、断片snとデータTとを用いて演算結果f(m1,・・・,mN)を算出する。秘密計算装置11Bは、断片snを入力として、入力値mnを実際に復元することなく、データTgから演算結果f(m1,・・・,mN)を算出する(ステップE3-3、4、5)。
以下に、本実施形態の秘密計算システム3の動作の具体例を示す。
図12は、第3の実施形態の秘密計算システム3の動作の具体例を示すシーケンス図である。
[ステップE3-1]
各変換装置201~20Nの分割部20Dが、それぞれの記憶部21Aに格納された入力値mnを
図12は、第3の実施形態の秘密計算システム3の動作の具体例を示すシーケンス図である。
[ステップE3-1]
各変換装置201~20Nの分割部20Dが、それぞれの記憶部21Aに格納された入力値mnを
となるランダムな断片sn,tnに分割する(ステップS301)。そして、各変換装置201~20Nの出力部20Cが、断片snを秘密計算装置31Bに送信し(ステップS302)、断片tnを秘密計算装置31Aにそれぞれ送信する(ステップS303)。
[ステップE3-2]
秘密計算装置31Aは、以下の(a)~(d)を実行することにより、論理回路関数f(x1,・・・,xN)に断片tnが埋め込まれた論理回路関数f(X1*t1,・・・,XN*tN)を秘匿する。なお、この例の論理回路関数f(x1,・・・,xN)に断片tnが埋め込まれた論理回路関数f(X1*t1,・・・,XN*tN)は、断片X=snを入力としてmn=Xn*tnを復元する関数mn=Xn*tnと、論理回路関数f(x1,・・・,xN)とを含み、論理回路関数f(x1,・・・,xN)に各関数mn=Xn*tnの出力値mnを入力してf(m1,・・・,mN)を出力する関数である。以下では、このような論理回路関数f(X1*t1,・・・,XN*tN)を構成する各論理ゲートを秘匿する。
秘密計算装置31Aは、以下の(a)~(d)を実行することにより、論理回路関数f(x1,・・・,xN)に断片tnが埋め込まれた論理回路関数f(X1*t1,・・・,XN*tN)を秘匿する。なお、この例の論理回路関数f(x1,・・・,xN)に断片tnが埋め込まれた論理回路関数f(X1*t1,・・・,XN*tN)は、断片X=snを入力としてmn=Xn*tnを復元する関数mn=Xn*tnと、論理回路関数f(x1,・・・,xN)とを含み、論理回路関数f(x1,・・・,xN)に各関数mn=Xn*tnの出力値mnを入力してf(m1,・・・,mN)を出力する関数である。以下では、このような論理回路関数f(X1*t1,・・・,XN*tN)を構成する各論理ゲートを秘匿する。
(a)秘密計算装置31Aのビット秘匿部31ADが、論理回路関数f(s1*X1,・・・,sN*XN)を構成する各論理ゲートの各ワイヤーiに対して、固定長の乱数
(b) 秘密計算装置31Aのビット秘匿部31ADは、ランダムビットci∈{0,1}を生成する。
(c) 秘密計算装置31Aのビット秘匿部31ADは、
(c) 秘密計算装置31Aのビット秘匿部31ADは、
(d) 秘密計算装置31Aの関数秘匿部31AFが、i,jを入力ワイヤー、kを出力ワイヤーとする論理ゲートgに対して、4つのラベル付きデータ
秘密計算装置31Aの出力部31ACは、Tgの集合Tを論理回路関数f(X1*t1,・・・,XN*tN)の秘匿化データとして秘密計算装置31Bに送信する(ステップS305)。
[ステップE3-3]
秘密計算装置31Bの入力部31BBには、各変換装置201~20Nから送信された断片snが入力されている。秘密計算装置31Bの秘密計算部31BDは、これらの断片snを用い、断片snの各ビットbに対応する
[ステップE3-3]
秘密計算装置31Bの入力部31BBには、各変換装置201~20Nから送信された断片snが入力されている。秘密計算装置31Bの秘密計算部31BDは、これらの断片snを用い、断片snの各ビットbに対応する
を求める。しかしながら、Wi bやciは秘密計算装置31Aで設定されたものであり、秘密計算装置31Bのみでは、断片snの各ビットbに対応するWi bやciを設定できない。一方、断片snの各ビットbに対応するWi bやciを秘密計算装置31Aから得るために、秘密計算装置31Aに断片snの各ビットbの情報を与えたのでは、秘密計算装置31Aに入力値mnが復元されてしまう。よって、秘密計算装置31Bの秘密計算部31BDが具備する1-out-of-2 OT実行部31BDAは、秘密計算装置31Aの1-out-of-2 OT実行部31AGとの間で1-out-of-2 Oblivious Transferプロトコルを実行し、秘密計算装置31Aに断片snの各ビットbの情報を与えることなく、秘密計算装置31Aから断片snの各ビットbに対応するWi bやciを取得する。以下、この処理の一例を示す。
[1-out-of-2 Oblivious Transferプロトコルの例]
《パラメータ設定》
1-out-of-2 OT実行部31BDAと1-out-of-2 OT実行部31AGとは、協力して素数pを生成し、hq≡1(mod p)を満たす2以上p未満の整数hおよび最小の自然数qを求める。また、これらは、別に2以上p未満の整数zを選ぶ。このように設定された素数p,自然数q,整数h,整数zは、例えば、秘密計算装置31Aの記憶部31AAと秘密計算装置31Bの記憶部31BAとに格納される。
《パラメータ設定》
1-out-of-2 OT実行部31BDAと1-out-of-2 OT実行部31AGとは、協力して素数pを生成し、hq≡1(mod p)を満たす2以上p未満の整数hおよび最小の自然数qを求める。また、これらは、別に2以上p未満の整数zを選ぶ。このように設定された素数p,自然数q,整数h,整数zは、例えば、秘密計算装置31Aの記憶部31AAと秘密計算装置31Bの記憶部31BAとに格納される。
《秘密鍵設定》
1-out-of-2 OT実行部31BDAが、q未満の自然数uをランダムに選ぶ。この自然数uは秘密鍵である。
1-out-of-2 OT実行部31BDAが、q未満の自然数uをランダムに選ぶ。この自然数uは秘密鍵である。
《公開鍵設定》
1-out-of-2 OT実行部31BDAが、q未満の自然数uをランダムに選ぶ。この自然数uは秘密鍵である。PKb=humod pを計算する。このPKbは公開鍵であり、秘密鍵uで暗号化された暗号文はPKbによって正しく復号できる。
1-out-of-2 OT実行部31BDAが、q未満の自然数uをランダムに選ぶ。この自然数uは秘密鍵である。PKb=humod pを計算する。このPKbは公開鍵であり、秘密鍵uで暗号化された暗号文はPKbによって正しく復号できる。
《公開鍵の改変》
1-out-of-2 OT実行部31BDAは、b=1であれば
1-out-of-2 OT実行部31BDAは、b=1であれば
《公開鍵の送信》
秘密計算装置31Bの出力部31BCは、PK0を秘密計算装置31Aに送信する。なお、b=0であればPK0は自然数uに対応する正しい公開鍵である。一方、b=1であればPK0は自然数uに対応する正しい公開鍵ではなく、かつ、PK1=z/PK0mod pによって得られるPK1が自然数uに対応する正しい公開鍵となる。
秘密計算装置31Bの出力部31BCは、PK0を秘密計算装置31Aに送信する。なお、b=0であればPK0は自然数uに対応する正しい公開鍵である。一方、b=1であればPK0は自然数uに対応する正しい公開鍵ではなく、かつ、PK1=z/PK0mod pによって得られるPK1が自然数uに対応する正しい公開鍵となる。
《暗号化》
秘密計算装置31Aの1-out-of-2 OT実行部31AGは、送信されたPK0を用いてPK1=z/PK0mod pを計算した後、
秘密計算装置31Aの1-out-of-2 OT実行部31AGは、送信されたPK0を用いてPK1=z/PK0mod pを計算した後、
を計算する。秘密計算装置31Aの出力部31ACは、得られた暗号文Z0,Z1を秘密計算装置31Bに送信する。ここでEPK(x)は平文xの公開鍵PKを用いた暗号化関数であるとし、その暗号文は復号鍵uにより復号できるものとする。またCは平文が正しく復元できたか識別可能な関数である。なお、秘密計算装置31Aは、PK0及びPK1の何れが自然数uに対応する正しい公開鍵であることを知ることはできない。そのため、秘密計算装置31Aは、秘密計算装置31Aがビットb=0に対応するデータを取得しようとしているのか、ビットb=1に対応するデータを取得しようとしているのかを知ることができない。
《復号》
秘密計算装置31Bの1-out-of-2 OT実行部31BDAは、復号鍵uを用いてZ0,Z1を復号し、正しく復元されているとCにより識別される復号結果
秘密計算装置31Bの1-out-of-2 OT実行部31BDAは、復号鍵uを用いてZ0,Z1を復号し、正しく復元されているとCにより識別される復号結果
を得る。すなわち、b=0であればPK0が自然数uに対応する正しい公開鍵であるためZ0のみが正しく復元され、b=1であればPK1が自然数uに対応する正しい公開鍵であるためZ1のみが正しく復元される(ステップS306)。
[ステップE3-4]
秘密計算装置31Bの入力部31BBには、データTgの集合Tと
秘密計算装置31Bの入力部31BBには、データTgの集合Tと
[ステップE3-5]
秘密計算装置31Bの秘密計算部31BDは、
秘密計算装置31Bの秘密計算部31BDは、
本実施形態によれば、変換装置201~20Nは、保有しているデータmnをsnとtnに分割し、snを秘密計算装置31Bに送り、tnを秘密計算装置31Aに送るだけでよく、proxy 1-out-of-2 Oblivious Transferプロトコルを実行する必要はない。よって、これが必要な非特許文献3に開示された方法に比べて、変換装置201~20Nの負荷が低減される。
なお、本実施形態では、秘密計算装置31Bが、ステップS306で、断片snの各ビットbに対応するデータとして、各ビットbの秘匿データ
しかし、秘密計算装置31Bが、断片snの各ビットbに対応するデータとして、入力値mn=sn*tnの各ビットrに対応する秘匿データを取得する構成であってもよい。このような構成は、例えば、演算子*がXORであるならば、上述のZ0,Z1の代わりに以下のZ0,Z1を用いることで実現できる。なお、vは断片tnのビットを示す。
これは、断片snのビットbが0であれば、それと同じ桁の入力値mn=sn*tnのビットrは、それと同じ桁の断片tnのビットvと等しくなるし、断片snのビットbが1であれば、それと同じ桁の入力値mn=sn*tnのビットrは、それと同じ桁の断片tnのビットvの反転ビットとなることに基づく。この場合、秘密計算装置31Bは、
また、本実施形態では、XORを演算子*として用いる例を示したが、本発明はこれに限定されるものではない。例えば、加減算、乗算、その他どのような演算子を演算子*としてもよい。
〔第4の実施形態〕
本実施形態の秘密計算システムは、N個(Nは正の整数)の変換装置と2つの秘密計算装置とからなる。各変換装置はそれぞれ互いに独立な入力値を保持している。本実施形態の秘密計算システムは、各変換装置によって保有された入力値が他の装置に知られることなく、それらの入力値に対する論理回路関数fの演算結果を算出する。ただし、本実施形態では、1-out-of-2 Oblivious Transferプロトコルを用いない。
本実施形態の秘密計算システムは、N個(Nは正の整数)の変換装置と2つの秘密計算装置とからなる。各変換装置はそれぞれ互いに独立な入力値を保持している。本実施形態の秘密計算システムは、各変換装置によって保有された入力値が他の装置に知られることなく、それらの入力値に対する論理回路関数fの演算結果を算出する。ただし、本実施形態では、1-out-of-2 Oblivious Transferプロトコルを用いない。
<構成>
図13は、第4の実施形態の秘密計算システム4の構成を示すブロック図である。また、図14(A)(B)は、秘密計算システム4が含む秘密計算装置41A,41Bの構成を示すブロック図である。また、図15は、秘密計算システム4が含む変換装置401~40Nの構成を示すブロック図である。なお、変換装置401~40Nを総称して変換装置40と呼ぶ。
図13は、第4の実施形態の秘密計算システム4の構成を示すブロック図である。また、図14(A)(B)は、秘密計算システム4が含む秘密計算装置41A,41Bの構成を示すブロック図である。また、図15は、秘密計算システム4が含む変換装置401~40Nの構成を示すブロック図である。なお、変換装置401~40Nを総称して変換装置40と呼ぶ。
図13に示すように、秘密計算システム4は、変換装置401~40N及び秘密計算装置41A,41B(第1、2の秘密計算装置)を有する。図14(A)に示すように、秘密計算装置41Aは、記憶部41AA、入力部41AB、出力部41AC、ビット秘匿部41AD及び関数秘匿部41AFを有する。また、図14(B)に示すように、秘密計算装置41Bは、記憶部41BA、入力部41BB、出力部41BC及び秘密計算部41BFを有する。また、図15示すように、変換装置40は、記憶部40A、入力部40B、出力部40C、ビット秘匿部40D及び選択部40Eを有する。
なお、秘密計算装置41A,41B及び変換装置40の例は、CPU、RAM、ROM、通信装置、入力インタフェース、出力インタフェースなどからなる公知のコンピュータに所定のプログラムが読み込まれて構成された装置である。また、秘密計算装置31A,31B及び変換装置40が集積回路を含んでもよい。
<処理>
本実施形態の処理は、前述した本発明の第2態様の一例である。本実施形態では、前処理によって、各変換装置401~40Nの記憶部40Aに、それぞれ入力値m1~mNが格納され、秘密計算装置41Aの記憶部41AAに論理回路関数f(x1,・・・,xN)が格納されている。本実施形態の秘密計算システム4は、各変換装置401~40Nに保有された入力値m1~mNが他の装置に知られることなく、入力値mn(1≦n≦N)を入力とした論理回路関数f(x1,・・・,xN)の演算結果f(m1,・・・,mN)を算出する。その際、各秘密計算装置41A,41Bは、入力値mnを復元することなく、また入力値mnを容易に復元できるデータを得ることなく、演算結果f(m1,・・・,mN)を求める。また、これらの処理の過程で1-out-of-2 Oblivious Transferプロトコルを実行する必要はない。
本実施形態の処理は、前述した本発明の第2態様の一例である。本実施形態では、前処理によって、各変換装置401~40Nの記憶部40Aに、それぞれ入力値m1~mNが格納され、秘密計算装置41Aの記憶部41AAに論理回路関数f(x1,・・・,xN)が格納されている。本実施形態の秘密計算システム4は、各変換装置401~40Nに保有された入力値m1~mNが他の装置に知られることなく、入力値mn(1≦n≦N)を入力とした論理回路関数f(x1,・・・,xN)の演算結果f(m1,・・・,mN)を算出する。その際、各秘密計算装置41A,41Bは、入力値mnを復元することなく、また入力値mnを容易に復元できるデータを得ることなく、演算結果f(m1,・・・,mN)を求める。また、これらの処理の過程で1-out-of-2 Oblivious Transferプロトコルを実行する必要はない。
まず、変換装置401~40Nが、各入力値m1~mNの各ビットbに対応したデータWbと、各ビットbに対する反転ビット(1-b)に対応したデータW(1-b)とを生成する。そして、変換装置401~40Nは、各入力値m1~mNを分割した一方の断片としてデータWbを秘密計算装置41Bに送信する。また、変換装置401~40Nは、データWbと各ビットbの反転ビット(1-b)に対応した各データW(1-b)とを、データWb及びデータW(1-bとb及び(1-b)との対応を特定せずに含むデータWを他方の断片として秘密計算装置41Aに送信する(ステップE4-1)。
秘密計算装置41Aは、データWを用い、論理回路関数fが秘匿されたデータTであって当該データTとデータWbとを用いて演算結果f(m)を求めることのできるものを生成する。秘密計算装置41Aは、生成したデータTを秘密計算装置41Bに送信する(ステップE4-2)。
秘密計算装置11Aには、データTとデータWbとが入力される。秘密計算装置11Aは、データTとデータWbとを用いて演算結果f(m)を算出する(ステップE4-3,4,5)。
以下に、本実施形態の秘密計算システム4の動作の具体例を示す。
図16は、第4の実施形態の秘密計算システム4の動作の具体例を示すシーケンス図である。
[ステップE4-1]
各変換装置401~40Nのビット秘匿部40Dが、論理回路関数f(x1,・・・,xN)を構成する各論理ゲートのうち、各入力値m1~mNのビットbが入力される各入力ワイヤーiに対して、ランダムビットci及び固定長の乱数
図16は、第4の実施形態の秘密計算システム4の動作の具体例を示すシーケンス図である。
[ステップE4-1]
各変換装置401~40Nのビット秘匿部40Dが、論理回路関数f(x1,・・・,xN)を構成する各論理ゲートのうち、各入力値m1~mNのビットbが入力される各入力ワイヤーiに対して、ランダムビットci及び固定長の乱数
[ステップE4-2]
秘密計算装置41Aの関数秘匿部41AFは、上述したステップE3-2と同様に、(a)~(d)を実行することにより、論理回路関数f(x1,・・・,xN)を構成する各論理ゲートが秘匿されたTgの集合Tを生成する。ただし、入力値m1~mNの各ビットの入力ワイヤーiには、
秘密計算装置41Aの関数秘匿部41AFは、上述したステップE3-2と同様に、(a)~(d)を実行することにより、論理回路関数f(x1,・・・,xN)を構成する各論理ゲートが秘匿されたTgの集合Tを生成する。ただし、入力値m1~mNの各ビットの入力ワイヤーiには、
秘密計算装置41Aの出力部41ACは、Tgの集合Tを論理回路関数f(x1,・・・,xN)の秘匿化データとして秘密計算装置41Bに送信する(ステップS406)。
[ステップE4-3]
秘密計算装置41Bの入力部41BFには、データTgの集合Tと
[ステップE4-3]
秘密計算装置41Bの入力部41BFには、データTgの集合Tと
が入力される。秘密計算装置41Bの秘密計算部41BFは、Tgおよび
[ステップE4-5]
秘密計算装置41Bの秘密計算部41BDは、
秘密計算装置41Bの秘密計算部41BDは、
この例によれば、1-out-of-2 Oblivious Transferプロトコルを実行する必要が無いので、第3の実施形態と比べて、秘密計算装置41A,41Bの処理が軽減される。
また、各変換装置40nから秘密計算装置41Aに送信される
Wn=(ci,Wi 0,Wi 1)n
には、入力値mnに関する情報が含まれていない。また、各変換装置40nから秘密計算装置41Bに送信される
また、各変換装置40nから秘密計算装置41Aに送信される
Wn=(ci,Wi 0,Wi 1)n
には、入力値mnに関する情報が含まれていない。また、各変換装置40nから秘密計算装置41Bに送信される
は、入力値mnのビットbがランダムビットciでマスクされているため、入力値mnに関する有意な情報とはならない。したがって、秘密計算装置41A,41Bは自身の受信した情報からだけでは、入力値mnに関する有意な情報を得ることができず、入力値mnの秘匿性が確保される。
〔変形例等〕
なお、本発明は上述の実施の形態に限定されるものではない。例えば、入力値や断片が埋め込まれた論理回路関数の構成方法は上述のものには限定されない。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成である。また、各装置の構成が同一筐体内にあるとは限らない。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
なお、本発明は上述の実施の形態に限定されるものではない。例えば、入力値や断片が埋め込まれた論理回路関数の構成方法は上述のものには限定されない。また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成である。また、各装置の構成が同一筐体内にあるとは限らない。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
本発明は、例えば、プライバシーを保護しつつ個人的な情報を活用する様々なシステムに適用できる。例えば、本発明は、オークションを含む任意の情報集計システムに利用できる。この場合、各ユーザーが保有するデータを漏洩させることなく、オークション結果や多数決による意思決定の結果などを演算結果として得ることができる。また、本発明の他の適用例は、例えば、各ユーザーが保有するデータを他者に知られること無く集計し、それらのデータを元にした各種統計処理やマイニング処理を行うシステムである。更に他の例として、本発明を生体認証システムに利用することも可能である。この場合には、各ユーザーの生体情報が秘匿されたままで、生体情報が正当なものであるかを否か判定できる。
Claims (25)
- 第1の入力値mAが秘匿されたままで、当該第1の入力値mAに対する論理回路関数fの演算結果f(mA)を算出する秘密計算システムであって、
第1の秘密計算装置と、前記論理回路関数fを格納した第2の秘密計算装置と、第3の秘密計算装置とを有し、
前記第3の秘密計算装置は、
前記第1の入力値mA及び演算子*に対してmA=s*tを満たす断片tの各ビットbに対応した各データWbと、前記各ビットbの各反転ビット(1-b)に対応した各データW(1-b)とを生成する手段と、
前記データWbを前記第1の秘密計算装置に送信する手段と、
前記ビットb及び反転ビット(1-b)と前記データWb及び前記データW(1-b)との対応を特定せずに、前記データWb及び前記データW(1-b)を含むデータWを前記第2の秘密計算装置に送信する手段と、を含み、
前記第2の秘密計算装置は、
mA=s*tを満たす断片sと前記論理回路関数fと前記データWとを用い、前記論理回路関数fに前記断片sが埋め込まれた論理回路関数f(s*X)が秘匿されたデータTであって、当該データTと前記データWbとから前記演算結果f(mA)を求めることができるものを生成する手段と、
前記データTを前記第1の秘密計算装置に送信する手段と、を含み、
前記第1の秘密計算装置は、
前記データTと前記データWbとが入力される手段と、
前記データTと前記データWbとを用いて前記演算結果f(mA)を算出する手段と、を含む。 - 請求項1の秘密計算システムであって、
前記第1の秘密計算装置は、
前記第1の入力値mAを格納する手段と、
前記第1の入力値mAを、mA=s*tを満たす前記断片s,tに分割する手段と、
前記断片sを前記第2の秘密計算装置に送信する手段と、
前記断片tを前記第3の秘密計算装置に送信する手段と、を含む。 - 請求項1又は2の秘密計算システムであって、
前記論理回路関数fは、2つの入力値を入力とする論理回路関数f(x,y)であり、
前記第2の秘密計算装置は、第2の入力値mBを格納する手段を含み、
前記データTを生成する手段は、前記断片sと前記論理回路関数f(x,y)と前記データWと前記入力値mBを用い、前記論理回路関数f(x,y)に前記断片sと前記入力値mBとが埋め込まれた論理回路関数f(s*X,mB)が秘匿されたデータTであって、当該データTと前記データWbとから前記第1の入力値mA及び前記第2の入力値mBに対する前記論理回路関数f(x,y)の演算結果f(mA,mB)を求めることができるものを生成する手段を含み、
前記演算結果f(mA)を算出する手段は、
前記データTと前記データWbとを用いて前記演算結果f(mA,mB)を算出する手段を含む。 - 請求項1の秘密計算システムであって、
前記第1の入力値mAを、mA=s*tを満たす前記断片s,tに分割する手段と、
前記断片sを前記第2の秘密計算装置に送信する手段と、
前記断片tを前記第3の秘密計算装置に送信する手段と、を含む変換装置を更に有する。 - 秘密計算装置であって、
1の入力値mA及び演算子*に対してmA=s*tを満たす断片tが入力される手段と、
前記断片tの各ビットbに対応した各データWbと、前記各ビットbの各反転ビット(1-b)に対応した各データW(1-b)とを生成する手段と、
前記データWbを、前記第1の入力値mAに対する論理回路関数fの演算結果f(mA)を算出する他の秘密計算装置に送信する手段と、
前記ビットb及び反転ビット(1-b)と前記データWb及び前記データW(1-b)との対応を特定せずに、前記データWb及び前記データW(1-b)を含むデータWを、mA=s*tを満たす断片sが入力された他の秘密計算装置に送信する手段と、を有する。 - 秘密計算装置であって、
1の入力値mA及び演算子*に対してmA=s*tを満たす断片sが入力される手段と、
前記断片sと論理回路関数fとデータWとを用い、当該論理回路関数fに前記断片sが埋め込まれた論理回路関数f(s*X)が秘匿されたデータTであって、当該データTと前記データWbとから前記第1の入力値mAに対する前記論理回路関数fの演算結果f(mA)を求めることができるものを生成する手段と、
前記データTを、前記演算結果f(mA)を算出する他の秘密計算装置に送信する手段と、を有する。 - 第1、第2、及び第3の秘密計算装置により、第1の入力値mAが秘匿されたままで、当該第1の入力値mAに対する論理回路関数fの演算結果f(mA)を算出する秘密計算方法であって、
(A) 前記第3の秘密計算装置において、前記第1の入力値mA及び演算子*に対してmA=s*tを満たす断片tの各ビットbに対応した各データWbと、前記各ビットbの各反転ビット(1-b)に対応した各データW(1-b)とを生成するステップと、
(B) 前記第3の秘密計算装置において、前記データWbを前記第1の秘密計算装置に送信するステップと、
(C) 前記第3の秘密計算装置において、前記ビットb及び反転ビット(1-b)と前記データWb及び前記データW(1-b)との対応を特定せずに、前記データWb及び前記データW(1-b)を含むデータWを前記第2の秘密計算装置に送信するステップと、
(D) 前記第2の秘密計算装置において、mA=s*tを満たす断片sと当該第2の秘密計算装置に格納された前記論理回路関数fと前記データWとを用い、前記論理回路関数fに前記断片sが埋め込まれた論理回路関数f(s*X)が秘匿されたデータTであって、当該データTと前記データWbとから前記演算結果f(mA)を求めることができるものを生成すステップと、
(E) 前記第2の秘密計算装置において、前記データTを前記第1の秘密計算装置に送信するステップと、
(F) 前記第1の秘密計算装置に前記データTと前記データWbとが入力されるステップと、
(G) 前記第1の秘密計算装置において、前記データTと前記データWbとを用いて前記演算結果f(mA)を算出するステップと、を有する。 - 請求項7の秘密計算方法であって、
前記第1の秘密計算装置において、当該第1の秘密計算装置に格納された前記第1の入力値mAを、mA=s*tを満たす前記断片s,tに分割するステップと、
前記断片sを前記第2の秘密計算装置に送信するステップと、
前記断片tを前記第3の秘密計算装置に送信するステップと、を有する。 - 請求項7又は8の秘密計算方法であって、
前記論理回路関数fは、2つの入力値を入力とする論理回路関数f(x,y)であり、
前記第2の秘密計算装置には、第2の入力値mBが格納されており、
前記ステップ(D)は、前記断片sと前記論理回路関数f(x,y)と前記データWと前記入力値mBとを用い、前記論理回路関数fに前記断片sと前記入力値mBとが埋め込まれた論理回路関数f(s*X,mB)が秘匿されたデータTであって、当該データTと前記データWbとから前記第1の入力値mA及び前記第2の入力値mBに対する前記論理回路関数f(x,y)の演算結果f(mA,mB)を求めることができるものを生成するステップを含み、
前記ステップ(G)は、前記第1の秘密計算装置において、前記データTと前記データWbとを用いて前記演算結果f(mA,mB)を算出するステップを含む。 - 入力値mが秘匿にされたままで、当該入力値mに対する論理回路関数f(x)の演算結果f(m)を算出する秘密計算システムであって、
前記論理回路関数f(x)を格納した第1の秘密計算装置と、第2の秘密計算装置とを有し、
前記第1の秘密計算装置は、
前記入力値mから分割された断片Aと断片Bとのうち断片Bが入力される手段と、
前記論理回路関数f(x)と前記断片Bとを用い、前記論理回路関数f(x)が秘匿されたデータTであって、当該データTと前記断片Aとから前記演算結果f(m)を求めることのできるものを生成する手段と、を含み、
前記第2の秘密計算装置は、
前記断片Aと前記データTとが入力される手段と、
前記断片Aと前記データTとを用いて前記演算結果f(m)を算出する手段と、を含む。 - 請求項10の秘密計算システムであって、
前記断片A、Bは、演算子*に対してmA=s*tを満たす断片s,tであり、
前記データTを生成する手段は、前記論理回路関数f(x)と前記断片tとを用い、前記論理回路関数f(x)に前記断片tが埋め込まれた論理回路関数f(X*t)が秘匿されたデータTであって、当該データTと前記断片sとから前記演算結果f(m)を求めることのできるものを生成する手段を含み、
前記断片Aと前記データTとを用いて前記演算結果f(m)を算出する手段は、前記断片sと前記データTとを用いて前記演算結果f(m)を算出する手段を含む。 - 請求項11の秘密計算システムであって、
前記断片Aと前記データTとを用いて前記演算結果f(m)を算出する手段は、前記入力値mを復元することなく、前記断片sと前記データTとを用いて前記演算結果f(m)を算出する手段を含む。 - 請求項12の秘密計算システムであって、
前記断片Aと前記データTとを用いて前記演算結果f(m)を算出する手段は、
前記第1の秘密計算装置との間で1-out-of-2 Oblivious Transferプロトコルを実行し、前記断片sを前記第1の秘密計算装置に知られることなく、前記断片sに対応する前記第1の秘密計算装置で設定された秘匿データを取得する手段と、
前記秘匿データと前記データTとを用いて前記演算結果f(m)を算出する手段と、を含む手段である。 - 請求項11の秘密計算システムであって、
前記断片Aと前記データTとを用いて前記演算結果f(m)を算出する手段は、
前記第1の秘密計算装置との間で1-out-of-2 Oblivious Transferプロトコルを実行し、前記断片sを前記第1の秘密計算装置に知られることなく、前記断片sに対応する前記第1の秘密計算装置で設定された秘匿データを取得する手段と、
前記秘匿データと前記データTとを用いて前記演算結果f(m)を算出する手段と、を含む手段である。 - 請求項11から14の何れかの秘密計算システムであって、
前記入力値mを、m=s*tを満たす前記断片s,tに分割する手段と、
前記断片tを前記第1の秘密計算装置に送信する手段と、
前記断片sを前記第2の秘密計算装置に送信する手段と、
を含む変換装置を更に有する。 - 請求項10の秘密計算システムであって、
前記断片Aは、前記入力値mの各ビットbに対応した各データWbであり、
前記断片Bは、前記データWbと前記各ビットbの反転ビット(1-b)に対応した各データW(1-b)とを、前記データWb及び前記データW(1-b)とb及び(1-b)との対応を特定せずに含むデータWであり、
前記データTを生成する手段は、前記データWを用い、論理回路関数fが秘匿されたデータTであって当該データTと前記データWbとを用いて前記演算結果f(m)を求めることのできるものを生成する手段を含み、
前記断片Aと前記データTとを用いて前記演算結果f(m)を算出する手段は、前記データWbと前記データTとを用いて前記演算結果f(m)を算出する手段を含む。 - 秘密計算装置であって、
入力値mから分割された断片Aと断片Bとのうち断片Bが入力される手段と、
論理回路関数f(x)と前記断片Bとを用い、前記論理回路関数f(x)が秘匿されたデータTであって、当該データTと前記断片Aとから前記演算結果f(m)を求めることのできるものを生成する手段と、
前記断片Aが入力された他の秘密計算装置に前記データTを送信する手段と、を有する。 - 入力値mが秘匿にされたままで、当該入力値mに対する論理回路関数f(x)の演算結果f(m)を算出する秘密計算方法であって、
(A) 前記第1の秘密計算装置に、前記入力値mから分割された断片Aと断片Bとのうち断片Bが入力されるステップと、
(B) 前記第1の秘密計算装置において、当該第1の秘密計算装置が格納した前記論理回路関数f(x)と前記断片Bとを用い、前記論理回路関数f(x)が秘匿されたデータTであって、当該データTと前記断片Aとから前記演算結果f(m)を求めることのできるものを生成するステップと、
(C) 前記第2の秘密計算装置に、前記断片Aと前記データTとが入力されるステップと、
(D) 前記第2の秘密計算装置において、前記断片Aと前記データTとを用いて前記演算結果f(m)を算出するステップと、を有する。 - 請求項18の秘密計算方法であって、
前記断片A、Bは、演算子*に対してmA=s*tを満たす断片s,tであり、
前記ステップ(B)は、前記論理回路関数f(x)と前記断片tとを用い、前記論理回路関数f(x)に前記断片tが埋め込まれた論理回路関数f(X*t)が秘匿されたデータTであって、当該データTと前記断片sとから前記演算結果f(m)を求めることのできるものを生成するステップを含み、
前記ステップ(D)は、前記断片sと前記データTとを用いて前記演算結果f(m)を算出するステップを含む。 - 請求項18の秘密計算方法であって、
前記ステップ(D)は、前記入力値mを復元することなく、前記断片sと前記データTとを用いて前記演算結果f(m)を算出するステップを含む。 - 請求項20の秘密計算方法であって、
前記ステップ(D)は、
(D-1) 前記第2の秘密計算装置が前記第1の秘密計算装置との間で1-out-of-2 Oblivious Transferプロトコルを実行し、前記断片sを前記第1の秘密計算装置に知られることなく、前記断片sに対応する前記第1の秘密計算装置で設定された秘匿データを取得するステップと、
(D-2)前記秘匿データと前記データTとを用いて前記演算結果f(m)を算出するステップと、を含む。 - 請求項19の秘密計算方法であって、
前記ステップ(D)は、
(D-1) 前記第2の秘密計算装置が前記第1の秘密計算装置との間で1-out-of-2 Oblivious Transferプロトコルを実行し、前記断片sを前記第1の秘密計算装置に知られることなく、前記断片sに対応する前記第1の秘密計算装置で設定された秘匿データを取得するステップと、
(D-2)前記秘匿データと前記データTとを用いて前記演算結果f(m)を算出するステップと、を含む。 - 請求項19から22の何れかの秘密計算方法であって、
変換装置において、前記入力値mを、m=s*tを満たす前記断片s,tに分割するステップと、
前記変換装置において、前記断片tを前記第1の秘密計算装置に送信するステップと、
前記変換装置において、前記断片sを前記第2の秘密計算装置に送信するステップと、を更に有する。 - 請求項19の秘密計算方法であって、
前記断片Aは、前記入力値mの各ビットbに対応した各データWbであり、
前記断片Bは、前記データWbと前記各ビットbの反転ビット(1-b)に対応した各データW(1-b)とを、前記データWb及び前記データW(1-b)とb及び(1-b)との対応を特定せずに含むデータWであり、
前記ステップ(B)は、前記データWを用い、論理回路関数fが秘匿されたデータTであって当該データTと前記データWbとを用いて前記演算結果f(m)を求めることのできるものを生成するステップを含み、
前記ステップ(D)は、前記データWbと前記データTとを用いて前記演算結果f(m)を算出するステップを含む。 - 請求項5、6、17の何れかの秘密計算装置としてコンピュータを機能させるためのプログラム。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN200980102192.4A CN101911153B (zh) | 2008-01-21 | 2009-01-21 | 秘密计算系统、秘密计算方法、秘密计算装置 |
| EP09703675.0A EP2242032B1 (en) | 2008-01-21 | 2009-01-21 | Secure computing system, secure computing method, secure computing apparatus and program therefor |
| US12/812,916 US9300469B2 (en) | 2008-01-21 | 2009-01-21 | Secure computing system, secure computing method, secure computing apparatus, and program therefor |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2008-010929 | 2008-01-21 | ||
| JP2008010929 | 2008-01-21 | ||
| JP2008-010928 | 2008-01-21 | ||
| JP2008010928A JP5078632B2 (ja) | 2008-01-21 | 2008-01-21 | 秘密計算システム、秘密計算方法、および秘密計算プログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2009093603A1 true WO2009093603A1 (ja) | 2009-07-30 |
Family
ID=40901111
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2009/050857 Ceased WO2009093603A1 (ja) | 2008-01-21 | 2009-01-21 | 秘密計算システム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US9300469B2 (ja) |
| EP (1) | EP2242032B1 (ja) |
| CN (1) | CN101911153B (ja) |
| WO (1) | WO2009093603A1 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009199068A (ja) * | 2008-01-21 | 2009-09-03 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算システム、秘密計算方法、秘密計算装置、検証装置、およびプログラム |
| WO2017038761A1 (ja) * | 2015-08-31 | 2017-03-09 | 日本電気株式会社 | 秘密計算システム、秘密計算装置、および、秘密計算方法 |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103392197B (zh) * | 2011-03-04 | 2016-04-13 | 日本电信电话株式会社 | 代理计算系统、方法、委托装置 |
| JP2015108807A (ja) * | 2013-10-23 | 2015-06-11 | 株式会社インテック | データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法 |
| JP6006842B1 (ja) * | 2015-07-22 | 2016-10-12 | 日本電信電話株式会社 | 秘密計算装置、その方法、およびプログラム |
| JP6034927B1 (ja) * | 2015-07-27 | 2016-11-30 | 日本電信電話株式会社 | 秘密計算システム、秘密計算装置、およびプログラム |
| JP7067632B2 (ja) * | 2018-10-04 | 2022-05-16 | 日本電信電話株式会社 | 秘密シグモイド関数計算システム、秘密ロジスティック回帰計算システム、秘密シグモイド関数計算装置、秘密ロジスティック回帰計算装置、秘密シグモイド関数計算方法、秘密ロジスティック回帰計算方法、プログラム |
| CN109766705B (zh) * | 2018-12-10 | 2021-03-19 | 北京链化未来科技有限公司 | 一种基于电路的数据验证方法、装置及电子设备 |
| US12585766B2 (en) * | 2024-01-22 | 2026-03-24 | Hewlett Packard Enterprise Development Lp | Intermittent encryption attack |
Family Cites Families (23)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4656633A (en) * | 1985-03-15 | 1987-04-07 | Dolby Laboratories Licensing Corporation | Error concealment system |
| US5295188A (en) * | 1991-04-04 | 1994-03-15 | Wilson William J | Public key encryption and decryption circuitry and method |
| DE19921122C1 (de) * | 1999-05-07 | 2001-01-25 | Fraunhofer Ges Forschung | Verfahren und Vorrichtung zum Verschleiern eines Fehlers in einem codierten Audiosignal und Verfahren und Vorrichtung zum Decodieren eines codierten Audiosignals |
| US6834272B1 (en) * | 1999-08-10 | 2004-12-21 | Yeda Research And Development Company Ltd. | Privacy preserving negotiation and computation |
| US6990468B1 (en) * | 2000-06-19 | 2006-01-24 | Xerox Corporation | System, method and article of manufacture for cryptoserver-based auction |
| US7181017B1 (en) * | 2001-03-23 | 2007-02-20 | David Felsher | System and method for secure three-party communications |
| US7844496B2 (en) * | 2003-05-05 | 2010-11-30 | International Business Machines Corporation | Method and system for processing a request of a customer |
| US7290150B2 (en) * | 2003-06-09 | 2007-10-30 | International Business Machines Corporation | Information integration across autonomous enterprises |
| JP4006403B2 (ja) * | 2004-01-21 | 2007-11-14 | キヤノン株式会社 | ディジタル署名発行装置 |
| JPWO2005098795A1 (ja) * | 2004-03-31 | 2008-02-28 | 松下電器産業株式会社 | コンピュータシステム、コンピュータプログラム及び加算方法 |
| JP4666943B2 (ja) * | 2004-04-23 | 2011-04-06 | 株式会社エヌ・ティ・ティ・ドコモ | Idタグ、タグリーダ、idタグセキュリティシステム及びidタグ送信復元方法 |
| US8132006B2 (en) * | 2005-05-03 | 2012-03-06 | Ntt Docomo, Inc. | Cryptographic authentication and/or establishment of shared cryptographic keys, including, but not limited to, password authenticated key exchange (PAKE) |
| JP4818651B2 (ja) * | 2005-07-13 | 2011-11-16 | ルネサスエレクトロニクス株式会社 | 暗号化・復号化回路 |
| WO2008048713A2 (en) * | 2006-05-05 | 2008-04-24 | President And Fellows Of Harvard College | Practical secrecy-preserving, verifiably correct and trustworthy auctions |
| US7685115B2 (en) * | 2006-07-21 | 2010-03-23 | Mitsubishi Electronic Research Laboratories, Inc. | Method for classifying private data using secure classifiers |
| WO2008127446A2 (en) * | 2006-12-01 | 2008-10-23 | President And Fellows Of Harvard College | A method and apparatus for time-lapse cryptography |
| US8752032B2 (en) * | 2007-02-23 | 2014-06-10 | Irdeto Canada Corporation | System and method of interlocking to protect software-mediated program and device behaviours |
| US8271796B2 (en) * | 2008-05-12 | 2012-09-18 | Telecommunications Research Laboratory | Apparatus for secure computation of string comparators |
| US20100150349A1 (en) * | 2008-12-12 | 2010-06-17 | Electronics And Telecommunications Research Institute | Method and system for performing quantum bit commitment protocol |
| US8549290B2 (en) * | 2009-04-24 | 2013-10-01 | Nippon Telegraph And Telephone Corporation | Secret sharing system, sharing apparatus, share management apparatus, acquisition apparatus, processing methods thereof, secret sharing method, program, and recording medium |
| US8311213B2 (en) * | 2009-12-07 | 2012-11-13 | Mitsubishi Electric Research Laboratories, Inc. | Method for determining functions applied to signals |
| US8416955B2 (en) * | 2009-12-07 | 2013-04-09 | Mitsubishi Electric Research Laboratories, Inc. | Method for determining functions applied to signals |
| US8539220B2 (en) * | 2010-02-26 | 2013-09-17 | Microsoft Corporation | Secure computation using a server module |
-
2009
- 2009-01-21 US US12/812,916 patent/US9300469B2/en active Active
- 2009-01-21 WO PCT/JP2009/050857 patent/WO2009093603A1/ja not_active Ceased
- 2009-01-21 CN CN200980102192.4A patent/CN101911153B/zh active Active
- 2009-01-21 EP EP09703675.0A patent/EP2242032B1/en active Active
Non-Patent Citations (6)
| Title |
|---|
| "Proceedings of the 28th Symposium on Information Theory and Its Applications, 20 November, 2005 (20.11.05)", vol. II OF II, article URARA SHINMYO ET AL: "Bunsan Server ni Motozuku Oblivious Transfer o Mochiita Denshi Shimon Gijutsu", pages: 705 - 708, XP008132530 * |
| CLAUDE CREPEAU ET AL: "Committed Oblivious Transfer and Private Multi-Party Computation", LECTURE NOTES IN COMPUTER SCIENCE, vol. 963, 16 October 1995 (1995-10-16), pages 110 - 123, XP000533636 * |
| HOSSEIN GHODOSI ET AL: "Comments on the 'm out of n oblivious transfer.", INFORMATION PROCESSING LETTERS, vol. 97, no. 4, 28 February 2006 (2006-02-28), pages 153 - 155, XP005224701 * |
| KOJI CHIDA ET AL: "Privacy Preserving Computations without Public Key Cryptographic Operation", LNCS, vol. 5312, 24 February 2009 (2009-02-24), pages 184 - 200, XP019112014 * |
| S. EVEN; O. GOLDREICH; A. LEMPEL: "A randomized protocol for signing contracts", COMMUNICATIONS OF THE ACM, vol. 28, no. 6, 1985, pages 637 - 647 |
| See also references of EP2242032A4 * |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009199068A (ja) * | 2008-01-21 | 2009-09-03 | Nippon Telegr & Teleph Corp <Ntt> | 秘密計算システム、秘密計算方法、秘密計算装置、検証装置、およびプログラム |
| WO2017038761A1 (ja) * | 2015-08-31 | 2017-03-09 | 日本電気株式会社 | 秘密計算システム、秘密計算装置、および、秘密計算方法 |
| US10924270B2 (en) | 2015-08-31 | 2021-02-16 | Nec Corporation | Secret calculation system, secret calculation apparatus, and secret calculation method |
Also Published As
| Publication number | Publication date |
|---|---|
| US20110040963A1 (en) | 2011-02-17 |
| EP2242032A1 (en) | 2010-10-20 |
| EP2242032A4 (en) | 2012-03-21 |
| CN101911153A (zh) | 2010-12-08 |
| CN101911153B (zh) | 2014-08-20 |
| EP2242032B1 (en) | 2013-10-02 |
| US9300469B2 (en) | 2016-03-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2009093603A1 (ja) | 秘密計算システム | |
| Sasikumar et al. | Comprehensive review and analysis of cryptography techniques in cloud computing | |
| US9413729B2 (en) | Symmetric encryption apparatus and storage medium, and symmetric decryption apparatus and storage medium | |
| JP4938766B2 (ja) | プログラム難読化システム、プログラム難読化装置及びプログラム難読化方法 | |
| US8031865B2 (en) | Multiple level security system and method for encrypting data within documents | |
| JP5855696B2 (ja) | 完全性検証を含むブロック暗号化方法およびブロック復号化方法 | |
| WO2019106166A1 (en) | Cryptography device having secure provision of random number sequences | |
| Gupta et al. | A new way to design and implementation of hybrid crypto system for security of the information in public network | |
| TW202232913A (zh) | 共享金鑰產生技術 | |
| JP6041864B2 (ja) | データの暗号化のための方法、コンピュータ・プログラム、および装置 | |
| JP5992651B2 (ja) | 暗号化方法、プログラム、および、システム | |
| US20090010433A1 (en) | Schryption method and device | |
| US20210135851A1 (en) | Encryption processing system and encryption processing method | |
| JPWO2008114829A1 (ja) | 暗号装置、復号装置、暗号プログラム、復号プログラム、及び記録媒体 | |
| JP5047198B2 (ja) | 秘密計算システム、秘密計算方法、秘密計算装置、検証装置、およびプログラム | |
| US8862893B2 (en) | Techniques for performing symmetric cryptography | |
| Bokhari et al. | Securing IoT Communications: A Novel Lightweight Stream Cipher Using DNA Cryptography and Grain-80 Cipher | |
| Abdul Hussien | An Integrated Cryptographic Approach Using Elliptic Curve Cryptography, Triple Data Encryption Standard and Hash-based Message Authentication Code. | |
| JP6949276B2 (ja) | 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム | |
| JP7383985B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
| CN112104450A (zh) | 一种对称式数据加密方法、系统及电子设备 | |
| CN118586019B (zh) | 一种保险数据安全加密方法和系统 | |
| JP7700960B2 (ja) | 情報処理装置、方法及びプログラム | |
| JP7466791B2 (ja) | 暗号化装置、復号装置、復号可能検証装置、暗号システム、暗号化方法、及び暗号化プログラム | |
| Singh et al. | Security of Data with 3DES & Watermarking Algorithm |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 200980102192.4 Country of ref document: CN |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09703675 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2009703675 Country of ref document: EP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 12812916 Country of ref document: US |





