WO2020075273A1 - 情報処理装置、秘密計算方法及びプログラム - Google Patents
情報処理装置、秘密計算方法及びプログラム Download PDFInfo
- Publication number
- WO2020075273A1 WO2020075273A1 PCT/JP2018/037967 JP2018037967W WO2020075273A1 WO 2020075273 A1 WO2020075273 A1 WO 2020075273A1 JP 2018037967 W JP2018037967 W JP 2018037967W WO 2020075273 A1 WO2020075273 A1 WO 2020075273A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- bit
- calculation
- communication
- secret calculation
- information processing
- 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/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/727—Modulo N arithmetic, with N being either (2**n)-1,2**n or (2**n)+1, e.g. mod 3, mod 4 or mod 5
-
- 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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
Definitions
- the present invention relates to an information processing device, a secret calculation method, and a program.
- the first method is a secret calculation protocol that can be executed only in a specific calculation.
- the second method is a secret calculation protocol that can execute arbitrary calculations.
- there are various methods in the second method and a trade-off in the cost is established between the methods with respect to the communication amount (data amount) and the number of communication rounds. That is, there are a method in which the number of times of communication is large instead of a small amount of communication and a method in which the number of times of communication is small but the number of times of communication is small.
- the secret calculation it is possible to execute arbitrary processing while keeping the input data secret, so application of the secret calculation to the field where protection of personal information is strongly required is being considered.
- a medical field as an application field of secret calculation.
- a calculation related to genomic medicine there is a calculation of an edit distance between two DNAs (DeoxyriboNucleic Acid).
- Non-Patent Document 1 discloses a technique called GC (Garbled Circuit).
- the GC is a typical method of secret computation between two parties, and realizes an arbitrary logic circuit calculation by generating an encrypted circuit.
- the secret calculation method has a property that the number of communication rounds at the time of execution is suppressed to a constant number, but the communication amount is large.
- Non-Patent Documents 2 to 4 disclose a method of calculating an edit distance using the above GC (Garbled Circuit).
- Non-Patent Document 5 discloses an edit distance algorithm using a DP (Dynamic Programming) matrix. As will be described later, the DP matrix is a matrix (table) used in the process of calculating the edit distance. Further, in Non-Patent Document 6, when the insertion, deletion, and replacement costs are set to "1" in the calculation of the edit distance, the difference between the scores of the adjacent cells is 1, 0, or -1. Is disclosed.
- Non-Patent Document 2 proposes a method in which all the scores required for editing distance calculation are calculated using GC, and a method in which the DP matrix is divided and calculated.
- Non-Patent Document 2 describes that the latter DP matrix division method can perform distance calculation between 500 characters within one hour.
- Non-Patent Document 3 discloses a technique for optimizing the edit distance calculation circuit and improving the efficiency of GC.
- Non-Patent Document 3 when an edit distance calculation of 100 characters with one character of 8 bits was performed, 92.4 seconds were required when all the calculations in Non-Patent Document 2 were performed by GC.
- Non-Patent Document 3 describes that the method is completed in 4.1 seconds.
- Non-Patent Document 4 discloses a technique capable of hiding a calculation function for a specific party (secret calculation server) while using GC. That is, by using the technique disclosed in Non-Patent Document 4, it is possible to hide whether a specific party is calculating the edit distance or another calculation.
- the edit distance calculation of 100 characters of 2 bits per character requires 6.97 seconds as the execution time excluding the pre-calculation.
- Non-Patent Document 7 discloses a technique called FHE (Fully Homomorphic Encryption).
- “*" and "+” indicate a multiplication operator and an addition operator, respectively.
- the calculation of the ciphertexts can be executed on one server, and therefore the communication cost does not occur in the calculation.
- the FHE method has a property that the ciphertext length is very large.
- Non-Patent Document 8 discloses a method of calculating an edit distance using the above FHE.
- one character is regarded as a bit string, and a ciphertext is generated for each bit.
- one character is a 2-bit string.
- the edit distance calculation of eight characters is performed for 682 arrays, it takes 5 hours and 13 minutes.
- Non-Patent Document 9 and Non-Patent Document 10 disclose secret sharing-based three-way secret computation.
- the secret sharing-based secret calculation is a method of calculating each gate of the circuit in a state where each input is distributed to participants (party; secret calculation server).
- both arithmetic circuits and logic circuits can be calculated as secret sharing-based calculations.
- the secret sharing-based secret calculation has the property that the number of communication rounds increases in proportion to the depth of the circuit passing through the multiplication gate and the AND gate, although the communication amount is small.
- Non-Patent Document 9 the technology disclosed in Non-Patent Document 12 is used to calculate the edit distance.
- the calculation of the edit distance in Non-Patent Document 9 the calculation of the edit distance of 100 characters each having 2 bits per character is executed 145 times per second.
- the circuit of Non-Patent Document 12 has a fraud detection function and has higher safety than the techniques disclosed in Non-Patent Documents 2 and 3 and Non-Patent Documents 10 to 12 described later. .
- Non-Patent Documents 13 to 15 disclose a technique of calculating an approximate value of the edit distance.
- Non-Patent Documents 13 to 15 realize calculation with reduced accuracy (Approximate calculation) by limiting to edit distance calculation regarding a DNA base sequence. As a result, the performance improvement of the secret calculation is achieved.
- Non-Patent Document 13 proposes an approximate value calculation of an edit distance for a human genome.
- a known sequence called a reference genome is used by limiting the edit distance calculation target to the human genome.
- the reference genome and the two sequences whose edit distances are to be calculated generate a set having insertion, deletion, and replacement operations as elements for each character.
- the reference genome is R and the two sequences whose edit distances are to be calculated are A and B
- the set generated from R and A is A ′
- the set generated from R and B is B ′. write.
- the edit distance is accurately calculated so that the relative error is suppressed to 1% for the edit distance calculated at 90% in the test case, 196.1 seconds for 10 pairs of arrays. It costs.
- Non-Patent Document 14 proposes a method of calculating an edit distance using PSI (Private Set Intersection) disclosed in Non-Patent Document 16 and a method of calculating the edit distance by further using GC in the calculation.
- PSI is a protocol that takes two sets as inputs and obtains only information about common elements with hidden inputs.
- Non-Patent Document 14 In the method using PSI disclosed in Non-Patent Document 14, a character string "singling" is divided into fixed-length characters, and a set of the divided characters is generated by a query character string and a character string on the database side. . In Non-Patent Document 14, the common part of each set is calculated as an approximate value of the edit distance. At that time, PSI is used.
- Banded Alignment is one of the approximate calculation of the edit distance that can be used when the lengths of sequences such as DNA sequences and character strings can be treated as very close.
- banded alignment is performed by GC from t arrays and k arrays are selected and sent to the client as a response. In this method, a demonstrative experiment was performed in which a database of 2000 records having an array length of 9000 to 10000 was queried 50 times, and the above 10 arrays were replied. The calculation time required 730 seconds.
- Non-Patent Document 15 discloses an approximate value calculation of an edit distance based on GC.
- Non-Patent Document 15 divides a character string and calculates an edit distance for each block. Further, in Non-Patent Document 15, the cost of the editing distance is reduced by grasping the sum of the calculated editing distances as the editing distance of the entire character string. More specifically, the edit distance calculation cost is reduced from 0 (
- indicate the character string lengths of the character strings x and y, respectively.
- Non-Patent Document 15 by setting a human genome as an edit distance calculation target, the reference genome is used to divide the calculation target sequence into blocks, and the edit distance calculation for each block is made more efficient.
- the server pre-calculation required 11.86 seconds, the server-side execution time at query time 1.22 seconds, and the client-side execution time 0.48 seconds.
- Non-Patent Document 15 describes that the accuracy as an experimental result is 98.85%.
- Hikaru Tsuchida, Toshinori Araki, Kazuma Ohara and Furukawa Jun “Protection of biometric information and genetic information by multi-party computation capable of fraud detection", 2018 Symposium on Cryptography and Information Security, Niigata, Japan, 2018, 2A1-5.
- Kazuma Ohara, Toshinori Araki, Hikaru Tsuchida and Furukawa Jun “Multi-party computation that can detect fraud in which rings of different sizes are mixed", 2018 Symposium on Cryptography and Information Security, Niigata, Japan, 2018, 2A1-4.
- the secret calculation has an advantage that it can obtain a predetermined calculation result while keeping the input data secret.
- multiplication of secretly distributed input data requires communication between servers and has a property that it takes a relatively long time to obtain a calculation result. Due to the nature of such secret calculation, an unacceptably long processing time is required or the calculation accuracy needs to be lowered. In the calculation of the edit distance illustrated above, the accuracy is reduced to improve the processing performance (processing speed).
- the value of the result calculated with reduced accuracy may be treated as low value. That is, the calculation result with a low accuracy (editing distance with a low accuracy) may be inappropriate data for a user (for example, a medical staff).
- the time required to obtain an accurate calculation result is too long, it will hinder the user's work.
- the techniques described in Non-Patent Document 2 and the like described above have a problem that the processing performance is low, or that the accuracy of calculation is sacrificed in order to improve the processing performance. Thus, many of the existing techniques either require significant computation time or reduce computation time at the expense of accurate distance computation.
- the main object of the present invention is to provide an information processing device, a secret calculation method, and a program that contribute to accurately and rapidly executing a predetermined process by a secret operation.
- the difference value between the secretly shared first and second shares is a natural number t or less
- the difference value between the first and second shares is calculated.
- an information processing device that performs the magnitude comparison regarding the first and second shares by using bit decomposition of the least significant bit to the m-th bit (m is a natural number) regarding the difference value.
- the first and second shares are And a step of performing a magnitude comparison on the first and second shares by using a bit decomposition from the least significant bit to the m-th bit (m is a natural number) on the difference value.
- a secret calculation method is provided.
- the difference between the first and second shares is calculated.
- a program for executing a process of calculating a value and a process of performing a magnitude comparison on the first and second shares by using bit decomposition of the least significant bit to the m-th bit (m is a natural number) regarding the difference value. Will be provided.
- This program can be recorded on a computer-readable storage medium.
- the storage medium can be non-transient, such as a semiconductor memory, hard disk, magnetic recording medium, optical recording medium, and the like.
- the present invention can be embodied as a computer program product.
- an information processing device a secret calculation method, and a program that contribute to accurately and rapidly executing a predetermined process by a secret calculation.
- FIG. 9 is a flowchart showing an example of a score calculation operation by a secret calculation execution unit according to the second embodiment. It is a figure which shows an example of the communication cost required for edit distance calculation by various methods. It is a figure which shows an example of another structure of a secret calculation system.
- connection lines between blocks in each drawing include both bidirectional and unidirectional.
- the one-way arrow schematically indicates the flow of a main signal (data), and does not exclude bidirectionality.
- an input port and an output port exist at each of the input end and the output end of each connection line. The same applies to the input / output interface.
- the information processing apparatus 100 determines the difference value between the first and second shares when the absolute value of the difference value between the secretly shared first and second shares is a natural number t or less. calculate. Further, the information processing apparatus 100 performs the magnitude comparison regarding the first and second shares by using the bit decomposition of the m-th bit (m is a natural number) from the least significant bit regarding the difference value.
- the information processing apparatus 100 converts the difference value between two shares by a binary number when comparing the magnitudes of the secretly shared shares.
- the information to be compared in magnitude is secretly shared information (numerical value)
- “bit decomposition” disclosed in Non-Patent Document 10 and the like is used. The technology called is required. The bit decomposition is performed on the bit value (value of each digit in binary notation) of the secretly shared value in order from the least significant bit to the most significant bit.
- bit decomposition if the predetermined condition is satisfied, it is possible to determine the magnitude comparison (positive / negative of difference value) of two shares without calculating values for all bits. I got the knowledge. Specifically, if it is known in advance that the absolute value of the difference value between the two shares is equal to or less than a predetermined number (the natural number t), the bit decomposition regarding the difference value is executed up to the most significant bit. It turned out to be unnecessary. Although the details will be described later, for example, the above condition is satisfied in the edit distance of two character strings.
- the information processing apparatus 100 When performing a size comparison on two shares, the information processing apparatus 100 restricts the bit decomposition, which has a relatively large communication cost, to the minimum necessary number of bits (the m-th bit described above), thereby performing the process by the secret calculation. Achieve higher speed. Further, even if the bit decomposition is limited to bits in the middle, it does not affect the result of the size comparison, so that the accuracy of the processing result including the size comparison does not decrease.
- a fuzzy search of a database can be cited as a process in which the edit distance calculation is used as a subroutine.
- latency is more important than throughput.
- genomic medicine it is assumed that genomic information managed in each country of the world is used due to differences in races and regions.
- genomic information managed in each country of the world is used due to differences in races and regions.
- TCP Transmission Control Protocol
- a secret calculation system that focuses on the number of communication rounds and improves the number of communication rounds is provided.
- an accurate edit distance calculation using the secret calculation and a performance improvement effect regarding higher-level processing using the edit distance calculation as a subroutine are expected.
- FIG. 2 is a diagram showing an example of a schematic configuration of the secret calculation system according to the first embodiment.
- the secret calculation system includes a control device 10 and a plurality of secret calculation servers 20-1 to 20-3.
- the respective devices shown in FIG. 2 are connected to each other and are capable of transmitting and receiving data to and from each other.
- the secret calculation servers 20-1 to 20-3 are simply referred to as “secret calculation server 20” unless there is a particular reason to distinguish them.
- the system configuration shown in FIG. 2 is merely an example and does not mean that the number of secret calculation servers 20 and the like is limited.
- the control device 10 is a device that controls the secret calculation server 20. Specifically, the control device 10 controls input / output of data to / from each secret calculation server 20.
- the secret calculation server 20 is a server that executes secret calculation.
- the secret calculation server 20 receives input data (secret-shared data) from the control device 10. Each secret calculation server 20 cooperates with other servers to execute a predetermined process using the input data.
- the secret calculation server 20 transmits the calculation result to the control device 10. Alternatively, the secret calculation server 20 may send the calculation result to an external device different from the control device 10.
- the secret calculation system shown in Fig. 2 calculates the edit distance for two DNA sequences.
- the control device 10 secretly distributes the two DNA sequences for which the edit distance is to be calculated, and transmits the secretly shared data to each secret calculation server 20.
- Each secret calculation server 20 acquires input data (share information; secretly distributed DNA sequence) and executes a secret calculation related to calculation of edit distance.
- the control device 10 collects the calculation result from each secret calculation server 20 and decrypts the calculation result.
- the DNA sequence is the calculation target of the edit distance, but it is needless to say that another character string may be the calculation target of the edit distance.
- the WF (Wagner-Fischer) method described in Non-Patent Document 5 can be used to calculate the edit distance.
- the calculation of the edit distance by the Wagner-Fischer method will be specifically described below.
- a DP matrix is created.
- the DP matrix as shown in FIG. 3A is generated.
- k is a natural number, the same applies hereinafter
- a DP matrix of k + 1 rows and k + 1 columns is generated.
- a DP matrix of 4 rows and 4 columns is generated.
- a value (score) corresponding to each element of the DP matrix is expressed as D i, j .
- i is an index in the row direction of the DP matrix
- j is an index in the column direction of the DP matrix.
- the score of each element in the DP matrix is calculated.
- values corresponding to the three elements based on the element for which score is calculated are calculated.
- the minimum value is the score to be calculated.
- the first calculated value is the value obtained by adding "1" to the score of the element immediately above the element for which the score is to be calculated (element whose index in the column direction is one less).
- the second calculated value is the value obtained by adding "1" to the score of the element to the left of the element for which the score is to be calculated (the element whose index in the row direction is one less).
- the third calculated value is a value obtained by adding "C" to the score of the element on the upper left of the element whose score is to be calculated (element whose index in the column direction and row direction is smaller by 1).
- C 0.
- the DP matrix after initialization becomes as shown in FIG.
- the edit distance is the score at the bottom right of the DP matrix ( D3,3 ). In the example of FIGS. 3C and 3D, the edit distance is “1”.
- the above-described edit distance calculation is performed by secret calculation.
- the coset ring modulo 2 n (N is a natural number, the same applies hereinafter).
- [W] is also referred to as a bit share
- [ ⁇ ] n is also referred to as a ring share.
- the secret calculation server 20 can independently calculate the first, third, and fourth equations among the above four equations (can be calculated locally; communication with other servers is not required).
- the second equation requires communication with another secret calculation server 20 for its calculation.
- the secret calculation method disclosed in Non-Patent Document 11 requires a communication amount of 3n bits and one communication round number.
- bit decomposition In the secret calculation system according to the first embodiment, the calculation called “bit decomposition” disclosed in Non-Patent Document 10 is used for edit distance calculation. Hereinafter, the outline of the bit decomposition disclosed in Non-Patent Document 10 will be described.
- the dispersion information for each bit of “0101”, which is the binary notation of the numerical value “5” can be obtained from these dispersion information.
- each secret calculation server 20 owns the following information, for example.
- bit decomposition there are various methods for bit decomposition, but the bit decomposition disclosed in Non-Patent Document 10 is used in the present disclosure. Although details regarding a calculation method (algorithm) for bit decomposition disclosed in Non-Patent Document 10 are omitted, in the bit decomposition according to the document, information distributed to each secret calculation server 20 is calculated in order from the least significant bit.
- Non-Patent Document 10 when the method disclosed in Non-Patent Document 10 is used for the bit decomposition, the communication amount of 6 (n-1) bits, n -One communication round is required.
- Bit embedding is a process of converting a bit share [b] into a ring share [b] n .
- the bit embedding is expressed as the following Expression (2).
- bit embedding process disclosed in Non-Patent Document 10 is used in the present disclosure. Since the process related to bit embedding is clear to those skilled in the art from Non-Patent Document 10, details regarding the bit embedding calculation method (algorithm) disclosed in the document will be omitted.
- FIG. 4 is a diagram illustrating an example of a processing configuration of the control device 10 according to the first embodiment.
- the control device 10 includes a communication control unit 201, a secret shared data generation unit 202, and a secret shared data decryption unit 203.
- the communication control unit 201 is means for controlling communication with another device (secret calculation server 20).
- the secret shared data decryption unit 203 is a unit that collects and restores the result of the secret calculation by each secret calculation server 20.
- FIG. 5 is a diagram illustrating an example of a processing configuration of the secret calculation server 20 according to the first embodiment.
- the secret calculation server 20 includes a communication control unit 301 and a secret calculation execution unit 302.
- the communication control unit 301 is means for controlling communication with other devices (control device 10, other secret calculation server 20).
- the secret calculation execution unit 302 is means for executing a predetermined secret calculation. Specifically, the secret calculation executing unit 302 executes the calculation of the edit distance regarding the two DNA sequences. The secret calculation execution unit 302 executes a secret calculation according to a secret calculation execution code provided from an external device (for example, the control device 10).
- FIG. 6 is a flowchart showing an example of the operation of the secret calculation execution unit 302.
- the secret calculation executing unit 302 acquires the secretly shared input data (two DNA sequences) via the communication control unit 301 (step S01).
- the secret calculation execution unit 302 generates a DP matrix (for example, see FIG. 3) according to the number of characters included in the acquired two DNA sequences (step S02). At that time, the secret calculation executing unit 302 initializes the DP matrix.
- the secret calculation execution unit 302 calculates the score of each element of the DP matrix (step S03). Details of the score calculation processing in each element of the DP matrix will be described later.
- the secret calculation execution unit 302 confirms whether score calculation has been completed for all elements (step S04). If the scores of all the elements have been calculated (step S04, Yes branch), the secret calculation execution unit 302 executes the process of step S05. If the calculation of the scores of all the elements has not been completed (step S04, No branch), the secret calculation execution unit 302 repeats the process of step S03.
- the secret calculation execution unit 302 transmits the secretly shared calculation result to the control device 10 (step S05).
- the secret calculation executing unit 302 determines whether or not the characters assigned in the row direction (horizontal direction) and the column direction (vertical direction) of the score calculation target element (bottom right cell in FIG. 8) match. Step S101).
- step S101, Yes branch the secret calculation execution unit 302 adds “1” to the score D i ⁇ 1, j ⁇ 1 of the upper left element (step S102). If the characters do not match (step S101, No branch), the secret calculation execution unit 302 does not perform any special processing, but executes the processing from step S103.
- the secret calculation execution unit 302 adds “1” to the scores D i, j ⁇ 1 and D i ⁇ 1, j of the elements to the left and above the element whose score is to be calculated (step S103).
- the secret calculation execution unit 302 compares the scores of the left and upper elements (diagonal elements) of the element whose score is to be calculated (step S104).
- the secret calculation executing unit 302 compares the two scores by using the bit decomposition described above. This is because, when the magnitude comparison is performed in the state where the two scores are secretly shared, the result can be easily obtained by the logical operation rather than the numerical operation. Specifically, if the difference value between two numerical values is expressed in binary, the positive / negative of the difference value (the size of the comparison target) can be easily obtained according to the value of the most significant bit.
- the secret calculation executing unit 302 compares the two scores by using bit decomposition for the above reasons.
- the secret calculation execution unit 302 When executing the above-described bit decomposition processing, the secret calculation execution unit 302 does not decompose all bits with respect to the difference value between the two scores, and when the bit decomposition up to a predetermined digit (predetermined number of bits) is completed. The process ends.
- the difference value is a numerical value that can be represented by 4 bits (for example, 5; binary notation is 0101)
- bit decomposition is performed in order from the least significant bit (0th bit) to the most significant bit.
- the processing ends when the bit decomposition of the bit (third bit) is completed.
- the secret calculation execution unit 302 replaces the normal bit decomposition as described above with, for example, a process of ending the bit decomposition of the numerical value that can be represented by 4 bits when the bit decomposition up to the first bit is completed. Run.
- the secret calculation execution unit 302 compares the two scores using the result of the bit decomposition performed up to the intermediate bits in this way.
- a process of performing bit decomposition up to a predetermined bit for each of the two scores and performing size comparison using the result of bit decomposition halfway is referred to as “limited size comparison”.
- Non-Patent Document 6 if the replacement cost, the insertion cost, and the deletion cost are each “1”, the difference between the scores of adjacent elements in the DP matrix excluding the elements above and to the left of the score calculation target is , "1", "0", or "-1". Applying this fact to the DP matrix of FIG. 8, the relationship expressed by the following five equations is obtained.
- the first bit (the second bit from the right) is used when performing the magnitude comparison of the two input values ⁇ and ⁇ ' by the secret calculation. It turns out that it is sufficient if the information up to is obtained. In other words, when the magnitude comparison of two input values ⁇ and ⁇ ′ is performed by a secret calculation and the relationship of
- the comparison target is the score of the diagonal elements (the two elements on the top and the left of the score calculation target)
- ⁇ 2 holds, so the difference between the two shares Bit decomposition is required up to the second bit with respect to.
- Shares to be compared are [ ⁇ ] n and [ ⁇ ′] n . That is, each of the two shares is a share that belongs to the coset ring modulo 2 n .
- the output result of the limited magnitude comparison is "1" if the inequality sign is satisfied, and "0" if the inequality sign is not satisfied.
- m is a bit position of bit decomposition required for limited size comparison, which satisfies the following expression (5). That is, in the limited size comparison, it is necessary to perform bit decomposition up to the m-th bit calculated from Expression (5) (the number of digits for bit decomposition is m + 1).
- the secret calculation execution unit 302 executes bit decomposition according to the following expression (6).
- the secret calculation execution unit 302 outputs the result [( ⁇ ′)
- the communication cost required for the limited size comparison is a communication amount of 6 m bits and the number of m communication rounds.
- bit decomposition is performed up to n bits under the conditions of 0 ⁇ ⁇ , ⁇ ′ ⁇ 2 n and
- the communication cost is the communication amount of 6 (n-1) bits and the number of communication rounds of n-1.
- the communication cost is the communication amount of 6 m bits and the number of communication rounds of m times.
- t and m are values (public value) determined in advance by a process using the bit decomposition (applied application; for example, calculation of edit distance)
- the communication cost of the bit decomposition is n (ring size). It is a constant that does not depend on.
- the secret calculation executing unit 302 compares the scores of the left element and the upper element (diagonal element) of the score calculation target element. (Step S104). Specifically, the secret calculation execution unit 302 performs the restricted size comparison represented by the following formula (7) to obtain the determination result [i_or_d].
- the secret calculation executing unit 302 calculates the difference value between the two scores to which 1 is added.
- the secret calculation execution unit 302 executes bit decomposition up to the second bit for the difference value.
- the secret calculation executing unit 302 determines the size of the score according to the value of the bit-decomposed second bit. More specifically, if the second bit is “1”, the difference value between the two scores indicates a negative value. Therefore, in the above formula (7), the score D i, j ⁇ 1 +1 is the score. It is determined to be larger than D i ⁇ 1, j + 1 .
- the secret calculation executing unit 302 determines the magnitude of the two shares according to the value of the m-th bit of the bit-divided difference value.
- the communication cost required for comparison of the scores on the diagonal line is the 12-bit communication volume and the number of communication rounds.
- the secret calculation execution unit 302 performs a diagonal size comparison of the scores of the elements located above and to the left of the score calculation target element in the DP matrix used for calculating the edit distance as “limited size comparison”.
- the secret calculation executing unit 302 calculates the minimum value [IorD] n of the score on the diagonal line in the DP matrix (step S105). Specifically, the secret calculation execution unit 302 calculates the minimum value [IorD] n according to the following equation (8).
- bit embedding is used in the above equation (8).
- the calculation of the minimum value using the bit embedding can be performed according to the “selection of the minimum and the maximum” described in “3. Numerical Calculation Example” of Non-Patent Document 9, and thus detailed description thereof will be omitted.
- the communication cost required for the calculation of the minimum value is the communication amount of 18n bits and the number of communication rounds of 3 times when the fraud detection is not performed.
- the secret calculation execution unit 302 compares the minimum value [IorD] n on the diagonal with the score of the upper left element (step S106). Also in the size comparison, the secret calculation execution unit 302 performs the size comparison on the two inputs using the restricted size comparison.
- the secret calculation executing unit 302 obtains the determination result by the limited size comparison involving bit decomposition up to the first bit.
- the communication cost is a 6-bit communication amount and one communication round number.
- the secret calculation executing unit 302 also performs “size restriction” on the size comparison regarding the score of the element determined to be smaller in the diagonal size comparison and the score of the element located in the upper left of the score calculation target element. Comparison of large and small "
- the secret calculation executing unit 302 calculates the minimum value [IorD] n on the diagonal line and the minimum value regarding the score of the upper left element (step S107). Specifically, the secret calculation executing unit 302 calculates the minimum value as in the equation (8). The minimum value calculated in step S107 becomes the score in the element for score calculation (the cell at the lower right of FIG. 8). The communication cost required for calculating the minimum value in this case is also the communication amount of 18n bits and the number of communication rounds of three times.
- the communication volume is 36n + 18 bits, and the communication round number is 9 rounds (9 times).
- each secret calculation server 20 determines the difference between the two shares when the condition (the absolute value of the difference value between the two secretly shared shares is equal to or less than the natural number t) shown in Expression (3) is satisfied. Calculate the value. Further, each secret calculation server 20 compares the magnitudes of the two shares using bit decomposition of the least significant bit to the m-th bit regarding the difference value.
- FIG. 9 is a diagram showing an example of the hardware configuration of the secret calculation server 20.
- the secret calculation server 20 is realized by a so-called information processing device (computer) and has the configuration illustrated in FIG.
- the secret calculation server 20 includes a CPU (Central Processing Unit) 21, a memory 22, an input / output interface 23, a NIC (Network Interface Card) 24 that is a communication unit, and the like, which are mutually connected by an internal bus.
- CPU Central Processing Unit
- memory 22 an input / output interface 23
- NIC Network Interface Card
- the secret calculation server 20 may include hardware (not shown).
- the number of CPUs and the like included in the secret calculation server 20 is not limited to the example illustrated in FIG. 9.
- a plurality of CPUs 21 may be included in the secret calculation server 20.
- the memory 22 is a RAM (Random Access Memory), a ROM (Read Only Memory), an auxiliary storage device (hard disk, etc.), or the like.
- the input / output interface 23 is an interface of an input / output device (not shown).
- the input / output device includes, for example, a display device and an operation device.
- the display device is, for example, a liquid crystal display or the like.
- the operation device is, for example, a keyboard or a mouse.
- the function of the secret calculation server 20 is realized by the processing module described above.
- the processing module is realized by the CPU 21 executing a program stored in the memory 22, for example.
- the program can be downloaded via a network or updated by using a storage medium storing the program.
- the processing module may be realized by a semiconductor chip. That is, the function performed by the processing module may be realized by any hardware or software executed using the hardware.
- control device 10 can also be realized by an information processing device (computer), and its hardware configuration is clear to those skilled in the art, so detailed description thereof will be omitted.
- the size comparison required to calculate the edit distance is executed by the limited size comparison. More specifically, the secret calculation server 20 does not perform the decomposition on all digits in the calculation of the bit decomposition required when comparing the two scores in magnitude, and instead of performing the decomposition on a predetermined condition (equation (3)). Bit decomposition up to the digit (m-th bit) determined by the condition) is performed and the magnitude comparison is performed. As a result, it is possible to reduce the cost when the edit distance is calculated by the secret calculation.
- Non-Patent Document 10 when bit decomposition is performed using the method disclosed in Non-Patent Document 10 using the disclosure of Non-Patent Document 11, a communication amount of 6 (n-1) bits, It requires n-1 communication rounds. That is, in the secret calculation using the existing bit decomposition, when the size of the ring of scores in the DP matrix is 2 n , the cost of size comparison (communication amount, communication round number) is proportional to n.
- the cost required for the size comparison is a constant size that is not proportional to n as follows.
- the secret calculation system has a small cost even when the number of characters of the DNA sequence to be the object of the edit distance calculation is large (when the size of the ring 2 n is large). You can get the edit distance with. In other words, the greater the number of characters of the DNA sequence to be compared, the more remarkable the communication cost reduction effect due to the limited size comparison.
- the size of the scores on the diagonal line is compared when calculating the edit distance.
- the absolute value of the difference between the scores on the diagonal line is 2 or less, bit division up to the second bit is necessary for the size comparison.
- the secret calculation system implements the size comparison on the diagonal line by changing the size comparison target, thereby reducing the number of communication rounds.
- the secret calculation system, the control device 10, and the secret calculation server 20 according to the first and second embodiments can be the same, so description corresponding to FIG. 2 and the like will be omitted.
- the secret calculation server 20 according to the first and second embodiments can be the same, so description corresponding to FIG. 2 and the like will be omitted.
- differences from the first embodiment will be mainly described.
- FIG. 10 is a flowchart showing an example of the score calculation operation in the secret calculation execution unit 302 according to the second embodiment. Since the processes in steps S101 to S103 in FIGS. 7 and 10 can be the same, the same reference numerals are given and detailed description thereof will be omitted.
- step S114 the secret calculation execution unit 302 executes the size comparison between the scores in the horizontal direction and the size comparison between the scores in the vertical direction in parallel. Specifically, the secret calculation execution unit 302 compares the upper left score and the upper score with each other (the horizontal size comparison) with reference to the score calculation target element (lower right square) in FIG. Further, in parallel with the horizontal size comparison, the secret calculation execution unit 302 performs a size comparison on the upper left and left scores based on the score calculation target element (vertical size comparison). The secret calculation execution unit 302 performs these magnitude comparisons by the limited magnitude comparison described above. Specifically, the secret calculation execution unit 302 performs limited size comparison with bit decomposition up to the first bit in each of the horizontal direction and the vertical direction.
- the secret calculation executing unit 302 calculates the horizontal size comparison result [h] and the vertical size comparison result [v] by the following formula (9).
- the reason why the secret calculation execution unit 302 calculates the two magnitude comparisons in parallel (simultaneously) is to suppress the communication cost required for the calculation. Communication between the secret calculation servers 20 is required for the size comparison. At this time, the communication costs are suppressed from increasing by making the communication occurring in the comparison of the two sizes the same timing.
- the communication cost required for the comparison of the magnitudes in the horizontal direction and the vertical direction is the communication amount of 12 bits and the number of communication rounds for one time.
- step S115 the secret calculation executing unit 302 executes the calculation of the minimum value [H] n in the horizontal direction and the minimum value [V] n in the vertical direction in parallel. Specifically, the secret calculation executing unit 302 calculates the two minimum values by the following formula (10).
- the secret calculation executing unit 302 also calculates in parallel the two minimum values in order to suppress communication costs.
- the communication cost required to calculate the minimum value in the horizontal direction and the vertical direction is the communication amount of 36n bits and the number of communication rounds of three times.
- the secret calculation execution unit 302 compares the minimum value [H] n in the horizontal direction and the minimum value [V] n in the vertical direction with each other (step S116). Also in this case, the secret calculation executing unit 302 identifies the smaller one of the two minimum values by the limited size comparison by bit decomposition up to the first bit.
- the communication cost required for the processing is a communication amount of 18n + 6 bits and the number of communication rounds of four times. In this way, the size comparison regarding the score of the element determined to be smaller in the horizontal size comparison and the score of the element determined to be smaller in the vertical size comparison is also performed by the limited size comparison.
- the secret calculation execution unit 302 adopts the value determined to be smaller as a result of the size comparison in step S116 as the score calculation target score.
- the communication cost required for calculating the minimum value in the second embodiment is summarized as follows: the communication amount is 54n + 18 bits and the communication round number is 8.
- the target of size comparison is changed from that of the first embodiment to reduce the number of communication rounds for minimum value calculation. Specifically, in the first embodiment, 9 rounds were required, but in the second embodiment, the number of communications is reduced to 8 rounds. However, in the second embodiment, since the number of limited size comparisons is increased, the amount of communication required to calculate the edit distance is increased.
- the cost related to the number of communication rounds decreases, but the cost related to the communication volume increases.
- Which of the editing distance calculation methods according to the first and second embodiments is adopted may be determined according to the environment in which the secret calculation system is placed. For example, when the bandwidth of the communication path connecting each secret calculation server 20 is narrow, the edit distance calculation method according to the first embodiment, which has a low communication cost, is advantageous. On the other hand, when the band of the communication path connecting each secret calculation server 20 is wide, a large amount of data can be transmitted / received in one communication, and thus the editing distance calculation method according to the second embodiment having a small number of communication rounds is provided. It is advantageous.
- the communication cost by the size comparison using the existing bit decomposition in the WF method disclosed in Non-Patent Document 5 and the size comparison using the existing bit decomposition in the bit parallel method disclosed in Non-Patent Document 6 are performed.
- the communication cost is shown as a comparative example. Note that the communication costs by the above four methods including the method disclosed in the present application are costs when the editing distance is calculated by the methods of Non-Patent Documents 10 and 11.
- FIG. 11 summarizes the communication costs required to obtain the edit distance under the above conditions (the communication amount and the communication round number required to calculate the edit distance by the secret calculation method of Non-Patent Documents 10 and 11). It is a figure. Referring to FIG. 11, compared to the calculation of the edit distance by the existing method (WF method disclosed in Non-Patent Document 5, bit parallel method disclosed in Non-Patent Document 6), according to the first and second embodiments. It is understood that the communication cost is greatly reduced by the method of calculating the edit distance.
- the number of communication rounds has decreased to 20% or less.
- the edit distances calculated by the above four methods are the same (the accuracy of the calculation result is the same). That is, an accurate edit distance can be calculated at high speed by using the edit distance calculation method disclosed in the present application.
- the configuration, operation, etc. of the secret calculation system described in the first and second embodiments are examples, and are not intended to limit the system configuration, etc.
- the control device 10 shown in FIG. 2 performing a centralized control of the secret calculation server 20
- one secret calculation server 20 among the plurality of secret calculation servers 20 shown in FIG. The configuration may be selected.
- the secret calculation server 20 selected as the representative server may control the other secret calculation servers 20 in the same manner as the control device 10.
- the representative server secretly distributes the input data, distributes the secretly shared data to the other secret calculation server 20, acquires the result of the secret calculation from the other secret calculation server 20, and decrypts it. May be.
- the computer By installing the secret calculation program in the storage unit of the information processing device (computer), the computer can function as a secret calculation server. Further, the secret calculation method can be executed by the computer by causing the computer to execute the secret calculation program.
- the calculation of the edit distance in two DNA sequences is illustrated as an application to which the “restricted size comparison” is applied.
- the restricted size comparison process can be applied to processes other than the edit distance calculation.
- the size of the two shares ([ ⁇ ] n , [ ⁇ ′] n ) can be determined by the above-mentioned limited size comparison.
- the possible range of the difference ( ⁇ ′) between the two shares is limited in advance, it is possible to obtain large and small comparison results by bit decomposition to some bits (digits). .
- Control Device 20-1 to 20-3 Secret Computing Server 21
- CPU Central Processing Unit
- memory 22
- input / output interface 24
- NIC Network Interface Card
- information processing device 201, 301 communication control unit 202 secret shared data generation unit 203 secret shared data decryption unit 302 secret calculation execution unit
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Storage Device Security (AREA)
Abstract
正確且つ高速に所定の処理を秘密演算にて実行する情報処理装置を提供する。情報処理装置は、秘密分散された第1及び第2のシェアの差分値の絶対値が自然数t以下の場合、第1及び第2のシェアの差分値を計算する。さらに、情報処理装置は、第1及び第2のシェアに関する大小比較を、当該差分値に関する最下位ビットから第mビット(mは自然数)のビット分解を用いて行う。
Description
本発明は、情報処理装置、秘密計算方法及びプログラムに関する。
近年、秘密計算(マルチパーティ計算;MPC(Multi Party Computation))に関する研究開発が盛んに行われている。秘密計算では、入力データを秘匿したまま所定の処理を実行し、結果を得ることができる。
秘密計算プロトコルは大きく2つの種類に大別される。第1の方式は、特定の計算に限って実行可能な秘密計算プロトコルである。第2の方式は、任意の計算が実行可能な秘密計算プロトコルである。また、第2の方式には種々の方式が存在し、方式間で通信量(データ量)と通信ラウンド数に関してそのコストにおけるトレードオフが成立する。つまり、通信量が少ない代わりに通信回数が多い方式や通信量は多いが通信回数が少ない方式が存在する。
上述のように、秘密計算では、入力データを秘密にしたまま任意の処理を実行できるため、個人情報の保護が強く求められる分野への秘密計算の適用が検討されている。例えば、秘密計算の適用分野として医療分野が挙げられる。具体的には、ゲノム情報を秘匿にしつつ、ゲノム医療に関する計算を行うことが検討されている。例えば、ゲノム医療に関する計算として、2つのDNA(Deoxyribo Nucleic Acid)の編集距離の計算がある。
非特許文献1には、GC(Garbled Circuit)と称される技術が開示されている。GCとは、2者間秘密計算の代表的な方式であり、暗号化された回路を生成することで任意の論理回路計算を実現する。当該秘密計算の方式は、実行時の通信ラウンド数が定数回に抑制される一方で、通信量は大きいという性質を有する。
非特許文献2~4には、上記GC(Garbled Circuit)を用いた編集距離の計算方法が開示されている。また、非特許文献5には、DP(Dynamic Programming)マトリクスを用いた編集距離のアルゴリズムが開示されている。なお、後述するように、DPマトリクスとは、編集距離の計算過程で使用される行列(テーブル)である。また、非特許文献6には、編集距離の計算において、挿入、削除、置換コストを「1」とした際に、隣り合うマス同士のスコアの差は1、0、-1のいずれかとなることが開示されている。
非特許文献2では、編集距離計算時に必要なスコアの計算を全てGCを用いて行う方式と、DPマトリクスを分割して計算する方式と、が提案されている。非特許文献2には、後者のDPマトリクス分割方式により、500文字同士の距離計算を1時間以内に実行可能であると記載されている。
非特許文献3には、編集距離計算回路の最適化とGCの効率を向上する技術が開示されている。非特許文献3には、1文字8ビットで100文字同士の編集距離計算を行った際、非特許文献2における全ての計算をGCにより行う場合には92.4秒必要であったものが、非特許文献3が提案する方式では4.1秒で完了した旨が記載されている。
非特許文献4は、GCを用いつつ、特定のパーティ(秘密計算サーバ)に対して計算する関数を隠すことができる技術を開示している。つまり、非特許文献4に開示された技術を用いることで、特定のパーティが編集距離を計算しているのか他の計算を行っているかを隠蔽することができる。当該文献による技術では、1文字2ビットの100文字同士の編集距離計算にて、事前計算を除いた実行時間として6.97秒要する。
非特許文献7には、FHE(Fully Homomorphic Encryption)と称される技術が開示されている。FHEとは、暗号文をEnc(m)とするとき、平文空間内の任意の平文m0、m1に対して、Enc(m0)*Enc(m1) = Enc(m0*m1)、Enc(m0)+Enc(m1) = Enc(m0+m1)が成り立つ暗号方式である。なお、「*」、「+」はそれぞれ、乗算演算子及び加算演算子を示す。FHEでは、上記暗号文同士の演算を1台のサーバ上で実行可能なため、当該計算には通信コストが発生しない。しかし、FHEの方式には暗号文長が非常に大きいという性質がある。
非特許文献8には、上記FHEを用いた編集距離の計算方法が開示されている。非特許文献8では、1文字をビット列と捉え、各ビットごとに暗号文を生成する。なお、非特許文献8では編集距離の対象としてDNA配列を想定しているので、1文字は2ビット列となる。非特許文献8の技術では、8文字同士の編集距離計算を682配列分行うと5時間13分必要となる。
非特許文献9及び非特許文献10は、秘密分散ベース3者間秘密計算を開示する。秘密分散ベース秘密計算とは、各入力を参加者(パーティ;秘密計算サーバ)に分散した状態で回路の各ゲートを計算していく方式である。また、非特許文献11及び非特許文献12によれば、算術回路、論理回路ともに秘密分散ベース計算として計算できる。秘密分散ベース秘密計算には、通信量は小さいが乗算ゲートや論理積ゲートを通過する回路の深さに比例して通信ラウンド数が増加するという性質がある。
非特許文献9では、非特許文献12に開示された技術を用いて、編集距離の計算を行っている。非特許文献9における当該編集距離の計算では、1文字2ビットの100文字同士の編集距離計算に対し秒間145回の実行を実現している。なお、非特許文献12の回路には不正検知機能が備わっており、上述の非特許文献2や非特許文献3、後述する非特許文献10~12に開示された技術よりも高い安全性を有する。
非特許文献13~15は、編集距離の近似値を計算する技術を開示する。非特許文献13~15では、DNA塩基配列に関する編集距離計算に限定することで、精度を落とした計算(Approximateな計算)を実現している。その結果、秘密計算の性能向上が達成されている。
非特許文献13は、ヒトゲノムを対象とした編集距離の近似値計算を提案している。非特許文献13では、編集距離の計算対象をヒトゲノムに限定することで、リファレンスゲノムという既知の配列を使用する。具体的には、リファレンスゲノムと編集距離を計算する対象である2配列とで、それぞれ1文字ごとに挿入、削除、置換の操作を要素とする集合が生成される。ここで、リファレンスゲノムをR、編集距離を計算する対象である2配列をA、Bとするとき、RとAから生成された集合をA’、RとBから生成された集合をB’と表記する。非特許文献13では、
を編集距離として計算している。より具体的には、非特許文献13では、
をGCにより計算している。
なお、非特許文献13では、テストケースにおける90%において計算した編集距離について相対誤差が1%に抑えられるよう正確に編集距離を計算した場合、配列のペア10個分に対して196.1秒要する。
を編集距離として計算している。より具体的には、非特許文献13では、
をGCにより計算している。
なお、非特許文献13では、テストケースにおける90%において計算した編集距離について相対誤差が1%に抑えられるよう正確に編集距離を計算した場合、配列のペア10個分に対して196.1秒要する。
非特許文献14は、非特許文献16に開示されたPSI(Private Set Intersection)を用いた編集距離の計算と、当該計算にさらにGCを用いて編集距離を計算する方式を提案している。なお、PSIとは、2つの集合を入力とし、入力を隠したまま共通する要素に関する情報だけを得るプロトコルである。
非特許文献14に開示されたPSIを用いる方式では、「shingling」という文字列を固定長の文字に分割し、当該分割された文字の集合をクエリ文字列とデータベース側の文字列とで生成する。非特許文献14では、それぞれの集合の共通部分を編集距離の近似値として計算する。その際、PSIが用いられている。
非特許文献14に開示されたPSIとGCを用いる方式では、非特許文献17に開示されたBanded Alignmentという編集距離の計算方法をGCで計算している。Banded Alignmentとは、DNA配列のような配列同士の長さや文字列が非常に近いものとして扱える場合に使用できる編集距離の近似値計算の1つである。非特許文献14では、クライアントがクエリした配列に対し、上述の方式(PSIを用いる方式)によりデータベース中の配列について編集距離を求めている。その後、値が小さい上位t(=ck、C≧1)個の配列が選択される。さらに、t個の配列からGCによりBanded Alignmentを行い、k個の配列を選択し、レスポンスとしてクライアントに送られる。当該方式では、配列の長さが9000~10000である2000レコードのデータベースに50回クエリし、上記10個の配列を返答するという実証実験を行ったところ、事前計算に181秒、クエリ発行からの計算時間に730秒要した。
非特許文献15は、GCを基礎とした編集距離の近似値計算を開示する。非特許文献15は、文字列を分割し、各ブロックごとに編集距離を計算する。さらに、非特許文献15では、上記計算された編集距離の総和を文字列全体の編集距離として捉えることで、編集距離のコストを削減している。より詳細には、編集距離の計算コストが、0(|x|・|y|)から0(|x|+|y|) に削減される。なお、|x|、|y| は文字列x、yそれぞれの文字列長を示す。また、非特許文献15では、編集距離の計算対象をヒトゲノムとすることで、リファレンスゲノムを用いて計算対象の配列を各ブロックに分割し、ブロックごとの編集距離の計算をより効率化している。なお、非特許文献15では、ZNF717というレコード数500、各レコードの長さ3470のデータセットに対し、クエリした配列との編集距離が小さい上位5つのレコードを応答として返すという実験を100回繰り返し行っている。当該実験では、サーバの事前計算に11.86秒、クエリ時のサーバ側の実行時間に1.22秒、クライアント側の実行時間に0.48秒を要している。また、アルゴリズムが返した配列数の内、正しい出力だったものの数をp、誤った出力だった出力の数をnとしたときp/(p+n)が精度として扱われる。この場合、非特許文献15では、実験結果としての精度は98.85%であると記載されている。
Andrew C. Yao、"Protocols for secure computations."、1982、In Proceedings of the 23rd Annual Symposium on Foundations of Computer Science(SFCS '82). IEEE Computer Society, Washington, DC, USA, 160-164.
Jha, S., Kruger, L., & Shmatikov, V、"Towards practical privacy for genomic computation"、2008、In Security and Privacy, 2008. SP 2008. IEEE Symposium on (pp. 216-230). IEEE.
Huang, Y., Evans, D., Katz, J., & Malka, L、"Faster Secure Two-Party Computation Using Garbled Circuits."、2011、In USENIX Security Symposium (Vol.201, No. 1).
Naveed, M., Agrawal, S., Prabhakaran, M., Wang, X., Ayday, E., Hubaux, J., Gunter, C.A.、"Controlled functional encryption."、2014、In: ACM CCS, pp. 1280-1291 (2014)
Wagner, R. A., & Fischer, M. J.、"The string-to-string correction problem"、1974、Journal of the ACM (JACM)、21(1)、168-173
Myers, G.、"A fast bit-vector algorithm for approximate string matching based on dynamic programming"、1999、Journal of the ACM (JACM)、46(3)、395-415.
Gentry C., Halevi S., Smart N.P.、"Homomorphic Evaluation of the AES Circuit."、2012、In: Safavi-Naini R., Canetti R. (eds) Advances in Cryptology - CRYPTO 2012. CRYPTO 2012. Lecture Notes in Computer Science, vol 7417. Springer, Berlin, Heidelberg
Cheon, J. H., Kim, M., & Lauter, K.、"Homomorphic computation of edit distance."、2015、In International Conference on Financial Cryptography and Data Security (pp. 194-212). Springer Berlin Heidelberg.
Hikaru Tsuchida, Toshinori Araki, Kazuma Ohara and Furukawa Jun、"不正検知可能なマルチパーティ計算による生体情報と遺伝子情報の保護"、2018 Symposium on Cryptography and Information Security, Niigata, Japan, 2018, 2A1-5.
Kazuma Ohara, Toshinori Araki, Hikaru Tsuchida and Furukawa Jun、"異なるサイズの環が混在する不正検知可能なマルチパーティ計算"、2018 Symposium on Cryptography and Information Security, Niigata, Japan, 2018, 2A1-4.
Toshinori Araki, Jun Furukawa, Yehuda Lindell, Ariel Nof, and Kazuma Ohara、"High-Throughput Semi-Honest Secure Three-Party Computation with an Honest Majority."、2016、In Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security (CCS '16). ACM, New York, NY, USA, 805-817.
T. Araki et al.、"Optimized Honest-Majority MPC for Malicious Adversaries - Breaking the 1 Billion-Gate Per Second Barrier"、2017、IEEE Symposium on Security and Privacy (SP), San Jose, California, USA, 2017, pp. 843-862.
Xiao Shaun Wang, Yan Huang, Yongan Zhao, Haixu Tang, XiaoFeng Wang, and Diyue Bu.、"Efficient Genome-Wide, Privacy-Preserving Similar Patient Query based on Private Edit Distance."、2015、In Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security (CCS '15). ACM, New York, NY, USA, 492-503.
Aziz, Md Momin Al, Dima Alhadidi and Noman Mohammed、"Secure approximation of edit distance on genomic data."、2017、BMC Medical Genomics (2017).
Asharov, Gilad, Shai Halevi, Yehuda Lindell and Tal Rabin.、"Privacy-Preserving Search of Similar Patients in Genomic Data."、2017、IACR Cryptology ePrint Archive 2017 (2017): 144.
Benny Pinkas, Thomas Schneider, Gil Segev, and Michael Zohner.、"Phasing: private set intersection using permutation-based hashing."、2015、In Proceedings of the 24th USENIX Conference on Security Symposium (SEC'15), Jaeyeon Jung (Ed.). USENIX Association, Berkeley, CA, USA, 515-530.
Fickett JW、"Fast optimal alignment."、Nucleic Acids Research、1984;12(1 Pt 1):175-179.
上述のように、秘密計算には入力データを秘密にしつつ、所定の演算結果を得ることができるという利点がある。一方で、秘密分散された入力データ(シェア情報)の乗算にはサーバ間の通信が必要となり演算結果を得るまでの時間が比較的長いという性質がある。このような秘密計算の性質により、許容できない程の長い処理時間が必要であったり、演算精度を落とす必要あったりする。上記例示した編集距離の計算では、処理性能(処理速度)向上のため精度を落として計算するといった対応がなされている。
しかし、DNA配列の編集距離を計算といったアプリケーションでは、精度を落として計算した結果の価値は低いものと扱われる可能性がある。即ち、精度を落とした演算結果(精度の低い編集距離)は、ユーザ(例えば、医療関係者)にとって不適切なデータとなる可能性がある。一方で、正確な演算結果(精度の高い編集距離)を得るまでの時間があまりに長すぎてもユーザの業務に支障をきたすことになる。この点、上記説明した非特許文献2等の技術では、処理性能が低い、又は、処理性能を向上させるため演算の精度を犠牲にしているといった問題がある。このように、既存技術の多くは、かなりの計算時間を要するか、正確な距離計算を犠牲にすることで計算時間を短縮している。
本発明は、正確且つ高速に所定の処理を秘密演算にて実行することに寄与する、情報処理装置、秘密計算方法及びプログラムを提供することを主たる目的とする。
本発明乃至開示の第1の視点によれば、秘密分散された第1及び第2のシェアの差分値の絶対値が自然数t以下の場合、前記第1及び第2のシェアの差分値を計算し、前記第1及び第2のシェアに関する大小比較を、前記差分値に関する最下位ビットから第mビット(mは自然数)のビット分解を用いて行う、情報処理装置が提供される。
本発明乃至開示の第2の視点によれば、情報処理装置において、秘密分散された第1及び第2のシェアの差分値の絶対値が自然数t以下の場合、前記第1及び第2のシェアの差分値を計算するステップと、前記第1及び第2のシェアに関する大小比較を、前記差分値に関する最下位ビットから第mビット(mは自然数)のビット分解を用いて行うステップと、を含む、秘密計算方法が提供される。
本発明乃至開示の第3の視点によれば、コンピュータに、秘密分散された第1及び第2のシェアの差分値の絶対値が自然数t以下の場合、前記第1及び第2のシェアの差分値を計算する処理と、前記第1及び第2のシェアに関する大小比較を、前記差分値に関する最下位ビットから第mビット(mは自然数)のビット分解を用いて行う処理と、を実行させるプログラムが提供される。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
本発明乃至開示の各視点によれば、正確且つ高速に所定の処理を秘密演算にて実行することに寄与する、情報処理装置、秘密計算方法及びプログラムが、提供される。
初めに、一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。また、各図におけるブロック間の接続線は、双方向及び単方向の双方を含む。一方向矢印については、主たる信号(データ)の流れを模式的に示すものであり、双方向性を排除するものではない。さらに、本願開示に示す回路図、ブロック図、内部構成図、接続図などにおいて、明示は省略するが、入力ポート及び出力ポートが各接続線の入力端及び出力端のそれぞれに存在する。入出力インターフェイスも同様である。
図1に示す一実施形態に係る情報処理装置100は、秘密分散された第1及び第2のシェアの差分値の絶対値が自然数t以下の場合、第1及び第2のシェアの差分値を計算する。さらに、情報処理装置100は、第1及び第2のシェアに関する大小比較を、当該差分値に関する最下位ビットから第mビット(mは自然数)のビット分解を用いて行う。
詳細については後述するが、秘密分散されたシェアの大小比較は数値演算よりも論理演算による処理の方が容易に結果が得られる。そのため、上記情報処理装置100は、秘密分散されたシェアに関する大小比較を行う際、2つのシェアの差分値を2進数にて変換する。但し、大小比較の対象となる情報は秘密分散された情報(数値)であるので、当該秘密分散された数値を2進数に変換するには、非特許文献10等に開示された「ビット分解」と称される技術が必要となる。当該ビット分解は、秘密分散された値のビット値(2進数表記における各桁の値)を最下位ビットから順に最上位ビットまで行う。ビット分解について、本願の発明者らが鋭意検討した結果、所定の条件が成立する場合に、全てのビットに関して値を算出しなくとも、2つのシェアの大小比較(差分値の正負)が判定できるという知見を得た。具体的には、2つのシェアの差分値の絶対値が所定の数(上記自然数t)以下であることが予め判明しているのであれば、当該差分値に関するビット分解を最上位ビットまで実行する必要がないことが明らかとなった。詳細については後述するが、例えば、2つの文字列の編集距離において上記条件が成立する。情報処理装置100は、2つのシェアに関する大小比較を行う際、通信コストが比較的大きいビット分解を必要最低限のビット(上記第mビット)までの分解に制限することで、秘密計算による処理の高速化を実現する。また、上記ビット分解を途中のビットまでに制限したとしても大小比較の結果に影響は与えないので、当該大小比較を含む処理結果の精度が低下することもない。
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。なお、各実施形態において同一構成要素には同一の符号を付し、その説明を省略する。
[第1の実施形態]
第1の実施形態について、図面を用いてより詳細に説明する。
第1の実施形態について、図面を用いてより詳細に説明する。
上述のように、秘密計算の適用領域として医療分野がある。例えば、編集距離計算がサブルーチンとして用いられる処理として、データベースのあいまい検索が挙げられる。この場合、医療機関の限られた人間だけがデータベースにアクセスすると仮定すると、スループットよりもレイテンシが重視される。またゲノム医療の場合は、人種や地域の違いに起因し世界各国にて管理されているゲノム情報を用いることが想定される。しかし、欧州にて施行が始まった一般データ保護規則等を考慮すると、ゲノム情報のような個人情報を国外に移転させることはより一層困難な状況になると想定される。このため、各国のサーバ間でゲノム情報を用いた秘密計算を行うことが考えられる。この場合、各国に配置されたサーバ間で通信を行うため、通信遅延が増大する可能性が高い。
多くの秘密計算プロトコルでは実装上、TCP(Transmission Control Protocol)通信を必要とする。TCP通信では、通信相手からの応答が得られないと次のパケットを送ることができないという性質がある。このため通信帯域を大きくしても、通信遅延が大きい場合には、期待ほどの性能向上が得られないことがあり得る。従って、特に通信ラウンド数を削減する方法が必要となる。
第1の実施形態では、秘密計算を用いた正確な編集距離計算を高速に行うために、通信ラウンド数に着目し当該通信ラウンド数の改善を実現する秘密計算システムを提供する。第1の実施形態に係る秘密計算システムにより、秘密計算を用いた正確な編集距離計算と、編集距離計算をサブルーチンとして用いる上位の処理に関する性能改善効果が期待される。
[システム構成]
図2は、第1の実施形態に係る秘密計算システムの概略構成の一例を示す図である。図2を参照すると、秘密計算システムは、制御装置10と、複数の秘密計算サーバ20-1~20-3と、を含んで構成される。図2に示す各装置は相互に接続され、互いにデータの送受信が可能に構成されている。なお、以降の説明において、秘密計算サーバ20-1~20-3を区別する特段の理由がない場合には、単に「秘密計算サーバ20」と表記する。また、図2に示すシステム構成は例示であって、秘密計算サーバ20等の数を限定する趣旨ではないことは勿論である。
図2は、第1の実施形態に係る秘密計算システムの概略構成の一例を示す図である。図2を参照すると、秘密計算システムは、制御装置10と、複数の秘密計算サーバ20-1~20-3と、を含んで構成される。図2に示す各装置は相互に接続され、互いにデータの送受信が可能に構成されている。なお、以降の説明において、秘密計算サーバ20-1~20-3を区別する特段の理由がない場合には、単に「秘密計算サーバ20」と表記する。また、図2に示すシステム構成は例示であって、秘密計算サーバ20等の数を限定する趣旨ではないことは勿論である。
制御装置10は、秘密計算サーバ20を制御する装置である。具体的には、制御装置10は、各秘密計算サーバ20に対するデータの入出力を制御する。
秘密計算サーバ20は、秘密計算を実行するサーバである。秘密計算サーバ20は、制御装置10から入力データ(秘密分散するデータ)を受け取る。各秘密計算サーバ20は、他のサーバと協働し上記入力データを用いた所定の処理を実行する。秘密計算サーバ20は、計算結果を制御装置10に送信する。あるいは、秘密計算サーバ20は、計算結果を制御装置10とは異なる外部装置に送信してもよい。
図2に示す秘密計算システムは、2つのDNA配列を対象とした編集距離を計算する。制御装置10は、編集距離の計算対象となる2つのDNA配列を秘密分散し、秘密分散されたデータを各秘密計算サーバ20に送信する。
各秘密計算サーバ20は、入力データ(シェア情報;秘密分散されたDNA配列)を取得し、編集距離の算出に関する秘密計算を実行する。各秘密計算サーバ20における秘密計算の実行が終了すると、制御装置10は、各秘密計算サーバ20から計算結果を収集し、計算結果の復号を行う。なお、第1の実施形態では、DNA配列を編集距離の計算対象とするが、他の文字列を編集距離の計算対象としても良いことは勿論である。
[編集距離の計算]
初めに、編集距離の算出について概説する。
初めに、編集距離の算出について概説する。
編集距離の算出には、非特許文献5に記載されたWF(Wagner-Fischer)法を用いることができる。以下、Wagner-Fischer法による編集距離の算出を具体的に説明する。その際、対象とする文字列は、p=(p1、p2、p3)とs=(s1、s2、s3)とする。
初めに、DPマトリクスが生成される。上記の例では、図3(a)に示すようなDPマトリクスが生成される。図3(a)に示すように、比較対象の文字列に含まれる文字数がk(kは自然数、以下同じ)であれば、k+1行k+1列のDPマトリクスが生成される。上記の例では、2つの文字列に含まれる文字数が「3」であるので、4行4列のDPマトリクスが生成される。
次に、DPマトリクスのスコアが初期化される。DPマトリクスの各要素に対応する値(スコア)をDi、jと表記する。ここで、iはDPマトリクスの行方向のインデックスであり、jはDPマトリクスの列方向のインデックスである。DPマトリクスのスコア初期化は、Di、0=i、D0、j=jと設定することで行われる(図3(b)参照)。
次に、DPマトリクスにおける各要素のスコアが計算される。スコア算出にはスコア算出対象の要素を基準とする3つの要素に対応した値が計算される。当該3つの計算値のうち、最小値が計算対象のスコアとなる。
第1の計算値は、スコア算出対象となっている要素の1つ上の要素(列方向のインデックスが1小さい要素)のスコアに「1」を加算した値である。
第2の計算値は、スコア算出対象となっている要素の1つ左の要素(行方向のインデックスが1小さい要素)のスコアに「1」を加算した値である。
第3の計算値は、スコア算出対象となっている要素の左上の要素(列方向、行方向それぞれのインデックスが1小さい要素)のスコアに「C」を加算した値である。ここで、スコア算出対象の要素に対応する文字(行方向と縦方向の文字)が一致する場合には、C=0とする。スコア算出対象の要素に対応する文字(行方向と縦方向の文字)が不一致の場合には、C=1とする。
例えば、比較対象の文字列を「AGC」と「ATC」とすれば、初期化後のDPマトリクスは図3(c)のようになる。これらの文字列に対して、上記3つの計算値における最小値をスコアに設定する計算を繰り返すと、図3(d)の結果が得られる。編集距離は、DPマトリクスの右下(D3、3)のスコアである。図3(c)及び(d)の例では、編集距離は「1」となる。
第1の実施形態に係る秘密計算システムでは、上記のような編集距離の計算を秘密計算にて行う。
[記法]
次に、記法の定義を行う。
次に、記法の定義を行う。
なお、[w]はビットのシェアとも称され、[ν]nはリングのシェアとも称される。
以下の4つの式を満たすようなビットのシェア、リングのシェアに対する加算演算子を「+」、乗算演算子を「・」と表記する。
上記4つの等式のうち、1番目、3番目及び4番目の等式に関しては各秘密計算サーバ20が単独で計算可能である(ローカルで計算可能;他のサーバとの通信が不要)。一方、2番目の等式に関しては、その計算のために他の秘密計算サーバ20と通信が必要となる。例えば、非特許文献11に開示された秘密計算方法では、3nビットの通信量、1回の通信ラウンド数を要する。
上記4つの等式における左辺は、それぞれのシェアを入力とする演算子に対応する秘密計算を意味する。以降の説明では、理解の容易のために、加法と乗法に関する秘密計算は上述の演算子(+、・)による表記を用いる。
[ビット分解]
第1の実施形態に係る秘密計算システムでは、非特許文献10に開示された「ビット分解」と称される計算を編集距離算出に用いる。以下、上記非特許文献10に開示されたビット分解の概略を説明する。
第1の実施形態に係る秘密計算システムでは、非特許文献10に開示された「ビット分解」と称される計算を編集距離算出に用いる。以下、上記非特許文献10に開示されたビット分解の概略を説明する。
ビット分解とは、数値計算向けの分散情報を論理演算向けの分散情報に変換するための処理である。即ち、ビット分解とは、秘密計算プロトコルにおいて、秘密分散された値を10進数のシェアから2進数のシェアに変換する処理である。例えば、法を8(23)として整数「5」が3台の秘密計算サーバ20に分散されている場合を考える。この場合、例えば、「5」はr1=1、r2=2、r3=2のように分散され、秘密計算サーバ20-1が(r1、r2)を記憶し、秘密計算サーバ20-2が(r2、r3)を記憶し、秘密計算サーバ20-3が(r3、r1)を記憶する。ビット分解を用いると、これらの分散情報から数値「5」の2進数表記である、「0101」の各ビットに対する分散情報が得られる。
具体的には、整数「5」に対してビット分解が実行されると、各秘密計算サーバ20は、例えば、以下のような情報を所有することになる。
<秘密計算サーバ20-1>
第0ビット:(r1、r2)=(1、1)
第1ビット:(r1、r2)=(0、1)
第2ビット:(r1、r2)=(1、0)
第3ビット:(r1、r2)=(0、0)
<秘密計算サーバ20-2>
第0ビット:(r2、r3)=(1、1)
第1ビット:(r2、r3)=(1、1)
第2ビット:(r2、r3)=(0、0)
第3ビット:(r2、r3)=(0、0)
<秘密計算サーバ20-3>
第0ビット:(r3、r1)=(1、1)
第1ビット:(r3、r1)=(1、0)
第2ビット:(r3、r1)=(0、0)
第3ビット:(r3、r1)=(0、0)
<秘密計算サーバ20-1>
第0ビット:(r1、r2)=(1、1)
第1ビット:(r1、r2)=(0、1)
第2ビット:(r1、r2)=(1、0)
第3ビット:(r1、r2)=(0、0)
<秘密計算サーバ20-2>
第0ビット:(r2、r3)=(1、1)
第1ビット:(r2、r3)=(1、1)
第2ビット:(r2、r3)=(0、0)
第3ビット:(r2、r3)=(0、0)
<秘密計算サーバ20-3>
第0ビット:(r3、r1)=(1、1)
第1ビット:(r3、r1)=(1、0)
第2ビット:(r3、r1)=(0、0)
第3ビット:(r3、r1)=(0、0)
上記ビット分解の結果に関し、第0ビット(最下位ビット)に着目すると、r1=r2=r3=1であるので、r1+r2+r3 mod 2=1となり、5の2進数表記の最下位ビットの値に一致する。同様に、第1ビットに着目とすると、r1=0、r2=1、r3=1であるので、r1+r2+r3 mod 2=0となり、5の進数表記の第1ビットの値に一致する。なお、「a mod b」は整数aを整数bで除算した際の余りを示す。
本願開示において、リングのシェア[ν]nをm個(mはn-1以下の整数、以下同じ)のビットのシェアに分解する処理を下記の式(1)のように表記する。
ビット分解の手法には種々存在するが、本願開示では非特許文献10に開示されたビット分解を用いる。非特許文献10に開示されたビット分解の計算手法(アルゴリズム)に関する詳細は省略するが、当該文献によるビット分解では、最下位ビットから順に各秘密計算サーバ20に分散する情報を計算していく。
ビット分解の計算に要する通信コストに関し、ビット分解を非特許文献10に開示された方式を非特許文献11の開示を用いて実行した場合には、6(n-1)ビットの通信量、n-1回の通信ラウンド数が必要となる。
[ビット埋込]
第1の実施形態に係る秘密計算システムでは、非特許文献10に開示された「ビット埋込」と称される計算を編集距離算出に用いる。
第1の実施形態に係る秘密計算システムでは、非特許文献10に開示された「ビット埋込」と称される計算を編集距離算出に用いる。
ビット埋込とは、ビットのシェア[b]をリングのシェア[b]nに変換する処理である。本願開示において、ビット埋込を以下の式(2)のように表記する。
ビット埋込に関してもその計算手法は種々存在するが、本願開示では非特許文献10に開示されたビット埋込処理を用いる。当業者にとって、ビット埋込に関する処理は非特許文献10から明らかであるので、当該文献に開示されたビット埋込の計算手法(アルゴリズム)に関する詳細は省略する。
ビット埋込の計算に要する通信コストに関し、ビット埋込を非特許文献10に開示された方式を非特許文献11の開示を用いて実行した場合には、6nビットの通信量、2回の通信ラウンド数が必要となる。
続いて、秘密計算システムをなす各装置について説明する。
[制御装置]
図4は、第1の実施形態に係る制御装置10の処理構成の一例を示す図である。図4を参照すると、制御装置10は、通信制御部201と、秘密分散データ生成部202と、秘密分散データ復号部203と、を含んで構成される。
図4は、第1の実施形態に係る制御装置10の処理構成の一例を示す図である。図4を参照すると、制御装置10は、通信制御部201と、秘密分散データ生成部202と、秘密分散データ復号部203と、を含んで構成される。
通信制御部201は、他の装置(秘密計算サーバ20)との間の通信を制御する手段である。
秘密分散データ生成部202は、各秘密計算サーバ20に配付するシェアを生成する手段である。具体的には、秘密分散データ生成部202は、秘密情報S(DNA配列)について、S=s1+s2+s3 mod Nを満たすs1、s2、s3をランダムに生成する。なお、Nは2の冪乗(N=2n)である。生成されたシェアは、通信制御部201を介して各秘密計算サーバ20に配付される。その際、秘密分散データ生成部202は、例えば、1台の秘密計算サーバ20に対し、2つのシェアを送信する。
秘密分散データ復号部203は、各秘密計算サーバ20による秘密計算の結果を収集し、復元する手段である。
[秘密計算サーバ]
図5は、第1の実施形態に係る秘密計算サーバ20の処理構成の一例を示す図である。図5を参照すると、秘密計算サーバ20は、通信制御部301と、秘密計算実行部302と、を含んで構成される。
図5は、第1の実施形態に係る秘密計算サーバ20の処理構成の一例を示す図である。図5を参照すると、秘密計算サーバ20は、通信制御部301と、秘密計算実行部302と、を含んで構成される。
通信制御部301は、他の装置(制御装置10、他の秘密計算サーバ20)との間の通信を制御する手段である。
秘密計算実行部302は、所定の秘密計算を実行する手段である。具体的には、秘密計算実行部302は、2つのDNA配列に関する編集距離の計算を実行する。秘密計算実行部302は、外部装置(例えば、制御装置10)から提供される秘密計算実行コードに従い秘密計算を実行する。
なお、以降の説明は、1台の秘密計算サーバ20における秘密計算実行部302の動作を基準とするが、実際には、3台の秘密計算サーバ20の秘密計算実行部302が協働して上記編集距離の算出を行う。
図6は、秘密計算実行部302の動作の一例を示すフローチャートである。
秘密計算実行部302は、通信制御部301を介して秘密分散された入力データ(2つのDNA配列)を取得する(ステップS01)。
秘密計算実行部302は、取得した2つのDNA配列に含まれる文字数に応じたDPマトリクス(例えば、図3参照)を生成する(ステップS02)。その際、秘密計算実行部302は、DPマトリクスの初期化を行う。
DPマトリクスの初期化が終了すると、秘密計算実行部302は、DPマトリクスの各要素におけるスコアを算出する(ステップS03)。DPマトリクスの各要素におけるスコア算出処理の詳細は後述する。
秘密計算実行部302は、全ての要素におけるスコア算出が終了したか否かを確認する(ステップS04)。全ての要素におけるスコアの算出が終了していれば(ステップS04、Yes分岐)、秘密計算実行部302は、ステップS05の処理を実行する。全ての要素におけるスコアの算出が終了していなければ(ステップS04、No分岐)、秘密計算実行部302は、ステップS03の処理を繰り返す。
秘密計算実行部302は、制御装置10に対して秘密分散された演算結果を送信する(ステップS05)。
続いて、図7を参照しつつ、秘密計算実行部302におけるDPマトリクスの各要素におけるスコア算出の動作について説明する。なお、秘密計算実行部302によるスコア算出動作を説明するにあたり、図8に示すDPマトリクスの一部を参照する。図8において、右下のマス目(スコアがDi、j)をスコア算出対象とする。
秘密計算実行部302は、スコア算出対象の要素(図8の右下のマス)の行方向(横方向)と列方向(縦方向)に割り当てられた文字が一致するか否かを判定する(ステップS101)。
文字が一致すれば(ステップS101、Yes分岐)、秘密計算実行部302は、左上の要素のスコアDi-1、j-1に「1」を加算する(ステップS102)。文字が一致しなければ(ステップS101、No分岐)、秘密計算実行部302は、特段の処理を行わず、ステップS103以降の処理を実行する。
秘密計算実行部302は、スコア算出対象の要素の左と上の要素のスコアDi、j-1とDi-1、jに「1」を加算する(ステップS103)。
秘密計算実行部302は、スコア算出対象の要素の左と上の要素(対角線上の要素)に関するスコアの大小比較を行う(ステップS104)。
その際、秘密計算実行部302は、上記説明したビット分解を用いて2つのスコアの大小比較を行う。2つのスコアが秘密分散された状態で大小比較を行う場合には、数値演算で行うよりも論理演算で行う方が容易に結果を得ることができるためである。具体的には、2つの数値の差分値を2進数表記すれば、最上位ビットの値に応じて差分値の正負(比較対象の大小)が容易に得られる。
秘密計算実行部302は、上記のような理由からビット分解を用いて、2つのスコアの大小比較を行う。
[制限付き大小比較]
秘密計算実行部302は、上記ビット分解の処理を実行するにあたり、2つのスコアの差分値に関して全ビットの分解は行わず、所定の桁(所定のビット数)までのビット分解が完了した時点で処理を終了する。
秘密計算実行部302は、上記ビット分解の処理を実行するにあたり、2つのスコアの差分値に関して全ビットの分解は行わず、所定の桁(所定のビット数)までのビット分解が完了した時点で処理を終了する。
例えば、差分値が4ビットで表現できる数値(例えば、5;2進数表記は0101)であれば、通常のビット分解では、最下位ビット(第0ビット)から順にビット分解が行われ、最上位ビット(第3ビット)のビット分解が完了した時点で処理が終了する。秘密計算実行部302は、上記のような通常のビット分解に替えて、例えば、第1ビットまでのビット分解が終了した時点で上記4ビットで表現できる数値のビット分解を終了するような処理を実行する。
秘密計算実行部302は、このように途中のビットまで実行したビット分解の結果を用いて2つのスコアの大小比較を行う。なお、以降の説明では、2つのスコアそれぞれについて、所定のビットまでビット分解を実行し、途中までビット分解された結果を用いて大小比較する処理を「制限付き大小比較」と表記する。
制限付き大小比較を編集距離の算出に適用できる理由は以下のとおりである。
非特許文献6によれば、置換コスト、挿入コスト、削除コストがそれぞれ「1」であれば、DPマトリクスにおける、スコア算出対象の上と左の要素間を除く隣接する要素同士のスコアの差は、「1」、「0」、「-1」のいずれかである。当該事実を図8のDPマトリクスに適用すると、下記の5つの式により表現される関係が得られる。
これらの関係は秘密計算により2つのスコアの大小比較[ν<?ν’]nを行う際、入力の差ν-ν’について、|ν-ν’|≦1となることを意味する。なお、上記「<?」は秘密分散されたシェアの大小比較を示す。
また、スコア算出対象の上と左の対角線上の要素に着目すると、これらの差分値が取り得る値は、「-2」、「-1」、「0」、「1」、「2」であるので、入力の差ν-ν’について、|ν-ν’|≦2となる。当該事実を図8のDPマトリクスに適用すると、下記の式により表現される関係が得られる。
上述のように、|ν-ν’|≦1が成立すると、大小比較の対象ν、ν’の値によらず以下の関係が成り立つ。
なお、上記3つの式における添え字(2)は、数字が2進数により表現されていることを示す。また、大小比較の対象は32ビットの数値を想定している。
なお、上記3つの式における添え字(2)は、数字が2進数により表現されていることを示す。また、大小比較の対象は32ビットの数値を想定している。
上記3つの式により、|ν-ν’|≦1の関係が成り立つのであれば、2つの入力値ν、ν’の大小比較を秘密計算で行う際、第1ビット(右から2ビット目)までの情報が得られれば十分であることが分かる。即ち、2つの入力値ν、ν’の大小比較を秘密計算で行う場合、|ν-ν’|≦1の関係が成り立つ場合には、差分値に関する第1ビットまでのビット分解の結果を用いて大小比較すれば十分である。
大小比較の対象が対角線上の要素(スコア算出対象の上と左の2つの要素)のスコアである場合には、|ν-ν’|≦2の関係が成り立つので、2つのシェアの差分値に関する第2ビットまでのビット分解が必要となる。
上記説明した制限付き大小比較をまとめると以下のとおりとなる。
比較対象のシェア(秘密分散された入力)を[ν]n、[ν’]nとする。つまり、2つのシェアそれぞれは、2nを法とする剰余類環に属するシェアである。
2つの比較対象のシェアの間には、下記の式(3)の関係が成り立つ。
上記条件が成り立つ前提において、制限付き大小比較は下記の式(4)のとおり表現される。
上記式(4)に示すように、制限付き大小比較の出力結果は、不等号が成立するならば「1」、不成立であれば「0」である。
なお、どのビットまでのビット分解を実行すれば良いかは、上述の式(3)におけるtから求めることができる。具体的には、以下の式(5)の関係を満たす、mが制限付き大小比較に必要なビット分解のビット位置である。つまり、制限付き大小比較では、式(5)から算出される第mビットまでのビット分解が必要となる(ビット分解する桁数はm+1となる)。
[式(5)]
2m-1≦t<2m≦2n-1
2m-1≦t<2m≦2n-1
秘密計算実行部302は、下記の式(6)によるビット分解を実行する。
秘密計算実行部302は、上記式(6)による結果[(ν-ν’)|m]を判定結果のシュアとして出力する。なお、制限付き大小比較に要する通信コストは、6mビットの通信量、m回の通信ラウンド数である。
既存のビット分解と本願開示におけるビット分解の違いは以下のとおり纏めることができる。
既存のビット分解では、0≦ν、ν’<2nかつ|ν-ν’|<2nの条件下で、nビットまでビット分解が行われる。この場合、通信コストは、6(n-1)ビットの通信量、n-1回の通信ラウンド数となる。
本願開示のビット分解では、0≦ν、ν’<2nかつ|ν-ν’|≦t(2m-1≦t<2m≦2n-1)の条件下で、第mビットまでビット分解が行われる。この場合、通信コストは、6mビットの通信量、m回の通信ラウンド数となる。ここで、上記tやmは、ビット分解を用いる処理(適用するアプリケーション;例えば、編集距離の計算)により予め定まる値(public value)であるため、ビット分解の通信コストはn(リングのサイズ)に依存しない定数となる。
図7に示す編集距離の算出に説明を戻すと、上述のように、秘密計算実行部302は、スコア算出対象の要素の左と上の要素(対角線上の要素)に関するスコアの大小比較を行う(ステップS104)。具体的には、秘密計算実行部302は、下記の式(7)で表される制限付き大小比較を行い、判定結果[i_or_d]を得る。
なお、上述のように、対角線上の要素におけるスコアの差分の絶対値は2以下であるので、式(5)におけるtは「2」である。式(5)によれば、t=2とした場合のmは「2」となる。従って、対角線上のスコアに関する大小比較を行う場合には、秘密計算実行部302は、2つのスコアの差分値に関する第2ビットまでのビット分解を行い大小比較を行う。
具体的には、秘密計算実行部302は、1が加算された2つのスコアの差分値を計算する。秘密計算実行部302は、当該差分値に関し、第2ビットまでのビット分解を実行する。その後、秘密計算実行部302は、ビット分解された第2ビットの値に応じて、スコアの大小を決定する。より具体的には、第2ビットが「1」であれば、2つのスコアの差分値は負の値を示すので、上記式(7)では、スコアDi、j-1+1の方がスコアDi-1、j+1よりも大きいと判定される。従って、最下位ビットから順にビット分解され最後に得られる第mビットの値が「1」であれば、少なくともスコアDi、j-1+1の方がスコアDi-1、j+1より大きいことが確定する。上記第mビットの値が「0」であれば、スコアDi、j-1+1の方がスコアDi-1、j+1より小さいか、2つのスコアの値は同値であることが確定する。このように、秘密計算実行部302は、ビット分解された差分値の第mビットの値に応じて2つのシェアの大小を判定する。
この場合、対角線上のスコアに関する大小比較に要する通信コストは、12ビットの通信量、2回の通信ラウンド数である。このように、秘密計算実行部302は、編集距離の算出に使用するDPマトリクスにおけるスコア算出対象の要素の上と左に位置する要素それぞれのスコアに関する対角線上の大小比較を「制限付き大小比較」により行う。
次に、秘密計算実行部302は、DPマトリクスにおける対角線上のスコアの最小値[IorD]nを計算する(ステップS105)。具体的には、秘密計算実行部302は、以下の式(8)に従い、最小値[IorD]nを計算する。
なお、上記式(8)にはビット埋込が用いられている。当該ビット埋込を用いた最小値の計算は、非特許文献9の「3.数値演算例」に記載された「最小と最大の選択」に従って行うことができるので、その詳細な説明は省略する。この場合、最小値計算に要する通信コストは、不正検知を行わない場合、18nビットの通信量、3回の通信ラウンド数である。
秘密計算実行部302は、対角線上の最小値[IorD]nと左上の要素のスコアに関する大小比較を行う(ステップS106)。当該大小比較においても、秘密計算実行部302は、制限付き大小比較を用いて2つの入力に関する大小比較を行う。
この場合、上述のように、隣接する要素同士のスコアの差分の絶対値は「1」以下であるので、上記式(3)におけるtは「1」となる。tが「1」であるので、式(5)によれば、m=1となる。従って、秘密計算実行部302は、第1ビットまでのビット分解を伴う制限付き大小比較により判定結果を得る。この場合の通信コストは、6ビットの通信量、1回の通信ラウンド数となる。このように、秘密計算実行部302は、対角線上の大小比較により小さいと判定された要素のスコアと、スコア算出対象の要素の左上に位置する要素のスコアと、に関する大小比較についても「制限付き大小比較」により行う。
秘密計算実行部302は、対角線上の最小値[IorD]nと左上の要素のスコアに関する最小値を算出する(ステップS107)。具体的には、秘密計算実行部302は、式(8)と同様に最小値を算出する。ステップS107にて算出された最小値が、スコア算出対象の要素(図8の右下のマス)におけるスコアとなる。この場合の最小値計算に要する通信コストも、18nビットの通信量、3回の通信ラウンド数である。
上記制限付き大小比較を含むスコアの算出に要する通信コストをまとめると、通信量は36n+18ビット、通信ラウンド数は9ラウンド(9回)となる。
上記説明したように、各秘密計算サーバ20は、式(3)に示す条件(秘密分散された2つのシェアの差分値の絶対値が自然数t以下)が成立する場合、当該2つのシェアの差分値を計算する。さらに、各秘密計算サーバ20は、当該2つのシェアの大小比較を上記差分値に関する最下位ビットから第mビットのビット分解を用いて行う。
[ハードウェア構成]
続いて、秘密計算システムをなす各装置のハードウェア構成について説明する。
続いて、秘密計算システムをなす各装置のハードウェア構成について説明する。
図9は、秘密計算サーバ20のハードウェア構成の一例を示す図である。秘密計算サーバ20は、所謂、情報処理装置(コンピュータ)により実現され、図9に例示する構成を備える。例えば、秘密計算サーバ20は、内部バスにより相互に接続される、CPU(Central Processing Unit)21、メモリ22、入出力インターフェイス23、通信手段であるNIC(Network Interface Card)24等を備える。
但し、図9に示す構成は、秘密計算サーバ20のハードウェア構成を限定する趣旨ではない。秘密計算サーバ20は、図示しないハードウェアを含んでもよい。秘密計算サーバ20に含まれるCPU等の数も図9の例示に限定する趣旨ではなく、例えば、複数のCPU21が秘密計算サーバ20に含まれていてもよい。
メモリ22は、RAM(Random Access Memory)、ROM(Read Only Memory)、補助記憶装置(ハードディスク等)等である。
入出力インターフェイス23は、図示しない入出力装置のインターフェイスである。入出力装置には、例えば、表示装置、操作デバイス等が含まれる。表示装置は、例えば、液晶ディスプレイ等である。操作デバイスは、例えば、キーボードやマウス等である。
秘密計算サーバ20の機能は、上述の処理モジュールにより実現される。当該処理モジュールは、例えば、メモリ22に格納されたプログラムをCPU21が実行することで実現される。また、そのプログラムは、ネットワークを介してダウンロードするか、あるいは、プログラムを記憶した記憶媒体を用いて、更新することができる。さらに、上記処理モジュールは、半導体チップにより実現されてもよい。即ち、上記処理モジュールが行う機能は、何らかのハードウェア、或いはハードウェアを利用して実行されるソフトウェアにより実現できればよい。
なお、制御装置10も情報処理装置(コンピュータ)により実現可能であり、そのハードウェア構成は当業者にとって明らかであるため詳細な説明を省略する。
以上のように、第1の実施形態に係る秘密計算システムでは、編集距離の計算に必要な大小比較を制限付き大小比較にて実行している。より具体的には、秘密計算サーバ20は、2つのスコアの大小比較を行う際に必要なビット分解の計算において、全ての桁に関する分解を行うのではなく、所定の条件(式(3)の条件)により定まる桁(第mビット)までのビット分解を行い大小比較を行う。その結果、編集距離の計算を秘密計算にて行う際のコストが削減できる。
具体的には、上記説明したように、ビット分解を非特許文献10に開示された方式を非特許文献11の開示を用いて実行した場合には、6(n-1)ビットの通信量、n-1回の通信ラウンド数が必要となる。つまり、既存のビット分解を用いた秘密計算では、DPマトリクスにおけるスコアの環のサイズを2nとしたとき、大小比較のコスト(通信量、通信ラウンド数)はnに比例する。
対して、第1の実施形態にて説明した「制限付き大小比較」を用いて、編集距離の秘密計算を行うと、大小比較に要するコストは、以下のとおりnに比例しない定数サイズとなる。
対角線上の大小比較(t=2):通信量は12ビット、通信ラウンド数は2。
隣接する要素同士の大小比較(t=1):通信量は6ビット、通信ラウンド数は1。
対角線上の大小比較(t=2):通信量は12ビット、通信ラウンド数は2。
隣接する要素同士の大小比較(t=1):通信量は6ビット、通信ラウンド数は1。
このように、第1の実施形態に係る秘密計算システムでは、編集距離計算を秘密計算にて行う上で必要な大小比較に要するコストを環のサイズを決める「n」に依存しない定数サイズに削減できる。その結果、第1の実施形態に係る秘密計算システムは、編集距離計算の対象となるDNA配列の文字数が多くなった場合(環のサイズ2nが大きくなった場合)であっても、少ないコストで編集距離を得ることができる。換言するならば、比較対象のDNA配列の文字数が多くなるほど、上記制限付き大小比較による通信コスト削減の効果がより顕著となる。
[第2の実施形態]
続いて、第2の実施形態について図面を参照して詳細に説明する。
続いて、第2の実施形態について図面を参照して詳細に説明する。
第1の実施形態では、編集距離の算出にあたり対角線上のスコア間の大小比較を行っている。ここで、対角線上のスコアの差分の絶対値は2以下となるので、当該大小比較には第2ビットまでのビット分解が必要となる。上記の例のように、ビット分解する桁数が上昇すると、大小比較に要するコスト(通信量、通信ラウンド数)が増加する。
第2の実施形態では、編集距離の算出アルゴリズムを変更することで、大小比較に要するコストを削減する秘密計算システムについて説明する。第2の実施形態に係る秘密計算システムは、大小比較の対象を変更することで対角線上の大小比較を不実施とし、通信ラウンド数の削減を実現する。
なお、第1及び第2の実施形態に係る秘密計算システム、制御装置10、秘密計算サーバ20は同一とすることができるので図2等に相当する説明を省略する。第2の実施形態では、第1の実施形態との相違点を中心に説明する。
図10は、第2の実施形態に係る秘密計算実行部302におけるスコア算出動作の一例を示すフローチャートである。図7と図10のステップS101~S103の処理は同一とすることができるので同じ符号を与え、その詳細な説明を省略する。
ステップS114において、秘密計算実行部302は、水平方向のスコア間の大小比較と、垂直方向のスコア間の大小比較を並列に実行する。具体的には、秘密計算実行部302は、図8においてスコア算出対象の要素(右下のマス)を基準として、左上と上のスコアに関する大小比較を行う(水平方向の大小比較)。また、秘密計算実行部302は、当該水平方向の大小比較と並行して、スコア算出対象の要素を基準として左上と左のスコアに関する大小比較を行う(垂直方向の大小比較)。秘密計算実行部302は、これらの大小比較を上記説明した制限付き大小比較により行う。具体的には、秘密計算実行部302は、第1ビットまでのビット分解を伴う制限付き大小比較を水平方向、垂直方向それぞれに関して行う。
秘密計算実行部302は、上記水平方向の大小比較結果[h]と垂直方向の大小比較結果[v]を下記の式(9)により計算する。
なお、秘密計算実行部302が上記2つの大小比較を並列に計算(同時に計算)する理由は、当該計算に要する通信コストを抑制するためである。上記大小比較には、秘密計算サーバ20間の通信が必要となる。その際、2つの大小比較にて発生する通信を同じタイミングとすることで、通信コストの上昇が抑制される。水平方向及び垂直方向の大小比較に要する通信コストは、12ビットの通信量、1回の通信ラウンド数である。
ステップS115において、秘密計算実行部302は、水平方向の最小値[H]nと垂直方向の最小値[V]nの計算を並行して実行する。具体的には、秘密計算実行部302は、下記の式(10)により上記2つの最小値を計算する。
秘密計算実行部302は、通信コストの抑制のため、2つの最小値に関しても並列に計算する。水平方向及び垂直方向の最小値算出に要する通信コストは、36nビットの通信量、3回の通信ラウンド数である。
秘密計算実行部302は、水平方向の最小値[H]nと垂直方向の最小値[V]nの大小比較を行う(ステップS116)。この場合も、秘密計算実行部302は、第1ビットまでのビット分解による制限付き大小比較により、2つの最小値のより小さい方を特定する。当該処理に要する通信コストは、18n+6ビットの通信量、4回の通信ラウンド数である。このように、水平方向の大小比較により小さいと判定された要素のスコアと、垂直方向の大小比較により小さいと判定された要素のスコアと、に関する大小比較も制限付き大小比較により行われる。
秘密計算実行部302は、ステップS116における大小比較の結果、小さいと判断された方の値をスコア算出対象のスコアとして採用する。
第2の実施形態における最小値計算に要する通信コストをまとめると、通信量は54n+18ビット、通信ラウンド数は8となる。
以上のように、第2の実施形態に係る秘密計算システムでは、大小比較の対象を第1の実施形態から変えることで最小値計算の通信ラウンド数を削減する。具体的には、第1の実施形態では9ラウンド必要であったが、第2の実施形態では8ラウンドの通信回数に減少している。但し、第2の実施形態では、制限付き大小比較の回数が増加しているので、編集距離の計算に必要な通信量が増加する。
第2の実施形態では、第1の実施形態と比較して、通信ラウンド数に関するコストは減少するが通信量に関するコストは増加する。第1及び第2の実施形態に係る編集距離算出方法のいずれかを採用するかは、秘密計算システムの置かれた環境に応じて決定すればよい。例えば、各秘密計算サーバ20を接続する通信経路の帯域が狭い場合には、通信量のコストが低い第1の実施形態に係る編集距離算出方法が有利である。対して、各秘密計算サーバ20を接続する通信経路の帯域が広い場合には、1回の通信で多くのデータを送受信できるので通信ラウンド数が少ない第2の実施形態に係る編集距離算出方法が有利である。
[他の方式との比較]
続いて、第1及び第2の実施形態にて説明した制限付き大小比較を用いた編集距離の算出に要する通信コスト(最終的な編集距離を得るまでのコスト)と、既存の大小比較を用いた編集距離の算出に要する通信コストの比較結果を開示する。
続いて、第1及び第2の実施形態にて説明した制限付き大小比較を用いた編集距離の算出に要する通信コスト(最終的な編集距離を得るまでのコスト)と、既存の大小比較を用いた編集距離の算出に要する通信コストの比較結果を開示する。
ここでは、非特許文献5に開示されたWF法に既存のビット分解を用いた大小比較による通信コストと、非特許文献6に開示されたビット並列法に既存のビット分解を用いた大小比較による通信コストを比較例として示す。なお、本願開示の方法を含む上記4つの方式による通信コストは、非特許文献10及び11の方式により編集距離を算出した場合のコストである。
上記通信コストの比較は、文字長を100文字、各文字のビット長を2ビット、スコアのビット長を32ビット、比較対象の文字列に含まれるアルファベットの種類を4種類という条件で行った。図11は、上記条件の下で編集距離を得るまでに要した通信コスト(非特許文献10及び11の秘密計算方式により編集距離を算出するために必要な通信量、通信ラウンド数)をまとめた図である。図11を参照すると、既存の方法(非特許文献5に開示されたWF法、非特許文献6に開示されたビット並列法)による編集距離の算出に比べ、第1及び第2の実施形態による編集距離算出の方法では通信コストが大きく減少しているのが理解される。とりわけ、通信ラウンド数に関しては、20%以下にまで減少している。なお、上記4つの方式により算出される編集距離は同一である(算出結果の精度は同一である)。即ち、本願開示の編集距離算出方法を用いることで、正確な編集距離を高速に算出できる。
[変形例]
第1及び第2の実施形態にて説明した秘密計算システムの構成、動作等は例示であって、システムの構成等を限定する趣旨ではない。例えば、図2に示す制御装置10が秘密計算サーバ20を集中制御するような形式ではなく、図12に示す複数の秘密計算サーバ20の中から1台の秘密計算サーバ20を「代表サーバ」として選択する構成であってもよい。この場合、代表サーバとして選択された秘密計算サーバ20が、他の秘密計算サーバ20に対して制御装置10と同等の制御を行えばよい。具体的には、代表サーバが入力データを秘密分散し、他の秘密計算サーバ20に当該秘密分散されたデータを配付すると共に、他の秘密計算サーバ20から秘密計算の結果を取得して復号してもよい。
第1及び第2の実施形態にて説明した秘密計算システムの構成、動作等は例示であって、システムの構成等を限定する趣旨ではない。例えば、図2に示す制御装置10が秘密計算サーバ20を集中制御するような形式ではなく、図12に示す複数の秘密計算サーバ20の中から1台の秘密計算サーバ20を「代表サーバ」として選択する構成であってもよい。この場合、代表サーバとして選択された秘密計算サーバ20が、他の秘密計算サーバ20に対して制御装置10と同等の制御を行えばよい。具体的には、代表サーバが入力データを秘密分散し、他の秘密計算サーバ20に当該秘密分散されたデータを配付すると共に、他の秘密計算サーバ20から秘密計算の結果を取得して復号してもよい。
上記実施形態では、非特許文献5に記載されたDPマトリクスを用いた編集距離の算出を例にとり説明したが、非特許文献17に開示された編集距離の算出に本願開示の制限付き大小比較を適用してもよい。
上述の説明で用いた複数のフローチャートでは、複数の工程(処理)が順番に記載されているが、各実施形態で実行される工程の実行順序は、その記載の順番に制限されない。各実施形態では、例えば各処理を並行して実行する等、図示される工程の順番を内容的に支障のない範囲で変更することができる。
情報処理装置(コンピュータ)の記憶部に秘密計算プログラムをインストールすることにより、コンピュータを秘密計算サーバとして機能させることができる。また、秘密計算プログラムをコンピュータに実行させることにより、コンピュータにより秘密計算方法を実行することができる。
上記実施形態では、「制限付き大小比較」を適用するアプリケーションとして2つのDNA配列における編集距離の計算を例示したが、当該制限付き大小比較の処理は編集距離の計算以外の処理にも適用できることは勿論である。即ち、式(2)に示す条件が成立する場合には、2つのシェア([ν]n、[ν’]n)の大小を上記制限付き大小比較にて判定することができる。換言すれば、2つのシェアの差分(ν-ν’)の取り得る範囲が予め制限されている場合には、一部のビット(桁)までのビット分解により大小の比較結果を得ることができる。
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択(部分的削除を含む)が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10 制御装置
20、20-1~20-3 秘密計算サーバ
21 CPU(Central Processing Unit)
22 メモリ
23 入出力インターフェイス
24 NIC(Network Interface Card)
100 情報処理装置
201、301 通信制御部
202 秘密分散データ生成部
203 秘密分散データ復号部
302 秘密計算実行部
20、20-1~20-3 秘密計算サーバ
21 CPU(Central Processing Unit)
22 メモリ
23 入出力インターフェイス
24 NIC(Network Interface Card)
100 情報処理装置
201、301 通信制御部
202 秘密分散データ生成部
203 秘密分散データ復号部
302 秘密計算実行部
Claims (14)
- 秘密分散された第1及び第2のシェアの差分値の絶対値が自然数t以下の場合、
前記第1及び第2のシェアの差分値を計算し、前記第1及び第2のシェアに関する大小比較を、前記差分値に関する最下位ビットから第mビット(mは自然数)のビット分解を用いて行う、情報処理装置。 - 前記ビット分解された差分値の第mビットの値に応じて前記第1及び第2のシェアの大小を判定する、請求項1に記載の情報処理装置。
- 前記第1及び第2のシェアは2nを法とする剰余類環に含まれ(nは自然数)、前記自然数mは、2m-1≦t<2m≦2n-1
により定まる、請求項1又は2に記載の情報処理装置。 - 前記第mビットまでのビット分解を使用する制限付き大小比較を用いて、2つの文字列の編集距離を計算する、請求項1乃至3のいずれか一項に記載の情報処理装置。
- 前記編集距離の算出に使用するDP(Dynamic Programming)マトリクスにおけるスコア算出対象の要素の上と左に位置する要素それぞれのスコアに関する対角線上の大小比較を前記制限付き大小比較により行う、請求項4に記載の情報処理装置。
- 前記対角線上の大小比較により小さいと判定された要素のスコアと、前記スコア算出対象の要素の左上に位置する要素のスコアと、に関する第1の大小比較を前記制限付き大小比較により行う、請求項5に記載の情報処理装置。
- 前記対角線上の大小比較に用いるビット分解を最下位ビットから順に第2ビットまで行い、
前記第1の大小比較に用いるビット分解を最下位ビットから第1ビットまで行う、請求項6に記載の情報処理装置。 - 前記対角線上の大小比較に要する通信コストは12ビットの通信量、2回の通信ラウンド数であり、前記第1の大小比較に要する通信コストは6ビットの通信量、1回の通信ラウンド数である、請求項6又は7に記載の情報処理装置。
- 前記編集距離の算出に使用するDP(Dynamic Programming)マトリクスにおけるスコア算出対象の要素の上と左上に位置する要素それぞれのスコアに関する水平方向の大小比較と、前記スコア算出対象の要素の左上と左に位置する要素それぞれのスコアに関する垂直方向の大小比較と、を前記制限付き大小比較により行う、請求項4に記載の情報処理装置。
- 前記水平方向の大小比較により小さいと判定された要素のスコアと、前記垂直方向の大小比較により小さいと判定された要素のスコアと、に関する第2の大小比較を前記制限付き大小比較により行う、請求項9に記載の情報処理装置。
- 前記水平方向、前記垂直方向及び前記第2の大小比較に用いるビット分解を最下位ビットから第1ビットまで行う、請求項10に記載の情報処理装置。
- 前記水平方向、前記垂直方向及び前記第2の大小比較に要する通信コストはそれぞれ6ビットの通信量、1回の通信ラウンド数である、請求項10又は11に記載の情報処理装置。
- 情報処理装置において、
秘密分散された第1及び第2のシェアの差分値の絶対値が自然数t以下の場合、
前記第1及び第2のシェアの差分値を計算するステップと、
前記第1及び第2のシェアに関する大小比較を、前記差分値に関する最下位ビットから第mビット(mは自然数)のビット分解を用いて行うステップと、
を含む、秘密計算方法。 - コンピュータに、
秘密分散された第1及び第2のシェアの差分値の絶対値が自然数t以下の場合、
前記第1及び第2のシェアの差分値を計算する処理と、
前記第1及び第2のシェアに関する大小比較を、前記差分値に関する最下位ビットから第mビット(mは自然数)のビット分解を用いて行う処理と、
を実行させるプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/283,041 US11870892B2 (en) | 2018-10-11 | 2018-10-11 | Information processing apparatus, secret calculation method, and program |
JP2020549907A JP7259862B2 (ja) | 2018-10-11 | 2018-10-11 | 情報処理装置、秘密計算方法及びプログラム |
PCT/JP2018/037967 WO2020075273A1 (ja) | 2018-10-11 | 2018-10-11 | 情報処理装置、秘密計算方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2018/037967 WO2020075273A1 (ja) | 2018-10-11 | 2018-10-11 | 情報処理装置、秘密計算方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020075273A1 true WO2020075273A1 (ja) | 2020-04-16 |
Family
ID=70165254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/037967 WO2020075273A1 (ja) | 2018-10-11 | 2018-10-11 | 情報処理装置、秘密計算方法及びプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US11870892B2 (ja) |
JP (1) | JP7259862B2 (ja) |
WO (1) | WO2020075273A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022162726A1 (ja) * | 2021-01-26 | 2022-08-04 | 日本電気株式会社 | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム |
WO2022168257A1 (ja) * | 2021-02-05 | 2022-08-11 | 日本電気株式会社 | 連合学習システム、連合学習装置、連合学習方法および連合学習プログラム |
WO2023002836A1 (ja) * | 2021-07-19 | 2023-01-26 | 国立研究開発法人情報通信研究機構 | ゲノムデータ用個人情報保護管理システム |
WO2023053162A1 (ja) * | 2021-09-28 | 2023-04-06 | 日本電気株式会社 | 秘密計算システム、情報処理システム、秘密計算方法、及び記録媒体 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021192006A1 (ja) * | 2020-03-24 | 2021-09-30 | 日本電気株式会社 | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008020871A (ja) * | 2006-07-14 | 2008-01-31 | Hitachi Software Eng Co Ltd | 秘密分散情報処理システム |
US20130325884A1 (en) * | 2012-05-29 | 2013-12-05 | Sap Portals Israel Ltd. | Comparing strings of characters |
WO2016208437A1 (ja) * | 2015-06-24 | 2016-12-29 | 日本電信電話株式会社 | 秘密計算装置、秘密計算方法、およびプログラム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7930336B2 (en) * | 2006-12-05 | 2011-04-19 | Altera Corporation | Large multiplier for programmable logic device |
US8468244B2 (en) * | 2007-01-05 | 2013-06-18 | Digital Doors, Inc. | Digital information infrastructure and method for security designated data and with granular data stores |
JP2009271584A (ja) | 2008-04-30 | 2009-11-19 | Tokyo Metropolitan Univ | 類似情報検索システムおよび類似情報検索プログラム |
US9292259B2 (en) * | 2008-08-06 | 2016-03-22 | Cassy Holdings Llc | Uncertainty random value generator |
US8625782B2 (en) | 2010-02-09 | 2014-01-07 | Mitsubishi Electric Research Laboratories, Inc. | Method for privacy-preserving computation of edit distance of symbol sequences |
JP5573293B2 (ja) | 2010-03-30 | 2014-08-20 | 富士通株式会社 | 認証装置、暗号化装置、トークンデバイス、認証方法、および認証プログラム |
EP3528233B1 (en) * | 2013-10-10 | 2021-03-10 | Nippon Telegraph and Telephone Corporation | Secret bit decomposition device, secret bit decomposition method, and program therefor |
WO2018008541A1 (ja) | 2016-07-06 | 2018-01-11 | 日本電信電話株式会社 | フィッシャー正確検定計算装置、方法及びプログラム |
WO2018175262A1 (en) * | 2017-03-21 | 2018-09-27 | Tora Holdings, Inc. | Secure order matching by distributing data and processing across multiple segregated computation nodes |
-
2018
- 2018-10-11 JP JP2020549907A patent/JP7259862B2/ja active Active
- 2018-10-11 WO PCT/JP2018/037967 patent/WO2020075273A1/ja active Application Filing
- 2018-10-11 US US17/283,041 patent/US11870892B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008020871A (ja) * | 2006-07-14 | 2008-01-31 | Hitachi Software Eng Co Ltd | 秘密分散情報処理システム |
US20130325884A1 (en) * | 2012-05-29 | 2013-12-05 | Sap Portals Israel Ltd. | Comparing strings of characters |
WO2016208437A1 (ja) * | 2015-06-24 | 2016-12-29 | 日本電信電話株式会社 | 秘密計算装置、秘密計算方法、およびプログラム |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022162726A1 (ja) * | 2021-01-26 | 2022-08-04 | 日本電気株式会社 | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム |
JP7517478B2 (ja) | 2021-01-26 | 2024-07-17 | 日本電気株式会社 | 秘密計算システム、秘密計算サーバ装置、秘密計算方法および秘密計算プログラム |
WO2022168257A1 (ja) * | 2021-02-05 | 2022-08-11 | 日本電気株式会社 | 連合学習システム、連合学習装置、連合学習方法および連合学習プログラム |
WO2023002836A1 (ja) * | 2021-07-19 | 2023-01-26 | 国立研究開発法人情報通信研究機構 | ゲノムデータ用個人情報保護管理システム |
WO2023053162A1 (ja) * | 2021-09-28 | 2023-04-06 | 日本電気株式会社 | 秘密計算システム、情報処理システム、秘密計算方法、及び記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2020075273A1 (ja) | 2021-09-02 |
US20210351916A1 (en) | 2021-11-11 |
US11870892B2 (en) | 2024-01-09 |
JP7259862B2 (ja) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020075273A1 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
EP3698513B1 (en) | Cryptographic device with updatable shared matrix | |
Raj et al. | Secure data transfer through DNA cryptography using symmetric algorithm | |
Namasudra et al. | Introduction of DNA computing in cryptography | |
Hamed et al. | Comparative study for various DNA based steganography techniques with the essential conclusions about the future research | |
Hamad | Novel Implementation of an Extended 8x8 Playfair Cipher Using Interweaving on DNA-encoded Data. | |
Khalifa et al. | Secure blind data hiding into pseudo DNA sequences using playfair ciphering and generic complementary substitution | |
Khorasgani et al. | A lattice-based threshold secret sharing scheme | |
Devi et al. | Image encryption through RNA approach assisted with neural key sequences | |
JPWO2020165931A1 (ja) | 情報処理装置、秘密計算方法及びプログラム | |
Khalifa | A blind DNA-steganography approach using ciphering and random sequence splicing | |
Gao et al. | Comparison analysis and efficient implementation of reconciliation-based RLWE key exchange protocol | |
Gao | A few DNA-based security techniques | |
Paul et al. | An innovative DNA cryptography technique for secure data transmission | |
Bendaoud et al. | A new image encryption scheme based on enhanced elliptic curve cryptosystem using DNA computing | |
Al-Mahdi et al. | Design and analysis of DNA binary cryptography algorithm for plaintext | |
Murugan et al. | Securing cloud data using DNA and Morse code: A triple encryption scheme | |
CN114499845A (zh) | 多方安全计算的方法、装置及系统 | |
Kadhum | Data hiding based DNA issues: a review | |
Bevi et al. | Information Coding and its Retrieval using DNA Cryptography. | |
Thangavel et al. | A comparative study on DNA-based cryptosystem | |
Vantigaru et al. | Two layer encryption schemes for symmetric algorithms using DNA Sequences | |
Shehab | Protein Key Generation for Secure CT-Chest Images Encryption | |
Raj et al. | Novel DNA Cryptosystem using Genetic Operators | |
Devi et al. | Hiding information in an image using DNA cryptography |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18936804 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020549907 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: 18936804 Country of ref document: EP Kind code of ref document: A1 |