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

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

Info

Publication number
WO2016159357A1
WO2016159357A1 PCT/JP2016/060941 JP2016060941W WO2016159357A1 WO 2016159357 A1 WO2016159357 A1 WO 2016159357A1 JP 2016060941 W JP2016060941 W JP 2016060941W WO 2016159357 A1 WO2016159357 A1 WO 2016159357A1
Authority
WO
WIPO (PCT)
Prior art keywords
share
calculation
secret
extended
finite field
Prior art date
Application number
PCT/JP2016/060941
Other languages
English (en)
French (fr)
Inventor
勇 寺西
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US15/562,659 priority Critical patent/US10749671B2/en
Priority to JP2017510254A priority patent/JP6693508B2/ja
Publication of WO2016159357A1 publication Critical patent/WO2016159357A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Definitions

  • the present invention is based on a Japanese patent application: Japanese Patent Application No. 2015-077064 (filed on April 3, 2015), and the entire contents of the application are incorporated herein by reference.
  • the present invention relates to a secret calculation system, a server device, a secret calculation method, and a program, and more particularly, to a secret calculation system, a server device, a secret calculation method, and a program based on a multi-party calculation method.
  • the secret sharing method (Share, Reconst) is a protocol for sharing a secret a owned by a user with a plurality of server devices 1,..., N, and a share generation function Share that creates a share from the secret a. Consists of a restoration function Reconst that restores the secret a from the share.
  • the secret a and the share are often elements of a finite field. In the present invention, a situation is also considered in which the secret a and the share are elements of a finite field. In the following, the secret sharing scheme in such a situation will be described.
  • secret sharing in F When F is a finite field, secret sharing where the secret a and the share are elements of the finite field F is called “secret sharing in F”. In addition, the share generated by “secret sharing in F” is called “share of F in secret a” or “share of F in secret a”.
  • the inputs and outputs of Share and Reconst functions are as follows: -The share generation function Share receives the secret a, the number N of server devices, and the finite field F (or information on the finite field F) as input, and outputs the shares s [1],..., s [N] of the secret a To do. ⁇ Restore function Reconst accepts part or all of shares s [1],..., s [N] and finite field F (or information about finite field F) as input, and means secret a or “restoration failure” Output data.
  • the secret sharing method (Share, Reconst) is used in the following procedure. First, when the user U shares the secret a with the server devices 1, ..., N, the user U executes Share (a, N, F) and outputs s [1],..., s [N] ⁇ F. obtain. Next, the user transmits the shares s [1], ..., s [N] to the server devices 1, ..., N, respectively. Later, when it becomes necessary to restore the secret from the share, the server devices i_1, ..., i_v satisfying ⁇ i_1,..., i_v ⁇ ⁇ Access Sent to user U. Next, the user U executes Reconst (s [i_1],..., S [i_v], F) to obtain the secret a.
  • the set Access of a subset of ⁇ 1,..., N ⁇ satisfies the following, the set Access is referred to as an access structure on ⁇ 1,. • If S ⁇ Access and S ⁇ T, then T ⁇ Access.
  • Shamir secret sharing method Next, the secret sharing method proposed by Shamir in Non-Patent Document 1 (hereinafter referred to as “Shamir secret sharing method”) will be described.
  • a natural number K called “threshold” is determined and fixed in advance.
  • the threshold value K needs to be equal to or less than the number N of server devices.
  • Shamir secret sharing method is a secret sharing method over a finite field.
  • the share function and restoration function of the Shamir secret sharing method are ShamirShare (a, K, N, F) and ShamirReconst (s [i_1],..., s [i_v], K, N, F).
  • a ⁇ F is a secret
  • s [i_1],..., s [i_v] ⁇ F is a share.
  • the functions ShamirShare and ShamirReconst are defined as follows.
  • MPC Multi Party Computation
  • the MPC protocol is means for securely calculating some algorithm by a plurality of server devices.
  • “multiplicative residue MPC protocol” and “random number generation MPC protocol” are used as MPC protocols.
  • s [1], ..., s [N] are assumed to be shares on a finite field F of some integer a.
  • t [1],..., T [N] is a share on a finite field F of some integer b.
  • the multiplicative residue MPC protocol is an MPC that securely executes a multiplicative residue algorithm, and server devices 1, ..., M [N] are (s [1], t [1], F),. ., (S [N], t [N], F) are executed as input, and server devices 1, ⁇ ..., M [N] output z [1], ..., z [n], respectively Receive as.
  • z [1], ..., z [N] are the shares of F on the product ab on F.
  • the random number generation MPC protocol is an MPC that securely executes a random number generation algorithm, and each of the server devices 1, ..., N is executed with the finite field F as an input, and the server devices 1, ..., N receives u [1], ..., u [N] as output respectively.
  • u [1],..., U [N] are the shares in F of uniform random numbers on the finite field F.
  • Non-Patent Document 2 Various methods (for example, the method described in Non-Patent Document 2) can be used as a method for realizing these protocols.
  • the inputted secret information is divided into partial secret information, and partial shared information is generated by performing an exclusive OR operation between the divided partial secret information and a random number or the partial secret information,
  • a technique is described in which generated partial shared information is connected to generate shared information, and the generated shared information is transmitted to a predetermined number of managers.
  • Patent Document 1 Suppose that all the disclosed contents of Patent Document 1 and Non-Patent Documents 1 and 2 are incorporated herein by reference. The following analysis was made by the present inventors.
  • the database administrator can view all the data deposited by the user. Therefore, if the user deposits data in the database, the user's privacy may be lost to the database administrator.
  • the user encrypts data to be deposited in the database.
  • the data is encrypted, there is a problem that even if it is desired to retrieve necessary data from the database later, the data cannot be read due to the encryption, so that the retrieval cannot be performed.
  • MPC multi-party computation
  • the server device group needs to perform communication for a constant number of rounds in order to perform AND calculation. Therefore, to calculate a [1] AND ... AND a [J] obtained by ANDing J bits a [1], ..., a [J], at least O (log J) rounds are required.
  • b is a partial bit string of a.
  • An object of the present invention is to provide a secret calculation system, a server device, a secret calculation method, and a program that contribute to solving the problem.
  • a secret calculation system is a secret calculation system that performs multi-party calculation of a value of a predetermined function having secret data as an argument, and includes a plurality of server devices, wherein the plurality of server devices are A storage unit that holds a share that is an element on a finite field generated by secretly sharing the secret data, a share extension unit that generates an extended share by extending the share, and the extension share is used to An OR calculation unit that executes an OR operation included in the predetermined function; and a NOT calculation unit that executes a NOT operation included in the predetermined function using the extended share.
  • the server device is one of the plurality of server devices included in the secret calculation system according to the first aspect.
  • a secret calculation method is a secret calculation method for performing multi-party calculation of a value of a predetermined function having secret data as an argument using a plurality of server devices, wherein the plurality of server devices One of the server devices accepts a share that is an element on a finite field generated by secretly sharing the secret data, expanding the share to generate an extended share, and expanding the share And performing an OR operation included in the predetermined function, and performing a NOT operation included in the predetermined function using the extended share.
  • a program according to a fourth aspect of the present invention is a program for performing multi-party calculation of a value of a predetermined function using secret data as an argument using a plurality of computers, and generated by secretly sharing the secret data
  • One of the plurality of computers is caused to execute processing for executing a NOT operation included in the predetermined function using a share.
  • the program can also be provided as a program product recorded in a non-transitory computer-readable storage medium.
  • the number of rounds in multi-party calculation can be reduced.
  • the multi-party calculation according to the related technology is constructed as follows. ⁇ Make multi-party calculation to calculate addition and multi-party calculation to calculate multiplication. Create multi-party calculations that calculate AND, multi-party calculations that calculate NOT, and multi-party calculations that calculate OR by combining the above-described addition and multiplication multi-party calculations. -Since arbitrary functions can be expressed using AND, NOT, and OR operators, they are realized by combining the above-mentioned multi-party calculations of AND, OR, and NOT.
  • Multi-party calculation of AND, OR, NOT is realized based on multi-party calculation of multiplication. Therefore, multiparty computation of these logical operators also requires a constant round.
  • multi-party calculation of OR of a plurality of data and AND of a plurality of data a large number of rounds are required as described above.
  • a multi-party calculation of NOT and a multi-party calculation of OR of a plurality of data are realized with as few multiplications as possible. This will improve the round efficiency of multi-party calculations. Since the AND operator can be expressed by combining OR and NOT, AND multiparty computation can be realized by OR and NOT multiparty computation.
  • the multi-party calculation of the NOT operator and the multi-party calculation of the OR operator of a plurality of data are each performed based on the following ideas.
  • finite field F is fixed, and element 0 of finite field F is associated with truth value “FALSE” and elements other than 0 are associated with truth value “TRUE”. Since each bit used in the multi-party calculation is a truth value, either 0 or an element of a finite field F other than 0 is allocated depending on whether each bit is FALSE or TRUE.
  • the extended share is regarded as sharing FALSE, and otherwise, the extended share is regarded as sharing TRUE.
  • L is an extension field of the finite field F
  • FIG. 1 is a block diagram illustrating the configuration of a secret calculation system 10 according to an embodiment.
  • a secret calculation system 10 is a secret calculation system that performs multi-party calculation of a value of a predetermined function having secret data as an argument, and includes a plurality of server devices 2-1 to 2-N. .
  • the server devices 2-1 to 2-N expand the shares with storage units 22-1 to 22-N that hold the original shares on the finite field (F) generated by secretly sharing secret data.
  • Share expansion units 231-1 to 231-N for generating an extended share
  • OR calculation units 232-1 to 232-N for performing an OR operation included in the predetermined function using the extended share
  • NOT calculation units 233-1 to 233-N that execute NOT operations included in the predetermined function using the extended share.
  • the share expansion units 231-1 to 231 -N may generate an array including a plurality of shares generated by secret sharing of the shares as an extended share.
  • the OR calculation units 232-1 to 232-N execute the OR operation by multiplying each component of the extended share by the random number share on the finite field (F) and adding them together.
  • the NOT calculation units 233-1 to 233-N are obtained by raising the value shared by each component of the extended share to the power (q ⁇ 1) obtained by subtracting 1 from the order (q) of the finite field. Multiply the product of the value subtracted from 1 to perform NOT operation.
  • the share expansion units 231-1 to 231-N represent a plurality of shares generated by secretly sharing the shares as elements on the extension field (L) of the finite field (F). You may make it produce
  • the OR calculation units 232-1 to 232-N execute the OR operation by multiplying the extended share to be subjected to the OR operation by the random number share on the extension field (L) and adding them together.
  • the NOT calculation units 233-1 to 233-N display the extended share subject to the NOT operation as a component in the base of the extended field (L), and the base corresponding to each component is the order of the finite field (F).
  • the number of rounds in multi-party calculation can be reduced. This is because the secret calculation system 10 can correctly calculate the OR operator and the NOT operator with high probability without increasing the order q of the finite field F.
  • is a security parameter.
  • N is the number of server devices, and the order q of the finite field F is N or more.
  • ⁇ 0, 1 ⁇ is naturally regarded as a subset of the finite field F.
  • FIG. 2 is a block diagram illustrating the configuration of the secret calculation system 10 according to the present embodiment. Note that a secret calculation system 10 according to a second embodiment to be described later also has a configuration similar to that of FIG.
  • the secret calculation system 10 includes a registration device 1 and server devices 2-1 to 2-N. Any one of the server devices 2-1 to 2-N may also function as the registration device 1.
  • the registration device 1 includes a communication unit 11, a storage unit 12, and a calculation unit 13.
  • the calculation unit 13 includes a share generation unit 131 and a restoration unit 132.
  • the calculation unit 23-n includes a share expansion unit 231-n, an OR calculation unit 232-n, and a NOT calculation unit 233-n.
  • the communication units 21-1 to 21-N of the server devices 2-1 to 2-N receive the shares s [u, 1], ..., s [u, N] from the registration device 1, respectively, the storage units Stored in 22-1 to 22-N.
  • Each of the share extension units 231-1 to 231 -N performs “share extension” by the time the multi-party calculation is started to obtain an extension share of s [u, 1],..., S [u, N], The obtained extended shares are stored in the storage units 22-1 to 22-N.
  • the server apparatuses 2-1 to 2-N finally obtain a share of ⁇ (a [1],..., A [U]).
  • the communication units 21-1 to 21-N of the server devices 2-1 to 2-N Is sent to the registration device 1.
  • the restoration unit 132 of the registration device 1 performs ⁇ (a [1],..., A [U] by performing “restoration calculation” to be described later based on the shares sent from the server devices 2-1 to 2-N. ).
  • the share expansion units 231-1 to 231-N provided in the server apparatuses 2-1 to 2-N perform share expansion has been described.
  • the share expansion may be performed on the registration device 1 side.
  • the communication unit 11 of the registration device 1 does not use the shares s [u, 1],..., S [u, N] themselves, but the expanded shares obtained by expanding these shares. Send to 1-2-N.
  • the share generation operation is common between the present embodiment and the second embodiment described later.
  • Registration device 1 receives secret a ⁇ F as input.
  • the communication unit 11 transmits the calculated shares s [1],..., S [N] as the shares of the server devices 2-1,.
  • the server apparatuses 2-1 to 2-N hold the received shares s [1],..., S [N] in the storage units 22-1 to 22-N, respectively.
  • the share expansion units 231-1 to 231-N of the server devices 2-1 to 2-N read the shares s [1],..., S [N] from the storage units 22-1 to 22-N, respectively.
  • the share extension units 231-1 to 231-N execute the random number generation MPC protocol, thereby obtaining a uniform random number r [ Generate a share of l, d].
  • the share expansion units 231-1 to 231 -N obtain the shares ⁇ [l, d, 1],..., ⁇ [l, d, N] of r [l, d], respectively.
  • the share extension unit 231-n outputs (t [n, 1],..., T [n, ⁇ ]) as an extension share.
  • the server apparatuses 2-1 to 2-N have an extended share of a [j] (t [j, 1, 1], ..., t [j, 1, ⁇ ]) ⁇ F ⁇ , ..., (t [j , N, 1], ..., t [j, N, ⁇ ]) while kept ⁇ F lambda to each storage unit 22-1 ⁇ 22-N, the server apparatus 2
  • the OR calculation units 232-1 to 232-N have extended shares (t [j, 1, 1],..., T [j, 1, ⁇ ]) ⁇ F lambda, ..., reads (t [j, N, 1 ], ..., t [j, N, ⁇ ]) the ⁇ F lambda from the storage unit 22-1 ⁇ 22-N.
  • OR calculation units 232-1 to 232-N each execute random number generation MPC J ⁇ times.
  • the OR calculation units 232-1 to 232-N have the random numbers R [j, l] on the finite field F respectively.
  • the NOT calculation unit 233-n can execute such a multi-party calculation by combining a sum multi-party calculation on a finite field F and a product multi-party calculation.
  • q is the order of the finite field F.
  • the NOT calculation units 233-1 to 233-N obtain the shares ⁇ [1, l],..., ⁇ [N, l] of d [l], respectively.
  • the NOT calculation units 233-1 to 233-N obtain e shares ⁇ [1],..., ⁇ [N] as execution results, respectively.
  • the share extension unit 231-n executes share extension with ⁇ [n] as an input. The extended share obtained as an execution result is written into the storage unit 22-n.
  • the restoration unit 132 of the registration device 1 has v (v ⁇ K) extended shares (t [i_1, 1], ..., t [i_1, ⁇ ]) ⁇ F ⁇ , ..., (t [i_v, 1] , ..., t [i_v, ⁇ ]) ⁇ F ⁇ is received as input.
  • the secret calculation system 10 of the present embodiment it is possible to reduce the probability of mistaken OR calculation while keeping the order q of the finite field F small. Therefore, according to the present embodiment, it is possible to correctly execute the multi-party calculation with high probability without deteriorating the round efficiency.
  • FIG. 2 is a block diagram illustrating the configuration of the secret calculation system 10 of this embodiment. Since the configuration of the secret calculation system 10 of the present embodiment is the same as the configuration of the secret calculation system of the first embodiment, description thereof is omitted.
  • a finite field F having an order q greater than or equal to the number N of server devices is used. Also, different elements m [1],..., M [N] of the finite field F are fixed.
  • L is an extension field of a finite field F, and the extension order is greater than or equal to the security parameter ⁇ .
  • the extension field L can be regarded as a ⁇ -dimensional vector space on F. Therefore, the bases E [1],..., E [ ⁇ ] ⁇ L of the extension field L as a ⁇ -dimensional vector space on F are fixed.
  • the share expansion unit 231-1 of the server apparatus 2-n is similar to the first embodiment.
  • the calculated T [n] is output as an extended share.
  • q is the order of the finite field F. From the definition of the extended share, ⁇ [n, y] is a share obtained by secretly sharing some element d [y].
  • the NOT calculation units 233-1 to 233-N obtain e shares ⁇ [1],..., ⁇ [N] as execution results, respectively.
  • the secret calculation system 10 of the present embodiment it is possible to reduce the probability of mistaken OR calculation while keeping the order q of the finite field F small. Therefore, according to the present embodiment, it is possible to correctly execute the multi-party calculation with high probability without deteriorating the round efficiency. In addition, it is possible to prevent a decrease in the efficiency of NOT calculation during this calculation.
  • the secret calculation system of this embodiment is an application of the secret calculation system according to the first embodiment to character string search (for example, partial match search of character strings).
  • N is the number of server devices.
  • a character string indicates a finite number of data called “words” arranged, and each word indicates an integer of 0 or more and less than W. Further, as the finite field F in the first embodiment, the order q is W or more.
  • FIG. 3 is a block diagram illustrating the configuration of the secret calculation system 20 according to the present embodiment.
  • the secret calculation system 20 includes a registration device 3, a search device 4, and server devices 2-1 to 2-N.
  • the registration device 1 and the search device 3 may be separate devices or the same device.
  • any of the server devices 2-1 to 2-N may have the functions of the registration device 1 and the search device 3.
  • the registration device 3 registers a character string with respect to the server devices 2-1 to 2-N.
  • the registration device 3 for registering a character string may be different or the same for each character string.
  • all the strings the same device can be supposed that a situation to be registered, indicating the status of registering the t-th string a t.
  • the search device 4 searches for the character strings stored in the server devices 2-1 to 2-N.
  • the search device 4 may be different for each search character string b or may be the same. In FIG. 3, as an example, a situation is assumed in which one search device 4 performs all searches.
  • the registration device 3 includes a communication unit 31, a storage unit 32, and a calculation unit 33.
  • the calculation unit 33 includes a share generation unit 331 that generates a share of the registered character string.
  • the search device 4 includes a communication unit 41, a storage unit 42, and a calculation unit 43.
  • the calculation unit 43 includes a share generation unit 431 that generates a share of the search character string, and a restoration unit 432.
  • the calculation unit 23-n includes a share expansion unit 231-n, an OR calculation unit 232-n, and a NOT calculation unit 233-n.
  • a a [1] ... a [U] is a character string to be registered.
  • the communication unit 31 of the registration device 3 sends the generated shares s [u, 1],..., S [u, N] to the server devices 2-1 to 2-N, respectively.
  • the server apparatuses 2-1 to 2-N store the received shares s [u, 1],..., S [u, N] in the storage units 22-1 to 22-N, respectively.
  • b is a partial character string of a. Goal to find out.
  • the communication unit 41 of the search device 4 sends the calculated share of b [v] to the server device 2-1, ..., the server device 2-N.
  • c [u, v] (a [u]-b [u + v]) q Calculate the expanded share of.
  • q is the order of the finite field F.
  • the restoration unit 432 restores a [1], ..., a [U] from the share of a [1], ..., a [U], respectively, using the restoration calculation of the first embodiment.
  • A a [1] ... a [U].
  • the secret calculation system 20 of the present embodiment it is possible to reduce the number of rounds when a character string search is performed based on multi-party calculation, thereby realizing a high-speed character string search.
  • the secret calculation system 20 of the present embodiment the same effect as that of the secret calculation system according to the third embodiment is brought about. That is, according to this embodiment, when performing character string search based on multi-party calculation, the number of rounds can be reduced, and high-speed character string search is realized.
  • the secret calculation system according to the first aspect is as described above.
  • the share extension unit generates, as the extension share, an array including a plurality of shares generated by secretly sharing the share.
  • the OR calculation unit performs the OR operation by multiplying each component of the extended share by multiplying by the share of the random number on the finite field,
  • the NOT calculation unit performs a multi-party calculation of a product of a value obtained by subtracting a value obtained by subtracting 1 from a value obtained by subtracting 1 from the order of the finite field as a value shared by each component of the extended share. Perform NOT operations, The secret calculation system according to aspect 1.
  • the share is a share on the finite field of the secret data based on Shamir's secret sharing method
  • the share extension unit generates the extended share by adding a share on the finite field of 0 by Shamir's secret sharing method to the share.
  • the secret calculation system according to mode 2.
  • the share extension unit generates a plurality of shares generated by secretly sharing the share as elements on the extension field of the finite field, and generates the extension share.
  • the OR calculation unit performs the OR operation by adding the share of the random number on the extension field to the extended share to be subjected to the OR operation,
  • the NOT calculation unit displays the extended share subject to NOT operation as a component in the base of the extension field, and multiplies each component by the power of the base corresponding to each component by the power of the order of the finite field.
  • the NOT operation is performed by calculating the value obtained by subtracting 1 from the product of the value shared by the obtained sum and subtracting 1 from the order of the finite field. Run the The secret calculation system according to aspect 1.
  • the share is a share on the finite field of the secret data based on Shamir's secret sharing method
  • the share extension unit generates the extension share by adding a share on the extension field of 0 according to Shamir's secret sharing method to the share.
  • the secret calculation system according to mode 4.
  • the plurality of server devices include a share generated by secretly sharing each word of the registration target character string and a share generated by secretly sharing each word of the search target character string received from the search device. Hold on Using the share expansion unit, the OR calculation unit, and the NOT calculation unit, a share of the power of the difference between each word of the registered character string and each word of the search character string is calculated using the registered character string.
  • the search device determines whether or not the search target character string partially matches the registration target character string based on the calculated OR of the NOT value.
  • the secret calculation system according to any one of forms 1 to 5.
  • Form 8 This is the same as the secret calculation method according to the third aspect.
  • the one server device generates, as the extended share, an array including a plurality of shares generated by secretly sharing the share, By multiplying each component of the extended share by a random number share on the finite field and adding together, the OR operation is performed, The NOT operation is performed by calculating a multi-party product of values obtained by subtracting 1 from the value obtained by subtracting 1 from the order of the finite field, the value shared by each component of the extended share, The secret calculation method according to claim 8.
  • the share is a share on the finite field of the secret data based on Shamir's secret sharing method, The one server device generates the extended share by adding a share on the finite field of 0 by Shamir's secret sharing method to the share.
  • the secret calculation method according to embodiment 9.
  • the one server device generates a plurality of shares generated by secretly sharing the share as elements on the extended field of the finite field, and generates the extended share.
  • Execute the OR operation by multiplying the expanded share that is the target of the OR operation by multiplying by the share of the random number on the extension field, Display the expanded share subject to NOT operation as a component in the base of the extension field, and calculate the sum of each component multiplied by the power of the base of the finite field of the base corresponding to each component.
  • the above-mentioned NOT operation is executed by performing a multi-party calculation of a value obtained by subtracting from 1 the product of the values shared by the sum and the power of the order of the finite field minus one.
  • the share is a share on the finite field of the secret data based on Shamir's secret sharing method
  • the one server device generates the extended share by adding a share on the extended field of 0 according to Shamir's secret sharing method to the share.
  • [Form 13] A program according to the fourth aspect.
  • the share is a share on the finite field of the secret data based on Shamir's secret sharing method, Adding the share on the finite field of 0 by Shamir's secret sharing method to the share, causing the one computer to execute the process of generating the extended share.
  • the share is a share on the finite field of the secret data based on Shamir's secret sharing method, Adding the share on the extension field of 0 by Shamir's secret sharing method to the share, causing the one computer to execute the process of generating the extension share, The program according to mode 16.

Landscapes

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

Abstract

 秘密データを引数とする所定の関数の値をマルチパーティ計算する秘密計算システムは複数のサーバ装置を備え、複数のサーバ装置は、前記秘密データを秘密分散して生成された有限体上の元であるシェアを保持する記憶部と、前記シェアを拡張して拡張シェアを生成するシェア拡張部と、前記拡張シェアを用いて前記所定の関数に含まれるOR演算を実行するOR計算部と、前記拡張シェアを用いて前記所定の関数に含まれるNOT演算を実行するNOT計算部と、を有する。マルチパーティ計算におけるラウンド数を削減する。

Description

秘密計算システム、サーバ装置、秘密計算方法、および、プログラム
 [関連出願についての記載]
 本発明は、日本国特許出願:特願2015-077064号(2015年4月3日出願)に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、秘密計算システム、サーバ装置、秘密計算方法、および、プログラムに関し、特にマルチパーティ計算手法に基づく秘密計算システム、サーバ装置、秘密計算方法、および、プログラムに関する。
 まず、本発明の背景技術と、本発明を記述するために必要な用語について説明する。
「秘密分散」
 秘密分散方式(Share, Reconst)は、ユーザが保有している秘密aを複数のサーバ装置1, …, Nでシェアして持つためのプロトコルであり、秘密aからシェアを作るシェア生成関数Shareと、シェアから秘密aを復元する復元関数Reconstから成る。非特許文献1に記載された方式をはじめとして、秘密aおよびシェアは有限体の元であることが多い。本発明でも、秘密aおよびシェアが有限体の元である状況を考える。以下では、かかる状況における秘密分散法式について説明する。
 Fを有限体とするとき、秘密aとシェアが有限体Fの元である秘密分散を「Fにおける秘密分散」という。また、「Fおける秘密分散」で生成されたシェアを「秘密aのF上のシェア」または「秘密aのFでのシェア」という。
 ShareおよびReconstの関数の入出力は、次のとおりである。
・シェア生成関数Shareは、秘密aとサーバ装置の台数Nと有限体F(ないし、有限体Fに関する情報)を入力として受け取り、秘密aのシェアs[1], …, s[N]を出力する。
・復元関数Reconstは、シェアs[1], …, s[N]の一部または全部と有限体F(ないし、有限体Fに関する情報)を入力として受け付け、秘密aまたは「復元失敗」を意味するデータを出力する。
 秘密分散方式(Share, Reconst)は、以下の手順で用いられる。まず、ユーザUは、秘密aをサーバ装置1, ..., Nにシェアする場合、Share(a, N, F)を実行して出力s[1], …, s[N] ∈ Fを得る。次に、ユーザはシェアs[1], ..., s[N]を、それぞれサーバ装置1, ..., Nに送信する。後に、シェアから秘密を復元する必要が生じた場合、{i_1, …, i_v} ∈ Accessを満たすサーバ装置i_1, ..., i_vが自身のシェアs[i_1], … ,s[i_v]をユーザUに送信する。次に、ユーザUは、Reconst(s[i_1], …, s[i_v], F)を実行して秘密aを得る。
 ここでは、ユーザUがReconst(s[i_1], …, s[i_v], F)を実行するケースについて説明した。ただし、ユーザU以外のユーザ、または、サーバ装置がReconst(s[i_1], …, s[i_v], F)を実行してもよい。
 さらに、{1, …, N}の部分集合の集合Accessが以下を満たすとき、集合Accessを{1, …, N}上のアクセス構造という。
・S ∈ AccessかつS ⊂ Tであれば、T ∈ Access.
 また、{1, …, N}上のアクセス集合Accessに対して、(Share, Reconst)が以下の性質を満たすとき、(Share, Reconst)はAccess-安全であるという。
・s[1], …, s[N]をShare(a, N, F)の出力、S = {i_1, …, i_v}を{1, …, N}の部分集合とする。この場合、S ∈ Accessであるとき、Reconst(s[i_1], .., s[i_v], F)はaを出力する。一方、S ∈ Accessでないとき、s[i_1], .., s[i_v]からaのいかなる部分情報も知ることができない。
「Shamirの秘密分散法」
 次に、非特許文献1においてShamirによって提案された秘密分散法(以下、「Shamir秘密分散法」という。)について説明する。Shamir秘密分散法では、「しきい値」という自然数Kを事前に決めて固定する。なお、しきい値Kはサーバ装置の台数N以下とする必要がある。
 Shamir秘密分散法におけるアクセスAccessは
Access = {S ⊂ {1, …, N} | SはK個以上元を含む}
である。よって、Shamir秘密分散法では、サーバ装置1, ..., NのうちのK台以上が集まれば、秘密を復元することができる。一方、Shamir秘密分散法では、K台未満のサーバ装置が集まっても、秘密に関する情報を一切得ることができない。
 Shamir秘密分散法は、有限体上の秘密分散法である。Fを有限体とするとき、Shamir秘密分散法のシェア関数、および、復元関数を、それぞれShamirShare(a, K, N, F)およびShamirReconst(s[i_1], …, s[i_v], K, N, F)と表す。ここで、a ∈ Fは秘密であり、s[i_1], …, s[i_v] ∈ Fはシェアである。また、関数ShamirShareおよびShamirReconstは、以下のように定義される。
・ShamirShare(a, K, N, F) : 乱数r[1], …, r[K - 1]をランダムに選び、i = 1, …, Nに対し、有限体F上の多項式f(X)を
            f(X) = a + Σk = 1, …, K - 1r[k]Xk
により定義し、
            s[i] = f(i)
を計算し、s[1], …, s[N]をそれぞれサーバ装置1, ..., Nのシェアとして返す。
・ShamirReconst(s[i_1], …, s[i_v], K, N, F) : vがK以上の場合、任意のu = 1, …, vに対して、f(i_u) = s[i_u]を満たす有限体F上のK - 1次多項式f(X)を求めてf(0)を出力する。一方、vがK未満の場合、秘密を復元できない旨のメッセージを返す。
「マルチパーティ計算(MPC:Multi Party Computation)プロトコル」
 MPCプロトコルとは、何らかのアルゴリズムを複数のサーバ装置でセキュアに計算する手段のことである。本発明では、MPCプロトコルとして、「乗法剰余MPCプロトコル」および「乱数生成MPCプロトコル」を用いる。
 乗法剰余MPCプロトコルにおいて、s[1], …, s[N]は何らかの整数aの有限体F上のシェアとする。一方、t[1], …, t[N]は、何らかの整数bの有限体F上のシェアとする。
 乗法剰余MPCプロトコルとは、乗法剰余アルゴリズムをセキュアに実行するMPCであり、サーバ装置1 , ..., M[N]が、それぞれ(s[1], t[1], F), ..., (s[N], t[N], F)を入力として実行され、サーバ装置1, ..., M[N]がそれぞれz[1], ..., z[n]を出力として受け取る。ここで、z[1], …, z[N]はF上の積abのF上のシェアである。
 一方、乱数生成MPCプロトコルとは、乱数生成アルゴリズムをセキュアに実行するMPCであり、サーバ装置1, ..., Nがいずれも有限体Fを入力として実行され、サーバ装置1, ..., Nがそれぞれu[1], ..., u[N]を出力として受け取る。ここで、u[1], …, u[N]は有限体F上の一様乱数のFにおけるシェアである。
 これらのプロトコルの実現方法として、様々な方法(例えば、非特許文献2に記載された方法)を用いることが可能である。
 なお、特許文献1には、入力した秘密情報を部分秘密情報に分割し、分割した部分秘密情報と乱数または当該部分秘密情報との排他的論理和演算を実行して部分分散情報を生成し、生成された部分分散情報を連結して分散情報を生成して、生成された分散情報を所定の人数の管理者に送信する技術が記載されている。
特開2009-037093号公報
A. Shamir, "How to Share a Secret," Communications of the ACM, November 1979, Volume 22, Number 11, pp. 612 - 613. O. Goldreich, S. Micali, and A. Wigderson, "HOW TO PLAY ANY MENTAL GAME or A completeness Theorem for Protocols with Honest Majority," in Proceedings of the Nineteenth Annual ACM Conference on Theory of Computing, ACM Press, 1987, pp. 218 - 229.
 上記特許文献1および非特許文献1、2の全開示内容は、本書に引用をもって繰り込み記載されているものとする。以下の分析は、本発明者によってなされたものである。
 クラウド技術の普及により、ユーザがクラウド等に設けられたデータベースにデータを預け、その後、データベースに預けたデータの中からユーザが必要なデータを検索して利用するサービスが一般化しつつある。
 しかし、このようなサービスでは、データベースの管理者はユーザが預けたデータをすべて閲覧することができる。したがって、ユーザがデータをデータベースに預けると、ユーザのプライバシーがデータベース管理者に筒抜けになるおそれがある。
 このような危険を回避するために、データベースに預けるデータをユーザが暗号化することが考えられる。しかしながら、データを暗号化してしまうと、後でデータベースから必要なデータを検索しようと思っても、暗号化によりデータが読めなくなっているため、検索ができないという問題が生じる。
 このようなジレンマを解決する技術として、マルチパーティ計算(MPC:Multi-Party Computation)プロトコルと呼ばれる技術が知られている。MPCプロトコルは、複数台のサーバ装置にデータa[1], …, a[m]を「シェア」して持った状態からスタートし、シェアされたデータから何らかのアルゴリズムφに従って必要な値φ(a[1], …, a[m])をセキュアに計算するプロトコルである。ここで、「シェア」は秘密分散方式で生成される。
 マルチパーティ計算に関する関連技術においては、論理演算子AND、OR、NOTのマルチパーティ計算方法を提案するとともに、一般の関数φに対してはφをAND、OR、NOT等の論理演算子で表した上で、論理演算子AND、OR、NOTのマルチパーティ計算方法を組み合わせることでφのマルチパーティ計算を実現している。
 関連技術に係るマルチパーティ計算では、ANDの計算を行うために、サーバ装置群は定数ラウンド分の通信を行う必要がある。したがって、J個のビットa[1], …, a[J]をANDしたa[1] AND … AND a[J]を計算するためには、最低でもO(log J)ラウンドを要する。
 例えば、1回のANDの計算にXラウンド要する状況下で8個(J = 8)のデータをANDしたa[1] AND … AND a[8]を計算するためには、以下の計算が必要となる。
・1~Xラウンド目でb[1] = a[1] AND a[2], b[2] = a[3] AND a[4], b[3] = a[5] AND a[6], b[4] = a[7] AND a[8]をマルチパーティ計算し、
・X+1~2Xラウンド目でc[1] = b[1] AND b[2], c[2] = b[3] AND b[4]をマルチパーティ計算し、
・2X+1~3Xラウンド目でc[1] AND c[2]をマルチパーティ計算する。
したがって、AND計算において、合計3X = (log2 8)・Xラウンドを要する。
 このように、関連技術に係るマルチパーティ計算では、多数のデータをANDする際、多数のラウンド数を要するという問題がある。
 特に、マルチパーティ計算を検索に応用した場合、上述の問題が顕著となる。例えば、クエリb = b[1] … b[m]を部分ビット列として含むビット列a = a[1] … a[n]を検索したい場合、φとして
φ(a, b) = 1(bがaの部分ビット列である場合)、
φ(a, b) = 0(それ以外の場合)
を満たすものを採用すればよい。
 ここで、bがaの部分ビット列であることは、論理式
  ∃ j  (b[j + 1] = a[j + 1]) AND … AND (b[j + n] = a[j + n])
を満たすことと同値である。したがって、部分ビット列であるか否かを判定するには、n個のデータのANDをマルチパーティ計算する必要があり、多数のラウンド数を要する。
 なお、特許文献1に記載された技術によっても、上述の問題は解消されない。
 そこで、マルチパーティ計算におけるラウンド数を削減することが課題となる。本発明の目的は、かかる課題解決に寄与する秘密計算システム、サーバ装置、秘密計算方法、および、プログラムを提供することにある。
 本発明の第1の態様に係る秘密計算システムは、秘密データを引数とする所定の関数の値をマルチパーティ計算する秘密計算システムであって、複数のサーバ装置を備え、前記複数のサーバ装置は、前記秘密データを秘密分散して生成された有限体上の元であるシェアを保持する記憶部と、前記シェアを拡張して拡張シェアを生成するシェア拡張部と、前記拡張シェアを用いて前記所定の関数に含まれるOR演算を実行するOR計算部と、前記拡張シェアを用いて前記所定の関数に含まれるNOT演算を実行するNOT計算部と、を有する。
 本発明の第2の態様に係るサーバ装置は、第1の態様に係る秘密計算システムに含まれる前記複数のサーバ装置のうちの一のサーバ装置である。
 本発明の第3の態様に係る秘密計算方法は、秘密データを引数とする所定の関数の値を複数のサーバ装置を用いてマルチパーティ計算する秘密計算方法であって、前記複数のサーバ装置のうちの一のサーバ装置が、前記秘密データを秘密分散して生成された有限体上の元であるシェアを受け付けるステップと、前記シェアを拡張して拡張シェアを生成するステップと、前記拡張シェアを用いて前記所定の関数に含まれるOR演算を実行するステップと、前記拡張シェアを用いて前記所定の関数に含まれるNOT演算を実行するステップと、を含む。
 本発明の第4の態様に係るプログラムは、秘密データを引数とする所定の関数の値を複数のコンピュータを用いてマルチパーティ計算するプログラムであって、前記秘密データを秘密分散して生成された有限体上の元であるシェアを受け付ける処理と、前記シェアを拡張して拡張シェアを生成する処理と、前記拡張シェアを用いて前記所定の関数に含まれるOR演算を実行する処理と、前記拡張シェアを用いて前記所定の関数に含まれるNOT演算を実行する処理と、を前記複数のコンピュータのうちの一のコンピュータに実行させる。なお、プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することもできる。
 本発明に係る秘密計算システム、サーバ装置、秘密計算方法、および、プログラムによると、マルチパーティ計算におけるラウンド数を削減することが可能となる。
一実施形態に係る秘密計算システムの構成を例示するブロック図である。 第1および第2の実施形態に係る秘密計算システムの構成を例示するブロック図である。 第3および第4の実施形態に係る秘密計算システムの構成を例示するブロック図である。
<発明の概要>
 はじめに、本発明の概要(基本的なアイデア)について説明する。
 関連技術に係るマルチパーティ計算は、以下のようにして構築されている。
・足し算を計算するマルチパーティ計算と掛け算を計算するマルチパーティ計算を作る。
・ANDを計算するマルチパーティ計算、NOTを計算するマルチパーティ計算、および、ORを計算するマルチパーティ計算を、上述の足し算と掛け算のマルチパーティ計算を組み合わせて作る。
・任意の関数はAND演算子とNOT演算子とOR演算子を用いて表現できるので、上述のAND, OR, NOTのマルチパーティ計算を組み合わせて実現する。
 上記において、足し算のマルチパーティ計算は、0ラウンドで(すなわち、サーバ装置間の通信を行うことなく)実現できることが知られている。一方、掛け算のマルチパーティ計算は定数ラウンドを要することが知られている。
 AND、OR、NOTのマルチパーティ計算は、掛け算のマルチパーティ計算をベースとして実現されている。したがって、これらの論理演算子のマルチパーティ計算も定数ラウンドを要する。特に、複数個のデータのORや複数データのANDをマルチパーティ計算するには、上述のように多数のラウンド数を要する。
 そこで、本発明では、NOTのマルチパーティ計算と複数データのORのマルチパーティ計算を、可能な限り少ない掛け算で実現する。これにより、マルチパーティ計算のラウンド効率の改善を図る。なお、AND演算子はORとNOTを組み合わせて表現することができるので、ANDのマルチパーティ計算はORとNOTのマルチパーティ計算によって実現することができる。
 本発明において、NOT演算子のマルチパーティ計算と複数データのOR演算子のマルチパーティ計算は、それぞれ、以下のアイデアに基づいて実行される。
 まず、有限体Fを固定し、有限体Fの元0を真理値「FALSE」、0以外の元を真理値「TRUE」に対応させる。マルチパーティ計算で用いられる各ビットは真理値であるため、各ビットがFALSEであるかTRUEであるかに応じて、0または0以外の有限体Fの元のいずれかを割り振る。
 NOT aをマルチパーティ計算するには、aのシェアを用いて
1 - aq - 1
のシェアをマルチパーティ計算すればよい。ここで、qは有限体Fの位数である。
 Fermatの小定理より、1 - aq - 1はaが0の場合1となり、aが0以外の場合0となる。よって、上記の計算によりNOTが計算されることになる。
 一方、a[1], …, a[J]のORをマルチパーティ計算するには、i = 1, …, Jに対するa[i]の有限体F上のシェアs[j, 1], …, s[j, N]をそれぞれサーバ装置1, ..., Nが持っている状態からスタートし、n = 1, …, Nに対し各サーバ装置nが
Σj = 1, …, J s[j, n]u[j, n] ∈F
を計算する。ここで、(u[j, n])n = 1, …, Nは有限体F上の何らかの乱数r[j]のシェアである。
 定義より(Σj = 1, …, J s[j, n]u[j, n])n = 1, …, NはV = Σj = 1, …, J a[j]r[j]のシェアになっている。a[1] = … = a[J] = 0である場合、Vは0になり、これはa[1] OR …. OR a[J] = 0と一致する。一方a[1], …, a[J]の中に0でないものがある場合、r[j]は乱数であるため、V = Σj = 1, …, J a[j]r[j]は確率1 - (1/q)で0以外の値になる。すなわち、qを十分大きい値にとることで、高い確率でVはa[1] OR … OR a[J] = 1と一致する。
 以上の議論により、有限体Fの位数qを十分大きくとることにより、NOT演算子とOR演算子のマルチパーティ計算を高い確率で正しく実行することができる。
 そこで、位数qを大きな値に設定することが考えられる。しかしながら、NOT演算子は1 - aqのマルチパーティ計算により実現されているので、qを大きくするに従ってNOT演算子の計算のラウンド効率が悪化するというジレンマが生じる。
 本発明では、かかるジレンマを2通りの方法で解決する。なお、以下の解決方法1、2は、それぞれ、後述する第1、第2の実施形態において採用される。
[解決方法1]
 第1の解決方法は、次のとおりである。すなわち、上述のジレンマを解決するため、有限体Fの位数qを小さな値としたまま、代わりに、1つの値aをλ回秘密分散することでλ個のシェアの組(s[n, 1])n = 1,  N、…, (s[n, λ])n = 1,  Nを生成し、サーバ装置nは(s[n, 1], …, s[n, λ])を保持する。ここで、λはセキュリティ・パラメータである。また、(s[n, 1], …, s[n, λ])のことをaの「拡張シェア」という。
 拡張シェア(s[n, 1], …, s[n, λ]) n = 1,  Nに対し、(s[n, 1])n = 1,…, N, …, (s[n, λ])n = 1, …, Nがシェアしている値をそれぞれu[1], …, u[λ]とする。この場合、u[1] = … = u[λ] = 0のとき、拡張シェアはFALSEをシェアしているものとみなし、それ以外のとき、拡張シェアはTRUEをシェアしているものとみなす。
{解決方法1におけるOR計算}
 OR計算では、拡張シェアの各成分s[n, 1], …, s[n, λ]に対し、前述のように乱数との積の和を取る。これにより「乱数との積の和」という計算がλ回繰り返されることになるので、OR計算を間違える確率は1/qλとなり、間違い確率はλに対して指数関数的に小さくなる。よって、λを大きくすることで、q自身を小さく保ったまま間違い確率を小さくすることができる。これにより、上述のジレンマを解消することができる。
{解決方法1におけるNOT計算}
 一方、NOT計算の際には、s[n, 1], …, s[n, λ]がシェアしている値をu[1], …, u[λ]とするとき、v = (1 - u[1]q - 1) … (1 - u[λ]q - 1)のシェアをマルチパーティ計算し、vのシェアの拡張シェアを作る。Fermatの小定理より、u[1], …, u[λ]がすべて0の場合vは1になり、それ以外の場合vは0になる。したがって、以上の計算はNOT演算子に対応する。
[解決方法2]
 解決方法1では、通常のシェアを拡張シェアに変換する手続きを導入した。一方、第2の解決方法では、変換手続きとして、通常のシェアに0のF上のシェアを足し合わせる方法が用いられる。第2の解決方法では、上述のジレンマを解決するため、有限体Fの位数qを小さな値としつつ、有限体Fの拡大体Lの位数を大きくする。さらに、必要に応じて有限体F上のシェアを拡大体L上のシェアに変換する。変換後のシェアを「拡張シェア」と呼ぶ。第2の解決方法においても、通常のシェアを拡張シェアに変換する変換手続が導入される。ただし、第2の解決方法では、変換手法として、通常のシェアに0の拡大体L上のシェアを足し合わせる方法が用いられる。
{解決方法2におけるOR計算}
 OR計算において、
Σj = 1, …, J T[j, n]u[j, n] ∈ L
を計算する。ここでT[j, n]はa[j]の拡張シェアであり、u[j, n]は拡大体L上の何らかの乱数のシェアである。有限体Fの位数q自身は小さい場合であっても、拡大体Lの位数Qを大きく取ることで、OR計算の間違い確率は小さくなる。すなわち、上述のジレンマは解消される。
{解決方法2におけるNOT計算}
 NOT aをマルチパーティ計算するには、aの拡張シェアを用いて
1 - aQ - 1
のシェアをマルチパーティ計算する。ここで、Qは拡大体Lの位数である。しかし、前述の理由でQは大きい値にする必要があるため、単純に1 - aQ-1のシェアをマルチパーティ計算しようとすると、NOT計算の効率が悪くなるという問題がある。そこで、次のようにしてaQの計算を効率化する。
 Lは有限体Fの拡大体であるため、拡大体Lは有限体F上線形空間とみなせる。そこで、E[1], …, E[λ]を拡大体LのF上線形空間の基底とすると、拡大体Lの任意の元aを
Σl = 1, …, λa[l]E[l]
と表すことができる。また、定義より明らかにQ = qλである。
 したがって、
aQ-1 = (Σl = 1, …, λa[l]E[l])^{qλ - 1} = Σl = 1, …, λa[l]E[l]^{(1 + q + … + qλ - 1)(q - 1)}
= (Πi = 0, …, λ - 1Σl = 1, …, λa[l]E[l]^{q^i})q - 1
である。
 左辺をマルチパーティ計算する代わりに、右辺をマルチパーティ計算することで、効率的にNOTを計算することができる。
<一実施形態>
 次に、本発明の一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
 図1は、一実施形態に係る秘密計算システム10の構成を例示するブロック図である。図1を参照すると、秘密計算システム10は、秘密データを引数とする所定の関数の値をマルチパーティ計算する秘密計算システムであって、複数のサーバ装置2-1~2-Nを備えている。
 サーバ装置2-1~2-Nは、秘密データを秘密分散して生成された有限体(F)上の元であるシェアを保持する記憶部22-1~22-Nと、前記シェアを拡張して拡張シェアを生成するシェア拡張部231-1~231-Nと、前記拡張シェアを用いて前記所定の関数に含まれるOR演算を実行するOR計算部232-1~232-Nと、前記拡張シェアを用いて前記所定の関数に含まれるNOT演算を実行するNOT計算部233-1~233-Nと、を有する。
 ここで、シェア拡張部231-1~231-Nは、前記シェアを秘密分散して生成された複数のシェアを成分とする配列を拡張シェアとして生成してもよい。このとき、OR計算部232-1~232-Nは、拡張シェアの各成分に対して、有限体(F)上の乱数のシェアを乗じて足し合わせることでOR演算を実行する。また、NOT計算部233-1~233-Nは、前記拡張シェアの各成分がシェアする値を前記有限体の位数(q)から1を引いた値(q - 1)でべき乗したものを1から差し引いた値の積をマルチパーティ計算することで、NOT演算を実行する。
 一方、シェア拡張部231-1~231-Nは、前記シェアを秘密分散して生成された複数のシェアを有限体(F)の拡大体(L)上の元として表したものを、前記拡張シェアとして生成するようにしてもよい。このとき、OR計算部232-1~232-Nは、OR演算の対象となる拡張シェアに対して、拡大体(L)上の乱数のシェアを乗じて足し合わせることで、OR演算を実行する。また、NOT計算部233-1~233-Nは、NOT演算の対象となる拡張シェアを拡大体(L)の基底で成分表示し、各成分に対応する基底を有限体(F)の位数(q)のべき乗でべき乗したものを各成分に乗じたものの和を求め、求めた和がシェアしている値の積を有限体(F)の位数(q)から1を引いた値(q - 1)でべき乗したものを1から減じた値をマルチパーティ計算することで、NOT演算を実行する。
 かかる秘密計算システム10によると、マルチパーティ計算におけるラウンド数を削減することが可能となる。なぜなら、秘密計算システム10によれば、有限体Fの位数qを大きくすることなく、OR演算子およびNOT演算子を高い確率で正しく計算することができるからである。
<実施形態1>
 次に、第1の実施形態に係る秘密計算システムについて、図面を参照して説明する。はじめに、本実施形態と、後述する第2の実施形態との間で共通する構成および動作について説明する。
 以下では、λをセキュリティ・パラメータとする。また、Nをサーバ装置の台数とし、有限体Fの位数qをN以上とする。さらに、{0, 1}を自然に有限体Fの部分集合とみなす。
[構成]
 図2は、本実施形態に係る秘密計算システム10の構成を例示するブロック図である。なお、後述する第2の実施形態に係る秘密計算システム10も図2と同様の構成を有する。
 図2を参照すると、秘密計算システム10は、登録装置1とサーバ装置2-1~2-Nを備えている。なお、サーバ装置2-1~2-Nのうちのいずれかが登録装置1の機能を兼ねていてもよい。
 登録装置1は、通信部11、記憶部12、および、計算部13を備えている。また、計算部13は、シェア生成部131と復元部132を備えている。
 サーバ装置2-n(n = 1, …, N)は、通信部21-n、記憶部22-n、および、計算部23-nを備えている。また、計算部23-nは、シェア拡張部231-n、OR計算部232-n、および、NOT計算部233-nを備えている。
[動作]
 本実施形態では、Shamirの秘密分散法を用いる。そこで、事前にしきい値Kを固定(fix)しておく。さらに、有限体Fの相異なる元m[1], …, m[N]を固定する。
 a[1], …, a[U] ∈ {0, 1} ⊂ Fを秘密データとし、φを関数とする。本実施形態では、φ(a[1], …, a[U])をマルチパーティ計算したい場合を考える。
 この場合、以下の動作が行われる。
・登録装置1は、秘密データa[1], ..., a[U]を受け付けると、受け付けた秘密データa[1], ..., a[U]を記憶部12に保持する。また、登録装置1のシェア生成部131は、u = 1, …, Uに対し、後述する「シェア生成」を行い、a[u]のシェアs[u, 1], …, s[u, N]を求める。次に、登録装置1の通信部11は、生成されたシェアs[u, 1], …, s[u, N]を、それぞれサーバ装置2-1~2-Nに送る。
・サーバ装置2-1~2-Nの通信部21-1~21-Nは、それぞれ、登録装置1からシェアs[u, 1], …, s[u, N]を受け取ると、記憶部22-1~22-Nに格納する。シェア拡張部231-1~231-Nは、それぞれ、マルチパーティ計算を開始するまでに「シェア拡張」を行ってs[u, 1], …, s[u, N]の拡張シェアを求め、求めた拡張シェアを記憶部22-1~22-Nに保持する。
・サーバ装置2-1~2-Nの計算部23-1~23-Nは、関数φをORゲートとNOTゲートの組み合わせで表記し、u = 1, …, Uに対するa[u]の拡張シェアを入力として、ORゲートとNOTゲートを順にマルチパーティ計算していく。ORゲートに対するマルチパーティ計算は後述する「OR計算」の部分、NOTゲートに対するマルチパーティ計算は後述する「NOT計算」の部分で説明する。サーバ装置2-1~2-Nは、最終的にφ(a[1], …, a[U])のシェアを得る。
・φ(a[1], …, a[U])の各ビットのシェアの計算が終了すると、サーバ装置2-1~2-Nの通信部21-1~21-Nは、計算したシェアを登録装置1に送出する。登録装置1の復元部132は、サーバ装置2-1~2-Nから送出されたシェアに基づいて、後述する「復元計算」を行うことでφ(a[1], …, a[U])を復元する。
 上記では、サーバ装置2-1~2-Nに設けられたシェア拡張部231-1~231-Nがシェア拡張を行う場合について説明した。ただし、登録装置1の側でシェア拡張を行ってもよい。この場合、登録装置1の通信部11は、シェアs[u, 1], …, s[u, N]自身ではなく、これらのシェアをシェア拡張して得られた拡張シェアをサーバ装置2-1~2-Nに送出する。
 次に、シェア生成動作の詳細について説明する。本実施形態と後述する第2の実施形態との間で、シェア生成動作は共通である。
{シェア生成}
 実施形態1、2では、秘密aは{0, 1}の元である場合を想定する。ただし、以下のシェア生成動作は秘密aがFの元であれば{0, 1}の元でなくとも正しく動作する。なお、後述する第3、第4の実施形態では、秘密aが{0, 1}の元とは限らない場合に対しても以下のシェア生成動作を用いる。
・登録装置1は、秘密a ∈ Fを入力として受け取る。
・シェア生成部131は乱数r[1], …, r[K - 1] ∈ Fをランダムに選び、i = 1, …, Nに対し、有限体F上の多項式f(X)を
f(X) = a + Σk = 1, …, K - 1r[k]Xk
により定義し、n = 1, …, Nに対し
s[n] = f(m[n])
を計算する。通信部11は、計算されたシェアs[1], …, s[N]を、それぞれサーバ装置2-1, ..., 2-Nのシェアとして送信する。
・サーバ装置2-1~2-Nは、それぞれ、受信したシェアs[1], …, s[N]を記憶部22-1~22-Nに保持する。
 本実施形態と後述する第2の実施形態との間では、「シェア拡張」、「OR計算」、「NOT計算」および「復元計算」の動作が相違する。以下では、本実施形態における「シェア拡張」、「OR計算」、「NOT計算」および「復元計算」の動作について説明する。
{シェア拡張}
・サーバ装置2-1~2-Nのシェア拡張部231-1~231-Nは、それぞれ、シェアs[1], …, s[N]を記憶部22-1~22-Nから読み込む。
・l =1, …, λ、d = 1, …, Dに対し、シェア拡張部231-1~231-Nは乱数生成MPCプロトコルを実行することで、有限体F上の一様乱数r[l, d]のシェアを生成する。実行結果として、シェア拡張部231-1~231-Nはそれぞれr[l, d]のシェアρ[l, d, 1], …., ρ[l, d, N]を得る。
・n = 1, …, N, l = 1, …, λに対し、シェア拡張部231-nは
t[n, l] = s[n] + Σd = 1, …, Dρ[l, d, n]m[n]d
を計算する。
・n = 1, …, N に対し、シェア拡張部231-nは(t[n, 1], …, t[n, λ])を拡張シェアとして出力する。
{OR計算}
 j = 1, …, Jに対し、サーバ装置2-1~2-Nがa[j]の拡張シェア(t[j, 1, 1], …, t[j, 1, λ]) ∈ Fλ, …, (t[j, N, 1],…,t[j, N, λ]) ∈ Fλをそれぞれ記憶部22-1~22-Nに保管しているとき、サーバ装置2-1~2-NのOR計算部232-1~232-Nは、次のようにしてb = a[1] OR … OR a[J]のシェアを計算する。
・j = 1, …, Jに対し、OR計算部232-1~232-Nは、それぞれ、拡張シェア(t[j, 1, 1], …, t[j, 1, λ]) ∈ Fλ, …, (t[j, N, 1], …, t[j, N, λ]) ∈Fλを記憶部22-1~22-Nから読み込む。
・OR計算部232-1~232-Nは、それぞれ、乱数生成MPCをJλ回実行する。その結果として、j = 1, …, J, l = 1, …, λに対して、OR計算部232-1~232-Nは、それぞれ、有限体F上の乱数R[j, l]のシェアu[j, 1, l], …, u[j, N, l]を得る。
・n = 1, …, N, l = 1, …, λに対し、OR計算部232-nはv[n, l] = Σj = 1,…,Jt[j, n, l]u[j, n, l]∈Fを計算し、(v[n, 1], …, v[n, λ])をbの拡張シェアとして記憶部22-nに保管する。
{NOT計算}
 サーバ装置2-1~2-Nが、それぞれ、aの拡張シェア(t[1, 1], …, t[1, λ]) ∈ Fλ, …,  (t[N, 1], …, t[N, λ]) ∈ Fλを記憶部22-1~22-Nに保管しているとき、サーバ装置2-1~2-NのNOT計算部233-1~233-Nは、次のようにしてb = NOT aのシェアを計算する。
・NOT計算部233-1~233-Nは、それぞれ、秘密aの拡張シェア(t[1, 1], …, t[1, λ]) ∈ Fλ, …,  (t[N, 1], …, t[N, λ]) ∈ Fλを記憶部22-1~22-Nから読み込む。拡張シェアの定義より、(t[n, l]) n = 1, …, Nは何らかの元c[n] ∈ Fの秘密分散になっている。
・n = 1, …, N, l = 1, …, λに対し、NOT計算部233-nがt[n, l] ∈ Fを入力として用いて
                        d[l] = 1 - c[l]q - 1
のシェアを得るマルチパーティ計算を実行する。NOT計算部233-nは、かかるマルチパーティ計算を、有限体F上の和のマルチパーティ計算と積のマルチパーティ計算を組み合わせることで実行することができる。ここで、qは有限体Fの位数である。実行結果として、NOT計算部233-1~233-Nは、それぞれd[l]のシェアδ[1, l], …, δ[N, l]を得る。
・n = 1, …, Nに対し、NOT計算部233-nがδ[n, 1], …, δ[n, λ] ∈ Fを入力として用いて、
                       e = d[1] … d[λ]
のシェアを得るマルチパーティ計算を実行する。NOT計算部233-1~233-Nは、実行結果として、それぞれeのシェアε[1], …, ε[N]を得る。
・n = 1, …, Nに対し、シェア拡張部231-nはε[n]を入力としてシェア拡張を実行する。実行結果として得られた拡張シェアを記憶部22-nに書き込む。
{復元計算}
・登録装置1の復元部132は、v個(v ≧ K)の拡張シェア(t[i_1, 1], …, t[i_1, λ]) ∈ Fλ, …, (t[i_v, 1],…,t[i_v, λ]) ∈ Fλを入力として受け取る。
・復元部132は、l = 1, …, λに対して、ShamirReconst(t[i_1, l], …, t[i_v, l], K, N, F)を実行し、出力a[l]を得る。
・復元部132は、a[1] = …. = a[λ] = 0である場合0を出力し、それ以外の場合1を出力する。
 本実施形態の秘密計算システム10によると、有限体Fの位数q自身を小さく保ったままOR計算を間違える確率を小さくすることができる。したがって、本実施形態によると、ラウンド効率を悪化させることなく、マルチパーティ計算を高い確率で正しく実行することができる。
<実施形態2>
 次に、第2の実施形態に係る秘密計算システムについて、図面を参照して説明する。
[構成]
 図2は、本実施形態の秘密計算システム10の構成を例示するブロック図である。本実施形態の秘密計算システム10の構成は、第1の実施形態の秘密計算システムの構成と同様であるため、説明を省略する。
 本実施形態では、有限体Fとして位数qがサーバ装置の台数N以上のものを用いる。また、有限体Fの相異なる元m[1], …, m[N]を固定する。
 さらに、本実施形態では、Lを有限体Fの拡大体であって、拡大次数がセキュリティ・パラメータλ以上であるものとする。拡大体Lの定義より、拡大体LをF上λ次元ベクトル空間とみなすことができる。そこで、F上λ次元ベクトル空間としての拡大体Lの基底E[1], …, E[λ] ∈ Lを固定する。
[動作]
 次に、本実施形態の秘密計算システムの動作について説明する。なお、本実施形態におけるシェア生成動作は、第1の実施形態におけるシェア生成動作と同様であるため、説明を省略する。以下では、本実施形態における「シェア拡張」、「OR計算」、「NOT計算」および「復元計算」の動作について説明する。
{シェア拡張}
・n = 1, …, N, l = 1, …, λに対し、第1の実施形態と同様に、サーバ装置2-nのシェア拡張部231-1は
t[n, l] = s[n] + Σd = 1, …, Dρ[l, d, n]m[n]d
を計算する。
・本実施形態では、シェア拡張部231-n(n = 1, …, N)は、
T[n] = Σl = 1, …, λt[n, l]E[l]
を計算し、計算したT[n]を拡張シェアとして出力する。
{OR計算}
 j = 1, …, Jに対し、サーバ装置2-1~2-Nが、それぞれa[j]の拡張シェアT[j, 1] ∈ L, …,  T[j, N] ∈ Lを記憶部22-1~22-Nに保管しているとき、サーバ装置2-1~2-NのOR計算部232-1~232-Nは、次のようにしてb = a[1] OR … OR a[J]のシェアを計算する。
・j = 1, …, Jに対し、OR計算部232-1~232-Nは、それぞれ、拡張シェアT[j, 1] ∈ L, …, T[j, N] ∈ Lを記憶部22-1~22-Nから読み込む。
・OR計算部232-1~232-Nは、それぞれ、乱数生成MPCをJ回実行する。その結果として、j = 1, …, Jに対して、OR計算部232-1~232-Nは、それぞれ、拡大体L上の乱数R[j]のシェアu[j, 1], …, u[j, N] ∈ Lを得る。
・n = 1, …, Nに対し、OR計算部232-nはv[n] = Σj = 1, …, JT[j, n]u[j, n] ∈ Lを計算し、v[n]をbの拡張シェアとして記憶部22-nに保管する。
{NOT計算}
 サーバ装置2-1~2-Nが、それぞれaの拡張シェアT[1] ∈ L, …, T[N] ∈ Lを記憶部22-1~22-Nに保管しているとき、サーバ装置2-1~2-NのNOT計算部233-1~233-Nは、次のようにしてb = NOT aのシェアを計算する。
・NOT計算部233-1~233-Nは、それぞれ、秘密aの拡張シェアT[1] ∈ L, …, T[N] ∈ Lを記憶部22-1~22-Nから読み込む。拡張シェアの定義より、T[1], …, T[N]はaを秘密分散したシェアである。
・n = 1, …, Nに対し、NOT計算部233-nはT[n]を
T[n] = Σl = 1, …, λt[n, l]E[l]      (t[n, l]∈F)
と成分表示し、y = 1, …, λに対し、
δ[n, y] = Σl = 1, …, λt[n, l]E[l]^{qu}
を計算する。ここで、qは有限体Fの位数である。拡張シェアの定義より、δ[n, y]は何らかの元d[y]を秘密分散したシェアである。
・n=1, …, Nに対し、NOT計算部233-nがδ[n, 1], …, δ[n, λ] ∈ Lを入力として用いて、
                       e = 1 - (d[1] … d[λ])q - 1
のシェアを得るマルチパーティ計算を実行する。NOT計算部233-1~233-Nは、実行結果として、それぞれeのシェアε[1], …, ε[N]を得る。
{復元計算}
・登録装置1の復元部132は、v個(v ≧ K)の拡張シェアT[i_1], …, T[i_v]を入力として受け取る。
・復元部132は、u = 1, …, vに対して、T[i_u]をT[i_u] = Σl = 1, …, λt[i_u, l]E[l]と成分表示する。
・復元部132は、l = 1, …, λに対して、ShamirReconst(t[i_1, l], …, t[i_v, l], K, N, F)を実行して出力a[l]を得る。
・復元部132は、a[1] = …. = a[λ] = 0である場合0を出力し、それ以外の場合1を出力する。
 本実施形態の秘密計算システム10によると、有限体Fの位数qを小さく保ったままOR計算を間違える確率を小さくすることができる。したがって、本実施形態によると、ラウンド効率を悪化させることなく、マルチパーティ計算を高い確率で正しく実行することができる。また、この計算の際に、NOT計算の効率の低下を防ぐことも可能となる。
<実施形態3>
 次に、第3の実施形態に係る秘密計算システムについて、図面を参照して説明する。本実施形態の秘密計算システムは、第1の実施形態に係る秘密計算システムを文字列検索(例えば、文字列の部分一致検索)に適用したものである。
 以下では、Nをサーバ装置の台数とする。また、本実施形態において、文字列とは「ワード」と呼ばれるデータを有限個並べたものを指し、各ワードは0以上W未満の整数を指すものとする。さらに、第1の実施形態における有限体Fとして、位数qがW以上のものをとる。
[構成]
 図3は、本実施形態に係る秘密計算システム20の構成を例示するブロック図である。図3を参照すると、秘密計算システム20は、登録装置3、検索装置4、および、サーバ装置2-1~2-Nを備えている。登録装置1と検索装置3は、別個の装置であっても同一の装置であってもよい。同様に、登録装置1および検索装置3の機能を、サーバ装置2-1~2-Nのいずれかが備えていてもよい。
 本実施形態では、サーバ装置2-1~2-Nに対して登録装置3が文字列を登録する。文字列を登録する登録装置3は、文字列毎に異なってもよいし同一でもよい。図3では、一例として、すべての文字列を同一の装置が登録する状況を想定し、t番目の文字列atを登録する状況を示す。
 また、本実施形態では、サーバ装置2-1~2-Nに保管された文字列を検索装置4が検索する。検索装置4は、検索文字列b毎に異なってもよいし同一でもよい。図3では、一例として、1台の検索装置4がすべての検索を行う状況を想定する。
 登録装置3は、通信部31、記憶部32、および、計算部33を備えている。また、計算部33は、登録文字列のシェアを生成するシェア生成部331を備えている。
 検索装置4は、通信部41、記憶部42、および、計算部43を備えている。また、計算部43は、検索文字列のシェアを生成するシェア生成部431と、復元部432を備えている。
 サーバ装置2-n(n = 1, …, N)は、通信部21-n、記憶部22-n、および、計算部23-nを備えている。また、計算部23-nは、シェア拡張部231-n、OR計算部232-n、および、NOT計算部233-nを備えている。
[動作]
 次に、本実施形態の秘密検索システム20の動作について説明する。
{登録手順}
 ここで、a = a[1] … a[U]を登録したい文字列とする。登録装置3のシェア生成部331は、各u = 1, …, Uに対して、a[u]のシェアs[u, 1], …, s[u, N]を第1の実施形態のシェア生成と同様の手順で計算する。登録装置3の通信部31は、生成されたシェアs[u, 1], …, s[u, N]を、それぞれサーバ装置2-1~2-Nに送る。サーバ装置2-1~2-Nは、それぞれ、受信したシェアs[u, 1], …, s[u, N]を記憶部22-1~22-Nに保管する。サーバ装置2-nのシェア拡張部231-n(n = 1, …, N)は、任意のタイミングでシェアs[u, n]に対する拡大シェアを計算しておく。
{検索手順}
 ここでは、b = b[1] … b[V]を検索装置4がクエリする文字列とする。本実施形態では、サーバ装置2-1~2-Nにシェアが登録されている文字列a = a[1] … a[U]のうちの、bがaの部分文字列となっているものを見つけることを目標とする。
・検索装置4のシェア生成部431は、v = 1, …, Vに対して、b[v]のシェアを計算する。検索装置4の通信部41は、計算されたb[v]のシェアをサーバ装置2-1、…、サーバ装置2-Nに送る。サーバ装置2-nのシェア拡張部231-n(n = 1, …, N)は、b[v]のシェアに対する拡大シェアを計算する。
・サーバ装置2-1~2-Nの計算部23-1~23-Nは、シェアが登録されている各文字列a = a[1] ... a[U]に対し、u = 1, …, U - Vに対するa[u]の拡大シェアとv = 1, …, Vに対するb[v]の拡大シェアを入力として減法と乗法のマルチパーティ計算を行うことで
c[u, v] = (a[u] - b[u + v])q
の拡大シェアを計算する。ここで、qは有限体Fの位数である。
・サーバ装置2-1~2-NのNOT計算部233-1~233-Nは、u = 1, …, U - V, v = 1, …, Vに対して、第1の実施形態のNOT計算を用いることで、c[u, v]の拡大シェアから
d[u, v] = NOT c[u, v]
の拡大シェアを計算する。
・サーバ装置2-1~2-NのOR計算部232-1~232-Nは、u = 1, …, U - Vに対して、第1の実施形態のOR計算を用いることで、d[u, v]の拡大シェアから
e[u] = d[u, 1] OR … OR d[u, V]
の拡大シェアを計算する。
・サーバ装置2-1~2-NのNOT計算部233-1~233-Nは、u = 1, …, U - V,に対して、第1の実施形態のNOT計算を用いることで、e[u]の拡大シェアから
f[u] = NOT e[u]
の拡大シェアを計算する。
・サーバ装置2-1~2-NのOR計算部232-1~232-Nは、第1の実施形態のOR計算を用いることで、f[u]の拡大シェアから
g = f[1] OR … OR f[V]
の拡大シェアを計算する。
・検索装置4の復元部432は、第1の実施形態の復元計算を用いることで、gのシェアからgを復元する。
・復元部432は、g = 1である場合、a = a[1] ... a[U]が検索にヒットしたものとみなして、a[1]のシェア、…、a[U]のシェアを検索装置に送信する。
・復元部432は、第1の実施形態の復元計算を用いることで、a[1]のシェア、…、a[U]のシェアからそれぞれa[1], …, a[U]を復元し、a = a[1] … a[U]とする。
 本実施形態の秘密計算システム20によると、文字列検索をマルチパーティ計算に基づいて行う場合において、ラウンド数を削減することが可能となり、高速な文字列検索が実現される。
<実施形態4>
 次に、第4の実施形態に係る秘密計算システムについて、説明する。本実施形態の秘密計算システムの構成は、第3の実施形態に係る秘密計算システムの構成(図3)と同様である。
 ただし、本実施形態では、第3の実施形態において第1の実施形態1に係る「OR計算」、「NOT計算」および「復元計算」を用いる代わりに、第2の実施形態に係る「OR計算」、「NOT計算」および「復元計算」を用いる点で、第3の実施形態と相違する。
 本実施形態の秘密計算システム20によると、第3の実施形態に係る秘密計算システムと同様の効果がもたらされる。すなわち、本実施形態によると、文字列検索をマルチパーティ計算に基づいて行う場合において、ラウンド数を削減することが可能となり、高速な文字列検索が実現される。
 なお、本発明において、下記の形態が可能である。
[形態1]
 上記第1の態様に係る秘密計算システムのとおりである。
[形態2]
 前記シェア拡張部は、前記シェアを秘密分散して生成された複数のシェアを成分とする配列を前記拡張シェアとして生成し、
 前記OR計算部は、前記拡張シェアの各成分に対して、前記有限体上の乱数のシェアを乗じて足し合わせることで、前記OR演算を実行し、
 前記NOT計算部は、前記拡張シェアの各成分がシェアする値を前記有限体の位数から1を引いた値でべき乗したものを1から差し引いた値の積をマルチパーティ計算することで、前記NOT演算を実行する、
 形態1に記載の秘密計算システム。
[形態3]
 前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
 前記シェア拡張部は、前記シェアに対して、Shamirの秘密分散法による0の前記有限体上のシェアを加えることで、前記拡張シェアを生成する、
 形態2に記載の秘密計算システム。
[形態4]
 前記シェア拡張部は、前記シェアを秘密分散して生成された複数のシェアを前記有限体の拡大体上の元として表したものを、前記拡張シェアとして生成し、
 前記OR計算部は、OR演算の対象となる拡張シェアに対して、前記拡大体上の乱数のシェアを乗じて足し合わせることで、前記OR演算を実行し、
 前記NOT計算部は、NOT演算の対象となる拡張シェアを前記拡大体の基底で成分表示し、各成分に対応する基底を前記有限体の位数のべき乗でべき乗したものを各成分に乗じたものの和を求め、求めた和がシェアしている値の積を前記有限体の位数から1を引いた値でべき乗したものを1から減じた値をマルチパーティ計算することで、前記NOT演算を実行する、
 形態1に記載の秘密計算システム。
[形態5]
 前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
 前記シェア拡張部は、前記シェアに対して、Shamirの秘密分散法による0の前記拡大体上のシェアを加えることで、前記拡張シェアを生成する、
 形態4に記載の秘密計算システム。
[形態6]
 前記複数のサーバ装置は、登録対象文字列の各ワードを秘密分散して生成されたシェアと、検索装置から受け付けた検索対象文字列の各ワードを秘密分散して生成されたシェアを前記記憶部に保持し、
 前記シェア拡張部、前記OR計算部、および、前記NOT計算部を用いて、前記登録文字列の前記各ワードと前記検索文字列の前記各ワードの差のべき乗のシェアを、前記登録文字列の前記各ワードの前記シェアと前記検索文字列の前記各ワードの前記シェアとを用いてマルチパーティ計算し、前記べき乗のORのシェアを前記べき乗のシェアを用いてマルチパーティ計算し、前記ORされた値のNOTを前記ORされた値のシェアを用いてマルチパーティ計算し、前記NOTされた値のORを前記NOTされた値のシェアを用いてマルチパーティ計算し、
 前記検索装置は、前記計算された前記NOTされた値のORに基づいて、検索対象文字列が登録対象文字列に部分一致したか否かを判定する、
 形態1ないし5のいずれか一に記載の秘密計算システム。
[形態7]
 形態1ないし6のいずれか一に記載の秘密計算システムに含まれる前記複数のサーバ装置のうちの一のサーバ装置。
[形態8]
 上記第3の態様に係る秘密計算方法のとおりである。
[形態9]
 前記一のサーバ装置は、前記シェアを秘密分散して生成された複数のシェアを成分とする配列を前記拡張シェアとして生成し、
 前記拡張シェアの各成分に対して、前記有限体上の乱数のシェアを乗じて足し合わせることで、前記OR演算を実行し、
 前記拡張シェアの各成分がシェアする値を前記有限体の位数から1を引いた値でべき乗したものを1から差し引いた値の積をマルチパーティ計算することで、前記NOT演算を実行する、
 形態8に記載の秘密計算方法。
[形態10]
 前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
 前記一のサーバ装置は、前記シェアに対して、Shamirの秘密分散法による0の前記有限体上のシェアを加えることで前記拡張シェアを生成する、
 形態9に記載の秘密計算方法。
[形態11]
 前記一のサーバ装置は、前記シェアを秘密分散して生成された複数のシェアを前記有限体の拡大体上の元として表したものを、前記拡張シェアとして生成し、
 OR演算の対象となる拡張シェアに対して、前記拡大体上の乱数のシェアを乗じて足し合わせることで、前記OR演算を実行し、
 NOT演算の対象となる拡張シェアを前記拡大体の基底で成分表示し、各成分に対応する基底を前記有限体の位数のべき乗でべき乗したものを各成分に乗じたものの和を求め、求めた和がシェアしている値の積を前記有限体の位数から1を引いた値でべき乗したものを1から減じた値をマルチパーティ計算することで、前記NOT演算を実行する、
 形態8に記載の秘密計算方法。
[形態12]
 前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
 前記一のサーバ装置は、前記シェアに対して、Shamirの秘密分散法による0の前記拡大体上のシェアを加えることで、前記拡張シェアを生成する、
 形態11に記載の秘密計算方法。
[形態13]
 上記第4の態様に係るプログラムのとおりである。
[形態14]
 前記シェアを秘密分散して生成された複数のシェアを成分とする配列を前記拡張シェアとして生成する処理と、
 前記拡張シェアの各成分に対して、前記有限体上の乱数のシェアを乗じて足し合わせることで、前記OR演算を実行する処理と、
 前記拡張シェアの各成分がシェアする値を前記有限体の位数から1を引いた値でべき乗したものを1から差し引いた値の積をマルチパーティ計算することで、前記NOT演算を実行する処理と、を前記一のコンピュータに実行させる、
 形態13に記載のプログラム。
[形態15]
 前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
 前記シェアに対して、Shamirの秘密分散法による0の前記有限体上のシェアを加えることで、前記拡張シェアを生成する処理を、前記一のコンピュータに実行させる、
 形態14に記載のプログラム。
[形態16]
 前記シェアを秘密分散して生成された複数のシェアを前記有限体の拡大体上の元として表したものを、前記拡張シェアとして生成する処理と、
 OR演算の対象となる拡張シェアに対して、前記拡大体上の乱数のシェアを乗じて足し合わせることで、前記OR演算を実行する処理と、
 NOT演算の対象となる拡張シェアを前記拡大体の基底で成分表示し、各成分に対応する基底を前記有限体の位数のべき乗でべき乗したものを各成分に乗じたものの和を求め、求めた和がシェアしている値の積を前記有限体の位数から1を引いた値でべき乗したものを1から減じた値をマルチパーティ計算することで、前記NOT演算を実行する処理と、を前記一のコンピュータに実行させる、
 形態13に記載のプログラム。
[形態17]
 前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
 前記シェアに対して、Shamirの秘密分散法による0の前記拡大体上のシェアを加えることで、前記拡張シェアを生成する処理を、前記一のコンピュータに実行させる、
 形態16に記載のプログラム。
 なお、上記特許文献および非特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
1、3  登録装置
2-1~2-N  サーバ装置
4  検索装置
10、20  秘密計算システム
11、21-1~21-N、31、41  通信部
12、22-1~22-N、32、42  記憶部
13、23-1~23-N、33、43  計算部
131、331、431  シェア生成部
132、432  復元部
231-1~231-N  シェア拡張部
232-1~232-N  OR計算部
233-1~233-N  NOT計算部

Claims (10)

  1.  秘密データを引数とする所定の関数の値をマルチパーティ計算する秘密計算システムであって、
     複数のサーバ装置を備え、
     前記複数のサーバ装置は、前記秘密データを秘密分散して生成された有限体上の元であるシェアを保持する記憶部と、
     前記シェアを拡張して拡張シェアを生成するシェア拡張部と、
     前記拡張シェアを用いて前記所定の関数に含まれるOR演算を実行するOR計算部と、
     前記拡張シェアを用いて前記所定の関数に含まれるNOT演算を実行するNOT計算部と、を有する、
     ことを特徴とする秘密計算システム。
  2.  前記シェア拡張部は、前記シェアを秘密分散して生成された複数のシェアを成分とする配列を前記拡張シェアとして生成し、
     前記OR計算部は、前記拡張シェアの各成分に対して、前記有限体上の乱数のシェアを乗じて足し合わせることで、前記OR演算を実行し、
     前記NOT計算部は、前記拡張シェアの各成分がシェアする値を前記有限体の位数から1を引いた値でべき乗したものを1から差し引いた値の積をマルチパーティ計算することで、前記NOT演算を実行する、
     請求項1に記載の秘密計算システム。
  3.  前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
     前記シェア拡張部は、前記シェアに対して、Shamirの秘密分散法による0の前記有限体上のシェアを加えることで前記拡張シェアを生成する、
     請求項2に記載の秘密計算システム。
  4.  前記シェア拡張部は、前記シェアを秘密分散して生成された複数のシェアを前記有限体の拡大体上の元として表したものを、前記拡張シェアとして生成し、
     前記OR計算部は、OR演算の対象となる拡張シェアに対して、前記拡大体上の乱数のシェアを乗じて足し合わせることで前記OR演算を実行し、
     前記NOT計算部は、NOT演算の対象となる拡張シェアを前記拡大体の基底で成分表示し、各成分に対応する基底を前記有限体の位数のべき乗でべき乗したものを各成分に乗じたものの和を求め、求めた和がシェアしている値の積を前記有限体の位数から1を引いた値でべき乗したものを1から減じた値をマルチパーティ計算することで、前記NOT演算を実行する、
     請求項1に記載の秘密計算システム。
  5.  前記シェアは、Shamirの秘密分散法に基づく前記秘密データの前記有限体上のシェアであり、
     前記シェア拡張部は、前記シェアに対して、Shamirの秘密分散法による0の前記拡大体上のシェアを加えることで、前記拡張シェアを生成する、
     請求項4に記載の秘密計算システム。
  6.  前記複数のサーバ装置は、登録対象文字列の各ワードを秘密分散して生成されたシェアと、検索装置から受け付けた検索対象文字列の各ワードを秘密分散して生成されたシェアを前記記憶部に保持し、
     前記シェア拡張部、前記OR計算部、および、前記NOT計算部を用いて、前記登録文字列の前記各ワードと前記検索文字列の前記各ワードの差のべき乗のシェアを、前記登録文字列の前記各ワードの前記シェアと前記検索文字列の前記各ワードの前記シェアとを用いてマルチパーティ計算し、前記べき乗のORのシェアを前記べき乗のシェアを用いてマルチパーティ計算し、前記ORされた値のNOTを前記ORされた値のシェアを用いてマルチパーティ計算し、前記NOTされた値のORを前記NOTされた値のシェアを用いてマルチパーティ計算し、
     前記検索装置は、前記計算された前記NOTされた値のORに基づいて、検索対象文字列が登録対象文字列に部分一致したか否かを判定する、
     請求項1ないし5のいずれか1項に記載の秘密計算システム。
  7.  請求項1ないし6のいずれか1項に記載の秘密計算システムに含まれる前記複数のサーバ装置のうちの一のサーバ装置。
  8.  秘密データを引数とする所定の関数の値を複数のサーバ装置を用いてマルチパーティ計算する秘密計算方法であって、
     前記複数のサーバ装置のうちの一のサーバ装置が、前記秘密データを秘密分散して生成された有限体上の元であるシェアを受け付けるステップと、
     前記シェアを拡張して拡張シェアを生成するステップと、
     前記拡張シェアを用いて前記所定の関数に含まれるOR演算を実行するステップと、
     前記拡張シェアを用いて前記所定の関数に含まれるNOT演算を実行するステップと、を含む、
     ことを特徴とする秘密計算方法。
  9.  前記一のサーバ装置は、前記シェアを秘密分散して生成された複数のシェアを成分とする配列を前記拡張シェアとして生成し、
     前記拡張シェアの各成分に対して、前記有限体上の乱数のシェアを乗じて足し合わせることで、前記OR演算を実行し、
     前記拡張シェアの各成分がシェアする値を前記有限体の位数から1を引いた値でべき乗したものを1から差し引いた値の積をマルチパーティ計算することで、前記NOT演算を実行する、
     請求項8に記載の秘密計算方法。
  10.  秘密データを引数とする所定の関数の値を複数のコンピュータを用いてマルチパーティ計算するプログラムであって、
     前記秘密データを秘密分散して生成された有限体上の元であるシェアを受け付ける処理と、
     前記シェアを拡張して拡張シェアを生成する処理と、
     前記拡張シェアを用いて前記所定の関数に含まれるOR演算を実行する処理と、
     前記拡張シェアを用いて前記所定の関数に含まれるNOT演算を実行する処理と、を前記複数のコンピュータのうちの一のコンピュータに実行させる、
     ことを特徴とするプログラム。
PCT/JP2016/060941 2015-04-03 2016-04-01 秘密計算システム、サーバ装置、秘密計算方法、および、プログラム WO2016159357A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/562,659 US10749671B2 (en) 2015-04-03 2016-04-01 Secure computation system, server apparatus, secure computation method, and program
JP2017510254A JP6693508B2 (ja) 2015-04-03 2016-04-01 秘密計算システム、サーバ装置、秘密計算方法、および、プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-077064 2015-04-03
JP2015077064 2015-04-03

Publications (1)

Publication Number Publication Date
WO2016159357A1 true WO2016159357A1 (ja) 2016-10-06

Family

ID=57006178

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/060941 WO2016159357A1 (ja) 2015-04-03 2016-04-01 秘密計算システム、サーバ装置、秘密計算方法、および、プログラム

Country Status (3)

Country Link
US (1) US10749671B2 (ja)
JP (1) JP6693508B2 (ja)
WO (1) WO2016159357A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019063503A1 (en) * 2017-09-29 2019-04-04 Robert Bosch Gmbh METHOD FOR CALCULATING FASTER SECURED MULTIPARTITE INTERNAL PRODUCT USING SPDZ
WO2019163636A1 (ja) * 2018-02-20 2019-08-29 日本電信電話株式会社 秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム
JP2020532771A (ja) * 2017-08-30 2020-11-12 インファー,インク. 高精度プライバシ保護実数値関数評価
CN113098840A (zh) * 2021-02-25 2021-07-09 鹏城实验室 基于加法秘密分享技术的高效安全线性整流函数运算方法
US11334353B2 (en) 2017-05-18 2022-05-17 Nec Corporation Multiparty computation method, apparatus and program
US11934518B2 (en) 2019-01-09 2024-03-19 Nec Corporation Verification apparatus, multiparty computation verification system, and method and program for verifying multiparty computation executable code

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6988807B2 (ja) * 2016-08-18 2022-01-05 日本電気株式会社 秘密計算システム、秘密計算方法、秘密計算装置および秘密計算プログラム
EP4167213B1 (en) * 2017-01-18 2024-03-13 Nippon Telegraph And Telephone Corporation Secret computation method, secret computation system, secret computation apparatus, and program
US10749670B2 (en) * 2017-05-18 2020-08-18 Bank Of America Corporation Block chain decoding with fair delay for distributed network devices
WO2019009180A1 (ja) * 2017-07-05 2019-01-10 日本電信電話株式会社 秘密計算システム、秘密計算装置、秘密計算方法、プログラム、および記録媒体
IL285484B1 (en) * 2019-02-22 2024-03-01 Inpher Inc Arithmetic for secure multipart computation with modular integers
US11101980B2 (en) * 2019-05-01 2021-08-24 Baffle, Inc. System and method for adding and comparing integers encrypted with quasigroup operations in AES counter mode encryption
US11190339B2 (en) * 2019-05-14 2021-11-30 Baffle, Inc. System and method for performing equality and less than operations on encrypted data with quasigroup operations
US20230004356A1 (en) * 2019-12-19 2023-01-05 Nippon Telegraph And Telephone Corporation Secure random number generation system, secure computation apparatus, secure random number generation method, and program
US11637690B1 (en) 2021-10-08 2023-04-25 Baffle, Inc. Format preserving encryption (FPE) system and method for long strings

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014007311A1 (ja) * 2012-07-05 2014-01-09 日本電信電話株式会社 秘密分散システム、データ分散装置、分散データ変換装置、秘密分散方法、およびプログラム
JP2014164145A (ja) * 2013-02-26 2014-09-08 Nippon Telegr & Teleph Corp <Ntt> 秘密集合演算装置及び方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9270414B2 (en) * 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
JP5065795B2 (ja) 2007-08-03 2012-11-07 Kddi株式会社 分散情報生成装置、秘密情報復元装置、分散情報生成方法、秘密情報復元方法およびプログラム
JP5400705B2 (ja) * 2010-02-24 2014-01-29 日本電信電話株式会社 秘密計算システム、秘密計算方法、計算装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014007311A1 (ja) * 2012-07-05 2014-01-09 日本電信電話株式会社 秘密分散システム、データ分散装置、分散データ変換装置、秘密分散方法、およびプログラム
JP2014164145A (ja) * 2013-02-26 2014-09-08 Nippon Telegr & Teleph Corp <Ntt> 秘密集合演算装置及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NAOTO KIRIBUCHI ET AL.: "Ronri Enzan no Ikkatsuka ni yoru Multi-party Keisan no Koritsuka to Himitsu Bunsan Database Kensaku eno Oyo", DAI 29 KAI SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS 2012) GAIYOSHU, January 2012 (2012-01-01), pages 3 D3 - 3 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11334353B2 (en) 2017-05-18 2022-05-17 Nec Corporation Multiparty computation method, apparatus and program
JP2020532771A (ja) * 2017-08-30 2020-11-12 インファー,インク. 高精度プライバシ保護実数値関数評価
JP7272363B2 (ja) 2017-08-30 2023-05-12 インファー,インク. 高精度プライバシ保護実数値関数評価
CN111133719B (zh) * 2017-09-29 2024-01-26 罗伯特·博世有限公司 用于利用spdz的更快速的安全多方内积计算的方法
CN111133719A (zh) * 2017-09-29 2020-05-08 罗伯特·博世有限公司 用于利用spdz的更快速的安全多方内积计算的方法
WO2019063503A1 (en) * 2017-09-29 2019-04-04 Robert Bosch Gmbh METHOD FOR CALCULATING FASTER SECURED MULTIPARTITE INTERNAL PRODUCT USING SPDZ
US11323444B2 (en) 2017-09-29 2022-05-03 Robert Bosch Gmbh Method for faster secure multiparty inner product computation with SPDZ
WO2019163636A1 (ja) * 2018-02-20 2019-08-29 日本電信電話株式会社 秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム
JPWO2019163636A1 (ja) * 2018-02-20 2021-02-04 日本電信電話株式会社 秘密計算装置、秘密計算認証システム、秘密計算方法、およびプログラム
AU2019223507B2 (en) * 2018-02-20 2021-05-06 Nippon Telegraph And Telephone Corporation Secure computation device, secure computation authentication system, secure computation method, and program
US11934518B2 (en) 2019-01-09 2024-03-19 Nec Corporation Verification apparatus, multiparty computation verification system, and method and program for verifying multiparty computation executable code
CN113098840A (zh) * 2021-02-25 2021-07-09 鹏城实验室 基于加法秘密分享技术的高效安全线性整流函数运算方法
CN113098840B (zh) * 2021-02-25 2022-08-16 鹏城实验室 基于加法秘密分享技术的高效安全线性整流函数运算方法

Also Published As

Publication number Publication date
US20180115415A1 (en) 2018-04-26
JP6693508B2 (ja) 2020-05-13
US10749671B2 (en) 2020-08-18
JPWO2016159357A1 (ja) 2018-02-01

Similar Documents

Publication Publication Date Title
WO2016159357A1 (ja) 秘密計算システム、サーバ装置、秘密計算方法、および、プログラム
CN110557245B (zh) 用于spdz的容错和安全多方计算的方法和系统
CN111512589B (zh) 用于利用spdz的快速安全多方内积的方法
Pasupuleti et al. An efficient and secure privacy-preserving approach for outsourced data of resource constrained mobile devices in cloud computing
Ding et al. Encrypted data processing with homomorphic re-encryption
Lambić A novel method of S-box design based on chaotic map and composition method
US8638926B2 (en) Sharing a secret with modular inverses
WO2020006692A1 (zh) 一种全同态加密方法、装置和计算机可读存储介质
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
Ustimenko et al. On the constructions of new symmetric ciphers based on nonbijective multivariate maps of prescribed degree
Sengupta et al. Message mapping and reverse mapping in elliptic curve cryptosystem
US20170257218A1 (en) Cryptographic hash generation system
WO2016148281A1 (ja) 秘匿文字列計算システム及び方法と装置並びにプログラム
US11101981B2 (en) Generating a pseudorandom number based on a portion of shares used in a cryptographic operation
Biksham et al. A lightweight fully homomorphic encryption scheme for cloud security
Syam Kumar et al. RSA-based dynamic public audit service for integrity verification of data storage in cloud computing using Sobol sequence
US11599681B2 (en) Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program
Li et al. Privacy-preserving large-scale systems of linear equations in outsourcing storage and computation
Zheng et al. FFT‐based multidimensional linear attack on PRESENT using the 2‐bit‐fixed characteristic
Ramezanian et al. Privacy preserving shortest path queries on directed graph
Block et al. Secure computation using leaky correlations (asymptotically optimal constructions)
Babenko et al. Algebraic analysis of GOST encryption algorithm
Santhanalakshmi et al. Design of secure cryptographic hash function using soft computing techniques
EP3959841B1 (en) Compression and oblivious expansion of rlwe ciphertexts
Liu et al. Proofs of encrypted data retrievability with probabilistic and homomorphic message authenticators

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15562659

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2017510254

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16773237

Country of ref document: EP

Kind code of ref document: A1