WO2017014224A1 - 秘密計算装置、その方法、およびプログラム - Google Patents
秘密計算装置、その方法、およびプログラム Download PDFInfo
- Publication number
- WO2017014224A1 WO2017014224A1 PCT/JP2016/071214 JP2016071214W WO2017014224A1 WO 2017014224 A1 WO2017014224 A1 WO 2017014224A1 JP 2016071214 W JP2016071214 W JP 2016071214W WO 2017014224 A1 WO2017014224 A1 WO 2017014224A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- value
- meta information
- secret
- value corresponding
- share
- Prior art date
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/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- 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
-
- 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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
Definitions
- the present invention relates to the technical field of secret computation.
- Non-Patent Document 1 A technique for performing a secret calculation based on replicating secret sharing is known (for example, see Non-Patent Document 1).
- An object of the present invention is to improve the efficiency of a scheme in which each secret calculation device performs a secret calculation using a value received from another secret calculation device.
- the secret computing device in order to obtain a secret sharing value of a calculation result according to an input value that is a function value of a plurality of subshares, an assigned share that is a true subset of a subshare set having a plurality of subshares as elements, and When meta information representing a value corresponding to an element of a subshare set or indicating that the element is a secret value is stored, and a value corresponding to a provision corresponding value corresponding to a subset of the share allocated cannot be obtained from the meta information Output value corresponding to the provision correspondence value obtained from the subset of the allocation share, and the value corresponding to the acquisition correspondence value corresponding to the subset of the external allocation share that is a true subset of the subshare set from the meta information.
- the acquired value is not obtained, an input of the acquired value corresponding to the acquisition corresponding value is accepted, and when the acquired value is input, the secret sharing value is obtained using at least the acquired value.
- each secret calculation device performs a secret calculation using a value received from another secret calculation device.
- FIG. 1 is a block diagram illustrating a functional configuration of a secret calculation system according to an embodiment.
- FIG. 2 is a block diagram illustrating a functional configuration of the secret computing device according to the embodiment.
- FIG. 3 is a conceptual diagram for illustrating the secret calculation method of the embodiment.
- FIG. 4 is a flowchart for illustrating the secret calculation method of the embodiment.
- FIG. 5 is a flowchart for illustrating the secret calculation method of the embodiment.
- FIG. 6 is a flowchart for illustrating the secret calculation method of the embodiment.
- FIG. 7 is a flowchart for illustrating the secret calculation method of the embodiment.
- FIG. 8 is a conceptual diagram for illustrating the secret calculation method of the embodiment.
- FIG. 9 is a flowchart for illustrating the secret calculation method of the embodiment.
- FIG. 10 is a flowchart for illustrating the secret calculation method of the embodiment.
- FIG. 11 is a flowchart for illustrating the secret calculation method of the embodiment.
- FIG. 12 is
- a plurality of secret calculation devices obtain the secret sharing value of the operation result according to the “input value”.
- the “input value” is secret-shared in accordance with a duplicate secret sharing scheme. That is, “input value” is a function value of a plurality of subshares (for example, addition value, addition / subtraction value, etc.), and a true subset of “subshare set” having the plurality of subshares as elements is shared (“input value” Assigned to each secret sharing apparatus. However, values corresponding to some subshares may be known to each secret sharing apparatus.
- the “value corresponding to ⁇ ” may be ⁇ itself or a function value of ⁇ .
- the “value corresponding to ⁇ ” is a value corresponding to ⁇ , for example.
- the “calculation result according to the input value” may be the input value itself or a function value of the input value.
- “meta information” indicating a value corresponding to an element of the “sub-share set” or indicating that the element is a secret value is set.
- An element in which “value corresponding to an element” is represented by “meta information” can be identified from the “meta information”.
- Each “secret allocation device” stores these “assignment share” and “meta information”. If the value corresponding to the “provided correspondence value” corresponding to the subset of “allocation share” cannot be obtained from the “meta information”, the secret computing device obtains the “provided correspondence value” obtained from the subset of “allocation share”. "Provided value” is output to another secret computing device.
- the “provided corresponding value according to the subset” may be the subset itself or a function value of the subset.
- the “provided value corresponding to the provided correspondence value” may be the provided correspondence value itself or a function value of the provided correspondence value.
- the secret calculation device does not need to output the “provided value” to another secret calculation device. Also, if the value corresponding to “Acquisition Corresponding Value” corresponding to the subset of “External Allocation Share” that is a true subset of “Sub Share Set” is not obtained from “Meta Information”, the value corresponding to “Acquisition Corresponding Value” “Acquired value” is input to the secret computing device.
- the “external allocation share” means a share allocated to another secret computing device.
- the “acquisition correspondence value according to the subset” may be the subset itself or a function value of the subset.
- the “acquisition value corresponding to the acquisition correspondence value” may be the acquisition correspondence value itself or a function value of the acquisition correspondence value.
- a value corresponding to the “acquisition corresponding value” is obtained from the “meta information”, it is not necessary to input the “acquired value” to the secret computing device.
- the secret computing device obtains “the secret sharing value of the operation result according to the input value” using at least the “acquired value”. As a result, the number of values exchanged between the secret computing devices can be reduced, and the efficiency can be improved.
- the “second input value” is also secret-shared in accordance with the duplicate secret sharing scheme. That is, the “second input value” is a function value of a plurality of second subshares, and the true subset of the “second subshare set” having the plurality of second subshares as elements is the second share (“second input”). Assigned to each secret sharing apparatus as “value secret sharing value”. However, values corresponding to some second subshares may be known to each secret computing device.
- “second meta information” indicating a value corresponding to an element of the “second subshare set” or indicating that the element is a secret value is set.
- the element in which “value corresponding to the element” is represented by “second meta information” can be specified from the “second meta information”.
- An element whose “second data information” indicates “being a secret value” cannot be specified from the “second meta information”.
- Each of the secret computing devices stores these “second allocation share” and “second meta information”.
- the secret computing device obtains a value corresponding to the “provided corresponding value” corresponding to the subset of “allocation share” and the subset of “second allocation share” from “meta information” and “second meta information”.
- the “provided value” corresponding to the “provided corresponding value” obtained from the subset of “allocation share” and the subset of “second allocation share” is output to another secret computing device.
- a subset of “external allocation share” which is a true subset of “subshare set” and “second external allocation share” which is a true subset of “second subshare set” When the value corresponding to the “acquisition corresponding value” corresponding to the subset “” cannot be obtained, the “acquisition value” corresponding to the “acquisition corresponding value” is input to the secret computing device. Further, when the “acquired value” is input, the secret computing device uses “acquired value” at least to obtain “the secret sharing value of the operation result according to the input value”.
- the “operation result” is a multiplication result ab of the input value a and the second input value b
- the secret calculation of the multiplication result ab is performed by three secret calculation devices.
- the secret computing device corresponds to the elements of the allocation share (a 0P , a 1P ) and the sub-share set (a 0P , a 1P , a 2P ) that are a true subset of the sub-share set (a 0P , a 1P , a 2P ) Meta information A that represents a value or represents that the element is a secret value, a second allocation share (b 0P , b 1P ) that is a true subset of the second sub-share set (b 0P , b 1P , b 2P ), And second meta information B representing a value corresponding to an element of the second sub-share set (b 0P , b 1P , b 2P ) or representing that the element is a secret value.
- the secret calculation device is the first to the external secret calculation device (first secret calculation device) when a value corresponding to the provided corresponding value a 0P b 1P + a 1P b 0P cannot be obtained from the meta information A and B. exchanges to share a arbitrary value r P. Otherwise, exchange for sharing a first arbitrary value r P is unnecessary.
- the secret computing device cannot obtain a value corresponding to a 2P b 0P + a 0P b 2P from the meta information A and B
- the second arbitrary value with the external secret computing device (second secret computing device) Exchanges to share r P- . Otherwise, no exchange for sharing the second arbitrary value r P- is required.
- the subscript “P” corresponds to the secret computing device
- the subscript “P +” corresponds to the first secret computing device
- the subscript “P ⁇ ” corresponds to the second secret computing device.
- the input of the acquired value c P + is accepted.
- c ′ P : 0
- c P + : c P +
- c ′ P + : 0.
- the secret computing device cannot obtain a value corresponding to a 2P b 0P + a 0P b 2P from the meta information A or B, or a value corresponding to a 0P b 0P + a 0P b 1P + a 1P b 0P.
- a ′ 0P , a ′ 1P , b ′ 0P , and b ′ 1P are values corresponding to a 0P , a 1P , b 0P , and b 1P , respectively.
- C 0P and c 1P are secret sharing values of the multiplication result ab.
- the calculation result ab can be restored without c 0P. It is.
- the calculation of c 0P can also be omitted.
- the meta information A if the value corresponding to a 0P b 1P + a 1P b 0P and a 1P b 1P + a 1P b 2P + a 2P b 1P from B is obtained, can restore operation result ab without the c 1P It is. Calculation of c 1P also be omitted in this case.
- C 0P , C 1P , and C 2P are meta information of the secret sharing value of the multiplication result ab.
- the secret sharing value of the multiplication result ab includes c 0P
- the secret sharing value of the multiplication result ab includes c 1P .
- a ′ 0P is a value represented by the meta information A
- a ′ 1P is
- the meta information B is a value represented by the meta information B and the meta information B represents a value corresponding to b 0P
- b ′ 0P is a value represented by the meta information B
- the meta information B is a value corresponding to b 1P B ′ 1P is a value represented by the meta information B.
- the data amount of the value corresponding to a 0P represented by the meta information A is smaller than the data amount of a 0P (condition 1-1), and / or according to a 1P represented by the meta information A
- the data amount of the value is smaller than the data amount of a 1P (Condition 1-2) and / or the data amount of the value corresponding to b 0P represented by the meta information B is smaller than the data amount of b 0P
- the share is The amount of calculation can be reduced compared with the case of using.
- the “operation result” includes the input value ⁇ a (0),..., A (N ⁇ 1) ⁇ and the second input value ⁇ b (0),. -1) ⁇ and ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ a (n) b (n) (where n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ , N ⁇ 1),
- the secret calculation of the operation result ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ a (n) b (n) is performed by three secret calculation devices.
- “ ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ (n)” represents “ ⁇ (0) +... + ⁇ (N ⁇ 1)”.
- the secret computing device includes an allocation share (a 0P (n), a 1P (n)), a sub-share set that is a true subset of the sub-share set (a 0P (n), a 1P (n), a 2P (n)).
- Meta information A indicating a value corresponding to an element of (a 0P (n), a 1P (n), a 2P (n)) or indicating that the element is a secret value
- a second sub-share set (b 0P ( n), b 1P (n), b 2P (n)), which is a second subset share (b 0P (n), b 1P (n)) and a second sub-share set (b 0P (n))
- B 1P (n), b 2P (n)) is stored, or the second meta information B indicating that the element is a secret value is stored.
- the secret computing device responds to the provided corresponding value ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ from the meta information A and B according to ⁇ a 0P (n) b 1P (n) + a 1P (n) b 0P (n) ⁇ . If the value is not obtained, exchanges for sharing a first arbitrary value r P with an external secure computing apparatus (first secure computing apparatus). Otherwise, exchange for sharing a first arbitrary value r P is unnecessary.
- the secret computing device has a value corresponding to ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ a 2P (n) b 0P (n) + a 0P (n) b 2P (n) ⁇ from the meta information A and B.
- the secret computing device responds to the provided corresponding value ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ from the meta information A and B according to ⁇ a 0P (n) b 1P (n) + a 1P (n) b 0P (n) ⁇ .
- Provided value c P ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ a 0P (n) b 1P (n) + a 1P (n) b 0P (n) ⁇ + r P is output from the meta information A and B, according to the acquired corresponding value ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ a 1P (n) b 2P (n) + a 2P (n) b 1P (n) ⁇
- the input of the obtained value c P + is accepted.
- c P +: ⁇ n ⁇ ⁇ 0, ..., N-1 ⁇ ⁇ a 1P b 2P + a 2P b 1P ⁇ + r P + is. Otherwise, these exchanges are not necessary.
- the secret computing device responds to the provided corresponding value ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ from the meta information A and B according to ⁇ a 0P (n) b 1P (n) + a 1P (n) b 0P (n) ⁇ .
- the secret computing device converts the meta information A, B to the provided corresponding value ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ a 0P (n) b 1P (n) + a 1P (n) b 0P (n) ⁇ .
- the secret computing device calculates a value corresponding to ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ a 2P (n) b 0P (n) + a 0P (n) b 2P (n) ⁇ from the meta information A and B.
- the secret computing device has a value corresponding to ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ a 0P (n) b 1P (n) + a 1P (n) b 0P (n) ⁇ from the meta information A and B.
- ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ a 1P (n) b 1P (n) + a 1P (n) b 2P (n) + a 2P (n) b 1P (n) ⁇ C 1P : ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ a ′ 1P (n) b ′ 1P (n) + c ′ P + ⁇ r ′ P is obtained.
- a ′ 0P (n), a ′ 1P (n), b ′ 0P (n), and b ′ 1P (n) are a 0P (n), a 1P (n), and b 0P (n), respectively.
- C 0P and c 1P are secret sharing values of the multiplication results ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ a (n) b (n).
- the secret computing device for example, from the meta information A and B, ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ a 0P (n) b 0P (n) + a 0P (n) b 1P ( n)
- C 0P : ⁇ .
- the secret computing device can use ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ a 0P (n) b 0P (n) + a 0P (n) b 1P (n) + a 1P (n ) B 0P (n) ⁇ is obtained from the meta information A and B, ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ a 0P (n) b 0P (n) + a 0P (n ) B 1P (n) + a 1P (n) b 0P (n) ⁇ is obtained as C 0P .
- the secret computing device can use ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ a 1P (n) b 1P (n) + a 1P (n) b 2P (n) + a 2P (n ) B 1P (n) ⁇ , a value corresponding to ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ a 1P (n) b 1P (n) + a 1P (n ) B 2P (n) + a 2P (n) b 1P (n) ⁇ is obtained as C 1P .
- the secret computing device uses ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ from meta information A and B ⁇ a 2P (n) b 2P (n) + a 2P (n) b 0P (n) + a 0P (n )
- C 2P : ⁇ .
- the secret computing device is, for example, ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ a 2P (n) b 2P (n) + a 2P (n) b 0P (n) + a 0P (n) b 2P (n) ⁇ From the meta information A and B, ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ a 2P (n) b 2P (n) + a 2P (n) b 0P (n) A value corresponding to + a 0P (n) b 2P (n) ⁇ is obtained and set as C 2P .
- the secret sharing value of a (n) b (n) includes c 1P .
- the calculation of c 0P and c 1P is omitted, the calculation amount in the secret calculation device can be reduced.
- meta information A represents a value corresponding to a 0P (n)
- a ′ 0P (n) is a value represented by the meta information A
- the meta information A corresponds to a 1P (n)
- a ′ 1P (n) is a value represented by meta information A
- meta information B represents a value corresponding to b 0P (n)
- b ′ 0P (n) is meta information B.
- meta information B represents a value corresponding to b 1P (n)
- b ′ 1P (n) is a value represented by the meta information B.
- the data amount of the value corresponding to a 0P (n) represented by the meta information A is smaller than the data amount of a 0P (n) (condition 2-1) and / or depending on the meta information A
- the data amount of the value according to a 1P (n) represented is smaller than the data amount of a 1P (n) (Condition 2-2) and / or b 0P (n) represented by the meta information B Is smaller than the data amount of b 0P (n) (Condition 2-3) and / or the data amount of the value according to b 1P (n) represented by the meta information B is
- the condition that the data amount is smaller than the data amount of b 1P (n) (condition 2-4) is satisfied, the calculation amount can be reduced as compared with the case of using the share.
- the secret calculation system 1 of the present embodiment includes three secret calculation devices 11-0, 11-1, and 11-2, which are configured to be able to communicate through a network such as the Internet. ing.
- the computing unit 112-P includes processing units 1120-P to 112A-P.
- the secret computing device 11-P is, for example, a general-purpose or dedicated device including a processor (hardware processor) such as a CPU (central processing unit) and a memory such as random-access memory (RAM) and read-only memory (ROM).
- the computer is configured to execute a predetermined program.
- the computer may include a single processor and memory, or may include a plurality of processors and memory.
- This program may be installed in a computer, or may be recorded in a ROM or the like in advance.
- 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 secret computing device 11-m may include a plurality of CPUs.
- Each process executed by the secret computing device 11-P is executed under the control of the control unit 113-P, and information obtained by each process is stored in a temporary memory (not shown). Information stored in the temporary memory is read and used as necessary.
- a share (a 0P , a 1P ) (assignment share) that is a true subset is assigned.
- a 0P a 1 (P-1 mod 3)
- a 1P a 0 (P + 1 mod 3) .
- Sabushea set (a 0P, a 1P, a 2P) other subset of (a 0P, a 2P) and (a 1P, a 2P) is referred to as "external assigned share.”
- a share (b 0P , b 1P ) (assignment share) that is a true subset of is assigned.
- b 0P b 1 (P-1 mod 3)
- b 1P b 0 (P + 1 mod 3) .
- a share that is not assigned to the secret computing device 11-P is an “externally assigned share”.
- Meta information A that represents a value corresponding to an element of the sub-share set (a 0P , a 1P , a 2P ) or that the element is a secret value
- Meta information B representing a value corresponding to the above or representing that the element is a secret value
- a JP is an element of a set R whose elements are values that can be taken by the input value a
- a value range by the function f is an element of a domain R ′ that belongs to the set R.
- the function f is a homomorphic function, for example.
- the original data amount of the domain R ′ may be smaller than the original data amount of the set R.
- a set (A 0P , A 1P , A 2P ) whose elements are values A 0P , A 1P , A 2P may be used as the meta information A, or one piece representing the set (A 0P , A 1P , A 2P ).
- the meta information A may be used as the meta information A, or the meta information A may be a set of values representing a subset composed of a plurality of elements of the set (A 0P , A 1P , A 2P ).
- the above points are the same for the meta information B, and any information may be used as the meta information B as long as the information represents the values B 0P , B 1P , and B 2P .
- a 0P, A 1P, A 2P , B 0P, B 1P can reduce the delivery number values between secure computing apparatus 11-P that is not the least one B 2P is " ⁇ ".
- the sharing unit 114-P exchanges to share any value r P between the secure computing apparatus 11- (P + 1 mod3).
- Any value r P may be a random number may be a pseudo-random number may be a constant.
- the shared section 114-P sends stores any value r P generated or selected in the storage unit 111-P to the communication unit 115-P, a communication unit 115-P is secure computing apparatus of any value r P 11 -Send to (P + 1 mod 3).
- step S103 depending on whether on whether the common portion 114-P is the stored in the storage unit 111-P metainformation A, or false x 20 corresponding to B is true (T) (F)
- the process is performed (step S103).
- the sharing unit 114-P any value between the secure computing apparatus 11- (P-1 mod3) r P-: exchanges for sharing r (P-1mod3).
- the arbitrary value r P ⁇ may be a random number, a pseudo-random number, or a constant.
- the sharing unit 114- (P-1 mod 3) of the secret computing device 11- (P-1 mod 3) stores the generated or selected arbitrary value r P- in the storage unit 111- (P-1 mod 3).
- the communication unit 115- (P-1 mod 3) transmits the arbitrary value r P- to the secret computing device 11-P.
- the arbitrary value r P ⁇ is input to the sharing unit 114-P, and the sharing unit 114-P stores the arbitrary value r P ⁇ in the storage unit 111-P (step S104). Thereafter, the process proceeds to step S105.
- the process proceeds to step S105.
- step S105 the processing unit 1120-P of the arithmetic unit 112-P is stored in the storage unit 111-P metainformation A, x 01, corresponding to B is true (T) and is or false (F) Processing according to whether or not is performed (step S105).
- a 0P B 0P + A 0P B 1P + A 1P B 0P ⁇ .
- C 0P is a value corresponding to a 0P b 0P + a 0P b 1P + a 1P b 0P .
- C 1P is output (step S113).
- C 1P : ⁇ .
- C 1P is a value corresponding to a 1P b 1P + a 1P b 2P + a 2P b 1P .
- C 2P is output (step S116).
- the processing unit 112A-P of the calculation unit 112-P determines whether A 0P corresponding to the meta information A stored in the storage unit 111-P is true (T) or false (F). A process corresponding to this is performed (step S117).
- 0P : A It is set to 0P (step S119). That is, when the meta information A represents a value corresponding to a 0P , a ′ 0P is a value represented by the meta information A.
- the processing unit 112A-P performs processing according to whether or not A 1P corresponding to the meta information A stored in the storage unit 111-P is true (T) or false (F). (Step S120).
- 1P : A 1P is set, and a ′ 1P is output (step S122). That is, when the meta information A represents a value corresponding to a 1P , a ′ 1P is a value represented by the meta information A.
- the processing unit 112A-P performs processing according to whether B 0P corresponding to the meta information B stored in the storage unit 111-P is true (T) or false (F). (Step S123).
- 0P : B 0P is set, and b ′ 0P is output (step S125). That is, when the meta information B represents a value corresponding to b 0P , b ′ 0P is a value represented by the meta information B.
- the processing unit 112B-P performs processing according to whether B 1P corresponding to the meta information B stored in the storage unit 111-P is true (T) or false (F). This is performed (step S126).
- 1P : B 1P and b ′ 1P is output (step S128). That is, when the meta information B represents a value corresponding to b 1P , b ′ 1P is a value represented by the meta information B.
- Processor 1121-P of the arithmetic unit 112-P is stored in the storage unit 111-P meta information A, whether x 10 corresponding to B is in either a true (T) and is or false (F)
- the process according to is performed (step S129).
- Processor 1122-P of the arithmetic unit 112-P is whether stored in a storage unit 111-P metainformation A, x 12, corresponding to B is in either a true (T) and is or false (F)
- the acquired value c P + is input to the processing unit 1122-P (step S133).
- the processing unit 1122-P is c' P +: output as 0 (step S135).
- Processor 1123-P of the arithmetic unit 112-P is whether stored in a storage unit 111-P metainformation A, x 01, corresponding to B is in either a true (T) and is or false (F) A process corresponding to is performed (step S136).
- x 01 is true (T) (when a value corresponding to the provided corresponding value a 0P b 1P + a 1P b 0P cannot be obtained from the meta information A and B)
- Processor 1124-P of the arithmetic unit 112-P is whether stored in a storage unit 111-P metainformation A, x 20, corresponding to B is in either a true (T) and is or false (F)
- the process according to is performed (step S139).
- step S148 the calculation unit 112-P outputs C 0P , C 1P , and C 2P .
- C 0P , C 1P , and C 2P are meta information of the secret sharing value of the operation result ab.
- c 0P and c 1P are secret sharing values of the operation result ab.
- the number of times of transmission / reception of values between the secret computing devices 11-P can be reduced according to the values represented by the meta information A and B.
- the amount of calculation can be reduced.
- the calculation amount can be reduced even when the calculation amount using the meta information is smaller than the calculation amount using the share.
- the secret calculation system 2 of this embodiment includes three secret calculation devices 21-0, 21-1, and 21-2, which are configured to be communicable through a network such as the Internet. ing.
- the calculation unit 212-P includes processing units 2120-P to 212A-P.
- the secret computing device 21-P is configured by, for example, the above-described computer executing a predetermined program. Each process executed by the secret computing device 21-P is executed under the control of the control unit 213-P, and information obtained by each process is stored in a temporary memory (not shown). Information stored in the temporary memory is read and used as necessary.
- a (n) is a function value of sub-shares a 1 (n), a 2 (n), and a 3 (n)
- b (n) is sub-shares b 1 (n), b 2 (n)
- b 3 is a function value of (n).
- a share (a 0P (n), a 1P (n)) (allocation share) which is a true subset of 0P (n), a 1P (n), a 2P (n)) is allocated.
- each secret computing device 21-P has a sub-share set with three sub-shares b 0P (n), b 1P (n), b 2P (n) as elements ( A share (b 0P (n), b 1P (n)) (assignment share) which is a true subset of b 0P (n), b 1P (n), b 2P (n)) is assigned.
- a share that is not assigned to the secret computing device 21-P is an “externally assigned share”.
- shares (a 0P (n), a 1P (n)) and (b 0P (n), b 1P (n)) (assignment) Share) is stored (FIG. 8).
- Meta information A that represents a value corresponding to an element of the sub-share set (a 0P (n), a 1P (n), a 2P (n)) or that the element is a secret value
- a sub-share set (b 0P Meta information B representing a value corresponding to an element of (n), b 1P (n), b 2P (n)) or representing that the element is a secret value
- a JP (n) is an element of the set R whose elements are the values that the input value a (n) can take, and in the latter case, the domain R in which the range by the function f belongs to the set R. 'Is the original.
- N ⁇ 1) may be used as the meta information A, or one value representing the set (A 0P (n), A 1P (n), A 2P (n)) may be used as the meta information A.
- a set of values representing a subset including a plurality of elements of the set (A 0P (n), A 1P (n), A 2P (n)) may be used as the meta information A.
- the above points are the same for the meta information B, and any information may be used as the meta information B as long as the information represents the values B 0P (n), B 1P (n), and B 2P (n).
- a 0P (n), A 1P (n), A 2P (n), B 0P (n), B 1P (n), and B 2P (n) is not “ ⁇ ”
- the sharing unit 214-P exchanges with the external secret computing device 21- (P + 1 mod 3) for sharing the arbitrary value r P.
- the shared section 214-P sends stores any value r P generated or selected in the storage unit 211-P to the communication unit 215-P, a communication unit 215-P is secure computing apparatus of any value r P 21 -Send to (P + 1 mod 3).
- step S203 depending on whether on whether the common portion 214-P is the stored in the storage unit 211-P metainformation A, or false x 20 corresponding to B is true (T) (F)
- the process is performed (step S203).
- the arbitrary value r P ⁇ may be a random number, a pseudo-random number, or a constant.
- the sharing unit 214- (P-1 mod 3) of the secret computing device 21- (P-1 mod 3) stores the generated or selected arbitrary value r P- in the storage unit 211- (P-1 mod 3).
- the communication unit 215- (P-1 mod 3) transmits the arbitrary value r P- to the secret computing device 21-P.
- the arbitrary value r P ⁇ is input to the sharing unit 214-P, and the sharing unit 214-P stores the arbitrary value r P ⁇ in the storage unit 211-P (step S204). Thereafter, the process proceeds to step S205.
- the process proceeds to step S205.
- step S205 the processing unit 2120-P of the arithmetic unit 212-P is stored in the storage unit 211-P metainformation A, x 01, corresponding to B is true (T) and is or false (F) Processing according to whether or not is performed (step S205).
- Providing value c P is transmitted from the communication unit 215-P to the outside of the secure computing apparatus 21- (P-1 mod3).
- Providing value c P is input to the communication unit of the secure computing apparatus 21- (P-1 mod3) 215- (P-1 mod3), are stored in the storage unit 211- (P-1 mod3) (step S207). Thereafter, the process proceeds to step S210.
- the process proceeds to step S210 without executing steps S206 and S207.
- 0P (n) B 0P (n) + A 0P (n) B 1P (n) + A 1P (n) B 0P (n) ⁇ is obtained and C 0P is output (step S210).
- C 0P is meta information a, sigma n? ⁇ 0 from B, ..., n-1 ⁇ ⁇ a 0P (n) b 0P (n) + a 0P (n) b 1P (n) + a 1P (n) b 0P (n) ⁇ .
- (N) B 1P (n) + A 1P (n) B 2P (n) + A 2P (n) B 1P (n) ⁇ is obtained and C 1P is output (step S213).
- C 1P is ⁇ n ⁇ ⁇ 0, ..., n -1 ⁇ ⁇ a 1P (n) b 1P (n) + a 1P (n) b 2P (n) + a 2P (n) b 1P (n)
- C 1P is ⁇ n ⁇ ⁇ 0, ..., n -1 ⁇ ⁇ a 1P (n) b 1P (n) + a 1P (n) b 2P (n) + a 2P ( n)
- N B 2P (n) + A 2P (n) B 0P (n) + A 0P (n) B 2P (n) ⁇ is obtained, and C 2P is output (step S216).
- C 2P is ⁇ n ⁇ ⁇ 0, ..., n -1 ⁇ ⁇ a 2P (n) b 2P (n) + a 2P (n) b 0P (n) + a 0P ( n) A value corresponding to b 2P (n) ⁇ .
- the processing unit 212A-P of the calculation unit 212-P has A 0P (n) corresponding to the meta information A stored in the storage unit 211-P true (T) or false (F). Processing according to whether or not is performed (step S217).
- the processing unit 212A-P depends on whether A 1P (n) corresponding to the meta information A stored in the storage unit 211-P is true (T) or false (F). Processing is performed (step S220).
- the processing unit 212A-P depends on whether B 0P (n) corresponding to the meta information B stored in the storage unit 211-P is true (T) or false (F). Processing is performed (step S223).
- the processing unit 212B-P determines whether B 1P (n) corresponding to the meta information B stored in the storage unit 211-P is true (T) or false (F). The process is performed (step S226).
- b ′ 1P (n): B 1P (n) is set, and b ′ 1P (n) is output (step S228). That is, when the meta information B represents a value corresponding to b 1P (n), b ′ 1P (n) is a value represented by the meta information B.
- Processor 2122-P of the arithmetic unit 212-P is whether stored in a storage unit 211-P metainformation A, x 12, corresponding to B is in either a true (T) and is or false (F)
- the process according to is performed (step S232).
- x 12 is true (T) (acquired corresponding value ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ from meta information A and B) ⁇ a 1P (n) b 2P (n) + a 2P (n) b 1P (N) ⁇ is not obtained)
- the acquired value c P + is input to the processing unit 2122-P (step S233).
- x 12 is false (F)
- c 'P + : if not c P +
- the processing unit 2122-P is c' P +: output as 0 (step S235).
- Processor 2123-P of the arithmetic unit 212-P is whether stored in a storage unit 211-P metainformation A, x 01, corresponding to B is in either a true (T) and is or false (F) The process according to is performed (step S236).
- Processor 2124-P of the arithmetic unit 212-P is whether stored in a storage unit 211-P metainformation A, x 20, corresponding to B is in either a true (T) and is or false (F) The process according to is performed (step S239).
- the processing unit 2124 -P (from meta information A and B, ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ ⁇ a 2P (n) b 0P (n) + a 0P ( n)
- step S248 the calculation unit 212-P outputs C 0P , C 1P , C 2P .
- C 0P , C 1P , and C 2P are meta information of the secret sharing value of the operation result ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ a (n) b (n).
- c 0P and c 1P are secret sharing values of the operation result ⁇ n ⁇ ⁇ 0,..., N ⁇ 1 ⁇ a (n) b (n).
- the number of times of transmission / reception of values between the secret computing devices 21-P can be reduced according to the values represented by the meta information A and B.
- the amount of calculation can be reduced.
- the calculation amount can be reduced even when the calculation amount using the meta information is smaller than the calculation amount using the share.
- this invention is not limited to the above-mentioned embodiment.
- the case where the multiplication or the product-sum operation is performed by the secret calculation is illustrated.
- the present invention can be applied to any method as long as values are exchanged between a plurality of secret computing devices and each secret computing device performs a secret calculation using a value received from another secret computing device. May be.
- each operation described above may be an operation on a finite field, an operation on an extension field, an operation on a ring, or an operation on another algebraic system. It may be.
- 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.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Image Processing (AREA)
Abstract
複数個のサブシェアを要素とするサブシェア集合の真部分集合である割り当てシェア、およびサブシェア集合の要素に応じた値を表すかまたは要素が秘匿値であることを表すメタ情報を格納し、メタ情報から割り当てシェアの部分集合に応じた提供対応値に応じた値が得られない場合に、割り当てシェアの部分集合から得た提供対応値に応じた提供値を出力し、メタ情報からサブシェア集合の真部分集合である外部割り当てシェアの部分集合に応じた取得対応値に応じた値が得られない場合に、取得対応値に応じた取得値の入力を受け付け、取得値が入力される場合には、少なくとも取得値を用いて秘密分散値を得る。
Description
本発明は、秘密計算の技術分野に関する。
複製型秘密分散に基づいて秘密計算を行う技術が知られている(例えば、非特許文献1等参照)。
五十嵐大,千田浩司,濱田浩気,高橋克巳,"軽量検証可能3パーティ秘匿関数計算の効率化及びこれを用いたセキュアなデータベース処理,"InSCIS2011,2011.
複数の秘密計算装置間で値の受け渡しを行い、各秘密計算装置が他の秘密計算装置から受け取った値を用いて秘密計算を行う方式がある。このような方式でも、各秘密計算装置が他の秘密計算装置から受け取る値の一部を予め取得できる場合がある。このような場合に、秘密計算装置間で全ての値を受け渡しするのでは効率が悪い。
本発明の課題は、各秘密計算装置が他の秘密計算装置から受け取った値を用いて秘密計算を行う方式の効率を向上させることである。
秘密計算装置は、複数個のサブシェアの関数値である入力値に応じた演算結果の秘密分散値を得るために、複数個のサブシェアを要素とするサブシェア集合の真部分集合である割り当てシェア、およびサブシェア集合の要素に応じた値を表すかまたは要素が秘匿値であることを表すメタ情報を格納し、メタ情報から割り当てシェアの部分集合に応じた提供対応値に応じた値が得られない場合に、割り当てシェアの部分集合から得た提供対応値に応じた提供値を出力し、メタ情報からサブシェア集合の真部分集合である外部割り当てシェアの部分集合に応じた取得対応値に応じた値が得られない場合に、取得対応値に応じた取得値の入力を受け付け、取得値が入力される場合には、少なくとも取得値を用いて秘密分散値を得る。
これにより、各秘密計算装置が他の秘密計算装置から受け取った値を用いて秘密計算を行う方式の効率を向上できる。
以下、本発明の実施形態を説明する。
[概要]
実施形態の秘密計算では、複数の秘密計算装置が「入力値」に応じた演算結果の秘密分散値を得る。ここで「入力値」は複製型秘密分散方式に則って秘密分散される。すなわち、「入力値」を複数個のサブシェアの関数値(例えば、加算値、加減算値など)とし、当該複数個のサブシェアを要素とする「サブシェア集合」の真部分集合をシェア(「入力値」の秘密分散値)として各秘密分散装置に割り当てる。ただし、一部のサブシェアに応じた値が各秘密分散装置にとって既知である場合がある。例えば、過去に行われた秘密計算によって一部のサブシェアに応じた値が既に取得されていた場合や、一部のサブシェアに応じた値が公開情報であった場合などである。なお「αに応じた値」は、αそのものであってもよいし、αの関数値であってもよい。「αに応じた値」は、例えばαに対応する値である。「入力値に応じた演算結果」は、入力値そのものであってもよいし、入力値の関数値であってもよい。このような状況に応じ、「サブシェア集合」の要素に応じた値を表すかまたは要素が秘匿値であることを表す「メタ情報」が設定される。「メタ情報」よって「要素に応じた値」が表された要素は当該「メタ情報」から特定可能である。「メタ情報」によって「秘匿値であること」が表された要素は当該「メタ情報」から特定できない。各秘密計算装置には、これらの「割り当てシェア」および「メタ情報」が格納される。秘密計算装置は、「メタ情報」から「割り当てシェア」の部分集合に応じた「提供対応値」に応じた値が得られない場合に、「割り当てシェア」の部分集合から得た「提供対応値」に応じた「提供値」を他の秘密計算装置に出力する。なお、「部分集合に応じた提供対応値」は、部分集合そのものであってもよいし、部分集合の関数値であってもよい。「提供対応値に応じた提供値」は、提供対応値そのものであってもよいし、提供対応値の関数値であってもよい。一方、「メタ情報」から当該「提供対応値」に応じた値が得られる場合、秘密計算装置は「提供値」を他の秘密計算装置に出力する必要はない。また「メタ情報」から「サブシェア集合」の真部分集合である「外部割り当てシェア」の部分集合に応じた「取得対応値」に応じた値が得られない場合、「取得対応値」に応じた「取得値」が秘密計算装置に入力される。なお、「外部割り当てシェア」とは、他の秘密計算装置に割り当てられているシェアを意味する。「部分集合に応じた取得対応値」は、部分集合そのものであってもよいし、部分集合の関数値であってもよい。「取得対応値に応じた取得値」は、取得対応値そのものであってもよいし、取得対応値の関数値であってもよい。一方、「メタ情報」から当該「取得対応値」に応じた値が得られる場合、秘密計算装置に「取得値」が入力される必要はない。秘密計算装置は、「取得値」が入力される場合には、少なくとも「取得値」を用いて「入力値に応じた演算結果の秘密分散値」を得る。これにより、秘密計算装置間での値の受け渡し回数を削減し、効率を向上できる。
[概要]
実施形態の秘密計算では、複数の秘密計算装置が「入力値」に応じた演算結果の秘密分散値を得る。ここで「入力値」は複製型秘密分散方式に則って秘密分散される。すなわち、「入力値」を複数個のサブシェアの関数値(例えば、加算値、加減算値など)とし、当該複数個のサブシェアを要素とする「サブシェア集合」の真部分集合をシェア(「入力値」の秘密分散値)として各秘密分散装置に割り当てる。ただし、一部のサブシェアに応じた値が各秘密分散装置にとって既知である場合がある。例えば、過去に行われた秘密計算によって一部のサブシェアに応じた値が既に取得されていた場合や、一部のサブシェアに応じた値が公開情報であった場合などである。なお「αに応じた値」は、αそのものであってもよいし、αの関数値であってもよい。「αに応じた値」は、例えばαに対応する値である。「入力値に応じた演算結果」は、入力値そのものであってもよいし、入力値の関数値であってもよい。このような状況に応じ、「サブシェア集合」の要素に応じた値を表すかまたは要素が秘匿値であることを表す「メタ情報」が設定される。「メタ情報」よって「要素に応じた値」が表された要素は当該「メタ情報」から特定可能である。「メタ情報」によって「秘匿値であること」が表された要素は当該「メタ情報」から特定できない。各秘密計算装置には、これらの「割り当てシェア」および「メタ情報」が格納される。秘密計算装置は、「メタ情報」から「割り当てシェア」の部分集合に応じた「提供対応値」に応じた値が得られない場合に、「割り当てシェア」の部分集合から得た「提供対応値」に応じた「提供値」を他の秘密計算装置に出力する。なお、「部分集合に応じた提供対応値」は、部分集合そのものであってもよいし、部分集合の関数値であってもよい。「提供対応値に応じた提供値」は、提供対応値そのものであってもよいし、提供対応値の関数値であってもよい。一方、「メタ情報」から当該「提供対応値」に応じた値が得られる場合、秘密計算装置は「提供値」を他の秘密計算装置に出力する必要はない。また「メタ情報」から「サブシェア集合」の真部分集合である「外部割り当てシェア」の部分集合に応じた「取得対応値」に応じた値が得られない場合、「取得対応値」に応じた「取得値」が秘密計算装置に入力される。なお、「外部割り当てシェア」とは、他の秘密計算装置に割り当てられているシェアを意味する。「部分集合に応じた取得対応値」は、部分集合そのものであってもよいし、部分集合の関数値であってもよい。「取得対応値に応じた取得値」は、取得対応値そのものであってもよいし、取得対応値の関数値であってもよい。一方、「メタ情報」から当該「取得対応値」に応じた値が得られる場合、秘密計算装置に「取得値」が入力される必要はない。秘密計算装置は、「取得値」が入力される場合には、少なくとも「取得値」を用いて「入力値に応じた演算結果の秘密分散値」を得る。これにより、秘密計算装置間での値の受け渡し回数を削減し、効率を向上できる。
例えば、「入力値」および「第2入力値」に応じた演算結果の秘密分散値を得る場合には、以下のような処理となる。この場合、「入力値」と同様に「第2入力値」も複製型秘密分散方式に則って秘密分散される。すなわち、「第2入力値」を複数個の第2サブシェアの関数値とし、当該複数個の第2サブシェアを要素とする「第2サブシェア集合」の真部分集合を第2シェア(「第2入力値」の秘密分散値)として各秘密分散装置に割り当てる。ただし、一部の第2サブシェアに応じた値が各秘密計算装置にとって既知である場合がある。このような状況に応じ、「第2サブシェア集合」の要素に応じた値を表すかまたは要素が秘匿値であることを表す「第2メタ情報」が設定される。「第2メタ情報」によって「要素に応じた値」が表された要素は当該「第2メタ情報」から特定可能である。「第2タ情報」によって「秘匿値であること」が表された要素は当該「第2メタ情報」から特定できない。各秘密計算装置には、これらの「第2割り当てシェア」および「第2メタ情報」が格納される。秘密計算装置は、「メタ情報」と「第2メタ情報」とから「割り当てシェア」の部分集合と「第2割り当てシェア」の部分集合とに応じた「提供対応値」に応じた値が得られない場合に、「割り当てシェア」の部分集合と「第2割り当てシェア」の部分集合とから得た「提供対応値」に応じた「提供値」を他の秘密計算装置に出力する。「メタ情報」と「第2メタ情報」とから「サブシェア集合」の真部分集合である「外部割り当てシェア」の部分集合と「第2サブシェア集合」の真部分集合である「第2外部割り当てシェア」の部分集合とに応じた「取得対応値」に応じた値が得られない場合に「取得対応値」に応じた「取得値」が秘密計算装置に入力される。また、秘密計算装置は、「取得値」が入力される場合には、少なくとも「取得値」を用いて「入力値に応じた演算結果の秘密分散値」を得る。
上述の方式を乗算に適用する場合、「演算結果」は入力値aと第2入力値bとの乗算結果abであり、3個の秘密計算装置で乗算結果abの秘密計算を行う。入力値aはサブシェアa0P,a1P,a2Pについてa=a0P+a1P+a2Pを満たし、第2入力値bは第2サブシェアb0P,b1P,b2Pについてb=b0P+b1P+b2Pを満たす。秘密計算装置は、サブシェア集合(a0P,a1P,a2P)の真部分集合である割り当てシェア(a0P,a1P)、サブシェア集合(a0P,a1P,a2P)の要素に応じた値を表すかまたは要素が秘匿値であることを表すメタ情報A、第2サブシェア集合(b0P,b1P,b2P)の真部分集合である第2割り当てシェア(b0P,b1P)、および第2サブシェア集合(b0P,b1P,b2P)の要素に応じた値を表すかまたは要素が秘匿値であることを表す第2メタ情報Bを格納する。秘密計算装置は、メタ情報A,Bから提供対応値a0Pb1P+a1Pb0Pに応じた値が得られない場合に、外部の秘密計算装置(第1秘密計算装置)との間で第1任意値rPを共有するためのやり取りを行う。そうでない場合には、第1任意値rPを共有するためのやり取りは不要である。秘密計算装置は、メタ情報A,Bからa2Pb0P+a0Pb2Pに応じた値が得られない場合に、外部の秘密計算装置(第2秘密計算装置)との間で第2任意値rP-を共有するためのやり取りを行う。そうでない場合には、第2任意値rP-を共有するためのやり取りは不要である。なお、下付き添え字の「P」は当該秘密計算装置に対応し、下付き添え字の「P+」は第1秘密計算装置に対応し、下付き添え字の「P-」は第2秘密計算装置に対応する。秘密計算装置は、メタ情報A,Bから提供対応値a0Pb1P+a1Pb0Pに応じた値が得られない場合に、提供値cP:=a0Pb1P+a1Pb0P+rPを出力し、メタ情報A,Bから取得対応値a1Pb2P+a2Pb1Pに応じた値が得られない場合に取得値cP+の入力を受け付ける。ただし、cP+:=a1Pb2P+a2Pb1P+rP+である。そうでない場合にはこれらのやり取りは不要である。「α:=β」は、αがβであると定義すること(すなわちαをβの値とすること)を意味する。秘密計算装置は、メタ情報A,Bから提供対応値a0Pb1P+a1Pb0Pに応じた値が得られない場合にc’P:=cPとし、c’P:=cPとしない場合にc’P:=0とし、メタ情報A,Bから取得対応値a1Pb2P+a2Pb1Pに応じた値が得られない場合にc’P+:=cP+とし、c’P+:=cP+としない場合にc’P+:=0とする。また秘密計算装置は、メタ情報A,Bから提供対応値a0Pb1P+a1Pb0Pに応じた値が得られない場合にr’P:=rPとし、r’P:=rPとしない場合にr’P:=0とし、メタ情報A,Bからa2Pb0P+a0Pb2Pに応じた値が得られない場合にr’P-:=rP-とし、r’P-:=rP-としない場合にr’P-:=0とする。さらに秘密計算装置は、メタ情報A,Bからa2Pb0P+a0Pb2Pに応じた値が得られないか、またはa0Pb0P+a0Pb1P+a1Pb0Pに応じた値が得られない場合にc0P:=a’0Pb’1P+c’P-r’P-を得、メタ情報A,Bからa0Pb1P+a1Pb0Pに応じた値が得られないか、またはa1Pb1P+a1Pb2P+a2Pb1Pに応じた値が得られない場合にc1P:=a’1Pb’1P+c’P+-r’Pを得る。ここで、a’0P,a’1P,b’0P,b’1Pは、それぞれa0P,a1P,b0P,b1Pに応じた値である。またc0Pおよびc1Pは乗算結果abの秘密分散値である。ただし、メタ情報A,Bからa2Pb0P+a0Pb2Pおよびa0Pb0P+a0Pb1P+a1Pb0Pに応じた値が得られる場合、c0Pがなくとも演算結果abの復元が可能である。この場合にはc0Pの演算も省略可能である。また、メタ情報A,Bからa0Pb1P+a1Pb0Pおよびa1Pb1P+a1Pb2P+a2Pb1Pに応じた値が得られる場合、c1Pがなくとも演算結果abの復元が可能である。この場合にはc1Pの演算も省略可能である。
より具体的には、秘密計算装置は、例えば、メタ情報A,Bからa0Pb0P+a0Pb1P+a1Pb0Pに応じた値が得られない場合にC0P:=⊥とし、メタ情報A,Bからa0Pb0P+a0Pb1P+a1Pb0Pに応じた値が得られる場合にメタ情報A,Bからa0Pb0P+a0Pb1P+a1Pb0Pに応じた値を得てC0Pとする。また、秘密計算装置は、例えば、メタ情報A,Bからa1Pb1P+a1Pb2P+a2Pb1Pに応じた値が得られない場合にC1P:=⊥とし、メタ情報A,Bからa1Pb1P+a1Pb2P+a2Pb1Pに応じた値が得られる場合にメタ情報A,Bからa1Pb1P+a1Pb2P+a2Pb1Pに応じた値を得てC1Pとする。さらに秘密計算装置は、例えば、メタ情報A,Bからa2Pb2P+a2Pb0P+a0Pb2Pに応じた値が得られない場合にC2P:=⊥とし、a2Pb2P+a2Pb0P+a0Pb2Pに応じた値が得られる場合にメタ情報A,Bからa2Pb2P+a2Pb0P+a0Pb2Pに応じた値を得てC2Pとする。この場合、C0P,C1P,C2Pは乗算結果abの秘密分散値のメタ情報であり、C0P:=⊥の場合には乗算結果abの秘密分散値はc0Pを含み、C1P:=⊥の場合には乗算結果abの秘密分散値はc1Pを含む。以上のように、秘密計算装置間での値の受け渡し回数、および復元時の秘密分散値の受け渡し回数を削減し、効率を向上できる。さらにc0Pやc1Pの演算を省略する場合には、秘密計算装置での演算量も削減できる。
また例えば、メタ情報Aがa0Pに応じた値を表す場合、a’0Pはメタ情報Aによって表される値であり、メタ情報Aがa1Pに応じた値を表す場合、a’1Pはメタ情報Aによって表される値であり、メタ情報Bがb0Pに応じた値を表す場合、b’0Pはメタ情報Bによって表される値であり、メタ情報Bがb1Pに応じた値を表す場合、b’1Pはメタ情報Bによって表される値である。ここで、メタ情報Aによって表されるa0Pに応じた値のデータ量はa0Pのデータ量よりも小さい(条件1-1)、および/または、メタ情報Aによって表されるa1Pに応じた値のデータ量はa1Pのデータ量よりも小さい(条件1-2)、および/または、メタ情報Bによって表されるb0Pに応じた値のデータ量はb0Pのデータ量よりも小さい(条件1-3)、および/または、メタ情報Bによって表されるb1Pに応じた値のデータ量はb1Pのデータ量よりも小さい(条件1-4)という条件を満たす場合、シェアを用いる場合よりも演算量を削減できる。
前述の方式を積和演算に適用する場合、「演算結果」は入力値{a(0),…,a(N-1)}と第2入力値{b(0),…,b(N-1)}との演算結果Σn∈{0,…,N-1}a(n)b(n)であり(ただし、n∈{0,…,N-1}、N≧1)、3個の秘密計算装置で演算結果Σn∈{0,…,N-1}a(n)b(n)の秘密計算を行う。a(n)はサブシェアa0P(n),a1P(n),a2P(n)についてa(n)=a0P(n)+a1P(n)+a2P(n)を満たし、b(n)は第2サブシェアb0P(n),b1P(n),b2P(n)についてb(n)=b0P(n)+b1P(n)+b2P(n)を満たす。なお、「Σn∈{0,…,N-1}α(n)」は「α(0)+…+α(N-1)」を表す。すなわち、「Σn∈{0,…,N-1}α(n)」は
を表す。秘密計算装置は、サブシェア集合(a0P(n),a1P(n),a2P(n))の真部分集合である割り当てシェア(a0P(n),a1P(n))、サブシェア集合(a0P(n),a1P(n),a2P(n))の要素に応じた値を表すかまたは要素が秘匿値であることを表すメタ情報A、第2サブシェア集合(b0P(n),b1P(n),b2P(n))の真部分集合である第2割り当てシェア(b0P(n),b1P(n))、および第2サブシェア集合(b0P(n),b1P(n),b2P(n))の要素に応じた値を表すかまたは要素が秘匿値であることを表す第2メタ情報Bを格納する。秘密計算装置は、メタ情報A,Bから提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合に、外部の秘密計算装置(第1秘密計算装置)との間で第1任意値rPを共有するためのやり取りを行う。そうでない場合には、第1任意値rPを共有するためのやり取りは不要である。秘密計算装置は、メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られない場合に、外部の秘密計算装置(第2秘密計算装置)との間で第2任意値rP-を共有するためのやり取りを行う。そうでない場合には、第2任意値rP-を共有するためのやり取りは不要である。秘密計算装置は、メタ情報A,Bから提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合に、提供値cP:=Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}+rPを出力し、メタ情報A,Bから取得対応値Σn∈{0,…,N-1}{a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られない場合に取得値cP+の入力を受け付ける。ただし、cP+:=Σn∈{0,…,N-1}{a1Pb2P+a2Pb1P}+rP+である。そうでない場合にはこれらのやり取りは不要である。秘密計算装置は、メタ情報A,Bから提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合にc’P:=cPとし、c’P:=cPとしない場合にc’P:=0とし、メタ情報A,Bから取得対応値Σn∈{0,…,N-1}{a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られない場合にc’P+:=cP+とし、c’P+:=cP+としない場合にc’P+:=0とする。また秘密計算装置は、メタ情報A,Bから提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合にr’P:=rPとし、r’P:=rPとしない場合にr’P:=0とし、メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られない場合にr’P-:=rP-とし、r’P-:=rP-としない場合にr’P-:=0とする。さらに秘密計算装置は、メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られないか、またはΣn∈{0,…,N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合にc0P:=Σn∈{0,…,N-1}a’0P(n)b’1P(n)+c’P-r’P-を得る。秘密計算装置は、メタ情報A,BからΣn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られないか、またはΣn∈{0,…,N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られない場合にc1P:=Σn∈{0,…,N-1}a’1P(n)b’1P(n)+c’P+-r’Pを得る。ここで、a’0P(n),a’1P(n),b’0P(n),b’1P(n)は、それぞれa0P(n),a1P(n),b0P(n),b1P(n)に応じた値である。またc0Pおよびc1Pは乗算結果Σn∈{0,…,N-1}a(n)b(n)の秘密分散値である。ただし、メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}およびΣn∈{0,…,N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られる場合、c0Pがなくとも演算結果Σn∈{0,…,N-1}a(n)b(n)の復元が可能である。この場合にはc0Pの演算も省略可能である。また、メタ情報A,BからΣn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}およびΣn∈{0,…,N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られる場合、c1Pがなくとも演算結果Σn∈{0,…,N-1}a(n)b(n)の復元が可能である。この場合にはc1Pの演算も省略可能である。
を表す。秘密計算装置は、サブシェア集合(a0P(n),a1P(n),a2P(n))の真部分集合である割り当てシェア(a0P(n),a1P(n))、サブシェア集合(a0P(n),a1P(n),a2P(n))の要素に応じた値を表すかまたは要素が秘匿値であることを表すメタ情報A、第2サブシェア集合(b0P(n),b1P(n),b2P(n))の真部分集合である第2割り当てシェア(b0P(n),b1P(n))、および第2サブシェア集合(b0P(n),b1P(n),b2P(n))の要素に応じた値を表すかまたは要素が秘匿値であることを表す第2メタ情報Bを格納する。秘密計算装置は、メタ情報A,Bから提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合に、外部の秘密計算装置(第1秘密計算装置)との間で第1任意値rPを共有するためのやり取りを行う。そうでない場合には、第1任意値rPを共有するためのやり取りは不要である。秘密計算装置は、メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られない場合に、外部の秘密計算装置(第2秘密計算装置)との間で第2任意値rP-を共有するためのやり取りを行う。そうでない場合には、第2任意値rP-を共有するためのやり取りは不要である。秘密計算装置は、メタ情報A,Bから提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合に、提供値cP:=Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}+rPを出力し、メタ情報A,Bから取得対応値Σn∈{0,…,N-1}{a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られない場合に取得値cP+の入力を受け付ける。ただし、cP+:=Σn∈{0,…,N-1}{a1Pb2P+a2Pb1P}+rP+である。そうでない場合にはこれらのやり取りは不要である。秘密計算装置は、メタ情報A,Bから提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合にc’P:=cPとし、c’P:=cPとしない場合にc’P:=0とし、メタ情報A,Bから取得対応値Σn∈{0,…,N-1}{a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られない場合にc’P+:=cP+とし、c’P+:=cP+としない場合にc’P+:=0とする。また秘密計算装置は、メタ情報A,Bから提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合にr’P:=rPとし、r’P:=rPとしない場合にr’P:=0とし、メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られない場合にr’P-:=rP-とし、r’P-:=rP-としない場合にr’P-:=0とする。さらに秘密計算装置は、メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られないか、またはΣn∈{0,…,N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合にc0P:=Σn∈{0,…,N-1}a’0P(n)b’1P(n)+c’P-r’P-を得る。秘密計算装置は、メタ情報A,BからΣn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られないか、またはΣn∈{0,…,N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られない場合にc1P:=Σn∈{0,…,N-1}a’1P(n)b’1P(n)+c’P+-r’Pを得る。ここで、a’0P(n),a’1P(n),b’0P(n),b’1P(n)は、それぞれa0P(n),a1P(n),b0P(n),b1P(n)に応じた値である。またc0Pおよびc1Pは乗算結果Σn∈{0,…,N-1}a(n)b(n)の秘密分散値である。ただし、メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}およびΣn∈{0,…,N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られる場合、c0Pがなくとも演算結果Σn∈{0,…,N-1}a(n)b(n)の復元が可能である。この場合にはc0Pの演算も省略可能である。また、メタ情報A,BからΣn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}およびΣn∈{0,…,N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られる場合、c1Pがなくとも演算結果Σn∈{0,…,N-1}a(n)b(n)の復元が可能である。この場合にはc1Pの演算も省略可能である。
より具体的には、秘密計算装置は、例えば、メタ情報A,BからΣn∈{0,…,N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合にC0P:=⊥とする。秘密計算装置は、例えば、メタ情報A,BからΣn∈{0,…,N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られる場合に、メタ情報A,BからΣn∈{0,…,N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値を得てC0Pとする。秘密計算装置は、例えば、メタ情報A,BからΣn∈{0,…,N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られない場合にC1P:=⊥とする。秘密計算装置は、例えば、メタ情報A,BからΣn∈{0,…,N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られる場合に、メタ情報A,BからΣn∈{0,…,N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値を得てC1Pとする。秘密計算装置は、例えば、メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b2P(n)+a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られない場合にC2P:=⊥とする。秘密計算装置は、例えば、Σn∈{0,…,N-1}{a2P(n)b2P(n)+a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られる場合に、メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b2P(n)+a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値を得てC2Pとする。C0P,C1P,C2Pは演算結果Σn∈{0,…,N-1}a(n)b(n)の秘密分散値のメタ情報であり、C0P:=⊥の場合には演算結果Σn∈{0,…,N-1}a(n)b(n)の秘密分散値がc0Pを含み、C1P:=⊥の場合には演算結果Σn∈{0,…,N-1}a(n)b(n)の秘密分散値がc1Pを含む。以上のように、秘密計算装置間での値の受け渡し回数、および復元時の秘密分散値の受け渡し量を削減し、効率を向上できる。さらにc0Pやc1Pの演算を省略する場合には、秘密計算装置での演算量も削減できる。
また例えば、メタ情報Aがa0P(n)に応じた値を表す場合、a’0P(n)はメタ情報Aによって表される値であり、メタ情報Aがa1P(n)に応じた値を表す場合、a’1P(n)はメタ情報Aによって表される値であり、メタ情報Bがb0P(n)に応じた値を表す場合、b’0P(n)はメタ情報Bによって表される値であり、メタ情報Bがb1P(n)に応じた値を表す場合、b’1P(n)はメタ情報Bによって表される値である。ここで、メタ情報Aによって表されるa0P(n)に応じた値のデータ量は、a0P(n)のデータ量よりも小さい(条件2-1)、および/または、メタ情報Aによって表されるa1P(n)に応じた値のデータ量はa1P(n)のデータ量よりも小さい(条件2-2)、および/または、メタ情報Bによって表されるb0P(n)に応じた値のデータ量はb0P(n)のデータ量よりも小さい(条件2-3)、および/または、メタ情報Bによって表されるb1P(n)に応じた値のデータ量はb1P(n)のデータ量よりも小さい(条件2-4)という条件を満たす場合、シェアを用いる場合よりも演算量を削減できる。
[第1実施形態]
第1実施形態では、上述の方式を乗算に適用した例を説明する。
<構成>
図1に例示するように、本形態の秘密計算システム1は、3個の秘密計算装置11-0,11-1,11-2を有し、これらはインターネット等のネットワークを通じて通信可能に構成されている。図2に例示するように、本形態の秘密計算装置11-P(ただし、P=0,1,2)は、記憶部111-P、演算部112-P、制御部113-P、共有部114-P、および通信部115-Pを有する。演算部112-Pは、処理部1120-P~112A-Pを有する。秘密計算装置11-Pは、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の秘密計算装置11-mを構成する電子回路が複数のCPUを含んでいてもよい。なお、秘密計算装置11-Pで実行される各処理は制御部113-Pの制御下で実行され、各処理で得られた情報は一時メモリ(図示せず)に格納される。一時メモリに格納された情報は、必要に応じて読み出されて使用される。
第1実施形態では、上述の方式を乗算に適用した例を説明する。
<構成>
図1に例示するように、本形態の秘密計算システム1は、3個の秘密計算装置11-0,11-1,11-2を有し、これらはインターネット等のネットワークを通じて通信可能に構成されている。図2に例示するように、本形態の秘密計算装置11-P(ただし、P=0,1,2)は、記憶部111-P、演算部112-P、制御部113-P、共有部114-P、および通信部115-Pを有する。演算部112-Pは、処理部1120-P~112A-Pを有する。秘密計算装置11-Pは、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の秘密計算装置11-mを構成する電子回路が複数のCPUを含んでいてもよい。なお、秘密計算装置11-Pで実行される各処理は制御部113-Pの制御下で実行され、各処理で得られた情報は一時メモリ(図示せず)に格納される。一時メモリに格納された情報は、必要に応じて読み出されて使用される。
<処理の前提>
本形態では、入力値aと入力値bとの乗算abの秘密計算を行う。入力値aはa=a1+a2+a3を満たす3個のサブシェアa1,a2,a3に分割され、入力値bはb=b1+b2+b3を満たす3個のサブシェアb1,b2,b3に分割されている。すなわち、入力値aはサブシェアa1,a2,a3の関数値であり、入力値bはサブシェアb1,b2,b3の関数値である。各秘密計算装置11-P(ただし、P=0,1,2)には、3個のサブシェアa0P,a1P,a2Pを要素とするサブシェア集合(a0P,a1P,a2P)の真部分集合であるシェア(a0P,a1P)(割り当てシェア)が割り当てられる。ただし、a0P=a1(P-1 mod3)かつa1P=a0(P+1 mod3)である。サブシェア集合(a0P,a1P,a2P)の他の真部分集合(a0P,a2P)および(a1P,a2P)を「外部割り当てシェア」と呼ぶ。また、各秘密計算装置11-P(ただし、P=0,1,2)には3個のサブシェアb0P,b1P,b2Pを要素とするサブシェア集合(b0P,b1P,b2P)の真部分集合であるシェア(b0P,b1P)(割り当てシェア)が割り当てられる。ただし、b0P=b1(P-1 mod3)かつb1P=b0(P+1 mod3)である。サブシェア集合(b0P,b1P,b2P)の他の真部分集合(b0P,b2P)および(b1P,b2P)を「外部割り当てシェア」と呼ぶ。すなわち、秘密計算装置11-0にはシェア(a00,a10)=(a2,a0)および(b00,b10)=(b2,b0)が割り当てられ、秘密計算装置11-1にはシェア(a01,a11)=(a0,a1)および(b01,b11)=(b0,b1)が割り当てられ、秘密計算装置11-2にはシェア(a02,a12)=(a1,a2),(b02,b12)=(b1,b2)が割り当てられる。秘密計算装置11-Pにとって自らに割り当てられていないシェアは「外部割り当てシェア」である。各秘密計算装置11-P(図2)の記憶部111-Pには、シェア(a0P,a1P)および(b0P,b1P)(割り当てシェア)が格納される(図3)。これらのサブシェアは明らかにa=a0P+a1P+a2Pおよびb=b0P+b1P+b2Pの関係を満たす。
本形態では、入力値aと入力値bとの乗算abの秘密計算を行う。入力値aはa=a1+a2+a3を満たす3個のサブシェアa1,a2,a3に分割され、入力値bはb=b1+b2+b3を満たす3個のサブシェアb1,b2,b3に分割されている。すなわち、入力値aはサブシェアa1,a2,a3の関数値であり、入力値bはサブシェアb1,b2,b3の関数値である。各秘密計算装置11-P(ただし、P=0,1,2)には、3個のサブシェアa0P,a1P,a2Pを要素とするサブシェア集合(a0P,a1P,a2P)の真部分集合であるシェア(a0P,a1P)(割り当てシェア)が割り当てられる。ただし、a0P=a1(P-1 mod3)かつa1P=a0(P+1 mod3)である。サブシェア集合(a0P,a1P,a2P)の他の真部分集合(a0P,a2P)および(a1P,a2P)を「外部割り当てシェア」と呼ぶ。また、各秘密計算装置11-P(ただし、P=0,1,2)には3個のサブシェアb0P,b1P,b2Pを要素とするサブシェア集合(b0P,b1P,b2P)の真部分集合であるシェア(b0P,b1P)(割り当てシェア)が割り当てられる。ただし、b0P=b1(P-1 mod3)かつb1P=b0(P+1 mod3)である。サブシェア集合(b0P,b1P,b2P)の他の真部分集合(b0P,b2P)および(b1P,b2P)を「外部割り当てシェア」と呼ぶ。すなわち、秘密計算装置11-0にはシェア(a00,a10)=(a2,a0)および(b00,b10)=(b2,b0)が割り当てられ、秘密計算装置11-1にはシェア(a01,a11)=(a0,a1)および(b01,b11)=(b0,b1)が割り当てられ、秘密計算装置11-2にはシェア(a02,a12)=(a1,a2),(b02,b12)=(b1,b2)が割り当てられる。秘密計算装置11-Pにとって自らに割り当てられていないシェアは「外部割り当てシェア」である。各秘密計算装置11-P(図2)の記憶部111-Pには、シェア(a0P,a1P)および(b0P,b1P)(割り当てシェア)が格納される(図3)。これらのサブシェアは明らかにa=a0P+a1P+a2Pおよびb=b0P+b1P+b2Pの関係を満たす。
サブシェア集合(a0P,a1P,a2P)の要素に応じた値を表すかまたは要素が秘匿値であることを表すメタ情報A、およびサブシェア集合(b0P,b1P,b2P)の要素に応じた値を表すかまたは要素が秘匿値であることを表すメタ情報Bが設定される。「要素aJPに応じた値を表すメタ情報A」は、要素aJP(ただし、J=0,1,2)そのものを表す値AJP(すなわち、AJP:=aJP)を表してもよいし、要素aJPを一意に定める関数fについてaJP=f(AJP)を満たす値AJPを表してもよい。前者の場合、AJPは入力値aが取り得る値を要素とする集合Rの元であり、後者の場合、関数fによる値域が集合Rに属することになる定義域R’の元である。関数fは、例えば準同型性関数である。定義域R’の元のデータ量が集合Rの元のデータ量よりも小さくてもよい。「要素aJPが秘匿値であることを表すメタ情報A」は、要素aJP(ただし、J=0,1,2)が秘匿値であることを表す値AJP=⊥を表す。AJP=⊥である場合、メタ情報Aのみから要素aJPの値を得ることはできない。このような値A0P,A1P,A2Pを表す情報であれば、どのような情報をメタ情報Aとしてもよい。例えば、値A0P,A1P,A2Pを要素とする集合(A0P,A1P,A2P)をメタ情報Aとしてもよいし、集合(A0P,A1P,A2P)を表す1個の値をメタ情報Aとしてもよいし、集合(A0P,A1P,A2P)の複数の要素からなる部分集合を表す値の集合をメタ情報Aとしてもよい。以上の点はメタ情報Bについても同様であり、値B0P,B1P,B2Pを表す情報であれば、どのような情報をメタ情報Bとしてもよい。ただし、BJP:=bJPまたはbJP=f(BJP)またはBJP:=⊥である。A0P,A1P,A2P,B0P,B1P,B2Pの少なくとも一つが「⊥」ではない場合に秘密計算装置11-P間での値の受け渡し回数を削減できる。メタ情報AおよびBは、すべての秘密計算装置11-P(ただし、P=0,1,2)の記憶部111-Pに格納される。
<秘密計算処理>
次に図3~図7を用い、本形態の秘密計算の処理内容を説明する。秘密計算装置11-P(ただし、P=0,1,2)は、それぞれ以下の処理を実行する。
次に図3~図7を用い、本形態の秘密計算の処理内容を説明する。秘密計算装置11-P(ただし、P=0,1,2)は、それぞれ以下の処理を実行する。
秘密計算装置11-Pの共有部114-Pは、記憶部111-Pに格納されたメタ情報A,Bに対応するx01が真(T)であるか偽(F)であるかに否かに応じた処理を行う。ただし、xJK:=[AJPBKP+AKPBJP=⊥]∈{T,F}(ただし、(J,K)=(0,1),(1,2),(2,0))であり、[AJPBKP+AKPBJP=⊥]は「AJPBKP+AKPBJP=⊥である」という命題が真(T)であるか、偽(F)であるか、を表す真偽値を表す。「AJPBKP+AKPBJP=⊥である」とは、メタ情報A,BからaJPbKP+aKPbJPに応じた値が得られないことを意味する。メタ情報A,BからaJPbKPに応じた値が得られないか(AJPBKP=⊥)、または、メタ情報A,BからaKPbJPに応じた値が得られない場合(AKPBJP=⊥)、メタ情報A,BからaJPbKP+aKPbJPに応じた値は得られない(AJPBKP+AKPBJP=⊥)。言い換えると、AJPBKP+AKPBJP=⊥は、(AJPBKP=⊥)∨(AKPBJP=⊥)であることを意味する。例えば、(1)AJP,BKP∈RまたはAJP,BKP∈R’である場合AJPBKP≠⊥であり、AKP,BJP∈RまたはAKP,BJP∈R’である場合AKPBJP≠⊥である。(2)AJP=0である場合、BKPにかかわらずAJPBKP=0であってAJPBKP≠⊥である。BKP=0である場合、AJPにかかわらずAJPBKP=0であってAJPBKP≠⊥である。AKP=0である場合、BJPにかかわらずAKPBJP=0であってAKPBJP≠⊥である。BJP=0である場合、AKPにかかわらずAKPBJP=0であってAKPBJP≠⊥である。(3)AJP≠0かつBKP=⊥の場合、または、AJP=⊥≠0かつBKP≠0の場合、AJPBKP=⊥である。AKP≠0かつBJP=⊥の場合、または、AKP=⊥≠0かつBJP≠0の場合、AKPBJP=⊥である(ステップS101)。
x01が真(x01=T)である場合(メタ情報A,Bから提供対応値a0Pb1P+a1Pb0Pに応じた値が得られない場合)、共有部114-Pは外部の秘密計算装置11-(P+1 mod3)との間で任意値rPを共有するためのやり取りを行う。任意値rPは、乱数であってもよいし、擬似乱数であってもよいし、定数であってもよい。例えば、共有部114-Pは、生成または選択した任意値rPを記憶部111-Pに格納するとともに通信部115-Pに送り、通信部115-Pは任意値rPを秘密計算装置11-(P+1 mod3)に送信する。任意値rPは秘密計算装置11-(P+1 mod3)の通信部115-(P+1 mod3)に入力され、記憶部111-(P+1 mod3)に格納される(ステップS102)。その後ステップS103に進む。一方、x01が偽(x01=F)である場合、ステップS102を実行することなく、ステップS103に進む。
ステップS103では、共有部114-Pが、記憶部111-Pに格納されたメタ情報A,Bに対応するx20が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS103)。x20が真(x20=T)である場合(メタ情報A,Bから提供対応値a2Pb0P+a0Pb2Pに応じた値が得られない場合)、共有部114-Pは外部の秘密計算装置11-(P-1 mod3)との間で任意値rP-:=r(P-1mod3)を共有するためのやり取りを行う。任意値rP-は、乱数であってもよいし、擬似乱数であってもよいし、定数であってもよい。例えば、秘密計算装置11-(P-1 mod3)の共有部114-(P-1 mod3)が、生成または選択した任意値rP-を記憶部111-(P-1 mod3)に格納するとともに通信部115-(P-1 mod3)に送り、通信部115-(P-1 mod3)は任意値rP-を秘密計算装置11-Pに送信する。任意値rP-は共有部114-Pに入力され、共有部114-Pは任意値rP-を記憶部111-Pに格納する(ステップS104)。その後ステップS105に進む。一方、x20が偽(x20=F)である場合、ステップS104を実行することなく、ステップS105に進む。
ステップS105では、演算部112-Pの処理部1120-Pが、記憶部111-Pに格納されたメタ情報A,Bに対応するx01が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS105)。x01が真(x01=T)である場合(メタ情報A,Bから提供対応値a0Pb1P+a1Pb0Pに応じた値が得られない場合)、処理部1120-Pは、記憶部111-Pからシェア(a0P,a1P),(b0P,b1P)および任意値rPを読み込み、提供値cP:=a0Pb1P+a1Pb0P+rPを得て出力する(ステップS106)。提供値cPは、通信部115-Pから外部の秘密計算装置11-(P-1 mod3)に送信される。提供値cPは秘密計算装置11-(P-1 mod3)の通信部115-(P-1 mod3)に入力され、記憶部111-(P-1 mod3)に格納される(ステップS107)。その後ステップS110に進む。一方、x01が偽(x01=F)である場合、ステップS106,S107を実行することなく、ステップS110に進む。
ステップS110では、演算部112-Pの処理部1127-Pが、記憶部111-Pに格納されたメタ情報A,BからC0P:=A0PB0P+A0PB1P+A1PB0Pを得て、C0Pを出力する(ステップS110)。ここで、メタ情報A,Bからa0Pb0P+a0Pb1P+a1Pb0Pに応じた値が得られない場合(A0PB0P+A0PB1P+A1PB0P=⊥の場合)にはC0P:=⊥となる。なお、A0PB0P=⊥またはA0PB1P=⊥またはA1PB0P=⊥の場合にA0PB0P+A0PB1P+A1PB0P=⊥となる。一方、メタ情報A,Bからa0Pb0P+a0Pb1P+a1Pb0Pに応じた値が得られる場合、C0Pはa0Pb0P+a0Pb1P+a1Pb0Pに応じた値となる。
次に、演算部112-Pの処理部1128-Pが、記憶部111-Pに格納されたメタ情報A,BからC1P:=A1PB1P+A1PB2P+A2PB1Pを得て、C1Pを出力する(ステップS113)。ここで、メタ情報A,Bからa1Pb1P+a1Pb2P+a2Pb1Pに応じた値が得られない場合(A1PB1P+A1PB2P+A2PB1P=⊥の場合)にはC1P:=⊥となる。一方、メタ情報A,Bからa1Pb1P+a1Pb2P+a2Pb1Pに応じた値が得られる場合、C1Pはa1Pb1P+a1Pb2P+a2Pb1Pに応じた値となる。
次に、演算部112-Pの処理部1128-Pが、記憶部111-Pに格納されたメタ情報A,BからC2P:=A2PB2P+A2PB0P+A0PB2Pを得て、C2Pを出力する(ステップS116)。ここで、メタ情報A,Bからa2Pb2P+a2Pb0P+a0Pb2Pに応じた値が得られない場合(A2PB2P+A2PB0P+A0PB2P=⊥)にはC2P:=⊥となる。一方、メタ情報A,Bからa2Pb2P+a2Pb0P+a0Pb2Pに応じた値が得られる場合、C2Pはa2Pb2P+a2Pb0P+a0Pb2Pに応じた値となる。
次に、演算部112-Pの処理部112A-Pが、記憶部111-Pに格納されたメタ情報Aに対応するA0Pが真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS117)。処理部112A-Pは、A0Pが真(A0P=T)である場合にa’0P:=a0Pとし(ステップS118)、A0Pが偽(A0P=F)である場合にa’0P:=A0Pとする(ステップS119)。すなわち、メタ情報Aがa0Pに応じた値を表す場合、a’0Pはメタ情報Aによって表される値となる。
また、処理部112A-Pは、記憶部111-Pに格納されたメタ情報Aに対応するA1Pが真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS120)。処理部112A-Pは、A1Pが真(A1P=T)である場合にa’1P:=a1Pとし(ステップS121)、A1Pが偽(A1P=F)である場合にa’1P:=A1Pとし、a’1Pを出力する(ステップS122)。すなわち、メタ情報Aがa1Pに応じた値を表す場合、a’1Pはメタ情報Aによって表される値となる。
また、処理部112A-Pは、記憶部111-Pに格納されたメタ情報Bに対応するB0Pが真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS123)。処理部112A-Pは、B0Pが真(B0P=T)である場合にb’0P:=b0Pとし(ステップS124)、B0Pが偽(B0P=F)である場合にb’0P:=B0Pとし、b’0Pを出力する(ステップS125)。すなわち、メタ情報Bがb0Pに応じた値を表す場合、b’0Pはメタ情報Bによって表される値となる。
次に、処理部112B-Pは、記憶部111-Pに格納されたメタ情報Bに対応するB1Pが真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS126)。処理部112B-Pは、B1Pが真(B1P=T)である場合にb’1P:=b1Pとし(ステップS127)、B1Pが偽(B1P=F)である場合にb’1P:=B1Pとし、b’1Pを出力する(ステップS128)。すなわち、メタ情報Bがb1Pに応じた値を表す場合、b’1Pはメタ情報Bによって表される値となる。
演算部112-Pの処理部1121-Pが、記憶部111-Pに格納されたメタ情報A,Bに対応するx10が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS129)。処理部1121-Pは、x10が真(x10=T)である場合(メタ情報A,Bから提供対応値a0Pb1P+a1Pb0Pに応じた値が得られない場合)にc’P:=cPとし(ステップS130)、そうでない場合(c’P:=cPとしない場合)にc’P:=0とし(ステップS131)、c’Pを出力する。
演算部112-Pの処理部1122-Pは、記憶部111-Pに格納されたメタ情報A,Bに対応するx12が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS132)。x12が真(T)である場合(メタ情報A,Bから取得対応値a1Pb2P+a2Pb1Pに応じた値が得られない場合)、前述のステップS107で秘密計算装置11-(P+1 mod3)から取得値cP+:=c(P+1 mod3)が送信されている。この取得値cP+は処理部1122-Pに入力される(ステップS133)。処理部1122-Pはc’P+:=cP+として出力する(ステップS134)。一方、x12が偽(F)である場合(c’P+:=cP+としない場合)、処理部1122-Pはc’P+:=0として出力する(ステップS135)。
演算部112-Pの処理部1123-Pは、記憶部111-Pに格納されたメタ情報A,Bに対応するx01が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS136)。処理部1122-Pは、x01が真(T)である場合(メタ情報A,Bから提供対応値a0Pb1P+a1Pb0Pに応じた値が得られない場合)にr’P:=rPとし(ステップS137)、そうでない場合(r’P:=rPとしない場合)にr’P:=0とし(ステップS138)、r’Pを出力する。
演算部112-Pの処理部1124-Pは、記憶部111-Pに格納されたメタ情報A,Bに対応するx20が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS139)。処理部1124-Pは、x20が真(T)である場合(メタ情報A,Bからa2Pb0P+a0Pb2Pに応じた値が得られない場合)にr’P-:=rP-とし(ステップS140)、そうでない場合(r’P-:=rP-としない場合)にr’P-:=0とし(ステップS141)、r’P-を出力する。
演算部112-Pの処理部1125-Pは、C0P=⊥であるか否かに応じた処理を行う(ステップS142)。C0P=⊥であれば、処理部1125-Pがc0P:=a’0Pb’1P+c’P-r’P-を得(ステップS143)、演算部112-Pがc0Pを出力し(ステップS144)、ステップS145に進む。なお、C0P=⊥となるのは、メタ情報A,Bからa2Pb0P+a0Pb2Pに応じた値が得られないか、またはa0Pb0P+a0Pb1P+a1Pb0Pに応じた値が得られない場合である。一方、C0P=⊥でなければ、ステップS143およびS144を実行することなく、ステップS145に進む。
ステップS145では、演算部112-Pの処理部1126-PがC1P=⊥であるか否かに応じた処理を行う(ステップS145)。C1P=⊥であれば、処理部1126-Pがc1P:=a’1Pb’1P+c’P+-r’Pを得(ステップS146)、演算部112-Pがc1Pを出力する(ステップS147)。一方、C1P=⊥でなければ、ステップS146およびS147を実行することなく、ステップS148に進む。
ステップS148では、演算部112-PがC0P,C1P,C2Pを出力する。ここで、C0P,C1P,C2Pは演算結果abの秘密分散値のメタ情報である。c0Pおよびc1Pは演算結果abの秘密分散値である。ただし、c0PはC0P:=⊥の場合にのみに出力されればよく、c1PはC1P:=⊥の場合にのみに出力されればよい。
<本形態の特徴>
本形態では、メタ情報A,Bが表す値に応じ、秘密計算装置11-P間での値の送受信回数を削減できる。また、送受信を行う必要がなくなった値の演算を省略できる場合には、演算量も削減できる。さらに、メタ情報を用いた演算量がシェアを用いた演算量よりも小さい場合にも演算量を削減できる。
本形態では、メタ情報A,Bが表す値に応じ、秘密計算装置11-P間での値の送受信回数を削減できる。また、送受信を行う必要がなくなった値の演算を省略できる場合には、演算量も削減できる。さらに、メタ情報を用いた演算量がシェアを用いた演算量よりも小さい場合にも演算量を削減できる。
[第2実施形態]
第2実施形態では、上述の方式を積和演算に適用した例を説明する。
<構成>
図1に例示するように、本形態の秘密計算システム2は、3個の秘密計算装置21-0,21-1,21-2を有し、これらはインターネット等のネットワークを通じて通信可能に構成されている。図2に例示するように、本形態の秘密計算装置21-P(ただし、P=0,1,2)は、記憶部211-P、演算部212-P、制御部213-P、共有部214-P、および通信部215-Pを有する。演算部212-Pは、処理部2120-P~212A-Pを有する。秘密計算装置21-Pは、例えば、前述のコンピュータが所定のプログラムを実行することで構成される。なお、秘密計算装置21-Pで実行される各処理は制御部213-Pの制御下で実行され、各処理で得られた情報は一時メモリ(図示せず)に格納される。一時メモリに格納された情報は、必要に応じて読み出されて使用される。
第2実施形態では、上述の方式を積和演算に適用した例を説明する。
<構成>
図1に例示するように、本形態の秘密計算システム2は、3個の秘密計算装置21-0,21-1,21-2を有し、これらはインターネット等のネットワークを通じて通信可能に構成されている。図2に例示するように、本形態の秘密計算装置21-P(ただし、P=0,1,2)は、記憶部211-P、演算部212-P、制御部213-P、共有部214-P、および通信部215-Pを有する。演算部212-Pは、処理部2120-P~212A-Pを有する。秘密計算装置21-Pは、例えば、前述のコンピュータが所定のプログラムを実行することで構成される。なお、秘密計算装置21-Pで実行される各処理は制御部213-Pの制御下で実行され、各処理で得られた情報は一時メモリ(図示せず)に格納される。一時メモリに格納された情報は、必要に応じて読み出されて使用される。
<処理の前提>
本形態では、入力値{a(0),…,a(N-1)}と入力値{b(0),…,b(N-1)}との積和演算Σn∈{0,…,N-1}a(n)b(n)の秘密計算を行う。N≧1であるがN=1の場合には第1実施形態と同じ処理となる。本形態が実質的に意味をなすのはN≧2の場合である。各a(n)(ただし、n=0,…,N-1)はa(n)=a1(n)+a2(n)+a3(n)を満たす3個のサブシェアa1(n),a2(n),a3(n)に分割され、b(n)はb(n)=b1(n)+b2(n)+b3(n)を満たす3個のサブシェアb1(n),b2(n),b3(n)に分割されている。すなわち、a(n)はサブシェアa1(n),a2(n),a3(n)の関数値であり、b(n)はサブシェアb1(n),b2(n),b3(n)の関数値である。各秘密計算装置21-P(ただし、P=0,1,2)には、3個のサブシェアa0P(n),a1P(n),a2P(n)を要素とするサブシェア集合(a0P(n),a1P(n),a2P(n))の真部分集合であるシェア(a0P(n),a1P(n))(割り当てシェア)が割り当てられる。ただし、a0P(n)=a1(n)(P-1 mod3)かつa1P(n)=a0(n)(P+1 mod3)である。また、各秘密計算装置21-P(ただし、P=0,1,2)には3個のサブシェアb0P(n),b1P(n),b2P(n)を要素とするサブシェア集合(b0P(n),b1P(n),b2P(n))の真部分集合であるシェア(b0P(n),b1P(n))(割り当てシェア)が割り当てられる。ただし、b0P(n)=b1(n)(P-1 mod3)かつb1P(n)=b0(n)(P+1 mod3)である。すなわち、秘密計算装置21-0にはシェア(a00(n),a10(n))=(a2(n),a0(n))および(b00(n),b10(n))=(b2(n),b0(n))が割り当てられ、秘密計算装置21-1にはシェア(a01(n),a11(n))=(a0(n),a1(n))および(b01(n),b11(n))=(b0(n),b1(n))が割り当てられ、秘密計算装置21-2にはシェア(a02(n),a12(n))=(a1(n),a2(n)),(b02(n),b12(n))=(b1(n),b2(n))が割り当てられる。秘密計算装置21-Pにとって自らに割り当てられていないシェアは「外部割り当てシェア」である。各秘密計算装置21-P(図2)の記憶部211-Pには、シェア(a0P(n),a1P(n))および(b0P(n),b1P(n))(割り当てシェア)が格納される(図8)。これらのサブシェアは明らかにa(n)=a0P(n)+a1P(n)+a2P(n)およびb(n)=b0P(n)+b1P(n)+b2P(n)の関係を満たす。
本形態では、入力値{a(0),…,a(N-1)}と入力値{b(0),…,b(N-1)}との積和演算Σn∈{0,…,N-1}a(n)b(n)の秘密計算を行う。N≧1であるがN=1の場合には第1実施形態と同じ処理となる。本形態が実質的に意味をなすのはN≧2の場合である。各a(n)(ただし、n=0,…,N-1)はa(n)=a1(n)+a2(n)+a3(n)を満たす3個のサブシェアa1(n),a2(n),a3(n)に分割され、b(n)はb(n)=b1(n)+b2(n)+b3(n)を満たす3個のサブシェアb1(n),b2(n),b3(n)に分割されている。すなわち、a(n)はサブシェアa1(n),a2(n),a3(n)の関数値であり、b(n)はサブシェアb1(n),b2(n),b3(n)の関数値である。各秘密計算装置21-P(ただし、P=0,1,2)には、3個のサブシェアa0P(n),a1P(n),a2P(n)を要素とするサブシェア集合(a0P(n),a1P(n),a2P(n))の真部分集合であるシェア(a0P(n),a1P(n))(割り当てシェア)が割り当てられる。ただし、a0P(n)=a1(n)(P-1 mod3)かつa1P(n)=a0(n)(P+1 mod3)である。また、各秘密計算装置21-P(ただし、P=0,1,2)には3個のサブシェアb0P(n),b1P(n),b2P(n)を要素とするサブシェア集合(b0P(n),b1P(n),b2P(n))の真部分集合であるシェア(b0P(n),b1P(n))(割り当てシェア)が割り当てられる。ただし、b0P(n)=b1(n)(P-1 mod3)かつb1P(n)=b0(n)(P+1 mod3)である。すなわち、秘密計算装置21-0にはシェア(a00(n),a10(n))=(a2(n),a0(n))および(b00(n),b10(n))=(b2(n),b0(n))が割り当てられ、秘密計算装置21-1にはシェア(a01(n),a11(n))=(a0(n),a1(n))および(b01(n),b11(n))=(b0(n),b1(n))が割り当てられ、秘密計算装置21-2にはシェア(a02(n),a12(n))=(a1(n),a2(n)),(b02(n),b12(n))=(b1(n),b2(n))が割り当てられる。秘密計算装置21-Pにとって自らに割り当てられていないシェアは「外部割り当てシェア」である。各秘密計算装置21-P(図2)の記憶部211-Pには、シェア(a0P(n),a1P(n))および(b0P(n),b1P(n))(割り当てシェア)が格納される(図8)。これらのサブシェアは明らかにa(n)=a0P(n)+a1P(n)+a2P(n)およびb(n)=b0P(n)+b1P(n)+b2P(n)の関係を満たす。
サブシェア集合(a0P(n),a1P(n),a2P(n))の要素に応じた値を表すかまたは要素が秘匿値であることを表すメタ情報A、およびサブシェア集合(b0P(n),b1P(n),b2P(n))の要素に応じた値を表すかまたは要素が秘匿値であることを表すメタ情報Bが設定される。「要素aJP(n)に応じた値を表すメタ情報A」は、要素aJP(n)(ただし、J=0,1,2)そのものを表す値AJP(n)(すなわち、AJP(n):=aJP(n))を表してもよいし、要素aJP(n)を一意に定める関数fについてaJP(n)=f(AJP(n))を満たす値AJP(n)を表してもよい。関数fは、例えば準同型性関数である。前者の場合、AJP(n)は入力値a(n)が取り得る値を要素とする集合Rの元であり、後者の場合、関数fによる値域が集合Rに属することになる定義域R’の元である。「要素aJP(n)が秘匿値であることを表すメタ情報A」は、要素aJP(n)(ただし、J=0,1,2)が秘匿値であることを表す値AJP(n)=⊥を表す。AJP(n)=⊥である場合、メタ情報Aのみから要素aJP(n)の値を得ることはできない。このような値A0P(n),A1P(n),A2P(n)を表す情報であれば、どのような情報をメタ情報Aとしてもよい。例えば、値A0P(n),A1P(n),A2P(n)を要素とする集合(A0P(n),A1P(n),A2P(n))(ただし、n=0,…N-1)をメタ情報Aとしてもよいし、集合(A0P(n),A1P(n),A2P(n))を表す1個の値をメタ情報Aとしてもよいし、集合(A0P(n),A1P(n),A2P(n))の複数の要素からなる部分集合を表す値の集合をメタ情報Aとしてもよい。以上の点はメタ情報Bについても同様であり、値B0P(n),B1P(n),B2P(n)を表す情報であれば、どのような情報をメタ情報Bとしてもよい。ただし、BJP(n):=bJP(n)またはbJP(n)=f(BJP(n))またはBJP(n):=⊥である。本形態では、A0P(n),A1P(n),A2P(n),B0P(n),B1P(n),B2P(n)の少なくとも一つが「⊥」でないときに、秘密計算装置21-P間での値の受け渡し回数を削減できる。メタ情報AおよびBは、すべての秘密計算装置21-P(ただし、P=0,1,2)の記憶部211-Pに格納される。
<秘密計算処理>
次に図8~図12を用い、本形態の秘密計算の処理内容を説明する。秘密計算装置21-P(ただし、P=0,1,2)は、それぞれ以下の処理を実行する。
次に図8~図12を用い、本形態の秘密計算の処理内容を説明する。秘密計算装置21-P(ただし、P=0,1,2)は、それぞれ以下の処理を実行する。
秘密計算装置21-Pの共有部214-Pは、記憶部211-Pに格納されたメタ情報A,Bに対応するx01が真(T)であるか偽(F)であるかに否かに応じた処理を行う。ただし、xJK:=[Σn∈{0,…,N-1}{AJP(n)BKP(n)+AKP(n)BJP(n)}=⊥]∈{T,F}(ただし、(J,K)=(0,1),(1,2),(2,0)、n=0,…,N-1)である。[Σn∈{0,…,N-1}{AJP(n)BKP(n)+AKP(n)BJP(n)}=⊥]は「Σn∈{0,…,N-1}{AJP(n)BKP(n)+AKP(n)BJP(n)}=⊥である」という命題が真(T)であるか、偽(F)であるか、を表す真偽値を表す。「Σn∈{0,…,N-1}{AJP(n)BKP(n)+AKP(n)BJP(n)}=⊥である」とは、メタ情報A,BからΣn∈{0,…,N-1}{aJP(n)bKP(n)+aKP(n)bJP(n)}に応じた値が得られないことを意味する(ステップS201)。
x01が真(x01=T)である場合(メタ情報A,Bから提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合)、共有部214-Pは外部の秘密計算装置21-(P+1 mod3)との間で任意値rPを共有するためのやり取りを行う。例えば、共有部214-Pは、生成または選択した任意値rPを記憶部211-Pに格納するとともに通信部215-Pに送り、通信部215-Pは任意値rPを秘密計算装置21-(P+1 mod3)に送信する。任意値rPは秘密計算装置21-(P+1 mod3)の通信部215-(P+1 mod3)に入力され、記憶部211-(P+1 mod3)に格納される(ステップS202)。その後ステップS203に進む。一方、x01が偽(x01=F)である場合、ステップS202を実行することなく、ステップS203に進む。
ステップS203では、共有部214-Pが、記憶部211-Pに格納されたメタ情報A,Bに対応するx20が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS203)。x20が真(x20=T)である場合(メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られない場合)、共有部214-Pは外部の秘密計算装置21-(P-1 mod3)との間で任意値rP-:=r(P-1mod3)を共有するためのやり取りを行う。任意値rP-は、乱数であってもよいし、擬似乱数であってもよいし、定数であってもよい。例えば、秘密計算装置21-(P-1 mod3)の共有部214-(P-1 mod3)が、生成または選択した任意値rP-を記憶部211-(P-1 mod3)に格納するとともに通信部215-(P-1 mod3)に送り、通信部215-(P-1 mod3)は任意値rP-を秘密計算装置21-Pに送信する。任意値rP-は共有部214-Pに入力され、共有部214-Pは任意値rP-を記憶部211-Pに格納する(ステップS204)。その後ステップS205に進む。一方、x20が偽(x20=F)である場合、ステップS204を実行することなく、ステップS205に進む。
ステップS205では、演算部212-Pの処理部2120-Pが、記憶部211-Pに格納されたメタ情報A,Bに対応するx01が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS205)。x01が真(x01=T)である場合(メタ情報A,Bから提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合)、処理部2120-Pは、記憶部211-Pからシェア(a0P(n),a1P(n)),(b0P(n),b1P(n))および任意値rPを読み込み、提供値cP:=Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}+rPを得て出力する(ステップS206)。提供値cPは、通信部215-Pから外部の秘密計算装置21-(P-1 mod3)に送信される。提供値cPは秘密計算装置21-(P-1 mod3)の通信部215-(P-1 mod3)に入力され、記憶部211-(P-1 mod3)に格納される(ステップS207)。その後ステップS210に進む。一方、x01が偽(x01=F)である場合、ステップS206,S207を実行することなく、ステップS210に進む。
ステップS210では、演算部212-Pの処理部2127-Pが、記憶部211-Pに格納されたメタ情報A,BからC0P:=Σn∈{0,…,N-1}{A0P(n)B0P(n)+A0P(n)B1P(n)+A1P(n)B0P(n)}を得て、C0Pを出力する(ステップS210)。ここで、メタ情報A,BからΣn∈{0,…,N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合(Σn∈{0,…,N-1}{A0P(n)B0P(n)+A0P(n)B1P(n)+A1P(n)B0P(n)}=⊥の場合)にはC0P:=⊥となる。一方、メタ情報A,BからΣn∈{0,…,N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られる場合、C0Pは、メタ情報A,BからΣn∈{0,…,N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値となる。
次に、演算部212-Pの処理部2128-Pが、記憶部211-Pに格納されたメタ情報A,BからC1P:=Σn∈{0,…,N-1}{A1P(n)B1P(n)+A1P(n)B2P(n)+A2P(n)B1P(n)}を得て、C1Pを出力する(ステップS213)。ここで、メタ情報A,BからΣn∈{0,…,N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られない場合(Σn∈{0,…,N-1}{A1P(n)B1P(n)+A1P(n)B2P(n)+A2P(n)B1P(n)}=⊥)にはC1P:=⊥となる。一方、メタ情報A,BからΣn∈{0,…,N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られる場合、C1PはΣn∈{0,…,N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値となる。
次に、演算部212-Pの処理部2128-Pが、記憶部211-Pに格納されたメタ情報A,BからC2P:=Σn∈{0,…,N-1}{A2P(n)B2P(n)+A2P(n)B0P(n)+A0P(n)B2P(n)}を得て、C2Pを出力する(ステップS216)。ここで、メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b2P(n)+a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られない場合(Σn∈{0,…,N-1}{A2P(n)B2P(n)+A2P(n)B0P(n)+A0P(n)B2P(n)}=⊥)にはC2P:=⊥となる。一方、メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b2P(n)+a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られる場合、C2PはΣn∈{0,…,N-1}{a2P(n)b2P(n)+a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値となる。
制御部213-Pは、n:=0に初期化する(ステップS2151)。次に、演算部212-Pの処理部212A-Pが、記憶部211-Pに格納されたメタ情報Aに対応するA0P(n)が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS217)。処理部212A-Pは、A0P(n)が真(A0P(n)=T)である場合にa’0P(n):=a0P(n)とし(ステップS218)、A0P(n)が偽(A0P(n)=F)である場合にa’0P(n):=A0P(n)とする(ステップS219)。すなわち、メタ情報Aがa0P(n)に応じた値を表す場合、a’0P(n)はメタ情報Aによって表される値となる。
また、処理部212A-Pは、記憶部211-Pに格納されたメタ情報Aに対応するA1P(n)が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS220)。処理部212A-Pは、A1P(n)が真(A1P(n)=T)である場合にa’1P(n):=a1P(n)とし(ステップS221)、A1P(n)が偽(A1P(n)=F)である場合にa’1P(n):=A1P(n)とし、a’1P(n)を出力する(ステップS222)。すなわち、メタ情報Aがa1P(n)に応じた値を表す場合、a’1P(n)はメタ情報Aによって表される値となる。
また、処理部212A-Pは、記憶部211-Pに格納されたメタ情報Bに対応するB0P(n)が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS223)。処理部212A-Pは、B0P(n)が真(B0P(n)=T)である場合にb’0P(n):=b0P(n)とし(ステップS224)、B0P(n)が偽(B0P(n)=F)である場合にb’0P(n):=B0P(n)とし、b’0P(n)を出力する(ステップS225)。すなわち、メタ情報Bがb0P(n)に応じた値を表す場合、b’0P(n)はメタ情報Bによって表される値となる。
次に、処理部212B-Pは、記憶部211-Pに格納されたメタ情報Bに対応するB1P(n)が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS226)。処理部212B-Pは、B1P(n)が真(B1P(n)=T)である場合にb’1P(n):=b1P(n)とし(ステップS227)、B1P(n)が偽(B1P(n)=F)である場合にb’1P(n):=B1P(n)とし、b’1P(n)を出力する(ステップS228)。すなわち、メタ情報Bがb1P(n)に応じた値を表す場合、b’1P(n)はメタ情報Bによって表される値となる。
制御部213-Pはn=N-1であるかを判定する(ステップS2152)。ここで、n=N-1でなければ、制御部213-Pはn:=n+1とし(ステップS2153)、ステップS217に戻る。n=N-1であれば、演算部212-Pの処理部2121-Pが、記憶部211-Pに格納されたメタ情報A,Bに対応するx10が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS229)。処理部2121-Pは、x10が真(x10=T)である場合(メタ情報A,Bから提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合)にc’P:=cPとし(ステップS230)、そうでない場合(c’P:=cPとしない場合)にc’P:=0とし(ステップS231)、c’Pを出力する。
演算部212-Pの処理部2122-Pは、記憶部211-Pに格納されたメタ情報A,Bに対応するx12が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS232)。x12が真(T)である場合(メタ情報A,Bから取得対応値Σn∈{0,…,N-1}{a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られない場合)、前述のステップS207で秘密計算装置21-(P+1 mod3)から取得値cP+:=c(P+1 mod3)が送信されている。この取得値cP+は処理部2122-Pに入力される(ステップS233)。処理部2122-Pはc’P+:=cP+として出力する(ステップS234)。一方、x12が偽(F)である場合(c’P+:=cP+としない場合)、処理部2122-Pはc’P+:=0として出力する(ステップS235)。
演算部212-Pの処理部2123-Pは、記憶部211-Pに格納されたメタ情報A,Bに対応するx01が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS236)。処理部2122-Pは、x01が真(T)である場合(メタ情報A,Bから提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合)にr’P:=rPとし(ステップS237)、そうでない場合(r’P:=rPとしない場合)にr’P:=0とし(ステップS238)、r’Pを出力する。
演算部212-Pの処理部2124-Pは、記憶部211-Pに格納されたメタ情報A,Bに対応するx20が真(T)であるか偽(F)であるかに否かに応じた処理を行う(ステップS239)。処理部2124-Pは、x20が真(T)である場合(メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られない場合)にr’P-:=rP-とし(ステップS240)、そうでない場合(r’P-:=rP-としない場合)にr’P-:=0とし(ステップS241)、r’P-を出力する。
演算部212-Pの処理部2125-Pは、C0P=⊥であるか否かに応じた処理を行う(ステップS242)。C0P=⊥であれば、処理部2125-Pがc0P:=Σn∈{0,…,N-1}a’0P(n)b’1P(n)+c’P-r’P-を得(ステップS243)、演算部212-Pがc0Pを出力し(ステップS244)、ステップS245に進む。なお、C0P=⊥となるのは、メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られないか、またはΣn∈{0,…,N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合である。一方、C0P=⊥でなければ、ステップS243およびS244を実行することなく、ステップS245に進む。
ステップS245では、演算部212-Pの処理部2126-PがC1P=⊥であるか否かに応じた処理を行う(ステップS245)。C1P=⊥であれば、処理部2126-Pがc1P:=Σn∈{0,…,N-1}a’1P(n)b’1P(n)+c’P+-r’Pを得(ステップS246)、演算部212-Pがc1Pを出力する(ステップS247)。一方、C1P=⊥でなければ、ステップS246およびS247を実行することなく、ステップS248に進む。
ステップS248では、演算部212-PがC0P,C1P,C2Pを出力する。ここで、C0P,C1P,C2Pは演算結果Σn∈{0,…,N-1}a(n)b(n)の秘密分散値のメタ情報である。c0Pおよびc1Pは演算結果Σn∈{0,…,N-1}a(n)b(n)の秘密分散値である。ただし、c0PはC0P:=⊥の場合にのみに出力されればよく、c1PはC1P:=⊥の場合にのみに出力されればよい。
<本形態の特徴>
本形態では、メタ情報A,Bが表す値に応じ、秘密計算装置21-P間での値の送受信回数を削減できる。また、送受信を行う必要がなくなった値の演算を省略できる場合には、演算量も削減できる。さらに、メタ情報を用いた演算量がシェアを用いた演算量よりも小さい場合にも演算量を削減できる。
本形態では、メタ情報A,Bが表す値に応じ、秘密計算装置21-P間での値の送受信回数を削減できる。また、送受信を行う必要がなくなった値の演算を省略できる場合には、演算量も削減できる。さらに、メタ情報を用いた演算量がシェアを用いた演算量よりも小さい場合にも演算量を削減できる。
[変形例等]
なお、本発明は上述の実施形態に限定されるものではない。例えば、上述の実施形態では、秘密計算で乗算または積和演算を行う場合を例示した。しかしながら、複数の秘密計算装置間で値の受け渡しを行い、各秘密計算装置が他の秘密計算装置から受け取った値を用いて秘密計算を行う方式であれば、どのような方式に本発明を適用してもよい。また、上述した各演算は有限体上の演算であってもよいし、拡大体上の演算であってもよいし、環上の演算であってもよいし、その他の代数系上での演算であってもよい。
なお、本発明は上述の実施形態に限定されるものではない。例えば、上述の実施形態では、秘密計算で乗算または積和演算を行う場合を例示した。しかしながら、複数の秘密計算装置間で値の受け渡しを行い、各秘密計算装置が他の秘密計算装置から受け取った値を用いて秘密計算を行う方式であれば、どのような方式に本発明を適用してもよい。また、上述した各演算は有限体上の演算であってもよいし、拡大体上の演算であってもよいし、環上の演算であってもよいし、その他の代数系上での演算であってもよい。
上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、秘密計算装置がネットワーク経由で値の受け渡しを行うのではなく、可搬型記憶媒体を介して値の受け渡しが行われてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記録装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
上記実施形態では、コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されたが、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
11-0~11-2,21-0~21-2 秘密計算装置
1,2 秘密計算システム
1,2 秘密計算システム
Claims (8)
- 入力値に応じた演算結果の秘密分散値を得る秘密計算装置であって、
前記入力値が複数個のサブシェアの関数値であり、
前記複数個のサブシェアを要素とするサブシェア集合の真部分集合である割り当てシェア、および前記サブシェア集合の要素に応じた値を表すかまたは要素が秘匿値であることを表すメタ情報を格納する記憶部と、
前記メタ情報から前記割り当てシェアの部分集合に応じた提供対応値に応じた値が得られない場合に、前記割り当てシェアの部分集合から得た前記提供対応値に応じた提供値を出力する出力部と、
前記メタ情報から前記サブシェア集合の真部分集合である外部割り当てシェアの部分集合に応じた取得対応値に応じた値が得られない場合に、前記取得対応値に応じた取得値が入力される入力部と、
前記取得値が前記入力部に入力される場合には、少なくとも前記取得値を用いて前記秘密分散値を得る演算部と、
を有する秘密計算装置。 - 請求項1の秘密計算装置であって、
前記演算結果が前記入力値および第2入力値に応じた値であり、
前記第2入力値が複数個の第2サブシェアの関数値であり、
前記記憶部が、前記複数個の第2サブシェアを要素とする第2サブシェア集合の真部分集合である第2割り当てシェア、および前記第2サブシェア集合の要素に応じた値を表すかまたは要素が秘匿値であることを表す第2メタ情報を格納し、
前記出力部は、前記メタ情報と前記第2メタ情報とから前記割り当てシェアの部分集合と前記第2割り当てシェアの部分集合とに応じた前記提供対応値に応じた値が得られない場合に、前記割り当てシェアの部分集合と前記第2割り当てシェアの部分集合とから得た前記提供対応値に応じた前記提供値を出力し、
前記メタ情報と前記第2メタ情報とから前記サブシェア集合の真部分集合である外部割り当てシェアの部分集合と前記第2サブシェア集合の真部分集合である第2外部割り当てシェアの部分集合とに応じた前記取得対応値に応じた値が得られない場合に前記取得対応値に応じた前記取得値が前記入力部に入力される、秘密計算装置。 - 請求項1または2の秘密計算装置であって、
前記演算結果が前記入力値aと第2入力値bとの乗算結果であり、
前記入力値aが前記サブシェアa0P,a1P,a2Pについてa=a0P+a1P+a2Pを満たし、
前記第2入力値bが第2サブシェアb0P,b1P,b2Pについてb=b0P+b1P+b2Pを満たし、
a’0P,a’1P,b’0P,b’1Pが、それぞれa0P,a1P,b0P,b1Pに応じた値であり、
前記記憶部が、サブシェア集合(a0P,a1P,a2P)の真部分集合である割り当てシェア(a0P,a1P)、前記サブシェア集合(a0P,a1P,a2P)の要素に応じた値を表すかまたは要素が秘匿値であることを表すメタ情報A、第2サブシェア集合(b0P,b1P,b2P)の真部分集合である第2割り当てシェア(b0P,b1P)、および前記第2サブシェア集合(b0P,b1P,b2P)の要素に応じた値を表すかまたは要素が秘匿値であることを表す第2メタ情報Bを格納し、
前記メタ情報A,Bから前記提供対応値a0Pb1P+a1Pb0Pに応じた値が得られない場合に、外部の第1秘密計算装置との間で第1任意値rPを共有するためのやり取りを行う第1共有部と、
前記メタ情報A,Bからa2Pb0P+a0Pb2Pに応じた値が得られない場合に、外部の第2秘密計算装置との間で第2任意値rP-を共有するためのやり取りを行う第2共有部と、を有し、
前記出力部は、前記メタ情報A,Bから前記提供対応値a0Pb1P+a1Pb0Pに応じた値が得られない場合に、前記提供値cP:=a0Pb1P+a1Pb0P+rPを出力し、
前記メタ情報A,Bから前記取得対応値a1Pb2P+a2Pb1Pに応じた値が得られない場合に前記入力部に前記取得値cP+が入力され、
前記演算部は、
前記メタ情報A,Bから前記提供対応値a0Pb1P+a1Pb0Pに応じた値が得られない場合にc’P:=cPとし、c’P:=cPとしない場合にc’P:=0とする第1処理部と、
前記メタ情報A,Bから前記取得対応値a1Pb2P+a2Pb1Pに応じた値が得られない場合にc’P+:=cP+とし、c’P+:=cP+としない場合にc’P+:=0とする第2処理部と、
前記メタ情報A,Bから前記提供対応値a0Pb1P+a1Pb0Pに応じた値が得られない場合にr’P:=rPとし、r’P:=rPとしない場合にr’P:=0とする第3処理部と、
前記メタ情報A,Bからa2Pb0P+a0Pb2Pに応じた値が得られない場合にr’P-:=rP-とし、r’P-:=rP-としない場合にr’P-:=0とする第4処理部と、
前記メタ情報A,Bからa2Pb0P+a0Pb2Pに応じた値が得られないか、またはa0Pb0P+a0Pb1P+a1Pb0Pに応じた値が得られない場合にc0P:=a’0Pb’1P+c’P-r’P-を得る第5処理部と、
前記メタ情報A,Bからa0Pb1P+a1Pb0Pに応じた値が得られないか、またはa1Pb1P+a1Pb2P+a2Pb1Pに応じた値が得られない場合にc1P:=a’1Pb’1P+c’P+-r’Pを得る第6処理部と、を含む、秘密計算装置。 - 請求項3の秘密計算装置であって、
前記演算部は、
前記メタ情報A,Bからa0Pb0P+a0Pb1P+a1Pb0Pに応じた値が得られない場合にC0P:=⊥とし、前記メタ情報A,Bからa0Pb0P+a0Pb1P+a1Pb0Pに応じた値が得られる場合に前記メタ情報A,Bからa0Pb0P+a0Pb1P+a1Pb0Pに応じた値を得てC0Pとする第7処理部と、
前記メタ情報A,Bからa1Pb1P+a1Pb2P+a2Pb1Pに応じた値が得られない場合にC1P:=⊥とし、前記メタ情報A,Bからa1Pb1P+a1Pb2P+a2Pb1Pに応じた値が得られる場合に前記メタ情報A,Bからa1Pb1P+a1Pb2P+a2Pb1Pに応じた値を得てC1Pとする第8処理部と、
前記メタ情報A,Bからa2Pb2P+a2Pb0P+a0Pb2Pに応じた値が得られない場合にC2P:=⊥とし、a2Pb2P+a2Pb0P+a0Pb2Pに応じた値が得られる場合に前記メタ情報A,Bからa2Pb2P+a2Pb0P+a0Pb2Pに応じた値を得てC2Pとする第9処理部と、を含み、
C0P,C1P,C2Pが前記秘密分散値のメタ情報であり、C0P:=⊥の場合には前記秘密分散値がc0Pを含み、C1P:=⊥の場合には前記秘密分散値がc1Pを含む、秘密計算装置。 - 請求項1または2の秘密計算装置であって、
前記演算結果が前記入力値{a(0),…,a(N-1)}と第2入力値{b(0),…,b(N-1)}との演算結果Σn∈{0,…,N-1}a(n)b(n)であり、N≧1であり、n=0,…,N-1であり、
a(n)が前記サブシェアa0P(n),a1P(n),a2P(n)についてa(n)=a0P(n)+a1P(n)+a2P(n)を満たし、
b(n)が第2サブシェアb0P(n),b1P(n),b2P(n)についてb(n)=b0P(n)+b1P(n)+b2P(n)を満たし、
a’0P(n),a’1P(n),b’0P(n),b’1P(n)が、それぞれa0P(n),a1P(n),b0P(n),b1P(n)に応じた値であり、
前記記憶部が、サブシェア集合(a0P(n),a1P(n),a2P(n))の真部分集合である割り当てシェア(a0P(n),a1P(n))、前記サブシェア集合(a0P(n),a1P(n),a2P(n))の要素に応じた値を表すかまたは要素が秘匿値であることを表すメタ情報A、第2サブシェア集合(b0P(n),b1P(n),b2P(n))の真部分集合である第2割り当てシェア(b0P(n),b1P(n))、および前記第2サブシェア集合(b0P(n),b1P(n),b2P(n))の要素に応じた値を表すかまたは要素が秘匿値であることを表す第2メタ情報Bを格納し、
前記メタ情報A,Bから前記提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合に、外部の第1秘密計算装置との間で第1任意値rPを共有するためのやり取りを行う第1共有部と、
前記メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られない場合に、外部の第2秘密計算装置との間で第2任意値rP-を共有するためのやり取りを行う第2共有部と、を有し、
前記出力部は、前記メタ情報A,Bから前記提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合に、前記提供値cP:=Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}+rPを出力し、
前記メタ情報A,Bから前記取得対応値Σn∈{0,…,N-1}{a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られない場合に前記入力部に前記取得値cP+が入力され、
前記演算部は、
前記メタ情報A,Bから前記提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合にc’P:=cPとし、c’P:=cPとしない場合にc’P:=0とする第1処理部と、
前記メタ情報A,Bから前記取得対応値Σn∈{0,…,N-1}{a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られない場合にc’P+:=cP+とし、c’P+:=cP+としない場合にc’P+:=0とする第2処理部と、
前記メタ情報A,Bから前記提供対応値Σn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合にr’P:=rPとし、r’P:=rPとしない場合にr’P:=0とする第3処理部と、
前記メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られない場合にr’P-:=rP-とし、r’P-:=rP-としない場合にr’P-:=0とする第4処理部と、
前記メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られないか、またはΣn∈{0,…,N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合にc0P:=Σn∈{0,…,N-1}a’0P(n)b’1P(n)+c’P-r’P-を得る第5処理部と、
前記メタ情報A,BからΣn∈{0,…,N-1}{a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られないか、またはΣn∈{0,…,N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られない場合にc1P:=Σn∈{0,…,N-1}a’1P(n)b’1P(n)+c’P+-r’Pを得る第6処理部と、を含む、秘密計算装置。 - 請求項5の秘密計算装置であって、
前記演算部は、
前記メタ情報A,BからΣn∈{0,…,N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られない場合にC0P:=⊥とし、前記メタ情報A,BからΣn∈{0,…,N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値が得られる場合に前記メタ情報A,BからΣn∈{0,…,N-1}{a0P(n)b0P(n)+a0P(n)b1P(n)+a1P(n)b0P(n)}に応じた値を得てC0Pとする第7処理部と、
前記メタ情報A,BからΣn∈{0,…,N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られない場合にC1P:=⊥とし、前記メタ情報A,BからΣn∈{0,…,N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値が得られる場合に前記メタ情報A,BからΣn∈{0,…,N-1}{a1P(n)b1P(n)+a1P(n)b2P(n)+a2P(n)b1P(n)}に応じた値を得てC1Pとする第8処理部と、
前記メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b2P(n)+a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られない場合にC2P:=⊥とし、Σn∈{0,…,N-1}{a2P(n)b2P(n)+a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値が得られる場合に前記メタ情報A,BからΣn∈{0,…,N-1}{a2P(n)b2P(n)+a2P(n)b0P(n)+a0P(n)b2P(n)}に応じた値を得てC2Pとする第9処理部と、を含み、
C0P,C1P,C2Pが前記秘密分散値のメタ情報であり、C0P:=⊥の場合には前記秘密分散値がc0Pを含み、C1P:=⊥の場合には前記秘密分散値がc1Pを含む、秘密計算装置。 - 入力値に応じた演算結果の秘密分散値を得る秘密計算方法であって、
前記入力値が複数個のサブシェアの関数値であり、
前記複数個のサブシェアを要素とするサブシェア集合の真部分集合である割り当てシェア、および前記サブシェア集合の要素に応じた値を表すかまたは要素が秘匿値であることを表すメタ情報を記憶部に格納しておき、
前記メタ情報から前記割り当てシェアの部分集合に応じた提供対応値に応じた値が得られない場合に、出力部が前記割り当てシェアの部分集合から得た前記提供対応値に応じた提供値を出力するステップと、
前記メタ情報から前記サブシェア集合の真部分集合である外部割り当てシェアの部分集合に応じた取得対応値に応じた値が得られない場合に、前記取得対応値に応じた取得値が入力部に入力されるステップと、
前記取得値が前記入力部に入力される場合には、演算部が少なくとも前記取得値を用いて前記秘密分散値を得るステップと、
を有する秘密計算方法。 - 請求項1から6の何れかの秘密計算装置としてコンピュータを機能させるためのプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16827784.6A EP3327702B1 (en) | 2015-07-22 | 2016-07-20 | Secure computation device, method therefor, and program |
US15/745,278 US10748454B2 (en) | 2015-07-22 | 2016-07-20 | Secret computation apparatus, method for the same, and program |
CN201680039625.6A CN107851403B (zh) | 2015-07-22 | 2016-07-20 | 秘密计算装置、其方法及记录介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015-144550 | 2015-07-22 | ||
JP2015144550A JP6006842B1 (ja) | 2015-07-22 | 2015-07-22 | 秘密計算装置、その方法、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017014224A1 true WO2017014224A1 (ja) | 2017-01-26 |
Family
ID=57123215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2016/071214 WO2017014224A1 (ja) | 2015-07-22 | 2016-07-20 | 秘密計算装置、その方法、およびプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US10748454B2 (ja) |
EP (1) | EP3327702B1 (ja) |
JP (1) | JP6006842B1 (ja) |
CN (1) | CN107851403B (ja) |
WO (1) | WO2017014224A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110800034A (zh) * | 2017-07-05 | 2020-02-14 | 日本电信电话株式会社 | 秘密计算系统、秘密计算装置、秘密计算方法、程序以及记录介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018034079A1 (ja) * | 2016-08-18 | 2018-02-22 | 日本電気株式会社 | 秘密計算システム、秘密計算方法、秘密計算装置、分散情報生成装置およびそれらの方法とプログラム |
EP3484093A1 (en) * | 2017-11-10 | 2019-05-15 | Koninklijke Philips N.V. | A computation device and method |
AU2019352310B2 (en) * | 2018-10-04 | 2022-07-28 | Nippon Telegraph And Telephone Corporation | Secret sigmoid function calculation system, secret logistic regression calculation system, secret sigmoid function calculation apparatus, secret logistic regression calculation apparatus, secret sigmoid function calculation method, secret logistic regression calculation method and program |
CN110457936B (zh) * | 2019-07-01 | 2020-08-14 | 阿里巴巴集团控股有限公司 | 数据交互方法、装置和电子设备 |
US20230370251A1 (en) * | 2020-10-16 | 2023-11-16 | Nippon Telegraph And Telephone Corporation | Secure computation system, secure computation apparatus, secure computation method, and program |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012102203A1 (ja) * | 2011-01-24 | 2012-08-02 | 日本電信電話株式会社 | 秘匿積和計算方法、秘匿積和計算システム、計算装置、及びそれらのプログラム |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101911153B (zh) * | 2008-01-21 | 2014-08-20 | 日本电信电话株式会社 | 秘密计算系统、秘密计算方法、秘密计算装置 |
JP5492241B2 (ja) * | 2012-03-28 | 2014-05-14 | 株式会社東芝 | 秘匿計算システム、集計装置及び集計結果復号プログラム |
EP2966802A1 (en) * | 2014-07-07 | 2016-01-13 | Thomson Licensing | Method for ciphering and deciphering digital data, based on an identity, in a multi-authorities context |
JP6493697B2 (ja) * | 2014-09-19 | 2019-04-03 | 日本電気株式会社 | 秘密計算装置、方法、記録媒体、および秘密計算システム |
ES2949399T3 (es) * | 2014-11-12 | 2023-09-28 | Calctopia Ltd | Computación segura multiparte en hojas de cálculo |
US10516534B2 (en) * | 2015-04-07 | 2019-12-24 | Mitsubishi Electric Corporation | Cryptographic system and key generation apparatus |
US10721063B2 (en) * | 2015-05-07 | 2020-07-21 | Nec Corporation | Secure computation data utilization system, method, apparatus and non-transitory medium |
-
2015
- 2015-07-22 JP JP2015144550A patent/JP6006842B1/ja active Active
-
2016
- 2016-07-20 WO PCT/JP2016/071214 patent/WO2017014224A1/ja active Application Filing
- 2016-07-20 EP EP16827784.6A patent/EP3327702B1/en active Active
- 2016-07-20 US US15/745,278 patent/US10748454B2/en active Active
- 2016-07-20 CN CN201680039625.6A patent/CN107851403B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012102203A1 (ja) * | 2011-01-24 | 2012-08-02 | 日本電信電話株式会社 | 秘匿積和計算方法、秘匿積和計算システム、計算装置、及びそれらのプログラム |
Non-Patent Citations (3)
Title |
---|
DAI IKARASHI ET AL.: "Keiryo Kensho Kano 3- Party Hitoku Kansu Keisan no Koritsuka Oyobi Kore o Mochiita Secure na Database Shori", NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY, 2011, pages 2C3 - 6 * |
KOKI HAMADA ET AL.: "A Batch Mapping Algorithm for Secure Function Evaluation", IEICE TECHNICAL REPORT, vol. 112, no. 126, 12 July 2012 (2012-07-12), pages 195 - 199, XP055511610 * |
See also references of EP3327702A4 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110800034A (zh) * | 2017-07-05 | 2020-02-14 | 日本电信电话株式会社 | 秘密计算系统、秘密计算装置、秘密计算方法、程序以及记录介质 |
EP3651141A4 (en) * | 2017-07-05 | 2021-03-24 | Nippon Telegraph and Telephone Corporation | SECURE COMPUTING SYSTEM, SECURE COMPUTING DEVICE, SECURE COMPUTING PROCESS AND RECORDING MEDIUM |
CN110800034B (zh) * | 2017-07-05 | 2023-05-02 | 日本电信电话株式会社 | 秘密计算系统、秘密计算装置、秘密计算方法、程序以及记录介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3327702A1 (en) | 2018-05-30 |
US10748454B2 (en) | 2020-08-18 |
JP6006842B1 (ja) | 2016-10-12 |
CN107851403A (zh) | 2018-03-27 |
JP2017026788A (ja) | 2017-02-02 |
EP3327702B1 (en) | 2021-09-08 |
US20180218650A1 (en) | 2018-08-02 |
EP3327702A4 (en) | 2019-03-20 |
CN107851403B (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017014224A1 (ja) | 秘密計算装置、その方法、およびプログラム | |
US20190036678A1 (en) | Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency | |
US20210256309A1 (en) | Apparatuses, computer program products, and computer-implemented methods for privacy-preserving federated learning | |
US8694979B2 (en) | Efficient egonet computation in a weighted directed graph | |
WO2016208437A1 (ja) | 秘密計算装置、秘密計算方法、およびプログラム | |
US11914738B2 (en) | Categorizing a sensitive data field in a dataset | |
US20160012107A1 (en) | Mapping query operations in database systems to hardware based query accelerators | |
JP2016512612A (ja) | 部分的準同型暗号およびマスクを用いたプライバシー保護リッジ回帰 | |
JP6556659B2 (ja) | ニューラルネットワークシステム、シェア計算装置、ニューラルネットワークの学習方法、プログラム | |
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 | |
WO2019094303A1 (en) | Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency | |
Fang et al. | Secure function evaluation using an fpga overlay architecture | |
Hu et al. | Secure outsourced computation of the characteristic polynomial and eigenvalues of matrix | |
Mashhadi | How to fairly share multiple secrets stage by stage | |
Khan et al. | Efficient attribute-based encryption with repeated attributes optimization | |
Lovrenčić et al. | Multi-cloud applications: data and code fragmentation for improved security | |
Frey | Characterizing partitioned assemblies and realizability toposes | |
Yager | Level sets and the representation theorem for intuitionistic fuzzy sets | |
WO2015107780A1 (ja) | 要素複製装置、要素複製方法、およびプログラム | |
Diadia et al. | Dematerialization of Public Procurement Approach Based on Hyperledger Fabric Blockchain using OCDS | |
Murthy et al. | Cryptanalysis of a protocol for efficient sorting on SHE encrypted data | |
CN117692144B (zh) | 一种阈值条件下多方私有集合操作的隐私保护方法及系统 | |
Dong et al. | Toward a More Accurate Accrual to Clinical Trials: Joint Cohort Discovery Using Bloom Filters and Homomorphic Encryption | |
Mohanaprakash et al. | An examination on data integrity auditing patterns in cloud computing | |
Lv et al. | Cryptographic cloud storage with public verifiability: Ensuring data security of the YML framework |
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: 16827784 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15745278 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: 2016827784 Country of ref document: EP |