WO2018135563A1 - 秘密計算システム、秘密計算装置、秘密計算方法、プログラム - Google Patents
秘密計算システム、秘密計算装置、秘密計算方法、プログラム Download PDFInfo
- Publication number
- WO2018135563A1 WO2018135563A1 PCT/JP2018/001341 JP2018001341W WO2018135563A1 WO 2018135563 A1 WO2018135563 A1 WO 2018135563A1 JP 2018001341 W JP2018001341 W JP 2018001341W WO 2018135563 A1 WO2018135563 A1 WO 2018135563A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- secret
- text
- sentence
- value
- polynomial
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/552—Powers or roots, e.g. Pythagorean sums
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/556—Logarithmic or exponential functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/36—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with means for detecting characters not meant for transmission
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/535—Indexing scheme relating to groups G06F7/535 - G06F7/5375
- G06F2207/5356—Via reciprocal, i.e. calculate reciprocal only, or calculate reciprocal first and then the quotient from the reciprocal and the numerator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/552—Indexing scheme relating to groups G06F7/552 - G06F7/5525
- G06F2207/5523—Calculates a power, e.g. the square, of a number or a function, e.g. polynomials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Definitions
- the present invention relates to a secret calculation technique, and more particularly to a secret calculation technique for calculating a polynomial while keeping an input value secret.
- Non-Patent Document 1 There is a method called a secret calculation as a method for obtaining a calculation result of a specified calculation without restoring an encrypted numerical value (see Non-Patent Document 1, for example).
- encryption is performed such that a plurality of pieces of information (numerical value fragments) that can restore a numerical value are distributed to three secret computing devices, and without adding the numerical value, addition, subtraction, constant sum,
- the result of multiplication, constant multiplication, logical operation (negation, logical product, logical sum, exclusive logical sum), data format conversion (integer, binary number) is distributed to three secret computing devices, ie encrypted It can be held as it is.
- the number of distributions is not limited to 3, and can be W (W is a predetermined constant equal to or greater than 2), and a protocol that realizes a secret calculation by cooperative calculation by W secret calculation devices is called a multi-party protocol.
- Non-Patent Document 3 As a method of realizing polynomial calculation by secret calculation, there is a method of Non-Patent Document 3.
- Non-Patent Document 3 when calculating the polynomial a 0 + a 1 x 1 +... + An x n , 2n-1 times (ceiling (log 2 n) +1 stage) multiplication and n times There is a problem that the calculation time is increased because it is necessary to perform the addition of.
- an object of the present invention is to provide a secret calculation technique for calculating a polynomial with a smaller calculation time.
- X is a value substituted for the n-th order polynomial
- k is an integer satisfying k ⁇ x ⁇ k + 1
- r is a random number satisfying k ⁇ r ⁇ k + 1, [[r]], [[r 2 ] ], ..., [[r n ]], [[r-1]], [[(r-1) 2 ]], ..., [[((r-1) n ]] are replaced by the random numbers r and r-1
- X is a value to be substituted for the n-th order polynomial
- + b n [[s n ]] is a secret sentence [[1 / f]] from the linear combination means, the secret text [[s]], the secret text [[e]], and the secret text [[1 / f]], [[s]] ⁇ ([[[ 1 / f]] ⁇ [[-e]]) (where [[1 / f]] ⁇ [[-e]] is a value obtained by shifting 1 / f to the left by -e bits) Reciprocal calculation means for calculating as [1 / x]].
- X is a value to be substituted for the n-th order polynomial
- FIG. 1 is a block diagram showing a configuration of a secret calculation system 10.
- FIG. It is a block diagram which shows the structure of the secret calculation apparatus 100 i . 4 is a flowchart showing the operation of the secret calculation system 10.
- It is a block diagram which shows the structure of the secret calculation apparatus 300 i . 4 is a flowchart showing the operation of the secret calculation system 30.
- the secret calculation algorithm described later is constructed by a combination of existing secret calculation operations.
- the operations required by the secret calculation algorithm are concealment and restoration, addition, subtraction, multiplication, comparison, selection, and left shift. First, the definition and notation of each calculation will be described.
- Reference Non-Patent Document 1 As a method of concealment and restoration, specifically, there is a method of Reference Non-Patent Document 1.
- Reference Non-Patent Document 1 Mehrdad Aliasgari, Marina Blanton, Yihua Zhang, Aaron Steele, “Secure Computation on Floating Point Numbers”, NDSS 2013, 2013.
- Reference Non-Patent Document 1 discloses a floating point calculation. An operation with a fixed point or an integer can be realized by combining type conversion from a floating point to a fixed point or an integer disclosed in Reference Non-Patent Document 1.
- the processing for obtaining [[c 1 ]], [[c 2 ]], and [[c 3 ]] is respectively [[c 1 ]] ⁇ Add ([[a]], [[b]]), [[ c 2 ]] ⁇ Sub ([[a]], [[b]]), [[c 3 ]] ⁇ Mul ([[a]], [[b]]). If there is no risk of misunderstanding, Add ([[a]], [[b]]), Sub ([[a]], [[b]]), Mul ([[a]], [[b ]]) May be abbreviated as [[a]] + [[b]], [[a]]-[[b]], [[a]] ⁇ [[b]], respectively.
- Reference Non-Patent Document 1 discloses calculation in floating point. An operation with a fixed point or an integer can be realized by combining type conversion from a floating point to a fixed point or an integer disclosed in Reference Non-Patent Document 1.
- Reference Non-Patent Document 1 discloses calculation in floating point. An operation with a fixed point or an integer can be realized by combining type conversion from a floating point to a fixed point or an integer disclosed in Reference Non-Patent Document 1.
- the shift amount (x ⁇ y y) can be added to the exponent.
- the mutual conversion of fixed-point numbers and floating-point numbers in Reference Non-Patent Document 1 and the above-described left shift of floating-point numbers may be combined.
- step 1 from the input secret text [[x]] and [[r]], the secret text of u which is the result of comparing the magnitude of x and the random number r [[u]] ⁇ ([[x]] ⁇ ? [[r]]).
- the mask c satisfies 0 ⁇ c ⁇ 1.
- step 3 mask c is restored from the secret text [[c]] generated in step 2.
- [[a 0 + a 1 x 1 + ... + a n x n]] b 0 + b 1 [[s 1]] + ... + b n [[s n]].
- FIG. 2 is a block diagram showing a configuration of the secret calculation system 10.
- the secret calculation system 10 includes W (W is a predetermined integer of 2 or more) secret calculation devices 100 1 ,..., 100 W.
- the secret computing devices 100 1 ,..., 100 W are connected to the network 800 and can communicate with each other.
- the network 800 may be, for example, a communication network such as the Internet or a broadcast communication path.
- FIG. 3 is a block diagram showing a configuration of the secret computing device 100 i (1 ⁇ i ⁇ W).
- FIG. 4 is a flowchart showing the operation of the secret calculation system 10.
- the secret calculation device 100 i includes a random number generation unit 110 i , a comparison unit 120 i , a mask unit 130 i , a restoration unit 140 i , a coefficient calculation unit 150 i, and a selection unit 160 i .
- the linear combination unit 170 i and the recording unit 190 i are included.
- Each component of the secret computing device 100 i excluding the recording unit 190 i is an arithmetic unit required for the secret calculation algorithm, that is, at least each of the components among the concealment, restoration, addition, subtraction, multiplication, comparison, and selection. It is configured to be able to execute operations necessary for realizing the above functions.
- the recording unit 190 i is a component that records information necessary for processing of the secret computing device 100 i . For example, the order n and the coefficients a 0 , a 1 ,..., An are recorded.
- the secret calculation system 10 implements a secret calculation algorithm that is a multi-party protocol by cooperative calculation by the W secret calculation devices 100 i . Therefore, the random number generation means 110 (not shown) of the secret calculation system 10 is composed of random number generation sections 110 1 ,..., 110 W , and the comparison means 120 (not shown) is comparison sections 120 1 ,.
- restoring means 140 (not shown) is restoring unit 140 1, ..., it is composed of 140 W
- coefficient calculating means 150 (not shown) is the coefficient calculation unit 150 1, ..., is composed of 150 W
- selection means 160 (not shown) the selection unit 160 1, ..., is composed of 160 W
- a linear coupling means 170 (not shown) is a linear combination unit 170 1, ..., and a 170 W.
- the secret calculation system 10 uses a random number r (k ⁇ r ⁇ k + 1, where k is an integer satisfying k ⁇ x ⁇ k + 1) and a secret text [[r]] that is a power of r ⁇ 1. , [[r 2 ]], ..., [[r n ]], [[r-1]], [[(r-1) 2 ]], ..., [[(r-1) n ]] From the secret sentence [[x]] of the value x to be assigned to the polynomial, the secret sentence [[a 0 + a 1 x of the value of the polynomial a 0 + a 1 x 1 +... + a n x n to which x is assigned 1 +... + a n x n ]].
- the operation of the secret calculation system 10 will be described with reference to FIG.
- the random number generation means 110 generates a random number r that satisfies k ⁇ r ⁇ k + 1, and a secret sentence [[r]], [[r 2 ]],..., [[R n ]], [[r ⁇ 1 ]], [[(r-1) 2 ]],..., [[(r-1) n ]] are generated (S110).
- Secret text [[r]], [[r 2 ]], ..., [[r n ]], [[r-1]], [[(r-1) 2 ]], ..., [[(r- 1) n ]] is recorded in the recording units 190 1 ,..., 190 W.
- the comparison unit 120 compares the value x and the random number r from the secret text [[x]] using the secret text [[r]] generated before the secret text [[x]] is input.
- the secret sentence [[u]] ⁇ ([[x]] ⁇ ? [[R]]]) as a result is generated (S120). This corresponds to step 1 of the secret calculation algorithm of FIG.
- the restoration unit 140 restores the mask c from the secret sentence [[c]] generated in S130 (S140). This corresponds to step 3 of the secret calculation algorithm of FIG.
- Coefficient calculation means 150 calculates the coefficients b i by the following equation with respect to n (S150). This corresponds to step 4 of the secret calculation algorithm in FIG.
- the calculation of the polynomial a 0 + a 1 x 1 +... + A n x n is performed n times, n times (one stage) multiplication, one time comparison, one time restoration
- the calculation cost can be reduced.
- the addition operation can be ignored as in the case of a fixed-point calculation, the calculation time is effectively reduced.
- processing that conventionally requires bit decomposition 2n-1 times (ceiling (log 2 n) +1 stage) can be realized by n + 1 times (2 stages).
- the input value [[x]] to the output value [[a 0 + a 1 x 1 +... + a n x n ]] is calculated as x-r + u and a random number r generated in advance and a secret sentence of power of [r-1] [[r]], [[r 2 ]], ..., [[r n ]] , [[r-1]], [[(r-1) 2 ]], ..., [[(r-1) n ]].
- the secret text [[1 / x]] with the inverse 1 / x of x is output.
- the secret texts [[s]], [[e]], and [[f]] for e and f are generated.
- the secret text [[s]], [[e]], [[f]] can be generated.
- step 2 the degree n of the polynomial, the coefficients a 0 , a 1 ,..., A n , the secret text [[r]], [[r 2 ]], ..., [[r n ]], [[r-1 ]], [[(r-1) 2 ]], ..., [[(r-1) n ]] and the secret text [[f]] generated in step 1, [[a 0 + a 1 f 1 + ... + a n f n ]] is calculated.
- [[a 0 + a 1 f 1 +... + A n f n ]] [[1 / f]] holds.
- step 3 from the secret text [[s]], [[e]] generated in step 1 and the secret text [[1 / f]] calculated in step 2, [[s]] ⁇ ([[1 / f]] ⁇ [[-e]]).
- [[s]] ⁇ ([[1 / f]] ⁇ [[-e]]) [[1 / x]] holds.
- the secret calculation system 20 includes W secret calculation devices 200 1 ,..., 200 W instead of including W (W is a predetermined integer equal to or greater than 2) secret calculation devices 100 1 ,. Is different from the secret calculation system 10.
- FIG. 6 is a block diagram showing a configuration of the secret computing device 200 i (1 ⁇ i ⁇ W).
- FIG. 7 is a flowchart showing the operation of the secret calculation system 20.
- the secret calculation device 200 i is different from the secret calculation device 100 i in that it further includes an input value decomposition unit 210 i and an inverse calculation unit 220 i .
- the input value decomposing unit 210 i and the reciprocal calculating unit 220 i are also configured so as to be able to execute operations necessary for realizing the function among the operations required for the secret calculation algorithm.
- Input value decomposition unit 210 is input value decomposition unit 210 1 of the secure computing system 20, ..., is composed of 210 W, the inverse calculation unit 220 inverse calculation unit 220 1, ..., and a 220 W.
- the secret calculation system 20 generates a secret sentence [[r]], [[r 2 ]], ..., [[r n ]], which is a power of a random number r (1 ⁇ r ⁇ 2) and r ⁇ 1 generated in advance. From [[r-1]], [[(r-1) 2 ]], ..., [[(r-1) n ]], from the secret sentence [[x]] of the value x to be substituted into the polynomial , The secret sentence [[1 / x]] of the reciprocal 1 / x of x is calculated.
- the operation of the secret calculation system 20 will be described with reference to FIG.
- the random number generation means 110 generates a random number r satisfying 1 ⁇ r ⁇ 2, and a secret sentence [[r]], [[r 2 ]],..., [[R n ]], [[r-1]] , [[(r-1) 2 ]],..., [[(r-1) n ]] are generated (S110).
- Secret text [[r]], [[r 2 ]], ..., [[r n ]], [[r-1]], [[(r-1) 2 ]], ..., [[(r- 1) n ]] is recorded in the recording units 190 1 ,..., 190 W.
- the secret text [[s]], [[e]], and [[f]] of f are generated (S210). This corresponds to step 1 of the secret calculation algorithm in FIG.
- the reciprocal calculation means 220 uses [[s]] ⁇ ([[[s]], [[e]] generated in S210 and the secret text [[1 / f]] calculated in S120 to S170. [1 / f]]] ⁇ [[-e]]) is calculated as a secret sentence [[1 / x]] with reciprocal 1 / x (S220). This corresponds to step 3 of the secret calculation algorithm in FIG.
- the reciprocal number from the secret sentence [[x]] is obtained.
- the cost of calculating 1 / x secret text [[1 / x]] can be reduced.
- the input value [[f]] to the output value [[a 0 + a 1 f 1 +... + a n f n ]] is calculated as f-r + u and a random number r generated in advance and a secret power of [r-1] [[r]], [[r 2 ]], ..., [[r n ]], [[r-1]], [[(r-1) 2 ]], ..., [[(r-1) n ]].
- the secret calculation system for realizing the input and output of the secret calculation algorithm according to the third embodiment, the processing procedure, and the secret calculation algorithm according to the third embodiment will be described below.
- the secret text [[logx]] of logarithm logx of x is output.
- the secret text [[e]], [[f]] can be generated using an operation for obtaining a floating-point representation of [[x]] in Reference Non-Patent Document 1.
- step 2 the degree n of the polynomial, the coefficients a 0 , a 1 ,..., A n , the secret text [[r]], [[r 2 ]], ..., [[r n ]], [[r-1 ]], [[(r-1) 2 ]], ..., [[(r-1) n ]] and the secret sentence [[f]] generated in step 1, [[a 0 + a 1 f 1 + ... + a n f n ]] is calculated.
- [[a 0 + a 1 f 1 +... + A n f n ]] [[logf]] holds.
- step 3 [[logf]] + [[e]] is calculated from the secret text [[e]] generated in step 1 and the secret text [[logf]] calculated in step 2.
- [[logf]] + [[e]] [[logx]] holds.
- the secret calculation system 30 includes W secret calculation devices 300 1 ,..., 300 W instead of including W (W is a predetermined integer equal to or greater than 2) secret calculation devices 100 1 ,. Is different from the secret calculation system 10.
- FIG. 9 is a block diagram showing a configuration of the secret computing device 300 i (1 ⁇ i ⁇ W).
- FIG. 10 is a flowchart showing the operation of the secret calculation system 30.
- secret calculation device 300 i differs from secret calculation device 100 i in that it further includes an input value decomposition unit 310 i and a logarithmic calculation unit 320 i .
- the input value decomposing unit 310 i and the logarithmic calculating unit 320 i are also configured to be able to execute operations necessary for realizing the function among the operations required for the secret calculation algorithm.
- Input value decomposition unit 310 is input value decomposition unit 310 1 of the secure computing system 30, ..., is composed of 310 W, the logarithm calculation means 320 inverse calculation unit 320 1, ..., and a 320 W.
- the secret calculation system 30 generates a secret text [[r]], [[r 2 ]], ..., [[r n ]], which is a power of a random number r (1 ⁇ r ⁇ 2) and r ⁇ 1 generated in advance. From [[r-1]], [[(r-1) 2 ]], ..., [[(r-1) n ]], from the secret sentence [[x]] of the value x to be substituted into the polynomial , The secret log [[logx]] of logarithm logx of x is calculated.
- the operation of the secret calculation system 30 will be described with reference to FIG.
- the random number generation means 110 generates a random number r satisfying 1 ⁇ r ⁇ 2, and a secret sentence [[r]], [[r 2 ]],..., [[R n ]], [[r-1]] , [[(r-1) 2 ]],..., [[(r-1) n ]] are generated (S110).
- Secret text [[r]], [[r 2 ]], ..., [[r n ]], [[r-1]], [[(r-1) 2 ]], ..., [[(r- 1) n ]] is recorded in the recording units 190 1 ,..., 190 W.
- the logarithm calculation means 320 conceals [[logf]] + [[e]] as logarithm logx from the secret text [[e]] generated in S310 and the secret text [[logf]] calculated in S120 to S170. It is calculated as a sentence [[logx]] (S320). This corresponds to step 3 of the secret calculation algorithm in FIG.
- the logarithm from the secret sentence [[x]] is obtained.
- the cost of calculating the logx secret text [[logx]] can be reduced.
- the input value [[f]] to the output value [[a 0 + a 1 f 1 +... + a n f n ]] is calculated as f-r + u and a random number r generated in advance and a secret power of [r-1] [[r]], [[r 2 ]], ..., [[r n ]], [[r-1]], [[(r-1) 2 ]], ..., [[(r-1) n ]].
- the apparatus of the present invention includes, for example, a single hardware entity as an input unit to which a keyboard or the like can be connected, an output unit to which a liquid crystal display or the like can be connected, and a communication device (for example, a communication cable) capable of communicating outside the hardware entity.
- a communication unit a CPU (Central Processing Unit, may include a cache memory or a register), a RAM or ROM that is a memory, an external storage device that is a hard disk, and an input unit, an output unit, or a communication unit thereof ,
- the hardware entity may be provided with a device (drive) that can read and write a recording medium such as a CD-ROM.
- a physical entity having such hardware resources includes a general-purpose computer.
- the external storage device of the hardware entity stores a program necessary for realizing the above functions and data necessary for processing the program (not limited to the external storage device, for example, reading a program) It may be stored in a ROM that is a dedicated storage device). Data obtained by the processing of these programs is appropriately stored in a RAM or an external storage device.
- each program stored in an external storage device or ROM or the like
- data necessary for processing each program are read into a memory as necessary, and are interpreted and executed by a CPU as appropriate.
- the CPU realizes a predetermined function (respective component requirements expressed as the above-described unit, unit, etc.).
- the processing functions in the hardware entity (the device of the present invention) described in the above embodiment are realized by a computer, the processing contents of the functions that the hardware entity should have are described by a program. Then, by executing this program on a computer, the processing functions in the hardware entity are realized on the computer.
- 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.
- a magnetic recording device a hard disk device, a flexible disk, a magnetic tape or the like, and as an optical disk, a DVD (Digital Versatile Disc), a DVD-RAM (Random Access Memory), a CD-ROM (Compact Disc Read Only) Memory), CD-R (Recordable) / RW (ReWritable), etc., magneto-optical recording medium, MO (Magneto-Optical disc), etc., semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory), etc. Can 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. 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-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 hardware entity is configured by executing a predetermined program on the computer.
- a predetermined program on the computer.
- at least a part of these processing contents may be realized in hardware.
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Document Processing Apparatus (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
Abstract
より小さい計算時間で多項式を計算する秘密計算技術を提供する。秘匿文[[r]]を用いて、秘匿文[[x]]から値xと乱数rの大小比較結果であるuの秘匿文[[u]]を生成する比較手段120と、秘匿文[[x]]、[[r]]、[[u]]から、マスクcの秘匿文[[c]]を生成するマスク手段130と、秘匿文[[c]]から、マスクcを復元する復元手段140と、次数n、係数a0,a1,…,an、マスクcから、i=0,…,nに対して係数biを計算する係数計算手段150と、秘匿文[[u]]から、i=1,…,nに対して大小比較結果uに応じて定まる選択値siの秘匿文[[si]]を生成する選択手段160と、係数biと秘匿文[[si]]の線形結合b0+b1[[s1]]+…+bn[[sn]]を秘匿文[[a0+a1x1+…+anxn]]として計算する線形結合手段170とを含む。
Description
本発明は、秘密計算技術に関するものであり、特に、入力値を秘密にしたまま多項式を計算する秘密計算技術に関する。
暗号化された数値を復元することなく指定された演算の演算結果を得る方法として、秘密計算と呼ばれる方法がある(例えば非特許文献1参照)。非特許文献1の方法では、数値を復元することのできる複数の情報(数値の断片)を3つの秘密計算装置に分散するという暗号化を行い、数値を復元することなく、加減算、定数和、乗算、定数倍、論理演算(否定、論理積、論理和、排他的論理和)、データ形式変換(整数、二進数)の結果を3つの秘密計算装置に分散された状態、すなわち暗号化されたまま保持させることができる。一般に、分散数は3に限らずW(Wは2以上の所定の定数)とすることができ、W個の秘密計算装置による協調計算によって秘密計算を実現するプロトコルはマルチパーティプロトコルと呼ばれる。
なお、分散数が2の場合の秘密計算方法については、例えば、非特許文献2に開示されている。
秘密計算によって多項式の計算を実現した方法として、非特許文献3の方法がある。非特許文献3の方法では、変数xの多項式の計算を行う際に、x1,x2,…,x2^kそれぞれにx2^kを乗ずる処理(k=0,1,…)を並列に行うことを繰り返して、x1,x2,…,xnの計算を実現している(なお、^(キャレット)は上付き添字を表し、例えば、xy^zはyzがxに対する上付き添字であることを表している)。
千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, "軽量検証可能3パーティ秘匿関数計算の再考", 情報処理学会シンポジウム論文集, Vol.2010, No.9, pp.555-560,2010.
Ivan Damgard, Valerio Pastro, Nigel Smart, Sarah Zakarias,"Multiparty Computation from Somewhat Homomorphic Encryption", CRYPTO 2012, LNCS7417, pp.643-662, 2012.
Liina Kamm, Jan Willemson, "Secure floating point arithmetic and private satellite collision analysis", International Journal of Information Security, Vol.14, No.6, pp.531-548, 2015.
しかしながら、非特許文献3の方法では、多項式a0+a1x1+…+anxnを計算する際、2n-1回(ceiling(log2n)+1段)の乗算とn回の加算を実行する必要があるため、計算時間が大きくなるという問題があった。
そこで本発明は、より小さい計算時間で多項式を計算する秘密計算技術を提供することを目的とする。
本発明の一態様は、a0+a1x1+…+anxnを変数xのn次多項式(nは多項式の次数、a0,a1,…,anは多項式の各係数)、xを前記n次多項式に代入する値、kをk≦x<k+1を満たす整数、rをk≦r<k+1を満たす乱数、[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を前記乱数rとr-1のべき乗の秘匿文とし、2個以上の秘密計算装置で構成され、前記値xの秘匿文[[x]]から、前記値xを代入した前記n次多項式a0+a1x1+…+anxnの値の秘匿文[[a0+a1x1+…+anxn]]を計算する秘密計算システムであって、前記秘匿文[[r]]を用いて、前記秘匿文[[x]]から前記値xと前記乱数rの大小比較結果であるu(ただし、x≦rならばu=1、x≦rでないならばu=0)の秘匿文[[u]]を生成する比較手段と、前記秘匿文[[x]]、前記秘匿文[[r]]、前記秘匿文[[u]]から、マスクcの秘匿文[[c]]を[[c]]=[[x]]-[[r]]+[[u]]として生成するマスク手段と、前記秘匿文[[c]]から、前記マスクcを復元する復元手段と、前記次数n、前記係数a0,a1,…,an、前記マスクcから、i=0,…,nに対して係数biを次式で計算する係数計算手段と、
前記秘匿文[[u]]から、i=1,…,nに対して前記大小比較結果uに応じて定まる選択値si(ただし、u=1ならばsi=(r-1)i、u=0ならばsi=ri)の秘匿文[[si]]を生成する選択手段と、前記係数bi(i=0,…,n)と前記秘匿文[[si]](i=1,…,n)の線形結合b0+b1[[s1]]+…+bn[[sn]]を前記秘匿文[[a0+a1x1+…+anxn]]として計算する線形結合手段とを含む。
本発明の一態様は、a0+a1x1+…+anxnを変数xのn次多項式(nは多項式の次数、a0,a1,…,anは多項式の各係数)、xを前記n次多項式に代入する値、rを1≦r<2を満たす乱数、[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を前記乱数rとr-1のべき乗の秘匿文とし、前記値xの逆数1/xが1/x=a0+a1x1+…+anxnと表されるものとし、2個以上の秘密計算装置で構成され、前記値xの秘匿文[[x]]から、前記逆数1/xの秘匿文[[1/x]]を計算する秘密計算システムであって、前記秘匿文[[x]]から、x=s×2e×f(s∈{-1,1}、eは整数、1≦f<2)を満たすs,e,fの秘匿文[[s]],[[e]],[[f]]を生成する入力値分解手段と、前記秘匿文[[r]]を用いて、前記秘匿文[[f]]から前記fと前記乱数rの大小比較結果であるu(ただし、f≦rならばu=1、f≦rでないならばu=0)の秘匿文[[u]]を生成する比較手段と、前記秘匿文[[f]]、前記秘匿文[[r]]、前記秘匿文[[u]]から、マスクcの秘匿文[[c]]を[[c]]=[[f]]-[[r]]+[[u]]として生成するマスク手段と、前記秘匿文[[c]]から、前記マスクcを復元する復元手段と、前記次数n、前記係数a0,a1,…,an、前記マスクcから、i=0,…,nに対して係数biを次式で計算する係数計算手段と、
前記秘匿文[[u]]から、i=1,…,nに対して前記大小比較結果uに応じて定まる選択値si(ただし、u=1ならばsi=(r-1)i、u=0ならばsi=ri)の秘匿文[[si]]を生成する選択手段と、前記係数bi(i=0,…,n)と前記秘匿文[[si]](i=1,…,n)の線形結合b0+b1[[s1]]+…+bn[[sn]]を前記fの逆数1/fの秘匿文[[1/f]]として計算する線形結合手段と、前記秘匿文[[s]]、前記秘匿文[[e]]、前記秘匿文[[1/f]]から、[[s]]×([[1/f]]<<[[-e]])(ただし、[[1/f]]<<[[-e]]は1/fを-eビット左シフトした値)を前記秘匿文[[1/x]]として計算する逆数計算手段とを含む。
本発明の一態様は、a0+a1x1+…+anxnを変数xのn次多項式(nは多項式の次数、a0,a1,…,anは多項式の各係数)、xを前記n次多項式に代入する値、rを1≦r<2を満たす乱数、[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を前記乱数rとr-1のべき乗の秘匿文とし、前記値xの対数logxがlogx=a0+a1x1+…+anxnと表されるものとし、2個以上の秘密計算装置で構成され、前記値xの秘匿文[[x]]から、前記対数logxの秘匿文[[logx]]を計算する秘密計算システムであって、前記秘匿文[[x]]から、x=2e×f(eは整数、1≦f<2)を満たすe,fの秘匿文[[e]],[[f]]を生成する入力値分解手段と、前記秘匿文[[r]]を用いて、前記秘匿文[[f]]から前記fと前記乱数rの大小比較結果であるu(ただし、f≦rならばu=1、f≦rでないならばu=0)の秘匿文[[u]]を生成する比較手段と、前記秘匿文[[f]]、前記秘匿文[[r]]、前記秘匿文[[u]]から、マスクcの秘匿文[[c]]を[[c]]=[[f]]-[[r]]+[[u]]として生成するマスク手段と、前記秘匿文[[c]]から、前記マスクcを復元する復元手段と、前記次数n、前記係数a0,a1,…,an、前記マスクcから、i=0,…,nに対して係数biを次式で計算する係数計算手段と、
前記秘匿文[[u]]から、i=1,…,nに対して前記大小比較結果uに応じて定まる選択値si(ただし、u=1ならばsi=(r-1)i、u=0ならばsi=ri)の秘匿文[[si]]を生成する選択手段と、前記係数bi(i=0,…,n)と前記秘匿文[[si]](i=1,…,n)の線形結合b0+b1[[s1]]+…+bn[[sn]]を前記fの対数logfの秘匿文[[logf]]として計算する線形結合手段と、前記秘匿文[[e]]、前記秘匿文[[logf]]から、前記対数logfにeを加算した値[[logf]]+[[e]]を前記秘匿文[[logx]]として計算する対数計算手段とを含む。
本発明によれば、多項式の計算に必要な乗算を1段とすることにより、多項式の秘密計算に必要な計算時間を削減することが可能となる。
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
後述する秘密計算アルゴリズムは、既存の秘密計算上の演算の組み合わせで構築される。この秘密計算アルゴリズムが必要とする演算は、秘匿化と復元、加算、減算、乗算、比較、選択、左シフトである。まず、各演算の定義、記法等について説明する。
<定義、記法等>
[秘匿化と復元]
ある値aを暗号化や秘密分散などにより秘匿化した値のことをaの秘匿文と呼び、[[a]]と表すこととする。aの秘匿文[[a]]が秘密分散により生成されたものである場合は、[[a]]により各秘密計算装置が持つ秘密分散の断片の集合を参照するものとする。
[秘匿化と復元]
ある値aを暗号化や秘密分散などにより秘匿化した値のことをaの秘匿文と呼び、[[a]]と表すこととする。aの秘匿文[[a]]が秘密分散により生成されたものである場合は、[[a]]により各秘密計算装置が持つ秘密分散の断片の集合を参照するものとする。
また、aの秘匿文[[a]]を復元して、aを得る処理をa←Open([[a]])と表すこととする。
秘匿化と復元の方法として、具体的には、参考非特許文献1の手法がある。
(参考非特許文献1)Mehrdad Aliasgari, Marina Blanton, Yihua Zhang, Aaron Steele, “Secure Computation on Floating Point Numbers”, NDSS 2013, 2013.
(参考非特許文献1)Mehrdad Aliasgari, Marina Blanton, Yihua Zhang, Aaron Steele, “Secure Computation on Floating Point Numbers”, NDSS 2013, 2013.
参考非特許文献1には、浮動小数点での演算について開示されている。固定小数点や整数での演算については、参考非特許文献1に開示されている浮動小数点から固定小数点や整数への型変換を組み合わせることで実現することができる。
[加算、減算、乗算]
加算、減算、乗算の各演算は、2つの値a, bの秘匿文[[a]], [[b]]を入力とし、それぞれa+b, a-b, abの計算結果である和c1、差c2、積c3の秘匿文[[c1]],[[c2]],[[c3]]を計算する。[[c1]],[[c2]],[[c3]]を得る処理をそれぞれ、[[c1]]←Add([[a]],[[b]]),[[c2]]←Sub([[a]],[[b]]),[[c3]]←Mul([[a]],[[b]])と表すこととする。誤解を招く恐れのない場合は、Add([[a]],[[b]]), Sub([[a]],[[b]]), Mul([[a]],[[b]])をそれぞれ[[a]]+[[b]], [[a]]-[[b]], [[a]]×[[b]]と略記することもある。
加算、減算、乗算の各演算は、2つの値a, bの秘匿文[[a]], [[b]]を入力とし、それぞれa+b, a-b, abの計算結果である和c1、差c2、積c3の秘匿文[[c1]],[[c2]],[[c3]]を計算する。[[c1]],[[c2]],[[c3]]を得る処理をそれぞれ、[[c1]]←Add([[a]],[[b]]),[[c2]]←Sub([[a]],[[b]]),[[c3]]←Mul([[a]],[[b]])と表すこととする。誤解を招く恐れのない場合は、Add([[a]],[[b]]), Sub([[a]],[[b]]), Mul([[a]],[[b]])をそれぞれ[[a]]+[[b]], [[a]]-[[b]], [[a]]×[[b]]と略記することもある。
加算、減算、乗算の方法として、具体的には、参考非特許文献1の手法がある。参考非特許文献1には、浮動小数点での演算について開示されている。固定小数点や整数での演算については、参考非特許文献1に開示されている浮動小数点から固定小数点や整数への型変換を組み合わせることで実現することができる。
[比較]
aの秘匿文[[a]]、bの秘匿文[[b]]に対して、a≦bならばc=1、a≦bでないならばc=0となるaとbの大小比較結果cの秘匿文[[c]]を計算する処理を[[c]]←([[a]]≦?[[b]])と表すこととする。
aの秘匿文[[a]]、bの秘匿文[[b]]に対して、a≦bならばc=1、a≦bでないならばc=0となるaとbの大小比較結果cの秘匿文[[c]]を計算する処理を[[c]]←([[a]]≦?[[b]])と表すこととする。
比較の方法として、具体的には、参考非特許文献1の手法がある。参考非特許文献1には、浮動小数点での演算について開示されている。固定小数点や整数での演算については、参考非特許文献1に開示されている浮動小数点から固定小数点や整数への型変換を組み合わせることで実現することができる。
[選択]
a∈{0,1}の秘匿文[[a]]と2つの値t,fの秘匿文[[t]],[[f]]に対して、a=1ならばb=t、a=0ならばb=fとなる選択値bの秘匿文[[b]]を計算する処理を[[b]]←IfElse([[a]],[[t]],[[f]])と表すことにする。この選択処理は、IfElse([[a]],[[t]],[[f]]):=[[a]]×[[t]]+[[a]]×[[f]]として、乗算と加算を用いて実現することができる。
a∈{0,1}の秘匿文[[a]]と2つの値t,fの秘匿文[[t]],[[f]]に対して、a=1ならばb=t、a=0ならばb=fとなる選択値bの秘匿文[[b]]を計算する処理を[[b]]←IfElse([[a]],[[t]],[[f]])と表すことにする。この選択処理は、IfElse([[a]],[[t]],[[f]]):=[[a]]×[[t]]+[[a]]×[[f]]として、乗算と加算を用いて実現することができる。
[左シフト]
aの秘匿文[[a]]とbの秘匿文[[b]]からaをbビット左シフトした値(つまり、aを2b倍した値)である左シフト値c(=a×2b)の秘匿文[[c]]を計算する処理を[[c]]←[[a]]<<[[b]]と表すこととする。
aの秘匿文[[a]]とbの秘匿文[[b]]からaをbビット左シフトした値(つまり、aを2b倍した値)である左シフト値c(=a×2b)の秘匿文[[c]]を計算する処理を[[c]]←[[a]]<<[[b]]と表すこととする。
浮動小数点での演算については、指数部にシフト量(x << yのyのこと)を加算すればよい。また、固定小数点や整数での演算については、参考非特許文献1の固定小数点数と浮動小数点数の相互変換と上述の浮動小数点数の左シフトを組み合わせればよい。
<第一実施形態>
第一実施形態の秘密計算アルゴリズムの入力と出力、処理手順と第一実施形態の秘密計算アルゴリズムを実現する秘密計算システムについて、以下説明していく。
第一実施形態の秘密計算アルゴリズムの入力と出力、処理手順と第一実施形態の秘密計算アルゴリズムを実現する秘密計算システムについて、以下説明していく。
[入力と出力]
図1に示す第一実施形態の秘密計算アルゴリズムの入力と出力について説明する。
図1に示す第一実施形態の秘密計算アルゴリズムの入力と出力について説明する。
多項式a0+a1x1+…+anxnの次数n、係数a0,a1,…,anと多項式に代入する値xの秘匿文[[x]]が入力となる。また、k≦r<k+1(ただし、kはk≦x<k+1を満たす整数とする)を満たす乱数rとr-1のべき乗の秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]も入力する。
xを代入した多項式a0+a1x1+…+anxnの値の秘匿文[[a0+a1x1+…+anxn]]が出力となる。
[処理手順]
図1に示す第一実施形態の秘密計算アルゴリズムの処理手順について説明する。その際、図1の左端の数字を用いてステップ1、ステップ2等と表現することにする。
図1に示す第一実施形態の秘密計算アルゴリズムの処理手順について説明する。その際、図1の左端の数字を用いてステップ1、ステップ2等と表現することにする。
ステップ1では、入力された秘匿文[[x]]と[[r]]から、xと乱数rの大小比較結果であるuの秘匿文[[u]]←([[x]]≦?[[r]])を生成する。[[u]]は、x≦rならばu=1、x≦rでないならばu=0となるuの秘匿文である。
ステップ2では、秘匿文[[x]]、[[r]]とステップ1で生成した秘匿文[[u]]から、マスクcの秘匿文[[c]]を[[c]]=[[x]]-[[r]]+[[u]]として生成する。マスクcは、0<c≦1を満たす。
ステップ3では、ステップ2で生成した秘匿文[[c]]から、マスクcを復元する。
ステップ4では、次数n、係数a0,a1,…,anとステップ3で復元したcから、i=0,…,nに対して係数biを次式で計算する。
ステップ5では、ステップ1で生成した秘匿文[[u]]から、i=1,…,nに対して大小比較結果uに応じて定まる選択値siの秘匿文[[si]]=IfElse([[u]],[[(r-1)i]],[[ri]])を生成する。[[si]]は、u=1ならばsi=(r-1)i、u=0ならばsi=riとなる秘匿文である。つまり、[[u]]=[[1]]ならば[[si]]=[[(r-1)i]]、[[u]]=[[0]]ならば[[si]]=[[ri]]となる。
ステップ6では、ステップ4で生成した係数bi(i=0,…,n)とステップ5で生成した秘匿文[[si]](i=1,…,n)から、線形結合b0+b1[[s1]]+…+bn[[sn]]を計算する。ここで、[[a0+a1x1+…+anxn]]= b0+b1[[s1]]+…+bn[[sn]]が成り立つ。
[秘密計算システム]
以下、図2~図4を参照して第一実施形態の秘密計算システム10について説明する。図2は、秘密計算システム10の構成を示すブロック図である。秘密計算システム10は、W個(Wは2以上の所定の整数)の秘密計算装置1001、…、100Wを含む。秘密計算装置1001、…、100Wは、ネットワーク800に接続しており、相互に通信可能である。ネットワーク800は、例えば、インターネットなどの通信網あるいは同報通信路などでよい。図3は、秘密計算装置100i(1≦i≦W)の構成を示すブロック図である。図4は、秘密計算システム10の動作を示すフローチャートである。
以下、図2~図4を参照して第一実施形態の秘密計算システム10について説明する。図2は、秘密計算システム10の構成を示すブロック図である。秘密計算システム10は、W個(Wは2以上の所定の整数)の秘密計算装置1001、…、100Wを含む。秘密計算装置1001、…、100Wは、ネットワーク800に接続しており、相互に通信可能である。ネットワーク800は、例えば、インターネットなどの通信網あるいは同報通信路などでよい。図3は、秘密計算装置100i(1≦i≦W)の構成を示すブロック図である。図4は、秘密計算システム10の動作を示すフローチャートである。
図3に示すように秘密計算装置100iは、乱数生成部110iと、比較部120iと、マスク部130iと、復元部140iと、係数計算部150iと、選択部160iと、線形結合部170iと、記録部190iを含む。記録部190iを除く秘密計算装置100iの各構成部は、秘密計算アルゴリズムで必要とされる演算、つまり、少なくとも秘匿化、復元、加算、減算、乗算、比較、選択のうち、各構成部の機能を実現するうえで必要になる演算を実行できるように構成されている。本発明において個々の演算を実現するための具体的な機能構成は、例えば先行技術文献として開示している非特許文献や<定義、記法等>で開示している参考非特許文献などにあるアルゴリズムを実行できるような構成で十分であり、これらは従来的構成であるから詳細な説明については省略する。また、記録部190iは、秘密計算装置100iの処理に必要な情報を記録する構成部である。例えば、次数n、係数a0,a1,…,anを記録しておく。
W個の秘密計算装置100iによる協調計算によって、秘密計算システム10はマルチパーティプロトコルである秘密計算アルゴリズムを実現する。よって、秘密計算システム10の乱数生成手段110(図示していない)は乱数生成部1101、…、110Wで構成され、比較手段120(図示していない)は比較部1201、…、120Wで構成され、マスク手段130(図示していない)はマスク部1301、…、130Wで構成され、復元手段140(図示していない)は復元部1401、…、140Wで構成され、係数計算手段150(図示していない)は係数計算部1501、…、150Wで構成され、選択手段160(図示していない)は選択部1601、…、160Wで構成され、線形結合手段170(図示していない)は線形結合部1701、…、170Wで構成される。
秘密計算システム10は、事前に生成した乱数r(k≦r<k+1、ただし、kはk≦x<k+1を満たす整数)とr-1のべき乗の秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…,[[(r-1)n]]を用いて、多項式に代入する値xの秘匿文[[x]]から、xを代入した多項式a0+a1x1+…+anxnの値の秘匿文[[a0+a1x1+…+anxn]]を計算する。以下、図4に従い秘密計算システム10の動作について説明する。
乱数生成手段110は、k≦r<k+1を満たす乱数rを生成し、秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を生成する(S110)。図1の秘密計算アルゴリズムの入力値の事前セットアップに対応する。秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]は、記録部1901、…、190Wに記録しておく。
比較手段120は、秘匿文[[x]]が入力される前に生成しておいた秘匿文[[r]]を用いて、秘匿文[[x]]から値xと乱数rの大小比較結果であるuの秘匿文[[u]]←([[x]]≦?[[r]])を生成する(S120)。図1の秘密計算アルゴリズムのステップ1に対応する。
マスク手段130は、秘匿文[[x]]、[[r]]とS120で生成した秘匿文[[u]]から、マスクcの秘匿文[[c]]を[[c]]=[[x]]-[[r]]+[[u]]として生成する(S130)。図1の秘密計算アルゴリズムのステップ2に対応する。
復元手段140は、S130で生成した秘匿文[[c]]から、マスクcを復元する(S140)。図1の秘密計算アルゴリズムのステップ3に対応する。
係数計算手段150は、多項式の次数n、係数a0,a1,…,anとS140で復元したマスクcから、i=0,…,nに対して係数biを次式で計算する(S150)。図1の秘密計算アルゴリズムのステップ4に対応する。
選択手段160は、S120で生成した秘匿文[[u]]から、i=1,…,nに対して大小比較結果uに応じて定まる選択値si(ただし、u=1ならばsi=(r-1)i、u=0ならばsi=ri)の秘匿文[[si]]を生成する(S160)。図1の秘密計算アルゴリズムのステップ5に対応する。
線形結合手段170は、S150で生成した係数bi(i=0,…,n)とS160で生成した秘匿文[[si]](i=1,…,n)から、線形結合b0+b1[[s1]]+…+bn[[sn]]を計算する(S160)。図1の秘密計算アルゴリズムのステップ6に対応する。
本実施形態の発明によれば、多項式a0+a1x1+…+anxnの計算をn回の加算、n回(1段)の乗算、1回の比較、1回の復元で実現することができるため、計算コストが削減される。特に、固定小数点での計算のように加算演算が無視できる場合は、計算時間が効果的に削減される。具体的には、従来おおよそビット分解を2n-1回(ceiling(log2n)+1段) 要した処理がn+1回(2段)の処理で実現することができる。また、代入する値xの範囲がk≦x<k+1に制限されることを利用し、入力値[[x]]から出力値[[a0+a1x1+…+anxn]]を計算する処理をx-r+uと事前に生成した乱数rとr-1のべき乗の秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を用いて計算する処理に還元している。通常、x-r+u を復元すると情報が漏れてしまうが、x-r+uが0より大きく1以下の一様ランダムな値となるように調整することにより、安全にa0+a1x1+…+anxnの計算を実行することを可能としている。
<第二実施形態>
xの逆数1/xが多項式を用いて1/x=a0+a1x1+…+anxnと表すことができる場合、第一実施形態の秘密計算アルゴリズムを用いて、xの秘匿文[[x]]から、逆数1/xの秘匿文[[1/x]]を効率的に計算することができる。
xの逆数1/xが多項式を用いて1/x=a0+a1x1+…+anxnと表すことができる場合、第一実施形態の秘密計算アルゴリズムを用いて、xの秘匿文[[x]]から、逆数1/xの秘匿文[[1/x]]を効率的に計算することができる。
第二実施形態の秘密計算アルゴリズムの入力と出力、処理手順と第二実施形態の秘密計算アルゴリズムを実現する秘密計算システムについて、以下説明していく。
[入力と出力]
図5に示す第二実施形態の秘密計算アルゴリズムの入力と出力について説明する。
図5に示す第二実施形態の秘密計算アルゴリズムの入力と出力について説明する。
多項式a0+a1x1+…+anxnの次数n、係数a0,a1,…,anと逆数の値を計算する値xの秘匿文[[x]]が入力となる。また、1≦r<2を満たす乱数rとr-1のべき乗の秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]も入力する。
xの逆数1/xの秘匿文[[1/x]]が出力となる。
[処理手順]
図5に示す第二実施形態の秘密計算アルゴリズムの処理手順について説明する。その際、図5の左端の数字を用いてステップ1、ステップ2等と表現することにする。
図5に示す第二実施形態の秘密計算アルゴリズムの処理手順について説明する。その際、図5の左端の数字を用いてステップ1、ステップ2等と表現することにする。
ステップ1では、入力された秘匿文[[x]]に対して、x=s×2e×f(s∈{-1,1}、eは整数、1≦f<2)を満たすs,e,fの秘匿文[[s]],[[e]],[[f]]を生成する。参考非特許文献1の[[x]]の浮動小数点表現を求める演算を用いて、秘匿文[[s]],[[e]],[[f]]を生成することができる。
ステップ2では、多項式の次数n、係数a0,a1,…,an、秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]とステップ1で生成した秘匿文[[f]]から、 [[a0+a1f1+…+anfn]]を計算する。ここで、[[a0+a1f1+…+anfn]]=[[1/f]]が成り立つ。
ステップ3では、ステップ1で生成した秘匿文[[s]],[[e]]とステップ2で計算した秘匿文[[1/f]]から、[[s]]×([[1/f]]<<[[-e]])を計算する。ここで、[[s]]×([[1/f]]<<[[-e]])=[[1/x]]が成り立つ。
[秘密計算システム]
以下、図6~図7を参照して第二実施形態の秘密計算システム20について説明する。秘密計算システム20は、W個(Wは2以上の所定の整数)の秘密計算装置1001、…、100Wを含む代わりに、W個の秘密計算装置2001、…、200Wを含む点において秘密計算システム10と異なる。図6は、秘密計算装置200i(1≦i≦W)の構成を示すブロック図である。図7は、秘密計算システム20の動作を示すフローチャートである。
以下、図6~図7を参照して第二実施形態の秘密計算システム20について説明する。秘密計算システム20は、W個(Wは2以上の所定の整数)の秘密計算装置1001、…、100Wを含む代わりに、W個の秘密計算装置2001、…、200Wを含む点において秘密計算システム10と異なる。図6は、秘密計算装置200i(1≦i≦W)の構成を示すブロック図である。図7は、秘密計算システム20の動作を示すフローチャートである。
図6に示すように秘密計算装置200iは、入力値分解部210iと、逆数計算部220iを更に含む点において秘密計算装置100iと異なる。入力値分解部210iと逆数計算部220iも、秘密計算アルゴリズムで必要とされる演算のうち、その機能を実現するうえで必要になる演算を実行できるように構成されている。
秘密計算システム20の入力値分解手段210は入力値分解部2101、…、210Wで構成され、逆数計算手段220は逆数計算部2201、…、220Wで構成される。
秘密計算システム20は、事前に生成した乱数r(1≦r<2)とr-1のべき乗の秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を用いて、多項式に代入する値xの秘匿文[[x]]から、xの逆数1/xの秘匿文[[1/x]]を計算する。以下、図7に従い秘密計算システム20の動作について説明する。
乱数生成手段110は、1≦r<2を満たす乱数rを生成し、秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を生成する(S110)。図5の秘密計算アルゴリズムの入力値の事前セットアップに対応する。秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]は、記録部1901、…、190Wに記録しておく。
入力値分解手段210は、秘匿文[[x]]から、x=s×2e×f(s∈{-1,1}、eは整数、1≦f<2)を満たすs,e,fの秘匿文[[s]],[[e]],[[f]]を生成する(S210)。図5の秘密計算アルゴリズムのステップ1に対応する。
比較手段120、マスク手段130、復元手段140、係数計算手段150、選択手段160、線形結合手段170は、多項式の次数n、係数a0,a1,…,anと、[[x]]が入力される前に生成しておいた秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]と、S210で生成した秘匿文[[f]]とから、[[a0+a1f1+…+anfn]](=[[1/f]])を計算する(S120~S170)。図5の秘密計算アルゴリズムのステップ2(図1の秘密計算アルゴリズムのステップ1~ステップ6)に対応する。
逆数計算手段220は、S210で生成した秘匿文[[s]],[[e]]と、S120~S170で計算した秘匿文[[1/f]]から、[[s]]×([[1/f]]<<[[-e]])を逆数1/xの秘匿文[[1/x]]として計算する(S220)。図5の秘密計算アルゴリズムのステップ3に対応する。
本実施形態の発明によれば、第一実施形態の秘密アルゴリズムを用いて多項式a0+a1x1+…+anxnの計算をすることにより、秘匿文[[x]]から逆数1/xの秘匿文[[1/x]]を計算するコストを削減することができる。また、xを分解して得られるfの範囲が1≦f<2に制限されることを利用し、入力値[[f]]から出力値[[a0+a1f1+…+anfn]]を計算する処理をf-r+uと事前に生成した乱数rとr-1のべき乗の秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を用いて計算する処理に還元している。通常、f-r+u を復元すると情報が漏れてしまうが、f-r+uが0より大きく1以下の一様ランダムな値となるように調整することにより、安全にa0+a1f1+…+anfnの計算を実行することを可能としている。
<第三実施形態>
xの対数logxが多項式を用いてlogx=a0+a1x1+…+anxnと表すことができる場合、第一実施形態の秘密計算アルゴリズムを用いて、xの秘匿文[[x]]から、対数logxの秘匿文[[logx]]を効率的に計算することができる。
xの対数logxが多項式を用いてlogx=a0+a1x1+…+anxnと表すことができる場合、第一実施形態の秘密計算アルゴリズムを用いて、xの秘匿文[[x]]から、対数logxの秘匿文[[logx]]を効率的に計算することができる。
第三実施形態の秘密計算アルゴリズムの入力と出力、処理手順と第三実施形態の秘密計算アルゴリズムを実現する秘密計算システムについて、以下説明していく。
[入力と出力]
図8に示す第三実施形態の秘密計算アルゴリズムの入力と出力について説明する。
図8に示す第三実施形態の秘密計算アルゴリズムの入力と出力について説明する。
多項式a0+a1x1+…+anxnの次数n、係数a0,a1,…,anと対数の値を計算する値xの秘匿文[[x]]が入力となる。また、1≦r<2を満たす乱数rとr-1のべき乗の秘匿文[[r]], [[r2]],…,[[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]も入力する。
xの対数logxの秘匿文[[logx]]が出力となる。
[処理手順]
図8に示す第三実施形態の秘密計算アルゴリズムの処理手順について説明する。その際、図8の左端の数字を用いてステップ1、ステップ2等と表現することにする。
図8に示す第三実施形態の秘密計算アルゴリズムの処理手順について説明する。その際、図8の左端の数字を用いてステップ1、ステップ2等と表現することにする。
ステップ1では、入力された秘匿文[[x]]に対して、x=2e×f(eは整数、1≦f<2)を満たすe,fの秘匿文[[e]],[[f]]を生成する。参考非特許文献1の[[x]]の浮動小数点表現を求める演算を用いて、秘匿文[[e]],[[f]]を生成することができる。
ステップ2では、多項式の次数n、係数a0,a1,…,an、秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]とステップ1で生成した秘匿文[[f]]から、[[a0+a1f1+…+anfn]]を計算する。ここで、[[a0+a1f1+…+anfn]]=[[logf]]が成り立つ。
ステップ3では、ステップ1で生成した秘匿文[[e]]とステップ2で計算した秘匿文[[logf]]から、[[logf]]+[[e]]を計算する。ここで、[[logf]]+[[e]]=[[logx]]が成り立つ。
[秘密計算システム]
以下、図9~図10を参照して第三実施形態の秘密計算システム30について説明する。秘密計算システム30は、W個(Wは2以上の所定の整数)の秘密計算装置1001、…、100Wを含む代わりに、W個の秘密計算装置3001、…、300Wを含む点において秘密計算システム10と異なる。図9は、秘密計算装置300i(1≦i≦W)の構成を示すブロック図である。図10は、秘密計算システム30の動作を示すフローチャートである。
以下、図9~図10を参照して第三実施形態の秘密計算システム30について説明する。秘密計算システム30は、W個(Wは2以上の所定の整数)の秘密計算装置1001、…、100Wを含む代わりに、W個の秘密計算装置3001、…、300Wを含む点において秘密計算システム10と異なる。図9は、秘密計算装置300i(1≦i≦W)の構成を示すブロック図である。図10は、秘密計算システム30の動作を示すフローチャートである。
図9に示すように秘密計算装置300iは、入力値分解部310iと、対数計算部320iを更に含む点において秘密計算装置100iと異なる。入力値分解部310iと対数計算部320iも、秘密計算アルゴリズムで必要とされる演算のうち、その機能を実現するうえで必要になる演算を実行できるように構成されている。
秘密計算システム30の入力値分解手段310は入力値分解部3101、…、310Wで構成され、対数計算手段320は逆数計算部3201、…、320Wで構成される。
秘密計算システム30は、事前に生成した乱数r(1≦r<2)とr-1のべき乗の秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を用いて、多項式に代入する値xの秘匿文[[x]]から、xの対数logxの秘匿文[[logx]]を計算する。以下、図10に従い秘密計算システム30の動作について説明する。
乱数生成手段110は、1≦r<2を満たす乱数rを生成し、秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を生成する(S110)。図8の秘密計算アルゴリズムの入力値の事前セットアップに対応する。秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]は、記録部1901、…、190Wに記録しておく。
入力値分解手段310は、秘匿文[[x]]から、x=2e×f(eは整数、1≦f<2)を満たすe,fの秘匿文[[e]],[[f]]を生成する(S310)。図8の秘密計算アルゴリズムのステップ1に対応する。
比較手段120、マスク手段130、復元手段140、係数計算手段150、選択手段160、線形結合手段170は、多項式の次数n、係数a0,a1,…,anと、[[x]]が入力される前に生成しておいた秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]と、S310で生成した秘匿文[[f]]とから、[[a0+a1f1+…+anfn]](=[[logf]])を計算する(S120~S170)。図8の秘密計算アルゴリズムのステップ2(図1の秘密計算アルゴリズムのステップ1~ステップ6)に対応する。
対数計算手段320は、S310で生成した秘匿文[[e]]と、S120~S170で計算した秘匿文[[logf]]から、[[logf]]+[[e]]を対数logxの秘匿文[[logx]]として計算する(S320)。図8の秘密計算アルゴリズムのステップ3に対応する。
本実施形態の発明によれば、第一実施形態の秘密アルゴリズムを用いて多項式a0+a1x1+…+anxnの計算をすることにより、秘匿文[[x]]から対数logxの秘匿文[[logx]]を計算するコストを削減することができる。また、xを分解して得られるfの範囲が1≦f<2に制限されることを利用し、入力値[[f]]から出力値[[a0+a1f1+…+anfn]]を計算する処理をf-r+uと事前に生成した乱数rとr-1のべき乗の秘匿文[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を用いて計算する処理に還元している。通常、f-r+u を復元すると情報が漏れてしまうが、f-r+uが0より大きく1以下の一様ランダムな値となるように調整することにより、安全にa0+a1f1+…+anfnの計算を実行することを可能としている。
<補記>
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成要件)を実現する。
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD-RAM(Random Access Memory)、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP-ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
上述の本発明の実施形態の記載は、例証と記載の目的で提示されたものである。網羅的であるという意思はなく、開示された厳密な形式に発明を限定する意思もない。変形やバリエーションは上述の教示から可能である。実施形態は、本発明の原理の最も良い例証を提供するために、そして、この分野の当業者が、熟考された実際の使用に適するように本発明を色々な実施形態で、また、色々な変形を付加して利用できるようにするために、選ばれて表現されたものである。すべてのそのような変形やバリエーションは、公正に合法的に公平に与えられる幅にしたがって解釈された添付の請求項によって定められた本発明のスコープ内である。
Claims (10)
- a0+a1x1+…+anxnを変数xのn次多項式(nは多項式の次数、a0,a1,…,anは多項式の各係数)、xを前記n次多項式に代入する値、kをk≦x<k+1を満たす整数、rをk≦r<k+1を満たす乱数、[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を前記乱数rとr-1のべき乗の秘匿文とし、
2個以上の秘密計算装置で構成され、前記値xの秘匿文[[x]]から、前記値xを代入した前記n次多項式a0+a1x1+…+anxnの値の秘匿文[[a0+a1x1+…+anxn]]を計算する秘密計算システムであって、
前記秘匿文[[r]]を用いて、前記秘匿文[[x]]から前記値xと前記乱数rの大小比較結果であるu(ただし、x≦rならばu=1、x≦rでないならばu=0)の秘匿文[[u]]を生成する比較手段と、
前記秘匿文[[x]]、前記秘匿文[[r]]、前記秘匿文[[u]]から、マスクcの秘匿文[[c]]を[[c]]=[[x]]-[[r]]+[[u]]として生成するマスク手段と、
前記秘匿文[[c]]から、前記マスクcを復元する復元手段と、
前記次数n、前記係数a0,a1,…,an、前記マスクcから、i=0,…,nに対して係数biを次式で計算する係数計算手段と、
前記秘匿文[[u]]から、i=1,…,nに対して前記大小比較結果uに応じて定まる選択値si(ただし、u=1ならばsi=(r-1)i、u=0ならばsi=ri)の秘匿文[[si]]を生成する選択手段と、
前記係数bi(i=0,…,n)と前記秘匿文[[si]](i=1,…,n)の線形結合b0+b1[[s1]]+…+bn[[sn]]を前記秘匿文[[a0+a1x1+…+anxn]]として計算する線形結合手段と
を含む秘密計算システム。 - a0+a1x1+…+anxnを変数xのn次多項式(nは多項式の次数、a0,a1,…,anは多項式の各係数)、xを前記n次多項式に代入する値、rを1≦r<2を満たす乱数、[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を前記乱数rとr-1のべき乗の秘匿文とし、
前記値xの逆数1/xが1/x=a0+a1x1+…+anxnと表されるものとし、
2個以上の秘密計算装置で構成され、前記値xの秘匿文[[x]]から、前記逆数1/xの秘匿文[[1/x]]を計算する秘密計算システムであって、
前記秘匿文[[x]]から、x=s×2e×f(s∈{-1,1}、eは整数、1≦f<2)を満たすs,e,fの秘匿文[[s]],[[e]],[[f]]を生成する入力値分解手段と、
前記秘匿文[[r]]を用いて、前記秘匿文[[f]]から前記fと前記乱数rの大小比較結果であるu(ただし、f≦rならばu=1、f≦rでないならばu=0)の秘匿文[[u]]を生成する比較手段と、
前記秘匿文[[f]]、前記秘匿文[[r]]、前記秘匿文[[u]]から、マスクcの秘匿文[[c]]を[[c]]=[[f]]-[[r]]+[[u]]として生成するマスク手段と、
前記秘匿文[[c]]から、前記マスクcを復元する復元手段と、
前記次数n、前記係数a0,a1,…,an、前記マスクcから、i=0,…,nに対して係数biを次式で計算する係数計算手段と、
前記秘匿文[[u]]から、i=1,…,nに対して前記大小比較結果uに応じて定まる選択値si(ただし、u=1ならばsi=(r-1)i、u=0ならばsi=ri)の秘匿文[[si]]を生成する選択手段と、
前記係数bi(i=0,…,n)と前記秘匿文[[si]](i=1,…,n)の線形結合b0+b1[[s1]]+…+bn[[sn]]を前記fの逆数1/fの秘匿文[[1/f]]として計算する線形結合手段と、
前記秘匿文[[s]]、前記秘匿文[[e]]、前記秘匿文[[1/f]]から、[[s]]×([[1/f]]<<[[-e]])(ただし、[[1/f]]<< [[-e]]は1/fを-eビット左シフトした値)を前記秘匿文[[1/x]]として計算する逆数計算手段と
を含む秘密計算システム。 - a0+a1x1+…+anxnを変数xのn次多項式(nは多項式の次数、a0,a1,…,anは多項式の各係数)、xを前記n次多項式に代入する値、rを1≦r<2を満たす乱数、[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を前記乱数rとr-1のべき乗の秘匿文とし、
前記値xの対数logxがlogx=a0+a1x1+…+anxnと表されるものとし、
2個以上の秘密計算装置で構成され、前記値xの秘匿文[[x]]から、前記対数logxの秘匿文[[logx]]を計算する秘密計算システムであって、
前記秘匿文[[x]]から、x=2e×f(eは整数、1≦f<2)を満たすe,fの秘匿文[[e]],[[f]]を生成する入力値分解手段と、
前記秘匿文[[r]]を用いて、前記秘匿文[[f]]から前記fと前記乱数rの大小比較結果であるu(ただし、f≦rならばu=1、f≦rでないならばu=0)の秘匿文[[u]]を生成する比較手段と、
前記秘匿文[[f]]、前記秘匿文[[r]]、前記秘匿文[[u]]から、マスクcの秘匿文[[c]]を[[c]]=[[f]]-[[r]]+[[u]]として生成するマスク手段と、
前記秘匿文[[c]]から、前記マスクcを復元する復元手段と、
前記次数n、前記係数a0,a1,…,an、前記マスクcから、i=0,…,nに対して係数biを次式で計算する係数計算手段と、
前記秘匿文[[u]]から、i=1,…,nに対して前記大小比較結果uに応じて定まる選択値si(ただし、u=1ならばsi=(r-1)i、u=0ならばsi=ri)の秘匿文[[si]]を生成する選択手段と、
前記係数bi(i=0,…,n)と前記秘匿文[[si]](i=1,…,n)の線形結合b0+b1[[s1]]+…+bn[[sn]]を前記fの対数logfの秘匿文[[logf]]として計算する線形結合手段と、
前記秘匿文[[e]]、前記秘匿文[[logf]]から、前記対数logfにeを加算した値[[logf]]+[[e]]を前記秘匿文[[logx]]として計算する対数計算手段と
を含む秘密計算システム。 - a0+a1x1+…+anxnを変数xのn次多項式(nは多項式の次数、a0,a1,…,anは多項式の各係数)、xを前記n次多項式に代入する値、kをk≦x<k+1を満たす整数、rをk≦r<k+1を満たす乱数、[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を前記乱数rとr-1のべき乗の秘匿文とし、
前記値xの秘匿文[[x]]から、前記値xを代入した前記n次多項式a0+a1x1+…+anxnの値の秘匿文[[a0+a1x1+…+anxn]]を計算する2個以上の秘密計算装置で構成される秘密計算システムの中の秘密計算装置であって、
前記秘匿文[[r]]を用いて、前記秘匿文[[x]]から前記値xと前記乱数rの大小比較結果であるu(ただし、x≦rならばu=1、x≦rでないならばu=0)の秘匿文[[u]]を生成する比較部と、
前記秘匿文[[x]]、前記秘匿文[[r]]、前記秘匿文[[u]]から、マスクcの秘匿文[[c]]を[[c]]=[[x]]-[[r]]+[[u]]として生成するマスク部と、
前記秘匿文[[c]]から、前記マスクcを復元する復元部と、
前記次数n、前記係数a0,a1,…,an、前記マスクcから、i=0,…,nに対して係数biを次式で計算する係数計算部と、
前記秘匿文[[u]]から、i=1,…,nに対して前記大小比較結果uに応じて定まる選択値si(ただし、u=1ならばsi=(r-1)i、u=0ならばsi=ri)の秘匿文[[si]]を生成する選択部と、
前記係数bi(i=0,…,n)と前記秘匿文[[si]](i=1,…,n)の線形結合b0+b1[[s1]]+…+bn[[sn]]を前記秘匿文[[a0+a1x1+…+anxn]]として計算する線形結合部と
を含む秘密計算装置。 - a0+a1x1+…+anxnを変数xのn次多項式(nは多項式の次数、a0,a1,…,anは多項式の各係数)、xを前記n次多項式に代入する値、rを1≦r<2を満たす乱数、[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を前記乱数rとr-1のべき乗の秘匿文とし、
前記値xの逆数1/xが1/x=a0+a1x1+…+anxnと表されるものとし、
前記値xの秘匿文[[x]]から、前記逆数1/xの秘匿文[[1/x]]を計算する2個以上の秘密計算装置で構成される秘密計算システムの中の秘密計算装置であって、
前記秘匿文[[x]]から、x=s×2e×f(s∈{-1,1}、eは整数、1≦f<2)を満たすs,e,fの秘匿文[[s]],[[e]],[[f]]を生成する入力値分解部と、
前記秘匿文[[r]]を用いて、前記秘匿文[[f]]から前記fと前記乱数rの大小比較結果であるu(ただし、f≦rならばu=1、f≦rでないならばu=0)の秘匿文[[u]]を生成する比較部と、
前記秘匿文[[f]]、前記秘匿文[[r]]、前記秘匿文[[u]]から、マスクcの秘匿文[[c]]を[[c]]=[[f]]-[[r]]+[[u]]として生成するマスク部と、
前記秘匿文[[c]]から、前記マスクcを復元する復元部と、
前記次数n、前記係数a0,a1,…,an、前記マスクcから、i=0,…,nに対して係数biを次式で計算する係数計算部と、
前記秘匿文[[u]]から、i=1,…,nに対して前記大小比較結果uに応じて定まる選択値si(ただし、u=1ならばsi=(r-1)i、u=0ならばsi=ri)の秘匿文[[si]]を生成する選択部と、
前記係数bi(i=0,…,n)と前記秘匿文[[si]](i=1,…,n)の線形結合b0+b1[[s1]]+…+bn[[sn]]を前記fの逆数1/fの秘匿文[[1/f]]として計算する線形結合部と、
前記秘匿文[[s]]、前記秘匿文[[e]]、前記秘匿文[[1/f]]から、[[s]]×([[1/f]]<<[[-e]])(ただし、[[1/f]]<< [[-e]]は1/fを-eビット左シフトした値)を前記秘匿文[[1/x]]として計算する逆数計算部と
を含む秘密計算装置。 - a0+a1x1+…+anxnを変数xのn次多項式(nは多項式の次数、a0,a1,…,anは多項式の各係数)、xを前記n次多項式に代入する値、rを1≦r<2を満たす乱数、[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を前記乱数rとr-1のべき乗の秘匿文とし、
前記値xの対数logxがlogx=a0+a1x1+…+anxnと表されるものとし、
前記値xの秘匿文[[x]]から、前記対数logxの秘匿文[[logx]]を計算する2個以上の秘密計算装置で構成される秘密計算システムの中の秘密計算装置であって、
前記秘匿文[[x]]から、x=2e×f(eは整数、1≦f<2)を満たすe,fの秘匿文[[e]],[[f]]を生成する入力値分解部と、
前記秘匿文[[r]]を用いて、前記秘匿文[[f]]から前記fと前記乱数rの大小比較結果であるu(ただし、f≦rならばu=1、f≦rでないならばu=0)の秘匿文[[u]]を生成する比較部と、
前記秘匿文[[f]]、前記秘匿文[[r]]、前記秘匿文[[u]]から、マスクcの秘匿文[[c]]を[[c]]=[[f]]-[[r]]+[[u]]として生成するマスク部と、
前記秘匿文[[c]]から、前記マスクcを復元する復元部と、
前記次数n、前記係数a0,a1,…,an、前記マスクcから、i=0,…,nに対して係数biを次式で計算する係数計算部と、
前記秘匿文[[u]]から、i=1,…,nに対して前記大小比較結果uに応じて定まる選択値si(ただし、u=1ならばsi=(r-1)i、u=0ならばsi=ri)の秘匿文[[si]]を生成する選択部と、
前記係数bi(i=0,…,n)と前記秘匿文[[si]](i=1,…,n)の線形結合b0+b1[[s1]]+…+bn[[sn]]を前記fの対数logfの秘匿文[[logf]]として計算する線形結合部と、
前記秘匿文[[e]]、前記秘匿文[[logf]]から、前記対数logfにeを加算した値[[logf]]+[[e]]を前記秘匿文[[logx]]として計算する対数計算部と
を含む秘密計算装置。 - a0+a1x1+…+anxnを変数xのn次多項式(nは多項式の次数、a0,a1,…,anは多項式の各係数)、xを前記n次多項式に代入する値、kをk≦x<k+1を満たす整数、rをk≦r<k+1を満たす乱数、[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を前記乱数rとr-1のべき乗の秘匿文とし、
2個以上の秘密計算装置で構成される秘密計算システムを用いて、前記値xの秘匿文[[x]]から、前記値xを代入した前記n次多項式a0+a1x1+…+anxnの値の秘匿文[[a0+a1x1+…+anxn]]を計算する秘密計算方法であって、
前記秘密計算システムが、前記秘匿文[[r]]を用いて、前記秘匿文[[x]]から前記値xと前記乱数rの大小比較結果であるu(ただし、x≦rならばu=1、x≦rでないならばu=0)の秘匿文[[u]]を生成する比較ステップと、
前記秘密計算システムが、前記秘匿文[[x]]、前記秘匿文[[r]]、前記秘匿文[[u]]から、マスクcの秘匿文[[c]]を[[c]]=[[x]]-[[r]]+[[u]]として生成するマスクステップと、
前記秘密計算システムが、前記秘匿文[[c]]から、前記マスクcを復元する復元ステップと、
前記秘密計算システムが、前記次数n、前記係数a0,a1,…,an、前記マスクcから、i=0, …, nに対して係数biを次式で計算する係数計算ステップと、
前記秘密計算システムが、前記秘匿文[[u]]から、i=1,…,nに対して前記大小比較結果uに応じて定まる選択値si(ただし、u=1ならばsi=(r-1)i、u=0ならばsi=ri)の秘匿文[[si]]を生成する選択ステップと、
前記秘密計算システムが、前記係数bi(i=0,…,n)と前記秘匿文[[si]](i=1,…,n)の線形結合b0+b1[[s1]]+…+bn[[sn]]を前記秘匿文[[a0+a1x1+…+anxn]]として計算する線形結合ステップと
を実行する秘密計算方法。 - a0+a1x1+…+anxnを変数xのn次多項式(nは多項式の次数、a0,a1,…,anは多項式の各係数)、xを前記n次多項式に代入する値、rを1≦r<2を満たす乱数、[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を前記乱数rとr-1のべき乗の秘匿文とし、
前記値xの逆数1/xが1/x=a0+a1x1+…+anxnと表されるものとし、
2個以上の秘密計算装置で構成される秘密計算システムを用いて、前記値xの秘匿文[[x]]から、前記逆数1/xの秘匿文[[1/x]]を計算する秘密計算方法であって、
前記秘密計算システムが、前記秘匿文[[x]]から、x=s×2e×f(s∈{-1,1}、eは整数、1≦f<2)を満たすs,e,fの秘匿文[[s]],[[e]],[[f]]を生成する入力値分解ステップと、
前記秘密計算システムが、前記秘匿文[[r]]を用いて、前記秘匿文[[f]]から前記fと前記乱数rの大小比較結果であるu(ただし、f≦rならばu=1、f≦rでないならばu=0)の秘匿文[[u]]を生成する比較ステップと、
前記秘密計算システムが、前記秘匿文[[f]]、前記秘匿文[[r]]、前記秘匿文[[u]]から、マスクcの秘匿文[[c]]を[[c]]=[[f]]-[[r]]+[[u]]として生成するマスクステップと、
前記秘密計算システムが、前記秘匿文[[c]]から、前記マスクcを復元する復元ステップと、
前記秘密計算システムが、前記次数n、前記係数a0,a1,…,an、前記マスクcから、i=0,…,nに対して係数biを次式で計算する係数計算ステップと、
前記秘密計算システムが、前記秘匿文[[u]]から、i=1,…,nに対して前記大小比較結果uに応じて定まる選択値si(ただし、u=1ならばsi=(r-1)i、u=0ならばsi=ri)の秘匿文[[si]]を生成する選択ステップと、
前記秘密計算システムが、前記係数bi(i=0,…,n)と前記秘匿文[[si]](i=1,…,n)の線形結合b0+b1[[s1]]+…+bn[[sn]]を前記fの逆数1/fの秘匿文[[1/f]]として計算する線形結合ステップと、
前記秘密計算システムが、前記秘匿文[[s]]、前記秘匿文[[e]]、前記秘匿文[[1/f]]から、[[s]]×([[1/f]]<<[[-e]])(ただし、[[1/f]]<<[[-e]]は1/fを-eビット左シフトした値)を前記秘匿文[[1/x]]として計算する逆数計算ステップと
を実行する秘密計算方法。 - a0+a1x1+…+anxnを変数xのn次多項式(nは多項式の次数、a0,a1,…,anは多項式の各係数)、xを前記n次多項式に代入する値、rを1≦r<2を満たす乱数、[[r]], [[r2]],…, [[rn]], [[r-1]], [[(r-1)2]],…, [[(r-1)n]]を前記乱数rとr-1のべき乗の秘匿文とし、
前記値xの対数logxがlogx=a0+a1x1+…+anxnと表されるものとし、
2個以上の秘密計算装置で構成される秘密計算システムを用いて、前記値xの秘匿文[[x]]から、前記対数logxの秘匿文[[logx]]を計算する秘密計算方法であって、
前記秘密計算システムが、前記秘匿文[[x]]から、x=2e×f(eは整数、1≦f<2)を満たすe,fの秘匿文[[e]],[[f]]を生成する入力値分解ステップと、
前記秘密計算システムが、前記秘匿文[[r]]を用いて、前記秘匿文[[f]]から前記fと前記乱数rの大小比較結果であるu(ただし、f≦rならばu=1、f≦rでないならばu=0)の秘匿文[[u]]を生成する比較ステップと、
前記秘密計算システムが、前記秘匿文[[f]]、前記秘匿文[[r]]、前記秘匿文[[u]]から、マスクcの秘匿文[[c]]を[[c]]=[[f]]-[[r]]+[[u]]として生成するマスクステップと、
前記秘密計算システムが、前記秘匿文[[c]]から、前記マスクcを復元する復元ステップと、
前記秘密計算システムが、前記次数n、前記係数a0,a1,…,an、前記マスクcから、i=0,…,nに対して係数biを次式で計算する係数計算ステップと、
前記秘密計算システムが、前記秘匿文[[u]]から、i=1,…,nに対して前記大小比較結果uに応じて定まる選択値si(ただし、u=1ならばsi=(r-1)i、u=0ならばsi=ri)の秘匿文[[si]]を生成する選択ステップと、
前記秘密計算システムが、前記係数bi(i=0,…,n)と前記秘匿文[[si]](i=1,…,n)の線形結合b0+b1[[s1]]+…+bn[[sn]]を前記fの対数logfの秘匿文[[logf]]として計算する線形結合ステップと、
前記秘密計算システムが、前記秘匿文[[e]]、前記秘匿文[[logf]]から、前記対数logfにeを加算した値[[logf]]+[[e]]を前記秘匿文[[logx]]として計算する対数計算ステップと
を実行する秘密計算方法。 - 請求項1ないし3のいずれか1項に記載の秘密計算システムを構成する秘密計算装置としてコンピュータを機能させるためのプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201880007430.2A CN110199338B (zh) | 2017-01-20 | 2018-01-18 | 秘密计算系统、秘密计算装置、秘密计算方法、记录介质 |
JP2018562420A JP6629466B2 (ja) | 2017-01-20 | 2018-01-18 | 秘密計算システム、秘密計算装置、秘密計算方法、プログラム |
US16/475,265 US11164484B2 (en) | 2017-01-20 | 2018-01-18 | Secure computation system, secure computation device, secure computation method, and program |
EP18741330.7A EP3573040B1 (en) | 2017-01-20 | 2018-01-18 | Secure computation system, secure computation device, secure computation method, and program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017-008095 | 2017-01-20 | ||
JP2017008095 | 2017-01-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018135563A1 true WO2018135563A1 (ja) | 2018-07-26 |
Family
ID=62908612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/001341 WO2018135563A1 (ja) | 2017-01-20 | 2018-01-18 | 秘密計算システム、秘密計算装置、秘密計算方法、プログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US11164484B2 (ja) |
EP (1) | EP3573040B1 (ja) |
JP (1) | JP6629466B2 (ja) |
CN (1) | CN110199338B (ja) |
WO (1) | WO2018135563A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020053860A (ja) * | 2018-09-27 | 2020-04-02 | Kddi株式会社 | 秘匿計算装置、秘匿計算方法及び秘匿計算プログラム |
JP2020160353A (ja) * | 2019-03-27 | 2020-10-01 | Kddi株式会社 | 秘匿計算装置、秘匿計算方法及び秘匿計算プログラム |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11456862B2 (en) * | 2017-07-05 | 2022-09-27 | Nippon Telegraph And Telephone Corporation | Secure computation system, secure computation apparatus, secure computation method, and recording medium |
KR102667837B1 (ko) * | 2017-08-30 | 2024-05-21 | 인퍼, 인코포레이티드 | 고정밀 프라이버시 보호 실가 함수 평가 |
JP6977882B2 (ja) * | 2018-05-25 | 2021-12-08 | 日本電信電話株式会社 | 秘密一括近似システム、秘密計算装置、秘密一括近似方法、およびプログラム |
CN109255247B (zh) * | 2018-08-14 | 2020-08-14 | 阿里巴巴集团控股有限公司 | 多方安全计算方法及装置、电子设备 |
JP2022523182A (ja) * | 2019-02-22 | 2022-04-21 | インファー,インク. | モジュラー整数を使用したセキュアなマルチパーティ計算のための算術 |
JP7327511B2 (ja) * | 2019-12-19 | 2023-08-16 | 日本電信電話株式会社 | 秘密乱数生成システム、秘密計算装置、秘密乱数生成方法、およびプログラム |
CN114945965A (zh) * | 2020-01-20 | 2022-08-26 | 日本电信电话株式会社 | 秘密倒数计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3600454B2 (ja) * | 1998-08-20 | 2004-12-15 | 株式会社東芝 | 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体 |
WO2005109379A1 (ja) * | 2004-05-12 | 2005-11-17 | Matsushita Electric Industrial Co., Ltd. | 暗号システム、暗号装置、復号装置、プログラムおよび集積回路 |
JP4671776B2 (ja) * | 2005-06-15 | 2011-04-20 | 株式会社エヌ・ティ・ティ・ドコモ | 秘匿処理装置及び秘匿処理方法 |
CN101505222B (zh) * | 2005-12-19 | 2012-12-05 | 日本电信电话株式会社 | 终端识别方法、认证方法、认证系统、服务器、终端、无线基站、程序以及记录介质 |
JP4905000B2 (ja) * | 2006-09-01 | 2012-03-28 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US8861734B2 (en) * | 2007-08-22 | 2014-10-14 | Nec Corporation | Secret information distribution system, method, program, and transmission system |
JP5736816B2 (ja) * | 2010-05-31 | 2015-06-17 | ソニー株式会社 | 認証装置、認証方法、プログラム、及び署名生成装置 |
DK2634955T3 (da) * | 2010-10-29 | 2020-02-03 | Hitachi Ltd | Fremgangsmåde til informationsautentifikation og informationsautentifikationssystem |
WO2012121333A1 (ja) * | 2011-03-10 | 2012-09-13 | 日本電信電話株式会社 | 秘匿積和結合システム、計算装置、秘匿積和結合方法、及びそれらのプログラム |
FR2976101B1 (fr) * | 2011-05-31 | 2013-07-05 | Oberthur Technologies | Procede de traitement cryptographique de donnees |
JP6142704B2 (ja) * | 2013-07-11 | 2017-06-07 | 富士通株式会社 | 秘匿データ照合装置、秘匿データ照合プログラムおよび秘匿データ照合方法 |
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 |
JP2016012111A (ja) * | 2014-06-30 | 2016-01-21 | 富士通株式会社 | 暗号処理方法、暗号処理装置、および暗号処理プログラム |
WO2016129363A1 (ja) * | 2015-02-12 | 2016-08-18 | 学校法人東京理科大学 | 秘密分散を用いた秘匿演算システムに関する計算装置 |
-
2018
- 2018-01-18 EP EP18741330.7A patent/EP3573040B1/en active Active
- 2018-01-18 JP JP2018562420A patent/JP6629466B2/ja active Active
- 2018-01-18 US US16/475,265 patent/US11164484B2/en active Active
- 2018-01-18 CN CN201880007430.2A patent/CN110199338B/zh active Active
- 2018-01-18 WO PCT/JP2018/001341 patent/WO2018135563A1/ja unknown
Non-Patent Citations (8)
Title |
---|
HAMADA, KOKI: "2D3-4 Secure multi-party algorithms for evaluating some elementary functions with efficient on-line complexity", PROCEEDINGS [USB] OF 2017 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS2017), vol. 2D3-4, 24 January 2017 (2017-01-24), pages 1 - 6, XP009515684 * |
IVAN DAMGARDVALERIO PASTRONIGEL SMARTSARAH ZAKARIAS: "Multiparty Computation from Somewhat Homomorphic Encryption", CRYPTO 2012, LNCS7417, 2012, pages 643 - 662, XP055557632, DOI: 10.1007/978-3-642-32009-5_38 |
KAMM, L. ET AL.: "Secure floating-point arithmetic and private satellite collision analysis", CRYPTOLOGY EPRINT ARCHIVE: REPORT 2013/850, 17 December 2013 (2013-12-17), XP061015239, Retrieved from the Internet <URL:https://eprint.iacr.org/2013/850.pdf> [retrieved on 20180328] * |
KOJI CHIDAKOKI HAMADADAI IKARASHIKATSUMI TAKAHASHI: "A Three-party Secure Function Evaluation with Lightweight Verifiability Revisited", INFORMATION PROCESSING SOCIETY OF JAPAN SYMPOSIUM SERIES, vol. 2010, no. 9, 2010, pages 555 - 560, XP008171075 |
LAUD P. ET AL.: "Optimizing secure computation programs with private conditionals", CRYPTOLOGY EPRINT ARCHIVE: REPORT 2016/942, 1 October 2016 (2016-10-01), XP055514500, Retrieved from the Internet <URL:https://eprint.iacr.org/2016/942.pdf> [retrieved on 20180328] * |
LIINA KAMMJAN WILLEMSON: "Secure floating point arithmetic and private satellite collision analysis", INTERNATIONAL JOURNAL OF INFORMATION SECURITY, vol. 14, no. 6, 2015, pages 531 - 548, XP035577326, DOI: 10.1007/s10207-014-0271-8 |
MEHRDAD ALIASGARIMARINA BLANTONYIHUA ZHANGAARON STEELE: "Secure Computation on Floating Point Numbers", NDSS 2013, 2013 |
See also references of EP3573040A4 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020053860A (ja) * | 2018-09-27 | 2020-04-02 | Kddi株式会社 | 秘匿計算装置、秘匿計算方法及び秘匿計算プログラム |
JP2020160353A (ja) * | 2019-03-27 | 2020-10-01 | Kddi株式会社 | 秘匿計算装置、秘匿計算方法及び秘匿計算プログラム |
JP7073295B2 (ja) | 2019-03-27 | 2022-05-23 | Kddi株式会社 | 秘匿計算装置、秘匿計算方法及び秘匿計算プログラム |
Also Published As
Publication number | Publication date |
---|---|
EP3573040A4 (en) | 2020-10-28 |
US11164484B2 (en) | 2021-11-02 |
CN110199338A (zh) | 2019-09-03 |
US20190333415A1 (en) | 2019-10-31 |
JP6629466B2 (ja) | 2020-01-15 |
EP3573040A1 (en) | 2019-11-27 |
CN110199338B (zh) | 2022-09-20 |
EP3573040B1 (en) | 2021-07-21 |
JPWO2018135563A1 (ja) | 2019-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018135563A1 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、プログラム | |
JP6766182B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、プログラム | |
JP7067632B2 (ja) | 秘密シグモイド関数計算システム、秘密ロジスティック回帰計算システム、秘密シグモイド関数計算装置、秘密ロジスティック回帰計算装置、秘密シグモイド関数計算方法、秘密ロジスティック回帰計算方法、プログラム | |
US20190199509A1 (en) | Processing apparatus, processing method, storage medium, and encryption processing system | |
EP4016506B1 (en) | Softmax function secret calculation system, softmax function secret calculation device, softmax function secret calculation method, neural network secret calculation system, neural network secret learning system, and program | |
WO2020071441A1 (ja) | 秘密シグモイド関数計算システム、秘密ロジスティック回帰計算システム、秘密シグモイド関数計算装置、秘密ロジスティック回帰計算装置、秘密シグモイド関数計算方法、秘密ロジスティック回帰計算方法、プログラム | |
Tjell et al. | Privacy in distributed computations based on real number secret sharing | |
JP6585846B2 (ja) | 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム | |
JP6825119B2 (ja) | 秘密読み込み装置、秘密書き込み装置、それらの方法、およびプログラム | |
Budati et al. | High speed data encryption technique with optimized memory based RSA algorithm for communications | |
JP6532843B2 (ja) | 秘匿計算システム、第一秘匿計算装置、第二秘匿計算装置、秘匿回路生成方法、秘匿回路評価方法、プログラム | |
US20220318338A1 (en) | Secure conjugate gradient method computation system, secure computation apparatus, conjugate gradient method computation apparatus, secure conjugate gradient method computation method, conjugate gradient method computation method, and program | |
JP2021083039A (ja) | 秘匿演算装置、秘匿演算方法及び秘匿演算プログラム | |
JP4692022B2 (ja) | 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム | |
EP4213135A1 (en) | Secret exponent part unifying system, secret exponent part unifying device, secret exponent part unifying method, secret sum calculation system, secret product sum calculation system, and program | |
KR102337865B1 (ko) | 동형 암호에 기초한 산술 연산 시스템 및 이를 이용한 동형 암호 산술 연산 방법 | |
KR102582082B1 (ko) | 공개키를 이용한 agcd 기반 완전동형암호 연산 방법 및 시스템 | |
JP2021113956A (ja) | 秘匿演算装置、秘匿演算方法及び秘匿演算プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18741330 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2018562420 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: 2018741330 Country of ref document: EP Effective date: 20190820 |