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

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

Info

Publication number
WO2018135511A1
WO2018135511A1 PCT/JP2018/001135 JP2018001135W WO2018135511A1 WO 2018135511 A1 WO2018135511 A1 WO 2018135511A1 JP 2018001135 W JP2018001135 W JP 2018001135W WO 2018135511 A1 WO2018135511 A1 WO 2018135511A1
Authority
WO
WIPO (PCT)
Prior art keywords
secret
data
calculation
share
secret calculation
Prior art date
Application number
PCT/JP2018/001135
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 EP18741847.0A priority Critical patent/EP3573041A4/en
Priority to US16/475,236 priority patent/US11646880B2/en
Priority to EP22207157.3A priority patent/EP4167213B1/en
Priority to JP2018563352A priority patent/JP6732959B2/ja
Publication of WO2018135511A1 publication Critical patent/WO2018135511A1/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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • 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
    • 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
    • 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

  • This invention relates to a secret calculation technique, and more particularly to a technique for calculating the power of the data while keeping the data secret.
  • Non-Patent Document 1 In order to share and analyze sensitive data, secret computing technology that analyzes data while keeping it secret is being researched.
  • One type is a secret calculation method using a method called secret sharing that divides data into a plurality of fragments called shares.
  • protocols for performing operations such as multiplication, addition, and sorting of secret data have been proposed (see, for example, Non-Patent Document 1 and Non-Patent Document 2).
  • a binary method or the like is usually used to calculate a power (for example, to calculate [a 9 ] from [a]).
  • the binary method is a method of performing a desired power by repeatedly using multiplication. If the procedure for performing multiplication is written as Mult, the binary method calculates [a 9 ] as follows.
  • An object of the present invention is to provide a secret calculation technique capable of performing a power calculation with a small number of communications while keeping data secret in view of the technical problems as described above.
  • the secret calculation method uses GF (p k ) as an extension field of characteristic p and extension order k, and a is an extension field of GF (p k ).
  • the original data [a] as the share of the data a by additive secret sharing, ⁇ as an integer of 2 or more, u, t as 1 or more integers such that t * p u ⁇ ⁇ , 3 or more
  • GF (p k ) is an extension field of characteristic p and extension degree k
  • a is data that is an element of extension field GF (p k )
  • r is extended
  • [a] is a share of data a by additive secret sharing
  • ⁇ a>: ([a], [ra]) is a randomized variance value of data a
  • is an integer of 2 or more
  • u and t are integers of 1 or more satisfying t * p u ⁇ ⁇ , and randomized distribution of data a executed by a secret computing system including three or more secret computing devices
  • a secret calculation method for calculating a random dispersion value ⁇ a ⁇ > : ([a ⁇ ], [ra ⁇ ]) of data a while keeping the data a secret from the value ⁇ a>.
  • FIG. 1 is a diagram illustrating a functional configuration of the secret calculation system according to the first embodiment.
  • FIG. 2 is a diagram illustrating a functional configuration of the secret computing device according to the first embodiment.
  • FIG. 3 is a diagram illustrating a processing procedure of the secret calculation method according to the first embodiment.
  • FIG. 4 is a diagram illustrating a functional configuration of the secret calculation system according to the second embodiment.
  • FIG. 5 is a diagram illustrating a functional configuration of the secret computing device according to the second embodiment.
  • FIG. 6 is a diagram illustrating a processing procedure of the secret calculation method according to the second embodiment.
  • the superscript represents a power
  • ⁇ in the superscript represents a power. That is, a b represents a to the b power, and a b ⁇ c represents a to the b c power.
  • A is called the plaintext of [a].
  • [a] may be referred to as a share of data a or a distributed value.
  • [a] is called the 0th component and [ra] is called the 1st component.
  • ⁇ Replication secret sharing> As the additive secret sharing, a duplicate secret sharing consisting of the following protocols Share and Rec can be used.
  • the Share protocol is a protocol that distributes plain text to a share
  • the Rec protocol is a protocol that restores plain text from the share.
  • it if it has an additive secret sharing property, it can be used even if it is not duplicate secret sharing.
  • the Share protocol is, for example, the following protocol.
  • the Rec protocol is, for example, the following protocol.
  • the Share protocol is, for example, the following protocol.
  • the Rec protocol is, for example, the following protocol.
  • Mult represents an additive secret sharing multiplication. That is, each of the three servers 0, 1, 2 has two shares of additive secret sharing ([a] 0 , [b] 0 ), ([a] 1 , [b] 1 ), ([a ] 2 , [b] 2 ) A protocol that communicates and calculates each other when saved, and finally servers 0, 1, and 2 get [ab] 0 , [ab] 1 , [ab] 2 respectively. is there. Such an operation is expressed as [ab] ⁇ Mult ([a], [b]). Mult can use a known multiplication protocol based on secret computation.
  • Scheme 11 of Non-Patent Document 1 for duplicate secret sharing and Non-Patent Document 2 for modification of duplicate secret sharing.
  • a protocol or the like may be used.
  • Scheme 11 of Non-Patent Document 1 is used as Mult. At this time, the communication round is once every time Mult is called.
  • DoubleMult represents an operation for obtaining a secret text as a result of multiplying each secret text by taking two sets of secret text as inputs. That is, it is a protocol that takes ([a], [a ']) and ([b], [b']) as inputs and outputs ([ab], [a'b ']). Such an operation is written as ([ab], [a'b ']) ⁇ DoubleMult (([a], [a']), ([b], [b '])). DoubleMult can use any known protocol. For example, Non-Patent Document 1 describes such a protocol. At this time, the communication round is once every time DoubleMult is called. It can also be realized by performing Mult twice.
  • the left-hand side of equation (1) is the "power of should target number" of plain text a, the right-hand side share a 0, a 1 of the plaintext a, ..., is the sum of the "power of should target number" of a m-1 .
  • a ': a p ⁇ u
  • we will use the formula (1) It can be seen that the relationship between plaintext and share (a ' a' 0 + a ' 1 + ... + a' m-1 ) holds. That is, when calculating [a p ⁇ u ] from [a], each party only has to put their share on the p u power, and no communication is required.
  • the secret calculation system includes n ( ⁇ 3) secret calculation devices 1 1 ,..., 1 n as illustrated in FIG.
  • the secret computing devices 1 1 ,..., 1 n are each connected to the communication network 3.
  • the communication network 3 is a circuit-switching or packet-switching-type communication network configured so that the secret computing devices 1 1 ,..., 1 n can communicate with each other, for example, the Internet, LAN (Local Area Network), WAN (Wide Area Network) can be used.
  • Each device does not necessarily need to be able to communicate online via the communication network 3.
  • information input to the secret computing device 1 i i ⁇ ⁇ 1,..., N ⁇
  • a portable recording medium such as a magnetic tape or a USB memory, and is input offline from the portable recording medium. It may be configured.
  • the secret calculation device 1 includes an input unit 11, a local calculation unit 12, a secret calculation unit 14, and an output unit 15.
  • the secret calculation device 1 implements the secret calculation method according to the first embodiment by performing the processing of each step illustrated in FIG. 3 in cooperation with other secret calculation devices 1.
  • the secret computing device 1 is, for example, a special computer configured by reading a special program into a known or dedicated computer having a central processing unit (CPU: Central Processing Unit), a main storage device (RAM: Random Access Memory), and the like. Device.
  • the secret computing device 1 executes each process under the control of the central processing unit.
  • the data input to the secret computing device 1 and the data obtained in each process are stored in, for example, the main storage device, and the data stored in the main storage device is read out to the central processing unit as necessary. Used for other processing.
  • At least a part of each processing unit of the secret computing device 1 may be configured by hardware such as an integrated circuit.
  • step S11 the share [a] of the data a to be calculated by additive secret sharing and the exponent ⁇ ( ⁇ 2) when the data a is raised are input to the input unit 11.
  • the share [a] and the index ⁇ are sent to the local calculation unit 12.
  • u and t are integers of 1 or more that satisfy t * p u ⁇ ⁇ .
  • step S13 the secret calculation unit 14 cooperates with other secret calculation devices by a secret calculation to share [a ⁇ ] of the ⁇ -power additive secret sharing of the data a and the ⁇ -additive secret sharing of the data a. Compute the multiplication of the share [a ⁇ ]. That is, [a ⁇ + ⁇ ] ⁇ Mult ([a ⁇ ], [a ⁇ ]) is calculated.
  • ⁇ and ⁇ are integers of 1 or more that satisfy ⁇ + ⁇ ⁇ ⁇ .
  • either [a alpha] and [a beta] is a share through p u-th power of the additive secret sharing of data a t obtained by the local computing unit 12 [a t * p ⁇ u ].
  • the secret calculation unit 14 may be executed a plurality of times in order to obtain a share [a v ] by additive secret sharing of data a to the power of v.
  • step S14 the output unit 15 outputs the share [a v ] when the calculation result of the local arithmetic unit 12 or the secret calculation unit 14 becomes the share [a v ] by the addition of secret secret of the data a to the power of v . To do.
  • the second embodiment is a secret calculation system that enables tampering detection in power calculation by secret calculation.
  • the secret calculation system according to the second embodiment includes n ( ⁇ 3) secret calculation devices 2 1 ,..., 2 n as illustrated in FIG.
  • the secret calculation device 2 includes an input unit 11, a local calculation unit 12, a randomization unit 13, a secret calculation unit 14, and an output unit 15.
  • the secret calculation device 2 performs the process of each step illustrated in FIG. 6 in cooperation with the other secret calculation device 2, whereby the secret calculation method of the second embodiment is realized.
  • a randomized variance value ⁇ a>: ([a], [ra]) by additive secret sharing of the data a to be calculated and a randomized variance value ⁇ a> are generated in the input unit 11.
  • the share [r] of the random number r used at the time by the additive secret sharing and the exponent ⁇ when the data a is raised are input.
  • the randomized variance value ⁇ a>, the share [r], and the index ⁇ are sent to the local calculation unit 12.
  • step S23 the randomizing unit 13 cooperates with other secret calculation devices by secret calculation to share the calculation result [a (t * p ⁇ u) ] of the local calculation unit 12 and the random number r by additive secret sharing.
  • [ra (t * p ⁇ u) ] ⁇ Mult ([a (t * p ⁇ u) ], [r]) is calculated.
  • the randomization variance value of the power of p u of data a t ⁇ a (t*p ⁇ u)>: ( [a (t * p ⁇ u)], [ra (t * p ⁇ u)]) Can be generated.
  • a multiplication with the first component [ra s ] may be calculated. That is, [ra (t * p ⁇ u) + s ] ⁇ Mult ([a (t * p ⁇ u) ], [ra s ]) may be calculated.
  • s is an integer of 1 or more that satisfies t * p u + s ⁇ ⁇ .
  • the above DoubleMult can be used for this multiplication. That is, ⁇ a ⁇ + ⁇ > ⁇ DoubleMult (([a ⁇ ], [a ⁇ ]), ([a ⁇ ], [ra ⁇ ])) is calculated. Further, the above Mult may be executed twice in parallel.
  • the secret calculation unit 14 may be executed a plurality of times in order to obtain a randomized variance value ⁇ a v> by additive secret sharing of data a to the power of v.
  • step S25 when the calculation result of the randomization unit 13 or the secret calculation unit 14 becomes the randomized variance value ⁇ a v> by the additive secret sharing of the data a to the ⁇ power, the output unit 15 outputs the randomized variance value. Output ⁇ a ⁇ > .
  • the first specific example is a protocol for performing a power in a secret calculation on the field GF (2 8 ).
  • a protocol for calculating [a 21 ] from [a] is shown.
  • Mult is 2 times and the number of communication rounds is 2.
  • [a 21 ] is calculated by the binary method, it can be seen that Mult is required six times as in the following protocol, and the number of communication rounds can be greatly reduced.
  • the second specific example is a protocol for obtaining the inverse element in the secret calculation on the field GF (2 8 ).
  • the power protocol in the secret calculation on the field GF (2 8 ) corresponds to tampering detection.
  • random multiplication is performed by Mult after the local calculation.
  • the inverse element protocol in the secret calculation on the field GF (2 8 ) corresponds to tampering detection.
  • random multiplication is performed by Mult after the local calculation.
  • the fifth specific example is a protocol for performing a power in the secret calculation on the field GF (3 3 ).
  • a protocol for calculating [a 10 ] from [a] is shown.
  • Mult is 1 and the number of communication rounds is 1.
  • [a 10 ] is calculated by the binary method, it is understood that Mult is required four times as in the following protocol, and the number of communication rounds can be greatly reduced.
  • the sixth specific example is a protocol for obtaining the inverse element in the secret calculation on the field GF (3 3 ).
  • the seventh specific example corresponds to detection of alteration of the power protocol in the secret calculation on the field GF (3 3 ).
  • random multiplication is performed by Mult after the local calculation.
  • the inverse element protocol in the secret calculation on the field GF (3 3 ) corresponds to tampering detection.
  • random multiplication is performed by Mult after the local calculation.
  • the secret calculation technique of the present invention conceals data by reducing the number of times of communication of the power calculation as a whole by executing exponential powers locally by using the following relational expression on the extension field:
  • the power can be calculated at high speed as it is.
  • inverse element calculation using a power can be performed at high speed.
  • the program describing the processing contents can be recorded on a computer-readable recording medium.
  • a computer-readable recording medium for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.
  • this program is distributed, for example, by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
  • a computer that executes such a program first stores a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, this computer reads the program stored in its own recording medium and executes the 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. Each time, 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 processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good.
  • ASP Application Service Provider
  • the 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)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Power Sources (AREA)

Abstract

少ない通信回数で高速にべき乗計算を行う。3台以上の秘密計算装置を含む秘密計算システムがデータaのシェア[a]からデータaを秘匿したままデータaのν乗のシェア[aν]を計算する。入力部にデータaのシェア[a]と指数νが入力される(ステップS11)。ローカル演算部が、他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算する(ステップS12)。秘密計算部が、他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数がローカル演算部の計算結果[a(t*p^u)]である乗算を計算して、シェア[aν]を求める(ステップS13)。出力部からシェア[aν]を出力する(ステップS14)。

Description

秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム
 この発明は、秘密計算技術に関し、特に、データを秘匿したまま、そのべき乗を計算する技術に関する。
 機微なデータを共有して分析するために、データを秘匿したまま分析する秘密計算技術が研究されている。その一種に、データをシェアと呼ばれる複数の断片に分割する秘密分散と呼ばれる手法を用いた秘密計算方法がある。データを秘匿したまま様々な分析を行うために、秘匿したデータの乗算や加算、ソートなどの演算を行うプロトコルが提案されている(例えば、非特許文献1や非特許文献2参照)。
 データを秘匿したままべき乗を行うことを考える。あるデータaが秘匿されている状態を[a]と書くとすると、べき乗を計算したい場合(例えば、[a]から[a9]を計算したい場合)は、通常バイナリ法などが用いられる。バイナリ法は乗算を繰り返し用いて所望のべき乗を行う手法である。乗算を行う手続きをMultと書くとすると、バイナリ法では、以下のようにして[a9]を計算する。
   1. [a2]←Mult([a], [a])
   2. [a4]←Mult([a2], [a2])
   3. [a8]←Mult([a4], [a4])
   4. [a9]←Mult([a8], [a])
Dai Ikarashi, Ryo Kikuchi, Koki Hamada, and Koji Chida, "Actively private and correct MPC scheme in t<n/2 from passively secure schemes with small overhead", IACR Cryptology ePrint Archive, vol. 2014, p. 304, 2014. Toshinori Araki, Jun Furukawa, Yehuda Lindell, Ariel Nof, and Kazuma Ohara. "High-Throughput Semi-Honest Secure Three-Party Computation with an Honest Majority", ACM CCS 2016.
 バイナリ法でべき乗を行うと、m乗を行うためにO(log m)回の乗算が必要である。秘密計算では乗算に通信が必要となりパフォーマンスのボトルネックとなるため、より少ない乗算の呼び出し回数でべき乗を行えることが望ましい。
 この発明の目的は、上述のような技術的課題を鑑みて、データを秘匿したまま少ない通信回数でべき乗計算を行うことができる秘密計算技術を提供することである。
 上記の課題を解決するために、この発明の第一の態様の秘密計算方法は、GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、[a]をデータaの加法的秘密分散によるシェアとし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、3台以上の秘密計算装置を含む秘密計算システムが実行する、データaのシェア[a]からデータaを秘匿したままデータaのν乗のシェア[aν]を計算する秘密計算方法であって、秘密計算装置のローカル演算部が、他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算し、秘密計算装置の秘密計算部が、他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数がローカル演算部の計算結果[a(t*p^u)]である乗算を計算して、シェア[aν]を求める。
 この発明の第二の態様の秘密計算方法は、GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、rを拡大体GF(pk)の元である乱数とし、[a]をデータaの加法的秘密分散によるシェアとし、<a>:=([a], [ra])をデータaのランダム化分散値とし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、3台以上の秘密計算装置を含む秘密計算システムが実行する、データaのランダム化分散値<a>からデータaを秘匿したままデータaのν乗のランダム化分散値<aν>:=([aν], [raν])を計算する秘密計算方法であって、秘密計算装置のローカル演算部が、他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算し、秘密計算装置のランダム化部が、他の秘密計算装置との通信を要する秘密計算により、ローカル演算部の計算結果[a(t*p^u)]と乱数rのシェア[r]との乗算を計算して、ローカル演算部の計算結果のランダム化分散値<a(t*p^u)>:=([a(t*p^u)], [ra(t*p^u)])を求め、秘密計算装置の秘密計算部が、他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数がローカル演算部の計算結果のランダム化分散値<a(t*p^u)>である乗算を計算して、ランダム化分散値<aν>を求める。
 この発明によれば、データを秘匿したままべき乗計算を行う際に一部の演算をローカルで行うため、少ない通信回数で高速にべき乗計算を行うことができる。
図1は、第一実施形態の秘密計算システムの機能構成を例示する図である。 図2は、第一実施形態の秘密計算装置の機能構成を例示する図である。 図3は、第一実施形態の秘密計算方法の処理手続きを例示する図である。 図4は、第二実施形態の秘密計算システムの機能構成を例示する図である。 図5は、第二実施形態の秘密計算装置の機能構成を例示する図である。 図6は、第二実施形態の秘密計算方法の処理手続きを例示する図である。
 以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
 <表記方法>
 上付き添え字はべき乗を表し、上付き添え字における^はべき乗を表す。すなわち、abはaのb乗を表し、ab^cはaのbc乗を表す。
 あるデータaを暗号化や秘密分散などにより秘匿化したデータをaの秘匿文と呼び、[a]と表記する。また、aを[a]の平文と呼ぶ。秘匿化が秘密分散である場合、[a]をデータaのシェアまたは分散値と呼ぶこともある。
 データaのランダム化分散値を<a>と表記する。ランダム化分散値とは、データaのシェア[a]と、データaと乱数rとの積算値raのシェア[ra]との組である。したがって、データaのランダム化分散値<a>は、<a>:=([a], [ra])と定義できる。ランダム化分散値<a>:=([a], [ra])のうち、[a]を第0成分と呼び、[ra]を第1成分と呼ぶ。ランダム化分散値による改ざん検知対応については、非特許文献1を参照されたい。
 データやシェアの属する体をGF(pk)とし、これ以降、演算は全てGF(pk)上で行われるものとする。pは標数と呼び、kは拡大次数と呼ぶ。例えば、a, b∈GF(7)ならば、a+bはaとbを足し合わせてmod 7を取ったものである。a, b∈GF(28)ならば、a+bはaとbをビット表現した際のビット毎の排他的論理和である。
 <加法的秘密分散>
 加法的秘密分散とは、データaを次式のように、複数のシェアai(i=0, 1, …, m-1)の和および差に分割し、分散および復元が加減算のみで構成される秘密分散方法である。
Figure JPOXMLDOC01-appb-M000001
 加法的秘密分散では、いくつかのサーバが集まり、m個のシェアa0, a1, …, am-1すべてが得られれば元のデータaが復元でき、シェアa0, a1, …, am-1のうち一つでも得られないものがあれば元のデータaを復元することができない。
 <複製秘密分散>
 加法的秘密分散として、下記に示すプロトコルShareおよびRecからなる複製秘密分散を用いることができる。なお、Shareプロトコルは平文をシェアに分散するプロトコルであり、Recプロトコルはシェアから平文を復元するプロトコルである。ただし、この発明では加法的秘密分散の性質を有していれば複製秘密分散でなくても用いることができる。
 データaのシェア全体を[a]とし、シェア[a]のうちサーバiが持つシェアを[a]iと書くものとする。データaを3台のサーバ0, 1, 2に分散する際には、下記のShareプロトコルに従って、データaをあらかじめa0, a1, a2に分割し、サーバ0, 1, 2にそれぞれ[a]0:=(a0,a1), [a]1:=(a1, a2), [a]2:=(a2, a0)を保存する。データaを復元する際には、下記のRecプロトコルに従って、シェア[a]0, [a]1, [a]2のうち少なくとも2つを集めてa0, a1, a2を取得し、それらを加算してデータaを計算する。
 Shareプロトコルは、例えば、以下のようなプロトコルである。
   Input: a
   Output: ([a]0, [a]1, [a]2)
   1. a1, a2←GF(pk)
   2. a0:=a-(a1+a2)
   3. [a]i:=(ai, ai+1 mod 3) for i∈{0, 1, 2}
   4. return ([a]0, [a]1, [a]2)
 Recプロトコルは、例えば、以下のようなプロトコルである。
   Input: [a]i0, [a]i1 (i0, i1∈{0, 1, 2})
   Output: a
   1. Obtain a0, a1, a2from [a]i0, [a]i1
   2. return a:=a0+a1+a2
 <複製秘密分散の変形>
 複製秘密分散の変形として、以下のような秘密分散も用いることができる。
 Shareプロトコルは、例えば、以下のようなプロトコルである。
   Input: a
   Output: ([a]0, [a]1, [a]2)
   1. a1, a2←GF(pk)
   2. a0:=-(a1+a2)
   3. [a]i:=(ai, ai-1 mod 3- a) for i∈{0, 1, 2}
   4. return ([a]0, [a]1, [a]2)
 Recプロトコルは、例えば、以下のようなプロトコルである。
   Input: [a]i0, [a]i1 (i0, i1∈{0, 1, 2})
   Output: a
   1. Obtain ai mod 3, ai+1 mod 3, (ai+2 mod 3-a) from [a]i0, [a]i1 for some i ∈{0, 1, 2}
   2. return a:=-(a0+a1+a2)
 <演算の定義>
 Multは、加法的秘密分散の乗算を表す。すなわち、3台のサーバ0, 1, 2にそれぞれ加法的秘密分散のシェアが2つずつ([a]0, [b]0), ([a]1, [b]1), ([a]2, [b]2)保存されているとき、互いに通信および計算を行い、最終的にサーバ0, 1, 2がそれぞれ[ab]0, [ab]1, [ab]2を得るプロトコルである。また、このような演算を[ab]←Mult([a], [b])と表記する。Multは、公知の秘密計算による乗算プロトコルを用いることができ、例えば、複製秘密分散に対しては非特許文献1のScheme 11に記載されたプロトコル、複製秘密分散の変形には非特許文献2のプロトコルなどを用いればよい。以下の実施形態では、Multとして非特許文献1のScheme 11を用いることとする。このとき通信ラウンドはMultを呼び出すたびに1回である。
 LocalExpは、各サーバが自身の所有するシェアをべき乗する演算を表す。すなわち、サーバ0, 1, 2にそれぞれ[a]0=(a0, a1), [a]1=(a1, a2), [a]2=(a2, a0)が保存されているとき、サーバ0, 1, 2がそれぞれ[au]0=(au 0, au 1), [au]1=(au 1, au 2), [au]2=(au 2,au 0)を計算するプロトコルである。また、このような演算を[au]:=LocalExp([a], u)と書く。LocalExpは、ローカルに保持している値のべき乗を計算するだけであるため、他のサーバとの通信は発生しない。
 DoubleMultは、秘匿文の2つの組を入力とし、各秘匿文同士を乗算した結果の秘匿文を得る演算を表す。すなわち、([a], [a'])と([b], [b'])とを入力とし、([ab], [a'b'])を出力するプロトコルである。また、このような演算を([ab], [a'b'])←DoubleMult(([a],[a']), ([b], [b']))と書く。DoubleMultは、任意の公知のプロトコルを用いることができ、例えば、非特許文献1にこのようなプロトコルが記載されている。このとき通信ラウンドはDoubleMultを呼び出すたびに1回である。また、Multを2回行うことで実現することも可能である。すなわち、[ab]←Mult([a], [b]), [a'b']←Mult([a'], [b'])を計算してもよい。このとき2回のMultは並列で実行できるため、通信ラウンドはDoubleMultと同様に1回である。
 <発明の原理>
 この発明では、フロベニウス自己準同型という性質を利用する。これは、任意のu∈Z(ただし、Zは整数の集合)に対し、GF(pu)上で次式の関係が成り立つことである。
Figure JPOXMLDOC01-appb-M000002
 ここでは簡単のため、
Figure JPOXMLDOC01-appb-M000003
とするが、
Figure JPOXMLDOC01-appb-M000004
のように符号のプラスマイナスが任意であっても成立する。
 この関係を加法的秘密分散の平文とシェアとの関係(a=a0+a1+…+am-1)に適用すると、次式の関係が成り立つ。
Figure JPOXMLDOC01-appb-M000005
 式(1)の左辺は平文aの「標数べきのべき乗」であり、右辺は平文aのシェアa0, a1, …, am-1の「標数べきのべき乗」の和である。ここで、a':=ap^uと定義し、i=0, …, m-1についてa'i:=ai p^uと定義すれば、式(1)にて加法的秘密分散の平文とシェアの関係(a'=a'0+a'1+…+a'm-1)が成り立っていることがわかる。すなわち、[a]から[ap^u]を計算するときは、各パーティが自身のシェアをpu乗すればよく、一切の通信を必要としない。
 この手法を用いることで、任意の数のべき乗についても高速化が可能である。例えば、GF(28)で[a]から[a96]を計算したい場合、下記のように[a64]=[a2^6]と[a32]=[a2^5]をローカルで計算し、Mult([a64], [a32])を行えば[a96]が得られる。これに必要な通信回数はMult演算の1回である。
   1. [a64]:=LocalExp([a], 26)
   2. [a32]:=LocalExp([a], 25)
   3. [a96]←Mult([a64], [a32])
 一方、従来のバイナリ法では、以下のようにMult演算を7回行うため、大幅な高速化になっている。
   1. [a2]←Mult([a], [a])
   2. [a4]←Mult([a2], [a2])
   3. [a8]←Mult([a4], [a4])
   4. [a16]←Mult([a8], [a8])
   5. [a32]←Mult([a16], [a16])
   6. [a64]←Mult([a32], [a32])
   7. [a96]←Mult([a64], [a32])
 <改ざん検知対応>
 加法的秘密分散によるシェア[a]から標数べきのべき乗[ap^u]を計算するときは、各パーティが自身のシェアをpu乗すればよいことを確認した。しかしながら、秘密計算において改ざんを行おうとする攻撃者を想定し、非特許文献1に記載された改ざん検知対応の手法を用いた場合、各パーティが持つシェアは、加法的秘密分散のシェア[a]とランダム化シェア[ra]との組であるランダム化分散値<a>:=([a], [ra])となる。また、それとは別に、乱数を加法的秘密分散で分散したシェア[r]も持つことになる。
 改ざんを行おうとする攻撃者を想定した際の標数べきのべき乗の入出力は、入力が<a>:=([a], [ra])であり、出力が<ap^u>:=([ap^u], [rap^u])である。上述の標数べきのべき乗を素直にランダム化シェア[ra]に適用してしまうと、第1成分が[rap^u]ではなく[(ra)p^u]=[rp^uap^u]となってしまい、所望の出力が得られない。そのため、ランダム化シェア[ra]には標数べきのべき乗を行わず、[a]に対して標数べきのべき乗を行い、[ap^u]を得た後に[r]を乗じて[rap^u]を求める。すなわち、<a>=([a], [ra])から<ap^u>=([ap^u],[rap^u])を求めるときは、[a]をpu乗して[ap^u]を求めた後に、Mult([ap^u], [r])を行い、[rap^u]を得る。
 <第一実施形態>
 第一実施形態の秘密計算システムは、図1に例示するように、n(≧3)台の秘密計算装置11, …, 1nを含む。秘密計算装置11, …, 1nはそれぞれ通信網3へ接続される。通信網3は、秘密計算装置11, …, 1nがそれぞれと通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網であり、例えばインターネットやLAN(Local Area Network)、WAN(Wide Area Network)などを用いることができる。なお、各装置は必ずしも通信網3を介してオンラインで通信可能である必要はない。例えば、秘密計算装置1i(i∈{1, …, n})へ入力する情報を磁気テープやUSBメモリなどの可搬型記録媒体に記憶し、その可搬型記録媒体からオフラインで入力するように構成してもよい。
 秘密計算装置1は、図2に例示するように、入力部11、ローカル演算部12、秘密計算部14、および出力部15を含む。この秘密計算装置1が、他の秘密計算装置1と協調して図3に例示する各ステップの処理を行うことにより第一実施形態の秘密計算方法が実現される。
 秘密計算装置1は、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。秘密計算装置1は、例えば、中央演算処理装置の制御のもとで各処理を実行する。秘密計算装置1に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。秘密計算装置1の各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
 以下、図3を参照して、第一実施形態の秘密計算方法の処理手続きを説明する。
 ステップS11において、入力部11へ、演算対象のデータaの加法的秘密分散によるシェア[a]と、データaをべき乗する際の指数ν(≧2)とが入力される。シェア[a]および指数νはローカル演算部12へ送られる。
 ステップS12において、ローカル演算部12は、他の秘密計算装置と通信を行わずに、データaのt乗の加法的秘密分散のシェア[at]の標数べきのべき乗puを計算し、データatのpu乗の加法的秘密分散によるシェア[at*p^u]を求める。すなわち、[at*p^u]:=LocalExp([at], pu)を計算する。ここで、u, tはt*pu≦νとなる1以上の整数である。ローカル演算部12は、データaのν乗の加法的秘密分散によるシェア[aν]を求めるために複数回実行されることがあるが、少なくとも1回目の実行時には、t=1となり、データaの加法的秘密分散によるシェア[a]のpu乗を計算する。
 ステップS13において、秘密計算部14は、秘密計算により他の秘密計算装置と協調して、データaのα乗の加法的秘密分散のシェア[aα]とデータaのβ乗の加法的秘密分散のシェア[aβ]との乗算を計算する。すなわち、[aα+β]←Mult([aα], [aβ])を計算する。ここで、α, βはα+β≦νとなる1以上の整数である。[aα]および[aβ]のいずれかは、ローカル演算部12により求めたデータatのpu乗の加法的秘密分散によるシェア[at*p^u]である。すなわち、α=t*puもしくはβ=t*puである。秘密計算部14は、データaのν乗の加法的秘密分散によるシェア[aν]を求めるために複数回実行されることがある。
 ステップS14において、出力部15は、ローカル演算部12または秘密計算部14の計算結果がデータaのν乗の加法的秘密分散によるシェア[aν]となったら、そのシェア[aν]を出力する。
 <第二実施形態>
 第二実施形態は、秘密計算によるべき乗計算において、改ざん検知を可能とする秘密計算システムである。第二実施形態の秘密計算システムは、図4に例示するように、n(≧3)台の秘密計算装置21, …, 2nを含む。
 秘密計算装置2は、図5に例示するように、入力部11、ローカル演算部12、ランダム化部13、秘密計算部14、および出力部15を含む。この秘密計算装置2が、他の秘密計算装置2と協調して図6に例示する各ステップの処理を行うことにより第二実施形態の秘密計算方法が実現される。
 以下、図6を参照して、第二実施形態の秘密計算方法の処理手続きを説明する。
 ステップS21において、入力部11へ、演算対象のデータaの加法的秘密分散によるランダム化分散値<a>:=([a], [ra])と、ランダム化分散値<a>を生成する際に用いた乱数rの加法的秘密分散によるシェア[r]と、データaをべき乗する際の指数νとが入力される。ランダム化分散値<a>、シェア[r]、および指数νはローカル演算部12へ送られる。
 ステップS22において、ローカル演算部12は、他の秘密計算装置と通信を行わずに、データaのt乗の加法的秘密分散のシェア[at]の標数べきのべき乗puを計算し、データatのpu乗の加法的秘密分散によるシェア[at*p^u]を求める。すなわち、[at*p^u]:=LocalExp([at], pu)を計算する。シェア[at*p^u]はランダム化部13へ送られる。
 ステップS23において、ランダム化部13は、秘密計算により他の秘密計算装置と協調して、ローカル演算部12の計算結果[a(t*p^u)]と乱数rの加法的秘密分散によるシェア[r]との乗算を計算する。すなわち、[ra(t*p^u)]←Mult([a(t*p^u)], [r])を計算する。これにより、データatのpu乗のランダム化分散値<a(t*p^u)>:=([a(t*p^u)], [ra(t*p^u)])を生成することができる。また、ランダム化部13は、ローカル演算部12の計算結果[a(t*p^u)]と他のランダム化分散値<as>:=([as], [ras])の第1成分[ras]との乗算を計算してもよい。すなわち、[ra(t*p^u)+s]←Mult([a(t*p^u)], [ras])を計算してもよい。ここで、sはt*pu+s≦νとなる1以上の整数である。このとき同時に、秘密計算部14がローカル演算部12の計算結果[a(t*p^u)+s]と他のランダム化分散値<as>:=([as], [ras])の第0成分[as]との乗算[a(t*p^u)+s]←Mult([a(t*p^u)], [as])を計算することで、データatのpu乗とデータasとの乗算のランダム化分散値<a(t*p^u)+s>:=([a(t*p^u)+s], [ra(t*p^u)+s])を生成することができる。
 ステップS24において、秘密計算部14は、秘密計算により他の秘密計算装置と協調して、データaのα乗の加法的秘密分散のランダム化分散値<aα>:=([aα], [raα])とデータaのβ乗の加法的秘密分散のランダム化分散値<aβ>:=([aβ], [raβ])との乗算を計算する。この乗算には、上記のDoubleMultを用いることができる。すなわち、<aα+β>←DoubleMult(([aα], [aα]), ([aβ], [raβ]))を計算する。また、上記のMultを2回並列で実行してもよい。すなわち、[aα+β]←Mult([aα], [aβ])と、[raα+β]←Mult([aα], [raβ])とを計算し、[aα+β]と[raα+β]とを組み合わせて<aα+β>:=([aα+β], [raα+β])を生成する。<aα>および<aβ>のいずれかは、ランダム化部13により求めたデータatのpu乗の加法的秘密分散によるランダム化分散値<at*p^u>である。すなわち、α=t*puもしくはβ=t*puである。秘密計算部14は、データaのν乗の加法的秘密分散によるランダム化分散値<aν>を求めるために複数回実行されることがある。
 ステップS25において、出力部15は、ランダム化部13または秘密計算部14の計算結果がデータaのν乗の加法的秘密分散によるランダム化分散値<aν>となったら、そのランダム化分散値<aν>を出力する。
 <具体例>
 以下、上述の実施形態により実現される具体的なプロトコルを示す。以下の具体例は3パーティによる秘密計算を想定しているが、この発明の秘密計算技術は3パーティの秘密計算に限られるものではない。また、以下の具体例では、GF(28)およびGF(33)の例を示すが、標数は2, 3に限られるものではなく、拡大次数は8, 3に限られるものではない。
 第一の具体例は、体GF(28)上の秘密計算において、べき乗を行うプロトコルである。ここでは、[a]から[a21]を計算するプロトコルを示す。
   Input: [a]
   Output: [a21]
   1. [a16]:=LocalExp([a], 24)
   2. [a4]:=LocalExp([a], 22)
   3. [a20]←Mult([a16], [a4])
   4. [a21]←Mult([a20], [a1])
   5. return [a21]
 上記のプロトコルではMultが2回であり、通信ラウンド数は2である。一方、[a21]をバイナリ法で計算した場合、下記のプロトコルのとおり、Multが6回必要であり、通信ラウンド数が大幅に削減できていることがわかる。
   Input: [a]
   Output: [a21]
   1. [a2]←Mult([a], [a])
   2. [a4]←Mult([a2], [a2])
   3. [a5]←Mult([a4], [a])
   4. [a10]←Mult([a5], [a5])
   5. [a20]←Mult([a10], [a10])
   6. [a21]←Mult([a20], [a])
   7. return [a21]
 第二の具体例は、体GF(28)上の秘密計算において、逆元を求めるプロトコルである。ここでは、[a]の逆元[a-1]を計算するプロトコルを示す。フェルマーの小定理により、[a-1]=[a254]であるから、逆元を求めることは254乗を計算することと同義である。
   Input: [a]
   Output: [a-1]=[a254]
   1. [a2]:=LocalExp([a], 2)
   2. [a3]←Mult([a2], [a])
   3. [a12]:=LocalExp([a3], 22)
   4. [a15]←Mult([a12], [a3])
   5. [a14]←Mult([a12], [a2])
   6. [a240]:=LocalExp([a15], 24)
   7. [a254]←Mult([a240], [a14])
   8. return [a254]
 上記のプロトコルでは4行目と5行目を並列で実行できるため、通信ラウンド数は3である。一方、[a-1]をバイナリ法で計算した場合、下記のプロトコルのとおり、Multが13回必要であり、通信ラウンド数が大幅に削減できていることがわかる。
   Input: [a]
   Output: [a-1]=[a254]
   1. [a2]←Mult([a], [a])
   2. [a3]←Mult([a2], [a])
   3. [a6]←Mult([a3], [a3])
   4. [a7]←Mult([a6], [a])
   5. [a14]←Mult([a7], [a7])
   6. [a15]←Mult([a14], [a])
   7. [a30]←Mult([a30], [a30])
   8. [a31]←Mult([a30], [a])
   9. [a62]←Mult([a32], [a32])
   10. [a63]←Mult([a62], [a])
   11. [a126]←Mult([a63], [a63])
   12. [a127]←Mult([a126], [a])
   13. [a254]←Mult([a127], [a127])
   14. return [a254]
 第三の具体例は、体GF(28)上の秘密計算におけるべき乗プロトコルを改ざん検知に対応したものである。ここでは、<a>=([a], [ra])から<a21>=([a21], [ra21])を計算するプロトコルを示す。下記のプロトコルでは、ランダム化シェアのべき乗を避けるために、ローカル演算の後に乱数の乗算をMultにより行っている。
   Input: <a>=([a], [ra]), [r]
   Output: <a21>=([a21], [ra21])
   1. [a16]:=LocalExp([a], 24)
   2. [a4]:=LocalExp([a], 22)
   3. [ra4]←Mult([a4], [r])
   4. ([a20], [ra20])←DoubleMult(([a16], [a16]), ([a4], [ra4]))
   5. ([a21], [ra21])←DoubleMult(([a], [a]), ([a20], [ra20]))
   6. return <a21>=([a21], [ra21])
 第四の具体例は、体GF(28)上の秘密計算における逆元プロトコルを改ざん検知に対応したものである。ここでは、<a>=([a], [ra])の逆元<a-1>=<a254>=([a254], [ra254])を計算するプロトコルを示す。下記のプロトコルでは、ランダム化シェアのべき乗を避けるために、ローカル演算の後に乱数の乗算をMultにより行っている。
   Input: <a>=([a], [ra]), [r]
   Output: <a-1>=<a254>=([a254], [ra254])
   1. [a2]:=LocalExp([a], 2)
   2. [ra2]←Mult([a2], [r])
   3. ([a3], [ra3])←DoubleMult(([a], [a]), ([a2], [ra2]))
   4. [a12]:=LocalExp([a3], 22)
   5. ([a15], [ra15])←DoubleMult(([a12], [a12]), ([a3], [ra3]))
   6. ([a14], [ra14])←DoubleMult(([a12], [a12]), ([a2], [ra2]))
   7. [a240]:=LocalExp([a15], 24)
   8. ([a254], [ra254])←DoubleMult(([a240], [a240]), ([a14], [ra14]))
   9. return <a254>=([a254], [ra254])
 第五の具体例は、体GF(33)上の秘密計算において、べき乗を行うプロトコルである。ここでは、[a]から[a10]を計算するプロトコルを示す。
   Input: [a]
   Output: [a10]
   1. [a9]:=LocalExp([a], 32)
   2. [a10]←Mult([a9], [a])
   3. return [a10]
 上記のプロトコルではMultが1回であり、通信ラウンド数は1である。一方、[a10]をバイナリ法で計算した場合、下記のプロトコルのとおり、Multが4回必要であり、通信ラウンド数が大幅に削減できていることがわかる。
   Input: [a]
   Output: [a10]
   1. [a2]←Mult([a], [a])
   2. [a4]←Mult([a2], [a2])
   3. [a5]←Mult([a4], [a])
   4. [a10]←Mult([a5], [a5])
   5. return [a10]
 第六の具体例は、体GF(33)上の秘密計算において、逆元を求めるプロトコルである。ここでは、[a]の逆元[a-1]を計算するプロトコルを示す。フェルマーの小定理により、[a-1]=[a25]であるから、逆元を求めることは25乗を計算することと同義である。
   Input: [a]
   Output: [a-1]=[a25]
   1. [a9]:=LocalExp([a], 32)
   2. [a3]:=LocalExp([a], 3)
   2. [a12]←Mult([a9], [a3])
   4. [a24]←Mult([a12], [a12])
   5. [a25]←Mult([a24], [a])
   8. return [a25]
 上記のプロトコルではMultが3回であり、並列で行うこともできないため、通信ラウンド数は3である。一方、[a-1]をバイナリ法で計算した場合、下記のプロトコルのとおり、Multが6回必要であり、通信ラウンド数が大幅に削減できていることがわかる。
   Input: [a]
   Output: [a-1]=[a25]
   1. [a2]←Mult([a], [a])
   2. [a3]←Mult([a2], [a])
   3. [a6]←Mult([a3], [a3])
   4. [a12]←Mult([a6], [a6])
   5. [a24]←Mult([a12], [a12])
   6. [a25]←Mult([a24], [a])
   7. return [a25]
 第七の具体例は、体GF(33)上の秘密計算におけるべき乗プロトコルを改ざん検知に対応したものである。ここでは、<a>=([a], [ra])から<a10>=([a10], [ra10])を計算するプロトコルを示す。下記のプロトコルでは、ランダム化シェアのべき乗を避けるために、ローカル演算の後に乱数の乗算をMultにより行っている。
   Input: <a>=([a], [ra]), [r]
   Output: <a10>=([a10], [ra10])
   1. [a9]:=LocalExp([a], 32)
   2. ([a10], [ra10])←DoubleMult(([a9], [a9]), ([a], [ra]))
   3. return <a10>=([a10], [ra10])
 第八の具体例は、体GF(33)上の秘密計算における逆元プロトコルを改ざん検知に対応したものである。ここでは、<a>=([a], [ra])の逆元<a-1>=<a25>=([a25], [ra25])を計算するプロトコルを示す。下記のプロトコルでは、ランダム化シェアのべき乗を避けるために、ローカル演算の後に乱数の乗算をMultにより行っている。
   Input: <a>=([a], [ra]), [r]
   Output: <a-1>=<a25>=([a25], [ra25])
   1. [a9]:=LocalExp([a], 32)
   2. [a3]:=LocalExp([a], 3)
   3. [ra3]←Mult([a3], [r])
   4. ([a12], [ra12])←DoubleMult(([a9], [a9]), ([a3], [ra3]))
   5. ([a24], [ra24])←DoubleMult(([a12], [a12]), ([a12], [ra12]))
   6. ([a25], [ra25])←DoubleMult(([a24], [a24]), ([a], [ra]))
   7. return <a25>=([a25], [ra25])
 この発明の秘密計算技術は、拡大体上の以下の関係式を利用して、標数べきのべき乗をローカルで実行することで、べき乗計算全体の通信回数を削減したことにより、データを秘匿したまま高速にべき乗を計算することが可能となる。また、この技術を応用することで、べき乗を用いる逆元計算も高速に行うことが可能となる。
Figure JPOXMLDOC01-appb-M000006
 以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
 [プログラム、記録媒体]
 上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
 この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
 また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
 また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (7)

  1.  GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、[a]をデータaの加法的秘密分散によるシェアとし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、
     3台以上の秘密計算装置を含む秘密計算システムが実行する、データaのシェア[a]からデータaを秘匿したままデータaのν乗のシェア[aν]を計算する秘密計算方法であって、
     上記秘密計算装置のローカル演算部が、他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算し、
     上記秘密計算装置の秘密計算部が、他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数が上記ローカル演算部の計算結果[a(t*p^u)]である乗算を計算して、上記シェア[aν]を求める、
     秘密計算方法。
  2.  GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、rを拡大体GF(pk)の元である乱数とし、[a]をデータaの加法的秘密分散によるシェアとし、<a>:=([a], [ra])をデータaのランダム化分散値とし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、
     3台以上の秘密計算装置を含む秘密計算システムが実行する、データaのランダム化分散値<a>からデータaを秘匿したままデータaのν乗のランダム化分散値<aν>:=([aν], [raν])を計算する秘密計算方法であって、
     上記秘密計算装置のローカル演算部が、他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算し、
     上記秘密計算装置のランダム化部が、他の秘密計算装置との通信を要する秘密計算により、上記ローカル演算部の計算結果[a(t*p^u)]と上記乱数rのシェア[r]との乗算を計算して、上記ローカル演算部の計算結果のランダム化分散値<a(t*p^u)>:=([a(t*p^u)], [ra(t*p^u)])を求め、
     上記秘密計算装置の秘密計算部が、他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数が上記ローカル演算部の計算結果のランダム化分散値<a(t*p^u)>である乗算を計算して、上記ランダム化分散値<aν>を求める、
     秘密計算方法。
  3.  GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、[a]をデータaの加法的秘密分散によるシェアとし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、
     3台以上の秘密計算装置を含み、データaのシェア[a]からデータaを秘匿したままデータaのν乗のシェア[aν]を計算する秘密計算システムであって、
     上記秘密計算装置は、
     他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算するローカル演算部と、
     他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数が上記ローカル演算部の計算結果[a(t*p^u)]である乗算を計算して、上記シェア[aν]を求める秘密計算部と、
     を含む秘密計算システム。
  4.  GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、rを拡大体GF(pk)の元である乱数とし、[a]をデータaの加法的秘密分散によるシェアとし、<a>:=([a], [ra])をデータaのランダム化分散値とし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、
     3台以上の秘密計算装置を含み、データaのランダム化分散値<a>からデータaを秘匿したままデータaのν乗のランダム化分散値<aν>:=([aν], [raν])を計算する秘密計算システムであって、
     上記秘密計算装置は、
     他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算するローカル演算部と、
     他の秘密計算装置との通信を要する秘密計算により、上記ローカル演算部の計算結果[a(t*p^u)]と上記乱数rのシェア[r]との乗算を計算して、上記ローカル演算部の計算結果のランダム化分散値<a(t*p^u)>:=([a(t*p^u)], [ra(t*p^u)])を求めるランダム化部と、
     他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数が上記ローカル演算部の計算結果のランダム化分散値<a(t*p^u)>である乗算を計算して、上記ランダム化分散値<aν>を求める秘密計算部と、
     を含む秘密計算システム。
  5.  GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、[a]をデータaの加法的秘密分散によるシェアとし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、
     データaのシェア[a]からデータaを秘匿したままデータaのν乗のシェア[aν]を計算する秘密計算システムに含まれる秘密計算装置であって、
     他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算するローカル演算部と、
     他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数が上記ローカル演算部の計算結果[a(t*p^u)]である乗算を計算して、上記シェア[aν]を求める秘密計算部と、
     を含む秘密計算装置。
  6.  GF(pk)を標数pかつ拡大次数kの拡大体とし、aを拡大体GF(pk)の元であるデータとし、rを拡大体GF(pk)の元である乱数とし、[a]をデータaの加法的秘密分散によるシェアとし、<a>:=([a], [ra])をデータaのランダム化分散値とし、νを2以上の整数とし、u, tをt*pu≦νとなる1以上の整数とし、
     データaのランダム化分散値<a>からデータaを秘匿したままデータaのν乗のランダム化分散値<aν>:=([aν], [raν])を計算する秘密計算システムに含まれる秘密計算装置であって、
     他の秘密計算装置と通信せずに、データaのt乗のシェア[at]のpu乗を計算するローカル演算部と、
     他の秘密計算装置との通信を要する秘密計算により、上記ローカル演算部の計算結果[a(t*p^u)]と上記乱数rのシェア[r]との乗算を計算して、上記ローカル演算部の計算結果のランダム化分散値<a(t*p^u)>:=([a(t*p^u)], [ra(t*p^u)])を求めるランダム化部と、
     他の秘密計算装置との通信を要する秘密計算により、少なくとも一方の数が上記ローカル演算部の計算結果のランダム化分散値<a(t*p^u)>である乗算を計算して、上記ランダム化分散値<aν>を求める秘密計算部と、
     を含む秘密計算装置。
  7.  請求項5または6に記載の秘密計算装置としてコンピュータを機能させるためのプログラム。
PCT/JP2018/001135 2017-01-18 2018-01-17 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム WO2018135511A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP18741847.0A EP3573041A4 (en) 2017-01-18 2018-01-17 METHOD FOR SAFE CALCULATION, SYSTEM FOR SAFE CALCULATION, DEVICE FOR SAFE CALCULATION AND PROGRAM
US16/475,236 US11646880B2 (en) 2017-01-18 2018-01-17 Secret computation method, secret computation system, secret computation apparatus, and program
EP22207157.3A EP4167213B1 (en) 2017-01-18 2018-01-17 Secret computation method, secret computation system, secret computation apparatus, and program
JP2018563352A JP6732959B2 (ja) 2017-01-18 2018-01-17 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-006355 2017-01-18
JP2017006355 2017-01-18

Publications (1)

Publication Number Publication Date
WO2018135511A1 true WO2018135511A1 (ja) 2018-07-26

Family

ID=62908607

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/001135 WO2018135511A1 (ja) 2017-01-18 2018-01-17 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム

Country Status (4)

Country Link
US (1) US11646880B2 (ja)
EP (2) EP3573041A4 (ja)
JP (1) JP6732959B2 (ja)
WO (1) WO2018135511A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020152831A1 (ja) * 2019-01-24 2020-07-30 日本電気株式会社 情報処理装置、秘密計算方法及びプログラム
WO2022044173A1 (ja) * 2020-08-26 2022-03-03 日本電気株式会社 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110800034B (zh) * 2017-07-05 2023-05-02 日本电信电话株式会社 秘密计算系统、秘密计算装置、秘密计算方法、程序以及记录介质
CN114448630B (zh) * 2022-04-07 2022-06-14 华控清交信息科技(北京)有限公司 一种多方安全计算方法、系统和用于多方安全计算的装置
CN114448631B (zh) * 2022-04-07 2022-06-07 华控清交信息科技(北京)有限公司 一种多方安全计算方法、系统和用于多方安全计算的装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016104476A1 (ja) * 2014-12-26 2016-06-30 日本電信電話株式会社 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4975867A (en) * 1987-06-26 1990-12-04 Digital Equipment Corporation Apparatus for dividing elements of a Galois Field GF (2QM)
US6038581A (en) * 1997-01-29 2000-03-14 Nippon Telegraph And Telephone Corporation Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
JP3560860B2 (ja) * 1999-07-23 2004-09-02 株式会社東芝 秘密分散システム、装置及び記憶媒体
FR2807898B1 (fr) * 2000-04-18 2002-06-28 Gemplus Card Int Procede de cryptographie sur courbes elliptiques
FR2822002B1 (fr) * 2001-03-12 2003-06-06 France Telecom Authentification cryptographique par modules ephemeres
US6766344B2 (en) * 2001-05-08 2004-07-20 International Business Machines Corporation Processing Galois Field arithmetic
ATE408940T1 (de) * 2003-11-03 2008-10-15 Koninkl Philips Electronics Nv Verfahren und einrichtung zur effizienten mehrteilnehmer-vervielfachung
DE102005041102A1 (de) * 2005-08-30 2007-03-15 Siemens Ag Verfahren zur Skalarmultiplikation von Punkten auf einer elliptischen Kurve
US7885406B2 (en) * 2006-10-10 2011-02-08 Microsoft Corporation Computing endomorphism rings of Abelian surfaces over finite fields
US7995757B2 (en) * 2007-05-31 2011-08-09 Harris Corporation Closed galois field combination
JP4189828B1 (ja) * 2007-10-30 2008-12-03 国立大学法人 岡山大学 ペアリング演算装置、ペアリング演算方法、及びペアリング演算プログラム
JP4521503B2 (ja) * 2008-02-25 2010-08-11 国立大学法人 岡山大学 スカラー倍算の演算プログラム及びべき乗算の演算プログラム
US8139764B2 (en) * 2008-05-06 2012-03-20 Harris Corporation Closed galois field cryptographic system
WO2010061951A1 (ja) * 2008-11-28 2010-06-03 国立大学法人岡山大学 スカラ倍算器及びスカラ倍算プログラム
US8630422B2 (en) * 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
FR2960727B1 (fr) 2010-05-26 2016-04-15 Oberthur Technologies Procede d'evaluation d'une fonction
US8903083B2 (en) * 2010-08-16 2014-12-02 International Business Machines Corporation Fast evaluation of many polynomials with small coefficients on the same point
JP5531154B2 (ja) * 2011-03-10 2014-06-25 日本電信電話株式会社 秘匿積和結合システム、計算装置、秘匿積和結合方法、及びそれらのプログラム
US8433893B2 (en) * 2011-03-30 2013-04-30 Mitsubishi Electric Research Laboratories, Inc. Privacy-preserving probabilistic inference based on hidden markov models
US8799343B2 (en) * 2011-09-22 2014-08-05 Intel Corporation Modular exponentiation with partitioned and scattered storage of Montgomery Multiplication results
US20160365973A1 (en) * 2012-10-30 2016-12-15 Nederlandse Organisatie Voor Toegepast-Natuurwetenschappelijk Onderzoek Tno Secure Distribution of Watermarked Content
WO2014112548A1 (ja) * 2013-01-17 2014-07-24 日本電信電話株式会社 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム
US9787472B1 (en) * 2013-03-13 2017-10-10 Hrl Laboratories, Llc Information secure protocol for mobile proactive secret sharing with near-optimal resilience
US10083310B1 (en) * 2013-03-13 2018-09-25 Hrl Laboratories, Llc System and method for mobile proactive secure multi-party computation (MPMPC) using commitments
JP6089878B2 (ja) * 2013-03-28 2017-03-08 富士通株式会社 直交変換装置、直交変換方法及び直交変換用コンピュータプログラムならびにオーディオ復号装置
US10075288B1 (en) * 2014-02-28 2018-09-11 The Governing Council Of The University Of Toronto Systems, devices, and processes for homomorphic encryption
EP3218800B1 (en) * 2014-11-12 2023-06-07 David CEREZO SANCHEZ Secure multiparty computation on spreadsheets
JP6693508B2 (ja) * 2015-04-03 2020-05-13 日本電気株式会社 秘密計算システム、サーバ装置、秘密計算方法、および、プログラム
US9906505B2 (en) * 2015-05-08 2018-02-27 Nxp B.V. RSA decryption using multiplicative secret sharing
US11042358B2 (en) * 2016-08-18 2021-06-22 Nec Corporation Secure computation system, secure computation method, secure computation apparatus, distribution information generation apparatus, and methods and programs therefor
US11362829B2 (en) * 2017-01-06 2022-06-14 Koninklijke Philips N.V. Distributed privacy-preserving verifiable computation
US11323444B2 (en) * 2017-09-29 2022-05-03 Robert Bosch Gmbh Method for faster secure multiparty inner product computation with SPDZ

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016104476A1 (ja) * 2014-12-26 2016-06-30 日本電信電話株式会社 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
ARAKI, T. ET AL.: "High-throughput semi-honest secure three-party computation with an honest majority", COMPUTER AND COMMUNICATIONS SECURITY, 24 October 2016 (2016-10-24), pages 805 - 817, XP058280073, DOI: 10.1145/2976749.2978331 *
DAI IKARASHIRYO KIKUCHIKOKI HAMADAKOJI CHIDA: "Actively private and correct MPC scheme in t < n/2 from passively secure schemes with small overhead", IACR CRYPTOLOGY EPRINT ARCHIVE, vol. 2014, 2014, pages 304
DAI, IKARASHI ET AL.: "2D3-6 MEVAL2 vs. CCS best paper on MPC-AES", SCIS 2017 (2017 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY); 24-27/01/2017, 24 January 2017 (2017-01-24), pages 1 - 8, XP009519163 *
IKARASHI, D. ET AL.: "Actively Private and Correct MPC Scheme in t < n/2 from Passively Secure Schemes with Small Overhead", CRYPTOLOGY EPRINT ARCHIVE, 19 May 2014 (2014-05-19), XP061016122, Retrieved from the Internet <URL:http://ia.cr/2014/304> [retrieved on 20180309] *
See also references of EP3573041A4
TOSHINORI ARAKIJUN FURUKAWAYEHUDA LINDELLARIEL NOFKAZUMA OHARA: "High-Throughput Semi-Honest Secure Three-Party Computation with an Honest Majority", ACM CCS, 2016

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020152831A1 (ja) * 2019-01-24 2020-07-30 日本電気株式会社 情報処理装置、秘密計算方法及びプログラム
JPWO2020152831A1 (ja) * 2019-01-24 2021-12-02 日本電気株式会社 情報処理装置、秘密計算方法及びプログラム
JP7173170B2 (ja) 2019-01-24 2022-11-16 日本電気株式会社 情報処理装置、秘密計算方法及びプログラム
US11895230B2 (en) 2019-01-24 2024-02-06 Nec Corporation Information processing apparatus, secure computation method, and program
WO2022044173A1 (ja) * 2020-08-26 2022-03-03 日本電気株式会社 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム
JP7452669B2 (ja) 2020-08-26 2024-03-19 日本電気株式会社 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム

Also Published As

Publication number Publication date
JP6732959B2 (ja) 2020-07-29
US20190349193A1 (en) 2019-11-14
EP4167213B1 (en) 2024-03-13
EP4167213A1 (en) 2023-04-19
EP3573041A1 (en) 2019-11-27
EP3573041A4 (en) 2020-06-03
US11646880B2 (en) 2023-05-09
JPWO2018135511A1 (ja) 2019-11-07

Similar Documents

Publication Publication Date Title
WO2018135511A1 (ja) 秘密計算方法、秘密計算システム、秘密計算装置、およびプログラム
Bogdanov et al. High-performance secure multi-party computation for data mining applications
JP6095792B2 (ja) 秘密ビット分解装置、秘密モジュラス変換装置、秘密ビット分解方法、秘密モジュラス変換方法、プログラム
EP3261082A1 (en) Mismatch detection method, mismatch detection system, mismatch detection device and program therefor
JP5860557B1 (ja) 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
CN111984990B (zh) 基于边缘计算的支持隐私保护的矩阵乘法任务外包方法
CN111783129A (zh) 一种保护隐私的数据处理方法及系统
Oliveira et al. Fast point multiplication algorithms for binary elliptic curves with and without precomputation
US20220413807A1 (en) Secure random number generation system, secure computation apparatus, secure random number generation method, and program
Shah et al. Provable data possession using additive homomorphic encryption
Yassein et al. A comparative performance analysis of NTRU and its variant cryptosystems
Kuppusamy et al. CRT-based outsourcing algorithms for modular exponentiations
JP6781397B2 (ja) 秘密分散システム
JP7173170B2 (ja) 情報処理装置、秘密計算方法及びプログラム
CN117349685A (zh) 一种通信数据的聚类方法、系统、终端及介质
Zakerolhosseini et al. Secure transmission of mobile agent in dynamic distributed environments
JP6693503B2 (ja) 秘匿検索システム、サーバ装置、秘匿検索方法、検索方法、およびプログラム
EP4080488B1 (en) Secret random number generation system, secret calculation device, secret random number generation method, and program
JP7380843B2 (ja) 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム
US11461395B2 (en) Confidential sort system and method
Chaudhary et al. A Three-Factor Authenticated Mobile Key Exchange Protocol Using Matrices Over Group Ring Structure
Bhat et al. A Novel Computationally Bounded Oblivious Transfer with Almost Non-trivial Communication
Ahammed Improving the Proof of Retrievability in Cloud Computing
Szollosi et al. Accelerating RSA Encryption Using Random Precalculations

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018563352

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018741847

Country of ref document: EP

Effective date: 20190819