WO2016208437A1 - 秘密計算装置、秘密計算方法、およびプログラム - Google Patents
秘密計算装置、秘密計算方法、およびプログラム Download PDFInfo
- Publication number
- WO2016208437A1 WO2016208437A1 PCT/JP2016/067529 JP2016067529W WO2016208437A1 WO 2016208437 A1 WO2016208437 A1 WO 2016208437A1 JP 2016067529 W JP2016067529 W JP 2016067529W WO 2016208437 A1 WO2016208437 A1 WO 2016208437A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- value
- bit string
- bit
- secret
- secret sharing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- 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/46—Secure multiparty computation, e.g. millionaire problem
Definitions
- the present invention relates to a secret calculation technique, and more particularly to a technique for performing a null value check by a secret calculation.
- Non-Patent Document 1 A technique for handling signed numbers using secret computation is known (see, for example, “Non-Patent Document 1”).
- the above prior art has a problem that the amount of communication and the number of communication stages are large. Also, there is no mention of performing a null value check with a secret calculation.
- the problem of the present invention is to improve the efficiency of the null value check by the secret calculation.
- the value of the most significant bit of the “first target bit string” is set to the value of the “first check bit” lower than the most significant bit.
- the secret sharing value of the value represented by the “bit string” is obtained.
- the “first target bit string” corresponds to a null value when the most significant bit is 1, and corresponds to a real value when the most significant bit is 0.
- the secret sharing value of the value represented by the “first check bit string” is used to obtain the secret sharing value of the bit values from the least significant bit of the “first check bit string” to the “first check bit”.
- FIG. 1 is a block diagram illustrating a configuration of a secret calculation system according to an embodiment.
- FIG. 2 is a block diagram illustrating the configuration of the secret calculation apparatus according to the embodiment.
- FIG. 3 is a flowchart for illustrating the processing of the first embodiment.
- FIG. 4 is a conceptual diagram for illustrating the processing of the embodiment.
- FIG. 5A is a conceptual diagram for illustrating the configuration of the target bit string of the embodiment.
- 5B and 5C are conceptual diagrams for illustrating the configuration of the check bit string of the embodiment.
- FIG. 6 is a flowchart for illustrating the processing of the second embodiment.
- 7A and 7B are conceptual diagrams for illustrating the configuration of the magnitude comparison bit string of the embodiment.
- FIG. 8 is a flowchart for illustrating the process of the first modification of the second embodiment.
- FIG. 9 is a flowchart for illustrating the processing of the third embodiment.
- FIG. 10 is a flowchart for illustrating the process of the first modification of the third
- the secret calculation device of each embodiment uses the secret sharing value of the value represented by the “first target bit string” and sets the value of the most significant bit of the “first target bit string” to the “first check bit lower than the most significant bit”
- the secret sharing value of the value represented by the “first check bit string” is obtained.
- the “first target bit string” corresponds to a null value when the most significant bit is 1, and corresponds to a real value when the most significant bit is 0.
- the “first check bit string” is obtained, for example, by rotating the “first target bit string”. Rotation can be realized by multiplication on the remainder ring.
- the multiplication method on the remainder ring in the secret calculation there is no limitation on the multiplication method on the remainder ring in the secret calculation, and it can be realized by a known method (for example, Reference 1 “Koji Senda, Hiroki Hamada, Igarashi Univ., Katsumi Takahashi,“ Lightweight verifiable three-party secret function calculation See “Reconsideration”, CSS 2010, 2010 ”).
- this is merely an example, and other methods may be used as long as the value of the most significant bit of the “first target bit string” can be the value of the “first check bit”.
- the secret computing device uses the secret sharing value of the value represented by the “first check bit string” to obtain the secret sharing value of the bit values from the least significant bit of the “first check bit string” to the “first check bit”. .
- the secret sharing value of the value of the “first check bit” is a secret sharing value of a value representing the null value check result. Further, since only the secret sharing values of the bit values from the least significant bit of the “first check bit string” to the “first check bit” need be obtained, the secret sharing values of all bits are obtained to represent the null value check result. The amount of communication and / or the number of communication stages can be reduced as compared with the case of obtaining the secret sharing value.
- a known method for obtaining the secret sharing value of the bit values from the least significant bit of the “first check bit string” to the “first check bit” for example, Reference 2 “Igarashi Univ., Hiroki Hirota, Ryo Kikuchi” Koji Senda, “O (l) bit communication bit decomposition and O (p ′) bit communication modulus transformation method for secret sharing-based secret computation of small parties”, CSS2013, 2013 There is “decomposition”.
- the secret sharing value of each bit value from the least significant bit to the desired bit can be obtained efficiently.
- a method for efficiently obtaining only the secret sharing value of each bit value from the least significant bit to the desired bit is known, but only the secret sharing value of each bit value from the most significant bit to the desired bit is obtained.
- N is an integer of 2 or more
- L is an integer of 0 ⁇ L ⁇ Nu ′
- X is an integer of ⁇ 2 L ⁇ X ⁇ 2 N ⁇ 1 ⁇ 2 L ⁇ 1.
- u ′ is a positive integer not less than 2 and not more than N according to the secret sharing scheme.
- u ′ 2.
- an integer X greater than or equal to 0 corresponds to a small input value W
- a negative integer X corresponds to a large input value W
- “X is an empty value” corresponds to an input value W between them. .
- This operation is addition on the remainder ring in the secret calculation.
- Y ⁇ 2 L + (P + 1) / 2 ⁇ mod P for the null value
- P 2 N ⁇ 1
- the most significant bit of the N-bit bit string representing Y corresponding to the null value is 1, and is a real value X (an integer X greater than or equal to 0 or a negative integer X).
- the most significant bit of the corresponding N-bit bit string representing Y is 0.
- Such an N-bit bit string representing Y can be referred to as a “first target bit string”.
- T is an integer of 1 ⁇ T ⁇ N.
- T 1.
- the “first check bit” is the least significant bit (specific example of the format of “first target bit string” and “first check bit string”).
- each secret computing device obtains a secret sharing value of “comparison result value” and obtains a secret sharing value of the K-th value from the lower order of the bit string representing “comparison result value”.
- the “comparison result value” represents a value obtained by adding 2 K ⁇ 1 to a value obtained by subtracting the value represented by the “second target bit string” from the value represented by the “first target bit string”.
- the “second target bit string” is a bit string corresponding to a null value when the most significant bit is 1 and corresponding to a real value when the most significant bit is 0.
- the value of the first target bit string whose K is an integer of 2 or more and the most significant bit is 0 and the value of the value of the second target bit string whose most significant bit is 0 are 0 or more and less than 2 K ⁇ 1 is there.
- addition / subtraction and extraction of bit values in the secret calculation can be realized by a known method (for example, see “Reference Documents 1 and 2”). If the value represented by the “first target bit string” is equal to or greater than the value represented by the “second target bit string”, the value of the K bit from the lower order of the bit string representing the “comparison result value” is “1”.
- the value of the K-th bit from the lower order of the bit string representing the “comparison result value” is “0”. That is, the value of the K-th bit from the lower level representing the “comparison result value” represents a magnitude comparison result between the value represented by the “first target bit string” and the value represented by the “second target bit string”.
- Null value check by secret calculation may be performed on the “second target bit string”. That is, each secret computing device uses the secret sharing value of the value represented by the “second target bit string”, and sets the value of the most significant bit of the “second target bit string” to the “second check bit” lower than the most significant bit.
- the secret sharing value of the value represented by the “second check bit string” is obtained, and the secret sharing value of the value of the “second check bit string” is used to obtain the secret sharing value of the value of the “second check bit” May be.
- Specific examples of the formats of “second target bit string” and “second check bit string” are the same as the specific examples of the formats of “first target bit string” and “first check bit string” described above.
- each secret computing device uses the secret sharing value of the value represented by “target bit string A (d)”, and sets the value of the most significant bit of “target bit string A (d)” to “ The secret sharing value of the value represented by the “check bit string C (d)” is obtained as the value “r (d)” of the “check bit”.
- d 0,..., D ⁇ 1, and D is an integer of 2 or more.
- “Target bit string A (d)” corresponds to a null value when the most significant bit is 1, and corresponds to a real value when the most significant bit is 0.
- Each secret computing device uses the secret sharing value of the value represented by “check bit string C (d)” and uses the least significant bit of “check bit string C (d)” to the bit value from “target bit string A (d)”. Get the secret sharing value. Further, each secret computing device obtains a secret sharing value as a sorting result in accordance with the value represented by “target bit string A (d)”. However, the value represented by “target bit string A (d)” with the most significant bit being 0 corresponds to a larger real value as the value represented by “target bit string A (d)” is larger. Each secret computing device may obtain a secret sharing value as a sorting result according to the magnitude of the value represented by “check bit string C (d)”.
- the secret sharing value of at least one of the maximum value, the minimum value, and the median value may be obtained by using the sorting result in the secret calculation.
- a known method may be used (for example, Reference 3 “Igarashi Univ., Hiroki Hirota, Ryo Kikuchi, Koji Chida,“ Aiming at statistical processing of 1 second of Internet environment response.
- the secret calculation system 1 of the first embodiment includes a distributed device 11 and M secret calculation devices 12 0 -12 M ⁇ 1 , which can communicate via a network such as the Internet. Configured. However, M is an integer of 2 or more. For convenience of explanation, it is assumed that the secret computation system 1 has only one distributed device 11, but a plurality of distributed devices 11 may exist. Alternatively, other secret computing devices may exist.
- the secret computing device 12 m executes each process under the control of the control unit 123 m . Data obtained by each unit is stored in a temporary memory (not shown), and is read and used as necessary.
- Each device is, for example, a general-purpose or dedicated computer including a processor (hardware processor) such as a CPU (central processing unit) and a memory such as a random-access memory (RAM) and a read-only memory (ROM). It is configured by executing the program.
- the computer may include a single processor and memory, or may include a plurality of processors and memory.
- This program may be installed in a computer, or may be recorded in a ROM or the like in advance.
- some or all of the processing units are configured using an electronic circuit that realizes a processing function without using a program, instead of an electronic circuit (circuitry) that realizes a functional configuration by reading a program like a CPU. May be.
- an electronic circuit constituting one device may include a plurality of CPUs.
- N is an integer greater than or equal to 2
- L is an integer of 0 ⁇ L ⁇ Nu ′
- X is an integer of ⁇ 2 L ⁇ X ⁇ 2 N ⁇ 1 ⁇ 2 L ⁇ 1 (X is an integer represented by a decimal number).
- P may be a prime number (Mersenne prime number) or may not be a prime number.
- u ′ is a positive integer not less than 2 and not more than N according to the secret sharing scheme.
- the secret sharing scheme is not limited, and any scheme such as a linear secret sharing scheme such as the Shamir secret sharing scheme, a duplicate secret sharing scheme, or any other scheme (for example, see “Reference 2”) may be used.
- the secret sharing value [W] m is received by the communication unit 121 m of the secret calculation device 12 m (FIG. 2) and sent to the input calculation unit 124 m (step S11 m ).
- Y corresponding to the null value is ⁇ 2 L + (P + 1) / 2 ⁇ mod P
- Y corresponding to X which is an integer greater than or equal to 0 is (2 L + X) mod P and is a negative integer X Y corresponding to is (P + 2 L + X) mod P (FIG. 4).
- a bit string in which Y is represented by an N-digit binary number is called a target bit string.
- Y corresponds to a real value X (an integer of ⁇ 2 L ⁇ X ⁇ 2 N ⁇ 1 ⁇ 2 L ⁇ 1)
- P Mersenne number
- T is an integer of 1 ⁇ T ⁇ N.
- a bit string in which V is expressed as an N-digit binary number is called a check bit string.
- the inspection bit string is a bit string obtained by rotating the target bit string 1100 to the left by T bits.
- the value a N ⁇ 1 of the most significant bit 1101 of the target bit string 1100 is the value of the lower order bit (check bit) than the most significant bit of the check bit string.
- the check bits are as follows.
- the value of the T-th bit from the least significant bit of the check bit string 1200 represents “whether X is a null value”.
- the “Tth bit from the least significant” means the Tth bit counted from the least significant.
- the first bit from the least significant bit means the least significant bit
- the second bit from the least significant bit means a bit one digit higher than the least significant bit (step S13 m ).
- Example using bit decomposition in Reference 2 An example using the bit decomposition of Reference 2 is shown.
- a secret sharing value [V] m conforming to the duplicate secret sharing scheme is used.
- it is possible to convert a secret sharing value according to an arbitrary linear secret sharing scheme into a secret sharing value of a duplicate secret sharing scheme for example, Reference 5 “R. Cramer, I. Damg_ard, and Y. Ishai, “Share conversion, pseudorandom secret-sharing and applications to secure computation,” In J. Kilian ed., TCC, Vol. 3378 of Lecture Notes in Computer Science, pp. 342-362. Springer, 2005.
- the limitation to the duplicate secret sharing method is not a limitation on use.
- the linear secret sharing value of V is expressed as [V]
- the duplicate secret sharing value of V is expressed as ⁇ V ⁇ .
- the number of sub-shares of V is ⁇
- the boundary value u which is a natural number, is the smallest integer greater than or equal to log ⁇ .
- [nu is an integer satisfying ⁇ ⁇ 2 u.
- V is 0 and jointly 2 u as law
- V is Sabushea x 0 to P as law, ..., and is congruent with the sum of x 0 + ... + x ⁇ - 1 of x ⁇ -1.
- P is a Mersenne prime number, but P may be another Mersenne number.
- 2 u V ⁇ P.
- [PRO] is an operator that converts the truth of PRO to an integer.
- X ZP ⁇ V ⁇ Calculate ZP .
- the ⁇ ZP represents a replication secret sharing value is the original Z P
- " ⁇ ZP" represents a multiplication on Z P.
- the low-order bit distribution unit 126 m of the null value checking unit 126 m starts from the least significant bit of the jth subshare ⁇ V ′ ⁇ ZP ⁇ j> of the modified secret distribution value ⁇ V ′ ⁇ ZP.
- u bits (u bits from the least significant bit to the uth bit counted from the least significant bit) are distributed for each bit, and the lower bit distributed value To get.
- [ ⁇ ] ⁇ represents a linear secret sharing value that is an element of ⁇ .
- the high-order bit distribution unit of the null value checking unit 126 m for all i satisfying i ⁇ , converts the T bit from the u-th bit of the j-th subshare ⁇ V ′ ⁇ ZP ⁇ j> of the modified secret distribution value bit by bit.
- the low-order bit addition unit of the null value checking unit 126 m performs the low-order bit addition value by the secret calculation of the addition circuit.
- Zero determination unit of the air-value checking unit 126 m obtains a lower u bits of the lower bit addition value
- the secure computing the zero determination circuit calculates a zero determination value [[eta u ⁇ 0]] Z2.
- the high-order bit addition unit of the null value inspection unit 126 m acquires the high-order bit addition value, the high-order u bit of the low-order bit addition value, and the zero determination value for all i satisfying i ⁇ .
- Secret sharing sequence of bits by secret calculation Is calculated and output. However, Represents the sum on Z 2 T , Represents the addition on Z 2 T.
- the secret sharing value [r] m of each bit value from the least significant bit to the T-th bit (that is, the check bit) when V is expressed as an N-digit binary number is obtained by the calculation of Expression (1).
- the secret calculation of three parties can be processed with a communication amount of several bits and two rounds (step S14 m ).
- the secret computing device 12 m outputs a secret sharing value [r] m (step S15 m ).
- the secret computing device 12 m outputs the secret sharing value [r] m .
- the secret sharing value of each check bit of the check bit string C may be output instead of the secret sharing value [r] m .
- secret variance [W] m of the input value W is input to the secure computing apparatus 12 m
- the secret sharing value [Y] m may be input to each secret computing device 12 m, and the processing from steps S13 m to S15 m may be executed.
- the secret calculation system 2 of the second embodiment includes a distributed device 11 and M secret calculation devices 22 0 to 22 M ⁇ 1 , which can communicate via a network such as the Internet. Configured.
- the secret computing device 22 m executes each process under the control of the control unit 123 m .
- the input value W (0) corresponds to the null value or the real value X (0)
- the input value W (1) corresponds to the null value or the real value X (1).
- the format of the input values W (0) and W (1) is the same as the format of the input value W described above.
- the secret sharing values [W (0)] m and [W (1)] m are received by the communication unit 121 m of the secret computing device 22 m (FIG. 2) and sent to the input calculation unit 124 m (step S21 m ).
- Y (0) corresponds to “a value represented by the target bit string A (0)”
- Y (1) corresponds to “a value represented by the target bit string A (1)”.
- the target bit strings A (0) and A (1) are bit strings corresponding to a null value when the most significant bit is 1 and corresponding to a real value when the most significant bit is 0 (step S22 m ).
- V (0) corresponds to “value represented by check bit string C (0)”
- V (1) corresponds to “value represented by check bit string C (1)” (step S23 m ).
- the null value checking unit 226 m receives the secret sharing value [V (0)] m as input, and the secret sharing value [r (0)] of each bit value from the least significant bit of the check bit string C (0) to the check bit. Get m and output.
- the null value checking unit 226 m receives the secret sharing value [V (1)] m as input, and the secret sharing value [r (1) of each bit value from the least significant bit to the checking bit of the check bit string C (1). ]
- Obtain m and output. For example, when T 1, the null value checking unit 226 m obtains and outputs the secret sharing values [r (0)] m and [r (1)] m of the value of the check bit that is the least significant bit ( step S24 m).
- the magnitude comparison bit string acquisition unit 227 m receives the secret sharing values [Y (0)] m and [Y (1)] m as input, and performs a secret calculation to obtain a comparison result value (Y (0) ⁇ Y (1) +2 K ⁇ 1 ) mod P (value obtained by subtracting the value represented by the target bit string A (1) from the value represented by the target bit string A (0) and adding 2K ⁇ 1 ) [(Y (0) ⁇ Y (1) +2 K ⁇ 1 ) mod P] m is obtained and output.
- K is an integer equal to or greater than 2
- the value Y (0) represented by the target bit string A (0) whose most significant bit is 0 and the value Y (1) represented by the target bit string A (1) whose most significant bit is 0 Is greater than or equal to 0 and less than 2K-1 .
- a bit string that is an N-digit binary representation of the comparison result value (Y (0) ⁇ Y (1) +2 K ⁇ 1 ) mod P is referred to as a magnitude comparison bit string.
- FIG. 7B is a conceptual diagram illustrating the magnitude comparison bit string 2220 in the case of N> K, and the bits lower than the most significant bit are check bits 2221.
- the value of the Kth bit from the lower order of the 2 K-1 mod P N-digit binary representation value is 1.
- the magnitude of Y (0) ⁇ Y (1) is not less than 0 and less than 2 K ⁇ 1. Therefore, when X (0) ⁇ X (1), (Y (0) ⁇ Y (1) +2 K ⁇ 1 )
- the N-digit binary representation value of mod P is equal to or greater than the N-digit binary representation value of 2 K ⁇ 1 mod P, and the value of the K bit from the lower order is always 1.
- the magnitude comparison unit 228 m receives the secret sharing value [(Y (0) ⁇ Y (1) +2 K ⁇ 1 ) mod P] m as an input, and performs a secret calculation to obtain a comparison result value (Y (0) ⁇ Y (1 ) +2 K ⁇ 1 )
- the secret sharing value [q] m of the value q of the K-th bit from the lower order of the magnitude comparison bit string indicating mod P is obtained and output.
- This process can be executed using, for example, the bit decomposition of Reference 2.
- other bit decomposition methods may be used (for example, Reference 6 “I. Damgard, M. Fitzi, E. Kiltz, JB Nielsen, and T. Toft,“ Unconditionally secure constant-rounds multi-party computation.
- the secret computing device 22 m outputs secret sharing values [r (0)] m , [r (1)] m , and [q] m (step S27 m ).
- the magnitude comparison bit string acquisition unit 227 m performs the secret sharing values [W (0)] m and [W ( 1)] Using m as an input, the secret sharing value of the comparison result value (W (0) ⁇ W (1) +2 K ⁇ 1 ) mod P [(W (0) ⁇ W (1) +2 K ⁇ ) 1 ) mod P] m is obtained and output (step S25 ′ m ).
- the secret sharing value [(W (0) ⁇ W (1) +2 K ⁇ 1 ) mod P] instead of the secret sharing value [(Y (0) ⁇ Y (1) +2 K ⁇ 1 ) mod P] m m is used to execute steps S26 m -S27 m of the second embodiment.
- the secret computing device 22 m outputs the secret sharing value [r (0)] m , [r (1)] m , and the secret sharing value [q] m .
- secret sharing of the values of the check bits of the check bit strings C (0) and C (1) instead of [r (0)] m and [r (1)] m Only the value may be output.
- the secret computing device 22 m is a secret sharing value [q] m when the values of the check bits are both 0, and a secret sharing value representing an error when the value of any check bit is 1. May be generated and output.
- the secret sharing values [Y (0)] m and [Y (1)] m may be input to each secret computing device 22 m , and the processing from steps S23 m to S27 m may be executed.
- the secret calculation system 3 in addition to the null value check in the secret calculation, the sort in the secret calculation is performed.
- the secret calculation system 3 includes a distributed device 11 and M secret calculation devices 32 0 to 32 M ⁇ 1 , which can communicate via a network such as the Internet. Configured.
- the secret computing device 32 m executes each process under the control of the control unit 123 m .
- the input value W (d) corresponds to a null value or a real value X (d).
- the format of the input value W (d) is the same as the format of the input value W described above.
- the secret sharing value [W (d)] mm is received by the communication unit 121 m of the secret calculation device 32 m (FIG. 2) and sent to the input calculation unit 124 m (step S31 m ).
- Y (d) corresponds to “a value represented by the target bit string A (d)”.
- the target bit string A (d) is a bit string corresponding to a null value when the most significant bit is 1, and corresponding to a real value when the most significant bit is 0 (step S32 m ).
- V (d) corresponds to “value represented by check bit string C (d)” (step S33 m ).
- Y (d) corresponds to a larger real value X (d) as Y (d) is larger.
- the sorting method based on the secret calculation is not limited, and may be executed by a known method.
- the sorting unit 327 m obtains a column of a vector [BitA (d)] composed of secret sharing values of the respective bit values of the target bit sequence A (d) by the bit decomposition of Reference Document 2, and the vector [BitA (d) ] Is sorted by the methods of Reference Documents 3 and 4 and the resulting secret sharing value [ ⁇ ] m is output.
- the secret sharing value [ ⁇ ] m is, for example, a sorted column of [BitA (d)] (step S35 m ).
- Sort result utilization arithmetic unit 328 m is secret sharing values of the sort result obtained the [theta] m, the maximum value, minimum value, at least one of the secret sharing values of median [[Phi] to give the m outputs.
- the sorted result use calculation unit 328 m selects and outputs the last element in the sorted [BitA (d)] column, for example.
- the sorting result use calculation unit 328 m selects and outputs the first element in the sorted [BitA (d)] column, for example.
- the following processing is performed.
- the sorting result use calculation unit 328 m When D is an odd number, the sorting result use calculation unit 328 m outputs a secret sharing value of a column whose element is a double value of each element of the central column of the sorted column [BitA (d)]. When D is an even number, the sort result use calculation unit 328 m outputs the secret sharing value of the column obtained by adding the two columns closest to the center of the sorted column [BitA (d)] (step S36 m ).
- [ ⁇ ] m may be output instead of [ ⁇ ] m .
- the secret computing device 32 m has a secret sharing value [ ⁇ ] m or [ ⁇ ] m when the values of the check bits are all 0, and a secret indicating an error when the value of any check bit is 1.
- a value to be a variance value may be generated and output.
- the secret sharing value [Y (d)] m may be input to each secret computing device 32 m, and the processing from step S33 m to S37 m may be executed.
- the computing system 4 having such a configuration includes a distributed device 11 and M secret computing devices 42 0 to 42 M ⁇ 1 , which can communicate via a network such as the Internet. Composed.
- the secret computing device 42 m executes each process under the control of the control unit 123 m .
- the processing of each part is as described in the first to third embodiments and their modifications.
- the secret sharing value [W] m may be a secret calculation result in another secret calculation device.
- at least a part of the devices may exchange information via a portable recording medium.
- at least some of the apparatuses may exchange information via a non-portable recording medium. The combination which consists of a part of these apparatuses may be the same apparatus.
- a computer-readable recording medium is a non-transitory recording medium. Examples of such a recording medium are a magnetic recording device, an optical disk, a magneto-optical recording medium, a semiconductor memory, and the like.
- This program is distributed, for example, by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
- 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. When executing the process, this computer reads a program stored in its own recording device and executes a process according to the read program. As another execution form of the program, the computer may read the program directly from the portable recording medium and execute processing according to the program, and each time the program is transferred from the server computer to the computer. The processing according to the received program may be executed sequentially.
- the above-described processing may be executed by a so-called ASP (Application Service Provider) type service that does not transfer a program from the server computer to the computer but implements a processing function only by the execution instruction and result acquisition. Good.
- ASP Application Service Provider
- the processing functions of the apparatus are realized by executing a predetermined program on a computer, but at least a part of these processing functions may be realized by hardware.
- the technology of the above embodiment can be used for numerical calculation by secret calculation, aggregation processing, and the like.
- the technology of the above-described embodiment can be applied to the aggregation of questionnaire results by anonymous and the aggregation of voting results.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
「第1対象ビット列」が表す値の秘密分散値を用い、「第1対象ビット列」の最上位ビットの値を最上位ビットよりも下位の「第1検査ビット」の値とした「第1検査ビット列」が表す値の秘密分散値を得る。ただし、「第1対象ビット列」は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する。次に、「第1検査ビット列」が表す値の秘密分散値を用い、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値を得る。
Description
本発明は、秘密計算技術に関し、特に、秘密計算で空値検査を行う技術に関する。
秘密計算を用いて符号付き数を扱う技術が知られている(例えば、「非特許文献1」等参照)。
D. Bogdanov, M. Niitsoo, T. Toft, and J. Willemson, "High-performance secure multi-party computation for data mining applications," Int. J. Inf. Sec., 11(6):403-418, 2012.
上記の従来技術には、通信量・通信段数が大きいという課題がある。また秘密計算で空値検査を行うことには言及がない。
本発明の課題は、秘密計算による空値検査を効率化することである。
「第1対象ビット列」が表す値の秘密分散値を用い、「第1対象ビット列」の最上位ビットの値を最上位ビットよりも下位の「第1検査ビット」の値とした「第1検査ビット列」が表す値の秘密分散値を得る。ただし、「第1対象ビット列」は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する。次に、「第1検査ビット列」が表す値の秘密分散値を用い、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値を得る。
以上により、秘密計算による空値検査を効率化できる。
以下、本発明の実施形態を説明する。
[概要]
まず、概要を説明する。各実施形態の秘密計算装置は、「第1対象ビット列」が表す値の秘密分散値を用い、「第1対象ビット列」の最上位ビットの値を最上位ビットよりも下位の「第1検査ビット」の値とした「第1検査ビット列」が表す値の秘密分散値を得る。ただし、「第1対象ビット列」は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する。なお、「第1検査ビット列」は、例えば「第1対象ビット列」のローテーションによって得られる。ローテーションは剰余環上の乗算で実現できる。秘密計算での剰余環上の乗算方法に限定はなく、公知の方法で実現できる(例えば、参考文献1「千田浩司,濱田浩気,五十嵐大,高橋克巳,“軽量検証可能3パーティ秘匿関数計算の再考”,CSS2010,2010年」等参照)。ただし、これは一例であって、「第1対象ビット列」の最上位ビットの値を「第1検査ビット」の値とできるのであれば、その他の方法が用いられてもよい。次に秘密計算装置は、「第1検査ビット列」が表す値の秘密分散値を用い、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値を得る。ここで、「第1対象ビット列」が空値に対応する場合には「第1検査ビット」の値は「1」となり、「第1対象ビット列」が実数値に対応する場合には「第1検査ビット」の値は「0」となる。そのため、「第1検査ビット」の値の秘密分散値は、空値検査結果を表す値の秘密分散値となる。また、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値のみを求めればよいため、すべてのビットの秘密分散値を求めて空値検査結果を表す値の秘密分散値を得る場合に比べ、通信量および/または通信段数を削減できる。また「第1検査ビット」が最下位ビットに近いほど秘密計算の対象となるビット数を小さくでき、通信量および/または通信段数をより削減できる。そのため、「第1検査ビット」が最下位ビットであることがより望ましい。なお、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値を得るための公知の方法としては、例えば参考文献2「五十嵐大,濱田浩気,菊池亮,千田浩司,“少パーティの秘密分散ベース秘密計算のためのO(l)ビット通信ビット分解およびO(p’)ビット通信modulus変換法”,CSS2013,2013年」の「商転移を用いたビット分解」がある。この方法では、最下位ビットから所望のビットまでの各ビット値の秘密分散値を効率的に得ることができる。なお、最下位ビットから所望のビットまでの各ビット値の秘密分散値のみを効率的に得る方法は知られているが、最上位ビットから所望のビットまでの各ビット値の秘密分散値のみを効率的に得る方法や、最上位ビットと最下位ビットとの間に位置するビット値の秘密分散値のみを効率的に得る方法は知られていない。本形態の方式は、このことに着目して秘密計算での空値検査の効率を向上するものである。
[概要]
まず、概要を説明する。各実施形態の秘密計算装置は、「第1対象ビット列」が表す値の秘密分散値を用い、「第1対象ビット列」の最上位ビットの値を最上位ビットよりも下位の「第1検査ビット」の値とした「第1検査ビット列」が表す値の秘密分散値を得る。ただし、「第1対象ビット列」は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する。なお、「第1検査ビット列」は、例えば「第1対象ビット列」のローテーションによって得られる。ローテーションは剰余環上の乗算で実現できる。秘密計算での剰余環上の乗算方法に限定はなく、公知の方法で実現できる(例えば、参考文献1「千田浩司,濱田浩気,五十嵐大,高橋克巳,“軽量検証可能3パーティ秘匿関数計算の再考”,CSS2010,2010年」等参照)。ただし、これは一例であって、「第1対象ビット列」の最上位ビットの値を「第1検査ビット」の値とできるのであれば、その他の方法が用いられてもよい。次に秘密計算装置は、「第1検査ビット列」が表す値の秘密分散値を用い、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値を得る。ここで、「第1対象ビット列」が空値に対応する場合には「第1検査ビット」の値は「1」となり、「第1対象ビット列」が実数値に対応する場合には「第1検査ビット」の値は「0」となる。そのため、「第1検査ビット」の値の秘密分散値は、空値検査結果を表す値の秘密分散値となる。また、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値のみを求めればよいため、すべてのビットの秘密分散値を求めて空値検査結果を表す値の秘密分散値を得る場合に比べ、通信量および/または通信段数を削減できる。また「第1検査ビット」が最下位ビットに近いほど秘密計算の対象となるビット数を小さくでき、通信量および/または通信段数をより削減できる。そのため、「第1検査ビット」が最下位ビットであることがより望ましい。なお、「第1検査ビット列」の最下位ビットから「第1検査ビット」までのビット値の秘密分散値を得るための公知の方法としては、例えば参考文献2「五十嵐大,濱田浩気,菊池亮,千田浩司,“少パーティの秘密分散ベース秘密計算のためのO(l)ビット通信ビット分解およびO(p’)ビット通信modulus変換法”,CSS2013,2013年」の「商転移を用いたビット分解」がある。この方法では、最下位ビットから所望のビットまでの各ビット値の秘密分散値を効率的に得ることができる。なお、最下位ビットから所望のビットまでの各ビット値の秘密分散値のみを効率的に得る方法は知られているが、最上位ビットから所望のビットまでの各ビット値の秘密分散値のみを効率的に得る方法や、最上位ビットと最下位ビットとの間に位置するビット値の秘密分散値のみを効率的に得る方法は知られていない。本形態の方式は、このことに着目して秘密計算での空値検査の効率を向上するものである。
上述の構成はメルセンヌ数P=2N-1を法とした剰余環上で実現できる。例えば、各秘密計算装置に入力値Wの秘密分散値[W]が入力されるとする。ただし、Nは2以上の整数であり、Pはメルセンヌ数P=2N-1であり、Nの値によってはメルセンヌ素数となる。空値に対応する値WがW=(P+1)/2 mod Pであり、0以上の整数Xに対応する値WがW=X mod Pであり、負の整数Xに対応する値WがW=(P+X) mod Pである。Lは0≦L≦N-u’の整数であり、Xは-2L≦X≦2N-1-2L-1の整数である。ただし、u’は秘密分散方式に応じた2以上N以下の正の整数である。例えば、2-out-of-3のShamirの秘密分散方式の場合、u’=2となる。この場合、0以上の整数Xは小さな入力値Wに対応し、負の整数Xは大きな入力値Wに対応し、「Xが空値であること」はそれらの間の入力値Wに対応する。各秘密計算装置は、入力値Wの秘密分散値[W]を用い、Y=(W+2L) mod Pの秘密分散値[Y]を得る。この演算は秘密計算での剰余環上の加算である。秘密計算での剰余環上の加算方法に限定はなく、公知の方法で実現できる(例えば「参考文献1」等参照)。Yは空値に対してY={2L+(P+1)/2} mod Pとなり、0以上の整数Xに対してY=(2L+X) mod Pとなり、負の整数Xに対してY=(P+2L+X) mod Pとなる。ここでメルセンヌ数P=2N-1の性質から、空値に対応するYを表すNビットのビット列の最上位ビットは1となり、実数値X(0以上の整数Xまたは負の整数X)に対応するYを表すNビットのビット列の最上位ビットは0となる。-2L≦X≦2N-1-2L-1の条件を満たす限り、異なる実数値Xが同じYに対応することはない。このようなYを表すNビットのビット列を「第1対象ビット列」とすることができる。この場合、「第1検査ビット列」が表す値をV=2T×Y mod Pとでき、下位からTビット目のビットを「第1検査ビット」とできる。ただし、Tは1≦T<Nの整数である。好ましくはT=1であり、この場合には「第1検査ビット」が最下位ビットとなる(「第1対象ビット列」および「第1検査ビット列」のフォーマットの具体例)。
上述した秘密計算での空値検査に加え、秘密計算で大小比較が行われてもよい。この場合、各秘密計算装置は、「比較結果値」の秘密分散値を得、「比較結果値」を表すビット列の下位からKビット目の値の秘密分散値を得る。ただし、「比較結果値」は、「第1対象ビット列」が表す値から「第2対象ビット列」が表す値を減じた値に2K-1を加算した値を表す。「第2対象ビット列」は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応するビット列である。また、Kが2以上の整数であり、最上位ビットが0の第1対象ビット列が表す値および最上位ビットが0の第2対象ビット列が表す値の大きさは0以上2K-1未満である。なお、秘密計算での加減算およびビット値の抽出は公知の方法で実現できる(例えば「参考文献1,2」等参照)。ここで、「第1対象ビット列」が表す値が「第2対象ビット列」が表す値以上である場合、「比較結果値」を表すビット列の下位からKビット目の値は「1」となる。一方、「第1対象ビット列」が表す値が「第2対象ビット列」が表す値未満である場合、「比較結果値」を表すビット列の下位からKビット目の値は「0」となる。すなわち、「比較結果値」を表す下位からKビット目の値は、「第1対象ビット列」が表す値と「第2対象ビット列」が表す値との大小比較結果を表す。
「第2対象ビット列」に対して秘密計算での空値検査が行われてもよい。すなわち、各秘密計算装置が、「第2対象ビット列」が表す値の秘密分散値を用い、「第2対象ビット列」の最上位ビットの値を最上位ビットよりも下位の「第2検査ビット」の値とした「第2検査ビット列」が表す値の秘密分散値を得、「第2検査ビット列」が表す値の秘密分散値を用い、「第2検査ビット」の値の秘密分散値を得てもよい。「第2対象ビット列」および「第2検査ビット列」のフォーマットの具体例は、前述の「第1対象ビット列」および「第1検査ビット列」のフォーマットの具体例と同じである。
上述した秘密計算での空値検査に加え、秘密計算でのソートが行われてもよい。この場合、各秘密計算装置は、「対象ビット列A(d)」が表す値の秘密分散値を用い、「対象ビット列A(d)」の最上位ビットの値を最上位ビットよりも下位の「検査ビット」の値r(d)とした「検査ビット列C(d)」が表す値の秘密分散値を得る。ただし、d=0,…,D-1であり、Dが2以上の整数である。「対象ビット列A(d)」は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する。各秘密計算装置は、「検査ビット列C(d)」が表す値の秘密分散値を用い、「検査ビット列C(d)」の最下位ビットから「対象ビット列A(d)」までのビット値の秘密分散値を得る。さらに、各秘密計算装置は、「対象ビット列A(d)」が表す値の大きさに応じたソート結果の秘密分散値を得る。ただし、最上位ビットが0の「対象ビット列A(d)」が表す値は、「対象ビット列A(d)」が表す値が大きいほど大きな実数値に対応する。各秘密計算装置は、「検査ビット列C(d)」が表す値の大きさに応じたソート結果の秘密分散値を得てもよい。ただし、最上位ビットが0の「対象ビット列A(d)」に対応する「検査ビット列C(d)」が表す値は、「検査ビット列C(d)」が表す値が大きいほど大きな実数値に対応する。さらに、この秘密計算でのソート結果を用い、最大値、最小値、および中央値の少なくとも何れかの秘密分散値を得てもよい。なお、秘密計算でのソート方法には限定はなく、公知の方法でよい(例えば、参考文献3「五十嵐大,濱田浩気,菊池亮,千田浩司,“インターネット環境レスポンス1秒の統計処理を目指した,秘密計算基数ソートの改良”,SCIS2014,2014年」、参考文献4「濱田浩気,五十嵐大,千田浩司,高橋克巳,“秘匿関数計算上の線形時間ソート”,CSS2011,2011年」等参照)。
[第1実施形態]
以降、図面を参照しつつ、各実施形態を説明する。
<構成>
図1に例示するように、第1実施形態の秘密計算システム1は、分散装置11およびM個の秘密計算装置120-12M-1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。ただし、Mは2以上の整数である。説明の便宜上、秘密計算システム1が1個の分散装置11のみを有することにするが、複数個の分散装置11が存在してもよい。あるいは、その他の秘密計算装置が存在してもよい。
以降、図面を参照しつつ、各実施形態を説明する。
<構成>
図1に例示するように、第1実施形態の秘密計算システム1は、分散装置11およびM個の秘密計算装置120-12M-1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。ただし、Mは2以上の整数である。説明の便宜上、秘密計算システム1が1個の分散装置11のみを有することにするが、複数個の分散装置11が存在してもよい。あるいは、その他の秘密計算装置が存在してもよい。
図2に例示するように、本形態の秘密計算装置12m(ただし、m=0,…,M-1)は、通信部121m、記憶部122m、制御部123m、入力演算部124m、検査ビット列取得部125m、および空値検査部126mを有する。秘密計算装置12mは、制御部123mの制御の下で各処理を実行する。各部で得られたデータは、一時メモリ(図示せず)に格納され、必要に応じて読み出されて使用される。
各装置は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
<処理>
次に、図3を参照して本形態の処理を説明する。分散装置11が入力値Wの秘密分散値[W]mを生成して秘密計算装置12m(ただし、m=0,…,M-1)に送信する。本形態の入力値Wのフォーマットは以下の通りである(図4参照)。
(1)空値に対応する値がW=(P+1)/2 mod Pである。
(2)0以上の整数であるXに対応する値がW=X mod Pである。
(3)負の整数であるXに対応する値がW=(P+X) mod Pである。
ただし、Nが2以上の整数であり、Pがメルセンヌ数P=2N-1(Pは10進数で表された整数)であり、Lが0≦L≦N-u’の整数であり、Xが-2L≦X≦2N-1-2L-1の整数(Xは10進数で表された整数)である。Pは素数(メルセンヌ素数)であってもよいし、素数でなくてもよい。u’は秘密分散方式に応じた2以上N以下の正の整数である。入力値WをN桁2進数で表したビット列を入力ビット列と呼ぶ。N=7、u’=2、およびL=5の場合、入力ビット列は以下のようになる。
なお、秘密分散方式に限定はなく、Shamirの秘密分散方式等の線形秘密分散方式、複製秘密分散方式、その他どのような方式(例えば、「参考文献2」等参照)であってもよい。秘密分散値[W]mは、秘密計算装置12m(図2)の通信部121mで受信され、入力演算部124mに送られる(ステップS11m)。
次に、図3を参照して本形態の処理を説明する。分散装置11が入力値Wの秘密分散値[W]mを生成して秘密計算装置12m(ただし、m=0,…,M-1)に送信する。本形態の入力値Wのフォーマットは以下の通りである(図4参照)。
(1)空値に対応する値がW=(P+1)/2 mod Pである。
(2)0以上の整数であるXに対応する値がW=X mod Pである。
(3)負の整数であるXに対応する値がW=(P+X) mod Pである。
ただし、Nが2以上の整数であり、Pがメルセンヌ数P=2N-1(Pは10進数で表された整数)であり、Lが0≦L≦N-u’の整数であり、Xが-2L≦X≦2N-1-2L-1の整数(Xは10進数で表された整数)である。Pは素数(メルセンヌ素数)であってもよいし、素数でなくてもよい。u’は秘密分散方式に応じた2以上N以下の正の整数である。入力値WをN桁2進数で表したビット列を入力ビット列と呼ぶ。N=7、u’=2、およびL=5の場合、入力ビット列は以下のようになる。
入力演算部124mは、秘密計算により、入力値Wの秘密分散値[W]mを用い、Y=(W+2L) mod Pの秘密分散値[Y]mを得て出力する。空値に対応するYは{2L+(P+1)/2} mod Pであり、0以上の整数であるXに対応するYは(2L+X) mod Pであり、負の整数であるXに対応するYは(P+2L+X) mod Pである(図4)。YをN桁2進数で表したビット列を対象ビット列と呼ぶ。Yが空値に対応する場合、対象ビット列1100の最上位ビット1101はaN-1=1となる(図5A)。Yが実数値X(-2L≦X≦2N-1-2L-1の整数)に対応する場合、対象ビット列1100の最上位ビット1101はaN-1=0となる。この特徴はPがメルセンヌ数であることに基づく。例えば、N=7およびL=5の場合、対象ビット列1100は以下のようになる(ステップS12m)。
検査ビット列取得部125mは、Yの秘密分散値[Y]mを入力とし、秘密計算により、V=2T×Y mod Pの秘密分散値[V]mを得て出力する。ただし、Tは1≦T<Nの整数である。VをN桁2進数で表したビット列を検査ビット列と呼ぶ。検査ビット列は、対象ビット列1100をTビット左ローテーションしたビット列である。対象ビット列1100の最上位ビット1101の値aN-1は、検査ビット列の最上位ビットよりも下位のビット(検査ビット)の値となる。図5BはT=1の例であり、検査ビット列1200の最下位ビット(最下位から1ビット目)が検査ビット1201となる。図5CはT=2の例であり、検査ビット列1200の最下位から2ビット目が検査ビット1211となる。例えば、N=7およびL=5の場合、検査ビットは以下のようになる。
このように、検査ビット列1200の最下位からTビット目の値が「Xが空値であるか否か」を表している。「最下位からTビット目」とは、最下位から数えてT番目のビットを意味する。例えば、「最下位から1ビット目」は最下位ビットを意味し、「最下位から2ビット目」は最下位ビットよりも一ケタ上位のビットを意味する(ステップS13m)。
空値検査部126mは、Vの秘密分散値[V]mを入力とし、検査ビット列1200の最下位ビットから検査ビットまでの各ビット値の秘密分散値[r]mを得て出力する。例えば、T=1の場合、空値検査部126mは、最下位ビットである検査ビットの値の秘密分散値[r]mを得て出力する(ステップS14mおよびS15m)。
《参考文献2のビット分解を用いる例》
参考文献2のビット分解を用いる例を示す。この例では、複製秘密分散方式に則った秘密分散値[V]mを用いる。ただし、任意の線形秘密分散方式に則った秘密分散値を、複製秘密分散方式の秘密分散値に変換することが可能である(例えば、参考文献5「R. Cramer, I. Damg_ard, and Y. Ishai, “Share conversion, pseudorandom secret-sharing and applications to secure computation,” In J. Kilian ed., TCC, Vol. 3378 of Lecture Notes in Computer Science, pp. 342-362. Springer, 2005.」等参照)。そのため、複製秘密分散方式への限定は利用上の制限とはならない。
参考文献2のビット分解を用いる例を示す。この例では、複製秘密分散方式に則った秘密分散値[V]mを用いる。ただし、任意の線形秘密分散方式に則った秘密分散値を、複製秘密分散方式の秘密分散値に変換することが可能である(例えば、参考文献5「R. Cramer, I. Damg_ard, and Y. Ishai, “Share conversion, pseudorandom secret-sharing and applications to secure computation,” In J. Kilian ed., TCC, Vol. 3378 of Lecture Notes in Computer Science, pp. 342-362. Springer, 2005.」等参照)。そのため、複製秘密分散方式への限定は利用上の制限とはならない。
この例では、Vの線形秘密分散値を[V]と表記し、Vの複製秘密分散値を{V}と表記する。Vのサブシェアの個数をνとし、自然数である境界値uをlog ν以上の最小の整数とする。νはν≦2uを満たす整数である。Vが2uを法として0と合同となり、VがPを法としてサブシェアx0,…,xν-1の和x0+…+xν-1と合同であるとする。この例のPはメルセンヌ素数であるが、Pがその他のメルセンヌ数であってもよい。この例では2uV<Pとする。iをi=0,1,…,ν-1を満たす整数とし、jをj=0,1,…,ν-1を満たす整数とする。任意の命題PROに対して、〔PRO〕は、PROの真偽を整数に変換する演算子である。
この例の空値検査部126mの公開値倍秘密計算部は、複製秘密分散値{V}ZPを取得して、公開値倍の秘密計算により変形秘密分散値{V’}ZP=2u×ZP{V}ZPを計算する。ただし、{・}ZPはZPの元である複製秘密分散値を表し、「×ZP」はZP上での乗算を表す。空値検査部126mの下位ビット分散部は、i<νを満たすすべてのiについて、変形秘密分散値{V’}ZPのj番目のサブシェア{V’}ZP〈j〉の最下位ビットからuビット(最下位ビットから、最下位から数えてu番目のビットまでのuビット)をビットごとに分散して下位ビット分散値
を取得する。ただし、[・]αはαの元である線形秘密分散値を表す。空値検査部126mの上位ビット分散部は、i<νを満たすすべてのiについて、変形秘密分散値のj番目のサブシェア{V’}ZP〈j〉のuビット目からTビットをビットごとに分散して上位ビット分散値
を取得する。空値検査部126mの下位ビット加算部は、加算回路の秘密計算により下位ビット加算値
を計算する。この下位ビット加算値のうち下位uビットを
上位uビットを
と表す。空値検査部126mの零判定部は、下位ビット加算値の下位uビットを取得して、零判定回路の秘密計算により、零判定値[〔ηu≠0〕]Z2を計算する。空値検査部126mの上位ビット加算部は、i<νを満たすすべてのiについて、上位ビット加算値と、下位ビット加算値の上位uビットと、零判定値を取得して、加算回路の秘密計算により、ビットの秘密分散列
を計算して出力する。ただし
はZ2
T上での総和を表し、
はZ2
T上での加算を表す。式(1)の演算により、VをN桁2進数表記した場合の最下位ビットからTビット目(すなわち、検査ビット)までの各ビット値の秘密分散値[r]mが得られる。式(1)の演算は最下位ビットからTビット目までのみについて実行され、その通信量および演算量は全体のビット数Nに依存しない。T=1の場合、最下位ビットのみについて式(1)の演算を行えばよく、大変効率がよい。特に3パーティの秘密計算では数ビットの通信量と2ラウンドで処理可能である(ステップS14m)。
秘密計算装置12mは秘密分散値[r]mを出力する(ステップS15m)。
[第1実施形態の変形例1]
第1実施形態では、秘密計算装置12mが秘密分散値[r]mを出力した。しかしながら、T≧2の場合であっても、秘密分散値[r]mに代えて検査ビット列Cの各検査ビットの値の秘密分散値のみが出力されてもよい。
第1実施形態では、秘密計算装置12mが秘密分散値[r]mを出力した。しかしながら、T≧2の場合であっても、秘密分散値[r]mに代えて検査ビット列Cの各検査ビットの値の秘密分散値のみが出力されてもよい。
[第1実施形態の変形例2]
第1実施形態では各秘密計算装置12mに入力値Wの秘密分散値[W]mが入力され、各秘密計算装置12mがY=(W+2L) mod Pの秘密分散値[Y]mを得た。しかしながら、各秘密計算装置12mに秘密分散値[Y]mが入力され、ステップS13mからS15mの処理が実行されてもよい。
第1実施形態では各秘密計算装置12mに入力値Wの秘密分散値[W]mが入力され、各秘密計算装置12mがY=(W+2L) mod Pの秘密分散値[Y]mを得た。しかしながら、各秘密計算装置12mに秘密分散値[Y]mが入力され、ステップS13mからS15mの処理が実行されてもよい。
[第2実施形態]
第2実施形態では、秘密計算での空値検査に加え、秘密計算での大小比較を行う。以下では、これまでに説明した事項との相違点を中心に説明し、既に説明した事項についてはこれまでに用いた参照番号を流用して説明を簡略化する。
第2実施形態では、秘密計算での空値検査に加え、秘密計算での大小比較を行う。以下では、これまでに説明した事項との相違点を中心に説明し、既に説明した事項についてはこれまでに用いた参照番号を流用して説明を簡略化する。
<構成>
図1に例示するように、第2実施形態の秘密計算システム2は、分散装置11およびM個の秘密計算装置220-22M-1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。図2に例示するように、本形態の秘密計算装置22m(ただし、m=0,…,M-1)は、通信部121m、記憶部122m、制御部123m、入力演算部224m、検査ビット列取得部225m、空値検査部226m、大小比較ビット列取得部227m、および大小比較部228mを有する。秘密計算装置22mは、制御部123mの制御の下で各処理を実行する。
図1に例示するように、第2実施形態の秘密計算システム2は、分散装置11およびM個の秘密計算装置220-22M-1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。図2に例示するように、本形態の秘密計算装置22m(ただし、m=0,…,M-1)は、通信部121m、記憶部122m、制御部123m、入力演算部224m、検査ビット列取得部225m、空値検査部226m、大小比較ビット列取得部227m、および大小比較部228mを有する。秘密計算装置22mは、制御部123mの制御の下で各処理を実行する。
<処理>
次に、図6を参照して本形態の処理を説明する。
分散装置11は入力値W(0)の秘密分散値[W(0)]mおよび入力値W(1)の秘密分散値[W(1)]mを生成して秘密計算装置22m(ただし、m=0,…,M-1)に送信する。入力値W(0)は空値または実数値X(0)に対応し、入力値W(1)は空値または実数値X(1)に対応する。入力値W(0),W(1)のフォーマットは前述した入力値Wのフォーマットと同じである。秘密分散値[W(0)]m,[W(1)]mは、秘密計算装置22m(図2)の通信部121mで受信され、入力演算部124mに送られる(ステップS21m)。
次に、図6を参照して本形態の処理を説明する。
分散装置11は入力値W(0)の秘密分散値[W(0)]mおよび入力値W(1)の秘密分散値[W(1)]mを生成して秘密計算装置22m(ただし、m=0,…,M-1)に送信する。入力値W(0)は空値または実数値X(0)に対応し、入力値W(1)は空値または実数値X(1)に対応する。入力値W(0),W(1)のフォーマットは前述した入力値Wのフォーマットと同じである。秘密分散値[W(0)]m,[W(1)]mは、秘密計算装置22m(図2)の通信部121mで受信され、入力演算部124mに送られる(ステップS21m)。
入力演算部224mは、秘密計算により、入力値W(0)の秘密分散値[W(0)]mを用いてY(0)=(W(0)+2L) mod Pの秘密分散値[Y(0)]mを得て出力する。また、入力演算部224mは、秘密計算により、入力値W(1)の秘密分散値[W(1)]mを用い、Y(1)=(W(1)+2L) mod Pの秘密分散値[Y(1)]mを得て出力する。Y(0)は「対象ビット列A(0)が表す値」に相当し、Y(1)は「対象ビット列A(1)が表す値」に相当する。対象ビット列A(0)およびA(1)は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応するビット列である(ステップS22m)。
検査ビット列取得部225mは、秘密分散値[Y(0)]mおよび[Y(1)]mを入力とし、秘密計算により、V(0)=2T×Y(0) mod Pの秘密分散値[V(0)]mおよびV(1)=2T×Y(1) mod Pの秘密分散値[V(1)]mを得て出力する。V(0)は「検査ビット列C(0)が表す値」に相当し、V(1)は「検査ビット列C(1)が表す値」に相当する(ステップS23m)。
空値検査部226mは、秘密分散値[V(0)]mを入力とし、検査ビット列C(0)の最下位ビットから検査ビットまでの各ビット値の秘密分散値[r(0)]mを得て出力する。また空値検査部226mは、秘密分散値[V(1)]mを入力とし、検査ビット列C(1)の最下位ビットから検査ビットまでの各ビット値の秘密分散値[r(1)]mを得て出力する。例えば、T=1の場合、空値検査部226mは、最下位ビットである検査ビットの値の秘密分散値[r(0)]mおよび[r(1)]mを得て出力する(ステップS24m)。
大小比較ビット列取得部227mは、秘密分散値[Y(0)]mおよび[Y(1)]mを入力とし、秘密計算により、比較結果値(Y(0)-Y(1)+2K-1) mod P(対象ビット列A(0)が表す値から対象ビット列A(1)が表す値を減じた値に2K-1を加算した値)の秘密分散値[(Y(0)-Y(1)+2K-1) mod P]mを得て出力する。ただし、Kは2以上の整数であり、最上位ビットが0の対象ビット列A(0)が表す値Y(0)および最上位ビットが0の対象ビット列A(1)が表す値Y(1)の大きさは0以上2K-1未満である。ここで、比較結果値(Y(0)-Y(1)+2K-1) mod PのN桁2進数表現であるビット列を大小比較ビット列と呼ぶ。図7AはN=Kの場合の大小比較ビット列2210を例示した概念図であり、最上位ビットが検査ビット2211となっている。図7BはN>Kの場合の大小比較ビット列2220を例示した概念図であり、最上位ビットよりも下位のビットが検査ビット2221となっている。
2K-1 mod PのN桁2進数表現値の下位からKビット目の値は1である。ここでY(0)-Y(1)の大きさは0以上2K-1未満であるため、X(0)≧X(1)である場合、(Y(0)-Y(1)+2K-1) mod PのN桁2進数表現値は2K-1 mod PのN桁2進数表現値以上となり、下位からKビット目の値は必ず1となる。一方、X(0)<X(1)である場合、(Y(0)-Y(1)+2K-1) mod PのN桁2進数表現値は2K-1 mod PのN桁2進数表現値未満となり、下位からKビット目の値は必ず0となる。そのため、X(0)≧X(1)である場合、大小比較ビット列の下位からKビット目の値は1となり、X(0)<X(1)である場合、大小比較ビット列の下位からKビット目の値は0となる。N=K=7およびL=5の場合の具体例を示す。例えば、X(0)=0,X(1)=-1の場合、Y(0)=32,Y(1)=31であり、大小比較ビット列が1000001となり、下位から7ビット目の値が1となる。例えば、X(0)=-10,X(1)=-5の場合、Y(0)=22,Y(1)=27であり、大小比較ビット列が0111011となり、下位から7ビット目の値が0となる(ステップS25m)。
大小比較部228mは、秘密分散値[(Y(0)-Y(1)+2K-1) mod P]mを入力とし、秘密計算により、比較結果値(Y(0)-Y(1)+2K-1) mod Pを表す大小比較ビット列の下位からKビット目の値qの秘密分散値[q]mを得て出力する。この処理は、例えば参考文献2のビット分解を用いて実行できる。ただし、その他のビット分解方法が用いられてもよい(例えば、参考文献6「I. Damgard, M. Fitzi, E. Kiltz, J. B. Nielsen, and T. Toft, “Unconditionally secure constant-rounds multi-party computation for equality, comparison, bits and exponentiation,” In S. Halevi and T. Rabin eds., TCC, Vol. 3876 of Lecture Notes in Computer Science, pp. 285-304. Springer, 2006.」等参照)(ステップS26m)。
秘密計算装置22mは、秘密分散値[r(0)]m,[r(1)]m,[q]mを出力する(ステップS27m)。
[第2実施形態の変形例1]
第2実施形態では、(Y(0)-Y(1)+2K-1) mod Pを比較結果値(対象ビット列A(0)が表す値から対象ビット列A(1)が表す値を減じた値に2K-1を加算した値)とした。しかしながら、Y(0)=(W(0)+2L) mod PおよびY(1)=(W(1)+2L) mod Pであり、(Y(0)-Y(1)+2K-1) mod P=(W(0)-W(1)+2K-1) mod Pである。そのため、(W(0)-W(1)+2K-1) mod Pを比較結果値(対象ビット列A(0)が表す値から対象ビット列A(1)が表す値を減じた値に2K-1を加算した値)としてもよい。この場合には、図8に例示するように、第2実施形態のステップS21m-S24mの実行後、大小比較ビット列取得部227mが秘密分散値[W(0)]mおよび[W(1)]mを入力とし、秘密計算により、比較結果値(W(0)-W(1)+2K-1) mod Pの秘密分散値[(W(0)-W(1)+2K-1) mod P]mを得て出力する(ステップS25’m)。その後、秘密分散値[(Y(0)-Y(1)+2K-1) mod P]mに代えて秘密分散値[(W(0)-W(1)+2K-1) mod P]mを用い、第2実施形態のステップS26m-S27mを実行する。
第2実施形態では、(Y(0)-Y(1)+2K-1) mod Pを比較結果値(対象ビット列A(0)が表す値から対象ビット列A(1)が表す値を減じた値に2K-1を加算した値)とした。しかしながら、Y(0)=(W(0)+2L) mod PおよびY(1)=(W(1)+2L) mod Pであり、(Y(0)-Y(1)+2K-1) mod P=(W(0)-W(1)+2K-1) mod Pである。そのため、(W(0)-W(1)+2K-1) mod Pを比較結果値(対象ビット列A(0)が表す値から対象ビット列A(1)が表す値を減じた値に2K-1を加算した値)としてもよい。この場合には、図8に例示するように、第2実施形態のステップS21m-S24mの実行後、大小比較ビット列取得部227mが秘密分散値[W(0)]mおよび[W(1)]mを入力とし、秘密計算により、比較結果値(W(0)-W(1)+2K-1) mod Pの秘密分散値[(W(0)-W(1)+2K-1) mod P]mを得て出力する(ステップS25’m)。その後、秘密分散値[(Y(0)-Y(1)+2K-1) mod P]mに代えて秘密分散値[(W(0)-W(1)+2K-1) mod P]mを用い、第2実施形態のステップS26m-S27mを実行する。
[第2実施形態の変形例2]
第2実施形態およびその変形例1では、秘密計算装置22mが秘密分散値[r(0)]m,[r(1)]m,秘密分散値[q]mを出力した。しかしながら、T≧2の場合であっても、[r(0)]m,[r(1)]mに代えて検査ビット列C(0),C(1)の各検査ビットの値の秘密分散値のみが出力されてもよい。また、秘密計算装置22mが、各検査ビットの値がともに0の場合に秘密分散値[q]mとなり、何れかの検査ビットの値が1の場合にエラーを表す秘密分散値となる値を生成して出力してもよい。
第2実施形態およびその変形例1では、秘密計算装置22mが秘密分散値[r(0)]m,[r(1)]m,秘密分散値[q]mを出力した。しかしながら、T≧2の場合であっても、[r(0)]m,[r(1)]mに代えて検査ビット列C(0),C(1)の各検査ビットの値の秘密分散値のみが出力されてもよい。また、秘密計算装置22mが、各検査ビットの値がともに0の場合に秘密分散値[q]mとなり、何れかの検査ビットの値が1の場合にエラーを表す秘密分散値となる値を生成して出力してもよい。
[第2実施形態の変形例3]
各秘密計算装置22mに秘密分散値[Y(0)]mおよび[Y(1)]mが入力され、ステップS23mからS27mの処理が実行されてもよい。
各秘密計算装置22mに秘密分散値[Y(0)]mおよび[Y(1)]mが入力され、ステップS23mからS27mの処理が実行されてもよい。
[第3実施形態]
第3実施形態では、秘密計算での空値検査に加え、秘密計算でのソートを行う。
<構成>
図1に例示するように、第3実施形態の秘密計算システム3は、分散装置11およびM個の秘密計算装置320-32M-1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。図2に例示するように、本形態の秘密計算装置32m(ただし、m=0,…,M-1)は、通信部121m、記憶部122m、制御部123m、入力演算部224m、検査ビット列取得部225m、空値検査部226m、ソート部327m、およびソート結果利用演算部328mを有する。秘密計算装置32mは、制御部123mの制御の下で各処理を実行する。
第3実施形態では、秘密計算での空値検査に加え、秘密計算でのソートを行う。
<構成>
図1に例示するように、第3実施形態の秘密計算システム3は、分散装置11およびM個の秘密計算装置320-32M-1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。図2に例示するように、本形態の秘密計算装置32m(ただし、m=0,…,M-1)は、通信部121m、記憶部122m、制御部123m、入力演算部224m、検査ビット列取得部225m、空値検査部226m、ソート部327m、およびソート結果利用演算部328mを有する。秘密計算装置32mは、制御部123mの制御の下で各処理を実行する。
<処理>
次に、図9を参照して本形態の処理を説明する。
分散装置11は入力値W(d)の秘密分散値[W(d)]mを生成して秘密計算装置22m(ただし、m=0,…,M-1、d=0,…,D-1であり、Dが2以上の整数である)に送信する。入力値W(d)は空値または実数値X(d)に対応する。入力値W(d)のフォーマットは前述した入力値Wのフォーマットと同じである。秘密分散値[W(d)]mmは、秘密計算装置32m(図2)の通信部121mで受信され、入力演算部124mに送られる(ステップS31m)。
次に、図9を参照して本形態の処理を説明する。
分散装置11は入力値W(d)の秘密分散値[W(d)]mを生成して秘密計算装置22m(ただし、m=0,…,M-1、d=0,…,D-1であり、Dが2以上の整数である)に送信する。入力値W(d)は空値または実数値X(d)に対応する。入力値W(d)のフォーマットは前述した入力値Wのフォーマットと同じである。秘密分散値[W(d)]mmは、秘密計算装置32m(図2)の通信部121mで受信され、入力演算部124mに送られる(ステップS31m)。
入力演算部324mは、秘密計算により、入力値W(d)の秘密分散値[W(d)]mを用いてY(d)=(W(d)+2L) mod Pの秘密分散値[Y(d)]mを得て出力する。Y(d)は「対象ビット列A(d)が表す値」に相当する。対象ビット列A(d)は、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応するビット列である(ステップS32m)。
検査ビット列取得部325mは、秘密分散値[Y(d)]mを入力とし、秘密計算により、V(d)=2T×Y(d) mod Pの秘密分散値[V(d)]mを得て出力する。V(d)は「検査ビット列C(d)が表す値」に相当する(ステップS33m)。
空値検査部326mは、秘密分散値[V(d)]mを入力とし、検査ビット列C(d)の最下位ビットから検査ビットまでの各ビット値の秘密分散値[r(d)]mを得て出力する。例えば、T=1の場合、空値検査部326mは、最下位ビットである検査ビットの値の秘密分散値[r(d)]mを得て出力する(ステップS34m)。
ソート部327mは、対象ビット列A(d)(ただし、d=0,…,D-1)が表すY(d)の秘密分散値[Y(d)]を入力とし、秘密計算により、Y(d)の大きさに応じたソートを行い、そのソート結果の秘密分散値[θ]mを得て出力する。Y(d)はY(d)が大きいほど大きな実数値X(d)に対応している。なお、秘密計算によるソート方法に限定はなく、公知の方法によって実行すればよい。例えば、ソート部327mは、参考文献2のビット分解により、対象ビット列A(d)の各ビット値の秘密分散値からなるベクトル[BitA(d)]の列を得、ベクトル[BitA(d)]の列を参考文献3,4等の方法でソートし、その結果の秘密分散値[θ]mを出力する。秘密分散値[θ]mは、例えばソートされた[BitA(d)]の列である(ステップS35m)。
ソート結果利用演算部328mは、ソート結果の秘密分散値[θ]mを得、最大値、最小値、中央値の少なくとも何れの秘密分散値[Φ]mを得て出力する。最大値の秘密分散値を得る場合、ソート結果利用演算部328mは、例えばソートされた[BitA(d)]の列のうち最後の要素を選択して出力する。最小値の秘密分散値を得る場合、ソート結果利用演算部328mは、例えばソートされた[BitA(d)]の列のうち最初の要素を選択して出力する。中央値の秘密分散値を得る場合には、例えば次のような処理を行う。Dが奇数のとき、ソート結果利用演算部328mは、ソートされた[BitA(d)]の列の中央の列の各要素の2倍値を要素とする列の秘密分散値を出力する。Dが偶数のとき、ソート結果利用演算部328mは、ソートされた[BitA(d)]の列の中央に最も近い2列を加算した列の秘密分散値を出力する(ステップS36m)。
秘密計算装置32mは、秘密分散値[r(d)]m(ただし、d=0,…,D-1)および[Φ]mを出力する(ステップS37m)。
[第3実施形態の変形例1]
第3実施形態では、ソート部327mが、対象ビット列A(d)(ただし、d=0,…,D-1)が表すY(d)の秘密分散値[Y(d)]を入力とし、秘密計算により、Y(d)の大きさに応じたソートを行い、そのソート結果の秘密分散値[θ]mを得て出力した(ステップS35m)。これに代え、図10に示すように、ソート部327mが、秘密分散値[V(d)]mを入力とし、秘密計算により、検査ビット列C(d)が表す値V(d)の大きさに応じたソートを行い、そのソート結果の秘密分散値[θ]mを得て出力してもよい(ステップS35’m)。
第3実施形態では、ソート部327mが、対象ビット列A(d)(ただし、d=0,…,D-1)が表すY(d)の秘密分散値[Y(d)]を入力とし、秘密計算により、Y(d)の大きさに応じたソートを行い、そのソート結果の秘密分散値[θ]mを得て出力した(ステップS35m)。これに代え、図10に示すように、ソート部327mが、秘密分散値[V(d)]mを入力とし、秘密計算により、検査ビット列C(d)が表す値V(d)の大きさに応じたソートを行い、そのソート結果の秘密分散値[θ]mを得て出力してもよい(ステップS35’m)。
[第3実施形態の変形例2]
第3実施形態およびその変形例1では、秘密計算装置32mが、秘密分散値[r(d)]m(ただし、d=0,…,D-1)および[Φ]mを出力した。しかしながら、T≧2の場合であっても、[r(d)]m(ただし、d=0,…,D-1)に代えて、検査ビット列C(d)の各検査ビットの値の秘密分散値のみが出力されてもよい。[Φ]mに代えて[θ]mが出力されてもよい。また、秘密計算装置32mが、各検査ビットの値がすべて0の場合に秘密分散値[Φ]mまたは[θ]mとなり、何れかの検査ビットの値が1の場合にエラーを表す秘密分散値となる値を生成して出力してもよい。
第3実施形態およびその変形例1では、秘密計算装置32mが、秘密分散値[r(d)]m(ただし、d=0,…,D-1)および[Φ]mを出力した。しかしながら、T≧2の場合であっても、[r(d)]m(ただし、d=0,…,D-1)に代えて、検査ビット列C(d)の各検査ビットの値の秘密分散値のみが出力されてもよい。[Φ]mに代えて[θ]mが出力されてもよい。また、秘密計算装置32mが、各検査ビットの値がすべて0の場合に秘密分散値[Φ]mまたは[θ]mとなり、何れかの検査ビットの値が1の場合にエラーを表す秘密分散値となる値を生成して出力してもよい。
[第3実施形態の変形例3]
各秘密計算装置32mに秘密分散値[Y(d)]mが入力され、ステップS33mからS37mの処理が実行されてもよい。
各秘密計算装置32mに秘密分散値[Y(d)]mが入力され、ステップS33mからS37mの処理が実行されてもよい。
[第4実施形態]
第1から第3実施形態を組み合わせた形態であってもよいし、それらの少なくとも一部が前述の変形例に置き換えられた形態であってもよい。図1に例示するように、このような形態の計算システム4は、分散装置11およびM個の秘密計算装置420-42M-1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。秘密計算装置42m(ただし、m=0,…,M-1)は、通信部121m、記憶部122m、制御部123m、入力演算部124m、検査ビット列取得部125m、空値検査部126m、大小比較ビット列取得部227m、大小比較部228m、ソート部327m、およびソート結果利用演算部328mを有する。秘密計算装置42mは、制御部123mの制御の下で各処理を実行する。各部の処理は第1から第3実施形態およびそれらの変形例で説明した通りである。
第1から第3実施形態を組み合わせた形態であってもよいし、それらの少なくとも一部が前述の変形例に置き換えられた形態であってもよい。図1に例示するように、このような形態の計算システム4は、分散装置11およびM個の秘密計算装置420-42M-1を有し、これらはインターネット等のネットワーク経由で通信可能に構成される。秘密計算装置42m(ただし、m=0,…,M-1)は、通信部121m、記憶部122m、制御部123m、入力演算部124m、検査ビット列取得部125m、空値検査部126m、大小比較ビット列取得部227m、大小比較部228m、ソート部327m、およびソート結果利用演算部328mを有する。秘密計算装置42mは、制御部123mの制御の下で各処理を実行する。各部の処理は第1から第3実施形態およびそれらの変形例で説明した通りである。
[その他の変形例等]
本発明は上述の実施の形態に限定されるものではない。例えば、秘密分散値[W]mがその他の秘密計算装置での秘密計算結果であってもよい。また、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。あるいは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。これらの装置の一部からなる組み合わせが、同一の装置であってもよい。
本発明は上述の実施の形態に限定されるものではない。例えば、秘密分散値[W]mがその他の秘密計算装置での秘密計算結果であってもよい。また、各装置がネットワークを通じて情報をやり取りするのではなく、少なくとも一部の組の装置が可搬型記録媒体を介して情報をやり取りしてもよい。あるいは、少なくとも一部の組の装置が非可搬型の記録媒体を介して情報をやり取りしてもよい。これらの装置の一部からなる組み合わせが、同一の装置であってもよい。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
上記実施形態の技術は、秘密計算による数値計算や集計処理などに利用できる。例えば、上記実施形態の技術は、匿名によるアンケート結果の集計や投票結果の集計などに適用できる。
1-4 秘密計算システム
11 分散装置
12m-42m 秘密計算装置
11 分散装置
12m-42m 秘密計算装置
Claims (9)
- 最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する第1対象ビット列が表す値の秘密分散値を用い、前記第1対象ビット列の最上位ビットの値を最上位ビットよりも下位の第1検査ビットの値とした第1検査ビット列が表す値の秘密分散値を得る第1検査ビット列取得部と、
前記第1検査ビット列が表す値の秘密分散値を用い、前記第1検査ビット列の最下位ビットから前記第1検査ビットまでのビット値の秘密分散値を得る第1空値検査部と、
を有する秘密計算装置。 - 請求項1の秘密計算装置であって、
Nが2以上の整数であり、P=2N-1であり、Lが0≦L≦N-u’の整数であり、u’が2以上N以下の正の整数であり、Xが-2L≦X≦2N-1-2L-1の整数であり、
前記第1対象ビット列がN個のビットからなる列であり、
空値に対応する前記第1対象ビット列が表す値は、Y={2L+(P+1)/2} mod Pであり、
0以上の整数であるXに対応する前記第1対象ビット列が表す値は、Y=(2L+X) mod Pであり、
負の整数であるXに対応する前記第1対象ビット列が表す値は、Y=(P+2L+X) mod Pである、秘密計算装置。 - 請求項2の秘密計算装置であって、
空値に対応する値がW=(P+1)/2 mod Pであり、0以上の整数であるXに対応する値がW=X mod Pであり、負の整数であるXに対応する値がW=(P+X) mod Pである入力値Wの秘密分散値を用い、前記第1対象ビット列が表す値Y=(W+2L) mod Pの秘密分散値を得る入力演算部を有する、秘密計算装置。 - 請求項1から3の何れかの秘密計算装置であって、
第2対象ビット列が、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応するビット列であり、
前記第1対象ビット列が表す値から前記第2対象ビット列が表す値を減じた値に2K-1を加算した値を表す比較結果値の秘密分散値を得る大小比較ビット列取得部と、
前記比較結果値を表すビット列の下位からKビット目の値の秘密分散値を得る大小比較部と、を有し、
Kが2以上の整数であり、最上位ビットが0の前記第1対象ビット列が表す値および最上位ビットが0の前記第2対象ビット列が表す値の大きさは0以上2K-1未満である、秘密計算装置。 - 請求項4の秘密計算装置であって、
前記第2対象ビット列が表す値の秘匿値を用い、前記第2対象ビット列の最上位ビットの値を最上位ビットよりも下位の第2検査ビットの値とした第2検査ビット列が表す値の秘密分散値を得る第2検査ビット列取得部と、
前記第2検査ビット列が表す値の秘密分散値を用い、前記第1検査ビット列の最下位ビットから前記第2検査ビットまでのビット値の秘密分散値を得る第2空値検査部と、
を有する、秘密計算装置。 - d=0,…,D-1であり、Dが2以上の整数であり、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する対象ビット列A(d)が表す値の秘密分散値を用い、前記対象ビット列A(d)の最上位ビットの値を最上位ビットよりも下位の検査ビットの値r(d)とした検査ビット列C(d)が表す値の秘密分散値を得る検査ビット列取得部と、
前記検査ビット列C(d)が表す値の秘密分散値を用い、前記第1検査ビット列C(d)の最下位ビットから前記検査ビットまでのビット値の秘密分散値を得る空値検査部と、
前記対象ビット列A(d)が表す値の大きさに応じたソート結果の秘密分散値、または検査ビット列C(d)が表す値の大きさに応じたソート結果の秘密分散値を得るソート部と、
を有し、
前記ソート部で前記対象ビット列A(d)が表す値の大きさに応じたソート結果の秘密分散値を得る場合には、最上位ビットが0の前記対象ビット列A(d)が表す値が、前記対象ビット列A(d)が表す値が大きいほど大きな実数値に対応しており、
前記ソート部で検査ビット列C(d)が表す値の大きさに応じたソート結果の秘密分散値を得る場合には、最上位ビットが0の前記対象ビット列A(d)に対応する前記検査ビット列C(d)が表す値が、前記検査ビット列C(d)が表す値が大きいほど大きな実数値に対応している、秘密計算装置。 - 最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する第1対象ビット列が表す値の秘密分散値を用い、前記第1対象ビット列の最上位ビットの値を最上位ビットよりも下位の第1検査ビットの値とした第1検査ビット列が表す値の秘密分散値を得る第1検査ビット取得ステップと、
前記第1検査ビット列が表す値の秘密分散値を用い、前記第1検査ビット列の最下位ビットから前記第1検査ビットまでのビット値の秘密分散値を得る第1空値検査ステップと、
を有する秘密計算方法。 - d=0,…,D-1であり、Dが2以上の整数であり、最上位ビットが1の場合に空値に対応し、最上位ビットが0の場合に実数値に対応する対象ビット列A(d)が表す値の秘密分散値を用い、前記対象ビット列A(d)の最上位ビットの値を最上位ビットよりも下位の検査ビットの値r(d)とした検査ビット列C(d)が表す値の秘密分散値を得る検査ビット列取得ステップと、
前記検査ビット列C(d)が表す値の秘密分散値を用い、前記第1検査ビット列C(d)の最下位ビットから前記検査ビットまでのビット値の秘密分散値を得る空値検査ステップと、
前記対象ビット列A(d)が表す値の大きさに応じたソート結果の秘密分散値、または検査ビット列C(d)が表す値の大きさに応じたソート結果の秘密分散値を得るソートステップと、
を有し、
前記ソートステップで前記対象ビット列A(d)が表す値の大きさに応じたソート結果の秘密分散値を得る場合には、最上位ビットが0の前記対象ビット列A(d)が表す値が、前記対象ビット列A(d)が表す値が大きいほど大きな実数値に対応しており、
前記ソートステップで検査ビット列C(d)が表す値の大きさに応じたソート結果の秘密分散値を得る場合には、最上位ビットが0の前記対象ビット列A(d)に対応する前記検査ビット列C(d)が表す値が、前記検査ビット列C(d)が表す値が大きいほど大きな実数値に対応している、秘密計算方法。 - 請求項1から6の何れかの秘密計算装置としてコンピュータを機能させるためのプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/737,915 US10679522B2 (en) | 2015-06-24 | 2016-06-13 | Secure computation apparatus, secure computation method and program |
EP16814208.1A EP3316235B1 (en) | 2015-06-24 | 2016-06-13 | Device, method and program for secure multiparty comparison |
CN201680033336.5A CN107735830B (zh) | 2015-06-24 | 2016-06-13 | 秘密计算装置、秘密计算方法和记录介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015126179A JP5957126B1 (ja) | 2015-06-24 | 2015-06-24 | 秘密計算装置、秘密計算方法、およびプログラム |
JP2015-126179 | 2015-06-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016208437A1 true WO2016208437A1 (ja) | 2016-12-29 |
Family
ID=56513738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2016/067529 WO2016208437A1 (ja) | 2015-06-24 | 2016-06-13 | 秘密計算装置、秘密計算方法、およびプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US10679522B2 (ja) |
EP (1) | EP3316235B1 (ja) |
JP (1) | JP5957126B1 (ja) |
CN (1) | CN107735830B (ja) |
WO (1) | WO2016208437A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020075273A1 (ja) * | 2018-10-11 | 2020-04-16 | 日本電気株式会社 | 情報処理装置、秘密計算方法及びプログラム |
AU2018349732B2 (en) * | 2017-10-12 | 2021-01-07 | Nippon Telegraph And Telephone Corporation | Permutation apparatus, permutation method, and program |
US11599681B2 (en) | 2017-05-18 | 2023-03-07 | Nec Corporation | Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11314506B2 (en) | 2017-05-18 | 2022-04-26 | Nec Corporation | Secure computation device, comparison method, comparison program recording medium, and secure computation system |
TWI692743B (zh) * | 2018-01-08 | 2020-05-01 | 國立高雄科技大學 | 以調色盤壓縮為基礎的彩色影像驗證方法與電腦程式產品 |
WO2019203262A1 (ja) * | 2018-04-20 | 2019-10-24 | 日本電信電話株式会社 | 秘密集約順位システム、秘密計算装置、秘密集約順位方法、およびプログラム |
JP6973633B2 (ja) * | 2018-04-25 | 2021-12-01 | 日本電信電話株式会社 | 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム |
AU2019259262B2 (en) * | 2018-04-26 | 2021-07-22 | Nippon Telegraph And Telephone Corporation | Secure aggregate median system, secure computation apparatus, secure aggregate median method, and program |
CN112567442B (zh) * | 2018-08-13 | 2024-04-09 | 日本电信电话株式会社 | 秘密强映射计算系统、它们的方法、秘密计算装置以及记录介质 |
TWI790441B (zh) | 2019-05-24 | 2023-01-21 | 美商拉莫斯科技有限公司 | 於烷基化反應器中彈性生產汽油及航空燃料 |
US11290264B2 (en) * | 2019-11-06 | 2022-03-29 | Robert Bosch Gmbh | Secure and efficient multi-server oblivious random access machine in a malicious execution environment |
CN114981864A (zh) * | 2020-01-20 | 2022-08-30 | 日本电信电话株式会社 | 秘密选择积计算系统、秘密选择积计算方法、秘密计算装置以及程序 |
EP4095829A4 (en) * | 2020-01-20 | 2023-10-18 | Nippon Telegraph And Telephone Corporation | SECURE COMPUTING DEVICE, SECURE CALCULATION METHOD AND PROGRAM |
WO2021192006A1 (ja) * | 2020-03-24 | 2021-09-30 | 日本電気株式会社 | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム |
WO2022079891A1 (ja) * | 2020-10-16 | 2022-04-21 | 日本電信電話株式会社 | 秘匿msb正規化システム、分散処理装置、秘匿msb正規化方法、およびプログラム |
JP7451445B2 (ja) * | 2021-02-10 | 2024-03-18 | 株式会社東芝 | 秘匿演算方法、秘匿演算システム及び秘匿演算管理装置 |
WO2023233622A1 (ja) * | 2022-06-02 | 2023-12-07 | 日本電信電話株式会社 | 秘密計算装置、秘密計算方法、プログラム |
CN114760055B (zh) * | 2022-06-15 | 2022-09-09 | 山东区块链研究院 | 基于梅森素数的秘密分享方法、系统、存储介质及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015053185A1 (ja) * | 2013-10-10 | 2015-04-16 | 日本電信電話株式会社 | 秘密商転移装置、秘密ビット分解装置、秘密モジュラス変換装置、秘密商転移方法、秘密ビット分解方法、秘密モジュラス変換方法、プログラム |
WO2015107951A1 (ja) * | 2014-01-17 | 2015-07-23 | 日本電信電話株式会社 | 秘密計算方法、秘密計算システム、ソート装置及びプログラム |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004100496A2 (en) * | 2004-09-02 | 2004-11-18 | Pisaramedia Oy | Ends - messaging protocol that recovers and has backward security |
JP2007189517A (ja) * | 2006-01-13 | 2007-07-26 | Nec Corp | 量子暗号装置 |
EP1835657B1 (en) * | 2006-03-16 | 2014-11-12 | Sap Se | Methods and systems for multi-party sorting of private values |
JP4901311B2 (ja) * | 2006-06-01 | 2012-03-21 | 株式会社東芝 | データ処理装置、データ処理方法、およびデータ処理プログラム |
JP5424974B2 (ja) * | 2010-04-27 | 2014-02-26 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置 |
WO2012046692A1 (ja) * | 2010-10-06 | 2012-04-12 | 日本電信電話株式会社 | 秘密分散システム、秘密分散装置、秘密分散方法、秘密ソート方法、秘密分散プログラム |
US9292258B2 (en) * | 2011-01-24 | 2016-03-22 | Nippon Telegraph And Telephone Corporation | Secure sum-of-product computation method, secure sum-of-product computation system, computation apparatus and programs therefor |
JP5480828B2 (ja) * | 2011-01-24 | 2014-04-23 | 日本電信電話株式会社 | 秘密ソートシステム、秘密ソート装置、秘密ソート方法、秘密ソートプログラム |
CN104412539B (zh) * | 2012-07-05 | 2017-05-24 | 日本电信电话株式会社 | 秘密分散系统、数据分散装置、分散数据变换装置、以及秘密分散方法 |
CN105027180B (zh) * | 2013-01-17 | 2017-03-29 | 日本电信电话株式会社 | 保密计算系统、运算装置、以及保密计算方法 |
JP6034927B1 (ja) * | 2015-07-27 | 2016-11-30 | 日本電信電話株式会社 | 秘密計算システム、秘密計算装置、およびプログラム |
-
2015
- 2015-06-24 JP JP2015126179A patent/JP5957126B1/ja active Active
-
2016
- 2016-06-13 WO PCT/JP2016/067529 patent/WO2016208437A1/ja active Application Filing
- 2016-06-13 CN CN201680033336.5A patent/CN107735830B/zh active Active
- 2016-06-13 EP EP16814208.1A patent/EP3316235B1/en active Active
- 2016-06-13 US US15/737,915 patent/US10679522B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015053185A1 (ja) * | 2013-10-10 | 2015-04-16 | 日本電信電話株式会社 | 秘密商転移装置、秘密ビット分解装置、秘密モジュラス変換装置、秘密商転移方法、秘密ビット分解方法、秘密モジュラス変換方法、プログラム |
WO2015107951A1 (ja) * | 2014-01-17 | 2015-07-23 | 日本電信電話株式会社 | 秘密計算方法、秘密計算システム、ソート装置及びプログラム |
Non-Patent Citations (2)
Title |
---|
HIROSHI IGARASHI ET AL.: "Bits Communication Bit Decomposition and <i>O</i>(|<i>p'</i>|) Bits Communication Modulus Conversion for Small <i>k</i> Secret-Sharing-Based Secure Computation", COMPUTER SECURITY SYMPOSIUM 2013 RONBUNSHU, pages 785 - 792, XP009507903 * |
RYO KATO ET AL.: "Improving Efficiency of Secure Multi-Party Computation", COMPUTER SECURITY SYMPOSIUM 2013 RONBUNSHU, pages 419 - 426, XP055505091 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11599681B2 (en) | 2017-05-18 | 2023-03-07 | Nec Corporation | Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program |
AU2018349732B2 (en) * | 2017-10-12 | 2021-01-07 | Nippon Telegraph And Telephone Corporation | Permutation apparatus, permutation method, and program |
WO2020075273A1 (ja) * | 2018-10-11 | 2020-04-16 | 日本電気株式会社 | 情報処理装置、秘密計算方法及びプログラム |
JPWO2020075273A1 (ja) * | 2018-10-11 | 2021-09-02 | 日本電気株式会社 | 情報処理装置、秘密計算方法及びプログラム |
JP7259862B2 (ja) | 2018-10-11 | 2023-04-18 | 日本電気株式会社 | 情報処理装置、秘密計算方法及びプログラム |
US11870892B2 (en) | 2018-10-11 | 2024-01-09 | Nec Corporation | Information processing apparatus, secret calculation method, and program |
Also Published As
Publication number | Publication date |
---|---|
CN107735830B (zh) | 2020-10-20 |
EP3316235A1 (en) | 2018-05-02 |
JP5957126B1 (ja) | 2016-07-27 |
US20180158377A1 (en) | 2018-06-07 |
EP3316235B1 (en) | 2020-04-29 |
JP2017009840A (ja) | 2017-01-12 |
CN107735830A (zh) | 2018-02-23 |
EP3316235A4 (en) | 2019-01-30 |
US10679522B2 (en) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016208437A1 (ja) | 秘密計算装置、秘密計算方法、およびプログラム | |
Alabdulatif et al. | Towards secure big data analytic for cloud-enabled applications with fully homomorphic encryption | |
Bauer et al. | Clear and compress: Computing persistent homology in chunks | |
US20160218862A1 (en) | Secret quotient transfer device, secret bit decomposition device, secret modulus conversion device, secret quotient transfer method, secret bit decomposition method, secret modulus conversion method, and programs therefor | |
WO2019208484A1 (ja) | 秘密集約総和システム、秘密計算装置、秘密集約総和方法、およびプログラム | |
JP7031682B2 (ja) | 秘密計算装置、システム、方法、プログラム | |
JP5872085B1 (ja) | 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム | |
JP6973633B2 (ja) | 秘密集約最大値システム、秘密集約最小値システム、秘密計算装置、秘密集約最大値方法、秘密集約最小値方法、およびプログラム | |
WO2020075797A1 (ja) | 秘密右シフト演算システム、秘密除算システム、それらの方法、秘密計算装置、およびプログラム | |
JP2014081475A (ja) | 秘密計算システム、集約関数装置、秘密計算方法、およびプログラム | |
Zheng et al. | Towards secure and practical machine learning via secret sharing and random permutation | |
EP4016506B1 (en) | Softmax function secret calculation system, softmax function secret calculation device, softmax function secret calculation method, neural network secret calculation system, neural network secret learning system, and program | |
WO2018061800A1 (ja) | 秘密等結合システム、秘密等結合装置、秘密等結合方法、プログラム | |
JP6367959B2 (ja) | 部分文字列位置検出装置、部分文字列位置検出方法及びプログラム | |
JP5670366B2 (ja) | 匿名データ提供システム、匿名データ装置、それらが実行する方法、およびプログラム | |
CN106796765B (zh) | 非减序列判定装置、非减序列判定方法以及记录介质 | |
CN105989154B (zh) | 相似性度量的方法及设备 | |
WO2019221108A1 (ja) | 秘密クロス集計システム、秘密計算装置、秘密クロス集計方法、およびプログラム | |
WO2015107780A1 (ja) | 要素複製装置、要素複製方法、およびプログラム | |
US10469257B2 (en) | Matrix and key generation device, matrix and key generation system, matrix coupling device, matrix and key generation method, and program | |
CN113626841A (zh) | 基于多方安全计算的选择问题处理方法 | |
JP5875719B1 (ja) | 乱数生成装置、乱数生成方法、およびプログラム | |
WO2023233622A1 (ja) | 秘密計算装置、秘密計算方法、プログラム | |
WO2024018504A1 (ja) | クライアント装置、秘密テーブル管理システム、レコード登録要求生成方法、レコード登録方法、処理要求実行方法、プログラム | |
WO2023281693A1 (ja) | 秘密計算システム、装置、方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16814208 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15737915 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2016814208 Country of ref document: EP |