WO2014112548A1 - 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム - Google Patents

秘匿計算システム、演算装置、秘匿計算方法、およびプログラム Download PDF

Info

Publication number
WO2014112548A1
WO2014112548A1 PCT/JP2014/050647 JP2014050647W WO2014112548A1 WO 2014112548 A1 WO2014112548 A1 WO 2014112548A1 JP 2014050647 W JP2014050647 W JP 2014050647W WO 2014112548 A1 WO2014112548 A1 WO 2014112548A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
variance
checksum
randomized
secret
Prior art date
Application number
PCT/JP2014/050647
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 EP14740760.5A priority Critical patent/EP2947642B1/en
Priority to US14/758,373 priority patent/US9860058B2/en
Priority to JP2014557490A priority patent/JP6016948B2/ja
Priority to CN201480005233.9A priority patent/CN105027180B/zh
Publication of WO2014112548A1 publication Critical patent/WO2014112548A1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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
    • 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 relates to a secret calculation technique, and more particularly to a technique for performing calculation while keeping data secret and guaranteeing the correctness of a calculation result.
  • Non-Patent Document 1 This is a protocol for deriving the result of arithmetic / logical operation by cooperative calculation of 3 parties (3 calculation subjects) without restoring the distributed input value.
  • data is handled as a natural number less than a predetermined prime number p.
  • a a 0 + a 1 + a 2 mod p
  • X is, if a a 2 received from a 2 and Z received from Y agreed, to restore a by calculating a 0 + a 1 + a 2.
  • Y if a 0 received from X matches a 0 received from Z, a 0 + a 1 + a 2 is calculated to restore a.
  • Z if a 1 received from X matches a 1 received from Y, a 0 + a 1 + a 2 is calculated to restore a.
  • (2) c a + secure computing data b for b is also in the same manner as data a, the X is (b 0, b 1), the Y is (b 1, b 2), the Z (b 2, Let b 0 ) be distributed and concealed.
  • c a * b secret calculation (multiplication without fraud detection)
  • the conventional secret calculation technique that guarantees the correctness of the calculation result has a problem that the security parameter cannot be selected.
  • An object of the present invention is to provide a secret calculation technique that can arbitrarily set security parameters and can reduce the probability of success of falsification.
  • the secret calculation system of the present invention includes at least three arithmetic devices.
  • M, m, i are integers of 1 or more, 0 ⁇ m ⁇ M, ⁇ is the number of randomized variance values included in the checksum C, and 0 ⁇ i ⁇ .
  • the secret calculation can be performed with a lower probability of falsification success than before. Also, the validity proof is more efficient than before, and tampering can be detected at high speed.
  • the figure which illustrates the function structure of a secret calculation system The figure which illustrates the function structure of a calculating device. The figure which illustrates the function structure of a secret calculation part. The figure which illustrates the processing flow of a secret calculation method.
  • R is a ring.
  • A is a bonded multi-ring on R.
  • a bond multiple ring is a bond ring and has a structure of some kind of linear space on the body so as to be compatible therewith. It can be said that the combined multi-ring is that the value handled in the vector space is not a field but a ring.
  • X i (subscript).
  • [X] is a secret sentence with the value x ⁇ R.
  • the secret text is a value obtained by concealing the value by means such as encryption or secret sharing.
  • [X] is a set in which each element of the set X is concealed.
  • X is the number of elements in set X.
  • ⁇ X> is the randomized variance value with value x ⁇ R.
  • the randomized variance value is a set of variance value [x] and variance value [xr] of integrated value xr of value x and random number r ⁇ A. Therefore, the randomized variance value can be defined as the following formula (1).
  • the 0th component ([x] in equation (1)) of the randomized dispersion value is also called the R component, and the first component ([xr] in equation (1)) is also called the A component.
  • Rr be the space of the randomized variance with the random number r ⁇ A as a parameter.
  • ⁇ safety> In the technical field of cryptography, users / participants and attackers are modeled to prove the security of the protocol. As such a model, a malicious model or a semi-honest model is used. In the malicious model, an attacker performs arbitrary illegal actions. The semi-honest model is correct for the attacker to handle and tries to steal data in that category. Therefore, it can be evaluated that the protocol whose security is proved in the malicious model is more secure.
  • Non-Patent Document 1 The conventional secret calculation technique described in Non-Patent Document 1 is safe in the semi-honest model, but the malicious model guarantees the correctness of the calculation result, but the confidentiality is not guaranteed.
  • the present invention realizes secure secret calculation in the malicious model having stronger security by using secure secret calculation in the semi-honest model.
  • an operation on the combined multiple ring A can be processed with upward compatibility with the element of the ring R with the same efficiency as the operation on the ring R.
  • an extension field that is an algebraic structure belonging to a coupled multiple ring has a uniform distribution of multiplication results with random numbers, and is an ideal algebraic structure from the viewpoint of safety.
  • the secret calculation system 1 includes N (N ⁇ 3) arithmetic devices 2 1 ,..., 2 N.
  • N computing devices 2 1 ,..., 2 N are connected to the network 9 respectively.
  • the network 9 only needs to be configured so that the connected devices can communicate with each other.
  • the network 9 can be configured by the Internet, a LAN (Local Area Network), a WAN (Wide Area Network), or the like.
  • Each device does not necessarily need to be able to communicate online via a network.
  • the arithmetic device 2 n includes a control unit 101, a memory 102, an input unit 11, a random number generation unit 12, a randomization unit 13, a secret calculation unit 14, a validity proof unit 15, and an output unit 16.
  • the arithmetic device 2 n is a special device configured by reading a special program into a known or dedicated computer having, for example, a CPU (Central Processing Unit), a RAM (Random Access Memory), and the like.
  • the arithmetic device 2 n executes each process under the control of the control unit 101. Data input to the arithmetic unit 2 n and data obtained in each process are stored in the memory 102, and the data stored in the memory 102 is read out as necessary and used for other processes.
  • the secret calculation unit 14 includes an addition constant multiplication unit 141, a multiplication unit 142, a product-sum unit 143, and a random replacement unit 144.
  • the secret calculation unit 14 controls each component unit to execute a desired calculation.
  • At least one dispersion value [a 0 ],..., [A M ⁇ 1 ] (M ⁇ 1) is input to the input unit 11 included in the arithmetic device 2 n (1 ⁇ n ⁇ N) (step S11).
  • the input variance values [a 0 ],..., [A M ⁇ 1 ] are output to the randomizing unit 13.
  • the distributed value [a m ] (0 ⁇ m ⁇ M) is a distributed value obtained by secretly distributing the value a m .
  • the secret sharing method needs to be a secret sharing method that can perform addition, multiplication, product-sum, and random replacement operations on the secret calculation. Any secret sharing method that can perform these operations is possible. It may be. Refer to Non-Patent Document 1 for details on applicable secret sharing methods.
  • the number M of the input variance values [a 0 ],..., [A M ⁇ 1 ] is appropriately determined depending on the contents of the secret calculation performed by the secret calculation unit 14.
  • the random number generation unit 12 generates a distributed value [r] of the random number r ⁇ A selected from the combined multiple ring A (step S12).
  • the generated variance value [r] is output to the randomizing unit 13.
  • the distribution value [r] must be generated in a state in which the random number r is concealed from any of the arithmetic devices 2 1 ,..., 2 N.
  • the arithmetic devices 2 1 ,..., 2 N constituting the secret calculation system 1 can cooperate to generate the distributed value [r] of the random number r.
  • each of the computing devices 2 n generates a random number r n .
  • the variance [r n ] of the random number r n is generated by the concealment method described in Non-Patent Document 1.
  • any of the arithmetic devices 2 1 ,..., 2 N can obtain the variance [r] of the random number r without knowing the random number r.
  • the distributed value [r] of the random number r can be generated using replicated secret sharing. If the replica secret sharing is used, the distributed value [r] of the random number r can be generated without communication between the arithmetic devices 2 1 ,..., 2 N.
  • replica secret sharing For details on replicating secret sharing, see “R. Cramer, I. Damgard, and Y. Ishai,“ Share conversion, pseudorandom secret-sharing and applications to secure computation ”, TCC, Vol. 3378 of Lecture Notes in Computer Science, pp. 342-362, Springer, 2005. (Reference 1).
  • Randomizer 13 variance [a 0], ..., generate [a M-1] and variance values using the [r], randomized variance ⁇ a 0>, ..., ⁇ a M-1 > (Step S13). Randomized variance ⁇ a 0 generated>, ..., ⁇ a M-1> is outputted to the secret computing unit 14.
  • a randomized variance ⁇ a 0>, ..., ⁇ a M-1 respect> is function values concealed by performing the function F containing at least one security operation [F ([a [ 0 ], ..., [a M-1 ])] are obtained (step S14).
  • is the number of randomized variance values included in the checksum C.
  • the value of ⁇ is added every time the checksum C is updated.
  • the obtained function value [F ([a 0 ],..., [A M ⁇ 1 ])] and the checksum C are output to the validity proving unit 15.
  • the secret calculation unit 14 When performing the addition / constant multiplication secret calculation in the function F, the secret calculation unit 14 performs the secret calculation by the addition constant multiplication unit 141. Since the randomized variance value has additive homomorphism, the addition / constant multiplication secret computation can be executed without communication with the other arithmetic unit 2 n in the same manner as the addition to the variance value on the ring R. .
  • randomized variance ⁇ a> and ⁇ b> each randomized variance ⁇ a 0>, ..., of each component contained in one or concealment calculator 14 of ⁇ a M-1>
  • the randomized variance value ⁇ a + b> is calculated by the following equation (2), assuming that the output is the randomized variance value, ⁇ is an arbitrary constant, and the calculated randomized variance value ⁇ a + b>
  • the R component [ ⁇ a + b] is included in the function value [F ([a 0 ], ..., [a M-1 ])]
  • the randomized variance value ⁇ a + b> Include in checksum C. Since the addition / constant multiplication secret computation can be realized by computation inside the computation device, the checksum C is not updated by the randomized variance value before computation.
  • the secret calculation unit 14 When performing the secret calculation of multiplication in the function F, the secret calculation unit 14 performs the secret calculation by the multiplication unit 142. Multiplication secret calculation is realized by ring R multiplication and scalar multiplication.
  • randomized variance ⁇ a> and ⁇ b> each randomized variance ⁇ a 0>, ..., of each component contained in one or concealment calculator 14 of ⁇ a M-1>
  • the checksum C is updated by the following formula (4)
  • the randomized variance value ⁇ ab> is calculated by the formula (5)
  • the randomized variance value ⁇ ab> of the calculation result R component [ab] is included in the function value [F ([a 0 ], ..., [a M-1 ])]
  • the randomized variance value ⁇ ab> is calculated by the checksum C Include in
  • Ring R multiplication is described in “R. Gennaro, MO Rabin, and T. Rabin,“ Simplied VSS and fast-track multiparty computations with applications to threshold cryptography ”, PODC, pp. 101-111, ACM, 1998. 2) ”and“ I. Damgard and JB Nielsen, “Scalable and unconditionally secure multiparty computation”, CRYPTO, Vol. 4622 of Lecture Notes in Computer Science, pp. 572-590, Springer, 2007. (reference 3). The described method can be applied.
  • the method described in Reference 2 performs a round of communication O (n 2 ), whereas Reference 3
  • the method described in Reference 2 since the communication amount O (n) is performed three rounds, the method described in Reference 2 is superior in terms of the communication amount.
  • the method described in Reference 2 has a communication amount of n (n-1), and the method described in Reference 3 has a communication amount of n (n-1) / k + 6 (n- When n is small, the method described in Reference 2 may be more efficient.
  • Multiplication on the combined multiple ring A can be performed without any problem because A is a ring if replicating secret sharing is used. If A is a body, there is no particular problem even if Shamir secret sharing is used. When Shamir secret sharing is used and A is not a body, it is not obvious, but when A is simply R q , multiplication on R may be performed for each component.
  • Scalar multiplication is an operation that calculates [ab] ⁇ [A] from [a] ⁇ [R] and [b] ⁇ [A]. If A is represented as a q-dimensional vector of R 'relative to R's homomorphism R', scalar multiplication is easy.
  • h Since h is a local calculation, the communication traffic is q times R 'multiplication (or one multiplication A), and the number of rounds is 1.
  • A is an expanded body is the simplest case that satisfies this condition.
  • the secret calculation unit 14 performs the secret calculation by the product-sum unit 143.
  • the secret calculation of the product sum is realized by the ring R upper product sum and the scalar product sum.
  • L is an integer between 2 and M
  • randomized dispersion values ⁇ 0 >, ..., ⁇ L-1 >, ⁇ 0 >, ..., ⁇ L-1 > are randomized respectively.
  • variance ⁇ a 0>, ..., checksum C as a randomized variance value output of each component either or included in the secret computing unit 14 of ⁇ a M-1>
  • the following equation (7) update the calculates the randomized variance ⁇ i ⁇ L ⁇ i ⁇ i> by equation (8)
  • Ring R upper product sum can be realized using ring R upper multiplication.
  • the traffic volume of the sum of products on ring R is the same as the traffic volume for one multiplication on ring R.
  • Scalar product-sum can be realized using scalar multiplication.
  • the traffic of scalar product-sum is the same as the traffic for one scalar multiplication.
  • the reason why the [ ⁇ i r] that is the A component is not used for the randomized variance value ⁇ i > is to avoid a change in the order of the random number r for the same reason as the multiplication unit 142.
  • the secret calculation unit 14 when performing random replacement secret calculation, performs the secret calculation by the random replacement unit 144.
  • the random replacement for the randomized dispersion value performs the same random replacement for the R component and the A component of the randomized dispersion value.
  • the two or more M an integer of L, ⁇ 0>, ... , randomized variance ⁇ L-1> respectively ⁇ a 0>, ..., either ⁇ a M-1>
  • the checksum C is updated by the following equation (10) as a randomized variance value output by each component included in the secret calculation unit 14, and ⁇ is mapped to a set of integers not less than 0 and less than L.
  • the correctness proving unit 15 verifies the checksum C using the distributed value [r], thereby proving the correctness of the function value [F ([a 0 ],..., [A M-1 ])]. (Step S15). As a result of verifying the checksum C, if it is determined that there is no alteration, the function value [F ([a 0 ],..., [A M-1 ])] is output to the output unit 16. When it is determined that there has been falsification, information indicating that fact (for example, “ ⁇ ”) is output to the output unit 16.
  • the checksum C is verified by calculating the variance [ ⁇ ] obtained by multiplying the sum of variances [f 0 ], ..., [f ⁇ -1 ] included in the checksum C by the variance [r], and the checksum C This is performed based on the dispersion value [ ⁇ ] which is the sum of the dispersion values [f 0 r],..., [F ⁇ 1 r] included.
  • the validity proving unit 15 verifies the checksum C as follows, for example. First, mu random numbers [rho 0 on associative algebra A, ..., dispersion value of ⁇ ⁇ -1 [ ⁇ 0] , ..., and generates a [ ⁇ ⁇ -1]. Variance [ ⁇ 0], ..., [ ⁇ ⁇ -1] random number [rho 0 from any of the computing device 2 n generation of, ..., ⁇ ⁇ -1 must be performed in a state of being concealed.
  • the variance values [ ⁇ 0 ],..., [ ⁇ ⁇ 1 ] may be generated by the same method as the random number generator 12.
  • the dispersion value [ ⁇ ] is obtained by the following equation (14).
  • the restoration method may be a secret sharing type restoration operation corresponding to each shared value, but at this time, the malicious model guarantees the correctness.
  • all the arithmetic devices 2 1 ,..., 2 N mutually transmit the dispersion value [ ⁇ ] to the other arithmetic devices, and confirm the consistency of the dispersion values to guarantee complete correctness.
  • the total number of arithmetic unit 2 n n, the number of arithmetic unit 2 n required to restore as k, the total traffic is n (n-1).
  • the total communication amount can be set to n (k ⁇ 1) when the data amount of the variance value is large.
  • the attacker must manipulate the [f i ] and [f i r] by matching the traps so that the value of this xr-y becomes 0, but this is because the attacker does not know the random number r ⁇ A.
  • the probability of satisfying is 1 /
  • the random numbers ⁇ 0 ,..., ⁇ ⁇ 1 are multiplied, the overall alteration success probability is at most 2 /
  • the secret calculation unit 14 does not necessarily include all of the addition constant multiplication unit 141, the multiplication unit 142, the product-sum unit 143, and the random replacement unit 144, and each configuration corresponding to the calculation included in the function F to be executed. It is sufficient that the part is included without shortage. For example, if the function F calculates only constant multiplication and multiplication, the secret calculation unit 14 may include only the addition constant multiplication unit 141 and the multiplication unit 142.
  • [Modification] Z can be an integer ring, p can be a prime number, and ring R and bond multiple ring A can be Z / pZ. With this configuration, the success probability of alteration can be about 2 / p. In addition, it is possible to reduce the amount of data communicated between the computing devices in the secret computation.
  • Z can be an integer ring
  • p can be a prime number
  • q can be an integer greater than or equal to 1
  • ring R can be Z / pZ
  • bond multiple ring A can be a q-order extension of ring R.
  • Z can be an integer ring
  • p can be a prime number
  • n and m can be integers
  • ring R can be Z / p n Z
  • bond multiple ring A can be Z / p m Z.
  • the success probability of alteration can be about 2 / p q .
  • the program describing the processing contents can be recorded on a computer-readable recording medium.
  • a computer-readable recording medium any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.
  • this program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
  • a computer that executes such a program first stores a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device.
  • the computer reads a program stored in its own recording medium and executes a process according to the read program.
  • the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer.
  • the processing according to the received program may be executed sequentially.
  • the program is not transferred from the server computer to the computer, and the above-described processing is executed by a so-called ASP (Application Service Provider) type service that realizes a processing function only by an execution instruction and result acquisition. It is good.
  • the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).
  • the present apparatus is configured by executing a predetermined program on a computer.
  • a predetermined program on a computer.
  • at least a part of these processing contents may be realized by hardware.

Landscapes

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

Abstract

 従来よりも低い改ざん成功確率のもとで、秘匿計算を行う。少なくとも3台の演算装置21,…,2Nは、乱数rを秘密分散した分散値[r]を求める乱数生成部と、値a0,…,aM-1を秘密分散した分散値[a0],…,[aM-1]と分散値[r]とを用いて、分散値[a0],…,[aM-1]と分散値[a0r],…,[aM-1r]を組としたランダム化分散値<a0>,…,<aM-1>を生成するランダム化部と、秘匿演算の内容に応じて演算対象および演算結果のランダム化分散値<fi>をチェックサムC:=<f0>,…,<fμ-1>へ含めながら、少なくとも1つの秘匿演算を含む関数Fを実行して秘匿された関数値[F([a0],…,[aM-1])]を求める秘匿計算部と、チェックサムCに含まれる分散値[fi]の総和に分散値[r]を乗じた分散値[φ]とチェックサムCに含まれる分散値[fir]の総和である分散値[ψ]とに基づいて関数値[F([a],…,[aM-1])]の正当性を検証する正当性証明部とを含む。

Description

秘匿計算システム、演算装置、秘匿計算方法、およびプログラム
 この発明は、秘匿計算技術に関し、特にデータを秘匿しながら計算を行い計算結果の正当性を保証する技術に関する。
 従来、データを秘匿した状態で、計算結果の正当性を保証しつつ乗算及び加算を含む計算を行う技術として、非特許文献1の3パーティ秘匿関数計算がある。これは、分散された入力値を復元することなく、3パーティ(3計算主体)の協調計算によって算術/論理演算の結果を導くプロトコルである。3パーティ秘匿関数計算プロトコルでは、データをある定められた素数p未満の自然数として扱う。データを秘匿するときは、そのデータをaとすれば、aを以下の条件を満たすよう3つに分散する。
 a=a0+a1+a2mod p
 実際には乱数a1,a2を生成し、a0=a-a1-a2とする。そして3パーティX、Y、Zに対して、Xに(a0,a1)、Yに(a1,a2)、Zに(a2,a0)を送信する。すると、a1,a2が乱数であるため、X、Y、Zのいずれのパーティもaの情報を持たないが、いずれか2パーティが集まればaを復元することができる。
 秘匿が加法的な分散であるため、その可換性から、分散値を加算してから復元しても、復元してから加算しても結果は等しい。すなわち、加算と定数倍は分散したまま通信なしで行うことが可能である。また、乗算も通信及び乱数生成が必要となるが可能である。そのため、論理回路を構成でき、いかなる計算を実行することも可能である。以下、3パーティ秘匿関数計算の具体例を示す。なお、3パーティ秘匿関数計算プロトコルにおいて、計算結果はpで除した余りであるが、記載を簡略化するため、以下では、"mod p"の記載を省略する。
(1) X、Y、Zに分散された秘匿データaの復元
 Xは、Yにa0を送信し、Zにa1を送信する。Yは、Zにa1を送信し、Xにa2を送信する。Zは、Xにa2を送信し、Yにa0を送信する。
 Xは、Yから受信したa2とZから受信したa2とが一致していれば、a0+a1+a2を計算してaを復元する。Yは、Xから受信したa0とZから受信したa0とが一致していれば、a0+a1+a2を計算してaを復元する。Zは、Xから受信したa1とYから受信したa1とが一致していれば、a0+a1+a2を計算してaを復元する。
(2) c=a+bの秘密計算
 データbもデータaと同様な方法により、Xに(b0,b1)が、Yに(b1,b2)が、Zに(b2,b0)が、それぞれ分散されて秘匿されているとする。
 このとき、Xは(c0,c1)=(a0+b0,a1+b1)を計算して記録し、Yは(c1,c2)=(a1+b1,a2+b2)を計算して記録し、Zは(c2,c0)=(a2+b2,a0+b0)を計算して記録する。
(3) c=a+αの秘密計算(αは既知の定数)
 Xは、(c0,c1)=(a0+α,a1)を計算して記録し、Zは、(c2,c0)=(a2,a0+α)を計算して記録する。Yの処理は無い。
(4) c=a*αの秘密計算
 Xは、(c0,c1)=(a0*α,a1*α)を計算して記録し、Yは、(c1,c2)=(a1*α,a2*α)を計算して記録し、Zは、(c2,c0)=(a2*α,a0*α)を計算して記録する。
(5) c=a*bの秘密計算(不正検知なし乗算)
 まず、Xは、乱数r1,r2,c0を生成し、c1=(a0+a1)(b0+b1)-r1-r2-c0を計算し、Yに(r1,c1)を、Zに(r2,c0)を送信する。
 続いて、Yは、y=a1*b2+b1*a2+r1を計算し、Zにyを送信する。また、Zは、z=a2*b0+b0*a2+r2を計算し、Yにzを送信する。
 続いて、YとZはそれぞれ、c2=y+z+a2*b2を計算する。
 そして、Xは(c0,c1)を記録し、Yは(c1,c2)を記録し、Zは(c2,c0)を記録する。
(6) c=a*bの秘密計算(不正検知付き乗算)
 上記(5)の方法によりc=a*bの乗算を行った上で、X、Y、Zのそれぞれに対して以下の処理を行う。なお、以下の処理においてPはX、Y、Zのそれぞれを意味し、PがXである場合は、P-はZ、P+はYを意味し、PがYである場合は、P-はX、P+はZを意味し、PがZである場合は、P-はY、P+はXを意味する。
 まず、P-、P+だけで乱数rを生成して共有し、P-、P+はr*a0、r*a1、r*a2をr*aの秘匿値として各パーティに分散する。続いて、上記(5)の方法によりc’=(r*a)*bを計算する。そして、r*c-c’が0であるか否かを確認し、0でないことをもって不正を検知する。
千田浩司、濱田浩気、五十嵐大、高橋克己、「軽量検証可能3パーティ秘匿関数計算の再考」、CSS2010、2010年
 従来の計算結果の正当性を保証する秘匿計算技術では、セキュリティパラメータを選択することができないという問題があった。上記の従来技術では、計算を行う対象の単位データを環Rと定めるが、環Rによってセキュリティパラメータが一意に定まってしまう。例えば、論理回路を計算するためにR={0,1}と定めると、セキュリティパラメータは2となる。この場合、計算結果の正当性は1/2の確率でしか保証できないことを意味している。
 この発明の目的は、セキュリティパラメータを任意に設定することができ、改ざん成功確率を低くすることができる秘匿計算技術を提供することである。
 上記の課題を解決するために、この発明の秘匿計算システムは、少なくとも3台の演算装置を含む。この発明では、M,m,iは1以上の整数であり、0≦m<Mであり、μはチェックサムCに含まれるランダム化分散値の数であり、0≦i<μである。
 演算装置は、乱数rを秘密分散した分散値[r]を求める乱数生成部と、値a0,…,aM-1を秘密分散した分散値[a0],…,[aM-1]と分散値[r]とを用いて、値a0,…,aM-1と乱数rの積算値a0r,…,aM-1rの分散値[a0r],…,[aM-1r]を計算し、分散値[a0],…,[aM-1]と分散値[a0r],…,[aM-1r]とを組としたランダム化分散値<a0>,…,<aM-1>を生成するランダム化部と、秘匿演算の内容に応じて演算対象および演算結果のランダム化分散値<fi>をチェックサムC:=<f0>,…,<fμ-1>へ含めながら、少なくとも1つの秘匿演算を含む関数Fを実行して秘匿された関数値[F([a0],…,[aM-1])]を求める秘匿計算部と、チェックサムCに含まれる分散値[fi]の総和に分散値[r]を乗じた分散値[φ]とチェックサムCに含まれる分散値[fir]の総和である分散値[ψ]とに基づいて関数値[F([a],…,[aM-1])]の正当性を検証する正当性証明部とを含む。
 この発明の秘匿計算技術によれば、従来よりも低い改ざん成功確率のもとで、秘匿計算を行うことができる。また、正当性証明が従来よりも効率化されており、高速に改ざん検知ができる。
秘匿計算システムの機能構成を例示する図。 演算装置の機能構成を例示する図。 秘匿計算部の機能構成を例示する図。 秘匿計算方法の処理フローを例示する図。
 実施形態の説明に先立ち、この明細書における表記方法およびこの発明の基本的な考え方について説明する。
<表記方法>
 この発明で扱う値は、特に断りのない限りR上の値とする。Rは環である。AはR上結合多元環である。結合多元環とは、結合的な環であって、かつそれと両立するような、何らかの体上の線型空間の構造を備えたものである。結合多元環は、ベクトル空間で扱う値が体ではなく環でよくなったものと言える。
 ベクトルXの第i要素をXi(下付き添字)で参照する。
 [x]は値x∈Rの秘匿文である。秘匿文は値を暗号化や秘密分散などの手段で秘匿化した値である。Xが集合である場合には、[X]は集合Xの各要素を秘匿化した集合である。
 |X|は集合Xの要素数である。
 <x>は値x∈Rのランダム化分散値である。ランダム化分散値とは、分散値[x]と、値xと乱数r∈Aとの積算値xrの分散値[xr]との組である。したがって、ランダム化分散値は以下の式(1)のように定義できる。
Figure JPOXMLDOC01-appb-M000001
 ランダム化分散値の第0成分(式(1)における[x])はR成分、第1成分(式(1)における[xr])はA成分ともいう。
 乱数r∈Aをパラメータとするランダム化分散値の空間を<Rr>とする。
<安全性>
 暗号理論の技術分野ではプロトコルの安全性を証明するために利用者・参加者や攻撃者をモデル化する。このようなモデルとして、maliciousモデルやsemi-honestモデルが用いられている。maliciousモデルは攻撃者が任意の不正な動作を行う。semi-honestモデルは攻撃者の行う処理は正しく、その範疇でデータを盗み見ようとする。したがって、maliciousモデルにおいて安全性が証明されたプロトコルの方がより安全性が高いと評価できる。
 非特許文献1に記載された従来の秘匿計算技術はsemi-honestモデルにおいて安全であるが、maliciousモデルでは計算結果の正当性を保証するが秘匿性は保証されていなかった。この発明は、semi-honestモデルにおいて安全な秘匿計算を用いて、より強力な安全性をもつmaliciousモデルにおいて安全な秘匿計算を実現する。
<発明のポイント>
 従来の秘匿計算技術では、環R上の演算を4系統で行うことにより正当性の証明を行なっていた。この発明では、環R上の演算と、結合多元環A上の演算との2系統で行うことで正当性の証明を行う。
 従来の秘匿計算では同じ環R上でしか効率的に処理をすることができなかった。しかし、結合多元環A上の演算であれば環R上の演算と同等の効率で、環Rの元と上位互換性をもって処理できる。なお、結合多元環に属する代数構造である拡大体は、乱数との乗算結果が一様分布となり安全性の観点から理想的な代数構造である。
 この発明は、環R上の分散値を結合多元体A上の乱数を用いてランダム化分散値とし、環R上と結合多元環A上との2系統で正当性の証明を行うため、結合多元体Aを適切な空間に設定することでセキュリティパラメータが任意に設定できる。したがって、従来よりも低い改ざん成功確率のもとで秘匿計算を行うことができる。
[実施形態]
 以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
<構成>
 図1を参照して、この実施形態の秘匿計算システム1の構成例を説明する。秘匿計算システム1は、N(N≧3)台の演算装置21,…,2Nを含む。N台の演算装置21,…,2Nはそれぞれネットワーク9に接続される。ネットワーク9は、接続される各装置が相互に通信可能なように構成されていればよく、例えばインターネットやLAN(Local Area Network)、WAN(Wide Area Network)などで構成することができる。なお、各装置は必ずしもネットワークを介してオンラインで通信可能である必要はない。例えば、演算装置21,…,2Nへ入力する情報を磁気テープやUSBメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体から演算装置21,…,2Nへオフラインで入力するように構成してもよい。
 図2を参照して、秘匿計算システム1に含まれる演算装置2n(1≦n≦N)の構成例を説明する。演算装置2nは、制御部101、メモリ102、入力部11、乱数生成部12、ランダム化部13、秘匿計算部14、正当性証明部15、出力部16を含む。演算装置2nは、例えば、CPU(Central Processing Unit)、RAM(Random Access Memory)等を有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。演算装置2nは制御部101の制御のもとで各処理を実行する。演算装置2nに入力されたデータや各処理で得られたデータはメモリ102に格納され、メモリ102に格納されたデータは必要に応じて読み出されて他の処理に利用される。
 図3を参照して、演算装置2nに含まれる秘匿計算部14の構成例を説明する。秘匿計算部14は、加算定数倍部141、乗算部142、積和部143、ランダム置換部144を含む。秘匿計算部14は、各構成部を制御して所望の計算を実行する。
<秘匿計算処理>
 図4を参照して、この実施形態の秘匿計算システム1の動作例について手続きの順に従って詳細に説明する。
 演算装置2n(1≦n≦N)の備える入力部11へ少なくとも1つの分散値[a0],…,[aM-1](M≧1)が入力される(ステップS11)。入力された分散値[a0],…,[aM-1]はランダム化部13へ出力される。分散値[am](0≦m<M)は、値amを秘密分散した分散値である。秘密分散の方法は、秘匿計算上で加算・乗算・積和・ランダム置換の各演算が可能である秘密分散方式である必要があるが、これらの演算が可能であればどのような秘密分散方式であってもよい。適用可能な秘密分散方法についての詳細は非特許文献1を参照されたい。入力される分散値[a0],…,[aM-1]の個数Mは、秘匿計算部14で行われる秘匿計算の内容により適宜決定される。
 乱数生成部12は、結合多元環Aから選択した乱数r∈Aの分散値[r]を生成する(ステップS12)。生成した分散値[r]はランダム化部13に出力される。分散値[r]の生成は、いずれの演算装置21,…,2Nからも乱数rが秘匿された状態で行われなければならない。
 例えば、秘匿計算システム1を構成する演算装置21,…,2Nが協調して乱数rの分散値[r]を生成することができる。具体的には、まず、演算装置2nはそれぞれが乱数rnを生成する。次に、非特許文献1に記載された秘匿方法により乱数rnの分散値[rn]を生成する。そして、演算装置2nはそれぞれ[r]=Σn<N[rn]を計算し、乱数rの分散値[r]を得る。このように構成すれば、いずれの演算装置21,…,2Nも乱数rを知ることなく、乱数rの分散値[r]を得ることができる。
 また、事前の乱数共有や疑似乱数の利用を許すことが可能であれば、複製型秘密分散(replicated secret sharing)を利用して乱数rの分散値[r]を生成することができる。複製型秘密分散を利用すれば演算装置21,…,2N間での通信なしに乱数rの分散値[r]を生成することができる。複製型秘密分散の詳細については「R. Cramer, I. Damgard, and Y. Ishai, “Share conversion, pseudorandom secret-sharing and applications to secure computation”, TCC, Vol. 3378 of Lecture Notes in Computer Science, pp. 342-362, Springer, 2005.(参考文献1)」を参照されたい。
 ランダム化部13は、分散値[a0],…,[aM-1]と分散値[r]を用いて、ランダム化分散値<a0>,…,<aM-1>を生成する(ステップS13)。生成したランダム化分散値<a0>,…,<aM-1>は秘匿計算部14へ出力される。
 具体的には、ランダム化部13は、m=0,…,M-1について、分散値[am]と分散値[r]を用いて、[amr]=[am]×[r]を非特許文献1に記載された秘匿計算方法により求め、分散値[am]と分散値[amr]を組としてランダム化分散値<am>=([am],[amr])を生成する。
 秘匿計算部14は、ランダム化分散値<a0>,…,<aM-1>に対して、少なくとも1つの秘匿演算を含む関数Fを実行して秘匿された関数値[F([a0],…,[aM-1])]を求める(ステップS14)。この際、秘匿演算の内容に応じて演算対象および演算結果となるランダム化分散値<fi>をチェックサムC:=<f0>,…,<fμ-1>へ含める。ここで、μはチェックサムCに含まれるランダム化分散値の数である。μの値はチェックサムCを更新するたびに加算される。求めた関数値[F([a0],…,[aM-1])]とチェックサムCは正当性証明部15へ出力される。
 関数Fにおいて加算・定数倍の秘匿計算を行う場合には、秘匿計算部14は加算定数倍部141により秘匿計算を行う。ランダム化分散値は加法準同型性をもつため、加算・定数倍の秘匿計算は、環R上の分散値に対する加算と同様に、他の演算装置2nと通信することなく実行することができる。
 具体的には、ランダム化分散値<a>および<b>をそれぞれランダム化分散値<a0>,…,<aM-1>のいずれかもしくは秘匿計算部14に含まれる各構成部の出力するランダム化分散値であるとし、γを任意の定数として、以下の式(2)によりランダム化分散値<γa+b>を計算し、計算結果のランダム化分散値<γa+b>のR成分[γa+b]が関数値[F([a0],…,[aM-1])]に含まれる場合には、ランダム化分散値<γa+b>を式(3)によりチェックサムCに含める。加算・定数倍の秘匿計算では、演算装置内部での演算で実現できるため、演算前のランダム化分散値によるチェックサムCの更新は行わない。
Figure JPOXMLDOC01-appb-M000002
 関数Fにおいて乗算の秘匿計算を行う場合には、秘匿計算部14は乗算部142により秘匿計算を行う。乗算の秘匿計算は環R上乗算とスカラー乗算とで実現される。
 具体的には、ランダム化分散値<a>および<b>をそれぞれランダム化分散値<a0>,…,<aM-1>のいずれかもしくは秘匿計算部14に含まれる各構成部の出力するランダム化分散値であるとして、以下の式(4)によりチェックサムCを更新し、式(5)によりランダム化分散値<ab>を計算し、計算結果のランダム化分散値<ab>のR成分[ab]が関数値[F([a0],…,[aM-1])]に含まれる場合には、ランダム化分散値<ab>を式(6)によりチェックサムCに含める。
Figure JPOXMLDOC01-appb-M000003
 乗算の秘匿計算では、ランダム化分散値<a>に関しては、A成分である[ar]は使用しない。[ar][br]を計算すると[abr2]となり乱数rの次数が変化してしまう。これを避けるために、A成分では[a][br]=[abr]を計算する。
 環R上乗算は、「R. Gennaro, M. O. Rabin, and T. Rabin, “Simplied VSS and fast-track multiparty computations with applications to threshold cryptography”, PODC, pp. 101-111, ACM, 1998.(参考文献2)」や「I. Damgard and J. B. Nielsen, “Scalable and unconditionally secure multiparty computation”, CRYPTO, Vol. 4622 of Lecture Notes in Computer Science, pp. 572-590, Springer, 2007.(参考文献3)」に記載の方法を適用することができる。演算装置2nの総数をn、復元に必要な演算装置2nの数をkとして、参考文献2に記載の方法では通信量O(n2)を1ラウンド行うのに対して、参考文献3に記載の方法では通信量O(n)を3ラウンド行うため、参考文献2に記載の方法の方が通信量の観点においては優れている。ただし、より正確には参考文献2に記載の方法は通信量がn(n-1)であり、参考文献3に記載の方法は通信量がn(n-1)/k+6(n-1)であり、nが小さい場合には参考文献2に記載の方法の方が効率的な場合もある。
 結合多元環A上の乗算は、複製型秘密分散を用いる場合であれば、Aは環であるので問題なくsemi-honest乗算を行える。また、Aが体ならばShamir秘密分散を用いても特に問題はない。Shamir秘密分散を用いる場合でAが体でないときは自明ではないが、Aが単にRqの場合などは成分ごとにR上乗算を行えばよい。
 スカラー乗算は[a]∈[R],[b]∈[A]から[ab]∈[A]を計算する演算である。AがRの環の準同型R'に対してR'のq次元ベクトルとして表現されていれば、スカラー乗算は容易である。R→R'の準同型写像をhとおいて、[b]=([b0],…,[bq-1])とおく。[a]の各パーティのシェアに対してhを作用させたものを[h(a)]とすると、準同型性から[h(a)]は[R']に属する。すなわち、[ab]:=([h(a)][b0],…,[h(a)][bq-1])である。hはローカル計算であるから、通信量はR'上乗算q回分(もしくはA上乗算1回分)、ラウンド数は1である。Aが拡大体である場合がこの条件を満たす最も簡単な場合である。この場合、hを恒等写像とすることができ、[ab]:=([a][b0],…,[a][bq-1])である。
 関数Fにおいて積和の秘匿計算を行う場合には、秘匿計算部14は積和部143により秘匿計算を行う。積和の秘匿計算は環R上積和とスカラー積和とで実現される。
 具体的には、Lを2以上M以下の整数とし、ランダム化分散値<α0>,…,<αL-1>,<β0>,…,<βL-1>をそれぞれランダム化分散値<a0>,…,<aM-1>のいずれかもしくは秘匿計算部14に含まれる各構成部の出力するランダム化分散値であるとして、以下の式(7)によりチェックサムCを更新し、式(8)によりランダム化分散値<Σi<Lαiβi>を計算し、計算結果のランダム化分散値<Σi<Lαiβi>のR成分[Σi<Lαiβi]が関数値[F([a0],…,[aM-1])]に含まれる場合には、ランダム化分散値<Σi<Lαiβi>を式(9)によりチェックサムCに含める。
Figure JPOXMLDOC01-appb-M000004
 環R上積和は環R上乗算を用いて実現できる。環R上積和の通信量は環R上乗算1回分の通信量と同じである。スカラー積和はスカラー乗算を用いて実現できる。スカラー積和の通信量はスカラー乗算1回分の通信量と同じである。ランダム化分散値<αi>に関して、A成分である[αir]を使用しないのは、乗算部142と同様の理由により、乱数rの次数変化を避けるためである。
 関数Fにおいてランダム置換の秘匿計算を行う場合には、秘匿計算部14はランダム置換部144により秘匿計算を行う。ランダム化分散値に対するランダム置換は、ランダム化分散値のR成分およびA成分に対して同じランダム置換を行う。
 具体的には、Lを2以上M以下の整数とし、<α0>,…,<αL-1>をそれぞれランダム化分散値<a0>,…,<aM-1>のいずれかもしくは秘匿計算部14に含まれる各構成部の出力するランダム化分散値とし、πを0以上L未満の整数の集合への写像として、以下の式(10)によりチェックサムCを更新し、式(11)(12)によりランダム化分散値<απ(i)>を計算し、計算結果のランダム化分散値<απ(i)>のR成分[απ(i)]が関数値[F([a0],…,[aM-1])]に含まれる場合には、ランダム化分散値<απ(i)>を式(13)によりチェックサムCに含める。
Figure JPOXMLDOC01-appb-M000005
 ランダム置換の秘匿計算は、「濱田浩気, 五十嵐大, 千田浩司, 高橋克巳, “3パーティ秘匿関数計算のランダム置換プロトコル”, CSS2010, 2010.(参考文献4)」に記載の方法を適用することができる。
 正当性証明部15は、分散値[r]を用いてチェックサムCを検証することで、関数値[F([a0],…,[aM-1])]の正当性を証明する(ステップS15)。チェックサムCを検証した結果、改ざんがないと判断した場合は関数値[F([a0],…,[aM-1])]を出力部16へ出力する。改ざんがあったと判断した場合はその旨を示す情報(例えば、「⊥」など)を出力部16へ出力する。チェックサムCの検証は、チェックサムCに含まれる分散値[f0],…,[fμ-1]の総和に分散値[r]を乗じた分散値[φ]と、チェックサムCに含まれる分散値[f0r],…,[fμ-1r]の総和である分散値[ψ]とに基づいて行われる。
 具体的には、正当性証明部15は、例えば以下のようにチェックサムCを検証する。まず、結合多元環A上のμ個の乱数ρ0,…,ρμ-1の分散値[ρ0],…,[ρμ-1]を生成する。分散値[ρ0],…,[ρμ-1]の生成はいずれの演算装置2nからも乱数ρ0,…,ρμ-1が秘匿された状態で行われなければならない。分散値[ρ0],…,[ρμ-1]の生成は、乱数生成部12と同様の方法により行えばよい。
 次に、チェックサムCに含まれる分散値[f0],…,[fμ-1]と分散値[ρ0],…,[ρμ-1]と分散値[r]を用いて、以下の式(14)により分散値[φ]を求める。
Figure JPOXMLDOC01-appb-M000006
 また、チェックサムCに含まれる分散値[f0r],…,[fμ-1r]と分散値[ρ0],…,[ρμ-1]を用いて、以下の式(15)により分散値[ψ]を求める。
Figure JPOXMLDOC01-appb-M000007
 そして、分散値[φ]と分散値[ψ]を減算した分散値[δ]=[φ]-[ψ]を復元する。復元の方法は、各分散値に対応する秘密分散方式の復元操作で行えばよいが、この際、maliciousモデルで正当性を保証する。具体的にはすべての演算装置21,…,2Nが互いに分散値[δ]を他の演算装置へ送信し、分散値の一貫性を確認することで完全な正当性を保証する。この場合、演算装置2nの総数をn、復元に必要な演算装置2nの数をkとして、総通信量はn(n-1)である。この際、確率的な方法を用いれば分散値のデータ量が大きいとき総通信量をn(k-1)とすることができる。なお、上記の参考文献3に記載の秘匿計算のように、正当性を保証しない復元を含むsemi-honest演算もあるが、秘匿計算の構成要素として正当性を保証しない復元が含まれていても、秘匿計算全体の安全性には影響しない。
 すべての演算装置21,…,2Nにおいて復元した値δが0であれば、秘匿計算全体を通して改ざんがなかったものと判断する。いずれかの演算装置21,…,2Nにおいて復元した値δが0以外であれば、秘匿計算において改ざんがあったものと判断する。
 正当性証明の基本的な考え方を説明する。チェックサムの検証は、ランダム化分散値それぞれに着目すると、[fi][r]-[fir]=0であるかを検証することである。ここで、分散値[fi]と分散値[fir]がいずれも改ざんされ、[fi+x]と[fir+y]とされた場合を考えると、検証により得られる値は式(16)となる。
Figure JPOXMLDOC01-appb-M000008
 攻撃者はこのxr-yの値を0となるように辻褄を合わせて[fi]と[fir]を操作しなければならないが、攻撃者は乱数r∈Aを知らないため、これを満たすようにすることができる確率は、1/|A|となる。ただし、この実施形態では乱数ρ0,…,ρμ-1を乗じているため全体の改ざん成功確率は高々2/|A|となる。
 秘匿計算部14は、必ずしも、加算定数倍部141、乗算部142、積和部143、ランダム置換部144のすべてを含んでいなくともよく、実行する関数Fに含まれる演算に対応する各構成部が不足なく含まれていればよい。例えば、関数Fが定数倍と乗算の演算のみを計算するものであれば、秘匿計算部14は、加算定数倍部141及び乗算部142のみを含んでいればよい。
[変形例]
 Zを整数環、pを素数として、環Rと結合多元環AとをZ/pZとすることができる。このように構成することで、改ざん成功確率は約2/pとすることができる。また、秘匿演算において演算装置同士で通信するデータ量を少なくすることができる。
 Zを整数環、pを素数、qを1以上の整数として、環RをZ/pZとし、結合多元環Aを環Rのq次拡大体とすることができる。このように構成することで、改ざん成功確率を約2/pqとすることができる。R={0,1}とした場合など、pが小さい場合には特に有効である。
 Zを整数環、pを素数、n,mを整数として、環RをZ/pnZとし、結合多元環AをZ/pmZとすることができる。このように構成することで、改ざん成功確率を約2/pqとすることができる。
[プログラム、記録媒体]
 この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施例において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
 また、上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
 この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
 また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
 また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (8)

  1.  少なくとも3台の演算装置を含む秘匿計算システムであって、
     M,m,iは1以上の整数であり、0≦m<Mであり、μはチェックサムCに含まれるランダム化分散値の数であり、0≦i<μであり、
     前記演算装置は、
      乱数rを秘密分散した分散値[r]を求める乱数生成部と、
      値a0,…,aM-1を秘密分散した分散値[a0],…,[aM-1]と前記分散値[r]とを用いて、値a0,…,aM-1と乱数rの積算値a0r,…,aM-1rの分散値[a0r],…,[aM-1r]を計算し、前記分散値[a0],…,[aM-1]と前記分散値[a0r],…,[aM-1r]とを組としたランダム化分散値<a0>,…,<aM-1>を生成するランダム化部と、
      秘匿演算の内容に応じて演算対象および演算結果のランダム化分散値<fi>をチェックサムC:=<f0>,…,<fμ-1>へ含めながら少なくとも1つの秘匿演算を含む関数Fを実行して秘匿された関数値[F([a0],…,[aM-1])]を求める秘匿計算部と、
      前記チェックサムCに含まれる分散値[fi]の総和に前記分散値[r]を乗じた分散値[φ]と前記チェックサムCに含まれる分散値[fir]の総和である分散値[ψ]とに基づいて前記関数値[F([a],…,[aM-1])]の正当性を検証する正当性証明部と、
     を含む秘匿計算システム。
  2.  請求項1に記載の秘匿計算システムであって、
     前記秘匿計算部は、
      <a>:=([a],[ar]),<b>:=([b],[br])をそれぞれ前記ランダム化分散値<a0>,…,<aM-1>のいずれかとし、γを定数として、ランダム化分散値<γa+b>:=(γ[a]+[b],γ[ar]+[br])を計算し、前記ランダム化分散値<γa+b>を前記チェックサムCに含める加算定数倍部、
     を含む秘匿計算システム。
  3.  請求項1に記載の秘匿計算システムであって、
     前記秘匿計算部は、
      <a>:=([a],[ar]),<b>:=([b],[br])をそれぞれ前記ランダム化分散値<a0>,…,<aM-1>のいずれかとして、<a>,<b>を前記チェックサムCへ含め、ランダム化分散値<ab>:=([a][b],[a][br])を計算し、前記ランダム化分散値<ab>を前記チェックサムCに含める乗算部、
     を含む秘匿計算システム。
  4.  請求項1に記載の秘匿計算システムであって、
     前記秘匿計算部は、
      Lを2以上M以下の整数とし、<α0>:=([α0],[α0r]),…,<αL-1>:=([αL-1],[αL-1r]),<β0>:=([β0],[β0r]),…,<βL-1>:=([βL-1],[βL-1r])をそれぞれ前記ランダム化分散値<a0>,…,<aM-1>のいずれかとして、<α0>,…,<αL-1>,<β0>,…,<βL-1>を前記チェックサムCへ含め、ランダム化分散値<Σi<Lαiβi>:=(Σi<Li][βi],Σi<Li][βir])を計算し、前記ランダム化分散値<Σi<Lαiβi>を前記チェックサムCに含める積和部、
     を含む秘匿計算システム。
  5.  請求項1に記載の秘匿計算システムであって、
     前記秘匿計算部は、
      Lを2以上M以下の整数とし、<α0>:=([α0],[α0r]),…,<αL-1>:=([αL-1],[αL-1r])をそれぞれ前記ランダム化分散値<a0>,…,<aM-1>のいずれかとし、πを0以上L未満の整数の集合への写像として、<α0>,…,<αL-1>を前記チェックサムCへ含め、ランダム化分散値<απ(i)>:=([απ(i)],[απ(i)r])を計算し、前記ランダム化分散値<απ(i)>を前記チェックサムCに含めるランダム置換部、
     を含む秘匿計算システム。
  6.  M,m,iは1以上の整数であり、0≦m<Mであり、μはチェックサムCに含まれる要素の数であり、0≦i<μであり、
     乱数rを秘密分散した分散値[r]を求める乱数生成部と、
     値a0,…,aM-1を秘密分散した分散値[a0],…,[aM-1]と前記分散値[r]とを用いて、値a0,…,aM-1と乱数rの積算値a0r,…,aM-1rの分散値[a0r],…,[aM-1r]を計算し、前記分散値[a0],…,[aM-1]と前記分散値[a0r],…,[aM-1r]を組としたランダム化分散値<a0>,…,<aM-1>を生成するランダム化部と、
      秘匿演算の内容に応じて演算対象および演算結果のランダム化分散値<fi>をチェックサムC:=<f0>,…,<fμ-1>へ含めながら少なくとも1つの秘匿演算を含む関数Fを実行して秘匿された関数値[F([a0],…,[aM-1])]を求める秘匿計算部と、
     前記チェックサムCに含まれる分散値[fi]の総和に前記分散値[r]を乗じた分散値[φ]と前記チェックサムCに含まれる分散値[fir]の総和である分散値[ψ]とに基づいて前記関数値[F([a],…,[aM-1])]の正当性を検証する正当性証明部と、
     を含む演算装置。
  7.  M,m,iは1以上の整数であり、0≦m<Mであり、μはチェックサムCに含まれる要素の数であり、0≦i<μであり、
     乱数生成部が、乱数rを秘密分散した分散値[r]を求める乱数生成ステップと、
     ランダム化部が、値a0,…,aM-1を秘密分散した分散値[a0],…,[aM-1]と前記分散値[r]とを用いて、値a0,…,aM-1と乱数rの積算値a0r,…,aM-1rの分散値[a0r],…,[aM-1r]を計算し、前記分散値[a0],…,[aM-1]と前記分散値[a0r],…,[aM-1r]を組としたランダム化分散値<a0>,…,<aM-1>を生成するランダム化ステップと、
     秘匿計算部が、秘匿演算の内容に応じて演算対象および演算結果のランダム化分散値<fi>をチェックサムC:=<f0>,…,<fμ-1>へ含めながら少なくとも1つの秘匿演算を含む関数Fを実行して秘匿された関数値[F([a0],…,[aM-1])]を求める秘匿計算ステップと、
     正当性証明部が、前記チェックサムCに含まれる分散値[fi]の総和に前記分散値[r]を乗じた分散値[φ]と前記チェックサムCに含まれる分散値[fir]の総和である分散値[ψ]とに基づいて前記関数値[F([a],…,[aM-1])]の正当性を検証する正当性証明ステップと、
     を含む秘匿計算方法。
  8.  請求項6に記載の演算装置としてコンピュータを機能させるためのプログラム。
PCT/JP2014/050647 2013-01-17 2014-01-16 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム WO2014112548A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP14740760.5A EP2947642B1 (en) 2013-01-17 2014-01-16 Secret computation system, arithmetic unit, secret computation method and program
US14/758,373 US9860058B2 (en) 2013-01-17 2014-01-16 Secret computation system, arithmetic unit, secret computation method and program
JP2014557490A JP6016948B2 (ja) 2013-01-17 2014-01-16 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム
CN201480005233.9A CN105027180B (zh) 2013-01-17 2014-01-16 保密计算系统、运算装置、以及保密计算方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013006690 2013-01-17
JP2013-006690 2013-01-17

Publications (1)

Publication Number Publication Date
WO2014112548A1 true WO2014112548A1 (ja) 2014-07-24

Family

ID=51209637

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/050647 WO2014112548A1 (ja) 2013-01-17 2014-01-16 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム

Country Status (5)

Country Link
US (1) US9860058B2 (ja)
EP (1) EP2947642B1 (ja)
JP (1) JP6016948B2 (ja)
CN (1) CN105027180B (ja)
WO (1) WO2014112548A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016104476A1 (ja) * 2014-12-26 2016-06-30 日本電信電話株式会社 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム
JP2016126354A (ja) * 2016-01-13 2016-07-11 日本電信電話株式会社 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム
JP5968484B1 (ja) * 2015-03-18 2016-08-10 日本電信電話株式会社 シェア復旧システム、シェア復旧方法、およびプログラム
WO2017038761A1 (ja) * 2015-08-31 2017-03-09 日本電気株式会社 秘密計算システム、秘密計算装置、および、秘密計算方法
JP2017097102A (ja) * 2015-11-20 2017-06-01 国立研究開発法人情報通信研究機構 サーバ、サービス方法
CN108140336A (zh) * 2015-10-13 2018-06-08 日本电信电话株式会社 秘密认证码附加装置、秘密认证码附加方法以及程序
EP3316176A4 (en) * 2015-08-17 2018-12-19 Nippon Telegraph And Telephone Corporation Computation system, computation device, method thereof, and program
WO2019176520A1 (ja) 2018-03-12 2019-09-19 日本電信電話株式会社 秘密計算装置、秘密計算方法、プログラム、および記録媒体

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5957126B1 (ja) * 2015-06-24 2016-07-27 日本電信電話株式会社 秘密計算装置、秘密計算方法、およびプログラム
JP6534778B2 (ja) * 2016-07-06 2019-06-26 日本電信電話株式会社 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
EP3573041A4 (en) * 2017-01-18 2020-06-03 Nippon Telegraph And Telephone Corporation METHOD FOR SAFE CALCULATION, SYSTEM FOR SAFE CALCULATION, DEVICE FOR SAFE CALCULATION AND PROGRAM
US11157612B2 (en) * 2017-05-25 2021-10-26 Nippon Telegraph And Telephone Corporation Secret tampering detection system, secret tampering detection apparatus, secret tampering detection method, and program
DE102017117907B4 (de) * 2017-08-07 2023-04-27 Infineon Technologies Ag Durchführen einer kryptografischen Operation
WO2019039381A1 (ja) * 2017-08-22 2019-02-28 日本電信電話株式会社 秘密計算装置、秘密計算方法、プログラム、および記録媒体
WO2019063503A1 (en) * 2017-09-29 2019-04-04 Robert Bosch Gmbh METHOD FOR CALCULATING FASTER SECURED MULTIPARTITE INTERNAL PRODUCT USING SPDZ
CN109255247B (zh) * 2018-08-14 2020-08-14 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN114981864A (zh) * 2020-01-20 2022-08-30 日本电信电话株式会社 秘密选择积计算系统、秘密选择积计算方法、秘密计算装置以及程序

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012078446A (ja) * 2010-09-30 2012-04-19 Nippon Telegr & Teleph Corp <Ntt> 不正検知方法、秘密計算システム、計算装置、計算プログラム
WO2012121333A1 (ja) * 2011-03-10 2012-09-13 日本電信電話株式会社 秘匿積和結合システム、計算装置、秘匿積和結合方法、及びそれらのプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4300838B2 (ja) * 2003-03-25 2009-07-22 沖電気工業株式会社 分散計算装置及び分散計算システム
US8752032B2 (en) * 2007-02-23 2014-06-10 Irdeto Canada Corporation System and method of interlocking to protect software-mediated program and device behaviours
JP5065802B2 (ja) * 2007-08-06 2012-11-07 Kddi株式会社 分散情報生成装置、秘密情報復元装置、権限情報を伴った分散情報の生成方法、秘密情報のアクセス制御方法およびプログラム
US8031875B1 (en) * 2007-08-09 2011-10-04 Emc Corporation Key distribution in unidirectional channels with applications to RFID
US8989391B2 (en) * 2010-10-06 2015-03-24 Nippon Telegraph And Telephone Corporation Secret sharing system, secret sharing apparatus, secret sharing method, secret sorting method and secret sharing program
US9292258B2 (en) * 2011-01-24 2016-03-22 Nippon Telegraph And Telephone Corporation Secure sum-of-product computation method, secure sum-of-product computation system, computation apparatus and programs therefor
CN102364888B (zh) * 2011-09-30 2015-01-07 深圳市文鼎创数据科技有限公司 动态令牌密钥因子的设置方法、系统、终端及验证服务器
US9350550B2 (en) * 2013-09-10 2016-05-24 M2M And Iot Technologies, Llc Power management and security for wireless modules in “machine-to-machine” communications
EP3096309B1 (en) * 2014-01-17 2018-10-31 Nippon Telegraph And Telephone Corporation Secret calculation method, secret calculation system, sorting device, and program
US10218495B2 (en) * 2014-01-28 2019-02-26 Nippon Telegraph And Telephone Corporation Secure computation method, secure computation system, secure computation server, registrant terminal, user terminal and program
US20160125396A1 (en) * 2014-10-29 2016-05-05 Google Inc. Confirming physical possession of plastic nfc cards with a mobile digital wallet application

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012078446A (ja) * 2010-09-30 2012-04-19 Nippon Telegr & Teleph Corp <Ntt> 不正検知方法、秘密計算システム、計算装置、計算プログラム
WO2012121333A1 (ja) * 2011-03-10 2012-09-13 日本電信電話株式会社 秘匿積和結合システム、計算装置、秘匿積和結合方法、及びそれらのプログラム

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
DAI IGARASHI ET AL.: "Hijoni Kokoritsu na n>=2k-1 no malicious Model-jo Himitsu Bunsan Base Himitsu Keisan", 2013 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY GAIYOSHU CD-ROM, 22 January 2013 (2013-01-22), pages 3C3 - 2, XP008180067 *
DAI IGARASHI ET AL.: "Keiryo Kensho Kano 3 Party Hitoku Kansu Keisan no Koritsuka Oyobi Kore o Mochiita Secure na Database Shori", 2011 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY GAIYOSHU CD-ROM, 25 January 2011 (2011-01-25), pages 2C3 - 6, XP008180066 *
I. DAMGARD; J. B. NIELSEN: "CRYPTO", vol. 4622, 2007, SPRINGER, article "Scalable and unconditionally secure multiparty computation", pages: 572 - 590
KOKI HAMADA; DAI IKARASHI; KOJI CHIDA; KATSUMI TAKAHASHI: "A Random Permutation Protocol on Three-Party Secure Function Evaluation", CSS2010, 2010
R. CRAMER; I. DAMGARD; Y. ISHAI: "TCC", vol. 3378, 2005, SPRINGER, article "Share conversion, pseudorandom secret-sharing and applications to secure computation", pages: 342 - 362
R. GENNARO; M. O. RABIN; T. RABIN: "PODC", 1998, ACM, article "Simplified VSS and fast-track multiparty computations with applications to threshold cryptography", pages: 101 - 111
SATOSHI OBANA ET AL.: "Almost Optimum Secret Sharing Schemes Secure Against Cheating for Arbitrary Secret Distribution", 2006, XP047030247, Retrieved from the Internet <URL:https://www.iacr. org/archive/asiacrypt2006/asiacrypt2006.html> [retrieved on 20140207] *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10950144B2 (en) 2014-12-26 2021-03-16 Nippon Telegraph And Telephone Corporation Secret falsification detecting system, secret computation apparatus, secret falsification detecting method, and program
CN107111965A (zh) * 2014-12-26 2017-08-29 日本电信电话株式会社 秘密篡改检测系统、秘密计算装置、秘密篡改检测方法、以及程序
WO2016104476A1 (ja) * 2014-12-26 2016-06-30 日本電信電話株式会社 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム
EP3239963A4 (en) * 2014-12-26 2018-08-15 Nippon Telegraph and Telephone Corporation Secret falsification detection system, secret calculation device, secret falsification detection method, and program
JP5968484B1 (ja) * 2015-03-18 2016-08-10 日本電信電話株式会社 シェア復旧システム、シェア復旧方法、およびプログラム
WO2016147718A1 (ja) * 2015-03-18 2016-09-22 日本電信電話株式会社 シェア復旧システム、シェア復旧装置、シェア復旧方法、およびプログラム
CN107430829A (zh) * 2015-03-18 2017-12-01 日本电信电话株式会社 份额恢复系统、份额恢复装置、份额恢复方法以及程序
US10693886B2 (en) 2015-08-17 2020-06-23 Nippon Telegraph And Telephone Corporation Computation system, computation device, method thereof, and program to perform information processing
EP3316176A4 (en) * 2015-08-17 2018-12-19 Nippon Telegraph And Telephone Corporation Computation system, computation device, method thereof, and program
WO2017038761A1 (ja) * 2015-08-31 2017-03-09 日本電気株式会社 秘密計算システム、秘密計算装置、および、秘密計算方法
US10924270B2 (en) 2015-08-31 2021-02-16 Nec Corporation Secret calculation system, secret calculation apparatus, and secret calculation method
EP3346455A4 (en) * 2015-08-31 2019-05-22 Nec Corporation SECRET CALCULATION SYSTEM, SECRET CALCULATION DEVICE AND SECRET CALCULATION PROCEDURE
CN108140336A (zh) * 2015-10-13 2018-06-08 日本电信电话株式会社 秘密认证码附加装置、秘密认证码附加方法以及程序
CN108140336B (zh) * 2015-10-13 2021-06-22 日本电信电话株式会社 秘密认证码附加装置、秘密认证码附加方法以及记录介质
JP2017097102A (ja) * 2015-11-20 2017-06-01 国立研究開発法人情報通信研究機構 サーバ、サービス方法
JP2016126354A (ja) * 2016-01-13 2016-07-11 日本電信電話株式会社 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム
WO2019176520A1 (ja) 2018-03-12 2019-09-19 日本電信電話株式会社 秘密計算装置、秘密計算方法、プログラム、および記録媒体

Also Published As

Publication number Publication date
US20150358155A1 (en) 2015-12-10
JPWO2014112548A1 (ja) 2017-01-19
US9860058B2 (en) 2018-01-02
CN105027180B (zh) 2017-03-29
EP2947642B1 (en) 2017-09-06
EP2947642A1 (en) 2015-11-25
CN105027180A (zh) 2015-11-04
EP2947642A4 (en) 2016-11-09
JP6016948B2 (ja) 2016-10-26

Similar Documents

Publication Publication Date Title
JP6016948B2 (ja) 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム
JP7554493B2 (ja) 閾ボールトを生成する、コンピュータにより実施される方法
Xu et al. VerifyNet: Secure and verifiable federated learning
Yu et al. Platform-independent secure blockchain-based voting system
Yu et al. Enhanced privacy of a remote data integrity-checking protocol for secure cloud storage
Wang et al. Privacy-preserving public auditing for data storage security in cloud computing
US11895231B2 (en) Adaptive attack resistant distributed symmetric encryption
Huang et al. Achieving accountable and efficient data sharing in industrial internet of things
JP2020515087A5 (ja)
JP2020521369A (ja) データ重複排除のためのアプリケーションによる暗号化鍵の生成
Barsoum et al. Integrity verification of multiple data copies over untrusted cloud servers
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
Vijayakumar et al. A secured cloud storage auditing with empirical outsourcing of key updates
JP2021510954A (ja) デジタル署名されたデータを取得するためのコンピュータにより実施される方法及びシステム
WO2016104476A1 (ja) 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム
Tran et al. An efficient privacy-enhancing cross-silo federated learning and applications for false data injection attack detection in smart grids
Mashhadi et al. Provably secure verifiable multi‐stage secret sharing scheme based on monotone span program
JP6053238B2 (ja) 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム
US20220345312A1 (en) Zero-knowledge contingent payments protocol for granting access to encrypted assets
WO2018216512A1 (ja) 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム
Pei et al. Smart contract based multi-party computation with privacy preserving and settlement addressed
Rewadkar et al. Cloud storage system enabling secure privacy preserving third party audit
Rehman et al. Securing cloud storage by remote data integrity check with secured key generation
EP3764588A1 (en) Zero-knowledge contingent payments protocol for granting access to encrypted assets
Abraham et al. Proving possession and retrievability within a cloud environment: A comparative survey

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201480005233.9

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14740760

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14758373

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2014557490

Country of ref document: JP

Kind code of ref document: A

REEP Request for entry into the european phase

Ref document number: 2014740760

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2014740760

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE