WO2017038761A1 - 秘密計算システム、秘密計算装置、および、秘密計算方法 - Google Patents

秘密計算システム、秘密計算装置、および、秘密計算方法 Download PDF

Info

Publication number
WO2017038761A1
WO2017038761A1 PCT/JP2016/075186 JP2016075186W WO2017038761A1 WO 2017038761 A1 WO2017038761 A1 WO 2017038761A1 JP 2016075186 W JP2016075186 W JP 2016075186W WO 2017038761 A1 WO2017038761 A1 WO 2017038761A1
Authority
WO
WIPO (PCT)
Prior art keywords
mod
secret
unit
secret calculation
sum
Prior art date
Application number
PCT/JP2016/075186
Other languages
English (en)
French (fr)
Inventor
古川 潤
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US15/755,888 priority Critical patent/US10924270B2/en
Priority to EP16841793.9A priority patent/EP3346455B1/en
Priority to JP2017538016A priority patent/JP6607257B2/ja
Publication of WO2017038761A1 publication Critical patent/WO2017038761A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/485Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/727Modulo N arithmetic, with N being either (2**n)-1,2**n or (2**n)+1, e.g. mod 3, mod 4 or mod 5
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Definitions

  • the present invention is based on a Japanese patent application: Japanese Patent Application No. 2015-169992 (filed on August 31, 2015), and the entire description of the application is incorporated herein by reference.
  • the present invention relates to a secret calculation device, a secret calculation system, and a secret calculation method, and more particularly, a plurality of secret calculation devices calculate the output of a given function while communicating with each other, and between a predetermined number of secret devices.
  • the present invention relates to a secret calculation system in which input and output information for a function cannot be obtained unless data is shared, a secret calculation device constituting such a secret calculation system, and a secret calculation method by the secret calculation system.
  • Non-Patent Document 2 describes a secret calculation method when the number of devices is two.
  • Non-Patent Documents 1 and 2 The entire disclosure of Non-Patent Documents 1 and 2 is incorporated herein by reference. The following analysis was made by the present inventors.
  • secret S secret S
  • F (0) S with a polynomial F on this field.
  • the number of devices is N and the number of devices is less than K, it is assumed that information regarding function inputs and outputs cannot be obtained.
  • (K-1) degree polynomials F and G that is, coefficients of F and G
  • F (0) and G (0) can be calculated, and secrets A and B are obtained.
  • This value is H (X [i]) obtained by substituting X [i] into a polynomial H whose coefficient is the sum of the corresponding coefficients of F and G. Therefore, similarly to A and B, A + B is also distributed by a plurality of devices.
  • the (K ⁇ 1) degree polynomial H that is, the coefficient of the polynomial H
  • H (0) can be calculated, and secret A + B is obtained.
  • This value is H (X [i]) obtained by substituting X [i] into 2K degree polynomial H (X)
  • X F (X) * G (X). Therefore, similarly to A and B, A * B is distributed by a plurality of devices.
  • the order of H is 2K. Therefore, when 2K or more devices are gathered, the 2K degree polynomial H (that is, the coefficient of the polynomial H) can be obtained, and H (0) can be calculated.
  • the dispersion method of A * B is different from the dispersion method of A and B.
  • the i-th device To distribute A * B in the form of a (K-1) degree polynomial as in A and B, the i-th device generates a (K-1) degree polynomial G from H [i], A method of distributing G (X [j]) to other j-th devices is used. In this way, it is possible to calculate all functions consisting of addition and multiplication.
  • Non-Patent Document 1 According to the method described in Non-Patent Document 1, multiplication and addition on the field are easily performed. However, 2K ⁇ N + 1 is imposed as a condition. If K is not 2 or more, the secret can be obtained by a single device. Therefore, N must be 3 or more. Since X [i] must have different values for different i, GF (2) is not included in the available fields. Since GF (2) is not included in the available fields, it is not possible to make an exclusive OR using addition.
  • Non-Patent Document 2 has a description regarding a method when the number of devices is two.
  • A ⁇ C + D mod 2
  • Each device can calculate the variance of the exclusive OR of two distributed values with a small amount of computation without communicating with other devices.
  • the apparatus 2 obtains M, the following is performed.
  • the device 1 sends a value depending on the input of the device 2 to the device 2.
  • a method for preventing the device 1 from knowing the input of the device 2 is realized by a technique called oblivious transfer between the device 1 and the device 2. However, according to such a technique, many calculations and communications are required in the devices 1 and 2.
  • Non-Patent Document 1 it is possible to calculate by distributing logical products with a small amount of communication and a small amount of calculation.
  • communication and slight calculation are required when calculating exclusive-OR in a distributed manner, as in the case of calculating logical AND.
  • Non-Patent Document 2 there is an advantage that communication is not required when calculating exclusive OR. However, according to the method described in Non-Patent Document 2, communication and calculation are required for the logical product.
  • An object of the present invention is to provide a secret calculation system, a secret calculation device, and a secret calculation method that realize a secret calculation that is easy to add and requires a small amount of communication and calculation necessary for multiplication.
  • the secret calculation system includes three secret calculation devices.
  • the i-th secret computation device includes a first multiplication unit that obtains a logical product of S [i] and S ′ [i], and a second product that obtains a logical product of T [i] and T ′ [i]. And a multiplication unit.
  • the i-th secret computation device has a first subtraction unit that obtains a difference between the logical product obtained by the first multiplication unit and the logical product obtained by the second multiplication unit.
  • the secret calculation device is one secret calculation device included in the above-described secret calculation system.
  • the secret calculation method is a secret calculation method using three secret calculation devices.
  • the secret calculation method includes a step of obtaining a logical product of S [i] and S ′ [i] as a first logical product, and a logical product of T [i] and T ′ [i] as a second logical product. As a step.
  • the secret calculation method includes a step of obtaining a difference between the first logical product and the second logical product.
  • secret calculation system secret calculation device, and secret calculation method according to the present invention, it is possible to realize a secret calculation that is easy to add and requires a small amount of communication and calculation necessary for multiplication.
  • FIG. 1 is a block diagram illustrating the configuration of a secret calculation system 100 according to an embodiment.
  • the secret calculation system 100 includes three secret calculation devices 10, 20, and 30.
  • the secret computing devices 10, 20, and 30 are assumed to be first to third secret computing devices, respectively.
  • calculation of addition can be performed without performing communication between devices, and calculation of logical product can be performed with a small amount of calculation.
  • FIG. 2 is a diagram illustrating a configuration of the secret calculation system 100 according to the present embodiment.
  • the secret calculation system 100 includes three secret calculation devices 10, 20, and 30.
  • FIG. 3 is a block diagram illustrating the configuration of the secret computing device 10.
  • the secret computing devices 20 and 30 have the same configuration as the secret computing device 10.
  • the secret calculation device 10 includes a local multiplication unit 36, a product redistribution unit 38, and a communication unit 24.
  • the local multiplication unit 36 includes a holding unit 12, multiplication units 14 and 16, and a subtraction unit 18.
  • the product redistribution unit 38 includes an addition unit 22 and an addition / subtraction unit 26.
  • the secret computing devices 10, 20, and 30 hold the value W in a distributed manner.
  • R [1] ⁇ ⁇ + R [2] + R [3] 0 mod Q
  • three randomly chosen numbers R [1], R [2], R [ 3] the holding unit 12 of the secret computing device 10 holds (R [1], R [3]-W mod Q).
  • the holding unit 12 of the secret computing device 20 holds (R [2], R [1]-W mod Q)
  • the holding unit 12 of the secret computing device 30 has (R [3], R [2].
  • W can be restored when two of the three secret computing devices 10, 20, and 30 cooperate.
  • the multiplication unit 14 performs a logical product of the first input first element S [1] and the second input first element S ′ [1] held by the holding unit 12. Is output to the subtracting unit 18.
  • the multiplication unit 16 obtains a logical product of the first input second element T [2] and the second input second element T ′ [1] and outputs the logical product to the subtraction unit 18.
  • (U [1], U [2], U [3]) is obtained by dispersing W ⁇ W ′ into three values.
  • W ⁇ W '+ Z mod Q is (U [1] + U' [1] mod Q, U [2] + U '[2] mod Q, U [3] + U '[3] mod Q) is distributed over three values.
  • the secret computing device 10 holds U [1] and U ′ [1]
  • the secret computing device 20 holds U [2] and U ′ [2]
  • the secret computing device 30 is U [3] and U ′.
  • the newly distributed values can be calculated without each secret computing device communicating with other secret computing devices. That is, when a certain function is composed of a sum and a product on modQ, the sum can be calculated without communicating with each other until the next product is input.
  • the following processing may be performed.
  • the product redistribution unit 38 of the secret computing devices 10, 20, and 30 is used to distribute the logical product W "to the three secret computing devices in the same format as W and W '.
  • the secret computing devices 10, 20, 30 input the passed mask V [i] to the product redistribution unit 38.
  • the communication unit 24 of the secret computing device 30 transmits the obtained first sum X [3] to the secret computing device 20.
  • the data is transmitted to the secret computing device 10 via the 20 communication units 24.
  • the data is transmitted to the secret computing device 30 via the unit 24.
  • the secret computing devices 10, 20, and 30 receive the first sums X [2], X [3], and X [1] from the communication unit 24, respectively, and receive the received first sums X [2] and X [3]. , X [1] is output to the adder / subtractor 26.
  • the secret computing devices 10, 20, and 30 receive the first sum X [1], X [2], X [3] calculated by each adder 22 and the received first sum X [2], X [3 ], X [1], the first output element S ′′ [i] and the second output element T ′′ [i] are calculated.
  • the value of the logical product W ′′ can be restored from the two secret computing devices based on the restoration method when the secret computing device 10 and the secret computing device 20 cooperate without losing generality. That is, using the output first element S ′′ [1] from the secret computing device 10 and the output second element T ′′ [2] from the secret computing device 20, the logic is as follows: The product W "can be restored.
  • the secret calculation system uses the secret calculation system according to the present embodiment to calculate the sum of two values mod Q distributed and held in the three secret calculation devices without the secret calculation devices communicating with each other. It is possible to hold the information in a distributed form in the secret computing device.
  • the method of holding the sum calculation result is the same as the method of holding the two respective bits first.
  • the secret calculation devices calculate the product on mod ⁇ Q of the two values distributed and held in the three secret calculation devices while communicating with each other. It is possible to hold them in a distributed form on one secret computing device.
  • the amount of communication generated at this time is only 3n bits as a whole, and is much smaller than the amount of communication required for the secret calculation between the two devices described in Non-Patent Document 2.
  • the method of holding the value of the product calculation result is also the same as the method when the two values are initially held.
  • a secret calculation system also contributes to preventing the administrator of the secret calculation device from stealing data when providing some service while handling secret data on the secret calculation device. Because, by assigning different administrators to multiple secret computing devices, there is no administrator who can refer to the data in all the secret computing devices, preventing data stealing through the administrators Because you can.
  • FIG. 4 is a block diagram illustrating the configuration of the secret calculation device 10 in the secret calculation system of this embodiment.
  • the secret computing devices 20 and 30 have the same configuration as the secret computing device 10.
  • the secret calculation device 10 further includes a mask generation unit 42 with respect to the secret calculation device 10 (FIG. 3) of the first embodiment.
  • the mask generation unit 42 includes a key generation unit 28, a pseudo random number generation unit 32, and a subtraction unit 34. Note that the operations of the local multiplication unit 36 and the product redistribution unit 38 in the present embodiment are the same as the operations of these elements in the first embodiment, and a description thereof will be omitted.
  • K be a safety variable.
  • the key generation units 28 of the secret computing devices 10, 20, and 30 generate K-bit keys L [1], L [2], and L [3], respectively.
  • the communication unit 24 of the secret computing device 10 transmits the generated key L [1] to the secret computing device 30.
  • the communication unit 24 of the secret computing device 20 transmits the generated key L [2] to the secret computing device 10.
  • the communication unit 24 of the secret calculation device 30 transmits the generated key L [3] to the secret calculation device 20.
  • the communication units 24 of the secret computing devices 10, 20, and 30 receive the keys L [2], L [3], and L [1] from the secret computing devices 20, 30, and 10, respectively.
  • the received key is referred to as a reception key.
  • the pseudo random number generator 32 includes a pseudo random number generator PRG.
  • PRG is a pseudo-random number generator that outputs a character string of nN bits from a character string of K bits.
  • the pseudo random number generation unit 32 of the secret computing device 10 generates a first pseudo random number PRG (L [1]) from the key L [1], and also generates a second pseudo random number PRG (L [2] from the reception key L [2]. ) Is generated.
  • the subtracting unit 34 divides the first pseudo random number PRG (L [1]) and the second pseudo random number PRG (L [2]) into n bits, and obtains the difference on mod Q, thereby obtaining n bits.
  • N random numbers.
  • the secret computing device 20 generates the first pseudo random number PRG (L [2]) and the second pseudo random number PRG (L [3]) using the pseudo random number generation unit 32 and uses the subtraction unit 34 to generate the first pseudo random number PRG (L [2]).
  • An n-bit random number N sequence is generated from the first pseudorandom number PRG (L [2]) and the second pseudorandom number PRG (L [3]).
  • the secret computing device 30 generates a first pseudo random number PRG (L [3]) and a second pseudo random number PRG (L [1]) using the pseudo random number generation unit 32 and uses the subtraction unit 34 to generate the first pseudo random number PRG (L [3]).
  • an n-bit random number N sequence is generated from the pseudorandom number PRG (L [3]) and the second pseudorandom number PRG (L [1]).
  • the mask generation unit 42 of the secret computing device 20 supplies the generated random number V [i, 2] to the addition unit 22 of the product redistribution unit 38.
  • the mask generation unit 42 of the secret calculation device 30 supplies the generated random number V [i, 3] to the addition unit 22 of the product redistribution unit 38.
  • the secret calculation system provides the same effects as the secret calculation system according to the first embodiment. Furthermore, according to the secret calculation system of this embodiment, a secret calculation of a large number of products can be executed at high speed by using the mask generated by the mask generation unit.
  • the sum X [i] calculated by the adding unit is transmitted to the ⁇ (i + 1 1 mod 3) +1 ⁇ th secret computation device, and the sum of the (i mod 3 + 1) th secret computation device
  • a communication unit that receives the sum X [i mod 3 + 1] calculated by the addition unit; Addition / subtraction for calculating a variance value (S "
  • the communication unit transmits the key L [i] to the ⁇ (i + 1 1 mod 3) +1 ⁇ -th secret computation device and the key of the (i mod 3 + 1) -th secret computation device
  • the key L [i mod 3 + 1] calculated by the generation unit is received,
  • the pseudo-random number generator generates a first pseudo-random number based on the key L [i], and generates a second pseudo-random number based on the key L [i mod 3 + 1],
  • the second subtracting unit extracts the first pseudo
  • the secret calculation system according to any one of Forms 1 to 4.
  • [Form 7] This is the same as the secret calculation device according to the second aspect.
  • [Form 8] This is the same as the secret calculation method according to the third aspect.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Nonlinear Science (AREA)
  • Storage Device Security (AREA)

Abstract

加算が容易であり乗算に必要な通信と計算の量が少ない秘密計算を実現する。秘密計算システムは、3台の秘密計算装置を備えている。第i番目の秘密計算装置(i = 1, 2, 3)は、nビット(nは任意の自然数)の数WおよびnビットのW'の分散値として、それぞれ、(S[i], T[i])および(S'[i], T'[i])を保持する保持部と、S[i]とS'[i]の論理積を求める第1の乗算部と、T[i]とT'[i]の論理積を求める第2の乗算部と、第1の乗算部が求めた論理積と、第2の乗算部が求めた論理積との差を求める第1の減算部と、を備えている。

Description

秘密計算システム、秘密計算装置、および、秘密計算方法
[関連出願についての記載]
 本発明は、日本国特許出願:特願2015-169992号(2015年8月31日出願)に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、秘密計算装置、秘密計算システム、および、秘密計算方法に関し、特に、複数の秘密計算装置が互いに通信しつつ与えられた関数の出力を計算し、所定の数の秘密装置の間でデータを共有しない限り、関数に対する入力および出力の情報を得ることができない秘密計算システム、かかる秘密計算システムを構成する秘密計算装置、および、秘密計算システムによる秘密計算方法に関する。
 非特許文献1には、ある体上の値である、秘密Sを、この体上の多項式FでF(0) = Sを満たす多項式Fを用いて複数の装置に分散する秘密計算方法が記載されている。
 また、非特許文献2には、装置の数が2つの場合における秘密計算方法に関する記載がある。
Tal Rabin, Michael Ben-Or, "Verifiable Secret Sharing and Multiparty Protocols with Honest Majority (Extended Abstract)," STOC 1989, pp. 73-85. Oded Goldreich, Ronen Vainish, "How to Solve any Protocol Problem - An Efficiency Improvement," CRYPTO 1987, pp. 73-86.
 非特許文献1、2の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
 非特許文献1に記載された方法では、ある体上の値(秘密S)を、この体上の多項式FでF(0) = Sを満たす多項式Fを使用して複数の装置に分散する。ここで、装置の数をN、装置の個数がK未満であれば関数の入力や出力に関する情報を得ることができないものとする。また、各装置に対して、この体上の異なる値が割り当てられているものとする。具体的に、装置iに割り当てられている体の値をX[i]とする(i = 1, …, N)。秘密Aをこれらの複数の装置に分散するとき、i番目の装置にはF(0) = Aなるランダムに選ばれた(K - 1)次多項式Fに関するF[i] := F(X[i])を配布する。秘密Bに関しても、同様にG(0) = Bなる(K - 1)次多項式Gに関するG[i] := G(X[i])をi番目の装置に配布する。K個以上の装置が集まると、(K - 1)次多項式F, G(すなわち、FやGの係数)を求めることができる。すなわち、F(0)やG(0)を計算することが可能となり、秘密A, Bが求められる。
 このとき、A + Bを分散した値を計算するには、i番目の装置は H[i] = F[i] + G[i]を計算する。この値はFとGのそれぞれ対応する係数を足したものを係数とする多項式Hに、X[i]を代入して得られるH(X[i])である。したがって、AやBと同様に、A + Bも複数の装置で分散したものとなる。AやBの場合と同様に、K個以上の装置が集まれば(K - 1)次多項式H(すなわち、多項式Hの係数)を求めることができる。すなわち、H(0)を計算することが可能となり、秘密A + Bが求められる。
 また、2K ≦ N + 1の場合、A*Bを分散した値を計算するには、i番目の装置は H[i] = F[i]*G[i]を計算する。この値は2K次多項式H(X) = F(X)*G(X)にX[i]を代入して得られるH(X[i])である。したがって、AやBと同様に、A*Bも複数の装置で分散したものとなる。ただし、AやBの場合とは異なり、Hの次数は2Kとなる。したがって、2K個以上の装置が集まると、2K次多項式H(すなわち、多項式Hの係数)を求めることができ、H(0)を計算することが可能になる。ここで、A*Bの分散方法は、AやBとは分散のされ方が異なる。A*BをAやBと同様に(K - 1)次多項式を用いた形で分散するには、i番目の装置がH[i]から(K - 1)次多項式Gを生成して、他のj番目の装置にG(X[j])を配布する方法が用いられる。このようにして、加算と乗算から成るすべての関数を計算することが可能となる。
 非特許文献1に記載された方法によると、体上の乗算と加算が容易に行われる。ただし、条件として2K ≦ N + 1が課される。また、Kが2以上でなければ、単独の装置で秘密を求めることができる。そこで、Nを3以上とする必要がある。異なるiについてX[i]は異なる値でなければならないため、利用できる体にGF(2)は含まれない。利用できる体にGF(2)が含まれないため、加算を用いて排他的論理和とすることはできない。
 非特許文献2には、装置の数が2つの場合の方法に関する記述がある。この方法では、2つの装置がビット、すなわちGF(2)上のある要素bを分散して保持する場合、b + c = b mod 2となるbとcを、それぞれの装置で分散して保持する。かかる方法を使用すると、あるビットAとあるビットBを装置1と装置2で分散する場合、A = C + D mod 2, B = E + F mod 2として、装置1はCとEを、装置2はDとFを保持する。このとき、AとBの排他的論理和GはG = A + B mod 2となり、これらの装置1と装置2との分散は、それぞれ、H = C + E mod 2とJ = D + F mod 2とすることができる。それぞれの装置は、他の装置と通信することなく、分散された2つの値の排他的論理和の分散を少ない計算量で計算することができる。
 同様に、AとBが分散されて保持されている場合、この2つのビットの論理積 K = A・Bのそれぞれの分散、すなわちL + M = K mod 2なるLとMを、装置1がLを得るとともに装置2がMを得るように行うには、次のようにする。装置1は、Lをランダムに生成する。このとき、M = (C + D)・(E + F) = L mod 2である。そこで、装置2が持つ値DとFに応じて、装置1はMの値を知ることなく、(D, F)=(0, 0)ならM = (C + 0)・(E + 0) + L mod 2を、(D, F)=(0, 1)ならM = (C + 0)・(1 + E)+L mod 2を、(D, F)=(1, 0)ならM = (1 + C)・(E + 0) + L mod 2 を、(D, F)=(1, 1)ならM = (1 + C)・(1 + E) + L mod 2 を装置2に返す。すなわち、装置1は、装置2の入力に依存する値を装置2に送付する。装置1が装置2の入力を知ることができないようにする方法は、装置1と装置2の間のoblivious transferと呼ばれる技術によって実現される。しかし、かかる技術によると、装置1、2において多くの計算と通信が必要とされる。
 非特許文献1に記載された方法によると、少ない通信と少ない計算量で論理積を分散して計算することが可能となる。しかし、非特許文献1に記載された方法によると、排他的論理和を分散して計算する際にも、論理積の計算のときと同様に、通信と若干の計算が必要とされる。
 一方、非特許文献2に記載された方法によると、排他的論理和を分散して計算する際に通信を要しないという利点がある。しかし、非特許文献2に記載された方法によると、論理積については、通信も計算も必要となる。
 したがって、ビット、すなわちGF(2) の元の排他的論理和を、複数の装置で分散したまま計算しつつ、これらの装置間に通信が発生せず、ビットの論理積も少ない通信量と計算量で分散したまま計算できるようにすることが望まれる。これを実現することにより、任意の関数を論理ゲートに分解し、排他的論理和と論理積で記述することにより、この関数を複数の装置で分散したまま、かつ、いずれの装置もデータを知る(計算する)ことなく高速に計算することが可能となる。
 本発明の目的は、加算が容易であり乗算に必要な通信と計算の量が少ない秘密計算を実現する秘密計算システム、秘密計算装置、および、秘密計算方法を提供することにある。
 本発明の第1の態様に係る秘密計算システムは、3台の秘密計算装置を備えている。第i番目の秘密計算装置(i = 1, 2, 3)は、nビット(nは任意の自然数)の数WおよびnビットのW'の分散値として、それぞれ、(S[i], T[i])および(S'[i], T'[i])を保持する保持部を有する。また、第i番目の秘密計算装置は、S[i]とS'[i]の論理積を求める第1の乗算部と、T[i]とT'[i]の論理積を求める第2の乗算部とを有する。さらに、第i番目の秘密計算装置は、前記第1の乗算部が求めた論理積と、前記第2の乗算部が求めた論理積との差を求める第1の減算部を有する。
 本発明の第2の態様に係る秘密計算装置は、上記の秘密計算システムに含まれる一の秘密計算装置である。
 本発明の第3の態様に係る秘密計算方法は、3台の秘密計算装置を用いた秘密計算方法である。秘密計算方法は、第i番目の秘密計算装置(i = 1, 2, 3)が、nビット(nは任意の自然数)の数WおよびnビットのW'の分散値として、それぞれ、(S[i], T[i])および(S'[i], T'[i])を保持するステップを含む。また、秘密計算方法は、S[i]とS'[i]の論理積を第1の論理積として求めるステップと、T[i]とT'[i]の論理積を第2の論理積として求めるステップとを含む。さらに、秘密計算方法は、前記第1の論理積と、前記第2の論理積との差を求めるステップを含む。
 本発明に係る秘密計算システム、秘密計算装置、および、秘密計算方法によると、加算が容易であり乗算に必要な通信と計算の量が少ない秘密計算を実現することができる。
一実施形態に係る秘密計算システムの構成を例示するブロック図である。 第1の実施形態に係る秘密計算システムの構成を示す図である。 第1の実施形態に係る秘密計算システムにおける秘密計算装置の構成を例示するブロック図である。 第2の実施形態に係る秘密計算システムにおける秘密計算装置の構成を例示するブロック図である。
 はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
 図1は、一実施形態に係る秘密計算システム100の構成を例示するブロック図である。図1を参照すると、秘密計算システム100は、3台の秘密計算装置10、20、30を備えている。ここでは、秘密計算装置10、20、30を、それぞれ、第1番目~第3番目の秘密計算装置とする。第i番目の秘密計算装置(i = 1, 2, 3)は、nビット(nは任意の自然数)の数WおよびnビットのW'の分散値として、それぞれ、(S[i], T[i])および(S'[i], T'[i])を保持する保持部12と、S[i]とS'[i]の論理積を求める第1の乗算部14と、T[i]とT'[i]の論理積を求める第2の乗算部16と、第1の乗算部14が求めた論理積と、第2の乗算部16が求めた論理積との差を求める第1の減算部18と、を有する。
 また、R[1], R[2], R[3]およびR'[1], R'[2], R'[3]を、R[1] + R[2] + R[3] = 0 mod Q, R'[1] + R'[2] + R'[3] = 0 mod Qを満たすnビットの乱数とした場合、分散値は、
 (S[1], T[1]) = (R[1], R[3] - W mod Q), 
 (S[2], T[2]) = (R[2], R[1] - W mod Q), 
 (S[3], T[3]) = (R[3], R[2] - W mod Q), 
 (S'[1], T'[1]) = (R'[1], R'[3] - W' mod Q), 
 (S'[2], T'[2]) = (R'[2], R'[1] - W' mod Q), 
 (S'[3], T'[3]) =  (R'[3], R'[2] - W' mod Q)とすることができる。ここで、Qは3と互いに素な整数(例えば、nを自然数としてQ = 2^n)である。
 かかる秘密計算システムによると、第i番目の装置は第1、第2の乗算部および第1の減算部を用いて局所積要素U[i] = (T[i]・T’[i] - S[i]・S’[i])/3 mod Qを求めることができる。ここで、U[1] + U[2] + U[3] = WW’ mod Qであるから、3台の装置が協力することによって論理積W" = W・W’ mod Qを復元することができる。一実施形態の秘密計算システムによると、装置間で通信を行うことなく加算の計算が可能となり、少ない計算量で論理積の計算が可能となる。
<実施形態1>
 次に、第1の実施形態に係る秘密計算システムについて、図面を参照して説明する。
 図2は、本実施形態に係る秘密計算システム100の構成を例示する図である。図2を参照すると、秘密計算システム100は、3台の秘密計算装置10、20、30を備えている。
 図3は、秘密計算装置10の構成を例示するブロック図である。秘密計算装置20、30も、秘密計算装置10と同様の構成を有する。図3を参照すると、秘密計算装置10は、局所乗算部36、積再分配部38、および、通信部24を備えている。局所乗算部36は、保持部12、乗算部14、16、および、減算部18を備えている。一方、積再分配部38は、加算部22および加減算部26を備えている。
 秘密計算装置10、20、30は、値Wを分散して保持する。1以上の整数であるnに対して、R[1] + R[2] + R[3] = 0 mod Qなる3つのランダムに選ばれた数R[1], R[2], R[3]を用いて、秘密計算装置10の保持部12は(R[1], R[3] - W mod Q)を保持する。同様に、秘密計算装置20の保持部12は(R[2], R[1] - W mod Q)を保持し、秘密計算装置30の保持部12は(R[3], R[2] - W mod Q)を保持する。ここで、Qは3と互いに素な整数(例えば、nを自然数としてQ = 2^n)である。
 3台の秘密計算装置10、20、30のうちの2台が協力するとWを復元することができる。一般性を失うことなく、秘密計算装置10と秘密計算装置20が協力する場合に、かかる復元方法を説明することができる。すなわち、秘密計算装置10の保持部12が保持するR[1]と、秘密計算装置20の保持部12が保持するR[1] - W mod Qを用いて、W = R[1] - (R[1] - W) mod Qを計算することで、値Wを復元することができる。
(通信を伴わない加算)
  次に、秘密計算装置10、20、30の間での通信を行うことなく、加算が可能であることを説明する。ビットWとW’がそれぞれ秘密計算装置10、20、30に分散されているときに、分散されたままで、これらの加算を計算するには、以下のようにする。
 ここで、ビットWは、次のように秘密計算装置10、20、30に分散されているものとする。すなわち、R[1] + R[2] + R[3] = 0 mod 2を満たす3つのランダムに選ばれたビットR[1], R[2], R[3]を用いて、秘密計算装置10の保持部12は(S[1], T[1]) := (R[1], W + R[2] mod 2)を保持する。同様に、秘密計算装置20の保持部12は(S[2], T[2]) := (R[2], W + R[3] mod 2)を保持し, 秘密計算装置30の保持部12は(S[3], T[3]) = (R[3], W + R[1] mod 2) を保持する。
 一方、ビットW'は次のように秘密計算装置10、20、30に分散されているものとする。すなわち、R’[1] + R’[2] + R’[3] = 0 mod 2なる3つのランダムに選ばれたビットR'[1], R'[2], R'[3]を用いて、秘密計算装置10の保持部12は(S’[1], T’[1]) =(R’[1], W’ + R’[2] mod 2)を保持する。同様に、秘密計算装置20の保持部12は(S’[2], T’[2]) := (R’[2], W’ + R’[3] mod 2)を保持し, 秘密計算装置30の保持部12は(S’[3], T’[3]) := (R’[3], W’ + R’[1] mod 2)を保持するものとする。
 このとき、秘密計算装置10は(S"[1], T"[1]) = (S[1] + S’[1] mod 2, T[1] + T’[1] mod 2)を計算する。同様に、秘密計算装置20は(S"[2], T"[2]) = (S[2] + S’[2] mod 2, T[2] + T’[2] mod 2)を計算する。また、秘密計算装置30は(S"[3], T"[3]) = (S[3] + S’[3] mod 2, T[3] + T’[3] mod 2)を計算する。秘密計算装置10、20、30は、それぞれの計算結果をもってW" = W + W’ mod 2を分散して保持したとする。これらの結果から、元のWまたはW’と同様に、W"を復元することが可能となる。したがって、秘密計算装置10、20、30の間で通信を行うことなく、加算を計算することができる。
(否定)
 次に、否定の計算について説明する。ビットWが装置10、20、30に分散されているときに、分散されたままでビットWの否定を計算するには、次のようにする。
 ビットWは、次のように秘密計算装置10、20、30に分散されているものとする。すなわち、R[1] + R[2] + R[3] = 0 mod 2なる3つのランダムに選ばれたビットR[1], R[2], R[3]を用いて、秘密計算装置10の保持部12は(S[1], T[1]) := (R[1], W + R[2] mod 2)を保持する。同様に、秘密計算装置20の保持部12は(S[2], T[2]) := (R[2], W + R[3] mod 2)を保持する。また、秘密計算装置30の保持部12は(S[3], T[3]) = (R[3], W + R[1] mod 2)を保持する。
 このとき、秘密計算装置10は(S’[1], T’[1]) = (S[1], T[1] + 1 mod 2)を計算する。同様に、秘密計算装置20は(S’[2], T’[2]) = (S[2], T[2] + 1 mod 2)を計算する。また、秘密計算装置30は(S’[3], T’[3]) = (S[3], T[3] + 1 mod 2)を計算する。秘密計算装置10、20、30は、それぞれの計算結果をもってW’ = W + 1 mod 2を分散して保持したとする。これらの結果から、元のWと同様にW’を復元することができる。したがって、秘密計算装置10、20、30の間で通信を行うことなく、否定を計算することができる。
(論理積)
 次に、論理積の計算について説明する。論理積の計算において、図3に示した局所乗算部36および積再分配部38を使用する。ビットWとW’がそれぞれ、秘密計算装置10、20、30に分散されているときに、分散されたままでこれらの論理積W" = W・W' mod Qを計算するには、次のようにする。
 ビットWは、次のように秘密計算装置10、20、30に分散されているものとする。すなわち。R[1] + R[2] + R[3] = 0 mod Qなる3つのランダムに選ばれた数R[1], R[2], R[3]を用いて、秘密計算装置10の保持部12は(S[1], T[1]) :=(R[1], R[3] - W mod Q)を保持する。同様に、秘密計算装置20の保持部12は(S[2], T[2]) := (R[2], R[1] - W mod 2)を保持する。また、秘密計算装置30の保持部12は(S[3], T[3]) = (R[3], R[2] - W mod Q)を保持する。
 一方、ビットW'は次のように秘密計算装置10、20、30に分散されているものとする。すなわち、R’[1] + R’[2] + R’[3] = 0 mod Q なる3つのランダムに選ばれた数R'[1], R'[2], R'[3]を用いて、秘密計算装置10の保持部12は(S’[1], T’[1]) = (R’[1], R’[3] - W’ mod Q)を保持する。同様に、秘密計算装置20の保持部12は(S’[2], T’[2]) := (R’[2], R’[1] - W’ mod Q)を保持する。また、秘密計算装置30の保持部12は(S’[3], T’[3]) := (R’[3], R’[2] - W’ mod Q)を保持する。
 このとき、秘密計算装置10の局所乗算部36において、乗算部14は、保持部12が保持する第1入力第1要素S[1]と第2入力第1要素S’[1]の論理積を求めて減算部18に出力する。一方、乗算部16は、第1入力第2要素T[2]と第2入力第2要素T’[1]の論理積を求めて減算部18に出力する。減算部18は、乗算部14、16からの出力に基づいて、局所積要素U[1] = (T[1]・T’[1] - S[1]・S’[1])/3 mod Qを算出する。
 同様に、秘密計算装置20の局所乗算部36は局所積要素U[2] = (T[2]・T’[2]-S[2]・S’[2])/3 mod Qを算出する。また、秘密計算装置30の局所乗算部36は局所積要素U[3] = (T[3]・T’[3] - S[3]・S’[3])/3 mod Qを算出する。秘密計算装置10、20、30は、それぞれの計算結果をもってW" = W・W’ mod Qを分散して保持したとする。
 このとき、各秘密計算装置が算出した局所積要素のみから、元のWあるいはW’と同様に、論理積W"も復元することはできない。各秘密計算装置が算出した局所積要素から直接論理積W"を復元するには、W" = U[1] + U[2] + U[3] mod Qと計算すればよい。論理積W"の復元が可能であることは、次の計算によって示される。
U[1] + U[2] + U[3] 
= {(T[1]・T’[1] - S[1]・S’[1]) + (T[2]・T’[2] - S[2]・S’[2]) + (T[3]・T’[3] - S[3]・S’[3])}/3 mod Q
= {-S[1]S’[1] + (R[3] - W)(R’[3] - W’) - S[2]S’[2] + (R[1] - W)(R’[1] - W’) - S[3]S’[3] + (R[2] - W)(R’[2] - W’)}/3 mod Q
= {-R[1]R’[1] + R[3]R’[3] - R[3]W’ - W R’[3] + WW’
 - R[2]R’[2] + R[1]R’[1] - R[1]W’ - W R’[1] + WW’
 - R[3]R’[3] + R[2]R’[2] - R[2]W’ - W R’[2] + WW’}/3 mod Q
= 3WW’/3 mod Q
= WW’ mod Q
 なお、Qと3は互いに素であることから、mod Q上での3の逆数は必ず計算することができる。
 以上より、(U[1], U[2], U[3])はW・W’を3つの値に分散したものとなる。同様に、(U’[1],U’[2],U’[3])がZ = U’[1] + U’[2] + U’[3] mod QなるZを3つの値に分散したものであるとき、W・W’ + Z mod Qは、(U[1] + U’[1] mod Q, U[2] + U’[2] mod Q, U[3] + U’[3] mod Q)の3つの値に分散される。秘密計算装置10がU[1]とU’[1]を保持し、秘密計算装置20がU[2]とU’[2]を保持し、秘密計算装置30がU[3]とU’[3]を保持しているとする。この場合、新たに分散された値は、それぞれの秘密計算装置が他の秘密計算装置と通信することなく計算することができる。すなわち、ある関数がmodQ上の和と積で構成されている場合、次の積の入力となるまでの間、何度でも互いに通信することなく和の計算を実行することができる。積を計算した結果を用いた積を計算する場合、次の処理を実施すればよい。
 論理積W"をWやW’と同様の形式で3台の秘密計算装置に分散するには、秘密計算装置10、20、30の積再分配部38を用いる。
 ここでは、V[1] + V[2] + V[3] = 0 mod Qとなるランダムに選ばれたマスクV[1], V[2], V[3]が存在し、秘密計算装置10にはマスクV[1]、秘密計算装置20にはマスクV[2]、秘密計算装置30にはマスクV[3]が予め渡されているものとする。
 秘密計算装置10、20、30は、渡されたマスクV[i]を積再分配部38に入力する。秘密計算装置30の加算部22はX[3] = U[3] + V[3] mod Qのように局所積要素U[3]とマスクV[3]の和をとり、結果を第1和X[3]とする。また、秘密計算装置30の通信部24は、求めた第1和X[3]を秘密計算装置20に送信する。同様に、秘密計算装置20の加算部22は第1和X[2] = U[2] + V[2] mod n^2を生成し、生成した第1和X[2]を秘密計算装置20の通信部24を介して秘密計算装置10に送信する。また、秘密計算装置10の加算部22は第1和X[1] = U[1] + V[1] mod Qを生成し、生成した第1和X[1]を秘密通信装置10の通信部24を介して秘密計算装置30に送信する。
 秘密計算装置10、20、30は、それぞれ、通信部24から第1和X[2], X[3], X[1]を受け取り、受け取った第1和X[2], X[3], X[1]を加減算部26に出力する。秘密計算装置10、20、30は、それぞれの加算部22が算出した第1和X[1], X[2], X[3]と、受信した第1和X[2], X[3], X[1]とを用いて、出力第1要素S"[i]と出力第2要素T"[i]を算出する。具体的には、秘密計算装置10の加減算部26は(S"[1], T"[1]) = (X[1] - X[2] mod Q, - 2X[1] - X[2] mod Q)を算出する。同様に、秘密計算装置20の加減算部26は(S"[2], T"[2]) = (X[2] - X[3] mod Q, - 2X[2] - X[3] mod Q)を算出する。また、秘密計算装置30の加減算部26は(S"[3], T"[3]) = (X[3] - X[1] mod Q, -2X[3] - X[1] mod Q)を算出する。
 WとW’と同様に論理積W"の値を2台の秘密計算装置から復元できることは、一般性を失うことなく、秘密計算装置10と秘密計算装置20が協力する場合の復元方法に基づいて説明することができる。すなわち、秘密計算装置10からの出力第1要素S"[1]と、秘密計算装置20からの出力第2要素T"[2]を用いて、次のように論理積W"を復元することができる。
W・W’ = S"[1] - T"[2] mod Q 
= U[1] + V[1] + U[2] + U[3] + V[2] + V[3] mod Q 
= U[1] + U[2] + U[3] mod Q 
= W"
 また、以下の計算から、論理積W"がWやW’と同様に分散されていることが分かる。
S"[1] + S"[2] + S"[3] mod Q 
= X[1] - X[2] + X[2] - X[3] + X[3] - X[1] mod Q
= 0 mod Q
(効果)
 本実施形態に係る秘密計算システムを用いれば、3つの秘密計算装置に分散されて保持された2つの値のmod Q上の和を、これら秘密計算装置が互いに通信することなく計算し、3つの秘密計算装置に分散された形で保持することが可能となる。ここで、和の計算結果を保持する方法は、最初に2つのそれぞれのビットを保持する方法と同一である。
 また、本実施形態の秘密計算システムによると、3つの秘密計算装置に分散されて保持された2つの値のmod Q上の積を、これら秘密計算装置が互いに通信しつつ計算することで、3つの秘密計算装置に分散された形で保持することが可能となる。このときに発生する通信量は全体として3nビットにすぎず、非特許文献2に記載された2つの装置間の秘密計算で必要とされる通信量と比較して格段に少ない。ここで、積の計算結果の値を保持する方法も、最初に2つ値をそれぞれ保持していたときの方法と同一である。
 このように積と和との両方に関して、計算結果が計算の前のそれぞれの値の保持方法と同一の方法で保持される。これにより、計算結果に対して、さらに積や和の演算を続けることが可能となる。すなわち、本実施形態の秘密計算システムによると、mod Q上の和と積で記述される任意の関数を、データを分散したまま、3つの秘密計算装置を用いて少ない通信量で計算することが可能となる。
 以上説明したように、本実施形態によれば、複数の秘密計算装置にデータを分散して各秘密計算装置にデータを隠ぺいしたままmod Q上の任意の多項式を計算することが可能になる。また、かかる計算に必要とされる通信量と計算量を関連技術と比較して削減することができる。かかる秘密計算システムによると、秘密計算装置上で秘密のデータを扱いつつ何らかのサービスを提供するときに、秘密計算装置の管理者がデータを盗み出すことを防止することにも寄与する。なぜなら、複数の秘密計算装置に対して異なる管理者を割り当てることにより、すべての秘密計算装置中のデータを参照することができる管理者が存在しなくなり、管理者を通じたデータの盗み出しを防止することができるからである。
<実施形態2>
 次に、第2の実施形態に係る秘密計算システムについて、図面を参照して説明する。図4は、本実施形態の秘密計算システムにおける秘密計算装置10の構成を例示するブロック図である。秘密計算装置20、30も、秘密計算装置10と同様の構成を有する。
 図4を参照すると、本実施形態では、秘密計算装置10は、第1の実施形態の秘密計算装置10(図3)に対して、さらにマスク生成部42を備えている。マスク生成部42は、鍵生成部28、疑似乱数生成部32、および、減算部34を備えている。なお、本実施形態における局所乗算部36および積再分配部38の動作は、第1の実施形態におけるこれらの要素の動作と同様であるから、説明を省略する。
 第1の実施形態では、秘密計算装置10、20、30がそれぞれランダムなビットV[1], V[2], V[3]をマスクとして受け取り、V[1] + V[2] + V[3] = 0 mod Qを満たしているものと仮定した。このようなランダムなビットは、積を1つ計算するたびに一揃い必要とされる。したがって、大量の積を計算する場合、V[i,1] + V[i,2] + V[i,3] = 0 mod Q を満たすV[i,1], V[i,2], V[i,3]を多数のi = 1, …, Nに関して生成しておくことが望ましい。本実施形態では、マスク生成部42を用いることにより、これを実現する。
 ここで、Kを安全変数とする。秘密計算装置10、20、30の鍵生成部28は、それぞれ、Kビットの鍵L[1], L[2], L[3]を生成する。秘密計算装置10の通信部24は、生成された鍵L[1]を秘密計算装置30に送信する。同様に、秘密計算装置20の通信部24は生成された鍵L[2]を秘密計算装置10に送信する。また、秘密計算装置30の通信部24は生成された鍵L[3]を秘密計算装置20へ送信する。
 秘密計算装置10、20、30の通信部24は、それぞれ、秘密計算装置20、30、10から鍵L[2], L[3], L[1]を受信する。以下では、受け取った鍵を受信鍵と呼ぶ。
 疑似乱数生成部32は、疑似乱数生成器PRGを有する。ここで、PRGはKビットの文字列からnNビットの文字列を出力する疑似乱数生成器である。秘密計算装置10の疑似乱数生成部32は鍵L[1]から第1疑似乱数PRG(L[1])を生成するとともに、受信鍵L[2]から第2疑似乱数PRG(L[2])を生成する。減算部34は、第1疑似乱数PRG(L[1])および第2疑似乱数PRG(L[2])をnビット毎に分割して、それぞれmod Q上の差を求めることにより、nビットの乱数をN個生成する。ここで、最初からi番目のnビット乱数をV[i.1]とする(i = 1, …, N)。
 同様に、秘密計算装置20は疑似乱数生成部32を用いて第1疑似乱数PRG(L[2])および第2疑似乱数PRG(L[3])を生成し、減算部34を用いて第1疑似乱数PRG(L[2])と第2疑似乱数PRG(L[3])からnビットの乱数N個の列を生成する。ここで、最初からi番目のnビット乱数をV[i.2]とする(i = 1, …, N)。また、秘密計算装置30は疑似乱数生成部32を用いて第1疑似乱数PRG(L[3])および第2疑似乱数PRG(L[1])を生成し、減算部34を用いて第1疑似乱数PRG(L[3])と第2疑似乱数PRG(L[1])から同様にnビットの乱数N個の列を生成する。ここで、最初からi番目のnビット乱数をV[i.3]とする(i = 1, …, N)。
 秘密計算装置10のマスク生成部42は、生成した乱数V[i,1] (i = 1, …, N)を積再分配部38の加算部22に供給する。同様に、秘密計算装置20のマスク生成部42は、生成した乱数V[i,2]を積再分配部38の加算部22に供給する。また、秘密計算装置30のマスク生成部42は、生成した乱数V[i,3]を積再分配部38の加算部22に供給する。
 本実施形態に係る秘密計算システムによると、第1の実施形態に係る秘密計算システムと同様の効果がもたらされる。さらに、本実施形態の秘密計算システムによると、マスク生成部によって生成されたマスクを利用することにより、大量の積の秘密計算を高速に実行することが可能となる。
 なお、本発明において、下記の形態が可能である。
[形態1]
 上記第1の態様に係る秘密計算システムのとおりである。
[形態2]
 R[1], R[2], R[3]およびR'[1], R'[2], R'[3]を、R[1] + R[2] + R[3] = 0 mod Q(Qは3と互いに素な整数), R'[1] + R'[2] + R'[3] = 0 mod Qを満たすnビットの乱数とした場合、前記分散値は、
 (S[1], T[1]) = (R[1], R[3] - W mod Q), 
 (S[2], T[2]) = (R[2], R[1] - W mod Q), 
 (S[3], T[3]) = (R[3], R[2] - W mod Q), 
 (S'[1], T'[1]) = (R'[1], R'[3] - W' mod Q), 
 (S'[2], T'[2]) = (R'[2], R'[1] - W' mod Q), 
 (S'[3], T'[3]) =  (R'[3], R'[2] - W' mod Q)である、
 形態1に記載の秘密計算システム。
[形態3]
 前記保持部は、前記第1および第2の乗算部ならびに前記第1の減算部を用いて算出された局所積要素U[i] = (S[i]・S'[i] - T[i]・T'[i])/3 mod Q(Qは3と互いに素な整数)を保持し、
 前記第i番目の秘密計算装置(i = 1, 2, 3)は、それぞれ、V[1], V[2], V[3]を、V[1] + V[2] + V[3] = 0 mod Qを満たすnビットの乱数とした場合、
 U[i]とV[i]の和X[i]を求める加算部と、
 前記加算部によって算出された和X[i]を第{(i + 1 mod 3) + 1}番目の秘密計算装置に送信するとともに、第(i mod 3 + 1)番目の秘密計算装置の前記加算部によって算出された和X[i mod 3 + 1]を受信する通信部と、
 前記和X[i]および前記和X[i mod 3 + 1]を用いた加減算に基づいて、積W・W'の分散値(S"[i], T"[i])を算出する加減算部と、を備える、
 形態1または2に記載の秘密計算システム。
[形態4]
 前記分散値は(S"[i], T"[i]) = (X[i] - X[i mod 3 + 1] mode Q, -2X[i] - X[i mod 3 + 1])である、
 形態3に記載の秘密計算システム。
[形態5]
 前記第i番目の秘密計算装置(i = 1, 2, 3)は、それぞれ、
 Kビット(Kは自然数)の鍵L[i]を生成する鍵生成部と、
 Kビットの鍵からnNビット(Nは自然数)の乱数を生成する疑似乱数生成部と、
 nNビットの2つの数からnビットごとに抽出してmod Q(Qは3と互いに素な整数)上の差を算出する第2の減算部と、を備え、
 前記通信部は、前記鍵L[i]を第{(i + 1 mod 3) + 1}番目の秘密計算装置に送信するとともに、第(i mod 3 + 1)番目の秘密計算装置の前記鍵生成部によって算出された鍵L[i mod 3 + 1]を受信し、
 前記疑似乱数生成部は、前記鍵L[i]に基づいて第1の疑似乱数を生成するとともに、前記鍵L[i mod 3 + 1]に基づいて第2の疑似乱数を生成し、
 前記第2の減算部は、前記第1の疑似乱数および前記第2の疑似乱数をnビットごとに抽出してmod Q上の差を算出する、
 形態1ないし4のいずれか一に記載の秘密計算システム。
[形態6]
 前記i番目の秘密計算装置(i = 1, 2, 3)の前記加算部は、前記第2の減算部によって算出された値を前記乱数V[i]として使用する、
 形態5に記載の秘密計算システム。
[形態7]
 上記第2の態様に係る秘密計算装置のとおりである。
[形態8]
 上記第3の態様に係る秘密計算方法のとおりである。
[形態9]
 R[1], R[2], R[3]およびR'[1], R'[2], R'[3]を、R[1] + R[2] + R[3] = 0 mod Q(Qは3と互いに素な整数), R'[1] + R'[2] + R'[3] = 0 mod Qを満たすnビットの乱数とした場合、前記分散値は、
 (S[1], T[1]) = (R[1], R[3] - W mod Q), 
 (S[2], T[2]) = (R[2], R[1] - W mod Q), 
 (S[3], T[3]) = (R[3], R[2] - W mod Q), 
 (S'[1], T'[1]) = (R'[1], R'[3] - W' mod Q), 
 (S'[2], T'[2]) = (R'[2], R'[1] - W' mod Q), 
 (S'[3], T'[3]) =  (R'[3], R'[2] - W' mod Q)である、
 形態8に記載の秘密計算方法。
[形態10]
 前記第i番目の秘密計算装置(i = 1, 2, 3)が、それぞれ、前記求めた差を用いて算出された局所積要素U[i] = (S[i]・S'[i] - T[i]・T'[i])/3 mod Q(Qは3と互いに素な整数)を保持するステップと、
 V[1], V[2], V[3]を、V[1] + V[2] + V[3] = 0 mod Qを満たすnビットの乱数とした場合、
 U[i]とV[i]の和X[i]を求めるステップと、
 前記算出された和X[i]を第{(i + 1 mod 3) + 1}番目の秘密計算装置に送信するステップと、
 第(i mod 3 + 1)番目の秘密計算装置によって算出された和X[i mod 3 + 1]を受信するステップと、
 前記和X[i]および前記和X[i mod 3 + 1]を用いた加減算に基づいて、積W・W'の分散値(S"[i], T"[i])を算出するステップと、を含む、
 形態8または9に記載の秘密計算方法。
[形態11]
 前記分散値は(S"[i], T"[i]) = (X[i] - X[i mod 3 + 1] mode Q, -2X[i] - X[i mod 3 + 1])である、
 形態10に記載の秘密計算方法。
 なお、上記非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10、20、30  秘密計算装置
12  保持部
14、16  乗算部
18、34  減算部
22  加算部
24  通信部
26  加減算部
28  鍵生成部
32  擬似乱数生成部
36  局所乗算部
38  積再分配部
42  マスク生成部
100  秘密計算システム

Claims (10)

  1.  3台の秘密計算装置を備えた秘密計算システムであって、
     第i番目の秘密計算装置(i = 1, 2, 3)は、nビット(nは任意の自然数)の数WおよびnビットのW'の分散値として、それぞれ、(S[i], T[i])および(S'[i], T'[i])を保持する保持部と、
     S[i]とS'[i]の論理積を求める第1の乗算部と、
     T[i]とT'[i]の論理積を求める第2の乗算部と、
     前記第1の乗算部が求めた論理積と、前記第2の乗算部が求めた論理積との差を求める第1の減算部と、を有する、
     ことを特徴とする秘密計算システム。
  2.  R[1], R[2], R[3]およびR'[1], R'[2], R'[3]を、R[1] + R[2] + R[3] = 0 mod Q(Qは3と互いに素な整数である), R'[1] + R'[2] + R'[3] = 0 mod Qを満たすnビットの乱数とした場合、前記分散値は、
     (S[1], T[1]) = (R[1], R[3] - W mod Q), 
     (S[2], T[2]) = (R[2], R[1] - W mod Q), 
     (S[3], T[3]) = (R[3], R[2] - W mod Q), 
     (S'[1], T'[1]) = (R'[1], R'[3] - W' mod Q), 
     (S'[2], T'[2]) = (R'[2], R'[1] - W' mod Q), 
     (S'[3], T'[3]) =  (R'[3], R'[2] - W' mod Q)である、
     請求項1に記載の秘密計算システム。
  3.  前記保持部は、前記第1および第2の乗算部ならびに前記第1の減算部を用いて算出された局所積要素U[i] = (S[i]・S'[i] - T[i]・T'[i])/3 mod Q(Qは3と互いに素な整数)を保持し、
     前記第i番目の秘密計算装置(i = 1, 2, 3)は、それぞれ、V[1], V[2], V[3]を、V[1] + V[2] + V[3] = 0 mod Qを満たすnビットの乱数とした場合、
     U[i]とV[i]の和X[i]を求める加算部と、
     前記加算部によって算出された和X[i]を第{(i + 1 mod 3) + 1}番目の秘密計算装置に送信するとともに、第(i mod 3 + 1)番目の秘密計算装置の前記加算部によって算出された和X[i mod 3 + 1]を受信する通信部と、
     前記和X[i]および前記和X[i mod 3 + 1]を用いた加減算に基づいて、積W・W'の分散値(S"[i], T"[i])を算出する加減算部と、を備える、
     請求項1または2に記載の秘密計算システム。
  4.  前記分散値は(S"[i], T"[i]) = (X[i] - X[i mod 3 + 1] mode Q, -2X[i] - X[i mod 3 + 1])である、
     請求項3に記載の秘密計算システム。
  5.  前記第i番目の秘密計算装置(i = 1, 2, 3)は、それぞれ、
     Kビット(Kは自然数)の鍵L[i]を生成する鍵生成部と、
     Kビットの鍵からnNビット(Nは自然数)の乱数を生成する疑似乱数生成部と、
     nNビットの2つの数からnビットごとに抽出してmod Q(Qは3と互いに素な整数)上の差を算出する第2の減算部と、を備え、
     前記通信部は、前記鍵L[i]を第{(i + 1 mod 3) + 1}番目の秘密計算装置に送信するとともに、第(i mod 3 + 1)番目の秘密計算装置の前記鍵生成部によって算出された鍵L[i mod 3 + 1]を受信し、
     前記疑似乱数生成部は、前記鍵L[i]に基づいて第1の疑似乱数を生成するとともに、前記鍵L[i mod 3 + 1]に基づいて第2の疑似乱数を生成し、
     前記第2の減算部は、前記第1の疑似乱数および前記第2の疑似乱数をnビットごとに抽出してmod Q上の差を算出する、
     請求項1ないし4のいずれか1項に記載の秘密計算システム。
  6.  前記i番目の秘密計算装置(i = 1, 2, 3)の前記加算部は、前記第2の減算部によって算出された値を前記乱数V[i]として使用する、
     請求項5に記載の秘密計算システム。
  7.  請求項1ないし6のいずれか1項に記載の秘密計算システムに含まれる一の秘密計算装置。
  8.  3台の秘密計算装置を用いた秘密計算方法であって、
     第i番目の秘密計算装置(i = 1, 2, 3)が、nビット(nは任意の自然数)の数WおよびnビットのW'の分散値として、それぞれ、(S[i], T[i])および(S'[i], T'[i])を保持するステップと、
     S[i]とS'[i]の論理積を第1の論理積として求めるステップと、
     T[i]とT'[i]の論理積を第2の論理積として求めるステップと、
     前記第1の論理積と、前記第2の論理積との差を求めるステップと、を含む、
     ことを特徴とする秘密計算方法。
  9.  R[1], R[2], R[3]およびR'[1], R'[2], R'[3]を、R[1] + R[2] + R[3] = 0 mod Q(Qは3と互いに素な整数), R'[1] + R'[2] + R'[3] = 0 mod Qを満たすnビットの乱数とした場合、前記分散値は、
     (S[1], T[1]) = (R[1], R[3] - W mod Q), 
     (S[2], T[2]) = (R[2], R[1] - W mod Q), 
     (S[3], T[3]) = (R[3], R[2] - W mod Q), 
     (S'[1], T'[1]) = (R'[1], R'[3] - W' mod Q), 
     (S'[2], T'[2]) = (R'[2], R'[1] - W' mod Q), 
     (S'[3], T'[3]) =  (R'[3], R'[2] - W' mod Q)である、
     請求項8に記載の秘密計算方法。
  10.  前記第i番目の秘密計算装置(i = 1, 2, 3)が、それぞれ、前記求めた差を用いて算出された局所積要素U[i] = (S[i]・S'[i] - T[i]・T'[i])/3 mod Q(Qは3と互いに素な整数)を保持するステップと、
     V[1], V[2], V[3]を、V[1] + V[2] + V[3] = 0 mod Qを満たすnビットの乱数とした場合、
     U[i]とV[i]の和X[i]を求めるステップと、
     前記算出された和X[i]を第{(i + 1 mod 3) + 1}番目の秘密計算装置に送信するステップと、
     第(i mod 3 + 1)番目の秘密計算装置によって算出された和X[i mod 3 + 1]を受信するステップと、
     前記和X[i]および前記和X[i mod 3 + 1]を用いた加減算に基づいて、積W・W'の分散値(S"[i], T"[i])を算出するステップと、を含む、
     請求項8または9に記載の秘密計算方法。
PCT/JP2016/075186 2015-08-31 2016-08-29 秘密計算システム、秘密計算装置、および、秘密計算方法 WO2017038761A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/755,888 US10924270B2 (en) 2015-08-31 2016-08-29 Secret calculation system, secret calculation apparatus, and secret calculation method
EP16841793.9A EP3346455B1 (en) 2015-08-31 2016-08-29 Secret calculation system, secret calculation apparatus, and secret calculation method
JP2017538016A JP6607257B2 (ja) 2015-08-31 2016-08-29 秘密計算システム、秘密計算装置、および、秘密計算方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015169992 2015-08-31
JP2015-169992 2015-08-31

Publications (1)

Publication Number Publication Date
WO2017038761A1 true WO2017038761A1 (ja) 2017-03-09

Family

ID=58187571

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/075186 WO2017038761A1 (ja) 2015-08-31 2016-08-29 秘密計算システム、秘密計算装置、および、秘密計算方法

Country Status (4)

Country Link
US (1) US10924270B2 (ja)
EP (1) EP3346455B1 (ja)
JP (1) JP6607257B2 (ja)
WO (1) WO2017038761A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021149092A1 (ja) * 2020-01-20 2021-07-29
US11381390B2 (en) 2017-10-31 2022-07-05 Nec Corporation Secure computation apparatus, system, 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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11991178B2 (en) * 2019-10-04 2024-05-21 Nec Corporation Secret computation system, secret computation server, auxiliary server, secret computation method, and program

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009093603A1 (ja) * 2008-01-21 2009-07-30 Nippon Telegraph And Telephone Corporation 秘密計算システム
JP2011199821A (ja) * 2010-02-24 2011-10-06 Nippon Telegr & Teleph Corp <Ntt> 秘密計算システム、秘密計算方法、計算装置
WO2012102203A1 (ja) * 2011-01-24 2012-08-02 日本電信電話株式会社 秘匿積和計算方法、秘匿積和計算システム、計算装置、及びそれらのプログラム
WO2012121333A1 (ja) * 2011-03-10 2012-09-13 日本電信電話株式会社 秘匿積和結合システム、計算装置、秘匿積和結合方法、及びそれらのプログラム
US20120233460A1 (en) * 2011-03-09 2012-09-13 Microsoft Corporation Server-aided multi-party protocols
WO2014112548A1 (ja) * 2013-01-17 2014-07-24 日本電信電話株式会社 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102725737B (zh) * 2009-12-04 2016-04-20 密码研究公司 可验证防泄漏的加密和解密
US8700906B2 (en) * 2011-01-14 2014-04-15 Microsoft Corporation Secure computing in multi-tenant data centers
US8977847B1 (en) * 2013-03-13 2015-03-10 Emc Corporation Distributed challenge-response authentication

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009093603A1 (ja) * 2008-01-21 2009-07-30 Nippon Telegraph And Telephone Corporation 秘密計算システム
JP2011199821A (ja) * 2010-02-24 2011-10-06 Nippon Telegr & Teleph Corp <Ntt> 秘密計算システム、秘密計算方法、計算装置
WO2012102203A1 (ja) * 2011-01-24 2012-08-02 日本電信電話株式会社 秘匿積和計算方法、秘匿積和計算システム、計算装置、及びそれらのプログラム
US20120233460A1 (en) * 2011-03-09 2012-09-13 Microsoft Corporation Server-aided multi-party protocols
WO2012121333A1 (ja) * 2011-03-10 2012-09-13 日本電信電話株式会社 秘匿積和結合システム、計算装置、秘匿積和結合方法、及びそれらのプログラム
WO2014112548A1 (ja) * 2013-01-17 2014-07-24 日本電信電話株式会社 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
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
US11381390B2 (en) 2017-10-31 2022-07-05 Nec Corporation Secure computation apparatus, system, method and program
JPWO2021149092A1 (ja) * 2020-01-20 2021-07-29
WO2021149092A1 (ja) * 2020-01-20 2021-07-29 日本電気株式会社 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム
JP7396373B2 (ja) 2020-01-20 2023-12-12 日本電気株式会社 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム

Also Published As

Publication number Publication date
US10924270B2 (en) 2021-02-16
JPWO2017038761A1 (ja) 2018-07-12
EP3346455B1 (en) 2020-09-30
EP3346455A1 (en) 2018-07-11
EP3346455A4 (en) 2019-05-22
US20180270057A1 (en) 2018-09-20
JP6607257B2 (ja) 2019-11-20

Similar Documents

Publication Publication Date Title
CN114586313B (zh) 用于签署一信息的系统及方法
Wang et al. Cryptanalysis of a symmetric fully homomorphic encryption scheme
Almaiah et al. A new hybrid text encryption approach over mobile ad hoc network
JP6493697B2 (ja) 秘密計算装置、方法、記録媒体、および秘密計算システム
JP6607257B2 (ja) 秘密計算システム、秘密計算装置、および、秘密計算方法
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
JP6517436B2 (ja) 暗号化デバイス及び符号化デバイス
EP2742644B1 (en) Encryption and decryption method
US6111952A (en) Asymmetrical cryptographic communication method and portable object therefore
Boer et al. Secure sum outperforms homomorphic encryption in (current) collaborative deep learning
JP7173170B2 (ja) 情報処理装置、秘密計算方法及びプログラム
JP4690819B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
JP6053983B2 (ja) 暗号システム、署名システム、暗号プログラム及び署名プログラム
WO2020165931A1 (ja) 情報処理装置、秘密計算方法及びプログラム
JP2007124610A (ja) 秘密情報分散装置及び秘密情報復元装置及び方法及びプログラム
WO2022006483A1 (en) Methods and systems for homomorphic data representation and concealment powered by clifford geometric algebra
EP4022837A1 (en) Multi-party cryptographic systems and methods
JP2000035757A (ja) 暗号化/復号化装置と公開鍵暗号化システムおよび暗号化/復号化方法と公開鍵暗号化方法
Sethi et al. Multi-Way encryption using elliptic curve cryptography
Banerjee et al. Improved Trial Division Technique for Primality Checking in RSA Algorithm
Basilakis et al. A General Framework for Privacy-preserving Computation on Cloud Environments
Shahbazian et al. Real Time Streaming Algorithm
Margarov et al. Real Time Streaming Algorithm
JP5578553B2 (ja) 公開鍵暗号技術におけるドメインパラメータの生成
Alsheikhy et al. Parallelized Multi-Key Multi-Stage Cryptography

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: 16841793

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017538016

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15755888

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: 2016841793

Country of ref document: EP