WO2016129363A1 - Calculating device relating to concealment computation system employing distribution of secrets - Google Patents

Calculating device relating to concealment computation system employing distribution of secrets Download PDF

Info

Publication number
WO2016129363A1
WO2016129363A1 PCT/JP2016/051934 JP2016051934W WO2016129363A1 WO 2016129363 A1 WO2016129363 A1 WO 2016129363A1 JP 2016051934 W JP2016051934 W JP 2016051934W WO 2016129363 A1 WO2016129363 A1 WO 2016129363A1
Authority
WO
WIPO (PCT)
Prior art keywords
secret information
secret
server
integer
distributed
Prior art date
Application number
PCT/JP2016/051934
Other languages
French (fr)
Japanese (ja)
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 JP2016574708A priority Critical patent/JPWO2016129363A1/en
Publication of WO2016129363A1 publication Critical patent/WO2016129363A1/en

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords

Definitions

  • the present invention relates to a calculation apparatus related to a secret calculation system using secret sharing.
  • cloud computing has attracted attention as a new network technology.
  • users' data is distributed and stored in a virtual large-capacity storage consisting of multiple servers on the network called the cloud, and the user accesses the data from anywhere via the network as needed. It is a technology that makes it possible.
  • it is not only simply storing data, but also a technology that realizes a secret calculation that performs arbitrary calculations while concealing individual data using data distributed and stored in the cloud Is required.
  • the secret sharing method is a technique in which one piece of secret information is distributed into n pieces, and the original secret information can be restored by collecting k pieces (k ⁇ n) of the distributed values distributed into n pieces. Also, no information about secret information can be obtained from less than k variance values.
  • the (k, n) secret sharing method by Shamir is well known.
  • a conventional secret sharing system including Shamir's (k, n) secret sharing method includes n data servers that store the distributed values and a dealer that distributes the secret information or a restoration terminal that restores the secret information.
  • the owner asks the dealer to distribute the secret information he owns, and the dealer calculates the n distributed values using the secret sharing method and distributes the values to each of the n data servers. store.
  • a dealer exists only when secrets are shared.
  • a user who wishes to restore collects the distributed values for the secret information to be restored from the k data servers and restores them. This restoration terminal also generally exists only at the time of data restoration.
  • This k ⁇ 1 degree polynomial can be solved (the secret information s is obtained) if k variance values W (x1),..., W (xk) are collected.
  • the variance is less than k, the solution is indefinite and cannot be determined at all.
  • W (x) s + a1x + a2x 2 +... + ak-1x k-1 (1)
  • Wa (xj) a + a1xj + a2xj 2 +... + ak-1xj k-1 (2)
  • Wb (xj) b + b1xj + b2xj 2 +... + bk-1xj k-1 (3)
  • Wa (xj) + Wb (xj) (a + b) + (a1 + b1) xj + (a2 + b2) xj 2 + ... + (ak-1 + bk-1) xj k-1 (4)
  • equation (4) which is the addition result, is also expressed by a k ⁇ 1 degree polynomial, so that k, the sums Wa (xj) + Wb (xj) of the variance values are collected to solve the polynomial a, The sum of secret information a + b is obtained instead of individual information b.
  • the constant term of the product of Wa (xj) and Wb (xj) is a product of secret informations a and b, so if you calculate the product of variance values and solve the polynomial, the secret The product of information comrades is obtained [1].
  • a calculation that obtains a result such as a sum or product without obtaining individual information a and b is called a secret calculation, and it is known that the secret sharing method can be applied to the secret calculation with respect to addition / subtraction and multiplication.
  • secret sharing method can be applied to the secret calculation with respect to addition / subtraction and multiplication.
  • [2] has been proposed as a multiplication method without changing the number of servers.
  • one server has two distributed values, one distributed value is concealed, multiplication is performed, and then random numbers are deleted, so that it is not necessary to change the number of servers.
  • Wb (xi) b + b0,1xi + ⁇ + b0, k-1xi k-1
  • Wb '(n + xi) ⁇ (b + b0,1 (n + xi) + ... + b0, k-1 (n + xi) k-1 )
  • Wb1 (xi) ⁇ + b1,1xi + ⁇ ⁇ ⁇ + b1, k-1xi k-1
  • the restoring terminal of the restoring person restores ⁇ from Wa1 (xj), ⁇ from Wb1 (xj), and divides Wab ′ (xj) by ⁇ and ⁇ to create Wab (n + xj).
  • the restorer's restoration terminal restores ab using 2k-1 variance values from Wab (xj) and Wab (n + xj).
  • [2] is safe against external attackers. However, it is not safe if an attacker from the inside, that is, a restorer who can know only the operation result of ab becomes an attacker to know the original secret information a and b itself. Because the restorer knows ⁇ and ⁇ separately in [Restore] (2), if the restorer eavesdrops on the server, if k / 2 servers are eavesdropped, the k distributed values of a and Since k distributed values of b are obtained, the original secret information is leaked. Therefore, when an attacker who knows nothing about the confidential calculation to the attacker and a restorer who knows the calculation result become an attacker to know the secret information that is the original information of the calculation result There are two types.
  • [2] proposes the following countermeasures in which each server changes the transmission information by exchanging random numbers rj and qj at the time of restoration.
  • an attacker refers to an attacker from the outside, and when referring to the latter attacker, the name “restorer” is used as it is.
  • the external attacker cannot leak the calculation result, but the latter is in a position to know the calculation result.
  • the restorer's restoration terminal restores r ⁇ from r ⁇ Wa1 (xj), q ⁇ from q ⁇ Wb1 (xj), divides Wab '(xj) by r ⁇ and r ⁇ , and then Wab (n + xj) create.
  • the restorer's restoration terminal restores ab using 2k-1 variance values from Wab (xj) and Wab (n + xj).
  • the restorer can eavesdrop only on the distributed value storage other than [multiplication] or [restoration] processing in the above-mentioned secret multiplication, it depends on the k distributed values that the restorer eavesdropped on save. Since the correspondence between the random number and the random number obtained at the time of [restoration] is different, the original secret information cannot be restored. However, if the restorer can eavesdrop on a single server during [Restore], all servers will know r and q. Therefore, by dividing the restored r ⁇ and q ⁇ by r and q, ⁇ and ⁇ can be obtained separately. Therefore, the restorer can still obtain the secret information a and b, which is not safe.
  • the method [2] allows multiplication without changing the number of servers in the (k, n) secret sharing method, but if the restorer is an attacker, the secret information itself is leaked, which is not safe. Therefore, in the (k, n) secret sharing method, it can be said that there is no method that does not change the number of servers and does not leak secret information. In addition, this method does not take into account (III) the problem related to the continuation of the secret calculation described later. That is, if one server has two distributed values and one is kept secret, the degree conversion described below cannot be applied and continuous calculation cannot be performed. Further, the problem relating to the division of (II) is not considered at all. Furthermore, the reduction of the dispersion value of (VI) and the speeding up by the multi-value method of (VII) are not considered.
  • h (x) which is the multiplication result of f (x) g (x)
  • h ′ (x) a polynomial composed of coefficients up to the kth order of h (x)
  • Ri a polynomial composed of coefficients up to the kth order of h (x)
  • W (W1, W2,..., Wn)
  • R (R1, R2,..., Rn)
  • xi a server ID and B and P are defined below.
  • the n servers need to store the date and time when the amount of money is generated as a search ID together with the variance value of the amount related to deposit and withdrawal.
  • each server searches the corresponding distributed value using that search ID and sends it to employee A.
  • Employee A can restore it and check the amount information.
  • the application collects the distributed values in the period as the search ID, the sum of the amount in the period, the average value, Various statistical values such as variance can be calculated without the server knowing the amount of money, which is confidential information, and can be communicated to the accounting staff of the company.
  • it is not possible to perform a search by specifying an amount and specifying the date and time when the amount occurred. For example, only the amount of money generated by employee A is stored, and even if an attempt is made to search for the date and time when it occurred, the amount is secretly shared, so if the distribution value is not known, the search ID cannot be reversed. .
  • the server can know which date and time information is being searched. That is, when the company A outsources a server system for data storage, the outsourcing destination company can know the date on which an important transaction was made in the company A (the day that is often searched).
  • the date and time of the search ID are encrypted and stored, the server does not know when the date and time of the data is being searched, but only the encrypted user can search the amount.
  • the data is considered to be accessed by multiple people, but in this case, the encryption key used for encryption needs to be shared by multiple people, reducing security To do.
  • the random numbers a 1 to a k-1 can be updated to new random numbers without changing the secret information s of the distributed values stored in the form (1), the distributed values leaked by the previous unauthorized access Can be disabled.
  • the order of the polynomial and the random number must be changed without changing the secret information s.
  • asymmetric secret sharing has the feature of reducing the storage capacity and allowing users to participate in the restoration of secret information. Secret information is not restored unless the user participates. Play a role. Therefore, if a secret calculation, a secret search, and a secret update having the features (I) to (V) described above can be realized with respect to the ramp-type secret sharing method and the asymmetric secret sharing, the same effect can be obtained for the secret calculation of personal information. Expected to bring. Furthermore, a combination of these methods is not considered, and an optimum miniaturization can be expected by the combination.
  • the XOR method is extended so that secret information is handled as a numerical value instead of a bit string, so that a secret calculation can be performed.
  • a method for performing secret addition by treating secret information of the XOR method as a numerical value instead of a bit string has already been proposed [5], but secret multiplication is not proposed.
  • the XOR method extension method (hereinafter referred to as the multi-value method) can restore the secret information only by adding and subtracting the variance value, the calculation can be performed at a higher speed than the Shamir method that requires solving the polynomial. Therefore, regarding the XOR method expansion method, if a secret operation, a secret search, and a secret update having the features (I) to (V) can be realized, a very efficient process can be realized.
  • the combination of the asymmetric secret sharing method and the multilevel method, the asymmetric secret sharing method and the ramp type secret sharing method, and the combination of the asymmetric secret sharing method and the ramp type secret sharing method corresponding to the multilevel method reduce the storage capacity. And high speed at the same time.
  • the purpose is to solve any of the above problems.
  • n is an integer
  • k is an integer of n or less
  • L is an integer of 1 to k
  • secret information is distributed into n
  • k of n Secret information can be recovered by collecting the distributed values of the secret information, and a computing device for calculating the distributed value in a system that performs a secret operation using means that cannot recover the secret information if kL or less, and k or more secret information
  • n is an integer
  • k is an integer of n or less
  • L is an integer of 1 to k
  • secret information is distributed to n
  • k of the n distributed values can be collected.
  • a computing device that performs a secret operation in a system that performs a secret operation using means that can restore secret information and cannot restore the secret information with kL or less
  • the distributed value of the first partial random number which is one of a plurality of random numbers constituting the first random number used for the first concealment secret information, and the second used for the second concealment secret information.
  • a computing device comprising:
  • n is an integer
  • k is an integer of n or less
  • L is an integer of 1 to k
  • secret information is distributed to n
  • k of the n distributed values can be collected.
  • n is an integer
  • k is an integer of n or less
  • L is an integer of 1 to k
  • the secret information is distributed to n
  • k of the n distributed values can be collected.
  • a computing device that restores secret information in a system that performs secret computation using means that cannot restore secret information if kL or less, and is concealed using k or more random numbers Means for restoring the concealed secret information, means for combining the random numbers, and means for releasing the concealment of the restored secret information using the combined random numbers.
  • n is an integer
  • k is an integer of n or less
  • L is an integer of 1 to k
  • secret information is distributed to n pieces
  • k of the n distributed values can be collected.
  • n is an integer
  • k is an integer of n or less
  • L is an integer of 1 to k
  • secret information is distributed to n pieces
  • k of the n distributed values can be collected.
  • n is an integer
  • k is an integer of n or less
  • L is an integer of 1 to k
  • secret information is distributed to n pieces
  • k of the n distributed values can be collected.
  • a computing device that calculates a distributed value in a system that performs a secret operation using means that can restore secret information and cannot restore secret information with k ⁇ L or less, and conceals a plurality of new secret information to Means for calculating a variance value of the plurality of variance values, and means for designating the arrangement order of each of the plurality of variance values in accordance with a predetermined arrangement order of the plurality of new secret information before the concealment .
  • n is an integer
  • k is an integer of n or less
  • L is an integer of 1 to k
  • secret information is distributed to n
  • k of the n distributed values can be collected.
  • a computer that specifies secret information to be searched in a system that performs a secret calculation using means that cannot restore secret information with kL or less pieces, and allows a random number to act on the search secret information. Means for concealing, and means for applying the random number to a value received from the system.
  • the invention according to claim 9 is such that n is an integer, k is an integer of n or less, L is an integer of 1 to k, and secret information is distributed to n, and k of the n distributed values can be collected.
  • a computing device that retrieves secret information designated in a system that performs a ciphering operation using means that cannot restore secret information when kL or less, and the first information corresponding to the secret information.
  • the search secret information is concealed with the first random number
  • the inputted second search secret information is concealed with the second random number
  • the concealed first search secret Based on the difference between the first value based on information and the second value based on the concealed second search secret information, the first search secret information and the second search secret Means for obtaining a difference from the information.
  • the invention according to claim 10 is such that n is an integer, k is an integer of n or less, L is an integer of 1 to k, and secret information is distributed to n, and k distributed values of n can be collected.
  • a computing device that updates a distributed value in a system that performs a secret operation using a means that can restore secret information and cannot restore secret information with kL or less, and is obtained by concealing secret information with a random number.
  • a means for generating a new random number for the distributed value and storing the generated new random number as a new distributed value is provided.
  • the invention according to claim 11 is such that n is an integer, k is an integer of n or less, L is an integer of 1 to k, the secret information is distributed to n, and k of the n distributed values can be collected.
  • a computing device that updates a distributed value in a system that performs a secret operation using means that cannot restore secret information with kL or less, and obtains secret information from k or more correction information. Means for calculating an update value to be updated are provided.
  • the invention according to claim 12 is such that n is an integer, k is an integer of n or less, L is an integer of 1 to k, and secret information is distributed to n, and k distributed values of n can be collected.
  • a calculation device for calculating a distributed value in a system that performs a secret calculation using means that cannot restore secret information with kL or less, and generates h (1 to k ⁇ 1) Integer) random numbers are defined as variance values, and n ⁇ h variance values are calculated based on the h variance values and the secret information, and a composite value is obtained from k or more secret information.
  • Means for generating, and means for calculating concealed secret information obtained by applying the combined value to new secret information.
  • the invention according to claim 13 is such that n is an integer, k is an integer of n or less, L is an integer of 1 to k, the secret information is distributed to n, and k of the n distributed values can be collected.
  • a computing device that calculates a distributed value in a system that performs a secret operation using means that cannot restore secret information if kL or less, and the secret information is a numerical value of e-adic and d digits
  • n is an integer
  • k is an integer of n or less
  • L is an integer of 1 to k
  • secret information is distributed to n, and k of the n distributed values can be collected.
  • a computing device that performs a secret calculation or restoration in a system that performs a secret calculation using a means that can restore secret information and cannot restore secret information below k ⁇ L, and is concealed and divided into a plurality of digits Means for performing a predetermined calculation in accordance with the digit of the concealment secret information is provided.
  • the invention according to claim 15 is such that n is an integer, k is an integer of n or less, L is an integer of 1 to k, the secret information is distributed to n, and k of the n distributed values can be collected.
  • a computing device comprising means for secretly sharing or decrypting the secret information of p1 * p2 or less multiplied by the following integers using a prime number larger than p1 * p2 as a modulus.
  • n is an integer
  • k is an integer smaller than n
  • L is an integer not less than 1 and not more than k
  • the secret information is distributed into n pieces
  • k pieces of distributed values among n pieces can be collected.
  • the invention according to claim 17 is such that n is an integer, k is an integer of n or less, L is an integer of 1 to k, and secret information is distributed to n, and k distributed values of n can be collected.
  • a computing device that searches for a storage location of system secret information that performs a ciphering operation using means that cannot restore secret information with kL or less pieces. Means for obtaining the difference between the two search secret information, and means for determining the storage position according to the difference.
  • n is an integer
  • k is an integer of n or less
  • L is an integer of 1 to k
  • the secret information is distributed to n
  • k of the n distributed values can be collected.
  • a calculation device that updates secret information in a system that performs a secret calculation using means that cannot restore secret information with kL or less, and a predetermined value is set in a distributed value of the secret information. Means for multiplying the first random number and adding a predetermined second random number are provided.
  • the present invention can perform multiplication safely without changing the number of necessary servers.
  • division can be realized by means similar to multiplication.
  • the present invention can realize a continuous secret calculation without contradiction.
  • the present invention can realize, for example, a bidirectional search from the search ID to the secret information and from the secret information to the search ID.
  • the present invention can update the variance value efficiently and safely.
  • the present invention can realize a reduction in storage capacity.
  • the present invention can realize high-speed processing. According to the present invention, it is possible to reduce the storage capacity and increase the processing speed.
  • FIG. 1 is a diagram showing a system according to first to tenth embodiments.
  • FIG. It is a block diagram which shows the structure of 12 A of 1st dealer apparatuses. It is a flowchart which shows a distributed processing program. It is a figure which shows the distributed value of each server. It is a flowchart which shows a distributed processing program. It is a figure which shows the distributed value of each server. 10 is a flowchart showing an ⁇ a restoration / transmission processing program. It is a figure which shows the content of the decompression
  • (A) is a flowchart which shows a multiplication process program
  • (B) is a figure which shows the distributed value of each server. It is a flowchart which shows the decompression
  • FIG. 1 It is a flowchart which shows a division result acquisition process program. It is a figure which shows the content of the division result acquisition process of FIG. (A) is a flowchart which shows a division processing program, (B) is a figure which shows the distributed value of each server. It is a flowchart which shows the decompression
  • (A) is a flowchart showing a distributed processing program
  • (B) is a flowchart showing a restoration processing program. It is a flowchart which shows a distributed processing program.
  • FIG. 1 shows an example in which three dealer devices, that is, a first dealer device 12A, a second dealer device 12B, and a third dealer device 12C are provided.
  • the system also has n servers that independently store the distributed n distributed values, ie, the first server 14x 1 , the second server 14x 2 ,.
  • a server 14x n (hereinafter also referred to as a server system) is provided.
  • the system includes a restoration device 16 that restores the secret information or the result of the secret calculation.
  • a restoration device 16 that restores the secret information or the result of the secret calculation.
  • the system may also include a search server 18.
  • the first dealer device 12A to the third dealer device 12C, the first server 14x 1 to the nth server 14x n , and the restoration device 16 are connected via a network 10 such as the Internet. Are connected to each other.
  • the search server 18, networks - without using the click 10, the first service - are directly connected to each of the bar 14x n - bar 14x 1 ⁇ the n number of service.
  • the first dealer device 12A to the third dealer device 12C, the first server 14x 1 to the nth server 14x n , the restoration device 16, and the search server 18 have the same configuration.
  • the configuration of the first dealer device 12A will be described, and description of other devices will be omitted.
  • FIG. 2 is a block diagram showing a configuration of the first dealer apparatus 12A.
  • the first dealer device 12 ⁇ / b> A includes a CPU 22, a ROM 24, and a RAM 26.
  • the first dealer 12 ⁇ / b> A includes a display device 30, an input device 32, a storage device 34, and an interface (I / F) 36. These devices are connected to each other via a bus 28.
  • the interface (I / F) 36 is connected to the network 10. Note that the interface (I / F) 36 of the search server 18 is not connected to the network 10, and is the interface (I / F) 36 of the first server 14 x 1 to the n-th server 14 x n. It is connected to the.
  • the ROM 24 stores a program for each process described later.
  • the owner having the secret information operates the first dealer device 12A to the third dealer device 12C.
  • a user (restorer) who can know the calculation result operates the restoration device 16.
  • the first server 14x 1 to the n-th server 14x n accept only communication from a valid owner or a restorer, and reject unauthorized communication. Further, the communication between the first dealer device 12A to the third dealer device 12C and the first server 14x 1 to the nth server 14x n and the restoration device 16 is a secure communication path by encryption or the like. Has been built. Generally, each owner or restorer has the first dealer device 12A to the third dealer device 12C and the restoration device 16 individually.
  • the first dealer device 12A to the third dealer device 12C may be provided as an input port of the server system, and the restoration device 16 may be provided as an output port of the server system.
  • the secret search function of the system shown in FIG. 1 will be described.
  • the owner uses the first dealer device.
  • the owner calculates the distributed value of his / her secret information by the first dealer 12A, and stores the distributed value in the area of each server assigned to himself / herself.
  • each distributed value is stored in the server system together with identification data for searching for it, that is, a search ID or a distributed value related to the search ID.
  • the owner distributes the search IDs using the method described in the sixth embodiment.
  • a legitimate restorer who wishes to search and restore information shows the search ID to the restoration device 16, and the restoration device 16 sends the corresponding information to the server system using the method described in the sixth embodiment.
  • the server system transmits the secret information distributed value corresponding to the sent information to the restoration device 16, and if there is no secret information distributed value, informs that there is no secret information distributed value. .
  • the restoration device 16 that has obtained the distributed value of the secret information corresponding to the search ID then restores the secret information or the result of the secret calculation.
  • the system performs the confidential search shown in the sixth embodiment. However, since the system has a plurality of functions, when the function of the confidential search is not required, the function of the confidential search is not used. You can also search for.
  • the restoration device 16 uses the above-described secret search function (the normal search function when the secret search is not used).
  • the search ID is concealed using () to obtain a distributed value to be calculated and stored in the server system corresponding to the ID.
  • the server system performs a secret calculation on the specified operation using it, and obtains a variance value of the final result.
  • the restoration device 16 that obtained the variance value of the final result restores it to obtain the final result.
  • a process performed by the restoration device 16 will be described.
  • the server system is mainly responsible for the secret operation, but the restoration device 16 or each dealer device may cooperate with the secret operation.
  • the concealment calculation is performed on the secret information.
  • the conditional expression concealment calculation based on the search ID is performed. Therefore, this secret calculation function is also used when calculating the conditional expression while keeping the search ID secret.
  • this secret calculation function is not used and a normal calculation function is provided.
  • the server system of FIG. 1 has a secret update function for stored information that is performed periodically or at a predetermined timing such as when a distributed value for certain secret information is used.
  • a secret update function for stored information that is performed periodically or at a predetermined timing such as when a distributed value for certain secret information is used.
  • an updating method for various cases will be described. However, this function may not be used if secret update is not performed.
  • the first to sixth embodiments will be described by taking Shamir's (k, n) secret sharing scheme as an example.
  • the seventh embodiment while reducing the storage capacity, A technique for simultaneously reducing the storage capacity and the calculation amount is shown for the asymmetric secret sharing method that performs secret search, secret calculation, and secret update. That is, the present invention is effective for the asymmetric secret sharing method.
  • the overall configuration is the same as in FIG.
  • the secret search and the secret are performed while simultaneously reducing the storage capacity and the calculation amount.
  • a method for calculating and updating confidentiality is shown. That is, the present invention is also effective for the lamp-type secret sharing method.
  • the overall configuration is the same as in FIG.
  • the secret information is handled as a bit string, the secret information is distributed and restored only by XOR (k, n), and the secret sharing method is extended to handle the secret information as a numerical value (multi-valued) Method).
  • the calculation amount is reduced, and it is shown that the secret search, secret search, and secret update functions of the first to sixth embodiments can be performed at high speed. That is, it shows that the present invention is also effective for the multilevel method.
  • the overall configuration is the same as in FIG.
  • the tenth embodiment shows that the proposal of the present invention is effective for a method combining the asymmetric secret sharing method and the multi-value method or the ramp-type multi-value method.
  • a system (first embodiment) in which the functions shown in the first to sixth embodiments can be performed in a small size and at high speed is realized, and the effectiveness of the present invention is shown.
  • the secret multiplication method that does not change the threshold k with respect to the Shamir (k, n) secret sharing method is shown below.
  • the first dealer device 12A has secret information a
  • the second dealer device 12B has secret information b.
  • a case where the multiplication result of a ⁇ b is obtained while a and b are kept secret will be described.
  • random number generation and not including 0 first sub - server 14x 1 ⁇ the n number of sub - Bas 14x n identification data - x 1 ⁇ x n is the public is (mackerel ID) It is a value, that is, another device stores each server ID.
  • the decimal point position is stored separately or predetermined according to regulations. Therefore, the sum of integer representations of real numbers can be handled in the same way as the sum of integers, and the decimal point position does not change.
  • the product of integer representations of real numbers can be handled in the same way as the product of integers, but the decimal point position changes. For example, when calculating the product of real numbers having the second decimal place, the real number having the fourth decimal place is obtained.
  • the third decimal place is rounded down or rounded off, and the product is also a second decimal place real number.
  • adjusting the decimal point position according to the definition of the decimal point position and returning it to a real number is called realization.
  • a real number has a fixed-point representation and a floating-point representation on a computer. However, since these are representations only, both of them can be handled if the above rules are defined. The above premise is common to all the embodiments.
  • the concealment multiplication 1 (basic form) is executed by each process of distribution, multiplication, and restoration.
  • dispersion secret sharing
  • the CPU 22 of the first dealer apparatus 12A executes the distributed value processing shown in FIG.
  • step 46 the dispersion values Wa ′ (x i ) to Wak (x i ) are transmitted to the first server 14x 1 to the n-th server 14x n .
  • the dispersion values Wa ′ (x i ) to Wak (x i ) of the first server 14x 1 to the nth server 14x n are as shown in FIG. is there.
  • the CPU 22 of the second dealer apparatus 12B executes the distributed processing shown in FIG.
  • step 54 the following variance values are calculated.
  • Wb ′ (x i ) ⁇ (b + b 0,1 x i +... + B 0, k ⁇ 1 x i k ⁇ 1 )
  • Wb 1 (x i ) ⁇ 1 + b 1,1 x i +... + B 1, k ⁇ 1 x i k ⁇ 1 :
  • Wb k (x i ) ⁇ k + b k, 1 x i +...
  • step 56 the dispersion values Wb ′ (x i ) to Wb k (x i ) are transmitted to the first server 14x 1 to the n-th server 14x n .
  • the dispersion values Wb ′ (x i ) to Wb k (x i ) of the first server 14x 1 to the nth server 14x n are as shown in FIG. It is.
  • step 76 the product ⁇ j ⁇ j is calculated, and in step 78 Wab ′ (x j ) and ⁇ j ⁇ j are transmitted to the restoration device 16.
  • the first server 14x 1 has Wab ′ (x 1 ) and ⁇ 1 ⁇ 1
  • the second server 14x 2 has Wab ′ (x 2 ) and ⁇ 2 ⁇ 2
  • the third Sa - server 14x 3 transmits Wab 'a (x 3) and the alpha 3 beta 3 to restore device 16. Therefore, in the above example, the data shown in FIG.
  • the variance value is calculated in step 44 (FIG. 3) and step 54 (FIG. 5), and distributed in step 46 (FIG. 3) and step 56 (FIG. 5).
  • one random number is restored for each server in [Restore] step 74 (FIG. 10), and the product is calculated and transmitted to the restorer 16 in steps 76 to 78 of FIG. To do.
  • the random numbers of all the servers are not known, the combined value ⁇ or ⁇ cannot be known. In other words, ⁇ and ⁇ cannot be individually restored even if eavesdropping on k ⁇ 1 servers. Therefore, ⁇ a to a or ⁇ b to b are not known.
  • the secret information is distributed by applying a composite value in steps 44 to 46 (FIG. 3) and steps 54 to 56 (FIG. 5) of [distribution], and as shown in claim 3, Multiplication] is restored once in steps 62 to 64 (FIG. 7), and calculation is performed using the restored values in step 76 (FIG. 10). This enables multiplication without changing the order k ⁇ 1 of the variance value.
  • the third feature is that, as shown in claim 4, in steps 82 to 86 of FIG. 12 in [restoration], the operation result ( ⁇ ab) concealed from the variance value Wab ′ (x i ) is restored and synthesized. The point is that it is divided by ⁇ .
  • Step 44 (FIG. 3) and Step 54 (FIG. 5) of [Dispersion] the concealment dispersion values such as the dispersion values Wa ′ (x i ) and Wb ′ (x i ) are Although a random number is applied to the distributed value, it may be secretly distributed by applying a random number to the secret information.
  • step 64 is service - in the server 14x d
  • the example has a first server 14x 1 restores the .alpha.a, multiple service - to restore the .alpha.a in bar, It may be transmitted to a server other than the restored server.
  • ⁇ a is restored on all servers, it is not necessary to transmit the value of ⁇ a to other servers.
  • service - server 14x d other service - was a convey ⁇ a the server, if the k stand participating in restoration is determined, at least that k stand service - may tell the server. Further, ⁇ b may be restored instead of ⁇ a.
  • step 72 (FIG. 10) of [Restore] the server j collects Waj (x i ) and Wbj (x i ) corresponding to the designated j. It may be determined as follows. For example, j may be defined as 1, 2,..., K according to the ascending order of the server IDs participating, or may be determined in descending order. Also, each server may determine its own j value in the order from the earliest.
  • each server sends ⁇ j ⁇ j to the restorer, and the restoration device 16 restores ⁇ in step 82 of FIG. . That is, for example, in step 78 of FIG. 10, the server 14x 1 repeatedly sends ⁇ 1 ⁇ 1 to the server 14x 2 , and the server 14x 2 repeats sending ⁇ 2 ⁇ 2 to the next server, so that the last server Restore ⁇ at 14x k . Thereafter, the server 14x k transmits ⁇ to the other servers, and each server calculates Wab ′ (x i ) / ⁇ . In this case, in step 82 in FIG.
  • the restoring device 16 collects Wab ′ (x i ) / ⁇ from k servers and restores ab, and steps 84 and 86 are omitted. Also, each server sends ⁇ j ⁇ j to the search server instead of the restorer, the search server restores ⁇ and returns it to each server, and each server calculates Wab ′ (x i ) / ⁇ , and the result May be sent to the restorer.
  • server 14x d is Wb '(x i) gathering restore the .beta.b, it may be sent to restore device 16 to calculate the ⁇ ab over the .alpha.a. In that case, step 82 of FIG. 12 in [Restore] is deleted.
  • k random numbers ⁇ i and the like are generated and each server decodes one of them, but k or more random numbers may be generated, and each server may restore and combine a plurality of random numbers.
  • t ⁇ k random numbers are generated in Step 42 of FIG. 3 of [Distribution], and the product ⁇ is calculated using q as a modulus.
  • Step 74 of FIG. The random numbers are restored and multiplied in step 76. The same applies to the following embodiments.
  • step 94 the following variance values are calculated.
  • Wc ′ (x i ) ⁇ (c + c 0,1 x i +... + C 0, k ⁇ 1 x i k ⁇ 1 )
  • Wc1 (x i ) ⁇ 1 + c 1,1 x i +... + C 1, k ⁇ 1 x i k ⁇ 1 :
  • Wck (x i ) ⁇ k + c k, 1 x i +... + C k, k ⁇ 1 x i k ⁇ 1
  • the dispersion values Wc ′ (x i ) to Wck (x i ) are transmitted to the n first servers 14x 1 to the n th server 14x n .
  • Wabc ′ (x j ) is generated by multiplying the Wab ′ (x j ) of the user by ⁇ c.
  • Wabc ′ (x j ) ⁇ c (ab + ab 0,1 x i +... + Ab 0, k ⁇ 1 x i k ⁇ 1 )
  • Wabc ′ (x 1 ) to Wabc ′ (x 4 ) in the first server 14x 1 to the fourth server 14x 4 are as shown in FIG.
  • this embodiment is effective for concealment multiplication and its repetition.
  • decimal point position when a real number is targeted, secret sharing is performed for the decimal point position, and the process of shifting the decimal point can be executed as a secret calculation. For example, when all decimal point positions are the second decimal place, as described above, the decimal point position does not change by addition / subtraction, and the decimal point position changes only by multiplication / division. However, since the change of the decimal point position can be calculated by addition and subtraction, the secret-distributed decimal point position may be added secretly.
  • the real number-based concealment multiplication is shown below.
  • the flow of processing is almost the same as the secret multiplication 1, but the following secret multiplication 3 is shown in order to understand the details corresponding to the real number.
  • secret information and random numbers are real numbers as follows, and all operations other than the secret sharing part are performed by real number calculation without using q as a modulus.
  • Dispersion] dispersion of ⁇ i and beta i are secret sharing in was dispersed by an integer the modulo p, variance of ⁇ a and ⁇ b are secret sharing with integer modulo q.
  • the restoration process of ⁇ i and ⁇ i in [Restore] is performed with p as the modulus
  • the restoration process of ⁇ a and ⁇ b is performed with the modulus of q, but the restored ⁇ i , ⁇ i , ⁇ , ⁇
  • Related operations are not modulo q, but are calculated as real numbers.
  • ⁇ b is restored in addition to ⁇ a, and then a real number is calculated.
  • the added processing is to secretly distribute the value indicating the decimal point position in [Distribution] and to calculate the new decimal point position by performing the secret addition as described above in [Multiplication].
  • the random number ⁇ i is expressed as a real number having a predetermined decimal point position.
  • step 103 the CPU 22 of the first dealer apparatus 12A calculates the following variance value.
  • ⁇ 1 ⁇ ⁇ 2 ⁇ ⁇ ⁇ ⁇ k is shifted by the rounding method, but for simplicity here, ⁇ is calculated ⁇ 1 ⁇ ⁇ 2 ... ⁇ k , then adjust the decimal point position Then.
  • will have 2k decimal place, but the decimal place will be adjusted and rounded off or rounded off to 2 decimal places and expressed as an integer.
  • an integer less than or equal to p an integer less than or equal to p
  • ⁇ a is expressed as an integer as a real number with a fixed decimal point position that can be expressed as an integer less than or equal to q (here, the second decimal place)
  • the following variance is calculated using prime number q as the modulus To do.
  • a value d 1 (an integer less than or equal to p) representing the decimal point position of ⁇ i and a value d3 representing the decimal point position of ⁇ a are also secretly distributed using p as a modulus.
  • Wa ′ (x i ) ⁇ (a + a 0,1 x i +... + A 0, k ⁇ 1 x i k ⁇ 1 )
  • Wa 1 (x i ) ⁇ 1 + a 1,1 x i +... + A 1, k ⁇ 1 x i k ⁇ 1 :
  • Wa k (x i ) ⁇ k + a k, 1 x i +...
  • step 105 the data are transmitted to the first server 14x 1 to the nth server 14x n .
  • step 113 the following variance value is calculated.
  • b, ⁇ i, and ⁇ are expressed as integers, they are real numbers having a predetermined decimal point position that can be expressed by an integer less than or equal to p.
  • ⁇ b is expressed as an integer
  • the following variance value is calculated by expressing ⁇ b as an integer and modulo the prime number q.
  • the value d 2 (integer of p or less) representing the decimal point position of ⁇ i and the value d4 representing the decimal point position of ⁇ ba are also secretly distributed using p as a modulus.
  • Wb ′ (x i ) ⁇ (b + b 0,1 x i +... + B 0, k ⁇ 1 x i k ⁇ 1 )
  • Wb 1 (x i ) ⁇ 1 + b 1,1 x i +... + B 1, k ⁇ 1 x i k ⁇ 1 :
  • Wb k (x i ) ⁇ k + b k, 1 x i +...
  • step 115 the data is transmitted to the first server 14x 1 to the n-th server 14x n .
  • the servers participating in the restoration for example, the CPUs 22 of the first server 14x 1 to the k-th server 14x k determined in advance, execute the restoration / transmission processing of ⁇ j ⁇ j shown in FIG. . That is, in step 121, Wa j (x j ) and Wb j (x j ) corresponding to the designated j are collected from the server corresponding to j, and in step 123, ⁇ j and ⁇ j are modulo prime p. Restore one by one. In step 125, ⁇ j ⁇ j is calculated as a real number using ⁇ j and ⁇ j converted to real numbers, and the calculated ⁇ j ⁇ j is transmitted to the restoring device 16 in step 127.
  • Each server calculates Wd1 (xi) + Wd3 (xi) and sends it to the restoration device.
  • the restoration device restores Wd1 (xi) + Wd3 (xi), knows the decimal point position of ⁇ from the value obtained by multiplying it by k, and adjusts the decimal point position of ⁇ .
  • the CPU 22 of the first server x 1 executes ⁇ ab transmission processing shown in FIG. That is, in step 141, k corresponding Wa ′ (x i ) are collected from each server, and in step 143, ⁇ a is restored modulo the prime number q. In step 145, k corresponding Wb ′ (x i ) are collected from each server, and in step 147, ⁇ b is restored modulo the prime number q. In step 149, ⁇ ab is calculated as a real number, and in step 151, ⁇ ab is transmitted to the restoration device 16. If necessary, the following processing is performed.
  • Each server calculates Wd2 (xi) + Wd4 (xi) and sends it to the restoration device.
  • the restoration device restores Wd2 (xi) + Wd4 (xi), knows the decimal point position of ⁇ ab from the value, and adjusts the decimal point position of ⁇ ab.
  • the restoration device 16 receives ⁇ ab at step 135 in FIG. 26, and obtains ab by dividing by ⁇ at step 137.
  • ⁇ and ⁇ are real numbers of p or less, and if ⁇ a is expressed as an integer, they are real numbers of q or less.
  • ⁇ and a are integers, limiting the combination of ⁇ and a by preventing the random number ⁇ from being an integer equal to or less than q, but if ⁇ and a are real numbers, ⁇ and a are less than p, By making ⁇ a less than or equal to q, both secret sharing and real number calculation are made compatible. Therefore, it can be said that it is safe to disclose ⁇ a and ⁇ b.
  • This feature is indicated in claim 15.
  • the value representing the decimal point position is also secretly distributed and the decimal point position of the calculation result is adjusted. For example, when the decimal point position is fixed to a certain value, the distributed value representing the decimal point position and the secret calculation can be omitted. For example, if all parameters are defined as real numbers with the second decimal place, it is clear that the decimal point position of ⁇ is 2k and the decimal point position of ⁇ ab is 4 in the above algorithm.
  • the concealment multiplication can be realized by the concealment multiplication 1 regardless of an integer or a real number.
  • concealment division cannot be realized only by making concealment multiplication 1 correspond to division (concealment division 1). Therefore, the secret multiplication 3 is for making the secret multiplication and the secret division the same form (corresponding to the secret division 3). The feature will be described in the second embodiment. The same applies to the following embodiments.
  • a certain server 14x d for example, the CPU 22 of the predetermined first server 14x1, executes the restoration / transmission processing of ⁇ a shown in FIG. 7 (see also FIG. 8). Specifically, k Wa ′ (x i ) are collected (step 62), ⁇ a is restored (step 64), and ⁇ a is distributed to other servers (step 66).
  • step 136 the quotient ⁇ j / ⁇ j is calculated, and in step 138 (see also FIG. 30), Wab ′ (x j ) and ⁇ j / ⁇ j are transmitted to the restoration device 16.
  • Wab ′ (x j ) and ⁇ j / ⁇ j are transmitted to the restoration device 16.
  • the second aspect is the same as the second aspect, but specifically, the method of “synthesize the restored first partial random number and the second partial random number” is different. That is, ⁇ j ⁇ j is synthesized from ⁇ j and ⁇ j in the secret multiplication, but ⁇ j / ⁇ j is synthesized in the secret division.
  • Claim 3 is also the same, but the specific calculation to be performed is different.
  • Claim 4 is also the same, but specifically, the random numbers to be combined are different.
  • each server calculates ⁇ j / ⁇ j in step 136 and sends it to the restoration device in step 138, but calculates ⁇ j / ⁇ j in step 136 and sends it to the restoration device in step 138.
  • the restoration device may synthesize ⁇ / ⁇ from ⁇ j / ⁇ j , and in step 146, ⁇ / ⁇ may be multiplied by ⁇ b / ⁇ a to obtain b / a.
  • the first sub - CPU 22 of server 14x 1 executes the decompression distributed processing of ⁇ c shown in FIG. 16 described above. That is, k pieces of Wc ′ (x j ) are collected (step 102), ⁇ c is restored (step 104), and ⁇ c is transmitted to another server (step 106) (see also FIG. 17).
  • step 156 (see also FIG. 35), ⁇ j / ⁇ j ⁇ j is calculated, and in step 158, Wabc ′ (x j ) and ⁇ j / ⁇ j ⁇ j are transmitted to the restoration device 16.
  • each data shown in FIG. 35 is transmitted to the restoration device 16.
  • the CPU 22 of the restoration device 16 executes the multiplication result acquisition process of FIG. That is, at step 162 (see also FIG. 37), ( ⁇ / ⁇ ) (b / ac) is restored from k Wabc ′ (x j ), and at step 164 (see also FIG. 37), ⁇ / ⁇ is restored. In step 166 (see also FIG. 37), ( ⁇ / ⁇ ) (b / ac) is divided by ⁇ / ⁇ to obtain b / ac. It is clear that the same extension is possible in the case of continuous combination of concealment division and multiplication.
  • the random number ⁇ i is expressed as a real number having a predetermined decimal point position.
  • the CPU 22 of the first dealer 12A calculates the following variance value at step 44 in FIG.
  • a and ⁇ are real numbers with a fixed decimal point position that can be expressed by integers less than or equal to p
  • ⁇ a is calculated as a real number
  • ⁇ a is expressed as an integer
  • the following variance is modulo prime number q. calculate.
  • Wa ′ (x i ) ⁇ (a + a 0,1 x i +...
  • x i difference - server ID (i 1, ..., n )
  • step 46 of FIG. 3 the data is transmitted to the first server 14x 1 to the nth server 14x n .
  • ⁇ i be represented as a real number with a fixed decimal point position.
  • the following variance values are calculated. In this case, if b and ⁇ are expressed as integers, they are real numbers having a predetermined decimal point position that can be expressed by an integer less than or equal to p.
  • Wb ′ (x i ) ⁇ (b + b 0,1 x i +... + B 0, k ⁇ 1 x i k ⁇ 1 )
  • Wb1 (x i ) ⁇ 1 + b 1,1 x i +... + B 1, k ⁇ 1 x i k ⁇ 1 :
  • Wbk (x i ) ⁇ k + b k, 1 x i +...
  • step 56 the data is transmitted to the first server 14x 1 to the n-th server 14x n .
  • the servers participating in the restoration for example, the CPUs 22 of the first server 14x 1 to the k-th server 14x k determined in advance execute the restoration / transmission process of ⁇ j / ⁇ j in FIG. . That is, in step 172 (see also FIG. 39), Wa j (x j ) and Wb j (x j ) corresponding to the designated j are collected, and in step 174 (see also FIG. 39), ⁇ j and ⁇ j Are restored one by one using the prime number q as the modulus. In step 176 (see also FIG.
  • a real number q is calculated from ⁇ j / ⁇ j using realized ⁇ j and ⁇ j , and the calculated ⁇ j / ⁇ j is calculated in step 178 (see also FIG. 39).
  • the data is transmitted to the restoration device 16.
  • the CPU 22 of the first server x 1 collects k Wa ′ (x i ) and restores ⁇ a modulo the prime number q in step 192 of FIG. 41A (see also FIG. 41B). To do.
  • step 94 k Wb ′ (x i ) are collected and ⁇ b is restored using the prime number q as the modulus.
  • step 196 ⁇ b / ⁇ a is calculated as a real number, and in step 198, ⁇ b / ⁇ a is transmitted to the restoration device 16.
  • the restoration device 16 receives ⁇ b / ⁇ a in step 186 in FIG. 40, and in step 188 divides ⁇ b / ⁇ a by ⁇ / ⁇ to obtain b / a.
  • secrecy division 3 The characteristics of secrecy division 3 (corresponding to real numbers) are as follows.
  • secret multiplication 1 or secret division 1 the random number ⁇ that acts on the secret information a (an integer less than or equal to p) is an integer that is less than or equal to q (a prime number greater than p 2 ) that performs the modulo operation. Therefore, ⁇ a which is the confidential information is different from the actual value. However, as a result, the confidential information ⁇ a is randomized and becomes secure. Thereafter, ⁇ ab is calculated by multiplication, but this value is also different from the actual value. When deleting a random number, ⁇ ab is divided by ⁇ j ⁇ j, but the value of ⁇ j ⁇ j is also a legal operation and is different from the actual value.
  • ⁇ b / ⁇ a is directly calculated using ⁇ a and ⁇ b whose restored dispersion values are restored, since the restored ⁇ b and ⁇ a are different from the actual values, they are not correct b / a.
  • ⁇ a is always a value equal to or less than q, and thus becomes an actual value.
  • prime factorization is used in this case, ⁇ and a constituting ⁇ a are narrowed down, which is not safe.
  • the concealment multiplication 3 is adapted to support multiplication using the same variance value when concealment division 3 is performed.
  • the CPU 22 of the first server 14x1 calculates ⁇ b / ( ⁇ a ⁇ c) using ⁇ a, ⁇ b, and ⁇ c as real numbers, and the restoring device 16 Send to.
  • the CPU 22 of the terminal device 16 obtains b / ac by dividing ⁇ b / ( ⁇ a ⁇ c) by ⁇ / ⁇ in step 188 of FIG.
  • c and values related thereto are also converted into integers and distributed as real numbers similar to a and b.
  • both the concealment division 2 and the real continuous division are possible as well.
  • the secret division can be performed by the same processing as the secret multiplication, and the basic calculation and the repetition calculation can be performed, and all the real numbers can be handled.
  • the server xd in [restoration] cannot obtain information on the secret information a and b and the calculation result b / a, any server can be used.
  • the restoration device 16 cooperates with the confidential calculation in [multiply-sum]. However, the restoration device 16 does not know anything about confidential information and intermediate results like the first server 14x1 of the second embodiment. No information is available.
  • the secret product sum 1 (basic form) is executed by distribution, product sum, and restoration.
  • Wa ′ (x i ) ⁇ (a + a 0,1 x i +... + A 0, k ⁇ 1 x i k ⁇ 1 )
  • Wb ′ (x i ) ⁇ (b + b 0,1 x i +...
  • Wbk (x i ) ⁇ k + b k, 1 x i +... + B k, k ⁇ 1 x i k ⁇ 1
  • Wc1 (x i ) ⁇ 1 + c 1,1 x i +... + C 1, k ⁇ 1 x i k ⁇ 1 :
  • Wck (x i ) ⁇ k + c k, 1 x i +... + C k, k ⁇ 1 x i k ⁇ 1
  • the first sub - server 14x 1 executes the decompression distributed processing ⁇ a in FIG.
  • the first server 14x 1 to the k-th server 14x k execute the multiplication process of FIG. Therefore, the first server 14x 1 to the k-th server 14x k obtain the following Wab ′ (x j ) (see FIG. 9B).
  • Wab ′ (x j ) ⁇ a (b + ab 0,1 x i +... + Ab 0, k ⁇ 1 x i k ⁇ 1 )
  • step 204 a random number ⁇ j is generated, ⁇ j ⁇ j / ⁇ j and ⁇ j / ⁇ j are calculated, and in step 206, ⁇ j ⁇ j / ⁇ j and ⁇ j / ⁇ j are transmitted to the restoration device 16.
  • the CPU 22 of the restoration device 16 executes the restoration process of FIG. That is, ⁇ j ⁇ j / ⁇ j and ⁇ j / ⁇ j are received at step 222, and ⁇ / ⁇ and ⁇ / ⁇ are calculated by multiplying ⁇ j ⁇ j / ⁇ j and ⁇ j / ⁇ j at step 224.
  • ⁇ / ⁇ and ⁇ / ⁇ are transmitted to each server, that is, the first server 14x 1 to the kth server 14x k .
  • Wabc ′ (x j ) is transmitted to the restoration device 16, and in step 216, ⁇ j is transmitted to the restoration device 16.
  • the CPU 22 of the restoring device 16 receives Wabc ′ (x j ) from the first server 14x 1 to the kth server 14x k at step 228 in FIG. 43, and at step 230 ⁇ (ab + c) ).
  • ⁇ j is not generated
  • ⁇ j ⁇ j / ⁇ j is calculated in step 204 of FIG. 42 and transmitted in 205
  • the restoring device 16 returns it in step 222 of FIG.
  • Wab ′ (xi) by ⁇ / ⁇ at 210
  • Wc By multiplying (xi) by ⁇ / ⁇ , the random numbers related to the two dispersion values can be matched with ⁇ or ⁇ instead of ⁇ .
  • the sum of a + c can be calculated if the processing related to b is omitted without executing the above-described [ ⁇ - ⁇ restoration / distribution processing of FIG. 7] and multiplication processing of FIG. Further, the product of ab can be calculated if the processing related to c is not performed in the product-sum processing of FIG. Furthermore, if the processing is repeated with Wabc ′ (x j ) obtained in step 212 of FIG. 42 in [Product sum] as Wa ′ (x i ), the secret calculation of (ab + c) b + c is performed by Wabc ′ (x j ). It can be seen that a secret calculation of ab + ab + c can be realized by repeating the processing with Wc ′ (x i ).
  • Wabc ′ (x j ) is set to Wa ′ (x i )
  • Wb ′ (x j ) is set to Wd ′ (x i )
  • Wc ′ (x j ) is set to We ′ (x i ).
  • (Ab + c) d + e is obtained, and it can be seen that various operations can be realized. Furthermore, if the processing related to a and c in the secret product sum 1 is omitted, the random number ⁇ applied to Wb ′ (x i ) can be changed to ⁇ .
  • ⁇ j can be made disposable, but if server j secretly distributes ⁇ j and stores the distributed value in all servers, it can be used when necessary. Further, it is clear that even if the parameter is a real number, it is possible to cope with the continuation of calculation from the embodiments so far.
  • random numbers such as ⁇ , ⁇ , and ⁇ independently set by owners A, B, and C use ⁇ j, ⁇ j, and ⁇ j, or newly use ⁇ j and the like. To convert it into a convenient form for the next secret operation.
  • the concealment multiplication shown in the first embodiment is concealed by applying a random number to the secret information, and the concealment operation without changing the threshold value k is made possible by restoring the concealment information once.
  • the problem of the first embodiment is that, when the secret information is 0, once the concealment secret information is restored, the value becomes 0 and it can be seen that the secret information is 0 (confidential Because the random number used for conversion is not 0).
  • this property is effective because it can be seen that division cannot be performed when the concealment secret information once restored is 0.
  • the CPU 22 of the first dealer 12A calculates the following distribution value (step 44) and distributes it to n servers (step 46).
  • Wa (x i ) a + a 0,1 x i +... + A 0, k ⁇ 1 x i k ⁇ 1
  • Wa ′ (x i ) ⁇ (a + a 0,1 (n + x i ) +... + A 0, k ⁇ 1 (n + x i ) k ⁇ 1 )
  • Wa1 (x i ) ⁇ 1 + a 1,1 x i +... + A 1, k ⁇ 1 x i k ⁇ 1 :
  • Wak (x i ) ⁇ k + a k, 1 x i +...
  • the CPU 22 of the second dealer 12B executes the distribution process shown in FIG. 5, calculates the following distribution value (step 54), and distributes it to n servers (step 56).
  • Wb (x i ) b + b 0,1 x i +... + B 0, k ⁇ 1 x i k ⁇ 1
  • Wb ′ (x i ) ⁇ (b + b 0,1 (n + x i ) +... + B 0, k ⁇ 1 (n + x i ) k ⁇ 1 )
  • Wb 1 (x i ) ⁇ 1 + b 1,1 x i +...
  • Wbk (x i ) ⁇ k + b k, 1 x i +... + B k, k ⁇ 1 x i k ⁇ 1
  • x i difference - server ID (i 1, ..., n)
  • the servers participating in the restoration for example, the CPUs 22 of the first server 14x 1 to the k-th server 14x k determined in advance, execute the restoration process of ⁇ j ⁇ j in FIG. That is, in step 244, Wa j (x i ) and Wb j (x i ) corresponding to the designated j are collected, and in step 246, ⁇ j and ⁇ j are restored one by one.
  • step 248 ⁇ j ⁇ j is calculated, and in step 250, Wab (x j ), Wab ′ (x j ), and ⁇ j ⁇ j are transmitted to the restoration device 16.
  • step 256 the CPU 22 of the restoration device 16 restores ab using 2k ⁇ 1 variance values from Wab (x j ) and Wab ′ (x j ) / ⁇ .
  • each of the k servers restores different secret information one by one, and each server has If it is safe (impossible to eavesdrop), the attacker cannot directly know ⁇ and ⁇ , so the attacker cannot obtain secret information and is safe. Therefore, claim 2 is also a feature not found in the conventional method.
  • the concealment multiplication 4 is a multiplication of the variance values, so that an order change occurs.
  • step 264 the following variance value is calculated.
  • the dispersion values for the n + x i is service - are sent to the bar - bar 14x i Sa.
  • each server 14x i has a variance value for x i and n + x i .
  • Wa (x i ) r (a + a 0,1 x i +... + A 0, k ⁇ 1 x i k ⁇ 1 )
  • Wa ′ (x i ) r ⁇ (a + a 0,1 (n + x i ) +... + A 0, k ⁇ 1 (n + x i ) k ⁇ 1 )
  • Wa 1 (x i ) ⁇ 1 + a 1,1 x i +...
  • Wa k (x i ) ⁇ k + a k, 1 x i +... + A k, k ⁇ 1 x i k ⁇ 1
  • Wr 1 (x i ) r 1 + ak + 1,1 x i +... + A k + 1 , k ⁇ 1x i k ⁇ 1 :
  • Wr k (x i ) rk + a2 k, 1 x i +...
  • step 266 the dispersion value is transmitted to the first server 14x 1 to the n-th server 14x n .
  • step 274 the following variance value is calculated.
  • Wb (x i ) q (b + b 0,1 x i +... + B 0, k ⁇ 1 x i k ⁇ 1 )
  • Wb ′ (x i ) q ⁇ (b + b 0,1 (n + x i ) +... + B 0, k ⁇ 1 (n + x i ) k ⁇ 1 )
  • Wb 1 (x i ) ⁇ 1 + b 1,1 x i +... + B 1, k ⁇ 1 x i k ⁇ 1 :
  • Wb k (x i ) ⁇ k + b k, 1 x i +...
  • step 276 the distributed value is distributed to the first server 14x 1 to the n-th server 14x n .
  • the CPU 22 of the restoration device 16 executes the calculation transmission process of ⁇ in FIG. That is, in step 322, ⁇ j ⁇ j is received from the first server 14x 1 to the n th server 14x n , and in step 324, ⁇ is calculated by multiplying all ⁇ j ⁇ j , In step 326, ⁇ is transmitted to the first server 14x 1 to the nth server 14x n .
  • Rj, j a xj, j Wab (x j ) + a n + xj, j Wab obtained by multiplying Wab (x j ) and Wab (x j + n) by a xj, j and a xj + n, j.
  • R j, j + n a xj, j + n Wab (x j ) + an + xj, j + n Wab (n + x j ) obtained by multiplying (n + x j ) by a xj, j + n and a n + xj, j + n is calculated.
  • step 306 two values R ′ j, j and R ′ j, j + n that have traveled all the servers are received.
  • step 308 R ′ j, j and R ′ j, j + n are converted into r 1j.
  • r 2j are subtracted, and R ′ j, j and R ′ j, j + n are transmitted to the next server 14 x (i + 1) in the predetermined order in step 310.
  • step 312 the two values R ′ j ⁇ h, j ⁇ h and R ′ j ⁇ h, j + n ⁇ h sent from the previous server 14x (j ⁇ 1) are received, and in step 314, R 'j-h, j- h and R' j-h, pulling respectively r 1j and r 2j from j + n-h, at step 316, R 'j-h, j-h and R' j-h, j + n ⁇ h is transmitted to the next server 14x (i + 1) .
  • step 318 all sub - two that have around the bus values R 'j, j and R' j, receives the j + n, in step 320, R 'j, j and R' j, j + n of R 'j , j + n is multiplied by ⁇ , and each is stored as R j , R j + n .
  • step 336 the product r j q j is calculated, and in step 338, R j and r j q j are transmitted to the restoration device 16.
  • step 348 ab is restored using k ⁇ 1 pieces from Wab (x j ).
  • a feature of [Distribution] of the present invention is that, in order to conceal secret information a and b to the end, random numbers r and q that are concealed to the end are multiplied by a and b (included in claim 1).
  • Wab (x i ) and Wab ′ (n + x i ) are always associated with a common random number rq, and ⁇ is known to be calculated by the restoration device 16 in step 324 of FIG. 51 of [Order Transformation]. It is not known to the restoration device 16 until the end. Therefore, even if an attacker or a restorer obtains Rj, Rj + n as intermediate results, ab as an intermediate result does not leak.
  • ⁇ and ⁇ can be used instead of r and q by multiplying Wab (x j ) by ⁇ in step 292 of FIG. 50 instead of dividing Wab ′ (x j ) by ⁇ .
  • the first feature in [order conversion] is that one server has two variance values having different shapes, so that steps 282 to 288 in FIG. 50 of [order conversion] and step 322 in FIG. In step 324, random number conversion is performed to make the random numbers related to the distributed values the same (included in claim 5).
  • is deleted, but rq is always applied.
  • step 320 of FIG. 50 of [Order conversion] each server is multiplied by ⁇ , but another random number may be multiplied.
  • the second feature is that rq is finally known to the restorer (rq is known, but r and q are not known individually, so secret information a and b are not leaked).
  • the restoration device 16 may know the value obtained by removing the random number rq from Wab (x i ) and Wab ′ (n + x i ). Therefore, in order to hide Wab and (x i) Wab 'a (x i + n), the random number r 1j in Wab (x i), summing a random number r 2j in Wab (x i + n), the original Wab ( x i ) and Wab (x i + n) are not understood, and the server is turned.
  • ⁇ r1j is added to the values R ′ j, j that have traveled through all the servers obtained in step 306 of FIG. 50 of [order conversion], and ⁇ r2j is added to R ′ j, j + n .
  • [order conversion] step 312 to step 316 in FIG. 50 ⁇ r1j and ⁇ r2j can be removed and normal Ri can be obtained.
  • the second server visit is unnecessary. Further, it may be transmitted to the restoring person without going around the server, and the restoring person performs addition and sends the result back to each server.
  • addition / subtraction may be added to Wa (x i ) and Wb (x i ) as is.
  • Wb' ⁇ a is not equal 0 Wb (x i) / ⁇ a
  • restoration apparatus ⁇ j / ⁇ j each server to restore the alpha j and beta j To obtain ⁇ / ⁇ , and if it is applied to Wb '(xi) / ⁇ a, a dispersion value having b / a in the constant term is completed.
  • Wb (x i ) is also divided by ⁇ a and ⁇ / ⁇ is written, a variance value having b / a in the constant term and 1 / ⁇ as a random number is obtained.
  • Each CPU 22 of the (k ⁇ 1) th server 14x 1 to the (k ⁇ 1) th server 14x (k ⁇ 1) other than the kth server 14x k is represented by U i in FIG.
  • the calculation / transmission process is executed. That is, the server 14xi is to have the following Wa 'as the current dispersion value (x j).
  • a random number Wa′i is generated as the following new variance value.
  • Wa′i ⁇ (a + a 1 ′ x i + a 2 ′ x i 2 +... + A k ⁇ 1 ′ x i k ⁇ 1 )
  • step 358 the difference U i 'between the previous variance value Wa' (x i ) and the newly generated Wa'i is calculated as follows.
  • step 360 the difference U i 'is transmitted to the kth server 14xk.
  • the difference Uj is received at step 362, and k-1 polynomials are solved at step 364, and ⁇ (a 1 ⁇ a 1 ′), ⁇ (a 2 ⁇ a 2 ′),.
  • (A k-1 -a k-1 ') is obtained, and in step 366, the following difference values for the remaining nk servers are obtained.
  • step 368 the difference value Wj ′ is transmitted to the (k + 1) -th server 14x (k + 1) to the n-th server 14x n .
  • the (k + 1) -th server 14x (k + 1) to the n-th server 14n execute the new dispersion value storage process of FIG. That is, in step 370, Wj ′ is received, and in step 372, Wj ′ is added to the previously provided variance value to obtain a new variance value.
  • the conventional method shown in the document [3] is an update method for a normal distributed value without the random number ⁇ , but there are the following differences.
  • the first server 14x 1 to the (k ⁇ 1) th server 14x (k ⁇ 1) are the remaining (k + 1) th servers.
  • Ba 14x (k + 1) ⁇ n-th sub - sends the difference to server 14x n, the difference in the corresponding processing to the processing of step 364 and step 366 in FIG. 55 the (k + 1) - server 14x (k + 1) ⁇ the n Sa - updating the dispersion value by server 14x n is performed.
  • K-th sub do it against the secret update 1 process - specifies the server 14x k to one of the k sub - communication because only bus 14x k performs the processing of step 358 and step 360 in FIG. 54 It also has the feature that the amount and amount of calculation can be reduced.
  • Document [3] requires (k ⁇ 1) (n ⁇ k + 1) communication because k ⁇ 1 servers send difference values to n ⁇ k + 1 servers, and there are n ⁇ k + 1 units. (N ⁇ k + 1) polynomial processing is necessary to perform the processing corresponding to the processing in step 358 and step 360 in FIG. On the other hand, in the present invention, only the k-th server 14xk performs the processing of step 358 and step 360 in FIG. 54 and sends the result to the nk server. -1) communication, (nk) communication occurs in step 370, and a total of n + 1 communication is sufficient. In the present invention, the calculation needs only one polynomial process.
  • the method of document [3] makes no mention of a method for selecting nk + 1 servers for restoration processing. However, if nk + 1 servers are fixed, an attacker can make n- If one of the k + 1 servers continues to be wiretapped, the updated value will always leak. In order to prevent the leakage, a server for performing the restoration process is randomly selected. Assuming that the server that the attacker is eavesdropping on is the o-th server 14x i x o , if another k- th server 14x k is designated, the attacker at that point in time will be the other server 14x i x o .
  • Server 14x j of the j i.e., the first sub - server 14x 1 ⁇ n-th sub - each CPU22 Bas 14x n performs the updating process in FIG. 58. That is, in step 392, ⁇ i (x i ) is received, and in step 394, all values are added to the variance value Wa ′ (x i ) with respect to the threshold value k held by itself, and the following is calculated.
  • Wa ′ (x i ) is stored as a new variance value.
  • the feature of the proposed method is to construct ⁇ i (x) by constructing a u ⁇ 1 degree polynomial for u instead of k. Since the proposed method does not perform the polynomial processing in Step 364 of [Secret Update Method 1] in FIG. 55, the processing is simple and no matter which server is eavesdropped, the eavesdropping of one server is the same. -It has the safety that the updated values other than the bar are not known.
  • Concealment Update 1 only the polynomial was changed without changing the random number for the distributed value.
  • the random number related to the variance value is changed and updated.
  • the secret updates 1 and 2 the secret information itself is not changed, so there is no information that the server obtains by this update.
  • the server obtains information on how many times the secret information has been multiplied.
  • an updater collects and updates the distributed values from the server, and shows a method of updating without knowing how many times the secret information has been multiplied by the server.
  • Wa ′ (x i ) is transmitted to each server, that is, the first server 14x 1 to the n-th server 14x n .
  • the first server 14x 1 to the n-th server 14x n store the received Wa ′ (x i ) as a new dispersion value.
  • W (x i ) is multiplied by ⁇ , but by adding ⁇ (x i ), W ′ (x i ) / W (x i ) does not become ⁇ , that is, how many times The server is not sure.
  • ⁇ (x i ) is a random number that cannot be solved unless k ⁇ 1 are collected, but since the server does not know ⁇ , the integrated W ′ (x i ) only knows ⁇ s even if k pieces are collected. It is. This feature is shown in claim 18.
  • the constant term is always set to 0. Therefore, even if a k-1 degree polynomial is used, the polynomial used for the update can be solved if there are k-1 variance values. That is, there is a problem with safety. Therefore, by updating as follows, it is possible to prevent the value used for updating from being known unless k variance values are present.
  • the server of x1 randomly selects a server ID xj2 other than x1, the selected server of xj2 randomly selects the server ID xj3, and the server selected before becoming the k-1th server. May not be a server that has already selected the second ID. This is because a server that has already selected the second ID cannot select a new second ID, and will close there. Information on each ID is made public.
  • step 383 values ⁇ i (x 1 ), ⁇ i (x 2 ),..., ⁇ i (x n ) including the first IDs of all the servers are formed.
  • step 401 the following is calculated by adding all received ⁇ j (x i ) to the variance value Wa ′ (x i ) that the user has, and storing it as a new variance value.
  • step 403 all received ⁇ j (x i ′) are added and the following is calculated and stored.
  • the CPU 22 of the restoration device 16 executes the restoration process of FIG. That is, in step 411, Wa ′ (x i ) is collected from k servers and solved to calculate (a + ⁇ d i0 ). In step 413, ⁇ (xi ′) is collected from k servers and solved to calculate ( ⁇ d i0 ). In step 415, secret information a is calculated by subtracting ( ⁇ d i0 ) from (a + ⁇ d i0 ).
  • This update method can handle expansion of k if k is u (> k).
  • [Restore] can also be as follows.
  • Each server transmits ⁇ i (x j ′) to the server x j ′.
  • Each server calculates Wa ′ (x i ) + ⁇ (x i ) and transmits it to the restoration device 16.
  • the restoration device 16 collects Wa ′ (x i ) + ⁇ (x i ) from k servers, solves it, and calculates a.
  • the 2ID the x i + c with respect to x i may be a.
  • the method corresponding to the secret update method 1 is shown below.
  • each server has a first ID and a second ID as in the case of the secret update 4.
  • the server ID indicates the first ID unless otherwise specified.
  • the first server 14x1 to the nth server 14xn one server that performs the restoration process is selected at random.
  • the selected server, and the server 14x d of the d For example, it is assumed that the (k + 1) th server 14x (k + 1) .
  • k stand servers to simplify the description will be other than the server 14x d of the d.
  • K stand server other than the server 14x d of the d, for example, the server 14x k of first server 14x 1 ⁇ k th, in step 421, generates a random number Wa 'i.
  • the first server 14x 1 to the k-th server 14x k calculate the difference Ui ′ between the variance value Wa ′ (x i ) that they already have and the newly generated Wa ′ i .
  • Wa '(x i ) ⁇ (a + a 1 xi + a 2 xi 2 + ...
  • Wa ' i ⁇ (a' + a 1 'xi + a 2 ' xi 2 + ... + a k-1 'xi k-1 )
  • Wa ' i ⁇ (a' + a 1 'xi + a 2 ' xi 2 + ... + a k-1 'xi k-1 )
  • step 425 the first server 14x 1 to the k-th server 14x k transmit the difference U i ′ to the d-th server 14x d .
  • Server 14x d of the d is, at step 427, to solve the k-number of polynomial, ⁇ (a-a ') , ⁇ (a 1 -a 1'), ⁇ , ⁇ (a k-1 -a k -1 ') is obtained, remaining n- (k + 1) stage of the server 14x j, for example, the (k + 2) of the server 14x (k + 2) ⁇ and the server 14x n of the n, of the d own server 14x
  • the following difference value W j ′ with respect to d is calculated.
  • Server 14x j is sent Wj by adding a 'and already got to have the dispersion value Wa' (x i) as a new variance value Wa '(x i).
  • Server 14x d of the d is, at step 433, distributed as follows ⁇ a (a 1 -a 1 ').
  • Wd '(xi') ⁇ (a-a ') + d 1 xi' + d 2 xi ' 2 + ... + d k-1 xi' k-1
  • the server 14x d of the d is its Wa '(x k + 1' ), is stored in its own storage device 34.
  • k servers designated by the restoration device 16 transmit Wd ′ (xi) + Wa ′ (xi) to the restoration device 16 in step 443. To do. Then, the restoration device 16 receives Wa ′ (xi) + Wd ′ (xi) from k servers and solves to calculate ⁇ a.
  • the secret updates 4 and 5 are characterized in that the update information ⁇ j (xi) or Wj ′ of the variance value is calculated from k pieces of correction information ⁇ j (xi) or Uj ′ whose constant term is not 0. -Update information cannot be obtained even if one device is wiretapped. Such an approach has not been proposed so far, and this feature is indicated in claim 11.
  • a secret search will be described.
  • the owner who has the secret information distributes the search ID corresponding to the secret information and stores it in the server system together with the distributed value of the secret information.
  • the search IDs corresponding to are distributed and searches are performed with distributed values.
  • Confidential search 1 basic form: the search server 18 is not used
  • m pieces of secret information distributed as described above by the dispersion of any of the first to fifth embodiments described above
  • the CPU 22 of the first dealer device 12A executes the distributed processing of FIG.
  • step 412 a random number rj for each search ID is generated, and in step 414, the following distributed values F j (x i ) and R j (x i ) are calculated.
  • R j (x i) r j + r j1 x i + r j2 x i 2 + ... + r jk-1 x i k-1
  • the variance value for the secret information corresponding to the search ID is also stored along with Fj (xi) and Rj (xi).
  • the first dealer apparatus 12A executes the calculation / transmission processing of the variance value F j (x i ) in FIG. That is, in step 452, q ⁇ kj ′ is received, and in step 454, a variance value F j ′ (x i ) for secretly sharing q ⁇ k j ′ as follows is calculated.
  • step 456 the variance value F j ′ (x i ) is transmitted to the i-th server 14x i .
  • Each CPU 22 of the i -th server 14x i that is, the first server 14x i to the k-th server 14x k executes the calculation / transmission processing of the difference tj in FIG. That is, in step 462, the variance value Fj ′ (x i ) is received, and in step 464, the search ID j is set.
  • step 464 j is set to m / 2.
  • step 430 the variance value F j (x i ) is transmitted to the i th server 14x i . Accordingly, the i-th server 14x i receives the variance value F j (x i ) in step 470 of FIG. In step 472, r j is restored from the k variance values R j (x i ). In step 474, a random number tj is generated, and the following difference t j ⁇ F j (x i ) ⁇ r j F j ′ (x i ) ⁇ is calculated.
  • step 476 the difference t j ⁇ F j (x i ) ⁇ r j F j ′ (x i ) ⁇ is transmitted to the restoration device 16.
  • the restoration device 16 receives the difference t j ⁇ F j (x i ) ⁇ r j F j ′ (x i ) ⁇ in step 432 of FIG. 64, and in step 434, the difference t j ⁇ F j (x i ) ⁇ r j F j ′ (x i ) ⁇ is solved to obtain a constant term, and it is determined in step 436 whether or not the constant term r j ⁇ q (k j ⁇ k j ′ ) is zero. If it is determined that the constant term r j ⁇ q (k j ⁇ k j ′ ) is 0, the search IDs match and the search ID is set to the current j in step 438.
  • step 424 to 436 If it is determined that the constant term r j ⁇ q (k j ⁇ k j ′ ) is not 0, whether or not the present process (steps 424 to 436) has been executed a predetermined number of times, for example, log 2 m times in step 440. Judging. If it is determined that this process (steps 424 to 436) has been executed log 2 m times, it is determined in step 442 that there is no search ID.
  • step 444 it is determined in step 444 whether or not the constant term r j ⁇ q (k j ⁇ k j ′ ) is positive. . If it is determined that the constant term r j ⁇ q (k j ⁇ k j ′ ) is positive, in step 446, j is set to a value smaller than j, and the i th server 14xi is instructed. For example, the search area of the search ID is set as an area smaller than j, the median value of the set search area is set to j, and the set j is instructed to the i-th server 14xi. Thereafter, the search process returns to step 424.
  • step 448 j is set to a value larger than the j and the i th server 14xi is instructed.
  • the search area of the search ID is set as an area larger than j
  • the median of the set search area is set to j
  • the set j is instructed to the i-th server 14xi. Thereafter, the search process returns to step 424.
  • the search area of the search ID is smaller than j in step 442.
  • the area is set as 1 to (m / 2) -1, and the median value of the set search area is set to 3m / 4.
  • step 464 of FIG. 66 the instructed value is set as j of the search ID. Subsequent processing (steps 466 to 476) is executed based on the set j.
  • the first feature is [Distribution].
  • the second feature is that in [search], the owner obtains q ⁇ kj ′ from the user, but since the random number q is applied, the user's search ID kj ′ is not known. Further, the user obtains Fj (x i ) from the server, but since rj is applied, kj which is the server search ID is not known. In addition, the user also obtains t j ⁇ F j (x i ) ⁇ r j F j ′ (x i ) ⁇ , but r j cannot be obtained because it is unknown except for F j (x i ). Also, the server obtains F j (x i ), F j ′ (x i ), and r j , but the secret information is not restored unless k pieces are collated.
  • the dispersion values are arranged in ascending order of k j , but they may be arranged in descending order and the direction of [Search] may be reversed.
  • the owner disperses q ⁇ kj ′, but the user may disperse.
  • Secret search 1 is simple, but both owners and users participate in the search every time. Therefore, it is necessary to perform a maximum of log 2m operations for a search for one k j ′, and the maximum burden is large. . Therefore, the following shows a method in which a search unit specializing in search (high calculation capability) is provided, and only one operation is performed for one search ID for both the owner and the user.
  • the search unit may be a separate device from the dealer device, the server system, and the restoration device, but may be present in the server system.
  • the owner's first dealer apparatus 12A corresponds to m pieces of secret information (distributed as described above by the distribution of any of the first to fifth embodiments described above).
  • the first server 14x 1 storage device 34 as shown in FIG. 63 (B), the variance F j (x i), R j (x i) is stored. Furthermore, the variance value for the secret information corresponding to the search ID is also stored along with Fj (xi) and Rj (xi).
  • the CPU 22 of the restoration device 16 executes the calculation / transmission processing of the variance value Fu (x i ) in FIG. That is, in step 482, according to the operation of the user who desires the search, the search ID k j ′ is input, and in step 484, the search ID k j ′ is multiplied by the random number q q ⁇ k j ′. Is transmitted to the first dealer 12A.
  • the CPU 22 of the first dealer 12A executes the calculation / transmission processing of the variance value Fo (x i ) in FIG. That is, in step 502, q ⁇ k j ′ is received.
  • step 504 tj is generated, t j ⁇ r is calculated in step 506, and t j ⁇ r is transmitted to the restoration device 16 in step 508. Thereby, the restoring device 16 receives t j ⁇ r in step 486 of FIG.
  • the first dealer 12A calculates the following variance value Fo (x i ) in step 510 of FIG.
  • step 512 the first dealer apparatus 12A transmits the variance value F o (x i ) to each server (14x 1 to 14x n ).
  • Each server executes the difference calculation / transmission process of FIG. That is, in step 522, the variance value Fo (x i ) is received.
  • the restoration device 16 calculates the following variance value F u (x i ) in step 488 of FIG.
  • step 490 the variance value F u (x i ) is transmitted to each server. Thereby, each server receives the variance value F u (x i ) in step 524 of FIG.
  • each server transmits R j (x i ), T j (x i ) to the search server 18.
  • the CPU 22 of the search server 18 executes the search process of FIG. That is, in step 542, each server transmits and collects R j (x i ) and T j (x i ) k.
  • step 544 r ⁇ r j and r j ⁇ k j are restored, and step 546 To each server.
  • each server receives r ⁇ r j and r j ⁇ k j in step 526 of FIG.
  • step 530 the difference is transmitted to the search server 18. Thereby, the search server 18 receives the difference in step 548 of FIG.
  • step 550 the search server 18 solves the difference polynomial, obtains a constant term, and executes steps 552 to 564. Steps 552 to 564 are the same as steps 436 to 448 in FIG.
  • step 532 in FIGS. 68 and 67 is affirmative, and the processing in steps 525 to 532 is executed. Search processing is executed.
  • the user In order to finish the user's processing at once, the user generates a random number q, conceals his / her search ID kj and shows it to the owner, and the random number tj ⁇ r related to the search ID sent from the owner Is multiplied by a random number q determined by me.
  • This feature is shown in claim 8.
  • the owner When the first owner or a different owner adds a search ID, the owner is used as a user, and the additional ID is searched as the user's search ID. If there is a matching ID, the user changes the search ID.
  • the adjacent ID at the final position (if the additional ID is not in the search ID, it will not match until the end, but the search result of the adjacent ID will be reversed at the final position, and the additional ID should be in the middle position.
  • Add the dispersion value of the additional ID to the intermediate position is sufficient when the first owner adds, but when different owners add data, even if the data is arranged in ascending order, the order of the owners will be different, so the owner's permission will be granted for each search. Necessary. Therefore, in this case, it becomes efficient if the owner indicates the conditions of the user who permits the search to the system and entrusts the search permission to the system. The above characteristics are shown in claim 17.
  • Tj (x i ) in the confidential search is an expression in the same format as Wa ′ (x i ) of the confidential calculation.
  • each server since the distributed value Rj (x) with respect to r ⁇ rj increases for the secret search, each server must perform a secret calculation in order to perform a mutual search between the secret information and the search ID.
  • the key server ID is assigned to each key managed by the dealer apparatus by using one key managed by the dealer apparatus (a total of h keys). It may be encrypted and used as the key of each key server.
  • the dealer device can play the role of h key servers by managing only one key (refer to the feature described later for a specific example).
  • the CPU 22 of the first dealer device 12A of the owner A having the secret information a executes the distributed processing of FIG. That is, in step 572, h random numbers are generated from one key to be managed as variance values Wa (x 1 ) to Wa (x h ) (h is an integer equal to or less than k ⁇ 1). The generated random numbers are stored in the storage device 34 of the first dealer 12A as the variance values Wa (x 1 ) to Wa (x h ).
  • step 574 k-1-h random numbers a 0, h + 1 to a 0, k-1 are determined for the secret information a, and the variance values Wa (x 1 ) to Wa (x h ) are set to the following polynomials: To obtain the remaining h random numbers a 0,1 to a 0, h-1 .
  • step 578 the variance value Wa (x i ) obtained in step 576 is transmitted to the (h + 1) -th server 14x (h + 1) to the n-th server 14x n .
  • the CPU 22 of the second dealer apparatus 12B of the owner B having the secret information b executes each of the above-described steps 572 to 578 of FIG. 71 independently to determine its own distributed value Wb (x 1 ) To Wb (x h ) and the variance values W b (x h + 1 ) to W b (x n ) of the (h + 1) th server 14x (h + 1) to the n th server 14xn, and the (h + 1) th server 14x (h + 1) to the server 14x n th to n.
  • the random number a 0, i is b 0, i .
  • step 586 the variance values Wa (xi) are collected from the k servers including the first dealer device 12A, and in step 588, the k variance values Wa (x i ) are solved to obtain a. in step 600, determine the ⁇ a multiplied by ⁇ to a, in step 602, and transmits the ⁇ a to the first server 14X1 ⁇ server 14x n and second dealer apparatus 12B of the second n. Note that k random numbers ⁇ i are stored in the storage device 34 of the first dealer 12A.
  • the variance value Wb (x i ) is collected from k or more servers including its second dealer device 12B, and at step 618, the following is calculated.
  • Wab ′ (x i ) ⁇ a ⁇ ⁇ ⁇ Wb (x i ) + ⁇ (x i )
  • step 620 the variance value Wab ′ (x i ) is transmitted to the original server. Note that k random numbers ⁇ i are stored in the storage device 34 of the second dealer 12B.
  • the k servers x j include the first dealer device 12A, the second dealer device 12B, and the first server 12x 1 to the (k-2) th server 12x k-2.
  • Wab ′ (x j ) and ⁇ j ⁇ j are transmitted to the restoration device 16.
  • the first feature of the proposed method described above is that, in step 572 of [Distribution] in FIG. 71, the first dealer apparatus 12A and the second dealer apparatus 12B only manage one key, respectively.
  • the dispersion value that the server should have saved can be reduced.
  • the encrypted data can be defined as Wa (x i ). That is, the first dealer apparatus 12A can realize the [distributed] process of FIG. 71 by only having one key.
  • the distribution of the seventh embodiment can realize a significant reduction in storage capacity compared to the secret multiplication 1.
  • the above is the feature of the storage capacity reduction by the asymmetric secret sharing.
  • the amount of communication associated with the reduction in storage capacity can be reduced.
  • the dealer apparatus A In the secret multiplication 1, in [distribution], the dealer apparatus A needs to send k + 1 dispersion values to n servers. On the other hand, in the secret multiplication 1 ′, the dealer apparatus A only has to send one variance value to n ⁇ h servers in step 578 of FIG. Furthermore, in the [restoration] of the secret multiplication 1, it is necessary for the k servers to collect k dispersion values. In the secret multiplication 1 ′, the first dealer 12A performs step 582 as shown in claim 12. It is only necessary to generate k random numbers and transmit one random number to each of k servers. However, the random number is synthesized in step 584 and used in step 600 to generate the concealment secret information ⁇ a.
  • Steps 616 and 618 in FIG. 73 of [Multiply] Wb (x i ) is collected and Wab ′ (x i ) is transmitted, so that the number of communications increases 2 (n ⁇ h) times, but the overall reduction is achieved. .
  • the k ⁇ j distribution processing in the secret multiplication 1 [dispersion] and the restoration processing in the [restoration] are unnecessary, but in the secret multiplication 1 ′, a random number is obtained in step 572 of FIG. 71 of [distribution].
  • Generation (encryption) and processing to solve the polynomial in step 574 increase. Therefore, the profit and loss are antagonized by the values of k and n with respect to the calculation amount.
  • ⁇ a and Wab ′ (xi) are generated during computation in the same way as the secret multiplication 1 ′ [multiplication]
  • the dealer directly performs distribution of k random numbers in the same manner as [restoration] the secret division is performed as it is. It is clear that 1 'can be realized.
  • the first dealer apparatus 12A collects Wa (x i ) from the server x j (a total of k apparatuses) in step 654, restores a to a real number, and in step 656, converts the real number ⁇ j to a real number. In addition, ⁇ a is calculated, and ⁇ a is transmitted to a specific server xd in step 658.
  • Second dealer apparatus 12B in step 660, collects Wb (xi) from the server x j, and real numbers of restoring the b, in step 662, then real number calculating a beta from real beta j, further calculates the ⁇ b In step 664, ⁇ b is transmitted to the specific server xd .
  • the specific server xd divides ⁇ b as a real number by ⁇ a in step 666 and transmits ⁇ b / ⁇ a to the restoration device 16 in step 668.
  • step 670 the restoring device 16 divides ⁇ b / ⁇ a by ⁇ / ⁇ and calculates a real number to obtain b / a. It is clear that multiplication, addition, and product-sum can be handled in the same way for real number operations.
  • the first dealer device 12A transmits the real number ⁇ j to the server x j
  • the second dealer device 12B transmits the real number ⁇ j to the server x j . That is, the first dealer device 12A does not transmit the real number ⁇ j to the second dealer device 12B, and the second dealer device 12B transmits the real number ⁇ j to the first dealer device 12A. Not done.
  • the first dealer apparatus 12A transmits the real number ⁇ j to the second dealer apparatus 12B and a total of k ⁇ 1 servers
  • the second dealer apparatus 12B transmits the real number ⁇ j to the first number
  • the same processing as described above may be performed by transmitting to the dealer apparatus 12A and a total of k-1 servers. The same applies to the following.
  • the third dealer 12C collects the variance value Wc (x i ) from the k servers x j in Step 674, calculates the following variance value Wc ′ (x i ) in Step 676, and performs Step 678. Then, the distributed value Wc ′ (x i ) is transmitted to the server x j .
  • Wc ′ (x i ) ⁇ ⁇ Wc (x i ) + ⁇ 2 (x i )
  • the server xj calculates ⁇ j / ⁇ j in step 688 and transmits ⁇ j / ⁇ j to the restoration device 16 in step 690.
  • the restoring device 16 multiplies each ⁇ j ⁇ j / ⁇ j and ⁇ j ⁇ j / ⁇ j in step 692 to calculate ⁇ / ⁇ and ⁇ / ⁇ , and in step 694, ⁇ / ⁇ and ⁇ / ⁇ and to send to the server x j.
  • Wab ′ (x j ) ⁇ .
  • (Ab + ab 0,1 x j +... + Ab 0, k ⁇ 1 x j ⁇ k ⁇ 1 ) and Wc ′ (x j ) ⁇ (c + c 0,1 x i +... + C 0, k ⁇ 1 x i k ⁇ 1 ) is calculated.
  • Restoration device 16 for restoring user at step 701, to obtain Wabc '(xj) from the server x j, in step 703, restores the ⁇ (ab + c).
  • the restoration device 16 obtains ⁇ j from the server x j and calculates (ab + c) in step 707.
  • the first dealer 12A collects the variance value Wa (x i ) from the k servers x j in step 676, and in step 678, the variance value Wa (x (n + xi) ) corresponding to the server ID n + xi.
  • step 680 the variance value Wa ′ (x i ) obtained by multiplying the variance value Wa (x (n + xi) ) by ⁇ is transmitted to the server x j .
  • the second dealer 12B collects the variance value Wb (x i ) from the k servers xj in step 682, and in step 684, the variance value Wb (x (n + x i ) corresponding to the server ID n + xi. ), And in step 686, the variance value Wb ′ (x i ) obtained by multiplying the variance value Wb (x (n + xi) ) by ⁇ is transmitted to the server xj.
  • the restoration device 16 restores ab using 2k ⁇ 1 variance values from Wab (x j ) and Wab ′ (x j ) / ⁇ .
  • r j and q j may be processed in the same manner as ⁇ j and ⁇ j during the calculation.
  • [order conversion] ⁇ j and ⁇ j may be obtained directly from the dealer.
  • Concealment update 1 is performed as follows.
  • One feature of asymmetric secret sharing is that the owner keeps it secret
  • the server x k becomes unnecessary.
  • the owner can update by outputting different random numbers using the existing keys, or by changing different keys managed by himself and outputting different random numbers.
  • the secret updates 2 to 5 if the owner performs update processing (random number generation and calculation processing, etc.), the safety is improved.
  • the distributed values T j (x h + 1 ) to T j (x n ) are obtained and sent to each server (h is an integer equal to or less than k ⁇ 1).
  • the CPU 22 of the user restoration device 16 executes the processing of steps 482 to 490 in FIG. 65, and the CPU 22 of the owner's first dealer device 12A executes the dispersion value calculation / transmission processing of FIG.
  • the CPU 22 of the server 14xi executes the difference calculation / transmission process of FIG. 80, and the CPU 22 of the search server 18 executes the search process of FIG. Note that steps 502 to 512 of the dispersion value calculation / transmission processing in FIG. 79 are substantially the same as steps 502 to 512 in FIG.
  • the first dealer 12A receives q ⁇ kj ′ in step 502 of FIG. 79, generates t j and r in step 504, calculates t j ⁇ r in step 506, and in step 508 , T j ⁇ r are transmitted to the restoration device 16.
  • the first dealer 12A calculates the following variance value F 0 by multiplying q ⁇ k j ′ by t j in step 510, and transmits the variance value F 0 to the server in step 512.
  • F o (x i ) t j ⁇ q ⁇ k j '+ b j1 x i + b j2 x i 2 + ... + b jk-1 x i k-1 Therefore, the i-th server 14x i receives the variance value F o (x i ) in step 522 of FIG.
  • the restoration device 16 multiplies t j ⁇ r by q to calculate the following variance value F u (x i ) (step 488 in FIG. 65), and transmits the variance value F u (x i ) to each server. (Step 490).
  • F u (x i ) t j ⁇ r ⁇ q + c j1 x i + c j2 x i 2 +... + C jk ⁇ 1 x i k ⁇ 1
  • the i-th server 14x i receives the variance value F u (x i ) in step 524 of FIG.
  • the first dealer 12A collects k T j (x i ) in step 513 in FIG. 79, calculates the following variance value T ′ j (x i ) in step 515, and in step 517: , And the distributed value T ′ j (x i ) is transmitted to the i- th server 14 x i .
  • T ′ j (x i ) r j ⁇ T j (x i ) + ⁇ (x i )
  • r j is a random number determined for each k j
  • the i-th server 14x i receives the distributed value T ′ j (x i ) in step 527 of FIG.
  • First dealer apparatus 12A transmits r ⁇ r j to i-th server 14xi in step 519 of FIG.
  • the i-th server 14xi receives r ⁇ r j in step 529 of FIG. 80, and transmits the variance T ′ j (x i ) to the search server 18 in step 530A.
  • Search server 18, at step 541 of FIG. 81 receives a T 'j (xi), in step 543, to calculate the r j ⁇ k j, in step 545, the server 14x of the i a r j ⁇ k j send to i .
  • the i-th server 14xi receives r j ⁇ k j in step 531 of FIG. 80, calculates the following difference in step 533, and transmits the difference to the search server 18 in step 535.
  • the search server 18 receives the difference at step 547 of FIG. 81, and solves the difference polynomial to obtain a constant term at step 549. Thereafter, the CPU 22 of the search server 18 executes the processing of steps 551 to 563. Since steps 551 to 563 correspond to steps 552 to 564 in FIG. 68, the description thereof is omitted.
  • the search server 18 instructs j in steps 561 and 563 of FIG. 81, the i-th server 14x i receives the instruction of j, so that an affirmative determination is made in step 537 of FIG.
  • the calculation / transmission process returns to step 525A.
  • a ramp-type secret sharing method is known as a method for reducing the storage capacity of a distributed value.
  • Ramp secret sharing scheme splits the secret information S to L ( ⁇ k) number s 1, ⁇ , and s L, a L + 1, k-1 ⁇ , the a k-1 as a random number It is a coefficient of the second polynomial. That is, the following polynomial is established, and W (xi) is set as a variance value of the i-th server 14xi.
  • Concealment multiplication 1 (basic lamp type) A secret multiplication using ramp-type secret sharing corresponding to the secret multiplication 1 is shown below.
  • the secret information a, b is an integer less than a prime number p (> e d ) expressed in e-adic d digits, and a, b are divided into L, a h, j , b h, j , parameters ⁇ , ⁇ , ⁇ j, ⁇ j, etc. are assumed to be integers less than the prime number p ′ (> e (d / L) ), and operations relating to secret sharing are performed modulo the prime number q ′ (> p ′ u : u is an integer of 1 or more).
  • the secret multiplication 1 "shown below is the same as the secret multiplication 1 except for the above. Therefore, the secret information a and b (real numbers) are expressed as integers for real number operations, and the integers are equal to or less than p. Yes.
  • the CPU 22 of the first dealer apparatus 12A of the owner A having the secret information a executes the distributed processing shown in FIG. That is, in step 702, k random numbers ⁇ i less than the prime number p ′ are generated, and the product ⁇ is calculated modulo q ′.
  • ⁇ 1 ⁇ ⁇ 2 ⁇ ⁇ ⁇ ⁇ k
  • the secret information a less than the prime number p is L-dispersed to be a 0,0 ,..., A 0, L-1 less than the prime number p ′, and the following variance value is calculated.
  • Wa '(x i ) ⁇ (a 0,0 + a 0,1 x i + ...
  • step 706 the variance values Wa ′ (x i ) and Wa k (x i ) are transmitted to the first server 14x 1 to the n-th server 14 n .
  • the CPU 22 of the second dealer apparatus 12B of the owner B having the secret information b executes the distributed process shown in FIG. That is, in step 712, k random numbers ⁇ i less than the prime number p ′ are generated, and the product ⁇ is calculated modulo q ′.
  • ⁇ 1 ⁇ ⁇ 2 ⁇ ⁇ ⁇ ⁇ k
  • step 716 the distributed values Wb ′ (xi), Wb 1 (x i ) to Wb k (x i ) are transmitted to the first server 14x 1 to the nth server 14x n .
  • the restoration device 16 synthesizes ⁇ from ⁇ j ⁇ j .
  • the d-th server 14xd calculates a product ⁇ a ⁇ b of ⁇ a and ⁇ b in step 744, and transmits ⁇ ab to the restoration device 16 in step 746.
  • the restoration device 16 divides ⁇ ab by ⁇ to calculate ab.
  • each coefficient takes random numbers such as ⁇ and ⁇ , so unlike the conventional ramp type, even if there are kL or more distributed values, information does not leak, Safety is improved.
  • the encryption e_ r (x) to encrypt the x in key r as follows, it is possible to further improve the safety improved.
  • Concealment multiplication 1 "(lamp type expansion type) [dispersion]
  • steps 702 and 706 of FIG. 82 of the lamp-type basic form and steps 712 and 716 of FIG. 83 are executed.
  • First, instead of step 704 of FIG. It executes the following processing. that is, making the ciphertext of the same size by encrypting e_ r1 ( ⁇ a 0, j) the .alpha.a 0, j using a key r1, following variance values Wa '(x i), Wr1 Calculate (x i ).
  • the following processing is executed. That is, create a ciphertext of the same size by encrypting e_ r1 ( ⁇ a 0, j) the .alpha.a 0, j using the key r 1, following dispersion value Wb '(xi), calculates the Wr2 (xi).
  • Wb '(x i ) e_ r2 ( ⁇ b 0,0 ) + e_ r2 ( ⁇ b 0,1 ) x i + ... + e_ r2 ( ⁇ b 0, k-1 ) x i k-1
  • Wr2 (x i ) r2 + r 2,1 x i + ... + r 2, k-1 x i k-1
  • concealment multiplication 2 can be similarly expanded if both the basic form and the expansion system are taken into account when the digits are restored in the middle stage.
  • both the basic form and the extended system can be similarly expanded if considering the digit alignment when restored in the middle stage. is there.
  • the addition of the variance values can be applied as it is because it is addition for each digit if random number conversion is performed in the basic form.
  • the random number required for each digit is different, so it is necessary to restore and add the random numbers together while aligning the digits.
  • the basic algorithm is shown below.
  • the first dealer apparatus 12A of the owner A calculates the following variance value by dividing the secret information a into L and a 0,0 ,..., A 0, L ⁇ 1 .
  • Wa (x i ) a 0,0 + a 0,1 x i + ... + a 0, k-1 x i k-1
  • the second dealer apparatus 12B of the owner B calculates the following variance value by dividing the secret information b into L and b 0,0 ,..., B 0, L ⁇ 1 .
  • Wb (xi) b 0,0 + b 0,1 xi + ... + b 0, k-1 xi k-1
  • Wa (x i ) and Wb (x i ) are transmitted to the first server 14x i to the nth server 14x n .
  • the restoration device 16 collects the sum Wab (xi) of k variance values from k servers in the i- th server 14x i , solves it, and (a 0,0 + b 0,0 ),. ⁇ , (A 0, L + b 0, L ) is obtained.
  • the restoration device 16 adds (a 0,0 + b 0,0 ),..., (A 0, L + b 0, L ) while aligning digits to obtain a + b.
  • Wa (x) a 0,0 + a 0,1 x + ... + a 0, k-1 x k-1
  • Wb (x) b 0,0 + b 0 , 1 x + ... + b 0, k-1 x k-1
  • the restoring device 16 of the restoring person obtains each coefficient using 2k ⁇ 1 variance values from Wab (x j ) and Wab ′ (xj) / ⁇ , and restores ab while aligning digits.
  • Wa (xi) or Wb (x i ) is secretly distributed without applying a random number.
  • Wa (x i ) ⁇ Wa (x i )
  • Wb (xi) ⁇ Wb (x i )
  • ⁇ 1 ... ⁇ k
  • ⁇ 1 ... ⁇ k
  • a process of removing ⁇ from Wa (x i ) Wb (x i ) may be performed.
  • random numbers are applied to all the distributed values, there is no problem that secret information is partially leaked from the distributed values of k-1 or less of the ramp-type secret sharing, and the safety is improved.
  • the secret update 1 uses kL units for generating random numbers and n-k + L servers for receiving the difference value. That's fine.
  • the secret update 3 may also have ⁇ (x) similar to ⁇ i (x).
  • the part that needs to be restored is a coefficient including secret information, and this part is not updated.
  • the random number part is encrypted in form, but it is not necessary to encrypt it. Therefore, the random number part can be updated in the same manner as in the basic form. Further, it is obvious that the secret updates 4 and 5 can be similarly realized.
  • Secret search 1 "(basic form: the search device 18 is not used)
  • kj which is a search ID
  • a partial search can be performed as follows.
  • the distributed values are arranged in ascending order according to the search ID kj.
  • the storage device 34 of the first server 14x1 stores the distributed values T j (xi) and R j (x i ) in ascending order according to kj. ing.
  • a variance value corresponding to the secret information is associated with the variance values T j (xi) and R j (x i ).
  • the CPU 22 of the restoring device 16 executes the instruction processing of j in FIG. 87, and the CPU 22 of the first dealer device 12A executes the calculation transmission processing of Fj ′ (xi) in FIG. 88, and the i-th server 14xi ( The CPU 22 of the first server 14x 1 to the n-th server 14x n ) executes the search process of FIG.
  • k j ′ is a search ID
  • the i-th server 14xi receives F j ′ (x i ) from the first dealer 12A at step 812 in FIG. 89, and sets j at step 814.
  • j is set to m / 2.
  • the i-th server 14x i receives F j (x i ) from the restoration device 16 at step 820 in FIG. 89, and restores r j from R j (xi) at step 822.
  • a random number t j is generated.
  • the following difference is calculated, and in step 828, the difference is transmitted to the restoration device 16.
  • tj ⁇ F j (x i ) -rjF j '(x i ) ⁇ tj ⁇ rj ⁇ q ⁇ (k' j0 -k j0 ) + ⁇ ⁇ ⁇ + (k ' jL-1 -k jL-1 ) x i L-1 + (b jL -t ' jL ) x i L + ... + (b jk-1 -t' jk-1 ) x i k-1 ⁇
  • t ' ji t ji + d i / q
  • step 778 of FIG. 87 the restoration device 16 receives the difference, and in step 780, solves the difference polynomial to obtain a constant term.
  • step 782 whether the coefficient difference of any constant term is 0 or not. Judging. If only one partial match is required, processing similar to the processing after step 551 in FIG. 81 can be executed after step 782. However, a process for checking whether the partial search IDs higher than the partial match search IDs that have been found first match is described below. It is assumed that this is also searched from the median. Further, since the difference between the search IDs that are not decomposed into L pieces in the fifth embodiment is dominated by the result of the upper digit, the entire search position is set to the difference value of the most significant digit in the fifth embodiment. The search is performed in the same manner as the entire difference value in. If there is a partial match, for the sake of simplicity, it is assumed that a partial match of the ID of the upper digit of the ID is searched.
  • step 782 a search based on the coefficient difference is performed to determine whether or not there is 0 in any coefficient difference. If some coefficient difference is not 0, the coefficient difference of the most significant digit is set as the overall difference, and similarly to the fifth embodiment, j is incremented by 1, a next search position is determined, and the process returns to step 770. .
  • step 782 If it is determined in step 782 that there is a coefficient difference of 0, the coefficient difference of the lower digit of the ID is viewed.
  • the partial search ID that is found first is k ji and the partial search ID of the upper digit is k ji-1 . That is, in step 786, the variable i for identifying the digit is decremented by one.
  • step 788 it is determined whether or not the coefficient difference of the lower digit i is 0. If it is determined that the lower digit i is 0, the search ID is set to j in step 790 and the process is terminated.
  • step 792 it is determined in step 792 whether or not the coefficient difference of k ji-1 in the lower digit i is positive. If it is determined to be positive, the search position j is incremented by 1 in step 794, and if it is determined to be negative, the search position is decremented by 1 in step 796. In step 798, it is determined whether or not the coefficient difference of k ji between the previous time and the current time remains zero.
  • step 800 When the coefficient difference k ji between the previous and the current is not 0, as the condition is not satisfied, at step 800, as no search ID, and terminates the processing, coefficient difference k ji between previous and current If 0 is 0, j in step 794 or step 796 is designated, and the process returns to step 770 to perform a search based on the coefficient difference.
  • step 790 “other coefficient difference” is set to “other coefficient difference”, “the coefficient difference of the low-order digit i is 0” is “is there any k jr whose coefficient difference is 0”, and in step 790, “The search position is shifted by 1 in a predetermined direction and the search is performed using the coefficient difference”. In addition, when it is desired to see three or more matches, the process may be repeated by replacing two matching states with one matching state.
  • the cipher e_r (x) is a cipher such as AES.
  • AES cipher
  • R j (x i ) rj + r j1 x i + r j2 x i 2 +... + r jk-1 x i k-1
  • the distributed values are arranged in ascending order according to the search ID kj. [Search]
  • the CPU 22 of the restoring device 16 executes the instruction process j shown in FIG. 87, and the CPU 22 of the first dealer 12A executes the calculation / transmission process of F j ′ (x j ) shown in FIG.
  • the CPU 22 of the server 14x i executes the search process of FIG.
  • [delta] (x) generates a d L x i L + ⁇ + d k-1 x i k-1, to the server 14x i of the i by calculating the following (FIG. 87 Steps 770 to 776).
  • the i-th server 14x i restores rj from Rj (x i ) (step 822 in FIG. 89).
  • the i-th server 14x i generates a random number t j , calculates the following difference, and transmits it to the restoration device 16 (steps 826 and 828).
  • tj ⁇ F j (x i ) -rjF j '(x i ) ⁇ t j ⁇ r j ⁇ q ⁇ (k' j0 -k j0 ) + ... + t L-1 (k ' jL-1- k jL-1 ) x i L-1 + t L (b jL -t ' jL ) x i L + ... + t k-1 (b jk-1 -t' jk-1 ) x i k-1 ⁇
  • t ' ji t ji + d i / q
  • the subsequent processing (after step 782 in FIG. 87) is the same as the confidential search 1 ′′ [search].
  • the miniaturization of the seventh embodiment and the miniaturization by the lamp type of the eighth embodiment can be compatible.
  • the number of servers to be reduced is h and the number of divisions is L, both can be satisfied if h + L ⁇ k.
  • the first dealer apparatus 12A of the owner A having the secret information a generates h random numbers from one key to be managed, and uses them as distributed values Wa (x 1 ) to Wa (x h ). (H is an integer equal to or less than k ⁇ 1) (step 572 in FIG. 71).
  • the first dealer apparatus 12A uses Wa (x i ) to determine the distributed values of the remaining (h + 1) th servers 14x h + 1 to 14x n and transmits them to the i th server 14x i (step) 576).
  • the second dealer apparatus 12B of the owner B having the secret information b executes the processing of steps 572 to 578 in FIG. 71 independently using one key to be managed, and has its own distributed value Wb (x 1 ) To Wb (x h ) and distributed values Wb (x h + 1 ) to Wb (x n ) possessed by the servers x h + 1 to x n are obtained and sent to each server.
  • the first dealer 12A collects variance values Wa (x i ) from k servers including itself, solves k variance values Wa (x i ), finds a i, j and performs digit alignment. Then, a is calculated, and ⁇ a multiplied by ⁇ is transmitted to the restoration device 16 (steps 586 to 602 in FIG. 72).
  • the second dealer 12B collects the variance values Wb (x i ) from the k servers including itself, solves the k variance values Wb (x i ), finds b i, j and performs digit alignment. Then, b is calculated, and ⁇ b multiplied by ⁇ is transmitted to the restoration device 16 (616 to 620 in FIG. 73).
  • the restoration device 16 calculates ⁇ a ⁇ ⁇ b / ⁇ to obtain ab (step 634 in FIG. 75).
  • XOR method a method for treating secret information as a bit string and realizing secret sharing only by an XOR operation. Since this XOR method does not have homomorphism, there is a problem that it cannot cope with a secret calculation.
  • the XOR method has been extended to treat secret information as a multi-valued numerical value instead of a bit string, and a method (hereinafter multi-valued method) that can perform secret sharing only by addition and subtraction instead of XOR [5] .
  • the method [5] has a large number of modulo and is not efficient.
  • a secret information distribution method, restoration method, and addition / subtraction have been proposed, but a multiplication method has not been proposed.
  • Multilevel method 1 (basic form) [dispersion]
  • step 834 (k ⁇ 1) n ⁇ 1 random numbers r ⁇ ⁇ having the same size as S are generated independently.
  • step 836 partial dispersion information W (i, j) is generated by 0 ⁇ i ⁇ n ⁇ 1,0 ⁇ j ⁇ n ⁇ 2 according to the following equations.
  • step 838 0 ⁇ i ⁇ n- 1 in each partial shared information W (i, 0), W (i, 1), ..., generates the W (i, n-2) connected to the shared information W i To do.
  • step 840 the shared information W i is transmitted to the i-th server 14x i .
  • the CPU 22 of the restoration device 16 executes the restoration process of FIG. That is, in step 842, k pieces of distributed information W t0 ,..., W tk-1 (0 ⁇ t 0 ⁇ ... ⁇ t k ⁇ n ⁇ 1) used for restoration are collected from k servers. In step 844, k pieces of shared information W t0 ,..., W tk-1 are divided into the following partial shared information.
  • step 846 a binary vector V (ti, j) is generated using the divided partial dispersion information.
  • the binary vector V (ti, j) is as follows.
  • step 848 the following matrix is generated from the vectors V (t0,0) ,..., V (tk-1, n-2) .
  • step 850 the partial dispersion information is represented as the following vector W (t0,..., Tk-1) .
  • step 852 using Gauss-Jordan elimination The binary number To obtain a vector S (k, n) of all partial secret information.
  • G (k, n) is expressed as follows.
  • step 854 all pieces of partial secret information are concatenated to obtain secret information S.
  • the pseudo random number r is set to the following value (step 834).
  • Table 1 shows a configuration table of partial shared information distributed to users. Partially distributed information configuration table
  • Distributed information W 0 of the server P 0 is a 6392.
  • Distributed information W 1 of the server P 1 is a 106,910.
  • Distributed information W 2 of the server P 2 is a 0103.
  • Distributed information W 3 of the server P 3 is a 5592.
  • the shared information W 0 of the server P 4 is 24610.
  • the secret information S is restored by concatenating them (step 854).
  • Each server calculates: The 0th server 14x0 calculates Wab0.
  • the first server 14x1 calculates Wab1.
  • the secret information can be distributed, restored, and added (and subtracted as well) by the proposed multi-value method.
  • the CPU 22 of the first dealer device 12A of the owner A having the secret information a executes the distributed processing shown in FIG. That is, in step 872, k random numbers ⁇ i less than the prime number q are generated, and the product ⁇ is calculated modulo q ′.
  • ⁇ 1 ⁇ ⁇ 2 ⁇ ⁇ ⁇ ⁇ k
  • step 874 ⁇ is applied to the secret information a distributed, and the multi-value quantization [distribution] process (steps 832 to 840 in FIG. 87) is executed.
  • the CPU 22 of the second dealer apparatus 12A of the owner B having the secret information b executes the distributed processing shown in FIG. That is, in step 882, k random numbers ⁇ i less than the prime number q are generated, and the product ⁇ is calculated using q ′ as the modulus.
  • ⁇ 1 ⁇ ⁇ 2 ⁇ ⁇ ⁇ ⁇ k
  • step 848 ⁇ is added to the distributed secret information b and the multi-value quantization [distributed] processing (steps 832 to 840 in FIG. 90) is executed.
  • step 896 the product ⁇ j ⁇ j is calculated.
  • step 898 Wab ′ (x j ) and ⁇ j ⁇ j are transmitted to the restorer.
  • ⁇ j is calculated and distributed by Wb′0, Wb′2 and Wb′3 by the multivalue method (step 886 in FIG. 94).
  • the server 14 x 1 sends ⁇ 1 ⁇ 1 and x 2 sends ⁇ 2 ⁇ 2 to the restoration device 16.
  • Acceleration in the ninth embodiment is as follows. Since the Shamir method up to the eighth embodiment is a polynomial operation, the restoration always requires simultaneous equations of the polynomial, that is, multiplication or power operation is necessary. However, XOR-type restoration can be processed only with XOR. In the ninth embodiment, XOR is multi-valued, and in the case of concealment multiplication, since restoration only needs to be performed by addition / subtraction, the speed can be increased.
  • the statutory numbers are as follows. Up to the seventh embodiment, calculation is performed with the size of the secret information S or u times the size. On the other hand, in the ninth embodiment, calculation is performed with a size obtained by decomposing S or a size that is u times as large. Therefore, the modulo number is not large. This feature is indicated in claim 13.
  • the ramp type secret sharing method in which the magnitude of the variance value of the multilevel method is 1 / L is also possible as in the eighth embodiment in which the Shamir method is a ramp type.
  • S ( ⁇ e d ) is an e-decimal d-digit integer less than the prime number p
  • Si ( ⁇ ed / L (n-1) ) divided by L (n-1 ) is used similarly. Is performed.
  • the random number r i j is also assumed to be an integer of the same size as Si, and the arithmetic is performed using the prime number p ′ ( ⁇ e du / L (n ⁇ 1) ) (u is an integer of 1 or more) as a modulus ([5] Is calculated using p as the modulus). This feature is indicated in claim 13.
  • the ramp type multi-value method can be realized in the same manner as the multi-value method. Therefore, if the Shamir's secret sharing method is replaced with the ramp type multi-value method, the first to eighth embodiments are implemented. It is clear that each method of form can be handled.
  • the difference between the ramp type multi-value method and the multi-value method is that even if the multi-value method calculates with a size obtained by dividing S, the distributed values return to the same size of the secret information because they are collected at the end.
  • the ramp type multi-valued method even if the distributed values are collected, it is 1 / L of the original secret information, and the speed is increased and the storage capacity is reduced at the same time.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Distributed values of concealed secret information are obtained from secret information by concealing the secret information. A combined value α is generated from random numbers α1 to αk, which are k or more items of secret information (42). The combined value α is multiplied by new secret information a to generate concealed secret information αa, and distributed values Wa'(xi) of the concealed secret information, and distributed values Wa1(xi) to Wak(xi) of each of the random numbers, which are the k or more items of secret information, are calculated (44). The distributed values Wa'(xi) and Wa1(xi) to Wak(xi) are transmitted to first to nth servers (46). The distributed values Wa'(xi) of the concealed secret information αa, obtained by concealing the secret information α1 to αk, can be obtained from the secret information α1 to αk.

Description

秘密分散を用いた秘匿演算システムに関する計算装置A computing device for a secret computation system using secret sharing
 本発明は、秘密分散を用いた秘匿演算システムに関する計算装置に関する。 The present invention relates to a calculation apparatus related to a secret calculation system using secret sharing.
 近年、新たなネットワーク技術としてクラウドコンピューティングが注目されている。クラウドコンピューティングとはユーザの持つデータをクラウドと呼ばれるネットワーク上の複数のサーバにより構成される仮想の大容量ストレージに分散・保管し、そのデータをどこからでもネットワーク経由でユーザが必要に応じてアクセスすることを可能にする技術である。さらに、保管データを有効活用するために、単にデータをストレージするだけでなく、クラウド上に分散・保管されたデータを用いて個々のデータを秘匿しながら任意の計算を行う秘匿計算を実現する技術が求められている。 In recent years, cloud computing has attracted attention as a new network technology. With cloud computing, users' data is distributed and stored in a virtual large-capacity storage consisting of multiple servers on the network called the cloud, and the user accesses the data from anywhere via the network as needed. It is a technology that makes it possible. Furthermore, in order to make effective use of stored data, it is not only simply storing data, but also a technology that realizes a secret calculation that performs arbitrary calculations while concealing individual data using data distributed and stored in the cloud Is required.
 この秘匿計算を実現する技術の1つとして秘密分散法の利用が注目されている。秘密分散法とは1個の秘密情報をn個に分散し、n個に分散した分散値のうち、k個(k≦n) を集めることで元の秘密情報が復元できるという技術である。また、k個未満の分散値からは一切秘密情報に関する情報を得ることができない。この秘密分散法として、Shamirによる(k,n)秘密分散法が良く知られている。Shamirの(k,n)秘密分散法を含む従来の秘密分散システムは分散値を保存するn台のデータサーバと、秘密情報を分散するディーラまたは秘密情報を復元する復元端末からなる。すなわち、秘密分散時にオーナは自分が所有する秘密情報の分散をディーラに依頼し、ディーラは秘密分散法を用いてn個の分散値を計算して、その値を各々n個のデータサーバに分散保管する。一般に、ディーラは秘密分散時のみ存在するとされる。一方、復元を希望するユーザは復元したい秘密情報に対する分散値をk個のデータサーバから復元端末に集めて復元を行う。この復元端末も一般には、データ復元時のみ存在する。 The use of the secret sharing method is attracting attention as one of the technologies for realizing this secret calculation. The secret sharing method is a technique in which one piece of secret information is distributed into n pieces, and the original secret information can be restored by collecting k pieces (k ≦ n) of the distributed values distributed into n pieces. Also, no information about secret information can be obtained from less than k variance values. As this secret sharing method, the (k, n) secret sharing method by Shamir is well known. A conventional secret sharing system including Shamir's (k, n) secret sharing method includes n data servers that store the distributed values and a dealer that distributes the secret information or a restoration terminal that restores the secret information. In other words, when the secret is shared, the owner asks the dealer to distribute the secret information he owns, and the dealer calculates the n distributed values using the secret sharing method and distributes the values to each of the n data servers. store. In general, a dealer exists only when secrets are shared. On the other hand, a user who wishes to restore collects the distributed values for the secret information to be restored from the k data servers and restores them. This restoration terminal also generally exists only at the time of data restoration.
 具体的に、Shamirの(k,n)秘密分散法は式(1)のようなk-1次の多項式を設定(sは秘密情報、a 1~a k-1は乱数)し、n個のサーバ各々のIDをxj(j=1,…,n)としたときのW(xj)を各サーバに保存し分散値とする。このk-1次多項式はk個の分散値W(x1),…,W(xk)が集まれば解く(秘密情報sを求める)ことができる。それに対して、分散値がk個未満では解は不定となり全く定めることはできない。
W(x)=s+a1x+a2x2+…+ak-1xk-1              (1)
Specifically, Shamir's (k, n) secret sharing scheme sets k-1 degree polynomials as in equation (1) (s is secret information, a 1 to a k-1 are random numbers), and n W (xj) when the ID of each of the servers is xj (j = 1,..., N) is stored in each server and used as a distributed value. This k−1 degree polynomial can be solved (the secret information s is obtained) if k variance values W (x1),..., W (xk) are collected. On the other hand, if the variance is less than k, the solution is indefinite and cannot be determined at all.
W (x) = s + a1x + a2x 2 +… + ak-1x k-1 (1)
 さらに、2つの秘密aとbに対して2つの分散値Wa(xj) (式(2))とWb(xj) (式(3))がn個のサーバに分散して保管されていた(j=1,…,n)時、その分散値同士の加算(式(4))を考える。
Wa(xj)=a+a1xj+a2xj2+…+ak-1xjk-1            (2)
Wb(xj)=b+b1xj+b2xj2+…+bk-1xjk-1            (3)
Wa(xj)+Wb(xj)=(a+b)+(a1+b1)xj+(a2+b2)xj2+…+(ak-1+bk-1)xjk-1     (4)
Furthermore, for the two secrets a and b, two distributed values Wa (xj) (Equation (2)) and Wb (xj) (Equation (3)) were distributed and stored in n servers ( When j = 1,..., n), the addition of the dispersion values (formula (4)) is considered.
Wa (xj) = a + a1xj + a2xj 2 +… + ak-1xj k-1 (2)
Wb (xj) = b + b1xj + b2xj 2 +… + bk-1xj k-1 (3)
Wa (xj) + Wb (xj) = (a + b) + (a1 + b1) xj + (a2 + b2) xj 2 + ... + (ak-1 + bk-1) xj k-1 (4)
 この場合、加算結果である式(4)もまたk-1次多項式で表されることから、その分散値の和Wa(xj)+Wb(xj)をk個集めて多項式を解けばa,bという個別の情報でなくa+bという秘密情報の和が得られる。乗算に対しても同様にWa(xj)とWb(xj)の積の定数項はa・bという秘密情報同志の積となることから分散値の積を計算してその多項式を解けば、秘密情報同志の積が得られる[1]。このように、a,bという個別情報を得ることなくその和や積といった結果を得る計算を秘匿計算と言い、秘密分散法はそのままで加減算と乗算に関して秘匿計算に適用できることが知られている。ただし、秘密分散を用いた秘匿計算には以下のような問題点が未解決であることが知られている。 In this case, equation (4), which is the addition result, is also expressed by a k−1 degree polynomial, so that k, the sums Wa (xj) + Wb (xj) of the variance values are collected to solve the polynomial a, The sum of secret information a + b is obtained instead of individual information b. Similarly for multiplication, the constant term of the product of Wa (xj) and Wb (xj) is a product of secret informations a and b, so if you calculate the product of variance values and solve the polynomial, the secret The product of information comrades is obtained [1]. In this way, a calculation that obtains a result such as a sum or product without obtaining individual information a and b is called a secret calculation, and it is known that the secret sharing method can be applied to the secret calculation with respect to addition / subtraction and multiplication. However, it is known that the following problems are unsolved in the secret calculation using secret sharing.
(I)乗算においてのみ必要なサーバ台数が変化する問題
 k-1次の多項式同士の乗算結果は、2k-2次の多項式となる。よってその多項式を解く(各係数を求める)ためには、2k-1個の分散値が必要になり、集める分散値の数が乗算の場合のみ増加するという問題が生じる。すなわち、(k,n)秘密分散法において1つのサーバに1つの分散値を保存している場合、k個のサーバがあれば秘密情報の復元や秘匿加減算は可能であるが、乗算に対しては2k-1個のサーバが必要になり、乗算の場合だけ復元に必要なサーバの数が増加する。例えば、(3,5)秘密分散法や(2,3)秘密分散法の場合、秘密情報の復元と加減算に対しては各々3つ、2つの分散値を集めればよいため、全サーバ数のうち2つまたは1つのサーバが破損しても問題ない。しかし、(3,5)秘密分散法や(2,3)秘密分散法を乗算に用いる場合は、各々2k-1=5個、2k-1=3個のサーバが必要になる。よって、乗算は実現できるが、1つのサーバの破損も許されなくなる。また、(3,4)秘密分散法を用いる場合、秘密情報の復元と加減算は問題ないが、乗算に関しては2k-1=5個の分散値が必要なため、4つのサーバで構成されたシステムでは乗算が実現できない。すなわち、乗算の場合のみシステム構成を変える、または破損耐性を変える必要がある。従って、多項式の次数変化がなく乗算を行える手法があれば、これらの問題を解決することができる。サーバの台数変化のない乗算手法として[2]が提案されている。この手法は以下のように1つのサーバに2つの分散値を持たせ、1つの分散値を秘匿化して乗算を行い、その後乱数を削除するため、サーバ台数を変える必要はないとしている。
(I) The problem that the number of servers required only for multiplication changes The result of multiplication of k-1 degree polynomials is a 2k-2 degree polynomial. Therefore, in order to solve the polynomial (each coefficient is obtained), 2k-1 variance values are required, and there arises a problem that the number of variance values to be collected increases only in the case of multiplication. That is, when one shared value is stored in one server in the (k, n) secret sharing method, if there are k servers, restoration of secret information and concealment addition / subtraction are possible. Requires 2k-1 servers, and the number of servers required for restoration increases only in the case of multiplication. For example, in the case of (3,5) secret sharing method and (2,3) secret sharing method, it is only necessary to collect three and two shared values for restoration and addition / subtraction of secret information. If two or one of these servers breaks, there is no problem. However, when (3,5) secret sharing method or (2,3) secret sharing method is used for multiplication, 2k-1 = 5 servers and 2k-1 = 3 servers are required, respectively. Therefore, although multiplication can be realized, damage to one server is not allowed. Also, when using the (3,4) secret sharing method, there is no problem in restoring and adding / subtracting secret information, but 2k-1 = 5 shared values are required for multiplication, so a system composed of four servers Then multiplication cannot be realized. That is, it is necessary to change the system configuration or change the damage resistance only in the case of multiplication. Therefore, if there is a method that can perform multiplication without changing the degree of the polynomial, these problems can be solved. [2] has been proposed as a multiplication method without changing the number of servers. In this method, as described below, one server has two distributed values, one distributed value is concealed, multiplication is performed, and then random numbers are deleted, so that it is not necessary to change the number of servers.
秘匿乗算[2]
[分散]
(1)秘密情報aをもつオーナAは乱数αを生成し、以下をサーバxi(i=1,・・・,n)用に秘密分散する(ai,jは乱数)。
Wa(xi)=a+a0,1xi+・・・+a0,k-1xik-1
Wa’(n+xi)=α(a+a0,1(n+xi)+・・・+a0,k-1(n+xi)k-1)
Wa1(xi)=α+a1,1xi+・・・+a1,k-1xik-1  
Secret multiplication [2]
[dispersion]
(1) The owner A having the secret information a generates a random number α and secretly distributes the following for the server xi (i = 1,..., N) (ai and j are random numbers).
Wa (xi) = a + a0,1xi + ... + a0, k-1xi k-1
Wa '(n + xi) = α (a + a0,1 (n + xi) + ··· + a0, k-1 (n + xi) k-1)
Wa1 (xi) = α + a1,1xi + ・ ・ ・ + a1, k-1xik-1
(2)秘密情報bをもつオーナBは乱数βを生成し、以下をサーバxi(i=1,・・・,n)用に秘密分散する。
Wb(xi)=b+b0,1xi+・・・+b0,k-1xik-1
Wb’(n+xi)=β(b+b0,1(n+xi)+・・・+b0,k-1(n+xi)k-1)
Wb1(xi)=β+b1,1xi+・・・+b1,k-1xik-1
(2) Owner B having the secret information b generates a random number β and secretly distributes the following for the server xi (i = 1,..., N).
Wb (xi) = b + b0,1xi + ··· + b0, k-1xi k-1
Wb '(n + xi) = β (b + b0,1 (n + xi) + ... + b0, k-1 (n + xi) k-1 )
Wb1 (xi) = β + b1,1xi + ・ ・ ・ + b1, k-1xi k-1
[乗算]
 各サーバはWab(xi)=Wa(xi)Wb(xi)とWab’(xi)=Wa’(n+xi)Wb’(n+xi)を計算する(i=1,…,n)。
[復元]
(1)サーバj(j=1,…,k)はWab(xj)、Wab’(xj)、Wa1(xj)、Wb1(xj)を復元者に送る。
(2)復元者の復元端末はWa1(xj)からαを、Wb1(xj)からβを復元し、Wab’(xj)をαとβで割り、Wab(n+xj)を作る。
(3)復元者の復元端末はWab(xj)とWab(n+xj)から2k-1個の分散値を用いてabを復元する。
[Multiplication]
Each server calculates Wab (xi) = Wa (xi) Wb (xi) and Wab ′ (xi) = Wa ′ (n + xi) Wb ′ (n + xi) (i = 1,..., N).
[Restore]
(1) The server j (j = 1,..., K) sends Wab (xj), Wab ′ (xj), Wa1 (xj), Wb1 (xj) to the restorer.
(2) The restoring terminal of the restoring person restores α from Wa1 (xj), β from Wb1 (xj), and divides Wab ′ (xj) by α and β to create Wab (n + xj).
(3) The restorer's restoration terminal restores ab using 2k-1 variance values from Wab (xj) and Wab (n + xj).
 [2]は外部からの攻撃者に対しては安全である。しかし、内部からの攻撃、すなわちabの演算結果のみを知ることができる復元者が元の秘密情報a,b自体を知るために攻撃者となる場合、安全ではない。なぜならば、復元者は[復元](2)においてαとβを個別に知るため、復元者がサーバの盗聴を行う場合、k/2個のサーバを盗聴すればk個のaの分散値と、k個のbの分散値が得られるため、元の秘密情報が漏洩する。よって、攻撃者には秘匿演算に関する情報を何も知らない外部の攻撃者と、演算結果を知る立場にある復元者が、演算結果の元情報である秘密情報を知るために攻撃者となる場合の2種類がある。後者の攻撃者に対して、[2]では復元時に各サーバが乱数rj、qjを交換して送信情報を変化させる以下の対策を提案している。以降、攻撃者といえば外部からの攻撃者を指し、後者の攻撃者をさす場合は復元者という名前をそのまま用いる。外部の攻撃者には演算結果も漏らすことはできないが、後者は演算結果を知る立場にあるという違いがある。 [2] is safe against external attackers. However, it is not safe if an attacker from the inside, that is, a restorer who can know only the operation result of ab becomes an attacker to know the original secret information a and b itself. Because the restorer knows α and β separately in [Restore] (2), if the restorer eavesdrops on the server, if k / 2 servers are eavesdropped, the k distributed values of a and Since k distributed values of b are obtained, the original secret information is leaked. Therefore, when an attacker who knows nothing about the confidential calculation to the attacker and a restorer who knows the calculation result become an attacker to know the secret information that is the original information of the calculation result There are two types. For the latter attacker, [2] proposes the following countermeasures in which each server changes the transmission information by exchanging random numbers rj and qj at the time of restoration. Hereinafter, an attacker refers to an attacker from the outside, and when referring to the latter attacker, the name “restorer” is used as it is. The external attacker cannot leak the calculation result, but the latter is in a position to know the calculation result.
[復元]
(1)サーバj(j=1,…,n)は各々1つずつの乱数rjとqjを生成して、互いに交換しr=r1・・・rn、q=q1・・・qnを生成する。
(2)サーバj(j=1,…,k)はWab(xj)とWab’(xj)にrq、Wa1(xj)にr、Wb1(xj)にqをかけて復元者に送る。
(3)復元者の復元端末はr・Wa1(xj)からrαを、q・Wb1(xj)からqβを復元し、Wab’(xj)をrαとrβで割り、Wab(n+xj)を作る。
(4)復元者の復元端末はWab(xj)とWab(n+xj)から2k-1個の分散値を用いてabを復元する。
[Restore]
(1) Each server j (j = 1,..., N) generates one random number rj and qj and exchanges them to generate r = r1... Rn, q = q1. .
(2) The server j (j = 1,..., K) sends Wab (xj) and Wab ′ (xj) to rq, Wa1 (xj) to r, and Wb1 (xj) to q and sends it to the restorer.
(3) The restorer's restoration terminal restores rα from r ・ Wa1 (xj), qβ from q ・ Wb1 (xj), divides Wab '(xj) by rα and rβ, and then Wab (n + xj) create.
(4) The restorer's restoration terminal restores ab using 2k-1 variance values from Wab (xj) and Wab (n + xj).
 この手法は復元者が盗聴できるのは上記秘匿乗算において[乗算]や[復元]処理中以外の分散値保存時だけとするならば、復元者が保存時に盗聴したk個の分散値にかかった乱数と[復元]時に得る乱数の対応が異なるため、元の秘密情報は復元できない。しかし、復元者が1台のサーバを[復元]中においても盗聴できれば、全サーバはrとqを知るため、復元したrα、qβを各々rとqで割ればαとβが個別に得られるため、復元者はやはり秘密情報a,bを得ることができ安全でない。よって、[2]の手法は(k,n)秘密分散法においてサーバ台数を変化させずに乗算可能としているが、復元者が攻撃者である場合、秘密情報そのものが漏洩するため安全ではない。よって、(k,n)秘密分散法においてサーバ台数を変化させずに、かつ秘密情報漏えいのない手法は今まで存在していないといえる。また、この手法は後述する(III)秘匿演算の連続に関する問題についても考慮されていない。すなわち、1つのサーバが2つの分散値を持ち、かつ1つが秘匿化されたままでは以下に述べる次数変換を適用できず、連続演算できない。また、(II)の除算に関する問題も全く考慮されていない。さらに、(VI)の分散値の小型化や(VII)の多値化法式による高速化も考慮されていない。 In this method, if the restorer can eavesdrop only on the distributed value storage other than [multiplication] or [restoration] processing in the above-mentioned secret multiplication, it depends on the k distributed values that the restorer eavesdropped on save. Since the correspondence between the random number and the random number obtained at the time of [restoration] is different, the original secret information cannot be restored. However, if the restorer can eavesdrop on a single server during [Restore], all servers will know r and q. Therefore, by dividing the restored rα and qβ by r and q, α and β can be obtained separately. Therefore, the restorer can still obtain the secret information a and b, which is not safe. Therefore, the method [2] allows multiplication without changing the number of servers in the (k, n) secret sharing method, but if the restorer is an attacker, the secret information itself is leaked, which is not safe. Therefore, in the (k, n) secret sharing method, it can be said that there is no method that does not change the number of servers and does not leak secret information. In addition, this method does not take into account (III) the problem related to the continuation of the secret calculation described later. That is, if one server has two distributed values and one is kept secret, the degree conversion described below cannot be applied and continuous calculation cannot be performed. Further, the problem relating to the division of (II) is not considered at all. Furthermore, the reduction of the dispersion value of (VI) and the speeding up by the multi-value method of (VII) are not considered.
(II)除算に関する問題
 次に、除算について考える。上記(2)(3)を乗算することによって定数項にa・bを持つ分散値を作れるが、(2)を(3)で割ってもb/aを定数項に持つ分散値は得られない。すなわち、分散値を用いて秘密情報同士の除算を実現する手法は難しく、少なくとも乗算と同様の手法では実現できないことが知られている。よって、従来法及び[2]の手法では除算用に特殊な手段を用意する必要がある。よって、除算も乗算と同様の手段で実現できれば秘匿演算の効率化が実現できる。
(II) Problems related to division Next, consider division. By multiplying (2) and (3) above, a variance value having a · b in the constant term can be created, but even if (2) is divided by (3), a variance value having b / a in the constant term is obtained. Absent. That is, it is known that it is difficult to achieve a division between secret information using a variance value, and at least not the same method as multiplication. Therefore, it is necessary to prepare a special means for division in the conventional method and the method [2]. Therefore, if the division can be realized by the same means as the multiplication, the efficiency of the secret calculation can be realized.
(III)秘匿演算の連続に関する問題
 前述した秘匿演算の連続について考える。例として、秘密情報aを定数項にもつ多項式Wa(x)、秘密情報bを定数項に持つ多項式Wb(x)、秘密情報cを定数項に持つ多項式Wc(x)を用いてa・b+cの積和演算を求める場合、一般的にはまずWa(x)Wb(x)の乗算を行い、その後Wa(x)Wb(x)+Wc(x)の加算を連続して行う。この場合、各多項式の次数をk-1次とすると、Wa(x)Wb(x)の次数は2k-2になっているのでk-1次のWc(x)との加算は整合性がよくない。できれば、Wa(x)Wb(x)をk-1次の多項式に変換して、Wc(x)と加算することが望まれる。それに対しては、積多項式について以下に示す次数の変換法が知られている[1]。ここでは簡単のため、2k次の多項式をk次の多項式に変換する場合を示す。ここで、h(x)を2k次多項式、f(x)とg(x)をk次多項式とする。さらに、n台のサーバに対するh(x)の分散値をW=(W1,W2,・・・,Wn)とする。
h(x)=h0+h1x+・・・+h2kx2k
Wi=h(xi)=f(xi)g(xi) (i=1,・・・,n)
(III) Problems Concerning Concealment Calculation Continuation Consider the above-described concealment calculation continuation. As an example, a polynomial b (x) having secret information a as a constant term, a polynomial Wb (x) having secret information b as a constant term, and a polynomial Wc (x) having secret information c as a constant term, a · b When calculating a product-sum operation of + c, generally, multiplication of Wa (x) Wb (x) is first performed, and then addition of Wa (x) Wb (x) + Wc (x) is continuously performed. In this case, if the order of each polynomial is k-1 order, the order of Wa (x) Wb (x) is 2k-2, so the addition with k-1 order Wc (x) is consistent. not good. If possible, it is desirable to convert Wa (x) Wb (x) into a k-1 order polynomial and add it to Wc (x). For this, the following order conversion methods are known for product polynomials [1]. Here, for simplicity, a case where a 2k-order polynomial is converted to a k-order polynomial is shown. Here, h (x) is a 2k degree polynomial, and f (x) and g (x) are k degree polynomials. Furthermore, the variance of h (x) for n servers is W = (W1, W2,..., Wn).
h (x) = h0 + h1x + ... + h2kx 2k
Wi = h (xi) = f (xi) g (xi) (i = 1, ..., n)
 すなわち、f(x)g(x)の乗算結果であるh(x)は2k個のWiがあれば解ける。ここで、h(x)のk次までの係数で構成される多項式をh’(x)とし、その分散値をRiとすると、W=(W1,W2,・・・,Wn)とR=(R1,R2,・・・,Rn)との間にはR=W・Aの関係がある。ただし、xiをサーバIDとして、BとPを以下に定義する。
h’(x)=h0+h1x+・・・+hkxk
Ri=h’(xi)
That is, h (x), which is the multiplication result of f (x) g (x), can be solved if there are 2k Wis. Here, if a polynomial composed of coefficients up to the kth order of h (x) is h ′ (x) and its variance is Ri, W = (W1, W2,..., Wn) and R = (R1, R2,..., Rn) have a relationship of R = W · A. However, xi is a server ID and B and P are defined below.
h '(x) = h0 + h1x + ... + hkx k
Ri = h '(xi)
Figure JPOXMLDOC01-appb-M000002
Figure JPOXMLDOC01-appb-M000002
 Aは秘密情報を含まない予め計算可能な行列である。Aがわかれば、RはWにAをかけることによって得られる。すなわち、乗算結果であるh(x)の分散値として得られるWiはi番目のサーバi(i=1,・・・,n)が持っているので、そのWiに上記Aをかける、すなわち以下を計算することで新たな分散値であるRi(i=1,…,n)が得られる。この分散値Riはh(x)と同じ定数項をもつk-1次の多項式h’(x)に対する分散値であるため、k個あれば解くことができる。 A is a pre-computable matrix that does not contain secret information. If A is known, R can be obtained by multiplying W by A. That is, since the i-th server i (i = 1,..., N) has Wi obtained as a variance value of h (x) as a multiplication result, multiply the Wi by A, that is, , Ri (i = 1,..., N), which is a new dispersion value, is obtained. Since this variance value Ri is a variance value for a k-1 order polynomial h '(x) having the same constant term as h (x), it can be solved if there are k.
Figure JPOXMLDOC01-appb-M000003
Figure JPOXMLDOC01-appb-M000003
 よって、Rからk個の分散値を集めればa・bの復元が可能である。すなわち、f(x)=Wa(x)、g(x)=Wb(x)とすればh(x)=Wa(x)Wb(x)であるが、(7)式または(8)式の変換により、h(x)の下位半分の次数をもつh’(x)=Wa(x)Wb(x)に変換でき、Rはh’(x)の分散値となる。よって、Rのk個の分散値にWc(x)のk個の分散値を足せばWa(x)Wb(x)+Wc(x)に対するk個の分散値が得られる。ただし(8)の演算のために、n個のサーバに分散されたWiを1つの装置に集めて、その装置が各iに対する(8)式の計算(W・Aの演算)を行う場合、その装置を盗聴することで乗算結果であるabが漏洩する可能性がある。また、サーバiが自分のもつ分散値WiにaiiをかけたRi=Wi・aiiを次のサーバに送り、次のサーバi+1が自分のもつWi+1にai+1,iをかけて送られてきた値と足すことでRi=Wi・aii+Wi+1・ai+1,i=Ri+Wi+1・ai+1,iを計算し、さらに次のサーバi+2に送り、全サーバを回ればサーバiはRiが得られる。しかしこのときも、攻撃者が1つのサーバを盗聴していれば、以下のように全てのWi(i=1,…,n)を得ることができる。例えば、攻撃者がサーバi+1を盗聴していた場合、攻撃者は元々サーバi+1がもつ分散値Wi+1を知る。次に、サーバiから送られてきたWi・aiiを公知のaiiで割ることでWiを得る。次にWi-1・ai-1,i+1+Wi・ai,i+1が来れば、Wiは得ているため公知のai-1,i+1とai,i+1と組み合わせてWi-1を得る。これを繰り返せば攻撃者は全てのWi(i=1,…,n)を得ることができる。よって、攻撃者は得たn個の分散値を用いて、演算結果であるabを得ることができる。ab+cの積和演算等においてその途中結果であるabが復元者以外の攻撃者に漏洩することは問題がある。よって、積和演算のように乗算と加算を連続して行う場合、連続演算が可能なアルゴリズムとすることに加えて、その途中結果を秘匿して次の演算につなげることも重要である。 Therefore, a and b can be restored by collecting k variance values from R. That is, if f (x) = Wa (x) and g (x) = Wb (x), h (x) = Wa (x) Wb (x), but (7) or (8) Can be converted to h ′ (x) = Wa (x) Wb (x) having the lower half order of h (x), and R is a variance value of h ′ (x). Therefore, k dispersion values for Wa (x) Wb (x) + Wc (x) can be obtained by adding k dispersion values for Wc (x) to k dispersion values for R. However, when the Wis distributed to n servers are collected in one device for the calculation of (8), and that device performs the calculation of Eq. (8) for each i (the calculation of W · A), If the device is wiretapped, the multiplication result ab may be leaked. Also, server i sends Ri = Wi · aii, which is aii multiplied by its own distributed value Wi, to the next server, and next server i + 1 multiplies its own Wi + 1 by ai + 1, i Ri = Wi ・ aii + Wi + 1 ・ ai + 1, i = Ri + Wi + 1 ・ ai + 1, i is calculated by adding to the sent value, and further sent to the next server i + 2, If you go through all the servers, you can get Ri for server i. However, even at this time, if the attacker eavesdrops on one server, all Wi (i = 1,..., N) can be obtained as follows. For example, if the attacker is eavesdropping on the server i + 1, the attacker knows the variance value Wi + 1 that the server i + 1 originally has. Next, Wi is obtained by dividing Wi · aii sent from server i by known aii. Next, if Wi-1 ・ ai-1, i + 1 + Wi ・ ai, i + 1 comes, Wi is obtained, so Wi in combination with known ai-1, i + 1 and ai, i + 1 Get -1. By repeating this, the attacker can obtain all Wi (i = 1, ..., n). Therefore, the attacker can obtain ab as a calculation result by using the obtained n variance values. There is a problem that ab, which is an intermediate result in a product calculation of ab + c, leaks to an attacker other than the restorer. Therefore, when performing multiplication and addition continuously as in the product-sum operation, in addition to making the algorithm capable of continuous operation, it is important to conceal the intermediate result and connect to the next operation.
(IV)秘匿検索に関する問題
 (I)~(III)は、秘匿乗算を含む秘匿演算に関連する問題であるが、最初に述べたように秘密情報が分散値として大容量ストレージに分散・保管され、その分散値をネットワーク経由でユーザがアクセスする場合、検索に関する以下のような問題も生じる。例えば、企業の経理処理を行うようなアプリを考え、その入金や出金に関する金額を秘匿するために上記秘密分散法を用いているとする。すなわち、企業の社員Aは自分の業務上発生した入金や出金を企業のn台のサーバに秘密分散しており、企業は全社員からの入金や出金に関する分散値を用いて合計や平均、分散などを計算し管理しているとする。この場合、n台のサーバには入出金に関する金額の分散値と一緒に、その金額が生じた日時を検索IDとして保存している必要がある。これによって、例えば社員Aがある日時の入出金を確認したい場合、その日時を検索IDとしてk個のサーバに送れば、各サーバはその検索IDを用いて対応する分散値を検索し社員Aに伝え、社員Aはそれを復元して金額情報を確認できる。また、そのアプリの秘匿計算を利用する場合、ある期間を指定すれば、そのアプリはその期間内にある分散値を、日時を検索IDとして集め、その期間内の金額の合計や、平均値、分散などといった各種統計値を、秘密情報である各金額をサーバに知られることなく計算でき、企業の会計担当者などに伝えることができる。しかし逆に、金額を指定し、その金額が発生した日時を特定するといった検索はできない。例えば社員Aが発生した金額のみ記憶しており、それが発生した日時を検索しようとしても、その金額は秘密分散されているため、その分散値がわからなければ検索IDを逆引きすることはできない。さらに、日時から金額を検索する場合においても、日時情報は秘匿されていないため、どの日時の情報が検索されているかサーバは知ることができる。すなわち、企業Aがデータ保管のためのサーバシステムをアウトソーシングしている場合、アウトソーシング先の企業は企業Aにおいて重要な取引があった日(よく検索されている日)などを知ることができる。これに対して、検索IDである日時を暗号化して保存したとすれば、サーバはいつの日時のデータが検索されているかわからないが、暗号化したユーザしか金額の検索ができない。企業の取引に関する金額データなどの場合、そのデータは複数の人によってアクセスされると考えられるが、この場合、暗号化に用いたその暗号鍵を複数の人で共有する必要ができ安全性が低下する。よって、ユーザが何を検索しているかサーバにわからせず、暗号鍵のような特殊な情報を共有しなくても秘密分散した分散値を検索できる仕組みが必要である。また、秘密情報と検索IDは相互に検索されることがあるので、秘密情報の分散値が秘匿演算可能な形であれば、検索IDの分散値も同様の形をしていることが望まれる。
(IV) Problems related to confidential search (I) to (III) are problems related to the confidential calculation including the confidential multiplication. As described above, the confidential information is distributed and stored in the large-capacity storage as a distributed value. When the user accesses the distributed value via the network, the following problem relating to search also occurs. For example, suppose that an application that performs accounting processing of a company is used, and the above secret sharing method is used in order to conceal the amount related to the deposit and withdrawal. In other words, company employee A secretly distributes the deposits and withdrawals generated in his / her business to n servers of the company, and the company uses the variance value for deposits and withdrawals from all employees to calculate the total and average Suppose you are calculating and managing variances. In this case, the n servers need to store the date and time when the amount of money is generated as a search ID together with the variance value of the amount related to deposit and withdrawal. Thus, for example, if employee A wants to confirm deposits and withdrawals at a certain date and time, and sends that date to k servers as the search ID, each server searches the corresponding distributed value using that search ID and sends it to employee A. Employee A can restore it and check the amount information. In addition, when using a secret calculation of the application, if a certain period is specified, the application collects the distributed values in the period as the search ID, the sum of the amount in the period, the average value, Various statistical values such as variance can be calculated without the server knowing the amount of money, which is confidential information, and can be communicated to the accounting staff of the company. However, conversely, it is not possible to perform a search by specifying an amount and specifying the date and time when the amount occurred. For example, only the amount of money generated by employee A is stored, and even if an attempt is made to search for the date and time when it occurred, the amount is secretly shared, so if the distribution value is not known, the search ID cannot be reversed. . Furthermore, even when searching for an amount from the date and time, the date and time information is not concealed, so the server can know which date and time information is being searched. That is, when the company A outsources a server system for data storage, the outsourcing destination company can know the date on which an important transaction was made in the company A (the day that is often searched). On the other hand, if the date and time of the search ID are encrypted and stored, the server does not know when the date and time of the data is being searched, but only the encrypted user can search the amount. In the case of monetary data related to corporate transactions, the data is considered to be accessed by multiple people, but in this case, the encryption key used for encryption needs to be shared by multiple people, reducing security To do. Therefore, there is a need for a mechanism that does not allow the server to know what the user is searching for, and can search for a secret value shared without sharing special information such as an encryption key. Also, since the secret information and the search ID may be searched for each other, it is desirable that the distributed value of the search ID has the same form as long as the distributed value of the secret information can be concealed. .
(V)分散値の秘匿更新に関する問題
 さらに、秘密分散によって秘匿演算及び秘匿検索を実装できるシステムがネットワーク上に実現できた場合、そのシステムが保管している情報の更新は安全性を向上させるために必要なもう1つの大きな課題である。すなわち、n台のサーバからなるシステムがネットワーク上に構成された場合、秘密分散法によりk-1台までの情報漏えい(不正アクセス)があったとしても秘密情報は安全であるが、k-1台以下の情報漏えいがあった場合それをそのままにしていては、攻撃を受け続けた場合、いつかk台の情報が漏洩する可能性がある。よって、定期的にまたはその情報を使用するたびに保管している情報を更新できれば安全性が保たれる。具体的には、(1)の形で保存されている分散値の秘密情報sを変えずに乱数a 1~a k-1を新たな乱数に更新できれば、前の不正アクセスで漏洩した分散値を無効にできる。また、安全性を向上させるため式(1)の閾値kの値を大きくする場合も、秘密情報sは変えずに多項式の次数及び乱数を変更しなければならない。さらに、秘密情報s自体も使用する毎に変更する場合も分散値の更新が必要になる。これらに対して自明な方法としては、システムが一旦k個の分散値を集め、秘密情報sを復元して新たな多項式をたてて再分散を行うことが考えられるが、この場合更新の過程で秘密情報sが復元されるため安全性が低下する。一方、分散値の更新に関しては[3]が知られているが、この手法はn-k台のサーバが分散値の差分情報の復元処理を行うため効率的ではない。さらに、n-k台のサーバが全サーバの更新に必要な差分情報を知るため、n-k台のうちの1台のサーバを盗聴されると他のサーバの更新値が漏洩し、安全性が低下する。よって、安全性を低下させず、かつ効率的に分散値を更新できる手法が必要である。また、従来手法は秘密情報及び各係数が秘匿化されていない、すなわち分散値が秘匿化されていない場合を想定した更新法であり、後述する実施の形態に示す秘密情報及び各係数が秘匿化されている、すなわち分散値が秘匿化されてい場合の更新法は知られていない。よって、秘匿化された分散値に対しても適用できる更新法が望まれる。
(V) Problems related to secret update of distributed value Furthermore, when a system that can implement secret calculation and secret search by secret sharing can be realized on the network, updating the information stored in the system improves safety. This is another big challenge that needs to be done. That is, when a system consisting of n servers is configured on the network, the secret information is safe even if there is information leakage (unauthorized access) up to k-1 by the secret sharing method, but k-1 If there is information leakage below the table, if it is left as it is, if it continues to be attacked, there is a possibility that k items of information will be leaked sometime. Therefore, safety can be maintained if the stored information can be updated regularly or whenever the information is used. Specifically, if the random numbers a 1 to a k-1 can be updated to new random numbers without changing the secret information s of the distributed values stored in the form (1), the distributed values leaked by the previous unauthorized access Can be disabled. Also, when increasing the threshold value k in equation (1) in order to improve security, the order of the polynomial and the random number must be changed without changing the secret information s. Furthermore, it is necessary to update the distributed value when the secret information s itself is changed every time it is used. As a self-evident method, it is conceivable that the system once collects k variance values, restores the secret information s, and creates a new polynomial for redistribution. Since the secret information s is restored, the security is lowered. On the other hand, although [3] is known for updating the variance value, this method is not efficient because nk servers perform restoration processing of difference information of variance values. Furthermore, since the nk servers know the difference information necessary for updating all the servers, if one of the nk servers is wiretapped, the update values of the other servers are leaked and the safety is lowered. Therefore, there is a need for a method that can efficiently update the variance value without reducing the safety. Also, the conventional method is an update method that assumes the case where the secret information and each coefficient are not concealed, that is, the distributed value is not concealed, and the secret information and each coefficient shown in the embodiment described later are concealed. However, there is no known update method in the case where the variance value is concealed. Therefore, an update method that can be applied to a concealed distributed value is desired.
(VI)記憶容量の小型化に関する問題
 秘密分散法は1つの秘密情報をn個に分散するため、大きな記憶容量を必要とする。記憶容量の小型化を実現するために、分散情報サイズを小型化する(k,L,n)ランプ型秘密分散法や、分散情報の数を削減する(k,n)非対称秘密分散法[4]などが知られている。ランプ型秘密分散法は最も大きな記憶容量削減を実現する一方、秘密情報の復元はk台のサーバがあれば実行できるため、サーバを提供している企業などがk台のサーバの情報を集めれば秘密情報の所有者であるユーザの意思に関係なく秘密情報の復元が可能である。それに対して、非対称秘密分散は記憶容量の小型化と、秘密情報の復元にユーザ自身が参加可能という特徴を持ち、ユーザが参加しなければ秘密情報は復元されないので、個人情報の利用などにおいて大きな役割を果たす。よって、ランプ型秘密分散法と非対称秘密分散に対して、かつ上記(I)~(V)の特徴をもつ秘匿計算、秘匿検索、秘匿更新が実現できれば、個人情報の秘匿演算に同様の効果をもたらすことが期待される。さらに、これらの手法の組み合わせは考慮されておらず、その組合せによって最適な小型化が期待できる。
(VI) Problems concerning miniaturization of storage capacity Since the secret sharing method distributes one secret information to n pieces, a large storage capacity is required. In order to reduce the storage capacity, the (k, L, n) ramp-type secret sharing method that reduces the size of the shared information and the (k, n) asymmetric secret sharing method that reduces the number of shared information [4 ] Is known. While the ramp-type secret sharing method achieves the largest reduction in storage capacity, the restoration of secret information can be performed if there are k servers, so if companies providing servers collect information on k servers, etc. The secret information can be restored regardless of the intention of the user who is the owner of the secret information. On the other hand, asymmetric secret sharing has the feature of reducing the storage capacity and allowing users to participate in the restoration of secret information. Secret information is not restored unless the user participates. Play a role. Therefore, if a secret calculation, a secret search, and a secret update having the features (I) to (V) described above can be realized with respect to the ramp-type secret sharing method and the asymmetric secret sharing, the same effect can be obtained for the secret calculation of personal information. Expected to bring. Furthermore, a combination of these methods is not considered, and an optimum miniaturization can be expected by the combination.
(VII)処理の高速化の問題
 以上ではShamirの(k,n)秘密分散法を基本として説明したが、Shamir法は多項式の合成や多項式を解く処理が必要であり、処理が効率的でない。それに対して、多項式処理を行わず、XOR演算のみを用いて高速に(k,n)秘密分散を実行する手法(以降、XOR法)なども知られている。しかし、XOR法は秘密情報をビット列として扱うために、秘密情報を数値として扱う演算、すなわち秘匿演算を実現することができなかった。そこで、本発明ではXOR法を拡張し、秘密情報をビット列ではなく数値として扱い、秘匿演算できる手法にする。ただし、XOR法の秘密情報をビット列ではなく数値として扱い秘匿加算を行う手法に関しては既に提案されている[5]が、秘匿乗算については提案されていない。このXOR法の拡張法(以降、多値化法)は秘密情報の復元は分散値の加算と減算だけで実現できるため、多項式を解く必要があるShamir法と比べ、高速に演算が実行できる。よって、XOR法の拡張方式に関しても上記(I)~(V)の特徴をもつ秘匿演算、秘匿検索、秘匿更新が実現できれば非常に効率的な処理が実現できる。
(VII) Problem of speeding up processing The above description is based on Shamir's (k, n) secret sharing method. However, the Shamir method requires processing of polynomial synthesis and polynomial solving, and processing is not efficient. On the other hand, a method (hereinafter referred to as XOR method) that performs (k, n) secret sharing at high speed using only XOR operation without performing polynomial processing is also known. However, since the XOR method treats secret information as a bit string, an operation that treats secret information as a numerical value, that is, a secret operation, cannot be realized. Therefore, in the present invention, the XOR method is extended so that secret information is handled as a numerical value instead of a bit string, so that a secret calculation can be performed. However, a method for performing secret addition by treating secret information of the XOR method as a numerical value instead of a bit string has already been proposed [5], but secret multiplication is not proposed. Since the XOR method extension method (hereinafter referred to as the multi-value method) can restore the secret information only by adding and subtracting the variance value, the calculation can be performed at a higher speed than the Shamir method that requires solving the polynomial. Therefore, regarding the XOR method expansion method, if a secret operation, a secret search, and a secret update having the features (I) to (V) can be realized, a very efficient process can be realized.
(VIII)総合的な秘密分散及び秘匿計算に関する問題
 よって、上記の特徴を全て実現する(k,n)秘密分散法に適した手法が実現されることは重要である。特に、XOR法に対するランプ型秘密分散法は提案されているが、XOR法を拡張した多値化法に対応するランプ型秘密分散法は提案されていない。また、非対称秘密分散法と多値化法の組み合わせ、非対称秘密分散法をランプ型秘密分散法の組み合わせ、非対称秘密分散法と多値化法のランプ型秘密分散法との組み合わせも提案されておらず、さらにそれらを用いた秘匿演算も提案されていない。特に、非対称秘密分散法と多値化法の組み合わせ、非対称秘密分散法とランプ型秘密分散法、非対称秘密分散法と多値化法に対応するランプ型秘密分散法の組合せは記憶容量の小型化と高速化を同時に実現できる。
(VIII) It is important to realize a technique suitable for the (k, n) secret sharing method that realizes all of the above characteristics due to problems related to comprehensive secret sharing and secret calculation. In particular, a ramp-type secret sharing method for the XOR method has been proposed, but a ramp-type secret sharing method corresponding to a multilevel method that extends the XOR method has not been proposed. In addition, a combination of the asymmetric secret sharing method and the multilevel method, a combination of the asymmetric secret sharing method and the ramp type secret sharing method, and a combination of the asymmetric secret sharing method and the ramp type secret sharing method of the multilevel method have not been proposed. Furthermore, there is no proposal for a concealment operation using them. In particular, the combination of the asymmetric secret sharing method and the multilevel method, the asymmetric secret sharing method and the ramp type secret sharing method, and the combination of the asymmetric secret sharing method and the ramp type secret sharing method corresponding to the multilevel method reduce the storage capacity. And high speed at the same time.
 1つの側面として、上記何れかの問題を解決することが目的である。 As one aspect, the purpose is to solve any of the above problems.
 上記目的達成するため請求項1に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて分散値を計算する計算装置であって、k個以上の秘密情報の各々の分散値を計算する手段と、前記k個以上の秘密情報から合成値を生成する手段と、前記合成値を新たな秘密情報に作用させた秘匿化秘密情報を生成する手段と、を備える。 In order to achieve the above object, according to the first aspect of the present invention, n is an integer, k is an integer of n or less, L is an integer of 1 to k, and secret information is distributed into n, k of n Secret information can be recovered by collecting the distributed values of the secret information, and a computing device for calculating the distributed value in a system that performs a secret operation using means that cannot recover the secret information if kL or less, and k or more secret information Means for calculating each variance value, means for generating a composite value from the k or more pieces of secret information, and means for generating concealed secret information obtained by applying the composite value to new secret information. Prepare.
 請求項2に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘匿演算をする計算装置であって、
 第1の秘匿化秘密情報に用いられた第1の乱数を構成する複数の乱数のうちの1つである第1の部分乱数の分散値と、第2の秘匿化秘密情報に用いられた第2の乱数を構成する複数の乱数うちの1つである第2の部分乱数の分散値とを集めて、前記第1の部分乱数と前記第2の部分乱数を復元する手段と、
 前記復元した第1の部分乱数と第2の部分乱数を合成する手段と、
 を備える計算装置。
In the invention of claim 2, n is an integer, k is an integer of n or less, L is an integer of 1 to k, secret information is distributed to n, and k of the n distributed values can be collected. A computing device that performs a secret operation in a system that performs a secret operation using means that can restore secret information and cannot restore the secret information with kL or less,
The distributed value of the first partial random number, which is one of a plurality of random numbers constituting the first random number used for the first concealment secret information, and the second used for the second concealment secret information. Means for collecting a variance value of a second partial random number that is one of a plurality of random numbers constituting a random number of 2, and restoring the first partial random number and the second partial random number;
Means for synthesizing the restored first partial random number and second partial random number;
A computing device comprising:
 請求項3に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘匿演算をする計算装置であって、k個以上の乱数を用いて秘匿化された秘匿化秘密情報を復元する手段と、前記復元した秘匿化秘密情報と他の値とに基づいて所定の演算をする手段と、を備える。 In the invention according to claim 3, n is an integer, k is an integer of n or less, L is an integer of 1 to k, secret information is distributed to n, and k of the n distributed values can be collected. A computing device that performs a secret operation in a system that performs a secret operation using means that cannot restore secret information if kL or less, and is concealed using k or more random numbers Means for restoring the concealed secret information, and means for performing a predetermined calculation based on the restored concealed secret information and other values.
 請求項4に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘密情報を復元する計算装置であって、k個以上の乱数を用いて秘匿化された秘匿化秘密情報を復元する手段と、前記乱数を合成する手段と、前記合成された乱数を用いて、前記復元された前記秘匿化秘密情報の秘匿化を解除する手段と、を備える。 In the invention according to claim 4, n is an integer, k is an integer of n or less, L is an integer of 1 to k, the secret information is distributed to n, and k of the n distributed values can be collected. A computing device that restores secret information in a system that performs secret computation using means that cannot restore secret information if kL or less, and is concealed using k or more random numbers Means for restoring the concealed secret information, means for combining the random numbers, and means for releasing the concealment of the restored secret information using the combined random numbers.
 請求項5に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘匿演算をする計算装置であって、k個以上の乱数を用いて秘匿化された秘匿化秘密情報における第1の合成乱数と、第2の合成乱数を構成するk個以上の乱数とを組み合わせて、前記第1の合成乱数を変換する手段を備える。 In the invention of claim 5, n is an integer, k is an integer of n or less, L is an integer of 1 to k, secret information is distributed to n pieces, and k of the n distributed values can be collected. A computing device that performs a secret operation in a system that performs a secret operation using means that cannot restore secret information if kL or less, and is concealed using k or more random numbers Means for converting the first synthesized random number by combining the first synthesized random number in the confidential information and the k or more random numbers constituting the second synthesized random number.
 請求項6に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘匿演算をする計算装置であって、秘匿化されていない分散値に、別の秘匿化秘密情報を構成するk個以上の乱数を作用させて秘匿化する手段を備える。 In the invention according to claim 6, n is an integer, k is an integer of n or less, L is an integer of 1 to k, secret information is distributed to n pieces, and k of the n distributed values can be collected. Is a computing device that performs a secret operation in a system that performs a secret operation using means that cannot restore secret information with k−L or less, and it is possible to restore another concealment value to a non-confidential distributed value. There is provided means for concealing by applying k or more random numbers constituting the structured secret information.
 請求項7に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて分散値を計算する計算装置であって、複数の新たな秘密情報を秘匿化して複数の分散値を計算する手段と、前記複数の分散値の各々の並び順を、前記秘匿化する前の前記複数の新たな秘密情報の予め定められた並び順に応じて指定する手段と、を備える。 In the invention according to claim 7, n is an integer, k is an integer of n or less, L is an integer of 1 to k, secret information is distributed to n pieces, and k of the n distributed values can be collected. A computing device that calculates a distributed value in a system that performs a secret operation using means that can restore secret information and cannot restore secret information with k−L or less, and conceals a plurality of new secret information to Means for calculating a variance value of the plurality of variance values, and means for designating the arrangement order of each of the plurality of variance values in accordance with a predetermined arrangement order of the plurality of new secret information before the concealment .
 請求項8に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて検索する秘密情報を指定する計算装置であって、検索用秘密情報に乱数を作用させ秘匿化する手段と、前記システムから受信した値に前記乱数を作用させる手段と、を備える。 In the invention according to claim 8, n is an integer, k is an integer of n or less, L is an integer of 1 to k, secret information is distributed to n, and k of the n distributed values can be collected. A computer that specifies secret information to be searched in a system that performs a secret calculation using means that cannot restore secret information with kL or less pieces, and allows a random number to act on the search secret information. Means for concealing, and means for applying the random number to a value received from the system.
 請求項9に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて指定された秘密情報を検索する計算装置であって、前記秘密情報に対応する第1の検索用秘密情報を第1の乱数で秘匿化すると共に、入力された第2の検索用秘密情報を第2の乱数で秘匿化する手段と、前記秘匿化された前記第1の検索用秘密情報に基づく第1の値と前記秘匿化された前記第2の検索用秘密情報に基づく第2の値との差に基づいて、前記第1の検索用秘密情報と前記第2の検索用秘密情報との差を取得する手段と、を備える。 The invention according to claim 9 is such that n is an integer, k is an integer of n or less, L is an integer of 1 to k, and secret information is distributed to n, and k of the n distributed values can be collected. A computing device that retrieves secret information designated in a system that performs a ciphering operation using means that cannot restore secret information when kL or less, and the first information corresponding to the secret information. The search secret information is concealed with the first random number, the inputted second search secret information is concealed with the second random number, and the concealed first search secret Based on the difference between the first value based on information and the second value based on the concealed second search secret information, the first search secret information and the second search secret Means for obtaining a difference from the information.
 請求項10に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて分散値の更新を行う計算装置であって、乱数で秘密情報が秘匿化されて得られた分散値に対して、新たな乱数を生成し、前記生成した新たな乱数を新たな分散値として保存する手段を備える。 The invention according to claim 10 is such that n is an integer, k is an integer of n or less, L is an integer of 1 to k, and secret information is distributed to n, and k distributed values of n can be collected. A computing device that updates a distributed value in a system that performs a secret operation using a means that can restore secret information and cannot restore secret information with kL or less, and is obtained by concealing secret information with a random number. A means for generating a new random number for the distributed value and storing the generated new random number as a new distributed value is provided.
 請求項11に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて分散値の更新を行う計算装置であって、k個以上の補正情報から秘密情報を更新する更新値を計算する手段を備える。 The invention according to claim 11 is such that n is an integer, k is an integer of n or less, L is an integer of 1 to k, the secret information is distributed to n, and k of the n distributed values can be collected. A computing device that updates a distributed value in a system that performs a secret operation using means that cannot restore secret information with kL or less, and obtains secret information from k or more correction information. Means for calculating an update value to be updated are provided.
 請求項12に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて分散値を計算する計算装置であって、生成されたh(1~k-1までの整数)個の乱数を分散値として定め、前記h個の分散値と前記秘密情報とに基づいて、n-h個の分散値を計算する手段と、k個以上の秘密情報から合成値を生成する手段と、前記合成値を新たな秘密情報に作用させた秘匿化秘密情報を計算する手段と、を備える。 The invention according to claim 12 is such that n is an integer, k is an integer of n or less, L is an integer of 1 to k, and secret information is distributed to n, and k distributed values of n can be collected. A calculation device for calculating a distributed value in a system that performs a secret calculation using means that cannot restore secret information with kL or less, and generates h (1 to k−1) Integer) random numbers are defined as variance values, and n−h variance values are calculated based on the h variance values and the secret information, and a composite value is obtained from k or more secret information. Means for generating, and means for calculating concealed secret information obtained by applying the combined value to new secret information.
 請求項13に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて分散値を計算する計算装置であって、秘密情報をe進数d桁の数値としたとき、前記秘密情報をL(n-1)分割を行ってe進数d/L(n-1)桁の数値とする手段と、前記数値とされた秘密情報の分散、復元、及び秘匿演算の少なくとも1つを、
Figure JPOXMLDOC01-appb-M000004

より大きな素数を法として、乗算及び除算を加算及び減算に分解することなく、加算と減算だけで行う手段と、を備える。
The invention according to claim 13 is such that n is an integer, k is an integer of n or less, L is an integer of 1 to k, the secret information is distributed to n, and k of the n distributed values can be collected. A computing device that calculates a distributed value in a system that performs a secret operation using means that cannot restore secret information if kL or less, and the secret information is a numerical value of e-adic and d digits A means for dividing the secret information into L (n-1) divisions to obtain numerical values of e-adic d / L (n-1) digits, and for the distribution, restoration, and concealment of the secret information converted into the numerical values. At least one,
Figure JPOXMLDOC01-appb-M000004

Means for performing only addition and subtraction without decomposing multiplication and division into addition and subtraction, using a larger prime number as a modulus.
 請求項14に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘匿演算または復元をする計算装置であって、秘匿化され複数の桁に分割された秘匿化秘密情報の桁に合わせて所定の演算を行う手段を備える。 In the invention described in claim 14, n is an integer, k is an integer of n or less, L is an integer of 1 to k, and secret information is distributed to n, and k of the n distributed values can be collected. A computing device that performs a secret calculation or restoration in a system that performs a secret calculation using a means that can restore secret information and cannot restore secret information below k−L, and is concealed and divided into a plurality of digits Means for performing a predetermined calculation in accordance with the digit of the concealment secret information is provided.
 請求項15に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘匿演算をする計算装置であって、前記秘密情報をp1以下の整数、乱数をp2以下の整数として、それらを乗算したp1*p2以下の秘匿化秘密情報をp1*p2より大きな素数を法として秘密分散または復号する手段を備える計算装置。 The invention according to claim 15 is such that n is an integer, k is an integer of n or less, L is an integer of 1 to k, the secret information is distributed to n, and k of the n distributed values can be collected. A computing device that performs a ciphering operation in a system that performs a ciphering operation using means that cannot restore the secret information with k−L or less, wherein the secret information is an integer less than or equal to p1, and a random number is p2 A computing device comprising means for secretly sharing or decrypting the secret information of p1 * p2 or less multiplied by the following integers using a prime number larger than p1 * p2 as a modulus.
 請求項16に記載の発明は、nを整数、kをnより小さい整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおける秘匿演算または復元を行う計算装置であって、乱数の加算によって秘密情報を秘匿した秘匿化秘密情報と、前記乱数が秘密分散された分散値とを加減算する手段を備える。
 請求項17に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステム秘密情報の格納位置を検索する計算装置であって、第1の検索用秘密情報と第2の検索用秘密情報の差を取得する手段と、前記差に応じて前記格納位置を定める手段と、を備える。
 請求項18に記載の発明は、nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘密情報を更新する計算装置であって、秘密情報の分散値に、予め定められた第1の乱数を乗算しかつ予め定められた第2の乱数を加算する手段を備える。
In the invention according to claim 16, n is an integer, k is an integer smaller than n, L is an integer not less than 1 and not more than k, the secret information is distributed into n pieces, and k pieces of distributed values among n pieces can be collected. Is a computing device that performs secret computation or restoration in a system that performs secret computation using means that cannot restore secret information with kL or less, and that conceals secret information by adding random numbers Means for adding / subtracting the secret information and the distributed value obtained by secretly distributing the random number.
The invention according to claim 17 is such that n is an integer, k is an integer of n or less, L is an integer of 1 to k, and secret information is distributed to n, and k distributed values of n can be collected. A computing device that searches for a storage location of system secret information that performs a ciphering operation using means that cannot restore secret information with kL or less pieces. Means for obtaining the difference between the two search secret information, and means for determining the storage position according to the difference.
In the invention of claim 18, n is an integer, k is an integer of n or less, L is an integer of 1 to k, the secret information is distributed to n, and k of the n distributed values can be collected. A calculation device that updates secret information in a system that performs a secret calculation using means that cannot restore secret information with kL or less, and a predetermined value is set in a distributed value of the secret information. Means for multiplying the first random number and adding a predetermined second random number are provided.
 本願発明は、乗算を、必要なサーバの台数を変えず、かつ安全に行うことができる。
 本願発明は、除算を、乗算と同様の手段で実現できる。
 本願発明は、連続した秘匿演算を矛盾なく実現できる。
 本願発明は、例えば、検索IDから秘密情報への及び秘密情報から検索IDへの双方向の検索を実現できる。
 本願発明は、効率的かつ安全にその分散値を更新することができる。
 本願発明は、記憶容量の小型化を実現できる。
 本願発明は、処理の高速化を実現できる。
 本願発明は、記憶容量の小型化と共に処理の高速化を実現できる。
The present invention can perform multiplication safely without changing the number of necessary servers.
In the present invention, division can be realized by means similar to multiplication.
The present invention can realize a continuous secret calculation without contradiction.
The present invention can realize, for example, a bidirectional search from the search ID to the secret information and from the secret information to the search ID.
The present invention can update the variance value efficiently and safely.
The present invention can realize a reduction in storage capacity.
The present invention can realize high-speed processing.
According to the present invention, it is possible to reduce the storage capacity and increase the processing speed.
第1~第10の実施の形態のシステムを示す図である。1 is a diagram showing a system according to first to tenth embodiments. FIG. 第1のディーラ装置12Aの構成を示すブロック図である。It is a block diagram which shows the structure of 12 A of 1st dealer apparatuses. 分散処理プログラムを示すフローチャートである。It is a flowchart which shows a distributed processing program. 各サーバの分散値を示す図である。It is a figure which shows the distributed value of each server. 分散処理プログラムを示すフローチャートである。It is a flowchart which shows a distributed processing program. 各サーバの分散値を示す図である。It is a figure which shows the distributed value of each server. αaの復元・送信処理プログラムを示すフローチャートである。10 is a flowchart showing an αa restoration / transmission processing program. 図7の復元・送信処理の内容を示す図である。It is a figure which shows the content of the decompression | restoration / transmission process of FIG. (A)は乗算処理プログラムを示すフローチャートであり、(B)は各サーバの分散値を示す図である。(A) is a flowchart which shows a multiplication process program, (B) is a figure which shows the distributed value of each server. αβの復元・計算・送信処理プログラムを示すフローチャートである。It is a flowchart which shows the decompression | restoration / calculation / transmission processing program of (alpha) j ( beta) j . 図10の復元・計算・送信処理の内容を示す図である。It is a figure which shows the content of the decompression | restoration / calculation / transmission process of FIG. 乗算結果取得処理プログラムを示すフローチャートである。It is a flowchart which shows a multiplication result acquisition process program. 図12の乗算結果取得処理の内容を示す図である。It is a figure which shows the content of the multiplication result acquisition process of FIG. 分散処理プログラムを示すフローチャートである。It is a flowchart which shows a distributed processing program. 各サーバの分散値を示す図である。It is a figure which shows the distributed value of each server. γcの復元・送信処理プログラムを示すフローチャートである。It is a flowchart which shows the decompression | restoration / transmission process program of (gamma) c. 図16のγcの復元・送信処理の内容を示す図である。It is a figure which shows the content of the decompression | restoration / transmission process of (gamma) c of FIG. (A)は乗算処理プログラムを示すフローチャートであり、(B)は各サーバの分散値を示す図である。(A) is a flowchart which shows a multiplication process program, (B) is a figure which shows the distributed value of each server. αβγの復元・計算・送信処理プログラムを示すフローチャートである。It is a flowchart which shows the decompression | restoration / calculation / transmission processing program of (alpha) j ( beta) j ( gamma) j . 図19のαβγの復元・計算・送信処理の内容を示す図である。It is a figure which shows the content of the decompression | restoration / calculation / transmission process of (alpha) j ( beta) j ( gamma) j of FIG. 乗算結果取得処理プログラムを示すフローチャートである。It is a flowchart which shows a multiplication result acquisition process program. 図21の乗算結果取得処理の内容を示す図である。It is a figure which shows the content of the multiplication result acquisition process of FIG. 分散処理プログラムを示すフローチャートである。It is a flowchart which shows a distributed processing program. 分散処理プログラムを示すフローチャートである。It is a flowchart which shows a distributed processing program. αβの復元・送信処理プログラムを示すフローチャートである。It is a flowchart which shows the decompression | restoration / transmission processing program of (alpha) j ( beta) j . 復元処理プログラムを示すフローチャートである。It is a flowchart which shows a restoration process program. αβabの送信処理プログラムを示すフローチャートである。It is a flowchart which shows the transmission processing program of (alpha) (beta) ab. (a)は除算処理プログラムを示すフローチャートであり、(B)は各サーバの分散値を示す図である。(A) is a flowchart which shows a division processing program, (B) is a figure which shows the distributed value of each server. α/βの復元・計算・送信処理プログラムを示すフローチャートである。It is a flowchart which shows the decompression | restoration / calculation / transmission processing program of (alpha) j / (beta) j . 図29のα/βの復元・計算・送信処理の内容を示す図である。It is a figure which shows the content of the decompression | restoration / calculation / transmission process of (alpha) j / (beta) j of FIG. 除算結果取得処理プログラムを示すフローチャートである。It is a flowchart which shows a division result acquisition process program. 図31の除算結果取得処理の内容を示す図である。It is a figure which shows the content of the division result acquisition process of FIG. (A)は除算処理プログラムを示すフローチャートであり、(B)は各サーバの分散値を示す図である。(A) is a flowchart which shows a division processing program, (B) is a figure which shows the distributed value of each server. αβの復元・計算・送信処理プログラムを示すフローチャートである。It is a flowchart which shows the decompression | restoration / calculation / transmission processing program of (alpha) j ( beta) j . 図34のαβの復元・計算・送信処理の内容を示す図である。It is a figure which shows the content of the decompression | restoration / calculation / transmission process of (alpha) j ( beta) j of FIG. 乗算結果取得処理プログラムを示すフローチャートである。It is a flowchart which shows a multiplication result acquisition process program. 図36の乗算結果取得処理の内容を示す図である。It is a figure which shows the content of the multiplication result acquisition process of FIG. β/αの復元・計算・送信処理プログラムを示すフローチャートである。It is a flowchart which shows the decompression | restoration / calculation / transmission processing program of (beta) j / (alpha) j . 図38のβ/αの復元・計算・送信処理の内容を示す図である。It is a figure which shows the content of the decompression | restoration / calculation / transmission process of (beta) j / (alpha) j of FIG. β/αの計算・送信処理プログラムを示すフローチャートである。It is a flowchart which shows the calculation / transmission processing program of (beta) j / (alpha) j . (A)はβa、βbの計算・送信処理プログラムを示すフローチャートであり、(B)はβa、βbの計算・送信処理の内容を示す図である。(A) is a flowchart which shows the calculation / transmission processing program of βa, βb, and (B) is a diagram showing the contents of the calculation / transmission processing of βa, βb. 積和処理プログラムを示すフローチャートである。It is a flowchart which shows a product-sum processing program. 復元処理プログラムを示すフローチャートである。It is a flowchart which shows a restoration process program. 乗算処理プログラムを示すフローチャートである。It is a flowchart which shows a multiplication process program. αβの復元・送信処理プログラムを示すフローチャートである。It is a flowchart which shows the decompression | restoration / transmission processing program of (alpha) j ( beta) j . 復元処理プログラムを示すフローチャートである。It is a flowchart which shows a restoration process program. 分散処理プログラムを示すフローチャートである。It is a flowchart which shows a distributed processing program. 分散処理プログラムを示すフローチャートである。It is a flowchart which shows a distributed processing program. 乗算処理プログラムを示すフローチャートである。It is a flowchart which shows a multiplication process program. 次数変換処理プログラムを示すフローチャートである。It is a flowchart which shows an order conversion process program. αβの計算送信処理プログラムを示すフローチャートである。It is a flowchart which shows the calculation transmission process program of (alpha) (beta). の復元・送信処理プログラムを示すフローチャートである。It is a flowchart illustrating a decompression transmitting program of r j g j. 復元処理プログラムを示すフローチャートである。It is a flowchart which shows a restoration process program. の計算・送信処理プログラムを示すフローチャートである。Is a flowchart showing the calculation and transmission processing program U i. ’の計算・送信処理プログラムを示すフローチャートである。It is a flowchart which shows the calculation / transmission processing program of Wj '. 新たな分散値の記憶処理プログラムを示すフローチャートである。It is a flowchart which shows the storage processing program of a new dispersion value. δの生成・送信処理プログラムを示すフローチャートである。It is a flowchart which shows the production | generation / transmission process program of (delta) i . 更新処理プログラムを示すフローチャートである。It is a flowchart which shows an update process program. 更新処理プログラムを示すフローチャートである。It is a flowchart which shows an update process program. (A)は更新処理プログラムを示すフローチャートであり、(B)は復元処理プログラムを示すフローチャートである。(A) is a flowchart showing an update processing program, and (B) is a flowchart showing a restoration processing program. (A)は分散処理プログラムを示すフローチャートであり、(B)は復元処理プログラムを示すフローチャートである。(A) is a flowchart showing a distributed processing program, and (B) is a flowchart showing a restoration processing program. 分散処理プログラムを示すフローチャートである。It is a flowchart which shows a distributed processing program. (A)、(B)は、第1のサーバ14Xの記憶装置34に記憶されている分散値の記憶状態を示すである。(A), which exhibit (B), the storage state of the dispersion values stored in the first server 14X 1 storage device 34. 検索処理プログラムを示すフローチャートである。It is a flowchart which shows a search processing program. 分散値F’(x)の計算・送信処理プログラムを示すフローチャートである。It is a flowchart showing the calculation and transmission processing program distribution value F j '(x i). 差tの計算・送信処理プログラムを示すフローチャートである。Is a flowchart showing the calculation and transmission processing program of the difference t j. 分散値Fu(x)の計算・送信処理プログラムを示すフローチャートである。It is a flowchart showing the calculation and transmission processing program distribution value Fu (x i). 分散値Fo(x)の計算・送信処理プログラムを示すフローチャートである。It is a flowchart showing the calculation and transmission processing program distribution value Fo (x i). 差の計算・送信処理プログラムを示すフローチャートである。It is a flowchart which shows the calculation / transmission processing program of a difference. 検索処理プログラムを示すフローチャートである。It is a flowchart which shows a search processing program. 分散処理プログラムを示すフローチャートである。It is a flowchart which shows a distributed processing program. 乗算処理プログラムを示すフローチャートである。It is a flowchart which shows a multiplication process program. 乗算処理プログラムを示すフローチャートである。It is a flowchart which shows a multiplication process program. αβの計算・送信処理プログラムを示すフローチャートである。It is a flowchart which shows the calculation and transmission processing program of (alpha) j ( beta) j . 復元処理プログラムを示すフローチャートである。It is a flowchart which shows a restoration process program. 復元処理プログラムを示すフローチャートである。It is a flowchart which shows a restoration process program. 積和処理及び復元処理プログラムを示すフローチャートである。It is a flowchart which shows a product-sum process and a restoration process program. 秘匿乗算(乗算及び復元)処理プログラムを示すフローチャートである。It is a flowchart which shows a secret multiplication (multiplication and decompression | restoration) processing program. 分散値の計算・送信処理プログラムを示すフローチャートである。It is a flowchart which shows the calculation / transmission processing program of a dispersion value. 差の計算・送信処理プログラムを示すフローチャートである。It is a flowchart which shows the calculation / transmission processing program of a difference. 検索処理プログラムを示すフローチャートである。It is a flowchart which shows a search processing program. 分散処理プログラムを示すフローチャートである。It is a flowchart which shows a distributed processing program. 分散処理プログラムを示すフローチャートである。It is a flowchart which shows a distributed processing program. 復元処理プログラムを示すフローチャートである。It is a flowchart which shows a restoration process program. 復元処理プログラムを示すフローチャートである。It is a flowchart which shows a restoration process program. (A)は分散処理プログラムを示すフローチャートであり、(B)は第1のサーバ14Xの記憶装置34に記憶されている分散値の記憶状態を示す図である。(A) is a flow chart showing a distributed processing program, (B) is a diagram showing a storage state of the dispersion values stored in the first server 14X 1 storage device 34. jの指示処理プログラムを示すフローチャートである。It is a flowchart which shows the instruction | indication processing program of j. j'(xi)の計算送信処理プログラムを示すフローチャートである。It is a flowchart showing the calculation transmitting program of F j '(xi). 検索処理プログラムを示すフローチャートである。It is a flowchart which shows a search processing program. 分散処理プログラムを示すフローチャートである。It is a flowchart which shows a distributed processing program. 復元処理プログラムを示すフローチャートである。It is a flowchart which shows a restoration process program. 復元処理プログラムを示すフローチャートである。It is a flowchart which shows a restoration process program. 分散処理プログラムを示すフローチャートである。It is a flowchart which shows a distributed processing program. 分散処理プログラムを示すフローチャートである。It is a flowchart which shows a distributed processing program. αjβjの計算送信処理プログラムを示すフローチャートである。It is a flowchart which shows the calculation transmission processing program of (alpha) j ( beta) j .
 <第1の実施の形態>
(全体構成)
 最初に、第1の実施の形態~第10の実施の形態の全体の構成を説明する。
 (k,n)秘密分散法を用いて秘密情報の分散保管、秘匿計算、秘匿検索、秘匿更新を行う図1に示すシステムを考える。システムは、秘密情報の分散を行う複数のディーラ装置を備えている。図1では、3つのディーラ装置、即ち、第1のディーラ装置12A、第2のディーラ装置12B、及び第3のディーラ装置12Cを備えている例を示している。また、システムは、分散されたn個の分散値を独立に保管するn個のサーバ、即ち、第1のサ-バ14x、第2のサ-バ14x、・・・第n個のサ-バ14x(以降、サ-バシステムともいう)を備えている。更に、システムは、秘密情報または秘匿演算された結果の復元を行う復元装置16を備えている。図1では、復元装置16は1つのみ示しているが、複数の復元装置16を備えることもできる。なお、複数の復元装置16を備える場合でも、各復元装置16は以下に示す処理を実行する。また、システムは、検索サーバ18を備える場合もある。第1のディーラ装置12A~第3のディーラ装置12C、第1のサ-バ14x~第n個のサ-バ14x、及び復元装置16は、インタ-ネット等のネットワ-ク10を介して相互に接続されている。これに対し、検索サーバ18は、ネットワ-ク10を介さずに、第1のサ-バ14x~第n個のサ-バ14xの各々に直接接続されている。
<First Embodiment>
(overall structure)
First, the overall configuration of the first to tenth embodiments will be described.
Consider the system shown in FIG. 1 that performs distributed storage of secret information, secret calculation, secret search, and secret update using the (k, n) secret sharing method. The system includes a plurality of dealer devices that distribute secret information. FIG. 1 shows an example in which three dealer devices, that is, a first dealer device 12A, a second dealer device 12B, and a third dealer device 12C are provided. The system also has n servers that independently store the distributed n distributed values, ie, the first server 14x 1 , the second server 14x 2 ,. A server 14x n (hereinafter also referred to as a server system) is provided. Further, the system includes a restoration device 16 that restores the secret information or the result of the secret calculation. In FIG. 1, only one restoration device 16 is shown, but a plurality of restoration devices 16 may be provided. Even when a plurality of restoration devices 16 are provided, each restoration device 16 performs the following processing. The system may also include a search server 18. The first dealer device 12A to the third dealer device 12C, the first server 14x 1 to the nth server 14x n , and the restoration device 16 are connected via a network 10 such as the Internet. Are connected to each other. In contrast, the search server 18, networks - without using the click 10, the first service - are directly connected to each of the bar 14x n - bar 14x 1 ~ the n number of service.
 第1のディーラ装置12A~第3のディーラ装置12C、第1のサ-バ14x~第n個のサ-バ14x、復元装置16、及び検索サーバ18は同様の構成となっているので、以下、第1のディーラ装置12Aの構成を説明し、その他の装置の説明を省略する。 The first dealer device 12A to the third dealer device 12C, the first server 14x 1 to the nth server 14x n , the restoration device 16, and the search server 18 have the same configuration. Hereinafter, the configuration of the first dealer device 12A will be described, and description of other devices will be omitted.
 図2には、第1のディーラ装置12Aの構成を示すブロック図である。図2に示すようにある第1のディーラ装置12Aは、CPU22、ROM24、及びRAM26を備えている。また、第1のディーラ装置12Aは、表示装置30、入力装置32、記憶装置34、及びインターフェース(I/F)36を備えている。これらの各装置は、バス28を介して相互に接続されている。インターフェース(I/F)36は、ネットワ-ク10に接続されている。なお、検索サーバ18のインターフェース(I/F)36は、ネットワ-ク10を介さずに、第1のサ-バ14x~第n個のサ-バ14xのインターフェース(I/F)36に接続されている。ROM24には、後述する各処理のプログラムが記憶されている。 FIG. 2 is a block diagram showing a configuration of the first dealer apparatus 12A. As shown in FIG. 2, the first dealer device 12 </ b> A includes a CPU 22, a ROM 24, and a RAM 26. The first dealer 12 </ b> A includes a display device 30, an input device 32, a storage device 34, and an interface (I / F) 36. These devices are connected to each other via a bus 28. The interface (I / F) 36 is connected to the network 10. Note that the interface (I / F) 36 of the search server 18 is not connected to the network 10, and is the interface (I / F) 36 of the first server 14 x 1 to the n-th server 14 x n. It is connected to the. The ROM 24 stores a program for each process described later.
 秘密情報をもつオ-ナは第1のディーラ装置12A~第3のディーラ装置12Cを操作する。演算結果を知ることができるユ-ザ(復元者)は復元装置16を操作する。第1のサ-バ14x~第n個のサ-バ14xは正当なオ-ナまたは復元者からの通信だけを受け付け、不正な通信は拒否する。さらに、第1のディーラ装置12A~第3のディーラ装置12C、及び第1のサ-バ14x~第n個のサ-バ14xと復元装置16との通信は暗号などにより安全な通信路が構築されている。一般に、第1のディーラ装置12A~第3のディーラ装置12Cや復元装置16は各オ-ナや復元者が個別に有する。第1のディーラ装置12A~第3のディーラ装置12Cをサ-バシステムの入力口、復元装置16をサ-バシステムの出力口として備えることもできる。 The owner having the secret information operates the first dealer device 12A to the third dealer device 12C. A user (restorer) who can know the calculation result operates the restoration device 16. The first server 14x 1 to the n-th server 14x n accept only communication from a valid owner or a restorer, and reject unauthorized communication. Further, the communication between the first dealer device 12A to the third dealer device 12C and the first server 14x 1 to the nth server 14x n and the restoration device 16 is a secure communication path by encryption or the like. Has been built. Generally, each owner or restorer has the first dealer device 12A to the third dealer device 12C and the restoration device 16 individually. The first dealer device 12A to the third dealer device 12C may be provided as an input port of the server system, and the restoration device 16 may be provided as an output port of the server system.
 まず、図1のシステムが持つ秘匿検索機能について説明する。オ-ナが第1のディーラ装置を使う場合を考える。オーナは自分の秘密情報の分散値を第1のディーラ装置12Aによって計算し、自分に割り当てられた各サ-バの領域にその分散値を保管する。ただし、各分散値はそれを検索するための識別データ、即ち、検索IDまたは検索IDに関する分散値とともにサ-バシステムに保存される。 First, the secret search function of the system shown in FIG. 1 will be described. Consider the case where the owner uses the first dealer device. The owner calculates the distributed value of his / her secret information by the first dealer 12A, and stores the distributed value in the area of each server assigned to himself / herself. However, each distributed value is stored in the server system together with identification data for searching for it, that is, a search ID or a distributed value related to the search ID.
 秘匿検索を行う場合、オーナは第6の実施の形態に示す手法を用いて検索IDを分散する。情報の検索・復元を望む正当な復元者は検索IDを復元装置16に示し、復元装置16は第6の実施の形態において説明する手法を用いてそれに対応する情報をサ-バシステムに送る。サ-バシステムは送られてきた情報に対応する秘密情報の分散値があればそれを復元装置16に送信、当該秘密情報の分散値がなければ、当該秘密情報の分散値がないことを伝える。検索IDに対応する秘密情報の分散値を得た復元装置16はそれから秘密情報または秘匿計算の結果の復元を行う。ここで、システムは第6の実施の形態に示す秘匿検索を行うとしたが、システムは複数の機能を有しているので、秘匿検索の機能が必要ない場合、秘匿検索の機能を使わず通常の検索を行うこともできる。 When performing a secret search, the owner distributes the search IDs using the method described in the sixth embodiment. A legitimate restorer who wishes to search and restore information shows the search ID to the restoration device 16, and the restoration device 16 sends the corresponding information to the server system using the method described in the sixth embodiment. The server system transmits the secret information distributed value corresponding to the sent information to the restoration device 16, and if there is no secret information distributed value, informs that there is no secret information distributed value. . The restoration device 16 that has obtained the distributed value of the secret information corresponding to the search ID then restores the secret information or the result of the secret calculation. Here, the system performs the confidential search shown in the sixth embodiment. However, since the system has a plurality of functions, when the function of the confidential search is not required, the function of the confidential search is not used. You can also search for.
 次に図1のシステムがもつ加減乗除を含む演算を秘密に行う秘匿演算機能について説明する。復元者が検索ID(またはその条件式など)により演算対象と、それに対する演算法を復元装置16に示すと、復元装置16は上述の秘匿検索機能(秘匿検索を使わない場合、通常の検索機能)を用いて検索IDを秘匿検索し、そのIDに対応するサ-バシステムに保存されている演算対象となる分散値を得る。サーバシステムはそれを用いて指定された演算を秘匿計算し、最終結果の分散値を得る。最終結果の分散値を得た復元装置16はそれを復元して最終結果を得る。第1の実施の形態~第4の実施の形態は本発明による秘匿乗算法、秘匿除算法、連続秘匿演算法(秘匿加算法、秘匿減算法を含む)について、各ディーラ装置、サ-バシステム、復元装置16が行う処理を説明する。ただし、本発明において秘匿演算は主にサ-バシステムが担当するが、復元装置16または各ディーラ装置が秘匿演算に協力することがある。一般に、秘匿演算は秘密情報に対して行われるが、検索IDに対して行えば検索IDによる条件式の秘匿演算となる。よって、検索IDを秘匿して条件式を演算する場合もこの秘匿計算機能は用いられる。ただし、秘匿検索や秘匿更新などの機能のみを使いたい場合、この秘匿演算機能は使われず、通常の演算機能をもつ。 Next, a secret calculation function for secretly performing calculation including addition / subtraction / division / division in the system of FIG. 1 will be described. When the restorer indicates the computation target and the computation method for the computation target by the search ID (or its conditional expression) to the restoration device 16, the restoration device 16 uses the above-described secret search function (the normal search function when the secret search is not used). The search ID is concealed using () to obtain a distributed value to be calculated and stored in the server system corresponding to the ID. The server system performs a secret calculation on the specified operation using it, and obtains a variance value of the final result. The restoration device 16 that obtained the variance value of the final result restores it to obtain the final result. In the first to fourth embodiments, each of the dealer apparatus and the server system for the secret multiplication method, the secret division method, and the continuous secret calculation method (including the secret addition method and the secret subtraction method) according to the present invention. A process performed by the restoration device 16 will be described. However, in the present invention, the server system is mainly responsible for the secret operation, but the restoration device 16 or each dealer device may cooperate with the secret operation. Generally, the concealment calculation is performed on the secret information. However, if it is performed on the search ID, the conditional expression concealment calculation based on the search ID is performed. Therefore, this secret calculation function is also used when calculating the conditional expression while keeping the search ID secret. However, when only functions such as secret search and secret update are to be used, this secret calculation function is not used and a normal calculation function is provided.
 また、図1のサ-バシステムは定期的またはある秘密情報に対する分散値を使用する毎などの定められたタイミングで行う保管情報の秘匿更新機能をもつ。これは第5の実施の形態において、種々の場合に対する更新法が説明される。ただし、秘匿更新を行わない場合、この機能は使われないこともある。 Also, the server system of FIG. 1 has a secret update function for stored information that is performed periodically or at a predetermined timing such as when a distributed value for certain secret information is used. In the fifth embodiment, an updating method for various cases will be described. However, this function may not be used if secret update is not performed.
 さらに、第1の実施の形態~第6の実施の形態はShamirの(k,n)秘密分散法を例として説明されるが、第7の実施の形態において、記憶容量の削減を実現しながら秘匿検索、秘匿演算、秘匿更新をする非対称秘密分散法に対して、記憶容量の削減と計算量の削減を同時に実現する手法を示す。即ち、本発明が非対称秘密分散法に対しても有効であることを示す。ただし、全体構成は図1と同様である。 Further, the first to sixth embodiments will be described by taking Shamir's (k, n) secret sharing scheme as an example. In the seventh embodiment, while reducing the storage capacity, A technique for simultaneously reducing the storage capacity and the calculation amount is shown for the asymmetric secret sharing method that performs secret search, secret calculation, and secret update. That is, the present invention is effective for the asymmetric secret sharing method. However, the overall configuration is the same as in FIG.
 また、第8の実施の形態に非対称秘密分散法と異なるやり方で記憶容量の削減を行うランプ型秘密分散法に対して、記憶容量の削減と計算量の削減を同時に実現しながら秘匿検索、秘匿演算、秘匿更新をする手法を示す。即ち、本発明がランプ型秘密分散法に対しても有効であることを示す。ただし、全体構成は図1と同様である。 Compared to the ramp-type secret sharing method, which reduces the storage capacity in a manner different from the asymmetric secret sharing method in the eighth embodiment, the secret search and the secret are performed while simultaneously reducing the storage capacity and the calculation amount. A method for calculating and updating confidentiality is shown. That is, the present invention is also effective for the lamp-type secret sharing method. However, the overall configuration is the same as in FIG.
 さらに、第9の実施の形態において秘密情報をビット列として扱い、秘密情報の分散と復元をXORのみで行う(k,n)秘密分散法を拡張し、秘密情報を数値として扱う手法(多値化法)について説明する。これを用いることによって計算量が削減され、第1の実施の形態~第6の実施の形態の秘匿検索、秘匿検索、秘匿更新の各機能が高速に行えることを示す。即ち、本発明が多値化法に対しても有効であることを示す。ただし、全体構成は図1と同様である。 Furthermore, in the ninth embodiment, the secret information is handled as a bit string, the secret information is distributed and restored only by XOR (k, n), and the secret sharing method is extended to handle the secret information as a numerical value (multi-valued) Method). By using this, the calculation amount is reduced, and it is shown that the secret search, secret search, and secret update functions of the first to sixth embodiments can be performed at high speed. That is, it shows that the present invention is also effective for the multilevel method. However, the overall configuration is the same as in FIG.
 最後に、非対称型秘密分散法と多値化法またはランプ型多値化法を組み合わせた方法に対しても、本発明による提案が有効であることを第10の実施の形態に示す。これによって、第1の実施の形態~第6の実施の形態に示す各機能が小型かつ高速に行えるシステム(第1の実施の形態)が実現され、本発明の有効性が示される。 Finally, the tenth embodiment shows that the proposal of the present invention is effective for a method combining the asymmetric secret sharing method and the multi-value method or the ramp-type multi-value method. As a result, a system (first embodiment) in which the functions shown in the first to sixth embodiments can be performed in a small size and at high speed is realized, and the effectiveness of the present invention is shown.
(第1の実施の形態の具体的内容)
 Shamirの(k,n)秘密分散法に対して閾値kを変化させない秘匿乗算法を以下に示す。第1のディーラ装置12Aが秘密情報aを持ち、第2のディーラ装置12Bが秘密情報bを持つ。以下では、a,bを秘匿したままa・bの乗算結果を得る場合を示す。
 前提として、生成する乱数は0を含まないとし、第1のサ-バ14x~第n個のサ-バ14xの識別データ(サ-バID)であるx~xは公開の値である、即ち、他の装置は、各サーバIDを記憶しているとする。また、a,bは素数p以下の整数とし、演算はq(>p、uは1以上の整数。ただし、元々pを大きくとった場合はp=qとしてもよい)を素数として、qを超えた値に対してはその余りをとる法演算を用いて行われる。αiやβi(i=1,…,k)などの乱数は素数q以下の整数とする。さらに、パラメ-タが実数の場合でも、以下のようにすれば整数として扱える。まず、実数は小数点以下の位が定められているとする。例えば、小数点第2位までとされる場合、100倍すれば整数として扱える。よって、実数を秘密分散する場合、実数は桁上げをして整数として表す(これを実数の整数表現と呼ぶ)。その小数点位置は別に記憶されている、または規定によって予め定められているとする。よって、実数の整数表現同士の和は整数の和と同様に扱え、小数点位置も変化しない。それに対して、実数の整数表現同士の積も整数の積と同様に扱えるが、小数点位置に変化が生じる。例えば、小数点第2位の実数同士の積を計算する場合、小数点第4位の実数となる。前述のように、全ての実数は小数点以下の位が定められているとする場合、小数点第3位以下は切り捨てまたは四捨五入されて、積も小数点第2位の実数とする。このように小数点位置の規定に従って小数点位置の調整を行い実数に戻すことを実数化と呼ぶ。一般に、実数はコンピュ-タ上では固定小数点表現と浮動小数点表現があるが、これらはあくまで表現であるので上記のような規則が定められていればどちらにも対応できる。以上の前提は全実施の形態を通して共通である。
(Specific contents of the first embodiment)
The secret multiplication method that does not change the threshold k with respect to the Shamir (k, n) secret sharing method is shown below. The first dealer device 12A has secret information a, and the second dealer device 12B has secret information b. Hereinafter, a case where the multiplication result of a · b is obtained while a and b are kept secret will be described.
As a prerequisite, random number generation and not including 0, first sub - server 14x 1 ~ the n number of sub - Bas 14x n identification data - x 1 ~ x n is the public is (mackerel ID) It is a value, that is, another device stores each server ID. Further, a and b are integers less than or equal to a prime number p, and an operation is q (> p u , u is an integer greater than or equal to 1. However, if p is originally large, p = q may be used). For values that exceed, this is done using a modulo operation that takes the remainder. Random numbers such as α i and β i (i = 1,..., k) are integers equal to or less than the prime number q. Furthermore, even if the parameter is a real number, it can be handled as an integer by doing the following. First, let's assume that real numbers have a decimal place. For example, in the case of up to the second decimal place, if it is multiplied by 100, it can be handled as an integer. Therefore, when a real number is secretly shared, the real number is carried and represented as an integer (this is called an integer representation of a real number). It is assumed that the decimal point position is stored separately or predetermined according to regulations. Therefore, the sum of integer representations of real numbers can be handled in the same way as the sum of integers, and the decimal point position does not change. On the other hand, the product of integer representations of real numbers can be handled in the same way as the product of integers, but the decimal point position changes. For example, when calculating the product of real numbers having the second decimal place, the real number having the fourth decimal place is obtained. As described above, when all the real numbers are determined to have a decimal place, the third decimal place is rounded down or rounded off, and the product is also a second decimal place real number. In this way, adjusting the decimal point position according to the definition of the decimal point position and returning it to a real number is called realization. In general, a real number has a fixed-point representation and a floating-point representation on a computer. However, since these are representations only, both of them can be handled if the above rules are defined. The above premise is common to all the embodiments.
(秘匿乗算1(基本形))
 以下、秘匿乗算1(基本形)を説明する。秘匿乗算1(基本形)は、分散、乗算、及び復元の各処理により実行される。
[分散]
 まず、分散(秘匿分散)を、図3~図6を参照して説明する。
 第1のディーラ装置12AのCPU22は、図3に示す分散値処理を実行する。
 ステップ42で、k個の乱数αを生成し、その積α=α・α・・・αを計算する。
 ステップ44で、以下の分散値を計算する。
Wa’(x)=α(a+a0,1+・・・+a0,k-1 k-1
Wa1(x)=α+a1,1+・・・+a1,k-1 k-1

Wak(x)=α+ak,1+・・・+ak,k-1 k-1
 ただし、ah,j(h=0,・・・,k、j=1,・・・,k-1)は乱数,xは上記のように公開されているサ-バID(i=1,…,n)である。
(Concealment multiplication 1 (basic form))
Hereinafter, the secret multiplication 1 (basic form) will be described. The concealment multiplication 1 (basic form) is executed by each process of distribution, multiplication, and restoration.
[dispersion]
First, dispersion (secret sharing) will be described with reference to FIGS.
The CPU 22 of the first dealer apparatus 12A executes the distributed value processing shown in FIG.
In step 42, k random numbers α i are generated, and a product α = α 1 · α 2 ... Α k is calculated.
In step 44, the following variance values are calculated.
Wa ′ (x i ) = α (a + a 0,1 x i +... + A 0, k−1 x i k−1 )
Wa1 (x i ) = α 1 + a 1,1 x i +... + A 1, k−1 x i k−1
:
Wak (x i ) = α k + a k, 1 x i +... + A k, k−1 x i k−1
However, a h, j (h = 0,..., K, j = 1,..., K−1) is a random number, and x i is a server ID (i = 1, ..., n).
 ステップ46で、第1のサ-バ14x~第nのサ-バ14xに分散値Wa’(x)~Wak(x)を送信する。
 n=4、k=3とすると、第1のサ-バ14x~第nのサ-バ14xの分散値Wa’(x)~Wak(x)は、図4に示す通りである。
In step 46, the dispersion values Wa ′ (x i ) to Wak (x i ) are transmitted to the first server 14x 1 to the n-th server 14x n .
When n = 4 and k = 3, the dispersion values Wa ′ (x i ) to Wak (x i ) of the first server 14x 1 to the nth server 14x n are as shown in FIG. is there.
 第2のディーラ装置12BのCPU22は図5に示す分散処理を実行する。
 ステップ52で、k個の乱数βを生成し、その積β=β・β・・・βを計算する。
 ステップ54で、以下の分散値を計算する。
Wb’(x)=β(b+b0,1+・・・+b0,k-1 k-1
Wb(x)=β+b1,1+・・・+b1,k-1 k-1

Wb(x)=β+bk,1+・・・+bk,k-1 k-1
 ただし、bh,j(h=0,・・・,k、j=1,・・・,k-1)は乱数,xはサ-バID(i=1,…,n)
The CPU 22 of the second dealer apparatus 12B executes the distributed processing shown in FIG.
In step 52, k random numbers β i are generated, and the product β = β 1 · β 2 ... Β k is calculated.
In step 54, the following variance values are calculated.
Wb ′ (x i ) = β (b + b 0,1 x i +... + B 0, k−1 x i k−1 )
Wb 1 (x i ) = β 1 + b 1,1 x i +... + B 1, k−1 x i k−1
:
Wb k (x i ) = β k + b k, 1 x i +... + B k, k−1 x i k−1
However, b h, j (h = 0, ···, k, j = 1, ···, k-1) is a random number, x i difference - server ID (i = 1, ..., n)
 ステップ56で、第1のサ-バ14x~第nのサ-バ14xに分散値Wb’(x)~Wb(x)を送信する。
 n=4、k=3とすると、第1のサ-バ14x~第nのサ-バ14xの分散値Wb’(x)~Wb(x)は、図6に示す通りである。
In step 56, the dispersion values Wb ′ (x i ) to Wb k (x i ) are transmitted to the first server 14x 1 to the n-th server 14x n .
Assuming that n = 4 and k = 3, the dispersion values Wb ′ (x i ) to Wb k (x i ) of the first server 14x 1 to the nth server 14x n are as shown in FIG. It is.
[乗算]
 次に、乗算を図7~図9を参照して説明する。
 サ-バシステム内の、例えば予め定められた1つのサ-バ、例えば、第1のサ-バ14xのCPU22は、図7に示すαaの復元・送信処理を実行する。図7のステップ62(図8も参照)で、自身のサーバ14x及び他のサ-バ14x~14xから、Wa’(x)をk個集め、ステップ64でαaを復元し、ステップ66で、αaを、演算に参加する他のサ-バ、例えば、他の全てのサ-バ14x~14xに送信する。その様子を図8に示す。
[Multiplication]
Next, multiplication will be described with reference to FIGS.
Sa - in server system, for example, predetermined 1 Tsunosa - server, for example, the first sub - CPU 22 of server 14x 1 executes the decompression process of transmitting αa shown in FIG. Step 62 of FIG. 7 (see also FIG. 8) collects Wa ′ (x i ) k from its own server 14x 1 and other servers 14x 2 to 14x k , and restores αa in Step 64. In step 66, αa is transmitted to other servers participating in the operation, for example, all other servers 14x 2 to 14x n . This is shown in FIG.
 サ-バj(j=1,…,n)、例えば、全てのサーバ(第1のサーバ14x~第nのサーバ14x)の各々のCPU22は、図9(A)に示す乗算処理を実行する。即ち、ステップ68で、自分がもつWb’(x)に送られてきたαaをかけて、以下のWab’(x)を生成する。
 Wab’(x)=αβa(b+b0,1+・・・+b0,k-1 k-1
 n=4、k=3の場合の、第1のサーバ14x~第4のサーバ14xにおけるWab’(x)~Wab’(x)は、図9(B)に示す通りである。
Sa - server j (j = 1, ..., n), for example, each of the CPU22 of all the servers (server 14x n of first server 14x 1 ~ No. n) is a multiplication process shown in FIG. 9 (A) Execute. That is, in step 68, the following Wab ′ (x j ) is generated by multiplying αa sent to Wb ′ (x j ) of the user.
Wab ′ (x j ) = αβa (b + b 0,1 x j +... + B 0, k−1 x j k−1 )
Wab ′ (x 1 ) to Wab ′ (x 4 ) in the first server 14x 1 to the fourth server 14x 4 when n = 4 and k = 3 are as shown in FIG. 9B. .
[復元]
 次に、復元を、図10~図13を参照して説明する。
 復元に参加するサ-バj(j=1,…,k)、即ち、例えば、予め定められた第1のサ-バ14x~第kのサ-バ14xの各々のCPU22は、図10のαβの復元・計算・送信処理を実行する。即ち、ステップ72(図11も参照)で、指定されたjに応じたWa(x)とWb(x)を集め(i=1,…,k)、ステップ74で、αとβを1つずつ復元する。図11では、第1のサ-バ14xはj=1が指定されてα1とβ1を復元し、第2のサ-バ14x2はj=2が指定されてα2とβ2を復元し、第3のサ-バ14x3はj=3が指定されてα3とβ3を復元する。
[Restore]
Next, restoration will be described with reference to FIGS.
The servers j participating in the restoration (j = 1,..., K), that is, for example, the CPUs 22 of the first server 14x 1 to the kth server 14x k determined in advance, Ten α j β j are restored, calculated, and transmitted. That is, in step 72 (see also FIG. 11), Wa j (x i ) and Wb j (x i ) corresponding to the designated j are collected (i = 1,..., K), and in step 74 α j And β j are restored one by one. In Figure 11, the first sub - server 14x 1 restores the alpha 1 and beta 1 and j = 1 is specified, the second sub - server 14x 2 is j = 2 is designated by alpha 2 and beta 2 restore, third sub - server 14x 3 restores the alpha 3 and beta 3 is specified j = 3.
 ステップ76(図11も参照)で、積αβを計算し、ステップ78で、Wab’(x)とαβを復元装置16に送信する。図11では第1のサ-バ14xはWab’(x1)とα1β1を、第2のサ-バ14x2はWab’(x2)とα2β2を、第3のサ-バ14x3はWab’(x3)とα3β3を復元装置16に送信する。よって、上記例では、復元装置16には、図11に示すデータが送信されている。 In step 76 (see also FIG. 11), the product α j β j is calculated, and in step 78 Wab ′ (x j ) and α j β j are transmitted to the restoration device 16. In FIG. 11, the first server 14x 1 has Wab ′ (x 1 ) and α 1 β 1 , the second server 14x 2 has Wab ′ (x 2 ) and α 2 β 2 , and the third Sa - server 14x 3 transmits Wab 'a (x 3) and the alpha 3 beta 3 to restore device 16. Therefore, in the above example, the data shown in FIG.
 復元装置16のCPU22は、図12の乗算結果取得処理を実行する。即ち、ステップ82(図13も参照)で、k個のWab’(x)からαβabを復元する。
 ステップ84(図13も参照)で、αβ(j=1,・・・,k)からαβを合成し、ステップ86(図13も参照)で、αβabをαβで割ってabを得る。
The CPU 22 of the restoration device 16 executes the multiplication result acquisition process of FIG. That is, in step 82 (see also FIG. 13), αβab is restored from k Wab ′ (x j ).
In step 84 (see also FIG. 13), αβ is synthesized from α j β j (j = 1,..., K), and in step 86 (see also FIG. 13), αβab is divided by αβ to obtain ab. .
 上記演算の第1の特徴を説明する。まず、請求項1に示すように[分散]のステップ42(図3)、ステップ52(図5)で、それぞれk個の乱数αとβ(i=1,…,k)を個別に生成した後、ステップ44(図3)、ステップ54(図5)で分散値を計算し、ステップ46(図3)、ステップ56(図5)で分散する。請求項2に示すように[復元]のステップ74(図10)においてサ-バ毎に1つの乱数を復元させ、図10のステップ76~ステップ78においてその積を計算して復元装置16に送信する。これによって、全てのサ-バの乱数がわからなければ、合成値αまたはβはわからない。換言すると、k-1個のサ-バを盗聴してもα,βは個別に復元できない方式となる。よって、αaからaまたはβbからbはわからない。 The first feature of the above calculation will be described. First, as shown in claim 1, k random numbers α i and β i (i = 1,..., K) are individually obtained in steps 42 (FIG. 3) and step 52 (FIG. 5) of [dispersion]. After the generation, the variance value is calculated in step 44 (FIG. 3) and step 54 (FIG. 5), and distributed in step 46 (FIG. 3) and step 56 (FIG. 5). As shown in claim 2, one random number is restored for each server in [Restore] step 74 (FIG. 10), and the product is calculated and transmitted to the restorer 16 in steps 76 to 78 of FIG. To do. Thus, if the random numbers of all the servers are not known, the combined value α or β cannot be known. In other words, α and β cannot be individually restored even if eavesdropping on k−1 servers. Therefore, αa to a or βb to b are not known.
 次に、上記演算の第2の特徴を説明する。請求項1に示すように[分散]のステップ44~ステップ46(図3)、ステップ54~ステップ56(図5)で秘密情報に合成値をかけて分散し、請求項3に示すように[乗算]のステップ62~ステップ64(図7)で一旦復元し、ステップ76(図10)でその復元値を用いて演算を行う。これによって、分散値の次数k-1を変えずに乗算を可能とする。 Next, the second feature of the above calculation will be described. As shown in claim 1, the secret information is distributed by applying a composite value in steps 44 to 46 (FIG. 3) and steps 54 to 56 (FIG. 5) of [distribution], and as shown in claim 3, Multiplication] is restored once in steps 62 to 64 (FIG. 7), and calculation is performed using the restored values in step 76 (FIG. 10). This enables multiplication without changing the order k−1 of the variance value.
 第3の特徴は、請求項4に示すように[復元]における図12のステップ82~86では、分散値Wab’(x)から秘匿化された演算結果(αβab)を復元し、合成したαβで割ることになされる点にある。 The third feature is that, as shown in claim 4, in steps 82 to 86 of FIG. 12 in [restoration], the operation result (αβab) concealed from the variance value Wab ′ (x i ) is restored and synthesized. The point is that it is divided by αβ.
 上記において、簡単のため[分散]のステップ44(図3)、ステップ54(図5)、おいて、分散値Wa’(x),Wb’(x)などの秘匿化分散値は、分散値に乱数をかけているが、秘密情報に乱数をかけて直接それを秘密分散してもよい。 In the above, for the sake of simplicity, in Step 44 (FIG. 3) and Step 54 (FIG. 5) of [Dispersion], the concealment dispersion values such as the dispersion values Wa ′ (x i ) and Wb ′ (x i ) are Although a random number is applied to the distributed value, it may be secretly distributed by applying a random number to the secret information.
 また[乗算]のステップ64(図7)で、あるサ-バ14x、上記例では、第1のサーバ14xがαaを復元するとしたが、複数のサ-バでαaを復元して、当該復元したサーバ以外のサ-バに伝えるとしてもよい。全てのサ-バでαaを復元する場合、他のサ-バにαaの値を伝える必要はない。また、サ-バ14xは他のサ-バにαaを伝えるとしたが、復元に参加するk台が定まっている場合、少なくともそのk台のサ-バに伝えればよい。また、αaでなくβbを復元してもよい。 In step 64 (FIG. 7) of Multiply, is service - in the server 14x d, the example has a first server 14x 1 restores the .alpha.a, multiple service - to restore the .alpha.a in bar, It may be transmitted to a server other than the restored server. When αa is restored on all servers, it is not necessary to transmit the value of αa to other servers. Furthermore, service - server 14x d other service - was a convey αa the server, if the k stand participating in restoration is determined, at least that k stand service - may tell the server. Further, βb may be restored instead of αa.
 また、[復元]のステップ72(図10)では、サ-バjは指定されたjに応じたWaj(x)とWbj(x)を集めるとしたが、指定は重なりがなければどのように定めても良い。例えば、jを参加するサ-バIDの昇順に応じて1,2,…,kと定めてもよいし、降順に定めても良い。また、各サ-バが早いもの順で自分のjの値を定めるとしてもよい。 In step 72 (FIG. 10) of [Restore], the server j collects Waj (x i ) and Wbj (x i ) corresponding to the designated j. It may be determined as follows. For example, j may be defined as 1, 2,..., K according to the ascending order of the server IDs participating, or may be determined in descending order. Also, each server may determine its own j value in the order from the earliest.
 また、[復元]の図10のステップ78において、各サーバはαjβjを復元者に送り、復元装置16が図12のステップ82でαβを復元するとしたが、次のようにしてもよい。即ち、例えば、図10のステップ78では、サーバ14x1はα1β1をサーバ14x2に送り、サーバ14x2はそれにα2β2をかけて次のサーバに送ることを繰り返し、最後のサーバ14xkにおいてαβを復元する。その後、サーバ14xkはαβを他のサーバに伝え、各サーバはWab’(xi)/αβを計算する。この場合、図12のステップ82は、復元装置16はk個のサーバからWab’(xi)/αβを集め、abを復元するとなり、ステップ84と86は省略される。また、各サーバはαjβjを復元者ではなく検索サーバに送り、検索サーバがαβを復元して各サーバに戻し、各サーバはWab’(xi)/αβを計算して、その結果を復元者に送ってもよい。 In step 78 of FIG. 10 of [Restore], each server sends α j β j to the restorer, and the restoration device 16 restores αβ in step 82 of FIG. . That is, for example, in step 78 of FIG. 10, the server 14x 1 repeatedly sends α 1 β 1 to the server 14x 2 , and the server 14x 2 repeats sending α 2 β 2 to the next server, so that the last server Restore αβ at 14x k . Thereafter, the server 14x k transmits αβ to the other servers, and each server calculates Wab ′ (x i ) / αβ. In this case, in step 82 in FIG. 12, the restoring device 16 collects Wab ′ (x i ) / αβ from k servers and restores ab, and steps 84 and 86 are omitted. Also, each server sends α j β j to the search server instead of the restorer, the search server restores αβ and returns it to each server, and each server calculates Wab ′ (x i ) / αβ, and the result May be sent to the restorer.
 また、[乗算]の図9のステップ68では、サーバ14xdはWb’(xi)を集めてβbを復元し、αaとかけてαβabを計算して復元装置16に送ってもよい。その場合、[復元]における図12のステップ82は削除される。 In step 68 of FIG. 9 Multiply, server 14x d is Wb '(x i) gathering restore the .beta.b, it may be sent to restore device 16 to calculate the αβab over the .alpha.a. In that case, step 82 of FIG. 12 in [Restore] is deleted.
 また、生成する乱数αiなどはk個とし、各サーバはその中の1つを復号するとしたが、k個以上の乱数を生成し、各サーバが複数の乱数を復元し、合成してもよい。例えば、[分散]の図3のステップ42においてt・k個の乱数を生成して、qを法としてその積αを計算し、[復元]の図10のステップ74において、1つのサーバはt個の乱数を復元し、ステップ76で乗算する。
  以上は、以降の実施の形態についても同様である。
In addition, k random numbers αi and the like are generated and each server decodes one of them, but k or more random numbers may be generated, and each server may restore and combine a plurality of random numbers. . For example, t · k random numbers are generated in Step 42 of FIG. 3 of [Distribution], and the product α is calculated using q as a modulus. In Step 74 of FIG. The random numbers are restored and multiplied in step 76.
The same applies to the following embodiments.
(秘匿乗算2(繰り返し))
 次に、乗算を繰り返してabcを計算する場合を説明する。なお、乗算の後に加算を行う場合は第3の実施の形態に示す。
[分散]
[分散]においてa,bは秘匿乗算1と同様に分散されているとする。即ち、第1のディーラ装置12A、第2のディーラ装置12Bはそれぞれ、図3、図5の分散処理を実行する。
 第3のディーラ装置12CのCPU22は、図14の分散処理を実行する。即ち、ステップ92で、k個の乱数γiを生成し、その積γ=γ1・γ2・・・γkを計算する。
(Concealment multiplication 2 (repetition))
Next, a case where abc is calculated by repeating multiplication will be described. A case where addition is performed after multiplication is shown in the third embodiment.
[dispersion]
In [Distribution], it is assumed that a and b are distributed in the same manner as the secret multiplication 1. That is, the first dealer apparatus 12A and the second dealer apparatus 12B execute the distributed processing of FIGS. 3 and 5, respectively.
The CPU 22 of the third dealer apparatus 12C executes the distributed processing of FIG. That is, in step 92, k random numbers γi are generated, and the product γ = γ1, γ2,.
 ステップ94で、以下の分散値を計算する。
Wc’(x)=γ(c+c0,1+・・・+c0,k-1 k-1
Wc1(x)=γ1+c1,1+・・・+c1,k-1 k-1

Wck(x)=γk+ck,1+・・・+ck,k-1 k-1
 ステップ96で、n個の第1のサ-バ14x~第nのサ-バ14xに、分散値Wc’(x)~Wck(x)を送信する。
 なお、n=4、k=3の場合、上記分散値Wc’(x)~Wck(x)は、図15に示す通りである。
In step 94, the following variance values are calculated.
Wc ′ (x i ) = γ (c + c 0,1 x i +... + C 0, k−1 x i k−1 )
Wc1 (x i ) = γ1 + c 1,1 x i +... + C 1, k−1 x i k−1
:
Wck (x i ) = γk + c k, 1 x i +... + C k, k−1 x i k−1
In step 96, the dispersion values Wc ′ (x i ) to Wck (x i ) are transmitted to the n first servers 14x 1 to the n th server 14x n .
In the case of n = 4, k = 3, the dispersion value Wc '(x i) ~ Wck (x i) is as shown in FIG. 15.
[乗算]
 秘匿乗算1の上記処理(図7、図9)を実行し、Wab’(x)を計算する。
 予め定められたサ-バ、例えば、第1のサ-バ14xのCPU22は、図16のγcの復元・送信処理を実行する。即ち、ステップ102(図16も参照)で、Wc’(x)をk個集め、ステップ104(図16も参照)で、γcを復元し、ステップ106(図16も参照)で、γcを他のサ-バに送信する。上記例では、γcをサーバ14x~14xに送信する。その様子を図17に示す。
[Multiplication]
The processing (FIGS. 7, 9) of the concealed multipliers 1 running, to calculate the Wab '(x i).
Predetermined service - server, for example, the first sub - CPU 22 of server 14x 1 executes the decompression process of transmitting γc in FIG. That is, at step 102 (see also FIG. 16), k Wc ′ (x j ) are collected, γc is restored at step 104 (also see FIG. 16), and γc is restored at step 106 (see also FIG. 16). Send to other servers. In the above example, γc is transmitted to the servers 14x 2 to 14x 4 . This is shown in FIG.
 各サ-バ14x~14xのCPU22は、図18(A)の乗算処理を実行する。即ち、ステップ108で、自分がもつWab’(x)にγcをかけてWabc’(x)を生成する。
 Wabc’(x)=αβγc(ab+ab0,1+・・・+ab0,k-1 k-1
 n=4、k=3の場合、第1のサーバ14x~第4のサーバ14xにおけるWabc’(x)~Wabc’(x)は、図18(B)に示す通りである。
The CPU 22 of each server 14x 1 to 14x n executes the multiplication process of FIG. That is, in Step 108, Wabc ′ (x j ) is generated by multiplying the Wab ′ (x j ) of the user by γc.
Wabc ′ (x j ) = αβγc (ab + ab 0,1 x i +... + Ab 0, k−1 x i k−1 )
When n = 4 and k = 3, Wabc ′ (x 1 ) to Wabc ′ (x 4 ) in the first server 14x 1 to the fourth server 14x 4 are as shown in FIG.
[復元]
 復元に参加する予め定められたサ-バj(j=1,…,k)、即ち、例えば、第1のサーバ14x~第kのサーバ14xの各々のCPU22は、図19のαβγjの復元・計算・送信処理を実行する。即ち、ステップ112で、指定されたjに応じたWaj(x),Wbj(x),Wcj(x)(i=1,…,k)を集める(n=4、k=3の場合の例を示す図20も参照)。ステップ114で、1サ-バ当たりα ,β ,γjを1つずつ復元する。ステップ116で、積αβγjを計算し、ステップ118で、Wabc’(x)とαβγjを復元装置16に送信する。
[Restore]
A predetermined server j (j = 1,..., K) participating in the restoration, that is, for example, the CPU 22 of each of the first server 14x 1 to the kth server 14x k is represented by α j in FIG. β j γj is restored, calculated, and transmitted. That is, in step 112, Waj (x i ), Wbj (x i ), Wcj (x i ) (i = 1,..., K) corresponding to the designated j are collected (n = 4, k = 3 See also FIG. 20 for an example of the case). In step 114, α j , β j , and γ j are restored one by one per server. In step 116, the product α j β j γj is calculated, and in step 118, Wabc ′ (x j ) and α j β j γj are transmitted to the restoration device 16.
 復元装置16のCPU22は、図21の乗算結果取得処理を実行する。即ち、ステップ122(図22も参照)で、k個のWabc’(x)からαβγabcを復元し、ステップ124(図22も参照)で、αβγj(j=1,・・・,k)からαβγを合成し、ステップ126(図22も参照)で、αβγabcをαβγj(j=1,・・・,k)で割ってabcを得る。 The CPU 22 of the restoration device 16 executes the multiplication result acquisition process of FIG. That is, in step 122 (see also FIG. 22), to restore the αβγabc of k WABC '(x j), at step 124 (see FIG. 22), α j β j γj ( j = 1, ··· , k) to synthesize αβγ, and in step 126 (see also FIG. 22), αβγabc is divided by α j β j γj (j = 1,..., k) to obtain abc.
 以上より、秘匿乗算の繰り返しは秘匿乗算1の[乗算]の繰り返しを基本として、少しの変形で実現できることがわかる。また、秘匿乗算1の[乗算]処理で得られるWab’(x)は乱数がかかったままであるので、復元が行われるまで途中結果が漏洩することはない。 From the above, it can be understood that the repetition of the secret multiplication can be realized with a slight modification on the basis of the [multiplication] of the secret multiplication 1. Further, since Wab ′ (x i ) obtained by the [multiplication] process of the secret multiplication 1 is still subjected to a random number, the result is not leaked until restoration is performed.
 以上から、本実施例は秘匿乗算及びその繰り返しに対して有効であることが言える。 From the above, it can be said that this embodiment is effective for concealment multiplication and its repetition.
 また、実数を対象とする場合、小数点位置に対しても秘密分散を行い、小数点をずらす処理を秘匿計算として実行することができる。例えば、全ての小数点位置が小数点第二位である場合は、前述のように加減算では小数点位置が変わらず、乗除算の場合のみ小数点位置が変化する。しかし、この小数点位置の変化は加減算によって演算できるので、秘密分散した小数点位置を秘匿加算すればよい。すなわち、小数点第二位までの数Aと小数点第三位までの数Bをかけると小数点第五位の数となるが、Aの小数点位置を表すa=2、とBの小数点位置を表すb=3を秘密分散して秘匿加算すれば、その和を表す5の分散値が得られることは明らかである。 Also, when a real number is targeted, secret sharing is performed for the decimal point position, and the process of shifting the decimal point can be executed as a secret calculation. For example, when all decimal point positions are the second decimal place, as described above, the decimal point position does not change by addition / subtraction, and the decimal point position changes only by multiplication / division. However, since the change of the decimal point position can be calculated by addition and subtraction, the secret-distributed decimal point position may be added secretly. That is, when the number A to the second decimal place and the number B to the third decimal place are multiplied, the number is the fifth decimal place, a = 2 representing the decimal point position of A, and b representing the decimal point position of B Obviously, if the secret sharing is performed on = 3 and the secret addition is performed, a dispersion value of 5 representing the sum is obtained.
 よって、実数対応の秘匿乗算を以下に示す。処理の流れは秘匿乗算1とほぼ同様であるが、実数対応の詳細を理解するために、以下の秘匿乗算3を示す。ただし、実数を対象とする場合、秘密情報や乱数は以下のような実数とし、秘密分散部分以外の演算は全てqなどを法とせず、実数演算で行われる。すなわち、[分散]におけるa,b,乱数αii(i=1,・・,k)及びαを整数化すれば素数p以下となる実数(αiiはpでなくてもよいがここでは小数点位置を含めてp以下とする)とし、αa及びβbを整数化すれば素数q以下となる実数とする。よって、[分散]における秘密分散であるαiとβiの分散はpを法として整数化して分散し、αaとβbの分散はqを法として整数化して秘密分散する。この場合、[復元]でαiとβiの復元処理はpを法として行い、αaとβbの復元処理はqを法として行うが、復元した後のαii,α,βに関連する演算はqを法とせず、実数として演算する。この場合、αaに加えてβbも復元し、その後実数演算する。 Therefore, the real number-based concealment multiplication is shown below. The flow of processing is almost the same as the secret multiplication 1, but the following secret multiplication 3 is shown in order to understand the details corresponding to the real number. However, when a real number is targeted, secret information and random numbers are real numbers as follows, and all operations other than the secret sharing part are performed by real number calculation without using q as a modulus. That is, if a and b, random numbers α i , β i (i = 1,..., K) and α in [dispersion] are converted to integers, real numbers (α i , β i are not p but less than p) However, here, it is set to p or less including the decimal point position), and if αa and βb are converted to integers, they are real numbers that are less than or equal to the prime number q. Thus, Dispersion] dispersion of αi and beta i are secret sharing in was dispersed by an integer the modulo p, variance of αa and βb are secret sharing with integer modulo q. In this case, the restoration process of α i and β i in [Restore] is performed with p as the modulus, and the restoration process of αa and βb is performed with the modulus of q, but the restored α i , β i , α, β Related operations are not modulo q, but are calculated as real numbers. In this case, βb is restored in addition to αa, and then a real number is calculated.
 追加される処理としては、[分散]において小数点位置を示す値を秘密分散することと、[乗算]において上記のように秘匿加算して新たな小数点位置を計算することである。 The added processing is to secretly distribute the value indicating the decimal point position in [Distribution] and to calculate the new decimal point position by performing the secret addition as described above in [Multiplication].
秘匿乗算3(実数対応)
[分散]
 秘密情報a(実数)をもつ第1のディーラ装置12AのCPU22は、図23に示す分散処理を実行する。即ち、第1のディーラ装置12AのCPU22は、ステップ101で、k個の乱数αを実数として生成し、その積α=α・α・・・αを実数計算する。乱数αは、定められた小数点位置をもつ実数として表されるとする。
Secret multiplication 3 (real number correspondence)
[dispersion]
The CPU 22 of the first dealer apparatus 12A having the secret information a (real number) executes the distributed processing shown in FIG. That, CPU 22 of the first dealer apparatus 12A in step 101, generates k pieces of random number alpha i as a real number to a real number calculation that product α = α 1 · α 2 ··· α k. The random number α i is expressed as a real number having a predetermined decimal point position.
 第1のディーラ装置12AのCPU22は、ステップ103で、以下の分散値を計算する。ただし、aとαi(i=1,・・・,k)とαを、整数表現すればp以下の整数で表せる定められた小数点位置をもつ実数とする。α=α・α・・・αの計算は丸め方により値がずれるが、ここでは簡単のため、αはα・α・・・αを計算した後、小数点位置を調整するとする。すなわち、例えば全パラメータが小数点2位の実数とすると、αは小数点位置が2kとなるが、小数点位置を調整して小数点3位を切り捨てまたは四捨五入して小数点2位の値とし、かつ整数表現すればp以下の整数となる。また、αaを整数表現すればq以下の整数で表せる定められた小数点位置をもつ実数(ここでは小数点2位とする)として、αaを整数表現し、素数qを法として以下の分散値を計算する。また、αi(i=1,…,k)もp以下の整数の形にし、pを法として以下を計算する。さらに、αiの小数点位置を表す値d1(p以下の整数)とαaの小数点位置を表す値d3もここではpを法として秘密分散する。
Wa’(x)=α(a+a0,1+・・・+a0,k-1 k-1
Wa(x)=α+a1,1+・・・+a1,k-1 k-1

Wa(x)=α+ak,1+・・・+ak,k-1 k-1
Wd(x)=d1+d1,1+・・・+d1,k-1 k-1
Wd(x)=d+d3,1+・・・+d3,k-1 k-1
 ただし、ah,j及びd1,j、d3,j(h=0,・・・,k、j=1,・・・,k-1)は乱数(整数),xはサ-バID(i=1,…,n)
In step 103, the CPU 22 of the first dealer apparatus 12A calculates the following variance value. However, a, α i (i = 1,..., K), and α are real numbers having a predetermined decimal point position that can be expressed by an integer equal to or less than p if expressed as an integer. α = α 1 · α 2 · · · α k is shifted by the rounding method, but for simplicity here, α is calculated α 1 · α 2 ... α k , then adjust the decimal point position Then. That is, for example, if all parameters are real numbers with 2 decimal places, α will have 2k decimal place, but the decimal place will be adjusted and rounded off or rounded off to 2 decimal places and expressed as an integer. For example, an integer less than or equal to p In addition, if αa is expressed as an integer, αa is expressed as an integer as a real number with a fixed decimal point position that can be expressed as an integer less than or equal to q (here, the second decimal place), and the following variance is calculated using prime number q as the modulus To do. Also, α i (i = 1,..., K) is also an integer less than or equal to p, and the following is calculated using p as a modulus. Further, a value d 1 (an integer less than or equal to p) representing the decimal point position of αi and a value d3 representing the decimal point position of αa are also secretly distributed using p as a modulus.
Wa ′ (x i ) = α (a + a 0,1 x i +... + A 0, k−1 x i k−1 )
Wa 1 (x i ) = α 1 + a 1,1 x i +... + A 1, k−1 x i k−1
:
Wa k (x i ) = α k + a k, 1 x i +... + Ak, k−1 x i k−1
Wd 1 (x i ) = d 1 + d 1,1 x i +... + D 1, k−1 x i k−1
Wd 3 (x i ) = d 3 + d 3,1 x i +... + D 3, k−1 x i k−1
However, a h, j and d 1, j , d 3, j (h = 0,..., K, j = 1,..., K−1) are random numbers (integers), and x i is a service. ID (i = 1, ..., n)
 ステップ105で、第1のサ-バ14x~第nのサ-バ14xに送信する。 In step 105, the data are transmitted to the first server 14x 1 to the nth server 14x n .
 秘密情報b(実数)をもつオ-ナBの第2のディーラ装置12BのCPU22は、図24に示す分散処理を実行する。即ち、ステップ111で、k個の乱数βを実数として生成し、その積β=β・β・・・βを実数計算する。βiは、定められた小数点位置をもつ実数として表されるとする。 The CPU 22 of the second dealer apparatus 12B of the owner B having the secret information b (real number) executes the distributed processing shown in FIG. That is, in step 111, k random numbers β i are generated as real numbers, and the product β = β 1 · β 2 ... Β k is calculated as a real number. Let β i be represented as a real number with a fixed decimal point position.
 ステップ113で、以下の分散値を計算する。この場合、bとβiとβを、整数表現すればp以下の整数で表せる定められた小数点位置をもつ実数とし、βbを整数表現すればq以下の整数で表せる定められた小数点位置をもつ実数として、βbを整数表現し、素数qを法として以下の分散値を計算する。また、βi(i=1,…,k)もp以下の整数の形にし、pを法として以下を計算する。さらに、βiの小数点位置を表す値d2(p以下の整数)とβbaの小数点位置を表す値d4もpを法として秘密分散する。
Wb’(x)=β(b+b0,1+・・・+b0,k-1 k-1
Wb(x)=β+b1,1+・・・+b1,k-1 k-1

Wb(x)=β+bk,1+・・・+bk,k-1 k-1
Wd(x)=d2+d2,1+・・・+d2,k-1 k-1
Wd(x)=d4+d4,1+・・・+d4,k-1 k-1
 ただし、bh,j及びd2,j、d4,j(h=0,・・・,k、j=1,・・・,k-1)は乱数,xはサ-バID(i=1,…,n)
In step 113, the following variance value is calculated. In this case, if b, βi, and β are expressed as integers, they are real numbers having a predetermined decimal point position that can be expressed by an integer less than or equal to p. If βb is expressed as an integer, a real number having a predetermined decimal point position that can be expressed as an integer less than or equal to q The following variance value is calculated by expressing βb as an integer and modulo the prime number q. Also, β i (i = 1,..., K) is also an integer less than or equal to p, and the following is calculated using p as a modulus. Further, the value d 2 (integer of p or less) representing the decimal point position of βi and the value d4 representing the decimal point position of βba are also secretly distributed using p as a modulus.
Wb ′ (x i ) = β (b + b 0,1 x i +... + B 0, k−1 x i k−1 )
Wb 1 (x i ) = β 1 + b 1,1 x i +... + B 1, k−1 x i k−1
:
Wb k (x i ) = β k + b k, 1 x i +... + B k, k−1 x i k−1
Wd 2 (x i ) = d 2 + d 2,1 x i +... + D 2, k−1 x i k−1
Wd 4 (x i ) = d 4 + d 4,1 x i +... + D 4, k−1 x i k−1
However, b h, j and d 2, j, d 4, j (h = 0, ···, k, j = 1, ···, k-1) is a random number, x i is Sa - server ID ( i = 1, ..., n)
 ステップ115で、第1のサ-バ14x~第nのサ-バ14xに送信する。 In step 115, the data is transmitted to the first server 14x 1 to the n-th server 14x n .
[復元]
 復元に参加するサーバ、例えば、予め定められた第1のサ-バ14x~第kのサ-バ14xの各CPU22は、図25に示すαβの復元・送信処理を実行する。即ち、ステップ121で、指定されたjに応じたWa(x)とWb(x)を、jに対応するサーバから集め、ステップ123で、αとβを素数pを法として1つずつ復元する。ステップ125で、実数化したαjとβjを用いてαβを実数演算し、ステップ127で、計算したαβを復元装置16に送信する。
[Restore]
The servers participating in the restoration, for example, the CPUs 22 of the first server 14x 1 to the k-th server 14x k determined in advance, execute the restoration / transmission processing of α j β j shown in FIG. . That is, in step 121, Wa j (x j ) and Wb j (x j ) corresponding to the designated j are collected from the server corresponding to j, and in step 123, α j and β j are modulo prime p. Restore one by one. In step 125, α j β j is calculated as a real number using α j and β j converted to real numbers, and the calculated α j β j is transmitted to the restoring device 16 in step 127.
 復元装置16のCPU22は、図26に示す復元処理を実行する。即ち、ステップ131で、αβ(j=1,…,k)を受信し、ステップ133で、αβを実数演算で掛けてαβを計算する。このとき必要があれば、以下の処理を行う。 The CPU 22 of the restoration device 16 executes the restoration process shown in FIG. That is, in step 131, α j β j (j = 1, ..., k) receives, at step 133, by multiplying the alpha j beta j in real operation to calculate the .alpha..beta. If necessary, the following processing is performed.
 各サーバはWd1(xi)+Wd3(xi)を計算して、復元装置に送る。
復元装置はWd1(xi)+Wd3(xi)を復元して、それをk倍した値からαβの小数点位置を知り、αβの小数点位置を調整する。
Each server calculates Wd1 (xi) + Wd3 (xi) and sends it to the restoration device.
The restoration device restores Wd1 (xi) + Wd3 (xi), knows the decimal point position of αβ from the value obtained by multiplying it by k, and adjusts the decimal point position of αβ.
 第1のサ-バxのCPU22は、図27に示すαβabの送信処理を実行する。即ち、ステップ141で、各サーバから対応するWa’(x)をk個集め、ステップ143で、αaを素数qを法として復元する。ステップ145で、各サーバから対応するWb’(x)をk個集め、ステップ147で、βbを素数qを法として復元する。ステップ149で、実数としてαβabを計算し、ステップ151で、αβabを復元装置16に送信する。このとき必要があれば、以下の処理を行う。 The CPU 22 of the first server x 1 executes αβab transmission processing shown in FIG. That is, in step 141, k corresponding Wa ′ (x i ) are collected from each server, and in step 143, αa is restored modulo the prime number q. In step 145, k corresponding Wb ′ (x i ) are collected from each server, and in step 147, βb is restored modulo the prime number q. In step 149, αβab is calculated as a real number, and in step 151, αβab is transmitted to the restoration device 16. If necessary, the following processing is performed.
 各サーバはWd2(xi)+Wd4(xi)を計算して、復元装置に送る。
復元装置はWd2(xi)+Wd4(xi)を復元して、その値からαβabの小数点位置を知り、αβabの小数点位置を調整する。
Each server calculates Wd2 (xi) + Wd4 (xi) and sends it to the restoration device.
The restoration device restores Wd2 (xi) + Wd4 (xi), knows the decimal point position of αβab from the value, and adjusts the decimal point position of αβab.
 復元装置16は、図26のステップ135で、αβabを受信し、ステップ137で、αβで割ってabを得る。 The restoration device 16 receives αβab at step 135 in FIG. 26, and obtains ab by dividing by αβ at step 137.
 上記の特徴はaとαを整数表現すればp以下の実数、αaを整数表現すればq以下の実数としたことであるである。例えばp=11、q=127として、αとaを整数とした場合、αa=21であればαとaは7と3の組合せに限定される。しかし、αとaを小数点1位の実数、αaを小数点0位の実数とすればαa=21であっても、(α,a)は(7,3)以外に(7.1,2.9),(6.9,3.0),・・・,(1.1,19.1),・・・,(30.0,0.7),・・・など種々の組合せが存在し、特定不能になる。よって、αとaを整数とする場合、乱数αをq以下の整数とすることによってαとaの組み合わせの限定を防ぐが、αとaが実数であれば、αとaをp以下とし、αaをq以下とすることにより、秘密分散と実数演算を両立させる。よって、αaやβbを公開しても安全であるといえる。この特徴は請求項15に示される。
 また、上記では小数点位置を表す値も秘密分散し、演算結果の小数点位置を調整したが、例えば小数点位置がある値に固定されている場合、小数点位置を表す分散値及び秘匿演算は省略できる。例えば、全てのパラメータは小数点第2位の実数と定められていれば、上記アルゴリズムではαβの小数点位置は2kであり、αβabの小数点位置は4であることは明らかである。
The above feature is that if a and α are expressed as integers, they are real numbers of p or less, and if αa is expressed as an integer, they are real numbers of q or less. For example, when p = 11 and q = 127, and α and a are integers, α and a are limited to a combination of 7 and 3 if αa = 21. However, if α and a are real numbers with 1 decimal point and αa is real number with 0 decimal point, even if αa = 21, (α, a) is (7.1,2.9), ( 6.9,3.0), ..., (1.1,19.1), ..., (30.0,0.7), ..., etc., and various combinations exist, making it unspecified. Therefore, when α and a are integers, limiting the combination of α and a by preventing the random number α from being an integer equal to or less than q, but if α and a are real numbers, α and a are less than p, By making αa less than or equal to q, both secret sharing and real number calculation are made compatible. Therefore, it can be said that it is safe to disclose αa and βb. This feature is indicated in claim 15.
In the above, the value representing the decimal point position is also secretly distributed and the decimal point position of the calculation result is adjusted. For example, when the decimal point position is fixed to a certain value, the distributed value representing the decimal point position and the secret calculation can be omitted. For example, if all parameters are defined as real numbers with the second decimal place, it is clear that the decimal point position of αβ is 2k and the decimal point position of αβab is 4 in the above algorithm.
 秘匿乗算は整数または実数に関わらず、秘匿乗算1によって実現できる。ただし、秘匿除算は第2の実施の形態で述べるように、秘匿乗算1を除算対応にするだけ(秘匿除算1)では実現できない。よって、秘匿乗算3は秘匿乗算と秘匿除算を同形態にする(秘匿除算3に対応させる)ためのものである。その特徴は第2の実施の形態において述べる。
 以上は、以降の実施の形態についても同様である。
The concealment multiplication can be realized by the concealment multiplication 1 regardless of an integer or a real number. However, as described in the second embodiment, concealment division cannot be realized only by making concealment multiplication 1 correspond to division (concealment division 1). Therefore, the secret multiplication 3 is for making the secret multiplication and the secret division the same form (corresponding to the secret division 3). The feature will be described in the second embodiment.
The same applies to the following embodiments.
<第2の実施の形態>
 次に、秘匿除算を行う場合を説明する。ここでは第2のディーラ装置12Bが持つ秘密情報bを第1のディーラ装置12Aが持つ秘密情報aで割る、即ちb/aを計算する場合を考える。
(秘匿除算1(基本形))
 まず、秘匿除算1(基本形)について説明する。秘匿除算1(基本形)は、分散、除算、及び復元の処理により実行される。
[分散]
 秘匿除算1(基本形)の分散は、秘匿乗算1の分散処理(図3、図5)と同様であるので、その説明を省略する。
[除算]
 次に、除算を説明する。あるサ-バ14x、例えば、予め定められた第1のサ-バ14xのCPU22は、図7に示すαaの復元・送信処理を実行する(図8も参照)。即ち、Wa’(x)をk個集め(ステップ62)、αaを復元し(ステップ64)、αaを他のサ-バに分散する(ステップ66)。
<Second Embodiment>
Next, a case in which concealment division is performed will be described. Here, consider a case where the secret information b held by the second dealer apparatus 12B is divided by the secret information a held by the first dealer apparatus 12A, that is, b / a is calculated.
(Concealment division 1 (basic form))
First, the secret division 1 (basic form) will be described. The concealment division 1 (basic form) is executed by processing of distribution, division, and restoration.
[dispersion]
Since the distribution of the concealment division 1 (basic form) is the same as the distribution processing of the concealment multiplication 1 (FIGS. 3 and 5), the description thereof is omitted.
[division]
Next, division will be described. A certain server 14x d , for example, the CPU 22 of the predetermined first server 14x1, executes the restoration / transmission processing of αa shown in FIG. 7 (see also FIG. 8). Specifically, k Wa ′ (x i ) are collected (step 62), αa is restored (step 64), and αa is distributed to other servers (step 66).
 各サ-バj(j=1,…,n)、即ち、第1のサ-バ14x~第nのサ-バ14xの各々のCPU22は、図28(A)に示す除算処理実行する。即ち、ステップ128で、自分がもつWb’(x)をαaで割ってWab’(x)を生成する。
 Wab’(x)=(β/αa)(b+b0,1+・・・+b0,k-1x k-1
 n=4.k=3の場合の、第1のサーバ14x~第4のサーバ14xにおけるWab’(x)は、図28(B)に示す通りである。
Each server j (j = 1,..., N), that is, each CPU 22 of the first server 14x 1 to the n-th server 14x n executes the division process shown in FIG. To do. That is, in step 128, Wb ′ (x j ) that it owns is divided by αa to generate Wab ′ (x j ).
Wab ′ (x j ) = (β / αa) (b + b 0,1 x j +... + B0, k−1x j k−1 )
n = 4. Wab ′ (x j ) in the first server 14x 1 to the fourth server 14x 4 in the case of k = 3 is as shown in FIG.
[復元]
 次に、復元を説明する。
 復元に参加するサ-バj(j=1,…,k)、即ち、例えば、第1のサーバ14x~第kのサーバ14xの各CPU22は、図29のβ/αの復元・計算・送信処理を実行する。即ち、ステップ132(図30も参照)で、予め指定されたjに応じたWaj(xi)とWbj(xi)(i=1,…,k)を集め、ステップ134(図30も参照)で、1サ-バ当たりαとβを1つずつ復元する。
[Restore]
Next, restoration will be described.
The servers j (j = 1,..., K) participating in the restoration, that is, for example, each CPU 22 of the first server 14x 1 to the kth server 14x k restores β j / α j in FIG.・ Calculation / transmission processing is executed. That is, in step 132 (see also FIG. 30), Wa j (x i ) and Wb j (x i ) (i = 1,..., K) corresponding to j specified in advance are collected, and step 134 (FIG. 30) is collected. Also, α j and β j are restored one by one per server.
 ステップ136(図30も参照)で、商β/αを計算し、ステップ138(図30も参照)で、Wab’(x)とβ/αを復元装置16に送信する。
 n=4、k=3の場合、上記処理により、復元装置16には、図30に示す各データが送信されている。
In step 136 (see also FIG. 30), the quotient β j / α j is calculated, and in step 138 (see also FIG. 30), Wab ′ (x j ) and β j / α j are transmitted to the restoration device 16.
When n = 4 and k = 3, the data shown in FIG. 30 is transmitted to the restoration device 16 by the above processing.
 復元者の復元装置16のCPU22は、図31の除算結果取得処理を実行する。即ち、ステップ142(図32も参照)で、k個のWab’(x)からβb/αaを復元し、ステップ144(図32も参照)で、β/α(j=1,…,k)からβ/αを合成する。ステップ146(図32も参照)で、βb/αaをβ/αで割ってb/aを得る。 The CPU 22 of the restoring device 16 of the restoring person executes the division result acquisition process of FIG. That is, in step 142 (see also FIG. 32), βb / αa is restored from k Wab ′ (x j ), and in step 144 (see also FIG. 32), β j / α j (j = 1,... , k) to synthesize β / α. In step 146 (also see FIG. 32), βb / αa is divided by β / α to obtain b / a.
 以上より、秘匿除算も秘匿乗算と非常に似た処理で実現できることがわかる。よって、分散は請求項1で表現される。請求項2も同一であるが、具体的には「前記復元した第1の部分乱数と第2の部分乱数を合成する」仕方が異なる。すなわち、秘匿乗算ではαとβからαβを合成するが、秘匿除算ではβ/αを合成する。請求項3も同一であるが、具体的な行う所定の演算が異なる。請求項4も同一であるが、具体的には合成する乱数が異なる。 From the above, it can be understood that the concealment division can be realized by a process very similar to the concealment multiplication. Thus, the variance is expressed in claim 1. The second aspect is the same as the second aspect, but specifically, the method of “synthesize the restored first partial random number and the second partial random number” is different. That is, α j β j is synthesized from α j and β j in the secret multiplication, but β j / α j is synthesized in the secret division. Claim 3 is also the same, but the specific calculation to be performed is different. Claim 4 is also the same, but specifically, the random numbers to be combined are different.
 ただし、上記において各サーバはステップ136においてβ/αを計算し、ステップ138で復元装置に送ったが、ステップ136でα/βを計算し、ステップ138でそれを復元装置に送り、復元装置はステップ144でα/βからα/βを合成し、ステップ146でβb/αaにα/βをかけてb/aを得るようにすることもできる。 However, in the above, each server calculates β j / α j in step 136 and sends it to the restoration device in step 138, but calculates α j / β j in step 136 and sends it to the restoration device in step 138. In step 144, the restoration device may synthesize α / β from α j / β j , and in step 146, α / β may be multiplied by βb / αa to obtain b / a.
(秘匿除算2(繰り返し))
 次に、秘匿除算2(繰り返し)を説明する。秘匿除算2(繰り返し)では、秘密情報cによる秘匿除算を連続させる。この場合、第1の実施の形態の秘匿乗算2の[乗算]と[復元]において、以下の変更を行うことにより実行できる。
(Confidential division 2 (repetition))
Next, secret division 2 (repetition) will be described. In secrecy division 2 (repetition), secrecy division by secret information c is continued. In this case, it can be executed by making the following changes in [Multiplication] and [Restoration] of the secret multiplication 2 of the first embodiment.
[分散]
 秘匿除算2(繰り返し)における分散は、秘匿乗算2の分散処理(図3、図5、図14)と同様であるので、その説明を省略する。
[除算]
 各サ-バ14x~14xのCPU22(A)は、前述した図23(A)に示す除算処理を実行して、Wab’(x)(図23(B))を計算する。
[dispersion]
Since the distribution in the secrecy division 2 (repetition) is the same as the distribution process of the secrecy multiplication 2 (FIGS. 3, 5, and 14), description thereof is omitted.
[division]
The CPU 22 (A) of each of the servers 14x 1 to 14x n executes the division process shown in FIG. 23 (A) to calculate Wab ′ (x i ) (FIG. 23 (B)).
 また、あるサ-バ、例えば、第1のサ-バ14xのCPU22は、前述した図16に示すγcの復元・分散処理を実行する。即ち、Wc’(x)をk個集め(ステップ102)、γcを復元し(ステップ104)、γcを他のサ-バに送信する(ステップ106)(図17も参照)。 Further, there is Sa - server, for example, the first sub - CPU 22 of server 14x 1 executes the decompression distributed processing of γc shown in FIG. 16 described above. That is, k pieces of Wc ′ (x j ) are collected (step 102), γc is restored (step 104), and γc is transmitted to another server (step 106) (see also FIG. 17).
 サ-バj(j=1,…,n)、即ち、例えば、第1のサ-バ14x~第nのサ-バ14xの各CPU22は、図33(A)の除算処理を実行する。即ち、ステップ148で、γcで自分がもつWab’(x)を割ってWabc’(x)を生成する
 Wabc’(x)=(β/αaγc)(b+b0,1+・・・+b0,k-1 k-1
 n=4、k=3の場合の、第1のサーバ14x~第4のサーバ14xのWabc’(x)~Wabc’(x)は、図33(B)に示す通りである。
The server j (j = 1,..., N), that is, for example, the CPUs 22 of the first server 14x 1 to the nth server 14x n execute the division process of FIG. To do. That is, in step 148, Wabc '(x j) for generating a Wab that I have' (x j) obtained by dividing by Wabc '(x j) with γc = (β / αaγc) ( b + b 0,1 x i + · .. + b 0, k-1 x i k-1 )
FIG. 33B shows Wabc ′ (x 1 ) to Wabc ′ (x 4 ) of the first server 14x 1 to the fourth server 14x 4 when n = 4 and k = 3. .
[復元]
 復元に参加するサーバ、例えば、予め定められたサ-バ14x~14xの各CPU22は、図34のαβの復元・計算・送信処理を実行する。即ち、ステップ152(図35も参照)で、指定されたjに応じたWaj(x),Wbj(x),Wcj(x)を集め(i=1,…,k)、ステップ154(図35も参照)で、1サ-バ当たりα ,βj,γjを1つずつ復元する。
[Restore]
The servers participating in the restoration, for example, the CPUs 22 of the servers 14x 1 to 14x k determined in advance, execute the restoration / calculation / transmission processing of α j β j in FIG. That is, in step 152 (see also FIG. 35), Waj (x i ), Wbj (x i ), Wcj (x i ) corresponding to the designated j are collected (i = 1,..., K), and step 154 is performed. in (see FIG. 35 also), 1 Sa - server per alpha j, .beta.j, restoring one at a .gamma.j.
 ステップ156(図35も参照)で、β/αγjを計算し、ステップ158で、Wabc’(x)とβ/αγjを復元装置16に送信する。 In step 156 (see also FIG. 35), β j / α j γj is calculated, and in step 158, Wabc ′ (x j ) and β j / α j γj are transmitted to the restoration device 16.
 以上の処理により、復元装置16は、図35に示す各データが送信されている。 Through the above processing, each data shown in FIG. 35 is transmitted to the restoration device 16.
 復元装置16のCPU22は、図36の乗算結果取得処理を実行する。即ち、ステップ162(図37も参照)で、k個のWabc’(x)から(β/αγ)(b/ac)を復元し、ステップ164(図37も参照)で、β/αγを合成し、ステップ166(図37も参照)で、(β/αγ)(b/ac)をβ/αγで割ってb/acを得る。
 秘匿除算と乗算を組み合わせた連続の場合も同様の拡張が可能であることは明らかである。
The CPU 22 of the restoration device 16 executes the multiplication result acquisition process of FIG. That is, at step 162 (see also FIG. 37), (β / αγ) (b / ac) is restored from k Wabc ′ (x j ), and at step 164 (see also FIG. 37), β / αγ is restored. In step 166 (see also FIG. 37), (β / αγ) (b / ac) is divided by β / αγ to obtain b / ac.
It is clear that the same extension is possible in the case of continuous combination of concealment division and multiplication.
(秘匿除算3(実数対応))
 次に、パラメ-タが実数の場合の秘匿除算を説明する。加減算や乗算は上述したように、実数を整数表現し、素数pまたはqに対応してパラメータを設定することで対応可能である。
(Concealment division 3 (corresponding to real number))
Next, the secret division when the parameter is a real number will be described. As described above, addition / subtraction and multiplication can be handled by expressing a real number as an integer and setting a parameter corresponding to the prime number p or q.
 上記秘匿除算1においてはb/aが必ず割り切れる場合前記と同様で問題はない。しかし、b/aが割り切れない場合、実数対応にしなければ秘匿除算1では対応できない(素数qを法とする場合、必ず割り切れるため、実際の商と値が異なる)。よって、以下のようにする。秘匿乗算3で説明したように、a,b及びα,βも実数とし、その整数化した値が素数p以下となるようにする。以下では小数点位置は固定として小数点位置に関する処理を省略する。 In the above secret division 1, when b / a is always divisible, there is no problem as described above. However, when b / a is not divisible, the secret division 1 cannot be used unless the real number is supported (when the prime number q is modulo, the value is different from the actual quotient because it is always divisible). Therefore, it is as follows. As described in the secret multiplication 3, a, b, α, and β are also real numbers, and the integer values are set to be equal to or less than the prime number p. In the following, the decimal point position is fixed and the processing related to the decimal point position is omitted.
[分散]
 秘密情報a(実数)をもつ第1のディーラ装置12AのCPU22は、図3に示す分散処理を実行する。即ち、第1のディーラ装置12AのCPU22は、k個の乱数αを実数として生成し、その積α=α・α・・・αを実数計算する(ステップ42)。乱数αは、定められた小数点位置をもつ実数として表されるとする。
[dispersion]
The CPU 22 of the first dealer 12A having the secret information a (real number) executes the distributed processing shown in FIG. That is, the CPU 22 of the first dealer 12A generates k random numbers α i as real numbers and calculates the product α = α 1 · α 2 ... Α k (step 42). The random number α i is expressed as a real number having a predetermined decimal point position.
 第1のディーラ装置12AのCPU22は、図3のステップ44で、以下の分散値を計算する。この場合、aとαを、整数表現すればp以下の整数で表せる定められた小数点位置をもつ実数とし、αaを実数計算した後αaを整数表現し、素数qを法として以下の分散値を計算する。また、αi(i=1,…,k)もp以下の整数の形にし、pを法として以下を計算する。
Wa’(x)=α(a+a0,1+・・・+a0,k-1 k-1
Wa1(x)=α+a1,1+・・・+a1,k-1 k-1

Wak(x)=αak,1+・・・+ak,k-1 k-1
 ただし、ah,j(h=0,・・・,k、j=1,・・・,k-1)は乱数(整数),xはサ-バID(i=1,…,n)
The CPU 22 of the first dealer 12A calculates the following variance value at step 44 in FIG. In this case, if a and α are expressed as integers, they are real numbers with a fixed decimal point position that can be expressed by integers less than or equal to p, αa is calculated as a real number, αa is expressed as an integer, and the following variance is modulo prime number q. calculate. Also, α i (i = 1,..., K) is also an integer less than or equal to p, and the following is calculated using p as a modulus.
Wa ′ (x i ) = α (a + a 0,1 x i +... + A 0, k−1 x i k−1 )
Wa1 (x i ) = α 1 + a 1,1 x i +... + A 1, k−1 x i k−1
:
Wak (x i ) = α k + ak, 1 x i +... + Ak, k−1 x i k−1
However, a h, j (h = 0, ···, k, j = 1, ···, k-1) is a random number (integer), x i difference - server ID (i = 1, ..., n )
 図3のステップ46で、第1のサ-バ14x~第nのサ-バ14xに送信する。 In step 46 of FIG. 3, the data is transmitted to the first server 14x 1 to the nth server 14x n .
 秘密情報b(実数)をもつオ-ナBの第2のディーラ装置12BのCPU22は、図5のステップ52で、k個の乱数βを実数として生成し、その積β=β・β・・・βを実数計算する。βiは、定められた小数点位置をもつ実数として表されるとする。
 ステップ54で、以下の分散値を計算する。この場合、bとβを、整数表現すればp以下の整数で表せる定められた小数点位置をもつ実数とし、βbを実数計算した後、βbを整数表現し、素数qを法として以下の分散値を計算する。また、βi(i=1,…,k)もp以下の整数の形にし、pを法として以下を計算する。
Wb’(x)=β(b+b0,1+・・・+b0,k-1 k-1
Wb1(x)=β+b1,1+・・・+b1,k-1 k-1

Wbk(x)=β+bk,1+・・・+bk,k-1 k-1
 ただし、bh,j(h=0,・・・,k、j=1,・・・,k-1)は乱数,xはサ-バID(i=1,…,n)
 ステップ56で、第1のサ-バ14x~第nのサ-バ14xに送信する。
The CPU 22 of the second dealer apparatus 12B of the owner B having the secret information b (real number) generates k random numbers β i as real numbers in step 52 of FIG. 5, and the product β = β 1 · β 2 ... Β k is a real number calculation. Let β i be represented as a real number with a fixed decimal point position.
In step 54, the following variance values are calculated. In this case, if b and β are expressed as integers, they are real numbers having a predetermined decimal point position that can be expressed by an integer less than or equal to p. Calculate Also, β i (i = 1,..., K) is also an integer less than or equal to p, and the following is calculated using p as a modulus.
Wb ′ (x i ) = β (b + b 0,1 x i +... + B 0, k−1 x i k−1 )
Wb1 (x i ) = β 1 + b 1,1 x i +... + B 1, k−1 x i k−1
:
Wbk (x i ) = β k + b k, 1 x i +... + B k, k−1 x i k−1
However, bh, j (h = 0 , ···, k, j = 1, ···, k-1) is a random number, x i difference - server ID (i = 1, ..., n)
In step 56, the data is transmitted to the first server 14x 1 to the n-th server 14x n .
[復元]
 復元に参加するサーバ、例えば、予め定められた第1のサ-バ14x~第kのサ-バ14xの各CPU22は、図38のβ/αの復元・送信処理を実行する。即ち、ステップ172(図39も参照)で、指定されたjに応じたWa(x)とWb(x)を集め、ステップ174(図39も参照)で、αとβを素数qを法として1つずつ復元する。ステップ176(図39も参照)で、実数化したαjとβjを用いてβ/αを素数qを実数演算し、ステップ178(図39も参照)で、計算したβ/αを復元装置16に送信する。
[Restore]
The servers participating in the restoration, for example, the CPUs 22 of the first server 14x 1 to the k-th server 14x k determined in advance execute the restoration / transmission process of β j / α j in FIG. . That is, in step 172 (see also FIG. 39), Wa j (x j ) and Wb j (x j ) corresponding to the designated j are collected, and in step 174 (see also FIG. 39), α j and β j Are restored one by one using the prime number q as the modulus. In step 176 (see also FIG. 39), a real number q is calculated from β j / α j using realized α j and β j , and the calculated β j / α j is calculated in step 178 (see also FIG. 39). The data is transmitted to the restoration device 16.
 復元装置16のCPU22は、図40のβ/αの計算・送信処理を実行する。即ち、ステップ182で、β/α(j=1,…,k)を、実数演算で掛けてβ/αを計算する。 The CPU 22 of the restoration device 16 executes β / α calculation / transmission processing of FIG. That is, in Step 182, β / α is calculated by multiplying β j / α j (j = 1,..., K) by a real number calculation.
 第1のサ-バxのCPU22は、図41(A)のステップ192(図41(B)も参照)で、Wa’(x)をk個集め、αaを素数qを法として復元する。ステップ94で、Wb’(x)をk個集めβbを素数qを法として復元する。ステップ196で、実数としてβb/αaを計算し、ステップ198で、βb/αaを復元装置16に送信する。 The CPU 22 of the first server x 1 collects k Wa ′ (x i ) and restores αa modulo the prime number q in step 192 of FIG. 41A (see also FIG. 41B). To do. In step 94, k Wb ′ (x i ) are collected and βb is restored using the prime number q as the modulus. In step 196, βb / αa is calculated as a real number, and in step 198, βb / αa is transmitted to the restoration device 16.
 復元装置16は、図40のステップ186で、βb/αaを受信し、ステップ188で、βb/αaをβ/αで割ってb/aを得る。 The restoration device 16 receives βb / αa in step 186 in FIG. 40, and in step 188 divides βb / αa by β / α to obtain b / a.
 秘匿除算3(実数対応)の特徴は、以下の通りである。秘匿乗算1や秘匿除算1では秘密情報a(p以下の整数)に作用させる乱数αは法演算を行うq(p2より大きな素数)以下の整数であり、その乗算結果はqで法演算されるため秘匿化秘密情報であるαaは実際の値と異なる。しかしこれによって、秘匿化秘密情報αaは乱数化され安全になる。その後、乗算ではαβabが計算されるが、この値も実際の値と異なる。乱数の削除時にはαβabをαjβjで割っていくが、αjβjの値も法演算されるため実際の値と異なる。しかし、αβabをαjβjで割る演算もqを法として行われるため、正しくαβが除去されその結果であるabは正しく復元される。よって、qを法とする演算上でなければ上記秘匿乗算及び秘匿除算は正しく実行されない。よって、秘匿乗算1及び秘匿除算1では最後までqを法とする演算が行われる。しかし除算の場合、前述したようにqを法とする除算b/aはbに1/aをかける演算となるが、1/aが実際の値と異なるため、bがaの倍数の場合しか正しい実数上のb/aとならない。また、分散値を復元したαaとβbを用いて直接βb/αaを計算しても、復元されるβbとαaは実際の値と異なるため、正しいb/aとならない。ここで、乱数αをaと同じp以下の値とするとαaは必ずq以下の値となるため、実際の値となる。しかし、この場合素因数分解するとαaを構成するαとaが絞られ安全ではない。よって一般に、p以下の2つの値の合成値より大きなqを法として秘密分散することはない(通常はどちらかまたは両方がq以下の整数)。そこで、実数演算と組み合わせることにより、αとaを絞れないようにしている。この特徴は、請求項15に示される。
 
秘匿乗算3は秘匿除算3が行われる際、同じ分散値を用いて乗算にも対応できるようにしたものである。
The characteristics of secrecy division 3 (corresponding to real numbers) are as follows. In secret multiplication 1 or secret division 1, the random number α that acts on the secret information a (an integer less than or equal to p) is an integer that is less than or equal to q (a prime number greater than p 2 ) that performs the modulo operation. Therefore, αa which is the confidential information is different from the actual value. However, as a result, the confidential information αa is randomized and becomes secure. Thereafter, αβab is calculated by multiplication, but this value is also different from the actual value. When deleting a random number, αβab is divided by αjβj, but the value of αjβj is also a legal operation and is different from the actual value. However, since the operation of dividing αβab by αjβj is also performed using q as the modulus, αβ is correctly removed and the resulting ab is correctly restored. Therefore, the above-described concealment multiplication and concealment division are not executed correctly unless the operation is modulo q. Therefore, in the secret multiplication 1 and the secret division 1, calculations are performed modulo q to the end. However, in the case of division, as mentioned above, division b / a modulo q is an operation of multiplying b by 1 / a, but 1 / a is different from the actual value, so only when b is a multiple of a. It is not a correct real b / a. Further, even if βb / αa is directly calculated using αa and βb whose restored dispersion values are restored, since the restored βb and αa are different from the actual values, they are not correct b / a. Here, if the random number α is a value equal to or less than p, which is the same as a, αa is always a value equal to or less than q, and thus becomes an actual value. However, if prime factorization is used in this case, α and a constituting αa are narrowed down, which is not safe. Therefore, in general, secret sharing is not performed modulo q larger than the combined value of two values less than or equal to p (usually either or both are integers less than or equal to q). Therefore, α and a cannot be narrowed down by combining with real number arithmetic. This feature is indicated in claim 15.

The concealment multiplication 3 is adapted to support multiplication using the same variance value when concealment division 3 is performed.
 また、実数化されたcとの乗算を連続させる場合は、次のようにする。即ち、[復元]の図38のステップ172と174との間に、Wch(x)からγjを復元する処理を加え、図38のステップ176、ステップ178では、β/αγを計算かつ送信する。図40のステップ182、ステップ184では、復元装置16のCPU22はβ/αγを計算してサ-バxに送信し、図41のステップ194とステップ196との間に、Wc’(x)からγcを復元する処理を追加し、図41のステップ196で、第1のサ-バ14xのCPU22は、αaとβbとγcを実数としてβb/(αaγc)を計算し、復元装置16に送信する。端末装置16のCPU22は、図40のステップ188で、復元装置16はβb/(αaγc)をβ/αγで割ってb/acを得る。ただし、c及びそれに関連する値もa,bと同様の実数として、整数化して分散されているとする。さらに、秘匿除算2も実数の連続除算も同様に可能であることは明らかである。 Further, when the multiplication with the real number c is continued, the following is performed. That is, a process of restoring γj from Wch (x i ) is added between steps 172 and 174 in FIG. 38 of [Restore], and β j / α j γ j is set at steps 176 and 178 in FIG. Calculate and send. Step 182 in FIG. 40, in step 184, the CPU22 of the reconstruction apparatus 16 calculates the β / αγ service - send to the server x d, between step 194 and step 196 in FIG. 41, Wc '(x i ) To restore γc, and in step 196 of FIG. 41, the CPU 22 of the first server 14x1 calculates βb / (αaγc) using αa, βb, and γc as real numbers, and the restoring device 16 Send to. The CPU 22 of the terminal device 16 obtains b / ac by dividing βb / (αaγc) by β / αγ in step 188 of FIG. However, it is assumed that c and values related thereto are also converted into integers and distributed as real numbers similar to a and b. Furthermore, it is clear that both the concealment division 2 and the real continuous division are possible as well.
 以上より、秘匿除算も秘匿乗算と同様の処理で基本演算及び繰り返し演算が行え、実数に対しても全て対応できることがわかる。
 上記において、[復元]におけるサ-バxは秘密情報a,b及び演算結果b/aに関する情報は得られないので、どのサ-バがなってもよい。
From the above, it can be understood that the secret division can be performed by the same processing as the secret multiplication, and the basic calculation and the repetition calculation can be performed, and all the real numbers can be handled.
In the above, since the server xd in [restoration] cannot obtain information on the secret information a and b and the calculation result b / a, any server can be used.
<第3の実施の形態>
 次に、演算の連続の例として乗算と加算を連続させる積和演算ab+cについて示す。演算の基本は四則演算であり、加算と減算は代替可能で、第1の実施の形態及び第2の実施の形態より乗算と除算は容易に代替可能であるので、積和演算ができれば全ての演算の組合せに対応できることが言える。a=de+fとすれば(de+f)b+cとなり、f=0とすればdeb+cとなる。また、c=de+fとすればab+de+fとなり、種々の演算が可能である。ここでは、第1のディーラ装置12Aが持つ秘密情報aと第2のディーラ装置12Bが持つ秘密情報bと第3のディーラ装置12Cが持つ秘密情報cを用いてab+cを計算する場合を考える。ただし、今回は[積和]において復元装置16が秘匿演算に協力するが、復元装置16は第2の実施の形態の第1のサ-バ14xのように秘密情報や途中結果について何の情報も得られない。
<Third Embodiment>
Next, a product-sum operation ab + c that continuously performs multiplication and addition will be described as an example of continuous operation. The basic operation is four arithmetic operations. Addition and subtraction can be replaced. Multiplication and division can be easily replaced by the first and second embodiments. It can be said that it can cope with a combination of operations. If a = de + f, it becomes (de + f) b + c, and if f = 0, it becomes deb + c. If c = de + f, ab + de + f is obtained, and various calculations are possible. Here, consider a case where ab + c is calculated using the secret information a held by the first dealer device 12A, the secret information b held by the second dealer device 12B, and the secret information c held by the third dealer device 12C. However, this time, the restoration device 16 cooperates with the confidential calculation in [multiply-sum]. However, the restoration device 16 does not know anything about confidential information and intermediate results like the first server 14x1 of the second embodiment. No information is available.
(秘匿積和1(基本形))
 まず、秘匿積和1(基本形)について説明する。秘匿積和1(基本形)は、分散、積和、及び復元により実行される。
[分散]
 オ-ナA,B,Cのそれぞれは第1のディーラ装置12A~第3のディーラ装置12Cを用いて、秘密情報a,b,cに対して独立に以下の分散値を計算し、n台のサ-バに分散保管する(i=1,…,n)(図3、図5、図14)。
Wa’(x)=α(a+a0,1+・・・+a0,k-1 k-1
Wb’(x)=β(b+b0,1+・・・+b0,k-1 k-1
Wc’(x)=γ(c+c0,1+・・・+c0,k-1 k-1
Wa1(x)=α+a1,1+・・・+a1,k-1 k-1

Wak(x)=α+ak,1x+・・・+ak,k-1 k-1
Wb1(x)=β1+b1,1+・・・+b1,k-1 k-1

Wbk(x)=β+bk,1+・・・+bk,k-1 k-1
Wc1(x)=γ1+c1,1+・・・+c1,k-1 k-1

Wck(x)=γk+ck,1+・・・+ck,k-1 k-1
(Secret product sum 1 (basic form))
First, the secret product sum 1 (basic form) will be described. The secret product sum 1 (basic form) is executed by distribution, product sum, and restoration.
[dispersion]
Each of the owners A, B, and C uses the first dealer device 12A to the third dealer device 12C to calculate the following variance values independently for the secret information a, b, and c, and n units (I = 1,..., N) (FIGS. 3, 5, and 14).
Wa ′ (x i ) = α (a + a 0,1 x i +... + A 0, k−1 x i k−1 )
Wb ′ (x i ) = β (b + b 0,1 x i +... + B 0, k−1 x i k−1 )
Wc ′ (x i ) = γ (c + c 0,1 x i +... + C 0, k−1 x i k−1 )
Wa1 (x i ) = α 1 + a 1,1 x i +... + A 1, k−1 x i k−1
:
Wak (x i ) = α k + ak, 1x i +... + A k, k−1 x i k−1
Wb1 (x i ) = β1 + b 1,1 x i +... + B 1, k−1 x i k−1
:
Wbk (x i ) = β k + b k, 1 x i +... + B k, k−1 x i k−1
Wc1 (x i ) = γ1 + c 1,1 x i +... + C 1, k−1 x i k−1
:
Wck (x i ) = γk + c k, 1 x i +... + C k, k−1 x i k−1
[積和]及び[復元]
 例えば、第1のサ-バ14xは、図7のαaの復元・分散処理を実行する。第1のサ-バ14x~第kのサ-バ14xは、図9(A)の乗算処理を実行する。よって、第1のサ-バ14x~第kのサ-バ14xは以下のWab’(x)を得る(図9(B)参照)。
 Wab’(x)=αβa(b+ab0,1+・・・+ab0,k-1 k-1
[Product sum] and [Restore]
For example, the first sub - server 14x 1 executes the decompression distributed processing αa in FIG. The first server 14x 1 to the k-th server 14x k execute the multiplication process of FIG. Therefore, the first server 14x 1 to the k-th server 14x k obtain the following Wab ′ (x j ) (see FIG. 9B).
Wab ′ (x j ) = αβa (b + ab 0,1 x i +... + Ab 0, k−1 x i k−1 )
 第1のサ-バ14x~第kのサ-バ14xのCPU22は、図42の積和処理を実行する。即ち、ステップ200で、指定されたjに応じたWa(x),Wb(x),Wc(x)(i=1,…,k)を集め、ステップ202で、α,β,γjを1つずつ復元する。 The CPUs 22 of the first server 14x 1 to the k-th server 14x k execute the product-sum process of FIG. That is, at step 200, Wa j (x i ), Wb j (x i ), Wc j (x i ) (i = 1,..., K) corresponding to the designated j are collected, and at step 202, α j 1 , β j , and γ j are restored one by one.
 ステップ204で、乱数μjを生成し、αβ/μjとγj/μjを計算し、ステップ206で、αβ/μjとγj/μjを復元装置16に送信する。 In step 204, a random number μj is generated, α j β j / μj and γj / μj are calculated, and in step 206, α j β j / μj and γj / μj are transmitted to the restoration device 16.
 復元装置16のCPU22は、図43の復元処理を実行する。即ち、ステップ222で、αβ/μjとγj/μjを受信し、ステップ224で、αβ/μとγ/μをかけてαβ/μとγ/μを計算し、ステップ226で、αβ/μとγ/μを各サ-バ、即ち、第1のサ-バ14x~第kのサ-バ14xに送信する。 The CPU 22 of the restoration device 16 executes the restoration process of FIG. That is, α j β j / μj and γj / μj are received at step 222, and αβ / μ and γ / μ are calculated by multiplying α j β j / μ j and γ j / μ j at step 224. In step 226, αβ / μ and γ / μ are transmitted to each server, that is, the first server 14x 1 to the kth server 14x k .
 第1のサ-バ14x~第kのサ-バ14xのCPU22は、図42のステップ208で、αβ/μとγ/μを受信し、ステップ210で、Wab’(x)をαβ/μで、Wc’(x)をγ/μで割り、Wab’(x)=μ(ab+ab0,1+・・・+ab0,k-1^k-1)とWc’(x)=μ(c+c0,1+・・・+c0,k-1 k-1)を計算する。 The CPUs 22 of the first server 14x 1 to the kth server 14x k receive αβ / μ and γ / μ in step 208 of FIG. 42, and in step 210, Wab ′ (x j ) By αβ / μ, Wc ′ (x j ) is divided by γ / μ, and Wab ′ (x j ) = μ (ab + ab 0,1 x j +... + ab 0, k−1 x j ^ k−1 ) And Wc ′ (x j ) = μ (c + c 0,1 x i +... + C 0, k−1 x i k−1 ).
 ステップ212で、Wabc’(x)=Wab’(x)+Wc’(x)=μ{(ab+c)+abc0,1+・・・+abc0,k-1 k-1}を計算し、ステップ214で、Wabc’(x)を復元装置16に送信し、ステップ216で、μjを復元装置16に送信する。 In step 212, Wabc ′ (x j ) = Wab ′ (x j ) + Wc ′ (x j ) = μ {(ab + c) + abc 0,1 x i +... + Abc 0, k−1 x i k−1 }, And in step 214, Wabc ′ (x j ) is transmitted to the restoration device 16, and in step 216, μj is transmitted to the restoration device 16.
 復元装置16のCPU22は、図43のステップ228で、第1のサ-バ14x~第kのサ-バ14xから、Wabc’(x)を受信し、ステップ230で、μ(ab+c)を復元する。 The CPU 22 of the restoring device 16 receives Wabc ′ (x j ) from the first server 14x 1 to the kth server 14x k at step 228 in FIG. 43, and at step 230 μ (ab + c) ).
 ステップ232で、第1のサ-バ14x~第kのサ-バ14xから、μjを受信し、ステップ234で、μ=μ1・μ2…μkを合成し、ステップ236で、μ(ab+c)をμで割って、(ab+c)を得る。 In step 232, μj is received from the first server 14x 1 to the k-th server 14x k , and in step 234, μ = μ1, μ2,... Μk is synthesized, and in step 236, μ (ab + c ) Divided by μ to obtain (ab + c).
 また、ここでは新たな乱数μjを用いたが、μjを生成せず図42のステップ204においてαjβj/γjを計算して205においてそれを送信し、復元装置16は図43のステップ222においてそれを受信し、224においてαβ/γを合成して226で各サーバにその値を戻し、図42のステップ208でそれを受信し、210でWab’(xi)をαβ/γで割る、またはWc(xi)にαβ/γをかけることにより、2つの分散値に係る乱数をμではなくαβまたはγに合わせることができる。 Further, although a new random number μj is used here, μ j is not generated, αjβj / γj is calculated in step 204 of FIG. 42 and transmitted in 205, and the restoring device 16 returns it in step 222 of FIG. , Synthesize αβ / γ at 224 and return the value to each server at 226, receive it at step 208 of FIG. 42, divide Wab ′ (xi) by αβ / γ at 210, or Wc By multiplying (xi) by αβ / γ, the random numbers related to the two dispersion values can be matched with αβ or γ instead of μ.
 上記[積和]の図7のαβの復元・分散処理及び図9の乗算処理を実行せずに、以降bに関連する処理を省略すればa+cの和が計算できることがわかる。また、[積和]の図42の積和処理でcに関連する処理を行わなければabの積が計算できる。さらに、[積和]の図42のステップ212で得られたWabc’(x)をWa’(x)として処理を繰り返せば、(ab+c)b+cの秘匿演算が、Wabc’(x)をWc’(x)として処理を繰り返せばab+ab+cの秘匿演算が実現できることがわかる。 It can be seen that the sum of a + c can be calculated if the processing related to b is omitted without executing the above-described [α-β restoration / distribution processing of FIG. 7] and multiplication processing of FIG. Further, the product of ab can be calculated if the processing related to c is not performed in the product-sum processing of FIG. Furthermore, if the processing is repeated with Wabc ′ (x j ) obtained in step 212 of FIG. 42 in [Product sum] as Wa ′ (x i ), the secret calculation of (ab + c) b + c is performed by Wabc ′ (x j ). It can be seen that a secret calculation of ab + ab + c can be realized by repeating the processing with Wc ′ (x i ).
 また、2回目の処理においてWabc’(x)をWa’(x)、Wb’(x)をWd’(x)、Wc’(x)をWe’(x)とすれば(ab+c)d+eが得られ、種々の演算が実現できることがわかる。さらに、秘匿積和1においてa,cに関する処理を省略すると、Wb’(x)にかかる乱数βをμに変更することができる。 In the second processing, Wabc ′ (x j ) is set to Wa ′ (x i ), Wb ′ (x j ) is set to Wd ′ (x i ), and Wc ′ (x j ) is set to We ′ (x i ). (Ab + c) d + e is obtained, and it can be seen that various operations can be realized. Furthermore, if the processing related to a and c in the secret product sum 1 is omitted, the random number β applied to Wb ′ (x i ) can be changed to μ.
 μjは使い捨てにすることもできるが、サ-バjがμjを秘密分散して全サ-バでその分散値を保存すれば、必要なときに使うこともできる。また、パラメ-タが実数であっても今までの実施例から演算の連続に対応できることは明らかである。 Μj can be made disposable, but if server j secretly distributes μj and stores the distributed value in all servers, it can be used when necessary. Further, it is clear that even if the parameter is a real number, it is possible to cope with the continuation of calculation from the embodiments so far.
上記における特徴は請求項5に示されるようにオーナA,B,Cが独立に設定したα,β,γのような乱数をαj,βj,γjを用いて、または新たにμjなどを用いて変換し、次の秘匿演算に便利な形に変換することである。 The above feature is that, as shown in claim 5, random numbers such as α, β, and γ independently set by owners A, B, and C use αj, βj, and γj, or newly use μj and the like. To convert it into a convenient form for the next secret operation.
 以上、第1の実施の形態~第3の実施の形態により秘匿計算によって四則演算が実現できることが示された。 As described above, it has been shown that the four arithmetic operations can be realized by the secret calculation according to the first to third embodiments.
<第4の実施の形態>
 第1の実施の形態に示した秘匿乗算は秘密情報に乱数をかけることにより秘匿化して、それを一旦復元することにより閾値kを変えない秘匿演算を可能にしている。第1の実施の形態の問題点は、秘密情報が0である場合、秘匿化秘密情報を一旦復元すれば、その値が0となるので秘密情報が0であることがわかる点である(秘匿化に用いられる乱数は0以外のため)。
 ただし、第2の実施の形態に示す秘匿除算の場合は一旦復元した秘匿化秘密情報が0の場合、除算できないことがわかるためこの性質は有効である。
<Fourth embodiment>
The concealment multiplication shown in the first embodiment is concealed by applying a random number to the secret information, and the concealment operation without changing the threshold value k is made possible by restoring the concealment information once. The problem of the first embodiment is that, when the secret information is 0, once the concealment secret information is restored, the value becomes 0 and it can be seen that the secret information is 0 (confidential Because the random number used for conversion is not 0).
However, in the case of the concealment division shown in the second embodiment, this property is effective because it can be seen that division cannot be performed when the concealment secret information once restored is 0.
(秘匿乗算4(0対応))
 以下、秘匿乗算において秘密情報に0を含む場合の手法を以下に示す。
[分散]
 秘密情報aをもつオ-ナAの第1のディーラ装置12AのCPU22は、図3の分散処理を実行し、k個の乱数αを生成し、その積α=α・α・・・αを計算する(ステップ42)。
(Concealment multiplication 4 (corresponding to 0))
Hereinafter, a method in the case where secret information includes 0 in the secret multiplication will be described below.
[dispersion]
The CPU 22 of the first dealer device 12A of the owner A having the secret information a executes the distributed processing of FIG. 3 to generate k random numbers α i and the product α = α 1 · α 2. Calculate α k (step 42).
 第1のディーラ装置12AのCPU22は、以下の分散値を計算し(ステップ44)、n個のサ-バに分散する(ステップ46)。
Wa(x)=a+a0,1+・・・+a0,k-1 k-1
Wa’(x)=α(a+a0,1(n+x)+・・・+a0,k-1(n+xk-1
Wa1(x)=α+a1,1+・・・+a1,k-1 k-1

Wak(x)=α+ak,1+・・・+ak,k-1 k-1
 ただし、ah,j(h=0,・・・,k、j=1,・・・,k-1)は乱数,xはサ-バID(i=1,…,n)
The CPU 22 of the first dealer 12A calculates the following distribution value (step 44) and distributes it to n servers (step 46).
Wa (x i ) = a + a 0,1 x i +... + A 0, k−1 x i k−1
Wa ′ (x i ) = α (a + a 0,1 (n + x i ) +... + A 0, k−1 (n + x i ) k−1 )
Wa1 (x i ) = α 1 + a 1,1 x i +... + A 1, k−1 x i k−1
:
Wak (x i ) = α k + a k, 1 x i +... + A k, k−1 x i k−1
However, a h, j (h = 0, ···, k, j = 1, ···, k-1) is a random number, x i difference - server ID (i = 1, ..., n)
 秘密情報bをもつオ-ナBの第2のディーラ装置12BのCPU22は、図5の分散処理を実行し、k個の乱数βiを生成し、その積β=β・β・・・βを計算する(ステップ52)。 The CPU 22 of the second dealer apparatus 12B of the owner B having the secret information b executes the distributed processing of FIG. 5 to generate k random numbers βi, and the product β = β 1 · β 2. β k is calculated (step 52).
 第2のディーラ装置12BのCPU22は、図5の分散処理を実行し、以下の分散値を計算し(ステップ54)、n個のサ-バに分散する(ステップ56)。
Wb(x)=b+b0,1+・・・+b0,k-1 k-1
Wb’(x)=β(b+b0,1(n+x)+・・・+b0,k-1(n+xk-1
Wb(x)=β+b1,1+・・・+b1,k-1 k-1

Wbk(x)=β+bk,1+・・・+bk,k-1 k-1
ただし、bh,j(h=0,・・・,k、j=1,・・・,k-1)は乱数,xはサ-バID(i=1,…,n)
The CPU 22 of the second dealer 12B executes the distribution process shown in FIG. 5, calculates the following distribution value (step 54), and distributes it to n servers (step 56).
Wb (x i ) = b + b 0,1 x i +... + B 0, k−1 x i k−1
Wb ′ (x i ) = β (b + b 0,1 (n + x i ) +... + B 0, k−1 (n + x i ) k−1 )
Wb 1 (x i ) = β 1 + b 1,1 x i +... + B 1, k−1 x i k−1
:
Wbk (x i ) = β k + b k, 1 x i +... + B k, k−1 x i k−1
However, b h, j (h = 0, ···, k, j = 1, ···, k-1) is a random number, x i difference - server ID (i = 1, ..., n)
[乗算]
 第1のサ-バ14x~第nのサ-バ14xの各CPU22は、図44の乗算処理を実行する。即ち、ステップ242で、Wab(x)=Wa(x)Wb(x)とWab’(x)=Wa’(x)Wb’(x)を計算する。
[復元]
 復元に参加するサーバ、例えば、予め定められた第1のサ-バ14x~第kのサ-バ14xの各CPU22は、図45のαβの復元処理を実行する。即ち、ステップ244で、指定されたjに応じたWa(x)とWb(x)を集め、ステップ246で、αとβを1つずつ復元する。
[Multiplication]
Each of the CPUs 22 of the first server 14x 1 to the nth server 14x n executes the multiplication process of FIG. That is, in step 242, Wab (x i ) = Wa (x i ) Wb (x i ) and Wab ′ (x i ) = Wa ′ (x i ) Wb ′ (x i ) are calculated.
[Restore]
The servers participating in the restoration, for example, the CPUs 22 of the first server 14x 1 to the k-th server 14x k determined in advance, execute the restoration process of α j β j in FIG. That is, in step 244, Wa j (x i ) and Wb j (x i ) corresponding to the designated j are collected, and in step 246, α j and β j are restored one by one.
 ステップ248で、αβを計算し、ステップ250で、Wab(x)とWab’(x)とαβを復元装置16に送信する。 In step 248, α j β j is calculated, and in step 250, Wab (x j ), Wab ′ (x j ), and α j β j are transmitted to the restoration device 16.
 復元装置16のCPU22は、図46の復元処理を実行する。即ち、ステップ252で、Wab(x)、Wab’(x)、αβを受信し、ステップ254で、全てのαβをかけてαβ=α・α…αβ・β…βを計算し、Wab’(x)/αβを計算する。 The CPU 22 of the restoration device 16 executes the restoration process of FIG. That is, Wab (x j ), Wab ′ (x j ), α j β j are received at step 252, and αβ = α 1 · α 2 ... Α k is multiplied by all α j β j at step 254. β 1 · β 2 ... β k is calculated, and Wab ′ (x j ) / αβ is calculated.
 復元装置16のCPU22は、ステップ256で、Wab(x)とWab’(x)/αβから2k-1個の分散値を用いてabを復元する。 In step 256, the CPU 22 of the restoration device 16 restores ab using 2k−1 variance values from Wab (x j ) and Wab ′ (x j ) / αβ.
 この方式は文献[2]の方式を改良し、安全にしたものである。よって、[分散]において1つのサ-バが2つの分散値Wa(x)とWb(x)を持ち、1つの分散値が乱数αまたはβによって秘匿化されるという点は同じである。文献[2]との違いは請求項1に示すように[分散]において各オ-ナがk個の乱数を生成し、その合成値α、βを秘密情報にかけて分散している点である。文献[2]では乱数αとβをαiやβiから合成せず、直接分散しているためαとβが直接復元者に知られる。よって、請求項1は従来法にない特徴となる。 This method is an improved version of the method described in document [2]. Therefore, in [Share], one server has two share values Wa (x i ) and Wb (x i ), and one share value is concealed by a random number α or β. . The difference from document [2] is that, as shown in claim 1, each owner generates k random numbers and distributes the synthesized values α and β over the secret information. In reference [2], random numbers α and β are not synthesized from αi and βi, but are directly distributed, so α and β are known directly to the restorer. Therefore, claim 1 is a feature not found in the conventional method.
 文献[2]では復元者がαとβを知った後で、k/2台のサ-バを盗聴すればaとbに関するk個の分散値が集められるため、秘密情報であるa,bが漏洩する。また、文献[2]ではこの復元者による攻撃に対応するために、各サ-バが乱数を生成して交換し、合成乱数を生成してそれを分散値にかけて分散値を更新することを提案しているが、この乱数は攻撃者が1台のサ-バを盗聴しているだけでその過程が全て知られるので漏洩する。よって、文献[2]の手法は安全ではない。それに対して、秘匿乗算4は請求項2に示すようにk台のサ-バが各々異なる秘密情報を1つずつ復元して、その合成値を復元者に示すため1台のサ-バが安全(盗聴不能)であれば、攻撃者はαとβを直接知ることはできないため、攻撃者は秘密情報を得ることができず安全である。よって、請求項2も従来法にない特徴となる。 In Document [2], after the restorer knows α and β, if k / 2 servers are wiretapped, k distributed values related to a and b are collected. Leaks. [2] proposes that each server generates and exchanges random numbers, generates a composite random number, and updates the variance value by applying it to the variance value in order to respond to this attack by the restorer. However, this random number is leaked because the attacker knows all the processes just by eavesdropping on one server. Therefore, the technique of document [2] is not safe. On the other hand, in the secret multiplication 4, as shown in claim 2, each of the k servers restores different secret information one by one, and each server has If it is safe (impossible to eavesdrop), the attacker cannot directly know α and β, so the attacker cannot obtain secret information and is safe. Therefore, claim 2 is also a feature not found in the conventional method.
(秘匿乗算5(繰り返し))
 上記秘匿乗算4は分散値同士の乗算となっているため次数変化が生じている。次に、連続演算に対応するために次数変換を行う場合を考える。
[分散]
 秘密情報aを第1のディーラ装置12AのCPU22は、図47に示す分散処理を実行する。即ち、ステップ262で、k個の0以外の乱数α、ri(以降もα、riは0以外)を生成し、その積α=α・α・・・α、r=r・r・・・rを計算する。
(Concealment multiplication 5 (repetition))
The concealment multiplication 4 is a multiplication of the variance values, so that an order change occurs. Next, consider a case where order conversion is performed in order to support continuous calculation.
[dispersion]
The CPU 22 of the first dealer apparatus 12A executes the distributed processing shown in FIG. That is, in step 262, k random numbers α i and ri other than 0 (hereinafter α i and ri are other than 0) are generated, and the product α = α 1 · α 2 ... Α k , r = r to calculate the 1 · r 2 ··· r k.
 ステップ264で、以下の分散値を計算する。なお、n+xに対する分散値はサ-バ14xのサ-バに送られる。よって、各サ-バ14xは、xとn+xに対する分散値をもつ。
Wa(x)=r(a+a0,1+・・・+a0,k-1 k-1
Wa’(x)=rα(a+a0,1(n+x)+・・・+a0,k-1(n+xk-1
Wa(x)=α+a1,1+・・・+a1,k-1 k-1

Wa(x)=α+ak,1+・・・+ak,k-1 k-1
Wr(x)=r1+ak+1,1+・・・+ak+1,k-1x k-1

Wr(x)=rk+a2k,1+・・・+a2k,k-1x k-1
 ただし、ah,j(h=0,・・・,k、j=1,・・・,k-1)は乱数,xはサ-バID(i=1,…,n)である。
 ステップ266で、分散値を第1のサ-バ14x~第nのサ-バ14xに送信する。
In step 264, the following variance value is calculated. The dispersion values for the n + x i is service - are sent to the bar - bar 14x i Sa. Thus, each server 14x i has a variance value for x i and n + x i .
Wa (x i ) = r (a + a 0,1 x i +... + A 0, k−1 x i k−1 )
Wa ′ (x i ) = rα (a + a 0,1 (n + x i ) +... + A 0, k−1 (n + x i ) k−1 )
Wa 1 (x i ) = α 1 + a 1,1 x i +... + A 1, k−1 x i k−1
:
Wa k (x i ) = α k + a k, 1 x i +... + A k, k−1 x i k−1
Wr 1 (x i ) = r 1 + ak + 1,1 x i +... + A k + 1 , k−1x i k−1
:
Wr k (x i ) = rk + a2 k, 1 x i +... + A2 k, k −1x i k−1
However, a h, j (h = 0, ···, k, j = 1, ···, k-1) is a random number, the x i support - server ID (i = 1, ..., n) is .
In step 266, the dispersion value is transmitted to the first server 14x 1 to the n-th server 14x n .
 秘密情報bをもつオ-ナBの第2のディーラ装置12BのCPU22は、図48の分散処理を実行する。即ち、ステップ272で、k個の0以外の乱数β、q(以降もβ、qは0以外)を生成し、その積β=β・β・・・β、q=q・q・・・q、を計算する。 The CPU 22 of the second dealer device 12B of the owner B having the secret information b executes the distributed processing of FIG. That is, in step 272, k random numbers β i and q i other than 0 (hereinafter β i and q i are other than 0) are generated, and the product β = β 1 · β 2 ... Β k , q = Q 1 · q 2 ... Q k is calculated.
 ステップ274で、以下の分散値を計算する。
Wb(x)=q(b+b0,1+・・・+b0,k-1 k-1
Wb’(x)=qβ(b+b0,1(n+x)+・・・+b0,k-1(n+xk-1
Wb(x)=β+b1,1+・・・+b1,k-1 k-1

Wb(x)=β+bk,1+・・・+bk,k-1 k-1
Wq(x)=q1+bk+1,1+・・・+bk+1,k-1 k-1

Wq(x)=qk+b2k,1+・・・+b2k,k-1 k-1
 ただし、bh,j(h=0,・・・,k、j=1,・・・,k-1)は乱数,xはサ-バID(i=1,…,n)である。
In step 274, the following variance value is calculated.
Wb (x i ) = q (b + b 0,1 x i +... + B 0, k−1 x i k−1 )
Wb ′ (x i ) = qβ (b + b 0,1 (n + x i ) +... + B 0, k−1 (n + x i ) k−1 )
Wb 1 (x i ) = β 1 + b 1,1 x i +... + B 1, k−1 x i k−1
:
Wb k (x i ) = β k + b k, 1 x i +... + B k, k−1 x i k−1
Wq 1 (x i ) = q 1 + b k + 1,1 x i +... + B k + 1, k−1 x i k−1
:
Wq k (x i ) = qk + b2 k, 1 x i +... + B2 k, k−1 x i k−1
However, b h, j (h = 0, ···, k, j = 1, ···, k-1) is a random number, x i difference - server ID (i = 1, ..., n) is .
 ステップ276で、分散値を第1のサ-バ14x~第nのサ-バ14xに分散する。 In step 276, the distributed value is distributed to the first server 14x 1 to the n-th server 14x n .
[乗算]
 第1のサ-バ14x~第nのサ-バ14xの各CPU22は、図49の乗算処理を実行する。即ち、ステップ278で、Wab(x)=Wa(x)Wb(x)とWab’(x)=Wa’(x)Wb’(x)を計算する(i=1,…,n)。
[Multiplication]
Each CPU 22 of the first server 14x 1 to the n-th server 14x n executes the multiplication process of FIG. That is, in step 278, Wab (x i ) = Wa (x i ) Wb (x i ) and Wab ′ (x i ) = Wa ′ (x i ) Wb ′ (x i ) are calculated (i = 1, ..., n).
[次数変換]
第1のサ-バ14x~第kのサ-バ14xの各CPU22は、図50の次数変換処理を実行する。即ち、ステップ282で、指定されたjに応じたWa(x)とWb(x)を集め(i=1,…,k)、ステップ284で、αとβを1つずつ復元し、ステップ286で、αβを計算し、ステップ288で、αβを復元装置16に送信する。
[Order conversion]
Each CPU 22 of the first server 14x 1 to the k-th server 14x k performs the order conversion process of FIG. That is, in step 282, Wa j (x i ) and Wb j (x i ) corresponding to the designated j are collected (i = 1,..., K), and in step 284, α j and β j are set to one. In step 286, α j β j is calculated. In step 288, α j β j is transmitted to the restoring device 16.
 復元装置16のCPU22は、図51のαβの計算送信処理を実行する。即ち、ステップ322で、第1のサ-バ14x~第nのサ-バ14xからαβを受信し、ステップ324で、全てのαβをかけてαβを計算し、ステップ326で、αβを第1のサ-バ14x~第nのサ-バ14xに送信する。 The CPU 22 of the restoration device 16 executes the calculation transmission process of αβ in FIG. That is, in step 322, α j β j is received from the first server 14x 1 to the n th server 14x n , and in step 324, αβ is calculated by multiplying all α j β j , In step 326, αβ is transmitted to the first server 14x 1 to the nth server 14x n .
 第1のサ-バ14x~第kのサ-バ14xの各CPU22は、図50ステップ290で、αβを受信し、ステップ292で、αβでWab’(x)を割り、Wab(x+n)=Wab’(x)/αβを計算する。 Each CPU 22 of the first server 14x 1 to the k-th server 14x k receives αβ in step 290 in FIG. 50, divides Wab ′ (x j ) by αβ in step 292, and sets Wab ( x j + n) = Wab ′ (x j ) / αβ is calculated.
 式(8)に示すRjを秘密に計算するために、以下を計算する。まず、ステップ294で、Wab(x)とWab(x+n)にaxj,jとaxj+n,jを乗算したRj,j=axj,jWab(x)+an+xj,jWab(n+x)と、axj,j+nとan+xj,j+nを乗算したRj,j+n=axj,j+nWab(x)+an+xj,j+nWab(n+x)を計算する。 To secretly calculate Rj shown in equation (8), the following is calculated. First, in step 294, R j, j = a xj, j Wab (x j ) + a n + xj, j Wab obtained by multiplying Wab (x j ) and Wab (x j + n) by a xj, j and a xj + n, j. R j, j + n = a xj, j + n Wab (x j ) + an + xj, j + n Wab (n + x j ) obtained by multiplying (n + x j ) by a xj, j + n and a n + xj, j + n is calculated.
 ここで、Ri,jにおけるiは式(7)の縦方向の最初の位置を表し、jは横方向の位置を表す。よって、iが1からnまでの縦方向の和がR=Σ(Rj,j+Rj,j+n)なる。 Here, i in R i, j represents the first position in the vertical direction of Equation (7), and j represents the position in the horizontal direction. Therefore, the vertical sum of i from 1 to n is R j = Σ (R j, j + R j, j + n ).
 ステップ296で、乱数r1jとr2jを生成し、R’j,j=R j,j+r1jとR’j,j+n=R j,j+n+r2,jを計算し、ステップ298で、R’j,jと R’j,j+nとを予め定められた順番の次のサ-バ14x(j+1)に送信する。 In step 296, random numbers r 1j and r 2j are generated, R ′ j, j = R j, j + r 1j and R ′ j, j + n = R j, j + n + r 2, j are calculated, and in step 298 R ' j, j and R'j, j + n are transmitted to the next server 14x (j + 1) in the predetermined order.
 ステップ300で、前のサーバ14x(j-1)から送信されたh番目(h=1,…,n-1)の2つの値、即ち、R’j-h,j-hとR’j-h,j+n-hを受信し、ステップ302で、h番目(h=1,…,n-1)の2つの値R’j-h,j-hとR’j-h,j+n-hに、R’j,j-h=axj,j-hWab(x)+an+xj,j-hWab(n+x)+r1jとRj+n,j-h=axj,j+n-hWab(x)+an+xj,j+n-hWab(n+x)+r2jを足して、R’j,jとR’j,j+nを計算し、ステップ304で、R’j,jとR’j,j+nを次の予め定められた順番のサ-バ14x(i+1)に送信する。 In step 300, two h-th (h = 1,..., N−1) values transmitted from the previous server 14x (j−1) , ie, R ′ j−h, j−h and R ′ j -H, j + n-h is received, and in step 302, the h-th (h = 1,..., N−1) two values R ′ j−h, j−h and R ′ j−h, j + n−h R ′ j, j−h = a xj, j−h Wab (x j ) + a n + xj, j−h Wab (n + x j ) + r 1j and R j + n, j−h = a xj, j + n−h Wab ( x j ) + a n + xj, j + n−h Wab (n + x j ) + r 2j is added to calculate R ′ j, j and R ′ j, j + n , and in step 304 R ′ j, j and R ′ j, j + n Are transmitted to the next server 14x (i + 1) in the predetermined order.
 ステップ306で、全てのサ-バを回ってきた2つの値R’j,jとR’j,j+nを受信し、ステップ308で、R’j,jとR’j,j+nからをr1jとr2jを各々引いて、ステップ310で、R’j,jとR’j,j+nを予め定められた順番の次のサ-バ14x(i+1)に送信する。 In step 306, two values R ′ j, j and R ′ j, j + n that have traveled all the servers are received. In step 308, R ′ j, j and R ′ j, j + n are converted into r 1j. And r 2j are subtracted, and R ′ j, j and R ′ j, j + n are transmitted to the next server 14 x (i + 1) in the predetermined order in step 310.
 ステップ312で、前のサ-バ14x(j-1)から送られてきた2つの値R’j-h,j-hとR’j-h,j+n-hを受信し、ステップ314で、R’j-h,j-hとR’j-h,j+n-hからr1jとr2jを各々引いて、ステップ316で、R’j-h,j-hとR’j-h,j+n-hを次のサ-バ14x(i+1)に送信する。 In step 312, the two values R ′ j−h, j−h and R ′ j−h, j + n−h sent from the previous server 14x (j−1) are received, and in step 314, R 'j-h, j- h and R' j-h, pulling respectively r 1j and r 2j from j + n-h, at step 316, R 'j-h, j-h and R' j-h, j + n−h is transmitted to the next server 14x (i + 1) .
 ステップ318で、全てのサ-バを回ってきた2つの値R’j,jとR’j,j+nを受信し、ステップ320で、R’j,jとR’j,j+nのR’j,j+nにαβをかけて、各々をR,Rj+nとして保存する。 In step 318, all sub - two that have around the bus values R 'j, j and R' j, receives the j + n, in step 320, R 'j, j and R' j, j + n of R 'j , j + n is multiplied by αβ, and each is stored as R j , R j + n .
[復元]
 第1のサ-バ14x~第kのサ-バ14xの各CPU22は、図52のrの復元・送信処理を実行する。即ち、ステップ332で、指定されたjに応じたWr(x)とWq(x)を集め(i=1,…,k)、ステップ334で、1サ-バ当たりrとqを1つずつ復元する。
[Restore]
The CPUs 22 of the first server 14x 1 to the k-th server 14x k execute r j g j restoration / transmission processing of FIG. That is, in step 332, Wr j (x i ) and Wq j (x i ) corresponding to the designated j are collected (i = 1,..., K), and in step 334, r j per server is Restore q j one by one.
 ステップ336で、積rを計算し、ステップ338で、Rとrを復元装置16に送信する。 In step 336, the product r j q j is calculated, and in step 338, R j and r j q j are transmitted to the restoration device 16.
 復元装置16のCPU22は、図53のステップ342で、Rとrを受信し、ステップ344で、全てのrをかけてrqを計算し、ステップ346で、Rをrqで割ってWab(x)=R/rqを計算する。 The CPU 22 of the restoration device 16 receives R j and r j q j at step 342 in FIG. 53, calculates rq by multiplying all r j q j at step 344, and calculates R j at step 346. Divide by rq to calculate Wab (x j ) = R j / rq.
 ステップ348で、Wab(x)からk-1個を用いてabを復元する。 In step 348, ab is restored using k−1 pieces from Wab (x j ).
 本発明の[分散]における特徴は、秘密情報a,bを最後まで秘匿するために、a,bに最後まで秘匿する乱数rとqをかけていることである(請求項1に含む)。これによって、Wab(x)とWab’(n+x)は共通の乱数rqが常に係り、[次数変換]の図51のステップ324においてαβは復元装置16で計算されて知られるが、rqは最後まで復元装置16に知られない。よって、中間結果であるRj,Rj+nを攻撃者または復元者が得ても中間結果であるabは漏洩しない。ただし、従来と同様の安全性でよい場合、すなわち復元者による中間値取得を許可する場合、r,qを用いる必要はなく、[分散]を秘匿乗算1と同様にすることができる。この場合、図50のステップ292でWab’(x)をαβで割る代わりにWab(x)にαβをかけることにより、r,qの代わりにα,βを用いることができる。 A feature of [Distribution] of the present invention is that, in order to conceal secret information a and b to the end, random numbers r and q that are concealed to the end are multiplied by a and b (included in claim 1). Thus, Wab (x i ) and Wab ′ (n + x i ) are always associated with a common random number rq, and αβ is known to be calculated by the restoration device 16 in step 324 of FIG. 51 of [Order Transformation]. It is not known to the restoration device 16 until the end. Therefore, even if an attacker or a restorer obtains Rj, Rj + n as intermediate results, ab as an intermediate result does not leak. However, in the case where the same safety as in the conventional case is sufficient, that is, when the intermediate value acquisition by the restorer is permitted, it is not necessary to use r and q, and [Distribution] can be made the same as the secret multiplication 1. In this case, α and β can be used instead of r and q by multiplying Wab (x j ) by αβ in step 292 of FIG. 50 instead of dividing Wab ′ (x j ) by αβ.
 また、[次数変換]における第1の特徴は、1つのサ-バが形の異なる2つの分散値を持つため、[次数変換]の図50のステップ282~ステップ288、及び図51のステップ322~ステップ324において乱数変換を行い、分散値にかかる乱数を同じにしている点である(請求項5に含む)。ここではαβを削除するが、rqは常にかかっている。また、前述のように従来と同じ安全性でよい場合にはr=q=1とすることができる。この特徴は請求項6に示される。 Further, the first feature in [order conversion] is that one server has two variance values having different shapes, so that steps 282 to 288 in FIG. 50 of [order conversion] and step 322 in FIG. In step 324, random number conversion is performed to make the random numbers related to the distributed values the same (included in claim 5). Here, αβ is deleted, but rq is always applied. Further, as described above, r = q = 1 can be set when the same safety as the conventional one is sufficient. This feature is shown in claim 6.
 [次数変換]の図50のステップ292において、サ-バはWab’(x)をαβで割ったが、Wab(x)にαβをかけて、Wab(x)=αβWab(x),Wab(n+x)=Wab’(x)としてもよい。また、[次数変換]の図50のステップ320において、各サ-バはαβをかけたが、別の乱数をかけてもよい。 In step 292 of FIG. 50 of [Order Transformation], the server divides Wab ′ (x i ) by αβ, but multiplies Wab (x i ) by αβ, and Wab (x i ) = αβWab (x i ), Wab (n + x i ) = Wab ′ (x i ). In step 320 of FIG. 50 of [Order conversion], each server is multiplied by αβ, but another random number may be multiplied.
 また、第2の特徴は、rqは最後には復元者に知られる(rqは知られるが、rとqは個別に知られないので秘密情報aとbは漏洩しない)ので、分散値Riを保存していれば、Wab(x)とWab’(n+x)から乱数rqを除いた値を復元装置16に知られる可能性がある。よって、Wab(x)とWab’(x+n)を秘匿するために、Wab(x)に乱数r1jを、Wab(x+n)に乱数r2jを足しこみ、元のWab(x)及びWab(x+n)を分からないようにして、サ-バを回していることである。これによって、[次数変換]の図50のステップ306で得られる全てのサ-バを回ってきた値R’j,jにはΣr1jが、R’j,j+nにはΣr2jが足されているので、[次数変換]の図50のステップ312~ステップ316のサ-バ巡回でΣr1jとΣr2jを除去し、通常のRiを得ることができる。 The second feature is that rq is finally known to the restorer (rq is known, but r and q are not known individually, so secret information a and b are not leaked). If stored, the restoration device 16 may know the value obtained by removing the random number rq from Wab (x i ) and Wab ′ (n + x i ). Therefore, in order to hide Wab and (x i) Wab 'a (x i + n), the random number r 1j in Wab (x i), summing a random number r 2j in Wab (x i + n), the original Wab ( x i ) and Wab (x i + n) are not understood, and the server is turned. As a result, Σr1j is added to the values R ′ j, j that have traveled through all the servers obtained in step 306 of FIG. 50 of [order conversion], and Σr2j is added to R ′ j, j + n . In the [order conversion] step 312 to step 316 in FIG. 50, Σr1j and Σr2j can be removed and normal Ri can be obtained.
 また、加えた乱数Σr1j=0、Σr2j=0となるようにしておけば2回目のサーバ巡回は不要である。さらに、サーバ巡回させずに復元者に送信して、復元者が加算を行いその結果を各サーバに送り返すようにしてもよい。 Further, if the added random numbers Σr 1j = 0 and Σr 2j = 0, the second server visit is unnecessary. Further, it may be transmitted to the restoring person without going around the server, and the restoring person performs addition and sends the result back to each server.
 さらに、Wab(x)とWab’(x+n)を秘匿するために、Wab(x)に乱数r1jを、Wab(x+n)に乱数r2jを足しこみ、元のWab(x)及びWab(x+n)を秘匿化して、それを解除するためにサ-バを回しているが、秘密情報を秘匿するための乱数r1j及びr2jを各々秘密分散して各サーバに配布し、各サーバは送られた分散値を加算して、Σr1j及びΣr2jを計算し、最終結果のR’j,jやR’j,j+nから引くことによってもr1j及びr2jを削除することができる。この特徴は請求項16に示される。 Furthermore, in order to conceal the Wab (x i) and Wab '(x i + n) , the random number r 1j in Wab (x i), summing a random number r 2j in Wab (x i + n), the original Wab ( x i ) and Wab (x i + n) are concealed, and the server is turned to release it, but random numbers r 1j and r 2j for concealing secret information are secretly distributed to Also distributed to the server, each server adds the distributed values, calculates Σr 1j and Σr 2j , and also subtracts r 1j and r by subtracting from the final result R ′ j, j or R ′ j, j + n 2j can be deleted. This feature is indicated in claim 16.
 最後に、[次数変換]の図50のステップ318、320でRj(j=n+1~2n)に相当するR’j,j+nにαβをかけて、[分散]に示す形に戻している。これによって、攻撃者がk-1個のサ-バを盗聴していたとしても、2k-2個のWiしか得られず、途中結果であるa・bが漏えいすることはない。 Finally, R ′ j, j + n corresponding to Rj (j = n + 1 to 2n) is multiplied by αβ at steps 318 and 320 in FIG. 50 of [order conversion] to return to the form shown in [dispersion]. As a result, even if the attacker eavesdrops on k-1 servers, only 2k-2 Wis can be obtained, and a and b, which are intermediate results, are not leaked.
 また、今までは秘匿乗算のみ説明したが、秘匿乗算4のように分散が行われている場合、加減算はWa(xi)やWb(xi)に対してはそのまま加算すればよく、Wa’(xi)やWb’(xi)に対しては積和演算のときに説明したように分散値にかかる乱数を合わせて加算を行えばよい。また、除算は第2の実施の形態で説明したようにWa’(xi)やWb’(xi)を用いて除算を行う。この場合、Wa’(xi)を復元してαaを復元したとき、αa=0ならば0で割ることになるので除算を中止する。また、αaが0でないときWb’(xi)に対してはWb’(xi)/αaを計算した後、各サーバがαjとβjを復元してαjjを復元装置に送ってα/βが得られ、それをWb’(xi)/αaにかければ定数項にb/aをもつ分散値が出来上がる。そのとき、Wb(xi)もαaで割ってα/βを書ければ定数項にb/aを持ち、乱数として1/βをもつ分散値が得られる。これらの場合、復元は乱数がかかっていない分散値を用いて行えば、最終的な乱数除去は不要にすることができる。以上によって、本実施の形態によっても秘匿計算により四則演算が実現できることがわかる。 Although only the secret multiplication has been described so far, when dispersion is performed as in the case of the secret multiplication 4, addition / subtraction may be added to Wa (x i ) and Wb (x i ) as is. For '(x i ) and Wb' (x i ), as described in the product-sum operation, addition may be performed together with random numbers applied to the variance values. Further, division is performed using Wa ′ (x i ) and Wb ′ (x i ) as described in the second embodiment. In this case, when Wa ′ (xi) is restored and αa is restored, if αa = 0, it is divided by 0, so the division is stopped. Also, 'for the (x i) Wb' αa is not equal 0 Wb (x i) / αa After calculations, restoration apparatus α j / β j each server to restore the alpha j and beta j To obtain α / β, and if it is applied to Wb '(xi) / αa, a dispersion value having b / a in the constant term is completed. At that time, if Wb (x i ) is also divided by αa and α / β is written, a variance value having b / a in the constant term and 1 / β as a random number is obtained. In these cases, the final removal of random numbers can be made unnecessary if the restoration is performed using a distributed value to which no random numbers are applied. From the above, it can be seen that the four arithmetic operations can also be realized by the secret calculation according to the present embodiment.
<第5の実施の形態>
 まず、n台のサ-バ14x~14xに対して閾値kを変えずに分散値を更新する場合を示す。第1の実施の形態~第4の実施の形態に示すように秘密情報aに乱数αがかけられて分散されている場合を考える。今まで、乱数がかかった分散値の更新法は知られていない。
<Fifth embodiment>
First, a case where the variance value is updated without changing the threshold value k for the n servers 14x 1 to 14x n will be described. Consider a case where the random number α is applied to the secret information a and distributed as shown in the first to fourth embodiments. Up to now, there is no known update method for distributed values with random numbers.
(秘匿更新1(乱数付き分散値更新))
 第1のサ-バ14x~第kのサ-バ14xの内から、復元処理を行うサーバ、例えば、第kのサ-バ14xがランダムに予め1台選ばれている。
(Concealment Update 1 (Distributed Value Update with Random Number))
From the first server 14x 1 to the k-th server 14x k , a server that performs the restoration process, for example, the k-th server 14x k is randomly selected in advance.
 第kのサ-バ14x以外のk-1台の第1のサ-バ14x~第(k-1)のサ-バ14x(k-1)の各CPU22は、図54のUの計算・送信処理を実行する。即ち、サーバ14xiは現在の分散値として以下のWa’(x)をもつとする。 Each CPU 22 of the (k−1) th server 14x 1 to the (k−1) th server 14x (k−1) other than the kth server 14x k is represented by U i in FIG. The calculation / transmission process is executed. That is, the server 14xi is to have the following Wa 'as the current dispersion value (x j).
 Wa’(x)=α(a+a+a +・・・+ak-1 k-1)(i=1,・・・,k-1) Wa ′ (x i ) = α (a + a 1 x i + a 2 x i 2 +... + A k−1 x i k−1 ) (i = 1,..., K−1)
 ステップ356で、以下の新たな分散値として乱数Wa’iを生成する。aj’(j=1,…,k-1)は(4)で多項式を解く事によって得られる乱数である。
 Wa’i=α(a+a1’+a2’ +・・・+ak-1’ k-1
In step 356, a random number Wa′i is generated as the following new variance value. a j ′ (j = 1,..., k−1) is a random number obtained by solving the polynomial in (4).
Wa′i = α (a + a 1 ′ x i + a 2 ′ x i 2 +... + A k−1 ′ x i k−1 )
  ステップ358で、自分が持つ前の分散値Wa’(x)と新たに生成したWa’iとの差U’を次のように計算する。
 U’=Wa’(x)-Wa’=α{(a-a1’)x+(a-a2’)x +・・・+(ak-1-ak-1’)x k-1}
In step 358, the difference U i 'between the previous variance value Wa' (x i ) and the newly generated Wa'i is calculated as follows.
U i ′ = Wa ′ (x i ) −Wa ′ i = α {(a 1 −a 1 ′ ) x i + (a 2 −a 2 ′ ) x i 2 +... + (A k−1 − a k-1 ′ ) x i k−1 }
 ステップ360で、差U’を第kのサ-バ14xに送信する。 In step 360, the difference U i 'is transmitted to the kth server 14xk.
 第kのサ-バ14xは、図55のWj’の計算・送信処理を実行する。即ち、ステップ362で、差Ujを受信し、ステップ364で、k-1個の多項式を解き、α(a-a’),α(a-a’),・・・,α(ak-1-ak-1’)を求め、ステップ366で、残りのn-k台のサ-バに対する以下の差分値を求める。
 Wj’=α{(a-a1’)x+(a-a2’)x2+・・・+(ak-1-ak-1’)x k-1} (ただし、j=k,・・・,n)
Of the k sub - server 14x k performs the calculation and transmission processing of Wj in FIG 55 '. That is, the difference Uj is received at step 362, and k-1 polynomials are solved at step 364, and α (a 1 −a 1 ′), α (a 2 −a 2 ′),. (A k-1 -a k-1 ') is obtained, and in step 366, the following difference values for the remaining nk servers are obtained.
Wj ′ = α {(a 1 −a 1 ′ ) x j + (a 2 −a 2 ′ ) x j 2 +... + (A k−1 −a k−1 ′ ) x j k−1 } ( However, j = k, ..., n)
 ステップ368で、差分値Wj’を第(k+1)のサ-バ14x(k+1)~第nのサ-バ14xに送信する。 In step 368, the difference value Wj ′ is transmitted to the (k + 1) -th server 14x (k + 1) to the n-th server 14x n .
 第(k+1)のサ-バ14x(k+1)~第nのサ-バ14nは、図56の新たな分散値の記憶処理を実行する。即ち、ステップ370で、Wj’を受信し、ステップ372で、Wj’と前に持っていた分散値と足して新たな分散値とする。 The (k + 1) -th server 14x (k + 1) to the n-th server 14n execute the new dispersion value storage process of FIG. That is, in step 370, Wj ′ is received, and in step 372, Wj ′ is added to the previously provided variance value to obtain a new variance value.
 以上の特徴は、乱数がかかった分散値に対して乱数を変えることなく、新たな乱数をそのまま新しい係数を持つ多項式からなる新たな分散値として更新できることである。この特徴は請求項10に示される。 The above feature is that a new random number can be updated as a new distributed value composed of a polynomial having a new coefficient without changing the random number with respect to the distributed value applied with the random number. This feature is shown in claim 10.
 文献[3]に示す従来法は乱数αがかかっていない通常の分散値に対する更新法であるが、それに対しても以下の違いがある。文献[3]では図56のステップ370の処理がなく、第1のサ-バ14x~第(k-1)のサ-バ14x(k-1)は残りの第(k+1)のサ-バ14x(k+1)~第nのサ-バ14xに差分値を送り、図55のステップ364及びステップ366の処理に対応する処理を第(k+1)のサ-バ14x(k+1)~第nのサ-バ14xが行うことにより分散値の更新を行う。それに対して上記秘匿更新1は処理を行う第kのサ-バ14xを1台に指定し、第kのサ-バ14xだけが図54のステップ358及びステップ360の処理を行うため通信量と計算量が削減できるという特徴ももつ。 The conventional method shown in the document [3] is an update method for a normal distributed value without the random number α, but there are the following differences. In document [3], there is no processing in step 370 in FIG. 56, and the first server 14x 1 to the (k−1) th server 14x (k−1) are the remaining (k + 1) th servers. Ba 14x (k + 1) ~ n-th sub - sends the difference to server 14x n, the difference in the corresponding processing to the processing of step 364 and step 366 in FIG. 55 the (k + 1) - server 14x (k + 1) ~ the n Sa - updating the dispersion value by server 14x n is performed. K-th sub do it against the secret update 1 process - specifies the server 14x k to one of the k sub - communication because only bus 14x k performs the processing of step 358 and step 360 in FIG. 54 It also has the feature that the amount and amount of calculation can be reduced.
 文献[3]はk-1台のサ-バがn-k+1台のサ-バに差分値を送るため、(k-1)(n-k+1)の通信が必要であり、n-k+1台のサ-バが図54のステップ358及びステップ360の処理に対応する処理を行うため(n-k+1)の多項式処理が必要である。それに対して、本発明は第kのサ-バ14xのみが図54のステップ358及びステップ360の処理を行い、その結果をn-kのサ-バに送るため、ステップ360での(k-1)の通信、ステップ370で(n-k)の通信が発生し、計n+1回の通信ですむ。本発明では、計算は1つの多項式処理のみでよい。 Document [3] requires (k−1) (n−k + 1) communication because k−1 servers send difference values to n−k + 1 servers, and there are n−k + 1 units. (N−k + 1) polynomial processing is necessary to perform the processing corresponding to the processing in step 358 and step 360 in FIG. On the other hand, in the present invention, only the k-th server 14xk performs the processing of step 358 and step 360 in FIG. 54 and sends the result to the nk server. -1) communication, (nk) communication occurs in step 370, and a total of n + 1 communication is sufficient. In the present invention, the calculation needs only one polynomial process.
 文献[3]の手法は復元処理を行うn-k+1台のサ-バの選択法に関して何の言及もないが、n-k+1台のサ-バを固定している場合、攻撃者がn-k+1台のサ-バのうちの1つを盗聴し続ければ、更新値は常に漏洩する。その漏洩を防ぐために、復元処理を行うサ-バをランダムに選択する。攻撃者が盗聴しているサ-バを第oのサーバ14xとすると、他の第kのサ-バ14xが指定されれば、その時点で攻撃者は他のサ-バの分散値を知っていたとしても、第kのサ-バ14xによる更新によって、第oのサーバ14x以外の新たな分散値を知ることはできない。また、ある時点で第oのサーバ14xが第kの他のサ-バ14xに選ばれたとしても、他のサ-バの分散値を知らないならば、その差分値が得られても新たな分散値はわからない。よって、上記方式は文献[3]に対して、汎用性を持たせ、かつ効率化と安全性向上を同時に実現している。 The method of document [3] makes no mention of a method for selecting nk + 1 servers for restoration processing. However, if nk + 1 servers are fixed, an attacker can make n- If one of the k + 1 servers continues to be wiretapped, the updated value will always leak. In order to prevent the leakage, a server for performing the restoration process is randomly selected. Assuming that the server that the attacker is eavesdropping on is the o-th server 14x i x o , if another k- th server 14x k is designated, the attacker at that point in time will be the other server 14x i x o . Even if the variance value is known, a new variance value other than the o-th server 14x i cannot be known by the update by the k- th server 14x k . Even if the o-th server 14x i is selected as the k-th other server 14x k at a certain point in time, if the distribution value of the other server is not known, the difference value is obtained. However, the new variance value is not known. Therefore, the above method gives general versatility to the document [3], and realizes efficiency improvement and safety improvement at the same time.
(秘匿更新法2(u≧k対応))
 次に、n台のサ-バに対して閾値をkからu(u≧k)に増やす場合の更新法を示す。
 第iのサ-バ14xのCPU22は、図57のδiの生成送信処理を実行する。即ち、ステップ382で、u-1個の乱数di1,・・・,diu-1を生成し、ステップ384で、以下の多項式を生成する。
δi(x)=di1x+di2+・・・diu-1u-1
(Concealment Update Method 2 (for u ≧ k))
Next, an updating method when the threshold value is increased from k to u (u ≧ k) for n servers will be described.
The CPU 22 of the i-th server 14xi executes the generation / transmission process of δi in FIG. That is, in step 382, u-1 random numbers d i1 ,..., D iu-1 are generated, and in step 384, the following polynomial is generated.
δi (x) = d i1 x + d i2 x 2 +... d iu−1 x u−1
 ステップ386で、δi(x)のxに全サ-バIDを入れた値δi(x),δi(x),・・・,δi(x)を生成し、ステップ358で、δi(x)を第jのサ-バ14x(j=1,・・・,n)に送信する。 In step 386, values δi (x 1 ), δi (x 2 ),..., Δi (x n ) are generated by adding all server IDs to x of δi (x). (x j) of the j-th sub - server 14x j transmits (j = 1, ···, n ) to.
 第jのサーバ14x、即ち、第1のサ-バ14x~第nのサ-バ14xの各CPU22は、図58の更新処理を実行する。即ち、ステップ392で、δi(x)を受信し、ステップ394で、自分がもつ閾値kに対する分散値Wa’(x)に全ての値を足しこんで以下を計算する。
Wa’(x)=Wa’(x)+Σδj(x
=α(a+a+a +・・・+ak-1 k-1)+Σδj(x
=α{a+(a+Σdi1/α)x+・・・+(ak-1+Σdik-1/α)x k-1+・・・+(Σdiu-1/α)x u-1}
 ステップ396で、Wa’(x)を新たな分散値として保存する。
Server 14x j of the j, i.e., the first sub - server 14x 1 ~ n-th sub - each CPU22 Bas 14x n performs the updating process in FIG. 58. That is, in step 392, δi (x i ) is received, and in step 394, all values are added to the variance value Wa ′ (x i ) with respect to the threshold value k held by itself, and the following is calculated.
Wa ′ (x i ) = Wa ′ (x i ) + Σδj (x i )
= Α (a + a 1 x i + a 2 x i 2 +... + A k−1 x i k−1 ) + Σδj (x i )
= Α {a + (a 1 + Σd i1 / α) x i + ... + (a k-1 + Σd ik-1 / α) x i k-1 + ... + (Σd iu-1 / α) x i u-1 }
In step 396, Wa ′ (x i ) is stored as a new variance value.
 提案法の特徴は従来のkではなくuを対象としたu-1次多項式をたててδi(x)を構成することである。提案法は[秘匿更新法1]の図55のステップ364の、多項式処理を行わないため、処理が簡易であり、どのサ-バを盗聴していても1つのサ-バの盗聴ではそのサ-バ以外の更新値はわからないという安全性をもつ。 The feature of the proposed method is to construct δi (x) by constructing a u−1 degree polynomial for u instead of k. Since the proposed method does not perform the polynomial processing in Step 364 of [Secret Update Method 1] in FIG. 55, the processing is simple and no matter which server is eavesdropped, the eavesdropping of one server is the same. -It has the safety that the updated values other than the bar are not known.
 秘匿更新1では分散値にかかる乱数を変えずに多項式のみ変更した。以下に、分散値にかかる乱数を変更して更新する場合を考える。秘匿更新1,2では秘密情報自体は変更しないため、この更新によってサ-バが得る情報はない。しかし、分散値にかかる乱数を直接変更すると、サ-バは秘密情報が何倍されたかという情報を得る。そこで、更新者がサ-バから分散値を集めて更新するが、サ-バに秘密情報が何倍されたかわからせずに更新する手法を示す。 In Concealment Update 1, only the polynomial was changed without changing the random number for the distributed value. In the following, consider the case where the random number related to the variance value is changed and updated. In the secret updates 1 and 2, the secret information itself is not changed, so there is no information that the server obtains by this update. However, if the random number relating to the distributed value is directly changed, the server obtains information on how many times the secret information has been multiplied. In view of this, an updater collects and updates the distributed values from the server, and shows a method of updating without knowing how many times the secret information has been multiplied by the server.
(秘匿更新法3(乱数変更付き分散値更新))
 予め定められたサーバ、例えば、第1のサ-バ14xのCPU22は、図59の更新処理を実行する。即ち、ステップ402で、第1のサ-バ14x~第nのサ-バ14xから、第1のサ-バ14x~第nのサ-バ14xに格納されている分散値W(x)を集め、ステップ404で、乱数βとk-1個の乱数d~dk-1を生成し、ステップ406で、以下を計算する。
Wa’(x)=βWa’(x)+δ(x)=αβ{a+(a+d/β)x+・・・+(ak-1+dk-1/β)x k-1}
δ(x)=dx+d+・・・dk-1k-1
(Concealment Update Method 3 (Distributed Value Update with Random Number Change))
Predetermined server, for example, the first sub - CPU 22 of server 14x 1 performs the updating process in FIG. 59. That is, in step 402, the first sub - server 14x 1 ~ n-th sub - from server 14x n, the first sub - server 14x 1 ~ n-th sub - dispersion value W stored in the server 14x n Collect (x i ), generate a random number β and k−1 random numbers d 1 to d k−1 at step 404, and calculate the following at step 406:
Wa '(x i) = βWa ' (x i) + δ (x i) = αβ {a + (a 1 + d 1 / β) x i + ··· + (a k-1 + d k-1 / β) x i k-1 }
δ (x) = d 1 x + d 2 x 2 +... d k−1 x k−1
 ステップ408で、Wa’(x)を各サ-バ、即ち、第1のサ-バ14x~第nのサ-バ14xに送信する。第1のサ-バ14x~第nのサ-バ14xは、受信したWa’(x)を新たな分散値として記憶する。 In step 408, Wa ′ (x i ) is transmitted to each server, that is, the first server 14x 1 to the n-th server 14x n . The first server 14x 1 to the n-th server 14x n store the received Wa ′ (x i ) as a new dispersion value.
 上記における特徴はW(x)はα倍されるが、さらにδ(x)が足されることにより、W’(x)/W(x)としてもαにならない、即ち何倍したかサ-バにわからないことである。δ(x)はk-1個集まらなければ解けない乱数であるが、サ-バはαがわからないので、一体化したW’(x)はk個集まってもαsしかわからず安全である。この特徴は請求項18に示される。 The feature in the above is that W (x i ) is multiplied by α, but by adding δ (x i ), W ′ (x i ) / W (x i ) does not become α, that is, how many times The server is not sure. δ (x i ) is a random number that cannot be solved unless k−1 are collected, but since the server does not know α, the integrated W ′ (x i ) only knows α s even if k pieces are collected. It is. This feature is shown in claim 18.
秘匿更新法4
 以上の更新法は定数項を必ず0とするので、k-1次の多項式を用いていてもk-1個の分散値があれば更新に用いた多項式が解ける。すなわち、安全性に問題がある。よって、以下のように更新を行うことによりk個の分散値がなければ更新に用いた値がわからないようにすることができる。
Secret update method 4
In the above updating method, the constant term is always set to 0. Therefore, even if a k-1 degree polynomial is used, the polynomial used for the update can be solved if there are k-1 variance values. That is, there is a problem with safety. Therefore, by updating as follows, it is possible to prevent the value used for updating from being known unless k variance values are present.
[更新]
 第iのサーバ14xiにおいては、xiを第1IDとし、また、xi'を、第2IDとして、x1~xの中から、全てのサーバで第1IDと第2IDの重なりがなく、かつk-1個のサーバ内でその組合せが閉じることがないように、ランダムに定められている。例えば、n=kの場合、どのようなk-1個のサーバ内でその組合せは閉じない。なぜならば、i番目のサーバの第1IDと第2IDが同じとすると、残りのk-1台のサーバ内でIDの組合せが閉じていることになるが、この場合、全てのサーバで第1IDと第2IDの重なりがないという条件を満たしていない。よって、n=kの場合は全てのサーバで第1IDと第2IDの重なりがないように選択すればよい。それに対してn>kの場合、k-1個のサーバ内でその組合せは閉じていても、残り2台のサーバの第1IDと第2IDが逆になっていれば全てのサーバで第1IDと第2IDの重なりがないという条件を満たす。よってまず、x1のサーバがx1以外のサーバIDxj2をランダムに選び、選ばれたxj2のサーバがサーバIDxj3をランダムに選ぶことを順に行い、k-1台目のサーバになる前に選ばれたサーバが既に第2IDを選択したサーバでないようにすればよい。これは、第2IDを既に選択しているサーバは新たな第2IDを選択することができないので、そこで閉じることになるためである。各IDの情報は公開される。
[update]
In the i-th server 14xi, xi is the first ID and xi ′ is the second ID, and all the servers out of x 1 to x n have no overlap between the first ID and the second ID, and k− It is determined at random so that the combination does not close within one server. For example, if n = k, the combination is not closed in any k−1 servers. This is because if the first ID and the second ID of the i-th server are the same, the ID combination is closed in the remaining k-1 servers. The condition that the second ID does not overlap is not satisfied. Therefore, when n = k, selection may be made so that there is no overlap between the first ID and the second ID in all servers. On the other hand, if n> k, even if the combination is closed in k−1 servers, the first ID and the second ID are reversed in all servers if the first and second IDs of the remaining two servers are reversed. The condition that there is no overlap of the second ID is satisfied. Therefore, first, the server of x1 randomly selects a server ID xj2 other than x1, the selected server of xj2 randomly selects the server ID xj3, and the server selected before becoming the k-1th server. May not be a server that has already selected the second ID. This is because a server that has already selected the second ID cannot select a new second ID, and will close there. Information on each ID is made public.
 第iのサーバ14xiのCPU22は、図60(A)の更新処理を実行する。即ち、ステップ381で、それぞれk個の乱数di0、di1、・・・、dik-1と、ri1、・・・、rik-1を生成し、以下の多項式を生成する。
δi(x)=di0+di1x+di2x2+・・・diu-1xu-1
λi(x)=di0+ri1x+ri2x2+・・・riu-1xu-1
The CPU 22 of the i-th server 14xi executes the update process of FIG. That is, in step 381, k random numbers d i0 , d i1 ,..., D ik-1 and r i1 ,.
δi (x) = d i0 + d i1 x + d i2 x 2 + ・ ・ ・ d iu-1 x u-1
λi (x) = d i0 + r i1 x + r i2 x 2 + ・ ・ ・ r iu-1 x u-1
 ステップ383で、全サーバの第1IDを入れた値δi(x1)、δi(x2)、・・・、δi(xn)を成し、ステップ385で、δi(xj)を第jのサーバ14xj(j=1,・・・,n)に送信する。これにより、第iのサーバ14xiは、他のサーバから送信されたδj(xi)を受信する。 In step 383, values δi (x 1 ), δi (x 2 ),..., Δi (x n ) including the first IDs of all the servers are formed. In step 385, δ i (x j ) is j to the server 14x j (j = 1,..., n). Thereby, the i-th server 14xi receives δ j (x i ) transmitted from another server.
 ステップ387で、xに全サーバの第2IDを入れた値λi(x1’)、λi(x2’)、・・・、λi(xn’)を生成して、ステップ389で、λi(xj’)を、第jのサーバ14xj(j=1,・・・,n)に送信する。これにより、第iのサーバ14xiは、他のサーバから送信されたλj(xi’)を受信する。 In step 387, values λ i (x 1 ′), λ i (x 2 ′),..., Λ i (xn ′) are generated by putting the second IDs of all servers in x, and in step 389, λ i a (x j '), and transmits the j server 14x j (j = 1, ··· , n) to. Thereby, the i-th server 14xi receives λ j (x i ') transmitted from the other server.
 ステップ401で、自分がもつ分散値Wa’(xi)に、受信した全てのδj(xi)を足しこんで以下を計算し、それを新たな分散値として保存する。
Wa’(xi)=Wa(xi)+Σδj(xi)=a+a1xi+a2xi2+・・・+ak-1xik-1+Σδj(xi)
   =(a+Σdi0)+(a1+Σdi1)xi +・・・+(ak-1+Σdik-1)xik-1
In step 401, the following is calculated by adding all received δ j (x i ) to the variance value Wa ′ (x i ) that the user has, and storing it as a new variance value.
Wa '(xi) = Wa (xi) + Σδj (xi) = a + a 1 xi + a 2 xi 2 + ... + a k-1 xi k-1 + Σδj (xi)
= (a + Σd i0 ) + (a 1 + Σd i1 ) xi + ・ ・ ・ + (a k-1 + Σd ik-1 ) xi k-1
 ステップ403で、受信した全てのλj(xi’)を足しこんで以下を計算し保存する。
λ(xi’)=Σλj(xi’)=(Σdi0)+(Σri1)xi’ +・・・+(Σrik-1)xi’k-1
In step 403, all received λ j (x i ′) are added and the following is calculated and stored.
λ (xi ') = Σλj (xi') = (Σd i0 ) + (Σr i1 ) xi '+ ... + (Σr ik-1 ) xi' k-1
[復元]
 復元装置16のCPU22は、図60(B)の復元処理を実行する。即ち、ステップ411で、k個のサーバからWa’(xi)を集めて、解いて(a+Σdi0)を計算する。ステップ413で、k個のサーバからλ(xi’)を集めて、解いて(Σdi0)を計算する。
 ステップ415で、(a+Σdi0)から(Σdi0)を引いて秘密情報aを計算する。
[Restore]
The CPU 22 of the restoration device 16 executes the restoration process of FIG. That is, in step 411, Wa ′ (x i ) is collected from k servers and solved to calculate (a + Σd i0 ). In step 413, λ (xi ′) is collected from k servers and solved to calculate (Σd i0 ).
In step 415, secret information a is calculated by subtracting (Σd i0 ) from (a + Σd i0 ).
 以上の特徴は従来定数項を0とする多項式によって更新されていたが、それを定数項を0としない。以上では更新処理だけではなく、それに伴い復元においても処理が必要になる。また、λ(xi)を保存するため記憶容量が増加する。しかし、攻撃者はk-1個のサーバを盗聴できたとしても、Wa’(xi)とλ(xi’)の秘密情報は全く得られないため、更新値もわからない。 The above feature has been updated by a polynomial in which the constant term is conventionally 0, but the constant term is not 0. In the above, not only the update process but also the process is required for restoration. Further, since λ (x i ) is stored, the storage capacity increases. However, even if the attacker can eavesdrop on k−1 servers, the secret information of Wa ′ (x i ) and λ (x i ′) cannot be obtained at all, and the updated value is not known.
 この更新法は、kをu(>k)とすればkの拡大にも対応可能である。また、[復元]は以下のようにすることもできる。 This update method can handle expansion of k if k is u (> k). [Restore] can also be as follows.
(1)各サーバはλi(xj’)をサーバxj’に送信する。
(2)各サーバはWa’(xi)+λ(xi)を計算して復元装置16に送信する。
(3)復元装置16はk個のサーバからWa’(xi)+λ(xi)を集めて、解いてaを計算する。
(1) Each server transmits λ i (x j ′) to the server x j ′.
(2) Each server calculates Wa ′ (x i ) + λ (x i ) and transmits it to the restoration device 16.
(3) The restoration device 16 collects Wa ′ (x i ) + λ (x i ) from k servers, solves it, and calculates a.
 また、第2IDをランダムに選ばなくても例えば、xiに対してxi+cを第2ID(cは1以上の整数)とすることもできる。さらに、秘匿更新法1に対応する手法を以下に示す。 Moreover, even without choosing a first 2ID randomly example, the 2ID the x i + c with respect to x i (c is an integer of 1 or more) may be a. Furthermore, the method corresponding to the secret update method 1 is shown below.
秘匿更新5
[分散]
 図61(A)を参照して、サーバが実行する分散処理を説明する。この処理では秘匿更新4と同様に各サーバは第1IDと第2IDをもつ。以下ではことわりがない限り、サーバIDは第1IDを指す。
Secret update 5
[dispersion]
With reference to FIG. 61A, the distributed processing executed by the server will be described. In this process, each server has a first ID and a second ID as in the case of the secret update 4. In the following description, the server ID indicates the first ID unless otherwise specified.
 第1のサーバ14x1~第nのサーバ14xnの内、復元処理を行う1台のサーバがランダムに選択されている。選択されたサーバを、第dのサーバ14xとする。例えば、第(k+1)のサーバ14x(k+1)とする。 Of the first server 14x1 to the nth server 14xn, one server that performs the restoration process is selected at random. The selected server, and the server 14x d of the d. For example, it is assumed that the (k + 1) th server 14x (k + 1) .
 第dのサーバ14xを以下のk台のサーバに含めることもできるが、説明を簡単にするためk台のサーバは第dのサーバ14x以外とする。第dのサーバ14x以外のk台のサーバ、例えば、第1のサーバ14x~第kのサーバ14xは、ステップ421で、乱数Wa’iを生成する。第1のサーバ14x~第kのサーバ14xは、ステップ423で、自分が既に持つ分散値Wa’(xi)と新たに生成したWa’iとの差分Ui’を計算する。
Wa’(xi)=α(a+a1xi+a2xi2+・・・+ak-1xik-1) (i=1,・・・,k-1)
Wa’i=α(a’+a1’xi+a2’xi2+・・・+ak-1’xik-1)
Ui’=Wa’(xi)-Wa’i=α{(a-a’)+(a1-a1’)xi+(a2-a2’)xi2+・・・+(ak-1-ak-1’)xik-1}
While the server 14x d of the d can also be included in the k stand server follows, k stand servers to simplify the description will be other than the server 14x d of the d. K stand server other than the server 14x d of the d, for example, the server 14x k of first server 14x 1 ~ k th, in step 421, generates a random number Wa 'i. In step 423, the first server 14x 1 to the k-th server 14x k calculate the difference Ui ′ between the variance value Wa ′ (x i ) that they already have and the newly generated Wa ′ i .
Wa '(x i ) = α (a + a 1 xi + a 2 xi 2 + ... + a k-1 xi k-1 ) (i = 1, ..., k-1)
Wa ' i = α (a' + a 1 'xi + a 2 ' xi 2 + ... + a k-1 'xi k-1 )
U i '= Wa' (xi) -Wa'i = α {(a-a ') + (a 1 -a 1 ') xi + (a 2 -a 2 ') xi 2 + ... + (a k -1 -a k-1 ') xi k-1 }
 なお、aj’(j=1,…,k-1)は、ステップ427で多項式を解く事によって得られる乱数である。 Note that a j ′ (j = 1,..., K−1) is a random number obtained by solving the polynomial in step 427.
 第1のサーバ14x~第kのサーバ14xは、ステップ425で、差分U’を第dのサーバ14xに送信する。 In step 425, the first server 14x 1 to the k-th server 14x k transmit the difference U i ′ to the d-th server 14x d .
 第dのサーバ14xは、ステップ427で、k個の多項式を解き、α(a-a’),α(a1-a1’),・・・,α(ak-1-ak-1’)を求め、残りのn-(k+1)台のサーバ14x、例えば、第(k+2)のサーバ14x(k+2)~第nのサーバ14xと、自身の第dのサーバ14xに対する以下の差分値Wj’を計算する。
Wj’=α{(a1-a1’)xj+(a2-a2’)xj2+・・・+(ak-1-ak-1’)xjk-1} (ただし、j=k+1,・・・,n)
Server 14x d of the d is, at step 427, to solve the k-number of polynomial, α (a-a ') , α (a 1 -a 1'), ···, α (a k-1 -a k -1 ') is obtained, remaining n- (k + 1) stage of the server 14x j, for example, the (k + 2) of the server 14x (k + 2) ~ and the server 14x n of the n, of the d own server 14x The following difference value W j ′ with respect to d is calculated.
W j '= α {(a 1 -a 1 ') xj + (a 2 -a 2 ') xj 2 + ... + (a k-1 -a k-1 ') xj k-1 } (where j = k + 1, ..., n)
 第dのサーバ14xは、ステップ429で、差分値Wj’をサーバ14x(j=k+1,・・・,n)に送信する。サーバ14xjは送られたWj’と、既に持っている分散値Wa’(xi)とを足して新たな分散値Wa’(xi)とする。 In step 429, the d-th server 14x d transmits the difference value W j ′ to the server 14x j (j = k + 1,..., N). Server 14x j is sent Wj by adding a 'and already got to have the dispersion value Wa' (x i) as a new variance value Wa '(x i).
 第dのサーバ14xは、ステップ433で、α(a1-a1’)を以下のように分散する。
Wd’(xi’)=α(a-a’)+d1xi’+d2xi’2+・・・+dk-1xi’k-1
Server 14x d of the d is, at step 433, distributed as follows α a (a 1 -a 1 ').
Wd '(xi') = α (a-a ') + d 1 xi' + d 2 xi ' 2 + ... + d k-1 xi' k-1
 第dのサーバ14xは、ステップ435で、サーバ14xi(i=1,・・・,n)に第2IDの値であるWd’(xi’)を送信する。なお、第dのサーバ14xは、自身のWa’(xk+1’)を、自身の記憶装置34に保存する。 In step 435, the d-th server 14xd transmits Wd ′ (x i ′), which is the value of the second ID, to the server 14xi (i = 1,..., N). The server 14x d of the d is its Wa '(x k + 1' ), is stored in its own storage device 34.
[復元]
 次に、図61(B)を参照して、各サーバ(第1のサーバ14x~第nのサーバ14xm)が実行する復元処理を説明する。即ち、ステップ437で、Wd’(xi’)をサーバ14xi’に送信し、よって、ステップ439で、Wd’(xi)を受信する。
[Restore]
Next, with reference to FIG. 61B, a restoration process executed by each server (first server 14x 1 to nth server 14x m ) will be described. That is, at step 437, Wd '(x i ') is transmitted to the server 14x i ', and therefore at step 439, Wd' (x i ) is received.
 ステップ441で、Wd’(xi)+Wa’(xi)=α{a+(d1+a1’)xi+(d2+a2’)xi2+・・・+(dk-1+ak-1’)xik-1}を計算する。
 第1のサーバ14x~第nのサーバ14xmの内の、復元装置16から指示されたk個のサーバは、ステップ443で、Wd’(xi)+Wa’(xi)を復元装置16に送信する。
 そして、復元装置16は、k個のサーバからWa’(xi)+Wd’(xi)を受信し、解いてαaを計算する。
 この場合、Wd’(xi)+Wa’(xi)を新たな分散値として、秘匿演算を継続可能であることは明らかである。
 秘匿更新4と5の特徴は、定数項を0としないk個の補正情報δj(xi)またはUj’から分散値の更新情報Σδj(xi)またはWj’を計算することであり、これによってk-1台の盗聴を行っても更新情報は得られない。このような手法は今まで提案されておらず、この特徴は請求項11に示される。
In step 441, Wd ′ (xi) + Wa ′ (xi) = α {a + (d 1 + a 1 ′) xi + (d 2 + a 2 ′) xi 2 +... + (D k−1 + a k -1 ') xi k-1 } is calculated.
Of the first server 14x 1 to the n-th server 14x m , k servers designated by the restoration device 16 transmit Wd ′ (xi) + Wa ′ (xi) to the restoration device 16 in step 443. To do.
Then, the restoration device 16 receives Wa ′ (xi) + Wd ′ (xi) from k servers and solves to calculate αa.
In this case, it is obvious that the secret calculation can be continued with Wd ′ (xi) + Wa ′ (xi) as a new variance value.
The secret updates 4 and 5 are characterized in that the update information Σδj (xi) or Wj ′ of the variance value is calculated from k pieces of correction information δj (xi) or Uj ′ whose constant term is not 0. -Update information cannot be obtained even if one device is wiretapped. Such an approach has not been proposed so far, and this feature is indicated in claim 11.
<第6の実施の形態>
 次に、秘匿検索について示す。ここでは秘密情報を持つオ-ナが、秘密情報に対応する検索IDを分散して秘密情報の分散値とともにサ-バシステムに保管し、ある秘密情報の検索を希望するユ-ザは秘密情報に対応する検索IDを分散して、分散値同志で検索を行う。
(秘匿検索1(基本形:検索サーバ18を用いない))
[分散]
 第1のディーラ装置12Aでは、m個の秘密情報(前述した第1の実施の形態~第5の実施の形態の何れかの分散により上記のように分散されている)に対応するm個の検索IDをkj(j=1,…,m)としている。第1のディーラ装置12AのCPU22は、図62の分散処理を実行する。即ち、ステップ412で、検索IDごとの乱数rjを生成し、ステップ414で、下記の分散値F(x)、R(x)を計算する。
 F(x)=rj(k+aj1+aj2 +…+ajk-1 k-1)(i=1,…,n)
 R(x)=r+rj1+rj2 …+rjk-1 k-1
<Sixth Embodiment>
Next, a secret search will be described. Here, the owner who has the secret information distributes the search ID corresponding to the secret information and stores it in the server system together with the distributed value of the secret information. The search IDs corresponding to are distributed and searches are performed with distributed values.
(Confidential search 1 (basic form: the search server 18 is not used))
[dispersion]
In the first dealer apparatus 12A, m pieces of secret information (distributed as described above by the dispersion of any of the first to fifth embodiments described above) are provided. The search ID is kj (j = 1,..., M). The CPU 22 of the first dealer device 12A executes the distributed processing of FIG. That is, in step 412, a random number rj for each search ID is generated, and in step 414, the following distributed values F j (x i ) and R j (x i ) are calculated.
F j (x i ) = rj (k j + a j1 x i + a j2 x i 2 +... + A jk−1 x i k−1 ) (i = 1,..., N)
R j (x i) = r j + r j1 x i + r j2 x i 2 + ... + r jk-1 x i k-1
 ステップ416で、分散値F(x)、R(x)を第iのサ-バ14x(i=1,…,n)に送信して保管させる。 In step 416, the variance values F j (x i ) and R j (x i ) are transmitted to the i-th server 14x i (i = 1,..., N) for storage.
 よって、各サ-バ、例えば、第1のサ-バ14xの記憶装置34には、図63(A)に示すように、検索IDであるk(j=1,2…,m/2,…m)に対応して、分散値F(x)、R(x)が記憶されている。ただし、分散値F(x)、R(x)は検索ID=kjに応じて昇順に並べられている。さらに、検索IDに対応する秘密情報に対する分散値もFj(xi)、Rj(xi)と並んで保存されている。 Thus, each service - server, for example, a first service - the storage device 34 of the server 14x 1, as shown in FIG. 63 (A), a search ID k j (j = 1,2 ... , m / 2,... M), dispersion values F j (x i ) and R j (x i ) are stored. However, the variance values F j (x i ) and R j (x i ) are arranged in ascending order according to the search ID = kj. Furthermore, the variance value for the secret information corresponding to the search ID is also stored along with Fj (xi) and Rj (xi).
[検索]
 各サ-バは保管している分散値の中央値、即ちj=m/2により識別される分散値から検索を始めるようになっている。
[Search]
Each server starts the search from the median value of the stored variance values, that is, the variance value identified by j = m / 2.
 復元装置16のCPU22は、図64の検索処理を実行する。即ち、ステップ420で、検索を希望するユ-ザの操作に従って検索ID=k’を入力し、ステップ422で、検索ID=kj’に乱数qを乗じたq・kj’をオ-ナの第1のディーラ装置12Aに送信する。 The CPU 22 of the restoration device 16 executes the search process of FIG. That is, in step 420, the search ID = k j ′ is input according to the operation of the user who desires the search. In step 422, q · kj ′ obtained by multiplying the search ID = kj ′ by the random number q is set to the owner. Transmit to the first dealer device 12A.
 第1のディーラ装置12Aは、図65の分散値F(x)の計算・送信処理を実行する。即ち、ステップ452で、q・kj’を受信し、ステップ454で、q・k’を、以下のように秘密分散するための分散値F’(x)を計算する。
 Fj’(x)=q・k’+bj1+bj2 +…+bjk-1 k-1(i=1,…,k)
The first dealer apparatus 12A executes the calculation / transmission processing of the variance value F j (x i ) in FIG. That is, in step 452, q · kj ′ is received, and in step 454, a variance value F j ′ (x i ) for secretly sharing q · k j ′ as follows is calculated.
F j ′ (x i ) = q · k j ′ + b j1 x i + b j2 x i 2 +... + B jk−1 x i k−1 (i = 1,..., K)
 ステップ456で、分散値F’(x)を第iのサ-バ14xに送信する。
 第iのサ-バ14x、即ち、第1のサ-バ14x~第kのサ-バ14xの各CPU22は、図66の差tjの計算・送信処理を実行する。即ち、ステップ462で、分散値Fj’(x)を受信し、ステップ464で、検索IDのjを設定する。本処理が最初に実行されるとき、ステップ464では、jには、m/2が設定される。ステップ466で、jに対応する分散値F(x)、R(x)を、記憶装置34から読み出し、ステップ468で、分散値F(x)(i=1,…,k)をユ-ザの復元装置16に送信する。これにより、復元装置16は、図64のステップ424で、分散値F(x)を受信する。
In step 456, the variance value F j ′ (x i ) is transmitted to the i-th server 14x i .
Each CPU 22 of the i -th server 14x i , that is, the first server 14x i to the k-th server 14x k executes the calculation / transmission processing of the difference tj in FIG. That is, in step 462, the variance value Fj ′ (x i ) is received, and in step 464, the search ID j is set. When this process is first executed, in step 464, j is set to m / 2. In step 466, the variance values F j (x i ) and R j (x i ) corresponding to j are read from the storage device 34, and in step 468, the variance values F (x i ) (i = 1,..., K). ) To the user's restoration device 16. Thereby, the restoration device 16 receives the variance value F j (x i ) in step 424 in FIG.
 図64のステップ426で、δ(0)=0となる多項式δ(x)を生成し、ステップ428で、以下の分散値F(x)を計算する。
 F(x)=q・F(x)+δ(x)(i=1,…,k)
In step 426 of FIG. 64, a polynomial δ (x) that satisfies δ (0) = 0 is generated, and in step 428, the following variance value F j (x i ) is calculated.
F j (x i ) = q · F j (x i ) + δ (x i ) (i = 1,..., K)
 ステップ430で、分散値F(x)を第iのサ-バ14xに送信する。これにより、第iのサ-バ14xは、図66のステップ470で、分散値F(x)を受信する。
 ステップ472で、k個の分散値R(x)からrを復元する。
 ステップ474で、乱数tjを生成し、以下の差t{F(x)-r’(x)}を計算する。
 t{F(x)-r’(x)}=tj・rj・q{(k-k’)+(aj1-bj1)x+…+(ajk-1-bjk-1)x k-1}
 ステップ476で、差t{F(x)-r’(x)}を復元装置16に送信する。
In step 430, the variance value F j (x i ) is transmitted to the i th server 14x i . Accordingly, the i-th server 14x i receives the variance value F j (x i ) in step 470 of FIG.
In step 472, r j is restored from the k variance values R j (x i ).
In step 474, a random number tj is generated, and the following difference t j {F j (x i ) −r j F j ′ (x i )} is calculated.
t j {F j (x i ) −r j F j ′ (x i )} = tj · rj · q {(k j −k j ′) + (a j1 −b j1 ) x i +... + (a jk-1 -b jk-1 ) x i k-1 }
In step 476, the difference t j {F j (x i ) −r j F j ′ (x i )} is transmitted to the restoration device 16.
 復元装置16は、図64のステップ432で、差t{F(x)-r’(x)}を受信し、ステップ434で、差t{F(x)-r’(x)}の多項式を解き、定数項を求め、ステップ436で、定数項r・q(k-kj’)が0か否かを判断する。定数項r・q(k-kj’)が0であると判断された場合には、検索IDが一致してとして、ステップ438で、検索IDを現在のjとする。定数項r・q(k-kj’)が0でないと判断された場合、ステップ440で、本処理(ステップ424~436)が所定回数、例えば、logm回実行したか否かを判断する。本処理(ステップ424~436)がlogm回実行したと判断された場合には、ステップ442で、検索IDなしとする。 The restoration device 16 receives the difference t j {F j (x i ) −r j F j ′ (x i )} in step 432 of FIG. 64, and in step 434, the difference t j {F j (x i ) −r j F j ′ (x i )} is solved to obtain a constant term, and it is determined in step 436 whether or not the constant term r j · q (k j −k j ′ ) is zero. If it is determined that the constant term r j · q (k j −k j ′ ) is 0, the search IDs match and the search ID is set to the current j in step 438. If it is determined that the constant term r j · q (k j −k j ′ ) is not 0, whether or not the present process (steps 424 to 436) has been executed a predetermined number of times, for example, log 2 m times in step 440. Judging. If it is determined that this process (steps 424 to 436) has been executed log 2 m times, it is determined in step 442 that there is no search ID.
 本処理(ステップ424~436)がlogm回実行したと判断されなかった場合には、ステップ444で、定数項r・q(k-kj’)は正か否かを判断する。定数項r・q(k-kj’)が正と判断された場合には、ステップ446で、jを、当該jより小さい値に設定して、第iのサーバ14xiに指示する。例えば、検索IDの検索領域をjより小さい領域として設定し、設定した検索領域の中央値をjに設定、設定されたjを、第iのサーバ14xiに指示する。その後、検索処理はステップ424に戻る。 If it is not determined that this process (steps 424 to 436) has been executed log 2 m times, it is determined in step 444 whether or not the constant term r j · q (k j −k j ′ ) is positive. . If it is determined that the constant term r j · q (k j −k j ′ ) is positive, in step 446, j is set to a value smaller than j, and the i th server 14xi is instructed. For example, the search area of the search ID is set as an area smaller than j, the median value of the set search area is set to j, and the set j is instructed to the i-th server 14xi. Thereafter, the search process returns to step 424.
 定数項r・q(k-kj’)が正と判断されなかった場合には、ステップ448で、jを、当該jより大きい値に設定して、第iのサーバ14xiに指示する。例えば、検索IDの検索領域をjより大きい領域として設定し、設定した検索領域の中央値をjに設定、設定されたjを、第iのサーバ14xiに指示する。その後、検索処理はステップ424に戻る。 If it is not determined that the constant term r j · q (k j −k j ′ ) is positive, in step 448, j is set to a value larger than the j and the i th server 14xi is instructed. . For example, the search area of the search ID is set as an area larger than j, the median of the set search area is set to j, and the set j is instructed to the i-th server 14xi. Thereafter, the search process returns to step 424.
 例えば、本処理(ステップ424~436)が最初に実行され、定数項rj・q(kj-kj’)が正と判断された場合には、ステップ442で、検索IDの検索領域をjより小さい領域、1~(m/2)-1として設定し、設定した検索領域の中央値、3m/4をjに設定する。本処理(ステップ424~436)が再度実行され、定数項rj・q(kj-kj’)が正と判断されなかった場合には、ステップ448で、検索IDの検索領域(1~(m/2)-1)をj=3m/4より大きい領域、(3m/4)+1~(1~(m/2)-1)として設定し、設定した検索領域の中央値をjに設定する。 For example, when this process (steps 424 to 436) is executed first and the constant term rj · q (kj−kj ′) is determined to be positive, the search area of the search ID is smaller than j in step 442. The area is set as 1 to (m / 2) -1, and the median value of the set search area is set to 3m / 4. When this process (steps 424 to 436) is executed again and the constant term rj · q (kj−kj ′) is not determined to be positive, in step 448, the search ID search area (1 to (m / 2) -1) is set as an area larger than j = 3 m / 4, (3m / 4) +1 to (1 to (m / 2) -1), and the median value of the set search area is set to j.
 上記のようにjの値が第iのサーバ14xiに対して指示されると、図66におけるステップ478のjが指示されたか否かの判定結果が肯定判定となって、差tjの計算処理はステップ464に戻る。これにより、図66のステップ464では、検索IDのjとして、上記指示された値を設定する。その後の処理(ステップ466~ステップ476)は、上記設定されたjに基づいて、実行される。 When the value of j is instructed to the i-th server 14xi as described above, the determination result of whether or not j in step 478 in FIG. 66 is affirmative, and the calculation process of the difference tj is Return to step 464. Thereby, in step 464 of FIG. 66, the instructed value is set as j of the search ID. Subsequent processing (steps 466 to 476) is executed based on the set j.
 第1の特徴は[分散]において、請求項7の1例として分散値を検索ID=kjに応じて昇順に並べ、[検索]において最初の検索をm個の検索IDの中央値、即ちj=m/2から始めることである。 The first feature is [Distribution]. As an example of claim 7, the dispersion values are arranged in ascending order according to the search ID = kj. In [Search], the first search is the median of m search IDs, that is, j. = Start with m / 2.
 また、請求項9の1例として[検索]で得られる定数項rj・q(kj-kj’)を出力する。rj・qは正の値であるので、その値が正であればkj-kj’>0、即ちkj>kj’を意味するので、kjの小さい方の中央値、即ちj=3m/4として再び検索を行う。もし、次の検索における定数項が同様に正であればやはりkj>kj’を意味するので、さらにkjの小さい方の中央値を検索する。逆に、次の検索における定数項が負であればkj<kj’を意味するので、kjの大きい方の中央値を検索する。即ち、mが大きくてもlog2m回の検索で終了する。よって、[検索]でlog2m回探索しても一致する検索IDがない場合は、その検索IDは保存されていないと判断できる。 As an example of claim 9, the constant term rj · q (kj−kj ′) obtained by [Search] is output. Since rj · q is a positive value, if the value is positive, it means kj−kj ′> 0, that is, kj> kj ′. Therefore, the smaller median value of kj, that is, j = 3m / 4 Search again. If the constant term in the next search is also positive, it means kj> kj ', so that the median with the smaller kj is searched. On the other hand, if the constant term in the next search is negative, it means kj <kj ', so the median with the larger kj is searched. That is, even if m is large, the search is completed in log 2m times. Therefore, if there is no matching search ID even after searching log 2m times in [Search], it can be determined that the search ID is not stored.
 第2の特徴は[検索]においてオ-ナはユ-ザからq・kj’を得るが、乱数qがかかっているためユ-ザの検索IDであるkj’はわからない。また、ユ-ザはサ-バからFj(x)を得るが、rjがかかっているのでサ-バの検索IDであるkjはわからない。さらに、ユ-ザはt{F(x)-rj’(x)}も得るが、F(x)以外不明であるのでrは得られない。また、サ-バはF(x)とFj’(x)とrを得るが、k個が結託しなければ秘密情報は復元されない。 The second feature is that in [search], the owner obtains q · kj ′ from the user, but since the random number q is applied, the user's search ID kj ′ is not known. Further, the user obtains Fj (x i ) from the server, but since rj is applied, kj which is the server search ID is not known. In addition, the user also obtains t j {F j (x i ) −r j F j ′ (x i )}, but r j cannot be obtained because it is unknown except for F j (x i ). Also, the server obtains F j (x i ), F j ′ (x i ), and r j , but the secret information is not restored unless k pieces are collated.
 上記[分散]において、分散値はkの昇順に並べるとしているが、降順に並べ[検索]の方向を逆にしてもよい。[検索]において、オ-ナがq・kj’を分散させるが、ユ-ザが分散してもよい。 In [Dispersion], the dispersion values are arranged in ascending order of k j , but they may be arranged in descending order and the direction of [Search] may be reversed. In [Search], the owner disperses q · kj ′, but the user may disperse.
 秘匿検索1は単純であるが、オ-ナ、ユ-ザともに毎回検索に参加するため、1つのkj’に対する検索に対して、最大log2m回の演算を行う必要があり、最大負担が大きい。そこで、検索を専門に行う(計算能力が高い)検索部を設け、オ-ナ、ユ-ザともに1つの検索IDに対して1回の演算だけですむ方式を以下に示す。検索部はディーラ装置、サ-バシステム、復元装置と別の装置としてもよいが、サ-バシステムの中に存在するとしてもよい。 Secret search 1 is simple, but both owners and users participate in the search every time. Therefore, it is necessary to perform a maximum of log 2m operations for a search for one k j ′, and the maximum burden is large. . Therefore, the following shows a method in which a search unit specializing in search (high calculation capability) is provided, and only one operation is performed for one search ID for both the owner and the user. The search unit may be a separate device from the dealer device, the server system, and the restoration device, but may be present in the server system.
(秘匿検索2(検索サーバ18を用いる))
[分散]
オ-ナの第1のディーラ装置12Aは、m個の秘密情報(前述した第1の実施の形態~第5の実施の形態の何れかの分散により上記のように分散されている)に対応するm個の検索IDをk(j=1,…,m)とし、共通の乱数rと検索IDごとの乱数rを生成して、下記分散値F(x)、R(x)を計算し、第iのサ-バ14x(i=1,…,n)、即ち、第1のサ-バ14x~第nのサ-バ14xに分散保管させる(aji,rji,tjiも乱数)。よって、例えば、第1のサーバ14xの記憶装置34には、図63(B)に示すように、各分散値F(x)、R(x)が記憶されている。さらに、検索IDに対応する秘密情報に対する分散値もFj(xi)、Rj(xi)と並んで保存されている。
(Secret search 2 (using search server 18))
[dispersion]
The owner's first dealer apparatus 12A corresponds to m pieces of secret information (distributed as described above by the distribution of any of the first to fifth embodiments described above). The m search IDs to be performed are k j (j = 1,..., M), a common random number r and a random number r j for each search ID are generated, and the following distributed values F j (x i ) and R j ( x i ) is calculated and distributedly stored in the i- th server 14x i (i = 1,..., n), that is, the first server 14x 1 to the n-th server 14x n (a ji , r ji , and t ji are also random numbers). Thus, for example, the first server 14x 1 storage device 34, as shown in FIG. 63 (B), the variance F j (x i), R j (x i) is stored. Furthermore, the variance value for the secret information corresponding to the search ID is also stored along with Fj (xi) and Rj (xi).
 F(x)=rj・(k+t’j1+t’j2 +…+t’jk-1 k-1)(i=1,…,n)
 Rj(x)=r・r+rj1+rj2 +…+rjk-1x k-1
 ただし、分散値は検索IDであるkに応じて昇順に並べられているとする。
F j (x i ) = rj · (k j + t ′ j1 x i + t ′ j2 x i 2 +... + T ′ jk−1 x i k−1 ) (i = 1,..., N)
Rj (x i ) = r · r j + r j1 x i + r j2 x i 2 +... + R jk −1x i k−1
However, it is assumed that the distributed values are arranged in ascending order according to the search ID k j .
[検索]
 各サ-バは保管している分散値の中央値、即ちj=m/2により識別される分散値から検索を始める。
[Search]
Each server starts the search with the median of the stored variance values, i.e. the variance value identified by j = m / 2.
 復元装置16のCPU22は、図67の分散値Fu(x)の計算・送信処理を実行する。即ち、ステップ482で、検索を希望するユ-ザの操作に従って、検索IDであるk’を入力し、ステップ484で、検索IDであるk’に乱数qを乗じたq・k’を第1のディーラ装置12Aに送信する。 The CPU 22 of the restoration device 16 executes the calculation / transmission processing of the variance value Fu (x i ) in FIG. That is, in step 482, according to the operation of the user who desires the search, the search ID k j ′ is input, and in step 484, the search ID k j ′ is multiplied by the random number q q · k j ′. Is transmitted to the first dealer 12A.
 第1のディーラ装置12AのCPU22は、図68の分散値Fo(x)の計算・送信処理を実行する。即ち、ステップ502で、q・k’を受信する。 The CPU 22 of the first dealer 12A executes the calculation / transmission processing of the variance value Fo (x i ) in FIG. That is, in step 502, q · k j ′ is received.
 ステップ504で、tjを生成し、ステップ506でt・rを計算し、ステップ508で、t・rを復元装置16に送信する。これにより、復元装置16は、図67のステップ486で、t・rを受信する。 In step 504, tj is generated, t j · r is calculated in step 506, and t j · r is transmitted to the restoration device 16 in step 508. Thereby, the restoring device 16 receives t j · r in step 486 of FIG.
 また、第1のディーラ装置12Aは、図68のステップ510で、以下の分散値Fo(x)を計算する。 Further, the first dealer 12A calculates the following variance value Fo (x i ) in step 510 of FIG.
Fo(x)=t・q・k’+bj1+bj2 +…+bjk-1 k-1(i=1,…,n) Fo (x i ) = t j · q · k j '+ b j1 x i + b j2 x i 2 +... + B jk-1 x i k-1 (i = 1,..., N)
 第1のディーラ装置12Aは、ステップ512で、分散値F(x)を各サ-バ(14x~14x)に送信する。 In step 512, the first dealer apparatus 12A transmits the variance value F o (x i ) to each server (14x 1 to 14x n ).
 各サ-バは、図69の差の計算・送信処理を実行する。即ち、ステップ522で、分散値Fo(x)を受信する。 Each server executes the difference calculation / transmission process of FIG. That is, in step 522, the variance value Fo (x i ) is received.
 一方、復元装置16は、図67のステップ488で、以下の分散値F(x)を計算する。
 F(x)=t・r・q+cj1+cj2 +…+cjk-1 k-1(i=1,…,n)
On the other hand, the restoration device 16 calculates the following variance value F u (x i ) in step 488 of FIG.
F u (x i ) = t j · r · q + c j1 x i + c j2 x i 2 +... + C jk−1 x i k−1 (i = 1,..., N)
 ステップ490で、分散値F(x)を各サ-バに送信する。これにより、各サ-バは、図69のステップ524で、分散値F(x)を受信する。 In step 490, the variance value F u (x i ) is transmitted to each server. Thereby, each server receives the variance value F u (x i ) in step 524 of FIG.
 各サーバは、ステップ525で、R(x)、T(x)を検索サーバ18に送信する。検索サーバ18のCPU22は、図70の検索処理を実行する。即ち、ステップ542で、各サーバが送信してR(x)とT(x)をk個集め、ステップ544で、r・rとr・kを復元し、ステップ546で、各サ-バに送信する。これにより、各サ-バは、図69のステップ526で、r・rとr・kを受信する。 In step 525, each server transmits R j (x i ), T j (x i ) to the search server 18. The CPU 22 of the search server 18 executes the search process of FIG. That is, in step 542, each server transmits and collects R j (x i ) and T j (x i ) k. In step 544, r · r j and r j · k j are restored, and step 546 To each server. As a result, each server receives r · r j and r j · k j in step 526 of FIG.
 各サ-バは、ステップ528で、以下の差を計算する。
 r・k・F(x)-r・r・F(x)=t・r・r・q{(k-k’)+(cj1-bj1)x+…+(cjk-1-bjk-1)x k-1}
Each server calculates the following differences at step 528:
r j · k j · F u (x i) -r · r j · F o (x i) = t j · r · r j · q {(k j -k j ') + (c j1 -b j1 ) X i +... + (C jk−1 −b jk−1 ) x i k−1 }
 ステップ530で、差を検索サーバ18に送信する。これにより、検索サーバ18は、図70のステップ548で、差を受信する。 In step 530, the difference is transmitted to the search server 18. Thereby, the search server 18 receives the difference in step 548 of FIG.
 検索サーバ18はステップ550で、差の多項式を解き、定数項を求め、ステップ552~ステップ564を実行する。なお、ステップ552~ステップ564は、図64のステップ436~448と同様であるので、その説明を省略する。 In step 550, the search server 18 solves the difference polynomial, obtains a constant term, and executes steps 552 to 564. Steps 552 to 564 are the same as steps 436 to 448 in FIG.
 図70のステップ562、564で上記指示がされると、図68、図67図69のステップ532が肯定判定となって、ステップ525~532の処理が実行され、これに伴って、図70の検索処理が実行される。 When the above instruction is given in steps 562 and 564 in FIG. 70, step 532 in FIGS. 68 and 67 is affirmative, and the processing in steps 525 to 532 is executed. Search processing is executed.
 上記の特徴はユーザの処理を1度で終わらせるために、ユーザは乱数qを生成して自分の検索IDkjを秘匿化してオーナに示し、オーナから送られた検索IDに関連する乱数tj・rに自分が定めた乱数qを乗じて返すことである。この特徴は請求項8に示される。
 また、最初のオーナまたは異なるオーナが検索IDを追加する場合、そのオーナをユーザとし、追加IDをユーザの検索IDとして検索する。一致するIDがあった場合、そのユーザはその検索IDを変える。なければ、最終位置の隣接ID(追加IDが検索ID中にない場合、最後まで一致はしないが、最終位置では隣接IDの検索結果の方向が逆になり、追加IDがその中間位置に入るべきであることがわかる)の中間位置に追加IDの分散値を追加する。ただし、最初のオーナーが追加を行う場合はこれでよいが、異なるオーナがデータの追加を行う場合、データは昇順に並んでも、オーナーの順番がバラバラとなるため、検索のたびにオーナーの許可が必要となる。よってこの場合、オーナーはシステムに検索を許可するユーザの条件を示し、検索の許諾をシステムに委託するなどすれば効率的となる。以上の特徴は請求項17に示される。
 ところで、第1の実施の形態~第4の実施の形態に示した例では、α=α・・・αを生成するが、αは秘密情報毎に異なる乱数であるので、α=rjとすれば秘匿検索におけるTj(x)は秘匿演算のWa’(x)などと同じ形式の式となる。ただし、秘匿検索に対してはr・rjに対する分散値Rj(x)が増えるので、秘密情報と検索ID間の相互検索を行えるようにするためには、各サ-バは秘匿演算のために第1の実施の形態~第4の実施の形態の[分散]に示すように1つの秘密情報に対してk+1個の分散値、秘匿検索のためにRj(x)に対応する分散値で、k+2個の分散値を保存する必要がある。これによって、秘匿演算と秘匿検索の2つが同時に実現できる。
In order to finish the user's processing at once, the user generates a random number q, conceals his / her search ID kj and shows it to the owner, and the random number tj · r related to the search ID sent from the owner Is multiplied by a random number q determined by me. This feature is shown in claim 8.
When the first owner or a different owner adds a search ID, the owner is used as a user, and the additional ID is searched as the user's search ID. If there is a matching ID, the user changes the search ID. Otherwise, the adjacent ID at the final position (if the additional ID is not in the search ID, it will not match until the end, but the search result of the adjacent ID will be reversed at the final position, and the additional ID should be in the middle position. Add the dispersion value of the additional ID to the intermediate position. However, this is sufficient when the first owner adds, but when different owners add data, even if the data is arranged in ascending order, the order of the owners will be different, so the owner's permission will be granted for each search. Necessary. Therefore, in this case, it becomes efficient if the owner indicates the conditions of the user who permits the search to the system and entrusts the search permission to the system. The above characteristics are shown in claim 17.
By the way, in the example shown in the first to fourth embodiments, α = α 1 ... Α k is generated, but α is a random number that differs for each secret information, so α = rj Then, Tj (x i ) in the confidential search is an expression in the same format as Wa ′ (x i ) of the confidential calculation. However, since the distributed value Rj (x) with respect to r · rj increases for the secret search, each server must perform a secret calculation in order to perform a mutual search between the secret information and the search ID. As shown in [Distribution] in the first to fourth embodiments, k + 1 distributed values for one secret information, and a distributed value corresponding to Rj (x i ) for a confidential search. , K + 2 variance values need to be stored. As a result, both the secret calculation and the secret search can be realized simultaneously.
<第7の実施の形態>
 秘匿乗算1’(非対称秘密分散対応)
 文献[4]に示される非対称秘密分散に適した秘匿乗算法を以下に示す。ただし、hは1~k-1までの整数のうち、小型化を実現するための鍵サ-バ数を示すとする。ここでは、オ-ナがその鍵サ-バを持つとする。以下に説明する秘匿乗算i’などは秘匿乗算iに対応する手法である。以下では、秘密情報aをもつオ-ナAがh個の鍵サーバの処理を第1のディーラ装置12Aによって実行する場合を示すが、鍵サーバは外部にあって、そこから乱数を得ても実行することも可能である。また、秘密情報bをもつオ-ナBの処理もディーラ装置12Bで行うが、鍵サーバが外部にあってそこから乱数を得ても実行することが可能である。また、ディーラ装置がh個の鍵サーバの処理を実行する場合、h個の鍵サーバが各々管理する鍵(全部でh個)をディーラ装置が管理する1つの鍵を用いて鍵サーバのIDを暗号化するなどして、それを各鍵サーバの鍵としてもよい。この場合、ディーラ装置は1つの鍵を管理するだけでh台分の鍵サーバの役割を果たすことができる(具体例は後述の特徴参照)。
<Seventh embodiment>
Secret multiplication 1 '(Asymmetric secret sharing)
A secret multiplication method suitable for asymmetric secret sharing described in the literature [4] is shown below. Here, h represents the number of key servers for realizing miniaturization among integers from 1 to k-1. Here, it is assumed that the owner has the key server. The secret multiplication i ′ described below is a method corresponding to the secret multiplication i. In the following, a case where the owner A having the secret information a executes the processing of the h key servers by the first dealer apparatus 12A will be described. It is also possible to execute. Further, the dealer B 12B also processes the owner B having the secret information b, but it can be executed even if the key server is external and a random number is obtained therefrom. Further, when the dealer apparatus executes processing of h key servers, the key server ID is assigned to each key managed by the dealer apparatus by using one key managed by the dealer apparatus (a total of h keys). It may be encrypted and used as the key of each key server. In this case, the dealer device can play the role of h key servers by managing only one key (refer to the feature described later for a specific example).
[分散]
 秘密情報aをもつオ-ナAの第1のディーラ装置12AのCPU22は、図71の分散処理を実行する。即ち、ステップ572で、分散値Wa(x)~Wa(x)(hはk-1以下の整数)として、管理する1つの鍵からh個の乱数を生成する。生成した乱数は、分散値Wa(x)~Wa(x)として、第1のディーラ装置12Aの記憶装置34に記憶される。
[dispersion]
The CPU 22 of the first dealer device 12A of the owner A having the secret information a executes the distributed processing of FIG. That is, in step 572, h random numbers are generated from one key to be managed as variance values Wa (x 1 ) to Wa (x h ) (h is an integer equal to or less than k−1). The generated random numbers are stored in the storage device 34 of the first dealer 12A as the variance values Wa (x 1 ) to Wa (x h ).
 ステップ574で、秘密情報aに対して、k-1-h個の乱数a0,h+1~a0,k-1を定め、分散値Wa(x)~Wa(x)を以下の多項式として解いて残りのh個の乱数a0,1~a0,h-1を求める。
 Wa(x)=a+a0,1+・・・+a0,k-1 k-1(i=1,・・・,h)
In step 574, k-1-h random numbers a 0, h + 1 to a 0, k-1 are determined for the secret information a, and the variance values Wa (x 1 ) to Wa (x h ) are set to the following polynomials: To obtain the remaining h random numbers a 0,1 to a 0, h-1 .
Wa (x i ) = a + a 0,1 x i +... + A 0, k−1 x i k−1 (i = 1,..., H)
 ステップ576で、aとa0,1~a0,k-1を用いて、以下の式から第(h+1)のサーバ14x(h+1)~第nのサーバ14xの分散値Wa(xi)を求める。
Wa(x)=a+a0,1xi+・・・+a0,k-1 k-1(i=h+1,・・・,n)
In step 576, using the a and a 0,1 ~ a 0, k- 1, from the following formula the (h + 1) of the server 14x (h + 1) ~ variance server 14x n of the n Wa (xi) Ask.
Wa (x i ) = a + a 0,1 xi +... + A 0, k−1 x i k−1 (i = h + 1,..., N)
 ステップ578で、ステップ576で求めら分散値Wa(x)を第(h+1)のサーバ14x(h+1)~第nのサーバ14xに送信する。 In step 578, the variance value Wa (x i ) obtained in step 576 is transmitted to the (h + 1) -th server 14x (h + 1) to the n-th server 14x n .
 また、秘密情報bを持つオ-ナBの第2のディーラ装置12BのCPU22は、上記説明した図71のステップ572~ステップ578の各処理を独立に実行し、自らの分散値Wb(x)~Wb(x)と、第(h+1)のサーバ14x(h+1)~第nのサーバ14xnの分散値W(xh+1)~W(x)を求め、第(h+1)のサーバ14x(h+1)~第nのサーバ14xに送信する。ただし、上記乱数a0,iはb0,iになる。 Further, the CPU 22 of the second dealer apparatus 12B of the owner B having the secret information b executes each of the above-described steps 572 to 578 of FIG. 71 independently to determine its own distributed value Wb (x 1 ) To Wb (x h ) and the variance values W b (x h + 1 ) to W b (x n ) of the (h + 1) th server 14x (h + 1) to the n th server 14xn, and the (h + 1) th server 14x (h + 1) to the server 14x n th to n. However, the random number a 0, i is b 0, i .
[乗算]
 第1のディーラ装置12AのCPU22は、図72の乗算処理を実行する。即ち、ステップ582で、k個の乱数α(i=1,・・・,k)を生成し、ステップ584で、その積α=α・α・…αを計算する。
[Multiplication]
The CPU 22 of the first dealer 12A executes the multiplication process of FIG. That is, in step 582, k random numbers α i (i = 1, ··· , k) to generate, in step 584, calculates the product α = α 1 · α 2 · ... α k.
 ステップ586で、自身の第1のディーラ装置12Aを含むk個のサ-バから分散値Wa(xi)を集め、ステップ588で、k個の分散値Wa(x)を解き、aを求め、ステップ600で、aにαをかけたαaを求め、ステップ602で、αaを第1のサーバ14x1~第nのサーバ14x及び第2のディーラ装置12Bに送信する。なお、第1のディーラ装置12Aの記憶装置34にk個の乱数αを記憶する。 In step 586, the variance values Wa (xi) are collected from the k servers including the first dealer device 12A, and in step 588, the k variance values Wa (x i ) are solved to obtain a. in step 600, determine the αa multiplied by α to a, in step 602, and transmits the αa to the first server 14X1 ~ server 14x n and second dealer apparatus 12B of the second n. Note that k random numbers α i are stored in the storage device 34 of the first dealer 12A.
 第2のディーラ装置12BのCPU22は、図73の乗算処理を実行する。即ち、ステップ612で、k個の乱数β(i=1,・・・,k)を生成し、ステップ614で、その積β=β・β・…βを計算する。 The CPU 22 of the second dealer 12B executes the multiplication process shown in FIG. That is, in step 612, k random numbers β i (i = 1, ··· , k) to generate, in step 614, calculates the product β = β 1 · β 2 · ... β k.
 ステップ616で、自身の第2のディーラ装置12Bを含むk個以上のサ-バから分散値Wb(x)を集め、ステップ618で、以下を計算する。ただし、δ(x)はδ(0)=0となるk-1次の多項式である。
Wab’(x)=αa・β・Wb(x)+δ(x
At step 616, the variance value Wb (x i ) is collected from k or more servers including its second dealer device 12B, and at step 618, the following is calculated. However, δ (x) is a k−1 order polynomial in which δ (0) = 0.
Wab ′ (x i ) = αa · β · Wb (x i ) + δ (x i )
 ステップ620で、分散値Wab’(x)を、元のサーバに送信する。なお、第2のディーラ装置12Bの記憶装置34にk個の乱数βを記憶する。 In step 620, the variance value Wab ′ (x i ) is transmitted to the original server. Note that k random numbers β i are stored in the storage device 34 of the second dealer 12B.
[復元]
 第1のディーラ装置12Aは、自身の第1のディーラ装置12A及び第2のディーラ装置12Bを含むk個のサ-バx(j=1,・・・,k)にαを送信する。第2のディーラ装置12Bは、自身の第2のディーラ装置12Bと第1のディーラ装置12Aを含むk個のサ-バxj(j=1,・・・,k)にβを送信する。
[Restore]
The first dealer apparatus 12A transmits α j to k servers x j (j = 1,..., K) including its own first dealer apparatus 12A and second dealer apparatus 12B. . The second dealer apparatus 12B transmits β j to k servers xj (j = 1,..., K) including the second dealer apparatus 12B and the first dealer apparatus 12A.
 ここで、k個のサ-バxには、第1のディーラ装置12A、第2のディーラ装置12B、及び第1のサーバ12x~第(k-2)サーバ12xk-2が含まれる。ここでは簡単のため、j=k-1で、第1のディーラ装置12Aが識別され、j=kで、第2のディーラ装置12Bが識別されるとする。よって、第1のディーラ装置12Aには、α=αk-1、β=βk-1が送信され、第2のディーラ装置12Bには、α=α、β=βが送信される。 Here, the k servers x j include the first dealer device 12A, the second dealer device 12B, and the first server 12x 1 to the (k-2) th server 12x k-2. . Here, for simplicity, it is assumed that the first dealer apparatus 12A is identified by j = k−1, and the second dealer apparatus 12B is identified by j = k. Therefore, the first dealer device 12A, α j = α k- 1, β j = β k-1 is transmitted, the second dealer device 12B, α j = α k, β j = β k Is sent.
 上記k個のサ-バxj(j=1,…,k)のCPU22は、図74のαjβjの計算・送信処理を実行する。即ち、ステップ622で、第1のディーラ装置からα(=αk-1)を受信し、ステップ624で、第2のディーラ装置からβを受信し、ステップ626で、積αβを計算する。ステップ628で、Wab’(x)とαβを復元装置16に送信する。 The CPUs 22 of the k servers xj (j = 1,..., K) execute αjβj calculation / transmission processing of FIG. That is, α j (= α k−1 ) is received from the first dealer device at step 622, β j is received from the second dealer device at step 624, and the product α j β j is received at step 626. Calculate In step 628, Wab ′ (x j ) and α j β j are transmitted to the restoration device 16.
 復元者の復元装置16のCPU22は図75の復元処理を実行する。即ち、ステップ630で、第1のディーラ装置12A及び第2のディーラ装置12Bを含むk個のサーバから、Wab’(x)、αβを受信し、ステップ632で、Wab’(x)からαβabを復元する。復元装置16は、ステップ634で、αβabをαβ(j=1,・・・,k)で割ってabを得る。 The CPU 22 of the restoring device 16 of the restoring person executes the restoring process of FIG. That is, in step 630, Wab ′ (x j ) and α j β j are received from k servers including the first dealer device 12A and the second dealer device 12B, and in step 632, Wab ′ (x Restore αβab from j ). In step 634, the restoration device 16 divides αβab by α j β j (j = 1,..., K) to obtain ab.
 以上説明した提案方式の第1の特徴は、[分散]の図71のステップ572において、第1のディーラ装置12A及び第2のディーラ装置12Bが各々鍵を1つ管理するだけで、h台のサ-バが保存すべきだった分散値を削減できる点である。例えばサ-バIDであるx1~xhを第1のディーラ装置12Aの鍵を用いて暗号化したものをk(j=1,・・・,h)とし、k用いてaのIDを暗号化したものをWa(x)とすることができる。即ち、第1のディーラ装置12Aは鍵1つを持つだけで[分散]の図71の処理が実現できる。第2のディーラ装置12Bも同様である。すなわち、第1のディーラ装置12Aと第2のディーラ装置12Bは分散値を保存しなくても計算によって求められるため、h台のサーバを不要にできる。これは、非対称秘密分散の特徴であるが、上記秘匿乗算においても有効であることがわかる。 The first feature of the proposed method described above is that, in step 572 of [Distribution] in FIG. 71, the first dealer apparatus 12A and the second dealer apparatus 12B only manage one key, respectively. The dispersion value that the server should have saved can be reduced. For example, k j (j = 1,..., H) obtained by encrypting the server IDs x1 to xh using the key of the first dealer apparatus 12A is set, and the ID of a is set using k j. The encrypted data can be defined as Wa (x i ). That is, the first dealer apparatus 12A can realize the [distributed] process of FIG. 71 by only having one key. The same applies to the second dealer 12B. That is, since the first dealer apparatus 12A and the second dealer apparatus 12B are obtained by calculation without storing the variance value, h servers can be eliminated. This is a feature of asymmetric secret sharing, but is also effective in the above-mentioned secret multiplication.
 第2の特徴は、請求項12に示すように上記特徴をもつシステムにおいて、ステップ572に示されるようにh個の乱数を分散値として、ステップ574で残りのサーバに対する分散値を計算する点である。よって、[分散]の図71のステップ578で1つの秘密情報aに対して、n-h台の各サ-バは1台当たり1個の分散値Wa(x)を記憶するだけでよい。秘匿乗算1では、aに対して全サ-バがk+1個の分散値(Wa’(x),Wah(x)(h=1,・・・.k))を記憶する必要があったが、秘匿乗算1’ではn-h台のサーバが1個のWa(xi)を記憶するだけでよい。る。よって、第1の特徴と合わせると、第7の実施の形態の分散は、秘匿乗算1に比べ大幅な記憶容量の削減が実現できる。以上が非対称秘密分散による記憶容量削減の特徴である。また、記憶容量削減に伴う通信量も削減できる。 The second feature is that, in the system having the above feature as set forth in claim 12, h random numbers are used as variance values as shown in step 572, and variance values for the remaining servers are calculated in step 574. is there. Therefore, in step 578 of [Distribution] in FIG. 71, for each secret information a, each of the n−h servers only needs to store one distribution value Wa (x i ) per one. . In the secret multiplication 1, all servers need to store k + 1 variance values (W a (x i ), Wah (x i ) (h = 1,... K)) for a. However, in the secret multiplication 1 ′, n−h servers need only store one Wa (xi). The Therefore, when combined with the first feature, the distribution of the seventh embodiment can realize a significant reduction in storage capacity compared to the secret multiplication 1. The above is the feature of the storage capacity reduction by the asymmetric secret sharing. In addition, the amount of communication associated with the reduction in storage capacity can be reduced.
 秘匿乗算1では[分散]においてディーラ装置Aはn個のサ-バにk+1個の分散値を送る必要があった。これに対し、秘匿乗算1’では[分散]の図71のステップ578においてディーラ装置Aがn-h個のサ-バに1個の分散値を送るだけでよい。さらに、秘匿乗算1の[復元]ではk個のサ-バがk個の分散値を集める必要があるが、秘匿乗算1’では請求項12に示すように第1のディーラ装置12Aがステップ582でk個の乱数を生成し、k台のサ-バに各々1つの乱数を送信するだけでよい。ただし、その乱数はステップ584で合成され、ステップ600で秘匿化秘密情報αaを生成するために用いられる。これによって、通信量も大きく削減できることがわかる。[乗算]の図73のステップ616、ステップ618でWb(x)を集めてWab’(x)を送信するため2(n―h)回通信が増えるが、全体的には削減される。 In the secret multiplication 1, in [distribution], the dealer apparatus A needs to send k + 1 dispersion values to n servers. On the other hand, in the secret multiplication 1 ′, the dealer apparatus A only has to send one variance value to n−h servers in step 578 of FIG. Furthermore, in the [restoration] of the secret multiplication 1, it is necessary for the k servers to collect k dispersion values. In the secret multiplication 1 ′, the first dealer 12A performs step 582 as shown in claim 12. It is only necessary to generate k random numbers and transmit one random number to each of k servers. However, the random number is synthesized in step 584 and used in step 600 to generate the concealment secret information αa. As a result, it can be seen that the amount of communication can be greatly reduced. In Steps 616 and 618 in FIG. 73 of [Multiply], Wb (x i ) is collected and Wab ′ (x i ) is transmitted, so that the number of communications increases 2 (n−h) times, but the overall reduction is achieved. .
 計算量に関しては、秘匿乗算1[分散]においてk個のαの分散処理と[復元]においてその復元処理が不要になるが、秘匿乗算1’では[分散]の図71のステップ572において乱数生成(暗号化)とステップ574において多項式を解く処理が増す。よって、計算量に関してk,nの値により得失は拮抗する。 Regarding the calculation amount, the k α j distribution processing in the secret multiplication 1 [dispersion] and the restoration processing in the [restoration] are unnecessary, but in the secret multiplication 1 ′, a random number is obtained in step 572 of FIG. 71 of [distribution]. Generation (encryption) and processing to solve the polynomial in step 574 increase. Therefore, the profit and loss are antagonized by the values of k and n with respect to the calculation amount.
 秘匿除算1において、秘密情報の[分散]処理を秘匿乗算1’と同様に実行し、α(j=1,・・・,k)などのk個の乱数及びそれを合成した乱数の生成、及びαa及びWab’(xi)の生成を秘匿乗算1’[乗算]と同様に演算中に行い、k個の乱数の配布を[復元]と同様にディーラ装置が直接行えば、そのまま秘匿除算1’が実現できることは明らかである。ただし、ステップ616ではWab’(x)=αa・β・Wb(x)+δ(x)ではなく、Wab’(x)=(β/αa)・Wb(x)+δ(x)を計算し、ステップ626でαjβjではなくβj/αjを計算する。 In the secret division 1, the [distribution] process of the secret information is executed in the same manner as the secret multiplication 1 ′, and k random numbers such as α j (j = 1,..., K) and a random number generated by synthesizing them are generated. , And αa and Wab ′ (xi) are generated during computation in the same way as the secret multiplication 1 ′ [multiplication], and if the dealer directly performs distribution of k random numbers in the same manner as [restoration], the secret division is performed as it is. It is clear that 1 'can be realized. However, in step 616, not Wab ′ (x i ) = αa · β · Wb (x i ) + δ (x i ), but Wab ′ (x i ) = (β / αa) · Wb (x i ) + δ (x i ) and β j / α j instead of α j β j in step 626.
 秘匿除算3’(非対称秘密分散及び実数対応)
 実数による除算も以下のようにすれば実現できることも明らかである。以下では、b/aを計算する場合を説明する。
[分散]
 図76を参照して、第1のディーラ装置12A、第2のディーラ装置12B、サーバx及び復元装置16が実行する復元処理を説明する。なお、サーバxには、後述する特定の1台のサーバxが含まれる。
 秘匿除算3’の[分散]は、非対称秘密分散対応(図71)と同様であるので、その説明を省略する。
Secret division 3 '(asymmetric secret sharing and real number correspondence)
It is also clear that division by a real number can be realized as follows. Hereinafter, a case where b / a is calculated will be described.
[dispersion]
Referring to FIG. 76, the first dealer apparatus 12A, the restoration process a second dealer device 12B, server x j and decompression apparatus 16 executes will be described. The server x j includes a specific server x d described later.
[Distribution] of the concealment division 3 ′ is the same as that for the asymmetric secret distribution (FIG. 71), and the description thereof is omitted.
[復元]
 第1のディーラ装置12Aは、ステップ642で、自身の第1のディーラ装置12Aが生成した実数αjを、k個のサーバx(j=1,…,k)に各々送信する。
 第2のディーラ装置12Bは、ステップ644で、自身の第2のディーラ装置12Bが生成した実数βjを、k個のサーバx(j=1,…,k)に各々送信する。
 各サ-バ14xj(j=1,…,k)は、ステップ646で、β/αを実数として計算し、ステップ648で、復元装置16にβ/αを送信する。
[Restore]
In step 642, the first dealer device 12A transmits the real number αj generated by its first dealer device 12A to each of the k servers x j (j = 1,..., K).
In step 644, the second dealer apparatus 12B transmits the real number βj generated by its own second dealer apparatus 12B to each of the k servers x j (j = 1,..., K).
Each server 14xj (j = 1,..., K) calculates β j / α j as a real number at step 646 and transmits β j / α j to the restoration device 16 at step 648.
 復元装置16は、ステップ650で、β/α(j=1,…,k)を実数として掛けてβ/αを計算する。 In step 650, the restoration device 16 multiplies β j / α j (j = 1,..., K) as a real number to calculate β / α.
 第1のディーラ装置12Aは、ステップ654で、サーバx(合計k個の装置)からWa(x)を集め、aを復元して実数化し、ステップ656で、実数αjからαを実数計算して、さらにαaを計算し、ステップ658で、特定のサーバxにαaを送信する。 The first dealer apparatus 12A collects Wa (x i ) from the server x j (a total of k apparatuses) in step 654, restores a to a real number, and in step 656, converts the real number α j to a real number. In addition, αa is calculated, and αa is transmitted to a specific server xd in step 658.
 第2のディーラ装置12Bは、ステップ660で、サーバxからWb(xi)を集め、bを復元して実数化し、ステップ662で、実数βjからβを実数計算して、さらにβbを計算し、ステップ664で、特定のサーバxにβbを送信する。 Second dealer apparatus 12B, in step 660, collects Wb (xi) from the server x j, and real numbers of restoring the b, in step 662, then real number calculating a beta from real beta j, further calculates the βb In step 664, βb is transmitted to the specific server xd .
 特定のサーバxは、ステップ666で、βbをαaで実数として割り、ステップ668で、βb/αaを復元装置16に送信する。 The specific server xd divides βb as a real number by αa in step 666 and transmits βb / αa to the restoration device 16 in step 668.
 復元装置16は、ステップ670で、βb/αaをβ/αで割り実数、計算しb/aを得る。
 実数演算に関して乗算や加算、積和にも同様に対応できることは明らかである。
In step 670, the restoring device 16 divides βb / αa by β / α and calculates a real number to obtain b / a.
It is clear that multiplication, addition, and product-sum can be handled in the same way for real number operations.
 以上説明した例では、第1のディーラ装置12Aは、実数αを、サーバxに送信し、第2のディーラ装置12Bは、実数βを、サーバxに送信する。即ち、第1のディーラ装置12Aは、実数αを、第2のディーラ装置12Bには送信せず、また、第2のディーラ装置12Bは、実数βを、第1のディーラ装置12Aに送信していない。しかし、第1のディーラ装置12Aは、実数αを、第2のディーラ装置12Bと、合計k-1個のサーバに送信し、第2のディーラ装置12Bは、実数βを、第1のディーラ装置12Aと、合計k-1個のサーバに送信して、以上と同様の処理をしてもよい。以下も同様である。 In the example described above, the first dealer device 12A transmits the real number α j to the server x j , and the second dealer device 12B transmits the real number β j to the server x j . That is, the first dealer device 12A does not transmit the real number α j to the second dealer device 12B, and the second dealer device 12B transmits the real number β j to the first dealer device 12A. Not done. However, the first dealer apparatus 12A transmits the real number α j to the second dealer apparatus 12B and a total of k−1 servers, and the second dealer apparatus 12B transmits the real number β j to the first number The same processing as described above may be performed by transmitting to the dealer apparatus 12A and a total of k-1 servers. The same applies to the following.
 秘匿積和1’(非対称秘密分散対応)
 演算の繰り返しに関して、秘匿積和は種々の演算に用いられるので、改めて非対称秘密分散を用いた場合を示す。これによって、かかる乱数が異なる秘匿分散値同士の和や乱数を変換した復元も同様に実現できることは明らかである。また、秘匿乗算2や秘匿除算2などの繰り返しも同様に実現できることは明らかである。
 なお、以下では、a・b+cを計算する場合を説明する。
Secret product sum 1 '(Asymmetric secret sharing)
Since the secret product sum is used for various calculations regarding the repetition of the calculation, a case where asymmetric secret sharing is used again will be shown. As a result, it is clear that the sum of the secret sharing values having different random numbers and the restoration by converting the random numbers can be similarly realized. In addition, it is obvious that the repetition such as the secret multiplication 2 and the secret division 2 can be similarly realized.
Hereinafter, a case where a · b + c is calculated will be described.
[分散]
 オ-ナA,B,Cの各指示に従って、各々の第1のディーラ装置12A~第3のディーラ装置12Cは、秘密情報a,b,cに対して独立に以下の分散値を計算し、n台のサ-バ14x~14xに分散保管する(i=1,…,n)。すなわち、第3のディーラ装置14CのCPU22も図71の分散処理を実行する。なお、a0,jはc0,jとなる。
Wa(x)=a+a0,1+・・・+a0,k-1 k-1
Wb(x)=b+b0,1+・・・+b0,k-1 k-1
Wc(x)=c+c0,1+・・・+c0,k-1 k-1
[dispersion]
In accordance with each instruction of the owners A, B, and C, each of the first dealer devices 12A to 12C independently calculates the following variance values for the secret information a, b, and c, Distributedly stored in n servers 14x 1 to 14x n (i = 1,..., n). That is, the CPU 22 of the third dealer apparatus 14C also executes the distributed processing of FIG. Note that a 0, j is c 0, j .
Wa (x i ) = a + a 0,1 x i +... + A 0, k−1 x i k−1
Wb (x i ) = b + b 0,1 x i +... + B 0, k−1 x i k−1
Wc (x i ) = c + c 0,1 x i +... + C 0, k−1 x i k−1
[積和]
 図77を参照して、第1のディーラ装置14A~第3のディーラ装置14C、サーバx、及び復元装置16のCPU22が実行する積和処理及び復元処理を説明する。即ち、秘匿乗算1’の[分散]及び[乗算](図71及び図72の処理)を実行する。サ-バ14x(j=1,…,k)は、αaを受信し(図77のステップ602(図72も参照))、Wab’(x)=αa・β・Wb(x)+δ(x)を得る(図77のステップ620参照)。
[Product sum]
With reference to FIG. 77, the sum-of-product process and the restoration process executed by the CPU 22 of the first dealer apparatus 14A to the third dealer apparatus 14C, the server x j , and the restoration apparatus 16 will be described. That is, the [distribution] and [multiplication] of the secret multiplication 1 ′ (the processes in FIGS. 71 and 72) are executed. The server 14x i (j = 1,..., K) receives αa (step 602 in FIG. 77 (see also FIG. 72)), and Wab ′ (x j ) = αa · β · Wb (x i ) + Δ (x i ) is obtained (see step 620 in FIG. 77).
 第3のディーラ装置12Cは、図77のステップ672で、k個の乱数γi(i=1,・・・,k)を生成し、その積γを計算する。 The third dealer 12C generates k random numbers γi (i = 1,..., K) in step 672 of FIG. 77 and calculates the product γ.
 第3のディーラ装置12Cは、ステップ674で、k個のサーバxから分散値Wc(x)を集めて、ステップ676で、以下の分散値Wc’(x)を計算し、ステップ678で、サーバxに分散値Wc’(x)送信する。ただし、δ2(x)はδ2(0)=0となるk-1次の多項式。
 Wc’(x)=γ・Wc(x)+δ2(x
The third dealer 12C collects the variance value Wc (x i ) from the k servers x j in Step 674, calculates the following variance value Wc ′ (x i ) in Step 676, and performs Step 678. Then, the distributed value Wc ′ (x i ) is transmitted to the server x j . However, δ2 (x) is a k−1 order polynomial in which δ2 (0) = 0.
Wc ′ (x i ) = γ · Wc (x i ) + δ 2 (x i )
 ディーラ装置12A,12B,12Cはそれぞれステップ678、680、682で、k個のサーバx(j=1,・・・,k)にそれぞれのα,γjを送信する。 The dealer apparatuses 12A, 12B, and 12C transmit α j , β j , and γ j to the k servers x j (j = 1,..., K) in steps 678, 680, and 682, respectively.
 サーバx(j=1,…,k)は、ステップ684で、乱数μを生成し、αβ/μを計算し、ステップ686で、αβ/μを復元装置16に送信する。サーバxjは、ステップ688で、γ/μを計算し、ステップ690で、γ/μを復元装置16に送信する。 The server x j (j = 1,..., K) generates a random number μ j in step 684, calculates α j β j / μ j , and in step 686 restores α j β j / μ j. 16 to send. The server xj calculates γ j / μ j in step 688 and transmits γ j / μ j to the restoration device 16 in step 690.
 復元装置16は、ステップ692で、各αβ/μとαβ/μをかけて、αβ/μとγ/μとを計算し、ステップ694で、αβ/μとγ/μとをサーバxに送信する。 The restoring device 16 multiplies each α j β j / μ j and α j β j / μ j in step 692 to calculate αβ / μ and γ / μ, and in step 694, αβ / μ and γ / μ and to send to the server x j.
 サーバxj(j=1,…,k)は、ステップ696で、Wab’(x)をαβ/μで割り、Wc’(xj)をγ/μで割り、Wab’(x)=μ(ab+ab0,1+・・・+ab0,k-1^k-1)とWc’(x)=μ(c+c0,1+・・・+c0,k-1 k-1)を計算する。 In step 696, the server xj (j = 1,..., K) divides Wab ′ (x j ) by αβ / μ, Wc ′ (xj) divides by γ / μ, and Wab ′ (x j ) = μ. (Ab + ab 0,1 x j +... + Ab 0, k−1 x j ^ k−1 ) and Wc ′ (x j ) = μ (c + c 0,1 x i +... + C 0, k−1 x i k−1 ) is calculated.
 サーバx(j=1,…,k)は、ステップ698で、Wabc’(x)=Wab’(x)+Wc’(x)=μ{(ab+c)+abc0,1xi+・・・+abc0,k-1xik-1}を計算する。 In step 698, the server x j (j = 1,..., K) is Wabc ′ (x j ) = Wab ′ (x j ) + Wc ′ (x j ) = μ {(ab + c) + abc 0,1 xi +. Calculate + abc 0, k-1 xi k-1 }.
[復元]
 復元者の復元装置16は、ステップ701で、サーバxからWabc’(xj)を得て、ステップ703で、μ(ab+c)を復元する。
 復元装置16は、ステップ705で、サーバxからμを得て、ステップ707で、(ab+c)を計算する。
[Restore]
Restoration device 16 for restoring user, at step 701, to obtain Wabc '(xj) from the server x j, in step 703, restores the μ (ab + c).
In step 705, the restoration device 16 obtains μ j from the server x j and calculates (ab + c) in step 707.
 秘匿積和1’は、秘匿積和1に対応しても、α(j=1,・・・.k)などのk個の乱数が不要であるため、大きな記憶容量の削減が実現できる。また、それに伴う通信量の削減も実現できる。また、ここではμを用いて乱数変換を行ったが、例えばαjβjjを計算することにより、Wc’(xj)のみγをαβに乱数変換して、乱数をαβにそろえてもよい。 Even if the secret product sum 1 ′ corresponds to the secret product sum 1, k random numbers such as α j (j = 1,... K) are unnecessary, and thus a large reduction in storage capacity can be realized. . In addition, the communication amount can be reduced accordingly. In addition, although random number conversion was performed using μ here, for example, by calculating α j β j / γ j , only Wc '(x j ) converts γ to αβ and aligns the random numbers to αβ. May be.
 秘匿乗算4’
 秘密情報として0を扱う秘匿乗算4に対しても以下のように変形すれば、秘匿乗算4’への対応も可能である。
Secret multiplication 4 '
If the secret multiplication 4 that handles 0 as the secret information is modified as follows, the secret multiplication 4 ′ can be handled.
[分散]
秘匿乗算1’(図71)と同じであるので(図78のステップ578も参照)、その説明を省略する。
 図78(ステップ672以降)を参照して、サーバx及び復元装置16が実行する秘匿乗算(乗算及び復元)処理を説明する。
[dispersion]
Since this is the same as the concealment multiplication 1 ′ (FIG. 71) (see also step 578 in FIG. 78), the description thereof is omitted.
With reference to FIG. 78 (after step 672), the secret multiplication (multiplication and restoration) processing executed by the server xj and the restoration device 16 will be described.
[乗算]
 第1のディーラ装置12Aは、ステップ672で、k個の乱数α(i=1,・・・,k)を生成し、その積αを計算する。第2のディーラ装置12Bは、ステップ674で、k個の乱数β(i=1,・・・,k)を生成し、その積βを計算する。
 第1のディーラ装置12Aは、ステップ676で、k個のサーバxから分散値Wa(x)を集め、ステップ678で、サ-バIDn+xiに対応する分散値Wa(x(n+xi))を計算し、ステップ680で、その分散値Wa(x(n+xi))にαをかけた分散値Wa’(x)をサーバxに送信する。
[Multiplication]
In step 672, the first dealer apparatus 12A generates k random numbers α i (i = 1,..., K) and calculates the product α. In step 674, the second dealer apparatus 12B generates k random numbers β i (i = 1,..., K) and calculates the product β.
The first dealer 12A collects the variance value Wa (x i ) from the k servers x j in step 676, and in step 678, the variance value Wa (x (n + xi) ) corresponding to the server ID n + xi. In step 680, the variance value Wa ′ (x i ) obtained by multiplying the variance value Wa (x (n + xi) ) by α is transmitted to the server x j .
 第2のディーラ装置12Bは、ステップ682で、k個のサーバxjから分散値Wb(x)を集めて、ステップ684で、サ-バIDn+xiに対応する分散値Wb(x(n+x))を計算し、ステップ686で、その分散値Wb(x(n+xi))にβをかけた分散値Wb’(x)をサーバxjに送信する。 The second dealer 12B collects the variance value Wb (x i ) from the k servers xj in step 682, and in step 684, the variance value Wb (x (n + x i ) corresponding to the server ID n + xi. ), And in step 686, the variance value Wb ′ (x i ) obtained by multiplying the variance value Wb (x (n + xi) ) by β is transmitted to the server xj.
 サーバxは、ステップ688で、Wab(x)=Wa(x)・Wb(x)とWab’(x)=Wa’(x)・Wb’(x)を計算する(i=1,…,n)。 In step 688, the server x j calculates Wab (x i ) = Wa (x i ) · Wb (x i ) and Wab ′ (x i ) = Wa ′ (x i ) · Wb ′ (x i ). (I = 1,..., N).
[復元]
 第1のディーラ装置12Aは、ステップ690で、第2のディーラ装置12Bを含むk個のサーバx(j=1,・・・,k)にαを送信する。
[Restore]
In step 690, the first dealer apparatus 12A transmits α j to k servers x j (j = 1,..., K) including the second dealer apparatus 12B.
 第2のディーラ装置12Bは、ステップ692で、第1のディーラ装置12Aを含むk個のサーバx(j=1,・・・,k)にβを送信する。
 サーバx(j=1,…,k)は、ステップ694で、積αβを計算する。
 サーバx(j=1,…,k)は、ステップ696で、Wab(x)とWab’(x)とαβを復元者の復元装置16に送信する。
In step 692, the second dealer apparatus 12B transmits β j to k servers x j (j = 1,..., K) including the first dealer apparatus 12A.
In step 694, the server x j (j = 1,..., K) calculates the product α j β j .
In step 696, the server x j (j = 1,..., K) transmits Wab (x j ), Wab ′ (x j ), and α j β j to the restoring device 16 of the restoring person.
 復元装置16は、ステップ698で、全てのαβをかけてαβを計算し、Wab’(x)を割って、Wab’(x)/αβを計算する。
 復元装置16は、ステップ700で、Wab(x)とWab’(x)/αβから2k-1個の分散値を用いてabを復元する。
 秘匿乗算5に関しても演算中、αなどと同様にr,qを処理すればよい。[次数変換]に関しても、αを直接ディーラ装置からもらうようにすればよい。
 秘匿更新1については以下のようにする。非対称秘密分散の特徴の1つはオ-ナが秘匿
Restoring device 16, at step 698, to calculate the .alpha..beta over all α j β j, 'by dividing the (x j), Wab' Wab calculating the (x j) / αβ.
In step 700, the restoration device 16 restores ab using 2k−1 variance values from Wab (x j ) and Wab ′ (x j ) / αβ.
Regarding the secret multiplication 5, r j and q j may be processed in the same manner as α j and β j during the calculation. Regarding [order conversion], α j and β j may be obtained directly from the dealer.
Concealment update 1 is performed as follows. One feature of asymmetric secret sharing is that the owner keeps it secret
演算に参加可能という点である。よって、k-1台のサ-バをオ-ナとし、オ-ナが直接他のサ-バに対する差分値を計算すればサ-バxは不要となる。オ-ナの計算負荷は増えるが、オ-ナは異なる乱数を今までの鍵を用いて出力する、または自分が管理する鍵を変えて異なる乱数を出力するだけで更新ができる。秘匿更新2~5においてもオーナが更新処理(乱数発生と計算処理など)を行えば安全性は向上する。 It is possible to participate in the calculation. Therefore, if the k-1 servers are the owner, and the owner directly calculates the difference value with respect to the other servers, the server x k becomes unnecessary. Although the owner's computational load increases, the owner can update by outputting different random numbers using the existing keys, or by changing different keys managed by himself and outputting different random numbers. In the secret updates 2 to 5, if the owner performs update processing (random number generation and calculation processing, etc.), the safety is improved.
秘匿検索2’(検索サーバ18を利用する)
 秘匿検索に対しても、T(x)とR(x)のうちh個をオ-ナが1つの鍵から生成できるため、h台のサ-バの削減ができる。また、各サ-バが保存する情報も秘密情報に相当するkを秘匿化せずに秘密分散した分散値1つだけであるので、記憶容量は削減される。また、計算量もR(x)を解くことがないため削減される。
Secret search 2 '(using search server 18)
Also for the secret search, since the owner can generate h out of T j (x i ) and R j (x i ) from one key, h servers can be reduced. Further, since the information stored in each server is only one distributed value obtained by secretly distributing k j corresponding to the secret information without concealing it, the storage capacity is reduced. Also, the amount of calculation is reduced because R j (x i ) is not solved.
 ただし、乱数rに対する分散値R(x)が必要なため、他の実施例と同様にR(xi)も削除する場合は以下のようになる。これにより、非対称秘密分散では秘匿検索に対しても1つの秘密情報に対して1つの分散値を記憶していればよい。以下では実用的な秘匿検索2に対する手法を示すが、秘匿検索1に対しても同様の対応ができることは明らかである。 However, since the variance value R j (x i ) for the random number r j is required, the case where R j (xi) is also deleted as in the other embodiments is as follows. Thereby, in asymmetric secret sharing, only one shared value may be stored for one secret information for a secret search. In the following, a practical method for the secret search 2 is shown, but it is obvious that the same correspondence can be applied to the secret search 1.
[分散]
オ-ナの第1のディーラ装置12AのCPU22は、m個の秘密情報に対する検索IDをk(j=1,…,m)として、第7の実施の形態の秘匿乗算1’(図71のステップ572~578)の各処理を実行する。即ち、1つの鍵から下記の形を持つ自らの分散値T(x)~T(x)を生成し、それらと秘密情報を用いて他のサ-バxh+1~xが持つ分散値T(xh+1)~T(x)を求め、各サ-バに送る(hはk-1以下の整数)。ただし、分散値は検索IDであるkに応じて昇順に並べられているとする。
(x)=k+t’j1+t’j2 +…+t’jk-1 k-1
(i=1,…,n)
[dispersion]
The CPU 22 of the owner's first dealer apparatus 12A sets the search ID for m pieces of secret information as k j (j = 1,..., M), and the secret multiplication 1 ′ of the seventh embodiment (FIG. 71). Steps 572 to 578) are executed. That is, it generates its own distributed values T j (x 1 ) to T j (x h ) having the following form from one key, and other servers x h + 1 to x n are generated using these and secret information. The distributed values T j (x h + 1 ) to T j (x n ) are obtained and sent to each server (h is an integer equal to or less than k−1). However, it is assumed that the distributed values are arranged in ascending order according to the search ID k j .
T j (x i ) = k j + t ′ j1 x i + t ′ j2 x i 2 +... + T ′ jk−1 x i k−1
(I = 1, ..., n)
[検索]
 ユーザの復元装置16のCPU22は、図65のステップ482~490の処理を実行し、オーナの第1のディーラ装置12AのCPU22は、図79の分散値の計算・送信処理を実行し、第iのサーバ14xiのCPU22は、図80の差の計算・送信処理を実行し、検索サーバ18のCPU22は、図81の検索処理を実行する。なお、図79の分散値の計算・送信処理のステップ502~512は、図66のステップ502~512とほぼ同様である。
[Search]
The CPU 22 of the user restoration device 16 executes the processing of steps 482 to 490 in FIG. 65, and the CPU 22 of the owner's first dealer device 12A executes the dispersion value calculation / transmission processing of FIG. The CPU 22 of the server 14xi executes the difference calculation / transmission process of FIG. 80, and the CPU 22 of the search server 18 executes the search process of FIG. Note that steps 502 to 512 of the dispersion value calculation / transmission processing in FIG. 79 are substantially the same as steps 502 to 512 in FIG.
 検索を希望するユ-ザの復元装置16は、検索ID=k’に乱数qを乗じたq・k’をオ-ナの第1のディーラ装置12Aに送信する(図65のステップ482、484)。 The restoring device 16 of the user who wishes to search transmits q · k j ′ obtained by multiplying the search ID = k j ′ to the random number q to the owner's first dealer device 12A (step 482 in FIG. 65). 484).
 第1のディーラ装置12Aは、図79のステップ502で、q・kj’を受信し、ステップ504で、tとrを生成し、ステップ506で、t・rを計算し、ステップ508で、t・rを復元装置16に送信する。第1のディーラ装置12Aは、ステップ510で、q・k’にtをかけて以下の分散値F0を計算し、ステップ512で、分散値F0をサ-バに送信する。
o(x)=t・q・k’+bj1+bj2 +…+bjk-1 k-1
 よって、第iのサーバ14xは、図80のステップ522で、分散値Fo(x)を受信する。
The first dealer 12A receives q · kj ′ in step 502 of FIG. 79, generates t j and r in step 504, calculates t j · r in step 506, and in step 508 , T j · r are transmitted to the restoration device 16. The first dealer 12A calculates the following variance value F 0 by multiplying q · k j ′ by t j in step 510, and transmits the variance value F 0 to the server in step 512.
F o (x i ) = t j · q · k j '+ b j1 x i + b j2 x i 2 + ... + b jk-1 x i k-1
Therefore, the i-th server 14x i receives the variance value F o (x i ) in step 522 of FIG.
 復元装置16は、t・rにqをかけて以下の分散値F(x)を計算し(図65のステップ488)、分散値F(x)を各サ-バに送信する(ステップ490)。
(x)=t・r・q+cj1+cj2 +…+cjk-1 k-1
 よって、第iのサーバ14xは、図80のステップ524で、分散値F(x)を受信する。
The restoration device 16 multiplies t j · r by q to calculate the following variance value F u (x i ) (step 488 in FIG. 65), and transmits the variance value F u (x i ) to each server. (Step 490).
F u (x i ) = t j · r · q + c j1 x i + c j2 x i 2 +... + C jk−1 x i k−1
Accordingly, the i-th server 14x i receives the variance value F u (x i ) in step 524 of FIG.
 第iのサーバ14x(i=1、2、・・・k)は、ステップ525Aで、T(xi)を第1のディーラ装置12Aに送信する。第1のディーラ装置12Aは、図79のステップ513で、T(x)を、k個集めて、ステップ515で、以下の分散値T’(x)を計算し、ステップ517で、分散値T’(x)を第iのサーバ14xに送信する。 In step 525A, the i- th server 14x i (i = 1, 2,..., K) transmits T j (xi) to the first dealer 12A. The first dealer 12A collects k T j (x i ) in step 513 in FIG. 79, calculates the following variance value T ′ j (x i ) in step 515, and in step 517: , And the distributed value T ′ j (x i ) is transmitted to the i- th server 14 x i .
T’(x)=r・T(x)+δ(x
ただし、rはk毎に定まる乱数であり、δ(x)はδ(0)=0となるk-1次の多項式である。
T ′ j (x i ) = r j · T j (x i ) + δ (x i )
Here, r j is a random number determined for each k j , and δ (x i ) is a k−1 order polynomial in which δ (0) = 0.
 第iのサーバ14xは、図80のステップ527で、分散値T’(x)を受信する。 The i-th server 14x i receives the distributed value T ′ j (x i ) in step 527 of FIG.
 第1のディーラ装置12Aは、図79のステップ519で、r・rを第iのサーバ14xiに送信する。第iのサーバ14xiは、図80のステップ529で、r・rを受信し、ステップ530Aで、分散値T’(x)を検索サーバ18に送信する。 First dealer apparatus 12A transmits r · r j to i-th server 14xi in step 519 of FIG. The i-th server 14xi receives r · r j in step 529 of FIG. 80, and transmits the variance T ′ j (x i ) to the search server 18 in step 530A.
 検索サーバ18は、図81のステップ541で、T’(xi)を受信し、ステップ543で、r・kを計算し、ステップ545で、r・kを第iのサーバ14xに送信する。
 第iのサーバ14xiは、図80のステップ531で、r・kを受信し、ステップ533で、以下の差を計算して、ステップ535で、差を検索サーバ18に送信する。
r・k・F(x)-r・r・Fo(x)=t・r・r・q{(k-k’)+(cj1-bj1)x+…+(cjk-1-jk-1)x k-1}
Search server 18, at step 541 of FIG. 81, receives a T 'j (xi), in step 543, to calculate the r j · k j, in step 545, the server 14x of the i a r j · k j send to i .
The i-th server 14xi receives r j · k j in step 531 of FIG. 80, calculates the following difference in step 533, and transmits the difference to the search server 18 in step 535.
r j · k j · F u (x i )-r · r j · F o (x i ) = t j · r · r j · q {(k j- k j ') + (c j1- b j1 ) X i +... + (C jk−1− b jk−1 ) x i k−1 }
 検索サーバ18は、図81のステップ547で、差を受信し、ステップ549で、差の多項式を解いて定数項を求める。
 以後、検索サーバ18のCPU22は、ステップ551~563の処理を実行する。なお、ステップ551~563は、図68のステップ552~564に対応するので、その説明を省略する。なお、検索サーバ18が、図81のステップ561、563でjを指示すると、第iのサーバ14xiは、jの指示を受信し、これにより、図80のステップ537だ肯定判定され、差の計算・送信処理はステップ525Aに戻る。
The search server 18 receives the difference at step 547 of FIG. 81, and solves the difference polynomial to obtain a constant term at step 549.
Thereafter, the CPU 22 of the search server 18 executes the processing of steps 551 to 563. Since steps 551 to 563 correspond to steps 552 to 564 in FIG. 68, the description thereof is omitted. When the search server 18 instructs j in steps 561 and 563 of FIG. 81, the i-th server 14x i receives the instruction of j, so that an affirmative determination is made in step 537 of FIG. The calculation / transmission process returns to step 525A.
<第8の実施の形態>
 分散値の記憶容量を削減する手法としてランプ型秘密分散法が知られている。ランプ型秘密分散法は秘密情報SをL(≦k)個に分割してs1,・・・,sLとし、aL+1,・・・,ak-1を乱数としてk-1次多項式の係数とする。すなわち、以下の多項式を立て、W(xi)を第iのサーバ14xiの分散値とする。この場合、Sをdビットで素数p(>2d)未満の数とすると、siはd/Lビットで素数p’(>2d/L)未満の数となり、演算もp’を法として行えるので、分散値のサイズが1/Lになり記憶容量の削減が可能になる。
  W(x)=s1+s2x+・・・+sLxL+aL+1xL+1+・・・+ak-1xk-1
この場合、k-L個までの分散値を集めても乱数aiが残るため秘密情報は漏洩しないが、k-L+1以上の分散値を集めると乱数であるai(i=L+1,・・・,k-1)が失われるので、si(i=1,・・・, L)間の関係がわかることから、情報が部分的に漏洩する。最後に、k個の分散値がわかるとすべてのsiが特定されて、秘密情報Sが復元されるという特徴をもつ。
<Eighth Embodiment>
A ramp-type secret sharing method is known as a method for reducing the storage capacity of a distributed value. Ramp secret sharing scheme splits the secret information S to L (≦ k) number s 1, ···, and s L, a L + 1, k-1 ···, the a k-1 as a random number It is a coefficient of the second polynomial. That is, the following polynomial is established, and W (xi) is set as a variance value of the i-th server 14xi. In this case, if S is a number less than prime p (> 2 d ) in d bits, si becomes a number less than prime p '(> 2 d / L ) in d / L bits, and the operation is modulo p' Since this can be done, the size of the variance value becomes 1 / L and the storage capacity can be reduced.
W (x) = s 1 + s 2 x + ... + s L x L + a L + 1 x L + 1 + ... + a k-1 x k-1
In this case, even if up to kL distributed values are collected, the random information a i remains, so the secret information does not leak.However, if distributed values greater than or equal to k-L + 1 are collected, a i (i = L + 1, .., K-1) is lost, and the relationship between s i (i = 1,..., L) is known, so information partially leaks. Finally, if k variance values are known, all s i are specified, and the secret information S is restored.
秘匿乗算1”(ランプ型基本形)
 秘匿乗算1に対応するランプ型秘密分散を用いた秘匿乗算を以下に示す。ただし、秘密情報a,bをe進数d桁で表される素数p(>ed)未満の整数とし、a,bをL分割したah,j,bh,j、パラメータα,β,αj,βjなどは素数p’(>e(d/L))未満の整数とし、秘密分散に関する演算は素数q’(>p’u:uは1以上の整数)を法として行われる。以下に示す秘匿乗算1”において、上記以外は秘匿乗算1と同様である。よって、実数演算に対しても秘密情報a,b(実数)を整数表現してp以下の整数とすれば同様に対応できる。
Concealment multiplication 1 ”(basic lamp type)
A secret multiplication using ramp-type secret sharing corresponding to the secret multiplication 1 is shown below. However, the secret information a, b is an integer less than a prime number p (> e d ) expressed in e-adic d digits, and a, b are divided into L, a h, j , b h, j , parameters α, β, αj, βj, etc. are assumed to be integers less than the prime number p ′ (> e (d / L) ), and operations relating to secret sharing are performed modulo the prime number q ′ (> p ′ u : u is an integer of 1 or more). The secret multiplication 1 "shown below is the same as the secret multiplication 1 except for the above. Therefore, the secret information a and b (real numbers) are expressed as integers for real number operations, and the integers are equal to or less than p. Yes.
[分散]
 秘密情報aをもつオーナAの第1のディーラ装置12AのCPU22は、図82に示す分散処理を実行する。即ち、ステップ702で、素数p’未満のk個の乱数αiを生成し、q’を法としてその積αを計算する。
 α=α1・α2・・・αk
 ステップ704で、素数p未満の秘密情報aをL分散して素数p’未満のa0,0,・・・,a0,L-1とし、以下の分散値を計算する。
 Wa’(xi)=α(a0,0+a0,1xi+・・・+a0,k-1xi k-1)
 Wa1(xi)=α1+a1,1xi+・・・+a1,k-1xi k-1

 Wak(xi)=αk+ak,1xi+・・・+ak,k-1xi k-1
 ただし、ah,j(h=0,j=L,・・・,k-1とh=1,・・・,k、j=1,・・・,k-1)はp’未満の乱数,xiはq’未満のサーバID(i=1,…,n)である。
[dispersion]
The CPU 22 of the first dealer apparatus 12A of the owner A having the secret information a executes the distributed processing shown in FIG. That is, in step 702, k random numbers α i less than the prime number p ′ are generated, and the product α is calculated modulo q ′.
α = α 1・ α 2・ ・ ・ α k
  In step 704, the secret information a less than the prime number p is L-dispersed to be a 0,0 ,..., A 0, L-1 less than the prime number p ′, and the following variance value is calculated.
Wa '(x i ) = α (a 0,0 + a 0,1 x i + ... + a 0, k-1 x i k-1 )
Wa 1 (x i ) = α 1 + a 1,1 x i + ・ ・ ・ + a 1, k-1 x i k-1
:
Wa k (x i ) = α k + a k, 1 x i + ... + a k, k-1 x i k-1
However, a h, j (h = 0, j = L, ..., k-1 and h = 1, ..., k, j = 1, ..., k-1) is less than p ' Random numbers, x i, are server IDs less than q ′ (i = 1,..., N).
 ステップ706で、分散値Wa’(xi)、Wak(xi)を、第1のサーバ14x~第nのサーバ14に送信する。 In step 706, the variance values Wa ′ (x i ) and Wa k (x i ) are transmitted to the first server 14x 1 to the n-th server 14 n .
 秘密情報bをもつオーナBの第2のディーラ装置12BのCPU22は、図83に示す分散処理を実行する。即ち、ステップ712で、素数p’未満のk個の乱数βiを生成し、q’を法としてその積βを計算する。
 β=β1・β2・・・βk
The CPU 22 of the second dealer apparatus 12B of the owner B having the secret information b executes the distributed process shown in FIG. That is, in step 712, k random numbers β i less than the prime number p ′ are generated, and the product β is calculated modulo q ′.
β = β 1・ β 2・ ・ ・ β k
 ステップ714で、素数p未満の秘密情報bをL分散して素数p’未満のb0,0,・・・,b0,L-1とし、以下の分散値を計算する(Wa’(xi)とWah(xi)はqを法とする)。
 Wb’(xi)=β(b0,0+b0,1xi+・・・+b0,k-1xik-1)
 Wb1(xi)=β1+b1,1xi+・・・+b1,k-1xik-1

 Wbk(xi)=βk+bk,1xi+・・・+bk,k-1xik-1
 ただし、bh,j(h=0,j=L,・・・,k-1とh=1,・・・,k、j=1,・・・,k-1)はp’未満の乱数,xiはq’未満のサーバID(i=1,…,n)である。
In step 714, the secret information b less than the prime number p is L-dispersed into b 0,0 ,..., B 0, L-1 less than the prime number p ′, and the following variance value is calculated (Wa ′ (xi ) And Wah (xi) modulo q).
Wb '(xi) = β (b 0,0 + b 0,1 xi + ... + b 0, k-1 xi k-1 )
Wb 1 (xi) = β 1 + b 1,1 xi + ・ ・ ・ + b 1, k-1 xi k-1
:
Wb k (xi) = β k + b k, 1 xi + ・ ・ ・ + b k, k-1 xi k-1
However, b h, j (h = 0, j = L, ..., k-1 and h = 1, ..., k, j = 1, ..., k-1) is less than p ' A random number, xi, is a server ID (i = 1,..., N) less than q ′.
 ステップ716で、分散値Wb’(xi)、Wb1(x)~Wb(x)を第1のサーバ14x~第nのサーバ14xに送信する。 In step 716, the distributed values Wb ′ (xi), Wb 1 (x i ) to Wb k (x i ) are transmitted to the first server 14x 1 to the nth server 14x n .
[復元]
 図84を参照して、サーバシステムのサーバ及び復元装置16が実行する復元処理を説明する。サーバシステム内の1つの第dのサーバ14xdは、図84のステップ722で、他の第jのサーバ14x(j=1,・・・,k)からWa’(xi)をk個集め、ステップ724で、q’を法としてαa0,j (j=0,・・・,k-1)を復元し、桁合わせを考慮してαa0,jを加算しながらαaを計算する。
[Restore]
With reference to FIG. 84, the restoration process executed by the server of the server system and the restoration device 16 will be described. One d-th server 14xd in the server system collects k Wa ′ (x i ) from other j-th servers 14x j (j = 1,..., K) in step 722 of FIG. In step 724, αa 0, j (j = 0,..., K−1) is restored using q ′ as a modulus, and αa is calculated while adding αa 0, j in consideration of digit alignment.
 第dのサーバ14xdは、ステップ726で、他の第jのサーバ14x(j=1,・・・,k)からWb’(xi)をk個集め、ステップ728で、q’を法としてβb0,j (j=0,・・・,k-1)を復元し、桁合わせを考慮してβb0,jを加算しながらβbを計算する。 In step 726, the d-th server 14xd collects k Wb ′ (x i ) from other j-th servers 14x j (j = 1,..., K), and modulo q ′ in step 728. Βb 0, j (j = 0,..., K−1) is restored, and βb is calculated while adding βb 0, j in consideration of digit alignment.
 復元に参加する第jのサーバ14x(j=1,…,k)は、ステップ730、734のそれぞれで、指定されたjに応じたWaj(xi)とWbj(xi)を集め(i=1,…,k)、ステップ732、736で、q’を法として1サーバ当たりαjとβjを1つずつ復元する The j-th server 14x j (j = 1,..., K) participating in the restoration collects Wa j (xi) and Wb j (xi) corresponding to the designated j in steps 730 and 734 ( i = 1,..., k), and restores one α j and one β j per server modulo q ′ in steps 732 and 736
 第jのサーバ14x(j=1,…,k)は、ステップ738で、積αjβjを計算し、ステップ740で、復元装置16に送信する。復元装置16は、ステップ742で、αjβjからαβを合成する。 The j-th server 14x j (j = 1,..., K) calculates the product α j β j in step 738 and transmits it to the restoration device 16 in step 740. In step 742, the restoration device 16 synthesizes αβ from α j β j .
 第dのサーバ14xdは、ステップ744で、αaとβbとの積αaβbを計算し、ステップ746で、αβabを復元装置16に送信する。復元装置16は、ステップ748で、αβでαβabを割ってabを計算する。 The d-th server 14xd calculates a product αaβb of αa and βb in step 744, and transmits αβab to the restoration device 16 in step 746. In step 748, the restoration device 16 divides αβab by αβ to calculate ab.
 以下に、以上の処理の具体例を示す。秘密情報を10進数2桁のa=12, b=20の場合を考える。よって、p=101(>102),p’=11(>10),q'=101(>102),k=n=2とする。 Below, the specific example of the above process is shown. Consider the case where the secret information is a two-digit decimal number a = 12, b = 20. Therefore, p = 101 (> 10 2 ), p ′ = 11 (> 10), q ′ = 101 (> 10 2 ), and k = n = 2.
[分散]
(図82のステップ702)
 k=2より、オーナAの第1のディーラ装置12Aは、2つの乱数をα1=2、α2=2としα=α1・α2=2×2=4を計算する。
[dispersion]
(Step 702 in FIG. 82)
From k = 2, the first dealer 12A of owner A calculates α = α 1 · α 2 = 2 × 2 = 4, assuming that two random numbers are α 1 = 2 and α 2 = 2.
(ステップ704)
 a(=12)を2分割してa0,0=2,a0,1=1とし、Wa1,Wa2に用いる乱数をa1,1=3,a2,1=5とすると、以下が計算される。
Wa'(1)=4(2+1*1)=12
Wa'(2)=4(2+1*2)=16
Wa1(1)=2+3=5
Wa1(2)=2+3*2=8
Wa2(1)=2+5=8
Wa2(2)=2+5*2=12
(Step 704)
If a (= 12) is divided into two and a 0,0 = 2 and a 0,1 = 1, and the random numbers used for Wa1 and Wa2 are a 1,1 = 3 and a 2,1 = 5, Calculated.
Wa '(1) = 4 (2 + 1 * 1) = 12
Wa '(2) = 4 (2 + 1 * 2) = 16
Wa1 (1) = 2 + 3 = 5
Wa1 (2) = 2 + 3 * 2 = 8
Wa2 (1) = 2 + 5 = 8
Wa2 (2) = 2 + 5 * 2 = 12
(図83のステップ712)
 β1=1,β2=2とし、β=β1・β2=1×2=2を計算する。
(Step 712 in FIG. 83)
β 1 = 1, β 2 = 2 and β = β 1 · β 2 = 1 × 2 = 2 are calculated.
(ステップ714)
b(=20)を2分割してb0,0=0,b0,1=2とし、Wb1,Wb2に用いる乱数をb1,1=4,b2,1=6とすると、以下が計算される。
Wb'(1)=2(0+2*1)=4
Wb'(2)=2(0+2*2)=8
Wb1(x1)=1+4=5
Wb1(x2)=1+4*2=9
Wb2(x1)=2+6=8
Wb2(x2)=2+6*2=14
(Step 714)
If b (= 20) is divided into two, b 0,0 = 0, b 0,1 = 2 and the random numbers used for Wb1, Wb2 are b 1,1 = 4, b 2,1 = 6, Calculated.
Wb '(1) = 2 (0 + 2 * 1) = 4
Wb '(2) = 2 (0 + 2 * 2) = 8
Wb1 (x1) = 1 + 4 = 5
Wb1 (x2) = 1 + 4 * 2 = 9
Wb2 (x1) = 2 + 6 = 8
Wb2 (x2) = 2 + 6 * 2 = 14
[復元]
(図84のステップ722、724)
 Wa'(1)=12=s1+s2、Wa'(2)=16=s1+s2*2より、Wa'(2)-Wa'(1)を計算し、4=s2=αa0,1、s1=12-4=8=αa0,0より、桁あわせをしてαa0,1*10+αa0,0=8+4*10=48を得る。
[Restore]
(Steps 722 and 724 in FIG. 84)
Wa ′ (1) = 12 = s 1 + s 2 , Wa ′ (2) = 16 = s 1 + s 2 * 2 From Wa ′ (2) −Wa ′ (1), 4 = s2 = From αa 0,1 and s1 = 12-4 = 8 = αa 0,0 , the digits are aligned to obtain αa 0,1 * 10 + αa 0,0 = 8 + 4 * 10 = 48.
(ステップ726、728)
 βb0,1=4、βb0,0=4-4=0を復元し、βb0,1*10+b0,0=4*10+0=40を得る。
(Steps 726 and 728)
βb 0,1 = 4 and βb 0,0 = 4-4 = 0 are restored to obtain βb 0,1 * 10 + b 0,0 = 4 * 10 + 0 = 40.
(ステップ730~736)
 第1のサーバ14xは、α1=2、β1=1を復元し、第2のサーバ14xは、α2=2、β2=2を復元する。
(Steps 730-736)
First server 14x 1 is, alpha 1 = 2, restores the beta 1 = 1, the second server 14x 2 is, alpha 2 = 2, to restore the .beta.2 = 2.
(ステップ738、740)
 第1のサーバ14x1は、α11=2*1=2を、第2のサーバ14xは、α22=2*2=4を計算し、復元装置16に送信する。
(Steps 738 and 740)
The first server 14x1 is the α 1 * β 1 = 2 * 1 = 2, the second server 14x 2 calculates the α 2 * β 2 = 2 * 2 = 4, and transmits the restoration apparatus 16.
(ステップ744、746)
 αa*βb=48*40=1920を復元装置16に送信する。
(Steps 744 and 746)
αa * βb = 48 * 40 = 1920 is transmitted to the restoration device 16.
(ステップ742、748)
 1920/(2*4)=240を計算する。
(Steps 742 and 748)
1920 / (2 * 4) = 240 is calculated.
秘匿乗算1では十進数3桁で考えてaを0~999とすると、pは103より大きいp=1009とすることができる。よって、最も小さなqはq(>106)の素数であるのでq=1000003となる。よって、[分散]では1000003以下の分散値をk+1個記憶する必要がある。 In the secret multiplication 1, when a is 0 to 999 considering three decimal digits, p can be set to p = 1009 which is larger than 10 3 . Therefore, since the smallest q is a prime number of q (> 10 6 ), q = 1000003. Therefore, in [dispersion], it is necessary to store k + 1 dispersion values of 1000003 or less.
それに対して、秘匿乗算1”ではL=3とすると、a0,0,a0,1,a0,2が0~9となり、e=10,d=3,L=3よりp’=11(>e(d/L))とすることができる。qはu=2とするとq(>e(d/L)u)より、q=101とすることができる。よって、秘匿乗算1”の[分散]では101以下の分散値をk+1個記憶すればよく記憶容量が削減されていることがわかる。 On the other hand, if L = 3 in the concealment multiplication 1 ″, a 0,0 , a 0,1 , a 0,2 are 0 to 9, and p == from e = 10, d = 3, L = 3 11 (> e (d / L) ), and q can be set to q = 101 from q (> e (d / L) u ), if u = 2. In [Dispersion] of “,” it is sufficient to store k + 1 dispersion values of 101 or less, and the storage capacity is reduced.
また、[復元]にある桁上げを注意しながらは、例えば、a=583とすると、a0,0=5,a0,1=8, a0,2=3となる。α=9とするとq=101を法として、各々αa0,0=45、αa0,1=72、αa0,2=27が復元される。a0,0,a0,1,a0,2は十進数で一桁ずつ桁がずれているので、十進数で一桁ずつずらしながら加算することによってαa0,0*102+αa0,0*10+αa0,0=45*100+72*10+27=5247=9*583=αaが得られる。これらの特徴は請求項14に示される。 For example, when a = 583 is set while paying attention to the carry in [Restore], a 0,0 = 5, a 0,1 = 8, a 0,2 = 3. If α = 9, then modulo q = 101, αa 0,0 = 45, αa 0,1 = 72, and αa 0,2 = 27 are restored. Since a 0,0 , a 0,1 , and a 0,2 are shifted by one digit in decimal, adding αa 0,0 * 10 2 + αa 0 by shifting by one digit in decimal 0 * 10 + αa 0,0 = 45 * 100 + 72 * 10 + 27 = 5247 = 9 * 583 = αa. These features are set forth in claim 14.
また提案方式の記憶容量削減以外の利点として、各係数はαやβなどの乱数が最後までかかるので、従来のランプ型と異なり、k-L個以上の分散値があっても情報が漏洩せず、安全性が向上する。また、以下のように鍵rでxを暗号化する暗号e_r(x)を用いることにより、さらに安全性向上を向上させることができる。同じサイズの暗号文を作る手法としては、秘密情報と同じサイズの乱数をEXORする、またはq’を法として乱数をかけるなどが考えられる。 Also, as an advantage other than the storage capacity reduction of the proposed method, each coefficient takes random numbers such as α and β, so unlike the conventional ramp type, even if there are kL or more distributed values, information does not leak, Safety is improved. Further, by using the encryption e_ r (x) to encrypt the x in key r as follows, it is possible to further improve the safety improved. As a method of creating a ciphertext of the same size, EXOR a random number having the same size as that of the secret information, or multiplying the random number by using q ′ as a modulus.
 秘匿乗算1”(ランプ型拡張形)
[分散]
(ランプ型拡張形)の秘匿乗算1”では、ランプ型基本形の図82のステップ702,706、図83のステップ712、716を実行するが、第1に、図82のステップ704に代えて、以下の処理を実行する。即ち、鍵r1を用いてαa0,jを暗号化して同じサイズの暗号文e_r1(αa0,j)を作り、以下の分散値Wa’(xi)、Wr1(xi)を計算する。
 Wa’(xi)=e_r1(αa0,0)+e_r1(αa0,1)xi+・・・+e_r1(αa0,k-1)xi k-1
 Wr1(xi)=r1+r1,1xi+・・・+r1,k-1xi k-1
 ただし、ah,j(h=0,j=L,・・・,k-1とh=1,・・・,k、j=1,・・・,k-1)はp’未満の乱数,xiはq’未満のサーバID(i=1,…,n)
 第2に、図83のステップ714に代えて、以下の処理を実行する。即ち、鍵r1を用いてαa0,jを暗号化して同じサイズの暗号文e_r1(αa0,j)を作り、以下の分散値Wb’(xi)、Wr2(xi)を計算する。
 Wb’(xi)=e_r2(βb0,0)+e_r2(βb0,1)xi+・・・+e_r2(βb0,k-1)xi k-1
 Wr2(xi)=r2+r2,1xi+・・・+r2,k-1xi k-1
 ただし、ah,j(h=0,j=L,・・・,k-1とh=1,・・・,k、j=1,・・・,k-1)はp’未満の乱数,xiはq’未満のサーバID(i=1,…,n)
Concealment multiplication 1 "(lamp type expansion type)
[dispersion]
In the secret multiplication 1 ″ of (lamp-type expansion type), steps 702 and 706 of FIG. 82 of the lamp-type basic form and steps 712 and 716 of FIG. 83 are executed. First, instead of step 704 of FIG. It executes the following processing. that is, making the ciphertext of the same size by encrypting e_ r1 (αa 0, j) the .alpha.a 0, j using a key r1, following variance values Wa '(x i), Wr1 Calculate (x i ).
Wa '(x i ) = e_ r1 (αa 0,0 ) + e_ r1 (αa 0,1 ) x i + ... + e_ r1 (αa 0, k-1 ) x i k-1
Wr 1 (x i ) = r 1 + r 1,1 x i + ... + r 1, k-1 x i k-1
However, a h, j (h = 0, j = L, ..., k-1 and h = 1, ..., k, j = 1, ..., k-1) is less than p ' Random number, xi is server ID less than q '(i = 1, ..., n)
Second, in place of step 714 in FIG. 83, the following processing is executed. That is, create a ciphertext of the same size by encrypting e_ r1 (αa 0, j) the .alpha.a 0, j using the key r 1, following dispersion value Wb '(xi), calculates the Wr2 (xi).
Wb '(x i ) = e_ r2 (βb 0,0 ) + e_ r2 (βb 0,1 ) x i + ... + e_ r2 (βb 0, k-1 ) x i k-1
Wr2 (x i ) = r2 + r 2,1 x i + ... + r 2, k-1 x i k-1
However, a h, j (h = 0, j = L, ..., k-1 and h = 1, ..., k, j = 1, ..., k-1) is less than p ' Random number, x i is server ID less than q '(i = 1, ..., n)
[復元]
 図85を参照して、サーバシステム内のサーバ、及び復元装置16が実行する復元処理を説明する。
 サーバシステム内の1つの第dのサーバ14xdは、図85のステップ722’、726’のそれぞれで、他のサーバからWr1(xi)とWr2(xi)を各々k個集め、ステップ724’、728’で、r1とr2を復元する。
[Restore]
With reference to FIG. 85, the restoration processing executed by the server in the server system and the restoration device 16 will be described.
One d-th server 14xd in the server system collects k Wr 1 (x i ) and Wr 2 (x i ) from other servers in steps 722 ′ and 726 ′ in FIG. At 724 'and 728', r1 and r2 are restored.
 第dのサーバ14xdは、ステップ722”で、他のサーバからWa’(xi)をk個集め、ステップ724”で、e_r1(αa0,j)(j=0,・・・,k-1)を復元し、r1を用いてαa0,jを復元し、桁合わせを考慮してαa0,jを加算しながらαaを計算する。 Server 14xd of the d is, "in, Wa 'a (x i) k pieces collected from other servers, step 724" step 722, e_ r1 (αa 0, j ) (j = 0, ···, k -1) is restored, αa 0, j is restored using r 1, and αa is calculated while adding αa 0, j in consideration of digit alignment.
 第dのサーバ14xは、ステップ726”で、他のサーバからWb’(xi)をk個集め、ステップ728”で、qe_r2(βb0,j)(j=0,・・・,k-1)を復元し、r2を用いてβb0,jを復元し、桁合わせを考慮してβb0,jを加算しながらβbを計算する。 Server 14x d of the d is, "in, Wb 'a (x i) k pieces collected from other servers, step 728" step 726, qe_ r2 (βb 0, j ) (j = 0, ···, k-1) is restored, βb 0, j is restored using r 2, and βb is calculated while adding βb 0, j in consideration of digit alignment.
 以後、秘匿乗算1”[復元]の図84のステップ730以降の処理と同様の処理を実行して、abを得る。 Thereafter, the same processing as the processing after Step 730 in FIG. 84 of the secret multiplication 1 ”[restoration] is executed to obtain ab.
秘匿乗算の繰り返し(秘匿乗算2)に関しても、基本形、拡張系ともに途中段階で復元した際の桁合わせに考慮すれば同様に拡張できることは明らかである。 It is obvious that the repetition of concealment multiplication (concealment multiplication 2) can be similarly expanded if both the basic form and the expansion system are taken into account when the digits are restored in the middle stage.
また、第2の実施の形態の秘匿除算、第3の実施の形態の演算の繰り返しに関しても、基本形、拡張系ともに途中段階で復元した際の桁合わせに考慮すれば同様に拡張できることは明らかである。ただし、分散値同士の加算は基本形では乱数変換を行えば桁毎の加算となっているため、そのまま適用できる。拡張系では桁毎にかかる乱数が異なるため、一度復元をして乱数を合わせて桁あわせをしながら加算する必要がある。以下に基本形のアルゴリズムを示す。 In addition, regarding the secret division of the second embodiment and the repetition of the calculation of the third embodiment, it is obvious that both the basic form and the extended system can be similarly expanded if considering the digit alignment when restored in the middle stage. is there. However, the addition of the variance values can be applied as it is because it is addition for each digit if random number conversion is performed in the basic form. In the extended system, the random number required for each digit is different, so it is necessary to restore and add the random numbers together while aligning the digits. The basic algorithm is shown below.
[分散]
 オーナAの第1のディーラ装置12Aは、秘密情報aをL分割してa0,0,・・・,a0,L-1とし、以下の分散値を計算する。ただし、ah,j(h=0,j=L,・・・,k-1とh=1,・・・,k、j=1,・・・,k-1)はp’未満の乱数,xiはq’未満のサーバID(i=1,…,n)である。
   Wa(xi)=a0,0+a0,1xi+・・・+a0,k-1xi k-1
[dispersion]
The first dealer apparatus 12A of the owner A calculates the following variance value by dividing the secret information a into L and a 0,0 ,..., A 0, L−1 . However, a h, j (h = 0, j = L, ..., k-1 and h = 1, ..., k, j = 1, ..., k-1) is less than p ' A random number, xi, is a server ID (i = 1,..., N) less than q ′.
Wa (x i ) = a 0,0 + a 0,1 x i + ... + a 0, k-1 x i k-1
 オーナBの第2のディーラ装置12Bは、秘密情報bをL分割してb0,0,・・・,b0,L-1とし、以下の分散値を計算する。ただし、bh,j(h=0,j=L,・・・,k-1とh=1,・・・,k、j=1,・・・,k-1)はp’未満の乱数,xiはq’未満のサーバID(i=1,…,n)である。
 Wb(xi)=b0,0+b0,1xi+・・・+b0,k-1xik-1
 分散値Wa(xi)とWb(xi)を第1のサーバ14x~第nのサーバ14xに送信する。
The second dealer apparatus 12B of the owner B calculates the following variance value by dividing the secret information b into L and b 0,0 ,..., B 0, L−1 . However, b h, j (h = 0, j = L, ..., k-1 and h = 1, ..., k, j = 1, ..., k-1) is less than p ' A random number, xi, is a server ID (i = 1,..., N) less than q ′.
Wb (xi) = b 0,0 + b 0,1 xi + ... + b 0, k-1 xi k-1
The distributed values Wa (x i ) and Wb (x i ) are transmitted to the first server 14x i to the nth server 14x n .
[加算]
 第iのサーバ14xi(i=1,・・・,n)は以下を計算する。
 Wab(xi)=Wa(xi)+Wb(xi)=(a0,0+b0,0)+(a0,1+b0,1)xi+・・・+(a0,k-1+b0,k-1)xi k-1
[Add]
The i-th server 14x i (i = 1,..., N) calculates:
Wab (x i ) = Wa (x i ) + Wb (x i ) = (a 0,0 + b 0,0 ) + (a 0,1 + b 0,1 ) x i + ... + (a 0, k-1 + b 0, k-1 ) x i k-1
[復元]
 復元装置16は第iのサーバ14xiの中のk個のサーバからk個の分散値の和Wab(xi)を集め、それを解いて(a0,0+b0,0),・・・,(a0,L+b0,L)を得る。
[Restore]
The restoration device 16 collects the sum Wab (xi) of k variance values from k servers in the i- th server 14x i , solves it, and (a 0,0 + b 0,0 ),.・, (A 0, L + b 0, L ) is obtained.
 復元装置16は(a0,0+b0,0),・・・,(a0,L+b0,L)を桁合わせしながら加算してa+bを得る。 The restoration device 16 adds (a 0,0 + b 0,0 ),..., (A 0, L + b 0, L ) while aligning digits to obtain a + b.
 第4の実施の形態の分散値同士の乗算の場合、途中段階で復元しないためそのまま適用できない。しかし、例えばe進数で考えると秘密情報aはa=a0,0+a0,1e+・・・+a0,k-1ek-1のように表せ、abの積は、
 ab=(a0,0+a0,1e+・・・+a0,k-1ek-1)(b0,0+b0,1e+・・・+b0,k-1ek-1)=(a0,0b0,0)+(a0,0b0,1+a0,1b0,0)e+・・・+(a0,k-1b0,k-1)e2k-1となる。
 よって、基本形の秘密分散では、Wa(x)=a0,0+a0,1x+・・・+a0,k-1xk-1、Wb(x)=b0,0+b0,1x+・・・+b0,k-1xk-1とすれば、その積はWa(x)Wb(x)=(a0,0+a0,1x+・・・+a0,k-1xk-1)(b0,0+b0,1x +・・・+b0,k-1xk-1)= (a0,0b0,0)+(a0,0b0,1+a0,1b0,0)x+・・・+(a0,k-1b0,k-1)x2k-1となり、各係数はそのまま積の各桁を表す。よって、以下のようにして秘匿乗算が実現できる。ただし、[復元]における桁合わせ(ステップ724”、728”)は上記のように各係数を各桁の値として扱うことである。
In the case of multiplication of variance values according to the fourth embodiment, it cannot be applied as it is because it is not restored in the middle. However, for example, when considered in e-adic, the secret information a can be expressed as a = a 0,0 + a 0,1 e + ... + a 0, k-1 e k-1 , and the product of ab is
ab = (a 0,0 + a 0,1 e + ... + a 0, k-1 e k-1 ) (b 0,0 + b 0,1 e + ... + b 0, k-1 e k-1 ) = (a 0,0 b 0,0 ) + (a 0,0 b 0,1 + a 0,1 b 0,0 ) e + ... + (a 0, k-1 b 0, k-1 ) e 2k-1 .
Thus, in the basic form of secret sharing, Wa (x) = a 0,0 + a 0,1 x + ... + a 0, k-1 x k-1 , Wb (x) = b 0,0 + b 0 , 1 x + ... + b 0, k-1 x k-1 , the product is Wa (x) Wb (x) = (a 0,0 + a 0,1 x + ... + a 0 , k-1 x k-1 ) (b 0,0 + b 0,1 x + ... + b 0, k-1 x k-1 ) = (a 0,0 b 0,0 ) + (a 0,0 b 0,1 + a 0,1 b 0,0 ) x + ... + (a 0, k-1 b 0, k-1 ) x 2k-1 Represents. Therefore, the secret multiplication can be realized as follows. However, digit alignment (steps 724 "and 728") in [Restore] is to treat each coefficient as a value of each digit as described above.
秘匿乗算3”(0対応)
[分散]
 秘匿乗算1”における図82のステップ704に、Wa(xi)=a0,0+a0,1xi+・・・+a0,k-1xik-1、図83のステップ714に、Wb(xi)=b0,0+b0,1xi+・・・+b0,k-1xi k-1を計算する処理を追加する。
[乗算]
 秘匿乗算3と同様であるので、その説明を省略する。
[復元]
Secret multiplication 3 "(0 correspondence)
[dispersion]
In step 704 of FIG. 82 in the secret multiplication 1 ″, Wa (xi) = a 0,0 + a 0,1 xi +... + A 0, k−1 xi k−1 , and in step 714 of FIG. (xi) = b 0,0 + b 0,1 x i +... + b 0, k−1 x i k−1 is added.
[Multiplication]
Since it is the same as the secret multiplication 3, its description is omitted.
[Restore]
 復元者の復元装置16はWab(xj)とWab’(xj)/αβから2k-1個の分散値を用いて各係数を得て、桁あわせをしながらabを復元する。 The restoring device 16 of the restoring person obtains each coefficient using 2k−1 variance values from Wab (x j ) and Wab ′ (xj) / αβ, and restores ab while aligning digits.
 上記において、Wa(xi)ちWb(xi)は乱数をかけずに秘密分散したが、例えば[分散]においてWa(xi)=γWa(xi),Wb(xi)=δWb(xi),γ=γ1・・・γk,δ=δ1・・・δkとして、[乗算]を行い、 [復元]においてWa’(xi)Wb’(xi)からαβをはずすのと同様に、Wa(xi)Wb(xi)からγδをはずす処理を行ってもよい。この場合、全ての分散値に乱数がかかるため、ランプ型秘密分散のk-1以下の分散値から秘密情報が部分的に漏れるという問題点がなくなり、安全性が向上する。 In the above, Wa (xi) or Wb (x i ) is secretly distributed without applying a random number. For example, in [Distribution], Wa (x i ) = γWa (x i ), Wb (xi) = δWb (x i ), Γ = γ1 ... γk, δ = δ 1 ... δ k , perform [multiplication], and in [restoration], remove αβ from Wa '(x i ) Wb' (x i ) In addition, a process of removing γδ from Wa (x i ) Wb (x i ) may be performed. In this case, since random numbers are applied to all the distributed values, there is no problem that secret information is partially leaked from the distributed values of k-1 or less of the ramp-type secret sharing, and the safety is improved.
 第5の実施の形態の更新では秘密情報Sは変更しないので、定数項以外の係数を操作した。ランプ型では秘密情報は定数項以外の係数にもあるので、秘密情報を含まない係数を操作することによって基本形は同様に実現できる。よって、秘匿乗算1の[分散]のように秘密情報が分散されているとすると、秘匿更新1は乱数を生成するサーバをk-L台とし、差分値を受けるサーバをn-k+L台とすればよい。また、秘匿更新2ではu-L個の乱数diL,・・・,diu-1からδi(x)=diLxL+diL+1xL+1+・・・diu-1xu-1を生成すればよい。秘匿更新3もδ(x)をδi(x)と同様の形にすればよい。拡張形において暗号の復元が必要な部分は秘密情報が含まれる係数であって、この部分は更新されない。また、乱数部分は形式上暗号化を行ったが暗号化する必要はない。よって、乱数部分の更新は基本形と同様に可能である。さらに、秘匿更新4,5においても同様に実現できることは明らかである。 Since the secret information S is not changed in the update of the fifth embodiment, coefficients other than the constant term are manipulated. In the ramp type, the secret information is also present in the coefficient other than the constant term, so that the basic form can be similarly realized by manipulating the coefficient not including the secret information. Therefore, if the secret information is distributed as [Distributed] of the secret multiplication 1, the secret update 1 uses kL units for generating random numbers and n-k + L servers for receiving the difference value. That's fine. Further, the confidentiality update 2 uL random numbers d iL, · · ·, from d iu-1 δi (x) = d iL x L + d iL + 1 x L + 1 + ··· d iu-1 x u Just generate -1 . The secret update 3 may also have δ (x) similar to δi (x). In the extended form, the part that needs to be restored is a coefficient including secret information, and this part is not updated. In addition, the random number part is encrypted in form, but it is not necessary to encrypt it. Therefore, the random number part can be updated in the same manner as in the basic form. Further, it is obvious that the secret updates 4 and 5 can be similarly realized.
 秘匿検索1”(基本形:検索装置18を利用しない)
 第6の実施の形態にある秘匿検索では検索IDであるkjをL分割して各係数の一致不一致を確認すれば、以下のように部分検索が可能になる。
Secret search 1 "(basic form: the search device 18 is not used)
In the secret search according to the sixth embodiment, if kj, which is a search ID, is divided into L and a match / mismatch of each coefficient is confirmed, a partial search can be performed as follows.
[分散]
 第1のディーラ装置12AのCPU22は、図86(A)の分散処理を実行する。即ち、ステップ752で、m個の秘密情報(上記各実施の形態における分散により分散されている)に対応するm個の検索IDを、kj(j=1,…,m)をL分割し、kj0,・・・,kjL-1とし、ステップ754で、kj毎の乱数rjを生成し、ステップ756で、下記分散値Tj(xi) 、Rj(xi)を計算する(rji,tjiも乱数)。
 Tj(xi)=rj・(kj0+・・・+kjL-1xi L-1+tjLxi L+…+tjk-1xi k-1)(i=1,…,n)
 Rj(xi)=rj+rj1xi+rj2xi 2+…+rjk-1xi k-1
 ステップ758で、分散値Tj(xi) 、Rj(xi)をサーバxi(i=1,…,n)に送信して、分散保管させる。
[dispersion]
The CPU 22 of the first dealer device 12A executes the distributed processing of FIG. 86 (A). That is, in step 752, m search IDs corresponding to m pieces of secret information (distributed by the distribution in the above embodiments) are divided into L and k j (j = 1,..., M). , K j0 ,..., K jL−1 , a random number rj for each kj is generated in step 754, and the following variance values T j (x i ) and R j (x i ) are calculated in step 756. (R ji and t ji are also random numbers).
T j (x i ) = r j · (k j0 + ... + k jL-1 x i L-1 + t jL x i L + ... + t jk-1 x i k-1 ) (i = 1 , ..., n)
R j (x i ) = r j + r j1 x i + r j2 x i 2 +… + r jk-1 x i k-1
In step 758, the distributed values T j (x i ) and R j (x i ) are transmitted to the servers xi (i = 1,..., N) for distributed storage.
 分散値は検索IDであるkjに応じて昇順に並べられているとする。例えば、第1のサーバ14x1の記憶装置34には、図86(B)に示すように、分散値Tj(xi)、Rj(xi)が、kjに応じて昇順に並べて、記憶されている。なお、分散値Tj(xi)、Rj(xi)に対応して、秘密情報に対応する分散値が対応付けられている。 It is assumed that the distributed values are arranged in ascending order according to the search ID kj. For example, as shown in FIG. 86 (B), the storage device 34 of the first server 14x1 stores the distributed values T j (xi) and R j (x i ) in ascending order according to kj. ing. Note that a variance value corresponding to the secret information is associated with the variance values T j (xi) and R j (x i ).
[検索] [Search]
 復元装置16のCPU22は、図87のjの指示処理を実行し、第1のディーラ装置12AのCPU22は、図88のFj'(xi)の計算送信処理を実行し、第iのサーバ14xi(第1のサーバ14x~第のサーバ14x)のCPU22は図89の検索処理を実行する。第iのサーバ14xは保管分散値の中央値、すなわちj=m/2から検索を始める。 The CPU 22 of the restoring device 16 executes the instruction processing of j in FIG. 87, and the CPU 22 of the first dealer device 12A executes the calculation transmission processing of Fj ′ (xi) in FIG. 88, and the i-th server 14xi ( The CPU 22 of the first server 14x 1 to the n-th server 14x n ) executes the search process of FIG. The i-th server 14x i starts the search from the median storage variance value, that is, j = m / 2.
 復元装置16は、図87のステップ762で、検索を希望するユーザの操作に従って、検索IDであるkj’を入力し、ステップ764で、kj’をL分割し、ステップ766で、kj’に乱数qを乗じたq・k’ji(i=0,・・・, L-1)を計算し、ステップ768で、q・k’jiを第1のディーラ装置12Aに送信する。 In step 762 of FIG. 87, the restoration device 16 inputs k j ′, which is a search ID, in accordance with the operation of the user who desires the search, in step 764 divides kj ′ into L, and in step 766, k j ′ Q · k ′ ji (i = 0,..., L−1) multiplied by a random number q is calculated, and in step 768, q · k ′ ji is transmitted to the first dealer 12A.
 第1のディーラ装置12Aは、図88のステップ804で、q・k’jiを受信し、ステップ806、808で、q・k’jiをランプ型秘密分散する。即ち、第1のディーラ装置12Aは、ステップ806で、以下のFj'(xi)を計算し(L次以上の乱数はb’ji=q・bjiとなる)、ステップ808で、Fj'(xi)を第iのサーバ14xiに送信する。
j'(xi)=q(k’j0+・・・+kjL-1xi L-1+bjLxi L+・・・+bjk-1xi k-1)(i=1,…,n)
The first dealer 12A receives q · k ′ ji in step 804 of FIG. 88, and performs ramp-type secret sharing of q · k ′ ji in steps 806 and 808. That is, the first dealer 12A calculates the following F j ′ (x i ) in step 806 (a random number of order L or higher is b ′ ji = q · b ji ), and in step 808 F j ′ (x i ) is transmitted to the i- th server 14x i .
F j ′ (x i ) = q (k ′ j0 +... + K jL-1 x i L-1 + b jL x i L +... + B jk-1 x i k-1 ) (i = 1,…, n)
 第iのサーバ14xiは、図89のステップ812で、第1のディーラ装置12AからFj'(xi)を受信し、ステップ814で、jを設定する。なお、本処理が最初に実行されるとき、jは、m/2に設定される。ステップ816で、jに対応するTj(xi)(i=1,…,k)を読み出し、ステップ818で、Tj(xi)をユーザの復元装置16に送信する。 The i-th server 14xi receives F j ′ (x i ) from the first dealer 12A at step 812 in FIG. 89, and sets j at step 814. When this process is executed for the first time, j is set to m / 2. In step 816, T j (xi) (i = 1,..., K) corresponding to j is read, and in step 818, T j (x i ) is transmitted to the user's restoration device 16.
 復元装置16は、図87のステップ770で、Tj(xi)を受信し、ステップ772で、δ(x)=dLxi L+・・・+dk-1xi k-1を生成し、ステップ774で、以下のFj(xi)を計算し、ステップ776で、Fj(xi)を第iのサーバ14xに送信する。
 Fj(xi)=q・Tj(xi)+δ(xi) (i=1,…,k)
The restoring device 16 receives T j (x i ) in step 770 of FIG. 87, and in step 772, δ (x) = d L x i L +... + D k-1 x i k-1 In step 774, the following F j (x i ) is calculated. In step 776, F j (x i ) is transmitted to the i- th server 14x i .
F j (x i ) = q ・ T j (x i ) + δ (x i )   (i = 1, ..., k)
 第iのサーバ14xは、図89のステップ820で、復元装置16からFj(xi)を受信し、ステップ822で、Rj(xi)からrjを復元する。 The i-th server 14x i receives F j (x i ) from the restoration device 16 at step 820 in FIG. 89, and restores r j from R j (xi) at step 822.
 ステップ824で、乱数tjを生成し、ステップ826で、以下の差を計算し、ステップ828で、差を復元装置16に送信する。
tj{Fj(xi)-rjFj’(xi)}=tj・rj・q{(k’j0-kj0)+・・・+(k’jL-1-kjL-1)xi L-1+(bjL-t’jL)xi L+・・・+(bjk-1- t’jk-1)xi k-1}
 ただし、t’ji=tji+di/q
In step 824, a random number t j is generated. In step 826, the following difference is calculated, and in step 828, the difference is transmitted to the restoration device 16.
tj {F j (x i ) -rjF j '(x i )} = tj ・ rj ・ q {(k' j0 -k j0 ) + ・ ・ ・ + (k ' jL-1 -k jL-1 ) x i L-1 + (b jL -t ' jL ) x i L + ... + (b jk-1 -t' jk-1 ) x i k-1 }
Where t ' ji = t ji + d i / q
 復元装置16は、図87のステップ778で、差を受信し、ステップ780で、差の多項式を解いて、定数項を求め、ステップ782で、何れかの定数項の係数差分が0か否かを判断する。部分一致が1つでよいとする場合には、ステップ782以降を図81のステップ551以降の処理と同様の処理を実行することができる。しかし、最初に見つかった部分一致検索IDに連続してその上位の部分検索IDが一致しているかを見る場合の処理を以下に説明する。これも中央値から検索すとする。また、第5の実施の形態のL個に分解していない検索IDの差分は上位桁の結果が支配的であるので、全体の検索位置は最上位桁の差分値を第5の実施の形態における全体の差分値と同様にみなして検索を行う。また、部分一致があった場合、簡単のためそのIDの上位桁のIDの部分一致を検索するとする。 In step 778 of FIG. 87, the restoration device 16 receives the difference, and in step 780, solves the difference polynomial to obtain a constant term. In step 782, whether the coefficient difference of any constant term is 0 or not. Judging. If only one partial match is required, processing similar to the processing after step 551 in FIG. 81 can be executed after step 782. However, a process for checking whether the partial search IDs higher than the partial match search IDs that have been found first match is described below. It is assumed that this is also searched from the median. Further, since the difference between the search IDs that are not decomposed into L pieces in the fifth embodiment is dominated by the result of the upper digit, the entire search position is set to the difference value of the most significant digit in the fifth embodiment. The search is performed in the same manner as the entire difference value in. If there is a partial match, for the sake of simplicity, it is assumed that a partial match of the ID of the upper digit of the ID is searched.
 上記のように、ステップ782で、係数差分による検索を行って、どこかの係数差分に0があるか否かを判断する。どこかの係数差分に0がなければ最上位桁の係数差分を全体の差分として第5の実施の形態と同様に、jを1インクリメントして、次の検索位置を定め、ステップ770にに戻る。 As described above, in step 782, a search based on the coefficient difference is performed to determine whether or not there is 0 in any coefficient difference. If some coefficient difference is not 0, the coefficient difference of the most significant digit is set as the overall difference, and similarly to the fifth embodiment, j is incremented by 1, a next search position is determined, and the process returns to step 770. .
(1)ステップ782で、0となる係数差分があると判断されれば、そのIDの下位桁の係数差分を見る。以降簡単のため、最初に見つかった部分検索IDをkjiとし、その上位桁の部分検索IDをkji-1として説明を行う。即ち、ステップ786では、桁を識別する変数iを1デクリメントする。
 ステップ788で、下位の桁iの係数差分が0か否かを判断する、下位の桁iが0と判断された場合には、ステップ790で、検索IDをjとして本処理を終了する。下位の桁iが0と判断されなかった場合には、ステップ792で、下位の桁iにおけるkji-1の係数差分は正か否かを判断する。正と判断されれば、ステップ794で、検索位置jを1インクリメントし、負と判断されれば、ステップ796で、検索位置を1デクリメントする。
 ステップ798で、前回と今回とのkjiの係数差分が0のままであるか否かを判断する。
(1) If it is determined in step 782 that there is a coefficient difference of 0, the coefficient difference of the lower digit of the ID is viewed. For the sake of simplicity, the partial search ID that is found first is k ji and the partial search ID of the upper digit is k ji-1 . That is, in step 786, the variable i for identifying the digit is decremented by one.
In step 788, it is determined whether or not the coefficient difference of the lower digit i is 0. If it is determined that the lower digit i is 0, the search ID is set to j in step 790 and the process is terminated. If the lower digit i is not determined to be 0, it is determined in step 792 whether or not the coefficient difference of k ji-1 in the lower digit i is positive. If it is determined to be positive, the search position j is incremented by 1 in step 794, and if it is determined to be negative, the search position is decremented by 1 in step 796.
In step 798, it is determined whether or not the coefficient difference of k ji between the previous time and the current time remains zero.
(2)前回と今回とのkjiの係数差分が0でない場合には、条件を満たさないとして、ステップ800で、検索IDなしとして、処理を終了し、前回と今回とのkjiの係数差分が0であれば、ステップ794又はステップ796におけるjを指示して、本処理はステップ770に戻って、係数差分により検索を行う。 (2) When the coefficient difference k ji between the previous and the current is not 0, as the condition is not satisfied, at step 800, as no search ID, and terminates the processing, coefficient difference k ji between previous and current If 0 is 0, j in step 794 or step 796 is designated, and the process returns to step 770 to perform a search based on the coefficient difference.
 上記はある部分一致とその上位桁の連続一致としたが、一致する部分検索IDを指定する場合、ステップ782で、「指定された係数差分が0であるか?」とすればよい。また、上位桁の連続一致であればkji-1の係数差分による次の検索方向を逆(i←i+1)にすればよい。更に、連続一致でなくてもよい場合、ステップ786の「i←i-1」を「i←r(r=1,・・・L,i≠r)」とし、ステップ788)の「下位桁の係数差分」を「その他の係数差分」とし、ステップ788の「下位桁iの係数差分が0が」を「どこかに係数差分が0となるkjrがあるか」とし、ステップ790では、「予め定められた方向に検索位置を1ずらして係数差分による検索を行う。」とする。また、3つ以上の一致を見たい場合は2つ一致している状態を1つ一致している状態に置き換えて処理を繰り返せばよい。 The above is a partial match and a continuous match of the upper digits. However, when a matching partial search ID is designated, it may be set at step 782 as “is the specified coefficient difference 0?”. If the upper digits are consecutively matched, the next search direction based on the coefficient difference of k ji-1 may be reversed (i ← i + 1). Further, if it is not necessary to match continuously, “i ← i−1” in step 786 is set to “i ← r (r = 1,... L, i ≠ r)”, and “lower digit” in step 788) In step 790, “other coefficient difference” is set to “other coefficient difference”, “the coefficient difference of the low-order digit i is 0” is “is there any k jr whose coefficient difference is 0”, and in step 790, “The search position is shifted by 1 in a predetermined direction and the search is performed using the coefficient difference”. In addition, when it is desired to see three or more matches, the process may be repeated by replacing two matching states with one matching state.
 ところで、上記[検索]を秘匿検索1[検索]と同様の処理とし、検索ID全ての差分が0となる分散値を検索するようにすれば、通常の秘匿検索が実現できる。また、通常の秘匿検索を行い、完全に一致する検索IDが見つからないときに、検索課程で最も部分一致が多かった位置に戻り、上記定数項の係数差分の判定処理(ステップ782以降の処理)の部分検索の拡大処理を行うこともできる。さらに、[検索]においてユーザがq・k’ji(i=0,・・・, L-1)をオーナの第1のディーラ装置12Aに送るときに、その重要度をq・k’ji(i=0,・・・, L-1)毎に指示していればその重要度に応じた部分検索も可能である。例えば、k’j3が最も重要である場合、検索課程においてその前後のk’j2やk’j4などにおいて部分一致があった場合、その中間を検索することによりk’j3の部分一致に絞り込んでいくことも可能である。 By the way, if the above [search] is the same process as the secret search 1 [search], and a search is performed for a distributed value in which the differences of all search IDs are 0, a normal secret search can be realized. In addition, when a normal secret search is performed and a search ID that completely matches is not found, the process returns to the position where the partial match is the highest in the search process, and the coefficient difference determination process for the constant term (process after step 782) It is also possible to perform the partial search enlargement process. Furthermore, when the user sends q · k ′ ji (i = 0,..., L−1) to the owner's first dealer device 12A in [Search], the importance is assigned to q · k ′ ji ( If specified for every i = 0, ..., L-1), partial search according to its importance is possible. For example, 'if j3 is the most important, before and after the k in the search program' k If a partial match in such j2 and k 'j4, narrow the k'j3 broad match by searching the intermediate It is also possible to go.
 また、拡張形に対しては暗号e_r(x)がAESのような暗号である場合適用は難しいが、例えば係数aiに乱数tiをかけることによって暗号化する場合には以下のような拡張が可能である。 Also, for the expanded form, it is difficult to apply when the cipher e_r (x) is a cipher such as AES. For example, when encrypting by multiplying the coefficient a i by the random number t i , the following expansion Is possible.
秘匿検索1”(拡張形:検索装置18を利用しない)
[分散]
 分散処理は、上記図86(A)と同様である。即ち、オーナの第1のディーラ装置12Aは、m個の秘密情報に対応するm個の検索IDを、kj(j=1,…,m)をL分割してkj0,・・・,
kjL-1とし(ステップ752)、kj毎の乱数rjとtを生成し(ステップ754)、下記分散値Tj(xi)を計算し(ステップ756)、分散値Tj(xi)、Rj(xi)を第iのサーバ14xi(i=1,…,n)に分散保管させる(rji,tjiも乱数)(ステップ758)。
j(xi)=rj・(kj0+・・・+tL-1kjL-1xi L-1+tLtjLxi L+…+tk-1tjk-1xi k-1)(i=1,…,n)
Rj(xi)=rj+rj1xi+rj2xi 2+…+rjk-1xi k-1
 ただし、分散値は検索IDであるkjに応じて昇順に並べられているとする。
[検索]
Secret search 1 "(Extended type: Search device 18 is not used)
[dispersion]
The distributed processing is the same as that in FIG. That is, the first dealer apparatus 12A of the owner, the m-number of search ID corresponding to the m secret information, k j (j = 1, ..., m) and with L divided k j0, · · ·,
k jL-1 (step 752), random numbers r j and t for each k j are generated (step 754), the following variance value T j (x i ) is calculated (step 756), and the variance value T j (x i ), R j (x i ) are distributed and stored in the i-th server 14xi (i = 1,..., n) (r ji and t ji are also random numbers) (step 758).
T j (xi) = rj · (k j0 + ... + t L-1 k jL-1 x i L-1 + t L t jL x i L + ... + t k-1 t jk-1 x i k-1 ) (i = 1,…, n)
R j (x i ) = rj + r j1 x i + r j2 x i 2 +… + r jk-1 x i k-1
However, it is assumed that the distributed values are arranged in ascending order according to the search ID kj.
[Search]
 復元装置16のCPU22は、図87に示すjの指示処理を実行し、第1のディーラ装置12AのCPU22は、図88のF’(x)の計算・送信処理を実行し、第iのサーバ14xのCPU22は、図89の検索処理を実行する。 The CPU 22 of the restoring device 16 executes the instruction process j shown in FIG. 87, and the CPU 22 of the first dealer 12A executes the calculation / transmission process of F j ′ (x j ) shown in FIG. The CPU 22 of the server 14x i executes the search process of FIG.
 検索を希望するユーザの復元装置16は、検索IDであるkj’をL分割して乱数qを乗じたq・k’ji(i=0,・・・, L-1)をオーナの第1のディーラ装置12Aに送信する(図87のステップ762~768)。 The restoration device 16 of the user who desires the search uses q · k ′ ji (i = 0,..., L−1) obtained by dividing the search ID kj ′ by L and multiplying by the random number q into the first owner. To the dealer apparatus 12A (steps 762 to 768 in FIG. 87).
 オーナの第1のディーラ装置12Aは、q・k’ji0にtiをかけてランプ型秘密分散して以下を第iのサーバ14xに送信する(L次以上の乱数はb’ji=tiq・bjiとなる)(図88のステップ804~808)。
Fj’(xi)=q(k’j0+・・・+tL-1kjL-1xi L-1+tLbjLxi L+・・・+tk-1bjk-1xi k-1)(i=1,…,n)
The owner's first dealer 12A multiplies q · k ′ ji 0 by t i and distributes the lamp-type secret and transmits the following to the i-th server 14x i (the random number of the Lth order or higher is b ′ ji = t i q · b ji ) (steps 804 to 808 in FIG. 88).
Fj '(x i ) = q (k' j0 + ... + t L-1 k jL-1 x i L-1 + t L b jL x i L + ... + t k-1 b jk- 1 x i k-1 ) (i = 1,…, n)
 第iのサーバ14xは保存しているTj(xi)(i=1,…,k)をユーザの復元装置16に送信する(図89のステップ814~818)。 The i-th server 14x i transmits the stored T j (x i ) (i = 1,..., K) to the user restoration device 16 (steps 814 to 818 in FIG. 89).
 復元装置16は、δ(x)=dLxi L+・・・+dk-1xi k-1を生成し、以下を計算して第iのサーバ14xに送信する(図87のステップ770~776)。
 Fj(xi)=q・Tj(xi)+δ(xi) (i=1,…,k)
Restoring device 16, [delta] (x) = generates a d L x i L + ··· + d k-1 x i k-1, to the server 14x i of the i by calculating the following (FIG. 87 Steps 770 to 776).
F j (x i ) = q ・ T j (x i ) + δ (x i )   (i = 1, ..., k)
 第iのサーバ14xは、Rj(xi)からrjを復元する(図89のステップ822)。 The i-th server 14x i restores rj from Rj (x i ) (step 822 in FIG. 89).
 第iのサーバ14xは、乱数tjを生成し、以下の差を計算して復元装置16に送信する(ステップ826、828)。
tj{Fj(xi)-rjFj’(xi)}=tj・rj・q{(k’j0-kj0)+・・・+tL-1(k’jL-1-kjL-1)xi L-1+tL(bjL-t’jL)xi L+・・・+tk-1(bjk-1- t’jk-1)xi k-1} ただし、t’ji=tji+di/q
The i-th server 14x i generates a random number t j , calculates the following difference, and transmits it to the restoration device 16 (steps 826 and 828).
tj {F j (x i ) -rjF j '(x i )} = t j・ r j・ q {(k' j0 -k j0 ) + ... + t L-1 (k ' jL-1- k jL-1 ) x i L-1 + t L (b jL -t ' jL ) x i L + ... + t k-1 (b jk-1 -t' jk-1 ) x i k-1 } Where t ' ji = t ji + d i / q
 以後の処理(図87のステップ782以降)は、秘匿検索1”[検索]と同様である。 The subsequent processing (after step 782 in FIG. 87) is the same as the confidential search 1 ″ [search].
 次に、第7の実施の形態の小型化と第8の実施の形態のランプ型による小型化は両立可能であることを説明する。例えばk=3である場合、サーバの削減数はk-1=2、秘密情報の分割はk=3まで可能であるので、L=2として秘密情報を2分割し、サーバ台数を1台削減することが可能である。すなわち、サーバの削減数をh、分割数をLとするとh+L≦kとすれば両立できる。以下、例としてh+L=kとなる場合について示す。 Next, it will be explained that the miniaturization of the seventh embodiment and the miniaturization by the lamp type of the eighth embodiment can be compatible. For example, if k = 3, the number of servers to be reduced is k-1 = 2 and the secret information can be divided up to k = 3. Therefore, the secret information is divided into two with L = 2, and the number of servers is reduced by one. Is possible. In other words, if the number of servers to be reduced is h and the number of divisions is L, both can be satisfied if h + L ≦ k. Hereinafter, as an example, a case where h + L = k is shown.
秘匿乗算1”(非対称秘密分散対応)
[分散]
 秘密情報aをもつオーナAの第1のディーラ装置12Aは、管理する1つの鍵からh個の乱数を生成し、それを自身が持つ分散値Wa(x1)~Wa(xh)とする(hはk-1以下の整数)(図71のステップ572)。
Secret multiplication 1 ”(Asymmetric secret sharing)
[dispersion]
The first dealer apparatus 12A of the owner A having the secret information a generates h random numbers from one key to be managed, and uses them as distributed values Wa (x 1 ) to Wa (x h ). (H is an integer equal to or less than k−1) (step 572 in FIG. 71).
 第1のディーラ装置12Aは、秘密情報aをL=k-h分割してa0,0~a0,L-1とし、h個の分散値Wa(x1)~Wa(xh)を以下の多項式として解いて残りのk-L=h個の乱数a0,L~a0,k-1を求める(図71のステップ574)。
 Wa(xi)=a0,0+a0,1xi+・・・+a0,k-1xik-1 (i=1,・・・,h)
The first dealer apparatus 12A divides the secret information a into L = kh to be a 0,0 to a 0, L-1 and sets the h variance values Wa (x 1 ) to Wa (x h ) as follows: The remaining kL = h random numbers a 0, L 1 to a 0, k−1 are obtained by solving as a polynomial (step 574 in FIG. 71).
Wa (x i ) = a 0,0 + a 0,1 xi + ... + a 0, k-1 xi k-1 (i = 1, ..., h)
 第1のディーラ装置12Aは、Wa(xi)を用いて残りの第(h+1)のサーバ14xh+1~14xnの分散値を求め、第iのサーバ14xに送信する(ステップ576)。
 Wa(xi)=a0,0+a0,1xi+・・・+a0,k-1xi k-1 (i=h+1,・・・,n)
The first dealer apparatus 12A uses Wa (x i ) to determine the distributed values of the remaining (h + 1) th servers 14x h + 1 to 14x n and transmits them to the i th server 14x i (step) 576).
Wa (x i ) = a 0,0 + a 0,1 xi + ... + a 0, k-1 x i k-1 (i = h + 1, ..., n)
 秘密情報bを持つオーナBの第2のディーラ装置12Bは、管理する1つの鍵を用いて、上記の図71のステップ572~578の処理を独立に実行し、自らの分散値Wb(x1)~Wb(xh)と、サーバxh+1~xnが持つ分散値Wb(xh+1)~Wb(xn)を求め、各サーバに送る。 The second dealer apparatus 12B of the owner B having the secret information b executes the processing of steps 572 to 578 in FIG. 71 independently using one key to be managed, and has its own distributed value Wb (x 1 ) To Wb (x h ) and distributed values Wb (x h + 1 ) to Wb (x n ) possessed by the servers x h + 1 to x n are obtained and sent to each server.
[乗算]
 第1のディーラ装置12Aは、k個の乱数αi(i=1,・・・,k)を生成し、その積αを計算する(図72のステップ582、584)。
[Multiplication]
The first dealer 12A generates k random numbers α i (i = 1,..., K) and calculates the product α ( steps 582 and 584 in FIG. 72).
 第2のディーラ装置12Bは、k個の乱数βi(i=1,・・・,k)を生成し、その積βを計算する(図73のステップ612、614)。 The second dealer 12B generates k random numbers β i (i = 1,..., K) and calculates the product β (steps 612 and 614 in FIG. 73).
 第1のディーラ装置12Aは、自身を含むk個のサーバから分散値Wa(xi)を集め、k個の分散値Wa(xi)を解き、ai,jを求めて桁あわせをしながらaを計算し、αをかけたαaを復元装置16に送信する(図72のステップ586~602)。 The first dealer 12A collects variance values Wa (x i ) from k servers including itself, solves k variance values Wa (x i ), finds a i, j and performs digit alignment. Then, a is calculated, and αa multiplied by α is transmitted to the restoration device 16 (steps 586 to 602 in FIG. 72).
 第2のディーラ装置12Bは、自身を含むk個のサーバから分散値Wb(xi)を集め、k個の分散値Wb(xi)を解き、bi,jを求めて桁あわせをしながらbを計算し、βをかけたβbを復元装置16に送信する(図73の616~620)。 The second dealer 12B collects the variance values Wb (x i ) from the k servers including itself, solves the k variance values Wb (x i ), finds b i, j and performs digit alignment. Then, b is calculated, and βb multiplied by β is transmitted to the restoration device 16 (616 to 620 in FIG. 73).
[復元]
 第1のディーラ装置12Aは、自身と第2のディーラ装置12Bを含むk個のサーバxj(j=1,・・・,k)にαjを送信する(図74のステップ622)。
 第2のディーラ装置12Bは自身と第1のディーラ装置12Aを含むk個のサーバxj(j=1,・・・,k)にβjを送信する(ステップ624)。
 上記k個のサーバxj(j=1,…,k)は積αjβjを計算する(ステップ626)。
 サーバxj(j=1,…,k)はWab’(xj)とαjβjを復元装置16に送信する(ステップ628)。
 復元装置16は、αjβj(j=1,・・・,k)をかけてαβを計算する(図75のステップ630、632)。
 復元装置16は、αa・βb/αβを計算してabを得る(図75のステップ634)。
 このように、第7の実施の形態の小型化と第8の実施の形態のランプ型による小型化は両立可能である。
[Restore]
The first dealer apparatus 12A transmits α j to k servers x j (j = 1,..., K) including itself and the second dealer apparatus 12B (step 622 in FIG. 74).
The second dealer apparatus 12B transmits β j to k servers x j (j = 1,..., K) including itself and the first dealer apparatus 12A (step 624).
The k servers x j (j = 1,..., K) calculate the product α j β j (step 626).
The server x j (j = 1,..., K) transmits Wab ′ (x j ) and α j β j to the restoration device 16 (step 628).
The restoration device 16 calculates αβ by multiplying α j β j (j = 1,..., K) ( steps 630 and 632 in FIG. 75).
The restoration device 16 calculates αa · βb / αβ to obtain ab (step 634 in FIG. 75).
Thus, the miniaturization of the seventh embodiment and the miniaturization by the lamp type of the eighth embodiment can be compatible.
<第9の実施の形態>
 (k,n)閾値秘密分散法における計算量を少なくする方式として、秘密情報をビット列として扱いXORによる演算だけで秘密分散を実現する手法(以降XOR法)が提案されている。このXOR法は準同型性を持たないため,秘匿計算に対応できないという問題がある。それに対してXOR法を拡張し、秘密情報をビット列ではなく多値の数値として扱い、XORの代わりに加減算のみで秘密分散が行える手法(以降、多値化法)を提案されている[5]。しかし、[5]の手法は法とする数が大きく効率的でない。さらに、この手法は秘密情報の分散法、復元法、及び加減算は提案されているが、乗算法は提案されていない。
<Ninth embodiment>
As a method for reducing the amount of calculation in the (k, n) threshold secret sharing method, a method for treating secret information as a bit string and realizing secret sharing only by an XOR operation (hereinafter referred to as XOR method) has been proposed. Since this XOR method does not have homomorphism, there is a problem that it cannot cope with a secret calculation. On the other hand, the XOR method has been extended to treat secret information as a multi-valued numerical value instead of a bit string, and a method (hereinafter multi-valued method) that can perform secret sharing only by addition and subtraction instead of XOR [5] . However, the method [5] has a large number of modulo and is not efficient. Furthermore, as for this method, a secret information distribution method, restoration method, and addition / subtraction have been proposed, but a multiplication method has not been proposed.
よって、法を最適な値とした基本的な多値化法の分散と復元アルゴリズムを以下に示す。
S(<ed)を素数p未満のe進数d桁の整数とし、それをn-1分割したものをSi(<ed/(n-1))とし(i=1,・・・,n-1)、乱数ri jもSiと同サイズの整数とし、素数p’(<ed/(n-1))を法として演算が行われる([5]の手法はpを法として演算されている)。この特徴は請求項13に示される。
 第9の実施の形態では、第nのサーバ14xnは、第0のサーバ14x0とする。
Therefore, the distribution and restoration algorithm of the basic multilevel method with the optimal value of the method is shown below.
Let S (<e d ) be an e-decimal d-digit integer less than the prime number p, and Si (<e d / (n-1) ) obtained by dividing it by n-1 (i = 1, ..., n-1), random number r i j is also an integer of the same size as Si, and the operation is performed using the prime number p '(<e d / (n-1) ) as the modulo (the method in [5] is modulo p Has been calculated). This feature is indicated in claim 13.
In the ninth embodiment, the nth server 14xn is the 0th server 14x0.
多値化法1(基本形)
[分散]
第1のディーラ装置12AのCPU22は、図90の分散処理を実行する。即ち、ステップ832で、秘密情報Sを、次のようにn-1個の部分秘密情報に分割する。ただし、S=0とする。
Figure JPOXMLDOC01-appb-M000005
Multilevel method 1 (basic form)
[dispersion]
The CPU 22 of the first dealer apparatus 12A executes the distributed processing of FIG. That is, in step 832, the secret information S is divided into n-1 partial secret information as follows. However, S 0 = 0.
Figure JPOXMLDOC01-appb-M000005
 ステップ834で、Sと同じサイズの乱数rα βを全て独立に(k-1)n-1個生成する。
Figure JPOXMLDOC01-appb-M000006
In step 834, (k−1) n−1 random numbers r α β having the same size as S are generated independently.
Figure JPOXMLDOC01-appb-M000006
 ステップ836で、部分分散情報W(i,j)を以下の式により0≦i≦n-1,0≦j≦n-2においてそれぞれ生成する。
Figure JPOXMLDOC01-appb-M000007
In step 836, partial dispersion information W (i, j) is generated by 0 ≦ i ≦ n−1,0 ≦ j ≦ n−2 according to the following equations.
Figure JPOXMLDOC01-appb-M000007
 ただし、i=1かつj=2,3,i≧2かつj=1のときのSj-iの符号を反転する。{ }はh=0からk-2までの加算(Σ)を意味する。 However, the sign of S ji when i = 1 and j = 2, 3, i ≧ 2 and j = 1 is reversed. {} Means addition (Σ) from h = 0 to k−2.
 ステップ838で、0≦i≦n-1において各部分分散情報W(i,0),W(i,1),…,W(i,n-2)を連結して分散情報Wiを生成する。
Figure JPOXMLDOC01-appb-M000008
In step 838, 0 ≦ i ≦ n- 1 in each partial shared information W (i, 0), W (i, 1), ..., generates the W (i, n-2) connected to the shared information W i To do.
Figure JPOXMLDOC01-appb-M000008
 ステップ840で、分散情報Wiを第iサーバ14xiに送信する。 In step 840, the shared information W i is transmitted to the i-th server 14x i .
[復元]
 復元装置16のCPU22は、図91の復元処理を実行する。即ち、ステップ842で、復元に用いるk個の分散情報Wt0,…,Wtk-1(0≦t0≦…≦tk≦n-1)をk個のサーバから集める。ステップ844で、k個の分散情報Wt0,…,Wtk-1を、以下の部分分散情報に分割する。
[Restore]
The CPU 22 of the restoration device 16 executes the restoration process of FIG. That is, in step 842, k pieces of distributed information W t0 ,..., W tk-1 (0 ≦ t 0 ≦... ≦ t k ≦ n−1) used for restoration are collected from k servers. In step 844, k pieces of shared information W t0 ,..., W tk-1 are divided into the following partial shared information.
Figure JPOXMLDOC01-appb-M000009
Figure JPOXMLDOC01-appb-M000009
 ステップ846で、上記分割した部分分散情報を用いて2進数ベクトルV(ti,j)を生成する。 In step 846, a binary vector V (ti, j) is generated using the divided partial dispersion information.
 例えば、部分分散情報W(ti,j)の場合には、2進数ベクトルV(ti,j)は、次の通りである。
Figure JPOXMLDOC01-appb-M000010
For example, in the case of the partial dispersion information W (t i , j), the binary vector V (ti, j) is as follows.
Figure JPOXMLDOC01-appb-M000010
ステップ848で、ベクトルV(t0,0),…,V(tk-1,n-2)から以下の行列を生成する。
Figure JPOXMLDOC01-appb-M000011
In step 848, the following matrix is generated from the vectors V (t0,0) ,..., V (tk-1, n-2) .
Figure JPOXMLDOC01-appb-M000011
ステップ850で、部分分散情報を以下のベクトルW(t0,…,tk-1)のように表す。
Figure JPOXMLDOC01-appb-M000012
In step 850, the partial dispersion information is represented as the following vector W (t0,..., Tk-1) .
Figure JPOXMLDOC01-appb-M000012
ステップ852で、Gauss-Jordanの消去法を用いて
Figure JPOXMLDOC01-appb-M000013

を2進数の
Figure JPOXMLDOC01-appb-M000014

 に変形することにより、全ての部分秘密情報のベクトルS(k,n)を求める。
In step 852, using Gauss-Jordan elimination
Figure JPOXMLDOC01-appb-M000013

The binary number
Figure JPOXMLDOC01-appb-M000014

To obtain a vector S (k, n) of all partial secret information.
 G(k,n)は以下のように表す。
Figure JPOXMLDOC01-appb-M000015
G (k, n) is expressed as follows.
Figure JPOXMLDOC01-appb-M000015
この際,(4)の式にGauss-Jordanの消去法を用いることで以下のような式が求まる。
S(k,n)=G(k,n) ・R(k,n)
At this time, the following equation can be obtained by using Gauss-Jordan elimination in equation (4).
S (k, n) = G (k, n)・ R (k, n)
 また,S(k,n)は以下のように表せる。 S (k, n) can be expressed as follows.
S(k,n)=(S1,S2,…,Sn-1,*,…,*)T S (k, n) = (S 1 , S 2 ,…, S n-1 , *,…, *) T
 よって,全ての部分秘密情報を得る。 Therefore, all partial secret information is obtained.
ステップ854で、全ての部分秘密情報を連結し,秘密情報Sを得る。
Figure JPOXMLDOC01-appb-M000016
In step 854, all pieces of partial secret information are concatenated to obtain secret information S.
Figure JPOXMLDOC01-appb-M000016
 以下、多値化法1(基本系)に対する例を説明する。
[分散]
 以下に、上記に対する例として、k=3、n=5の場合について示す。秘密情報Sを、S=3582(0≦i≦4、0≦j≦3)とし、n-1個(桁毎)に分割する場合を考える。よって、S(<104)であり、Si(<10)となる。よって、演算はp’=11を法として行う([5]は104を超えるpを法としている)。
 秘密情報S(=3582)は以下のように分割される(ステップ832)。
Figure JPOXMLDOC01-appb-M000017
Hereinafter, an example for the multilevel method 1 (basic system) will be described.
[dispersion]
As an example for the above, a case where k = 3 and n = 5 will be described. Consider a case where the secret information S is S = 3582 (0 ≦ i ≦ 4, 0 ≦ j ≦ 3) and is divided into n-1 pieces (every digit). Therefore, S (<10 4 ) and Si (<10). Therefore, the operation is performed modulo p ′ = 11 ([5] is modulo p exceeding 10 4 ).
The secret information S (= 3582) is divided as follows (step 832).
Figure JPOXMLDOC01-appb-M000017
 擬似乱数rを以下の値とする(ステップ834)。
Figure JPOXMLDOC01-appb-M000018
The pseudo random number r is set to the following value (step 834).
Figure JPOXMLDOC01-appb-M000018
 ステップ836で、以下を計算する。なお、h=0からk-2=1までが加算されるので、以下のように、r 、j=1でのr i+jが加算される。 In step 836, the following is calculated: Since h = 0 to k−2 = 1 are added, r 1 i + j with r 0 j and j = 1 is added as follows.
Figure JPOXMLDOC01-appb-M000019

 ただし、次の時にSj-iの符号を反転する。i=1かつj=2、3、i≧2かつj=1
Figure JPOXMLDOC01-appb-M000019

However, the sign of S ji is reversed at the next time. i = 1 and j = 2, 3, i ≧ 2 and j = 1
以下の表1にユーザに配布される部分分散情報の構成表を示す。
Figure JPOXMLDOC01-appb-T000020

 部分分散情報の構成表
Table 1 below shows a configuration table of partial shared information distributed to users.
Figure JPOXMLDOC01-appb-T000020

Partially distributed information configuration table
サーバPの分散情報Wは、6392となる。
サーバPの分散情報Wは、106910となる。
サーバPの分散情報Wは、0103となる。
サーバPの分散情報Wは、5592となる。
サーバPの分散情報Wは、24610となる。
Distributed information W 0 of the server P 0 is a 6392.
Distributed information W 1 of the server P 1 is a 106,910.
Distributed information W 2 of the server P 2 is a 0103.
Distributed information W 3 of the server P 3 is a 5592.
The shared information W 0 of the server P 4 is 24610.
[復元]
 ユーザP、P、Pの分散情報W、W、Wが集まった場合(ステップ842)の復元処理を考える。
 全ての部分分散情報を表すベクトルW(0,1,2),
[Restore]
Consider the restoration process when the shared information W 0 , W 1 , W 2 of the users P 0 , P 1 , P 2 gather (step 842).
A vector W (0,1,2) representing all partial variance information,
Figure JPOXMLDOC01-appb-M000021

は以下のようになる(ステップ844~846)。
Figure JPOXMLDOC01-appb-M000021

Is as follows (steps 844 to 846).
Figure JPOXMLDOC01-appb-M000022
Figure JPOXMLDOC01-appb-M000022
 Gauss-Jordanの消去法を用いることによって
Figure JPOXMLDOC01-appb-M000023

を、
Figure JPOXMLDOC01-appb-M000024
By using Gauss-Jordan elimination
Figure JPOXMLDOC01-appb-M000023

The
Figure JPOXMLDOC01-appb-M000024
に変形することにより,全ての部分秘密情報のベクトルS(3,5)を求める(ステップ852)。 To obtain a vector S (3,5) of all partial secret information (step 852).
Figure JPOXMLDOC01-appb-M000025
Figure JPOXMLDOC01-appb-M000025
 よって,全ての部分秘密情報が復元されたので,これらを連結して秘密情報Sを復元する(ステップ854)。
Figure JPOXMLDOC01-appb-M000026
Therefore, since all the partial secret information has been restored, the secret information S is restored by concatenating them (step 854).
Figure JPOXMLDOC01-appb-M000026
秘匿加算1”’
 次に、文献[5]に示される分散値同士の加算による秘密情報の秘匿加算について以下に示す。ただし、この場合、Siが素数p’(<ed/(n-1))未満の整数であるのでSi+Si’より大きな素数q(<ed/(n-1)+1)を法として演算が行われる。
Concealment addition 1 "'
Next, the secret addition of secret information by adding the variance values shown in the document [5] will be described below. However, in this case, since Si is an integer less than the prime number p ′ (< ed / (n-1) ), the prime number q (< ed / (n-1) +1 ) larger than Si + Si 'is modulo. Is calculated as follows.
[分散]
 秘密情報aをもつオーナの第1のディーラ装置12AのCPU22は多値化法[分散]の図90のステップ832~ステップ840を実行する。即ち、秘密情報Sに代えて秘密情報aをn-1個の部分秘密情報に分割してA1,・・・,An-1を生成し、第iのサーバ14xに対する分散値Wai=Wa(i,0),・・・,Wa(i,n-1)を計算し、第iのサーバ14xに送信する。
[dispersion]
The CPU 22 of the owner's first dealer 12A having the secret information a executes steps 832 to 840 of FIG. That is, by dividing the secret information a in place of the secret information S into n-1 pieces of partial secret information A1, · · ·, generates An-1, the dispersion value to the server 14x i of the i Wai = Wa ( i, 0),..., Wa (i, n-1) are calculated and transmitted to the i- th server 14xi.
 また、秘密情報bをもつオーナBの第2のディーラ装置12BのCPU22は多値化法[分散] の図90のステップ832~ステップ840を実行する。即ち、秘密情報Sに代えて秘密情報bをn-1個の部分秘密情報に分割してB1,・・・,Bn-1を生成し、第iのサーバ14xに対する分散値Wbi=Wb(i,0),・・・,Wb(i,n-1)を計算し、第iのサーバ14xに送信する。 Further, the CPU 22 of the second dealer apparatus 12B of the owner B having the secret information b executes steps 832 to 840 in FIG. 90 of the multi-value quantization method [distribution]. That is, by dividing the secret information b in place of the secret information S into n-1 pieces of partial secret information B1, · · ·, generates Bn-1, the dispersion value to the server 14x i of the i Wbi = Wb ( i, 0),..., Wb (i, n-1) are calculated and transmitted to the i- th server 14xi.
[加算]
 第iのサーバ14xは以下を計算する。
Wabi=Wai+Wbi=W(i,0),W(i,1),・・・,W(i,n-1)
 ただし、W(i,j)=Wa(i,j)+Wb(i,j)
[Add]
The i-th server 14x i calculates:
Wabi = Wai + Wbi = W (i, 0), W (i, 1), ..., W (i, n-1)
Where W (i, j) = Wa (i, j) + Wb (i, j)
[復元]
 復元者の復元装置16のCPU22は、図92の復元処理を実行する。即ち、ステップ862で、Wabiを集め、ステップ864で、Wabjを用いて、以下の式に基づいて2進数ベクトルV(ti,j)を生成する。
Figure JPOXMLDOC01-appb-M000027
[Restore]
The CPU 22 of the restoring device 16 of the restoring person executes the restoring process of FIG. That is, in step 862, Wabi is collected, and in step 864, a binary vector V (t i , j) is generated based on the following equation using Wabj.
Figure JPOXMLDOC01-appb-M000027
 ステップ866で、加算結果a+bを復元する。すなわち、W(ti,j)とR(k,n)の関係は上記のようになるので、Gauss-Jordanの消去法を用いてR(k,n)を求めることにより、(A1+B1,・・・,An-1+Bn-1,***)となる加算結果S=a+bを求める。 In step 866, the addition result a + b is restored. That is, since the relationship between W (ti, j) and R (k, n) is as described above, by obtaining R (k, n) using the Gauss-Jordan elimination method, (A1 + B1, ..., An-1 + Bn-1, ***) is obtained as S = a + b.
 次に、多値化法の秘匿加算1”’に対する例を説明する。
 以下にk=2,n=3,A=23,B=68の場合の例を示す。ここではA,Bとも2桁の値であるのでp=101とし、p’=11よりq=23とし、演算はqを法として行われるとする。
Next, an example of the multivalue conversion method for the secret addition 1 ″ ′ will be described.
An example in the case of k = 2, n = 3, A = 23, and B = 68 is shown below. Here, since both A and B are two-digit values, it is assumed that p = 101, p ′ = 11 and q = 23, and the operation is performed modulo q.
[分散]
 ユーザAの第1のディーラ装置12Aは保持している秘密情報A=23を2分割してA1=2,A2=3とし、多値化法により秘密分散する(ただし、A0=0)(図90のステップ832~ステップ840)。ここでは、(k-1)n-1=2個の乱数をr0=5,r1=4とする。
[dispersion]
The first dealer apparatus 12A of user A divides the secret information A = 23 held into two to make A1 = 2 and A2 = 3, and the secret is distributed by the multi-value method (however, A0 = 0) (FIG. 90, step 832 to step 840). Here, (k−1) n−1 = 2 random numbers are assumed to be r0 = 5 and r1 = 4.
 Wa0=(Wa00)(Wa01)=(A0+r0)(A1+r1)=(5)(6)を、第0のサーバ14xへ送信する。
 Wa1=(Wa10)(Wa11)=(A2+r0)(A0+r1)=(8)(4)を、第1のサーバ14xへ送信する。
 Wa2=(Wa20)(Wa21)=(A1+r0)(-A2+r1)=(7)(1)を、第2のサーバ14xへ送信する。
Wa0 = (Wa00) (Wa01) = (A0 + r0) a (A1 + r1) = (5 ) (6), and transmits to the 0th server 14x 0.
Wa1 = (Wa10) (Wa11) = (A2 + r0) (A0 + r1) = (8) (4) , and transmits first to the server 14x 1.
Wa2 = (Wa20) (Wa21) = (A1 + r0) (- A2 + r1) = (7) to (1), and transmits the second to the server 14x 2.
 ユーザBは第2のディーラ装置12B保持している秘密情報B=68を2分割してB1=6,B2=8とし、多値化法により秘密分散する(ただし、B0=0)(図90のステップ832~ステップ840)。ここでは、(k-1)n-1=2個の乱数をt0=7,t1=8とする。
 Wb0=(Wb00)(Wb01)=(B0+t0)(B1+t1)=(7)(14) を、第0のサーバ14xへ送信する。
 Wb1=(Wb10)(Wb11)=(B2+t0)(B0+t1)=(15)(8) を、第1のサーバ14xへ送信する。
 Wb2=(Wb20)(Wb21)=(B1+t0)(-B2+t1)=(13)(0) を、第2のサーバ14xへ送信する。
The user B divides the secret information B = 68 held in the second dealer apparatus 12B into two to make B1 = 6 and B2 = 8, and the secret is distributed by the multi-value method (however, B0 = 0) (FIG. 90). Step 832 to Step 840). Here, (k−1) n−1 = 2 random numbers are assumed to be t0 = 7 and t1 = 8.
Wb0 = (Wb00) (Wb01) = (B0 + t0) (B1 + t1) = (7) (14) and transmitted to the 0th server 14x 0.
Wb1 = (Wb10) (Wb11) = (B2 + t0) (B0 + t1) = (15) to (8), and transmits first to the server 14x 1.
Wb2 = (Wb20) (Wb21) = (B1 + t0) (- B2 + t1) = (13) (0) , and transmits the second to the server 14x 2.
[加算]
 各サーバは以下を計算する。
第0のサーバ14x0は、Wab0を計算する。
Wab0=(Wa00+Wb00)(Wa01+Wb01)=(W00)(W01)= (5+7)(6+14)=(12)(20) 
 第1のサーバ14x1は、Wab1を計算する。
Wab1=(Wa10+Wb20)(Wa11+Wb21)=(W10)(W11)= (8+15)(4+8)=(0)(12) 
[Add]
Each server calculates:
The 0th server 14x0 calculates Wab0.
Wab0 = (Wa00 + Wb00) (Wa01 + Wb01) = (W00) (W01) = (5 + 7) (6 + 14) = (12) (20)
The first server 14x1 calculates Wab1.
Wab1 = (Wa10 + Wb20) (Wa11 + Wb21) = (W10) (W11) = (8 + 15) (4 + 8) = (0) (12)
Wab2=(Wa20+Wb20)(Wa21+Wb21)=(W20)(W21)=(7+13)(1+0)=(20)(0)  Wab2 = (Wa20 + Wb20) (Wa21 + Wb21) = (W20) (W21) = (7 + 13) (1 + 0) = (20) (0)
[復元]
 W00=Wa00+Wb00=(A0+r0)+(B0+t0)=0・(A1+B1)+0・(A2+B2)+1・(r0+t0)+0(r1+t1)よりV00=(0010)となる。同様に、V01=(1001),V10=(0110),V11=(0001),V20=(1010),V21=(0-101) となるので、全体は以下のようになる。
[Restore]
W00 = Wa00 + Wb00 = (A0 + r0) + (B0 + t0) = 0 ・ (A1 + B1) +0 ・ (A2 + B2) +1 ・ (r0 + t0) +0 (r1 + t1) V00 = (0010). Similarly, since V01 = (1001), V10 = (0110), V11 = (0001), V20 = (1010), V21 = (0-101), the whole is as follows.
Figure JPOXMLDOC01-appb-M000028
Figure JPOXMLDOC01-appb-M000028
 Gauss-Jordanの消去法を用いて、上記を解くことにより以下が求まる。
Figure JPOXMLDOC01-appb-M000029
Solving the above using Gauss-Jordan's elimination method gives
Figure JPOXMLDOC01-appb-M000029
 よって、A1+B1=W01-W11=20-12=8、A2+B2=W10-W00=0-12=-12=11(mod23)となり、桁あわせをすると、8*10+11=91=23+68=A+Bとなる。 Therefore, A1 + B1 = W01-W11 = 20-12 = 8, A2 + B2 = W10-W00 = 0-12 = -12 = 11 (mod23), and when the digits are aligned, 8 * 10 + 11 = 91 = 23 + 68 = A + B.
 以上より、提案の多値化法によって秘密情報の分散、復元、加算(減算も同様)が実現できることが言える。 From the above, it can be said that the secret information can be distributed, restored, and added (and subtracted as well) by the proposed multi-value method.
秘匿乗算1”’
 次に、秘匿乗算を示す。
 以降ではa,bをe進数d桁で、素数p(>ed)以下の整数とし、aをL分割してAi(i=1,・・・,L)としたとき、Aiは素数p’(>ed/L)以下の整数とする。秘密分散に関する演算は素数q’(>p’u:uは1以上の整数)上で演算が行われる。まず、定数乗算が可能であることを示す。
Secret multiplication 1 "'
Next, secret multiplication is shown.
In the following, when a and b are e-digit d digits and integers less than or equal to prime p (> e d ), and a is divided into L and Ai (i = 1, ..., L), Ai is prime p It should be an integer less than '(> e d / L ). An operation related to secret sharing is performed on a prime number q ′ (> p ′ u : u is an integer of 1 or more). First, we show that constant multiplication is possible.
[分散]
 秘密情報aをもつオーナAの第1のディーラ装置12AのCPU22は、図93に示す分散処理を実行する。即ち、ステップ872で、素数q未満のk個の乱数αiを生成し、q’を法としてその積αを計算する。
 α=α1・α2・・・αk
[dispersion]
The CPU 22 of the first dealer device 12A of the owner A having the secret information a executes the distributed processing shown in FIG. That is, in step 872, k random numbers α i less than the prime number q are generated, and the product α is calculated modulo q ′.
α = α 1・ α 2・ ・ ・ α k
 ステップ874で、秘密情報aを分散したものにαをかけて、多値化法[分散]の処理(図87のステップ832~ステップ840)を実行する。これにより、サーバ14x(i=0,…,n-1)に、分散値Wa’i=Wa’(i,0),・・・,Wa’(i,n-1)を送信する。ステップ876で、各αj(j=1,…,k)について、多値化法[分散]の処理(図90のステップ832~ステップ840)を実行する。これにより、サーバ4x(i=1,…,n)に分散値Wαji=Wαj(i,0),・・・,Wαj(i,n-1)(j=1,…,k)を送信する。 In step 874, α is applied to the secret information a distributed, and the multi-value quantization [distribution] process (steps 832 to 840 in FIG. 87) is executed. As a result, the distributed value Wa′i = Wa ′ (i, 0),..., Wa ′ (i, n−1) is transmitted to the server 14x i (i = 0,..., N−1). In step 876, for each αj (j = 1,..., K), the multi-value quantization [dispersion] process (steps 832 to 840 in FIG. 90) is executed. As a result, the distributed values Wαji = Wαj (i, 0),..., Wαj (i, n-1) (j = 1,..., K) are transmitted to the server 4x i (i = 1,..., N). To do.
 秘密情報bをもつオーナBの第2のディーラ装置12AのCPU22は、図94に示す分散処理を実行する。即ち、ステップ882で、素数q未満のk個の乱数βiを生成し、q’を法としてその積βを計算する。
 β=β1・β2・・・βk
The CPU 22 of the second dealer apparatus 12A of the owner B having the secret information b executes the distributed processing shown in FIG. That is, in step 882, k random numbers β i less than the prime number q are generated, and the product β is calculated using q ′ as the modulus.
β = β 1・ β 2・ ・ ・ β k
 ステップ848で、秘密情報bを分散したものにβをかけて、多値化法[分散]の処理(図90のステップ832~ステップ840)を実行する。これにより、第iのサーバ14xi(i=1,…,n)に分散値Wb’i=Wb’(i,0),・・・,Wb’(i,n-1)を送信する。ステップ886で、各βj(j=1,…,k)について多値化法[分散]の処理(図90のステップ832~ステップ840)を実行する。これにより、第iのサーバ14xi(i=0,…, n-1)に分散値Wβji=Wβj(i,0),・・・,Wβj(i,n-1)(j=1,…,k)送信する。 In step 848, β is added to the distributed secret information b and the multi-value quantization [distributed] processing (steps 832 to 840 in FIG. 90) is executed. As a result, the distributed value Wb′i = Wb ′ (i, 0),..., Wb ′ (i, n−1) is transmitted to the i- th server 14x i (i = 1,..., N). In step 886, the multi-value quantization [dispersion] process (steps 832 to 840 in FIG. 90) is executed for each βj (j = 1,..., K). As a result, the i-th server 14xi (i = 0,..., N−1) has distributed values Wβji = Wβj (i, 0),..., Wβj (i, n−1) (j = 1,. k) Send.
[乗算]
 サーバシステム内の1つのサーバ14xのCPU22は、多値化法[復元]の処理(図91のステップ842~ステップ854)を実行する。即ち、他のk個のサーバからWa’iを集め、αaを復元する。そして、サーバ14xは、αaを他のサーバ14x(j=1,…,n)に送信する。
 サーバ14x(j=1,…,n)は自分がもつWb’jにαaをかけてWab’jを生成する。
   Wab’j=Wab’(j,0),…,Wab’(j,n-1) ただし、Wab’(j,i)=αaWb’(j,i)
[Multiplication]
CPU22 of one server 14x d in the server system performs the process of multi-level method Restore (steps 842 through step 854 in FIG. 91). That is, Wa′i is collected from other k servers and αa is restored. Then, the server 14x d transmits αa to the other server 14x j (j = 1,..., N).
The server 14x j (j = 1,..., N) generates Wab′j by multiplying αb by Wb′j held by itself.
Wab'j = Wab '(j, 0), ..., Wab' (j, n-1) where Wab '(j, i) = αaWb' (j, i)
[復元]
 復元に参加するサーバ14x(j=1,…,k)のCPU22は、図95のαjβjの計算送信処理を実行する。即ち、ステップ892で、Wαjiについて多値化法[復元]の処理(図91のステップ842~ステップ854)を実行し、ステップ894で、Wβjiについて多値化法[復元]の処理(図88のステップ842~ステップ854)を実行する。即ち、指定されたjに応じたWαjiとWβjiをk個集め(i=1,…,k)、多値化法[復元]により1サーバ当たりαjとβjを1つずつ復元する。
[Restore]
The CPU 22 of the server 14x j (j = 1,..., K) participating in the restoration executes the calculation transmission process of αjβj in FIG. That is, in step 892, multi-value quantization [restoration] processing (step 842 to step 854 in FIG. 91) is executed for Wαji, and in step 894, multi-value quantization [restoration] processing (FIG. 88). Steps 842 to 854) are executed. That is, k Wαji and Wβji corresponding to the designated j are collected (i = 1,..., K), and αj and βj are restored one by one per server by the multivalue method [restoration].
 ステップ896で、積αjβjを計算し、ステップ898で、Wab'(xj)とαjβjを復元者に送信する。 In step 896, the product α j β j is calculated. In step 898, Wab ′ (x j ) and α j β j are transmitted to the restorer.
 復元者の復元装置16はk個のWab’jからαβabj(j=1,…,k)を復元し、桁合わせをしながらαβabを計算する。 The restoring device 16 of the restoring person restores αβab j (j = 1,..., K) from k Wab′j and calculates αβab while aligning digits.
 復元装置16はαjβj(j=1,・・・,k)からαβを合成し、αβabを割ってabを得る。 The restoration device 16 synthesizes αβ from αjβj (j = 1,..., K) and divides αβab to obtain ab.
 次に、多値化法の秘匿乗算”’に対する例を説明する。以下では、k=2,n=3,a=23,b=68の場合の例を示す。a,bとも十進2桁の値であり、α,βも同サイズの整数とすると、分散するαa、βbは10進4桁の数であるのでp=10007とし、これを2分割するためp’=101、q’=10007より、演算はq’=10007を法として行われるとする。 Next, an example for the multi-valued method is shown. An example in the case of k = 2, n = 3, a = 23, and b = 68 will be described below. Assuming that the values are digits and α and β are also integers of the same size, since αa and βb to be distributed are decimal four-digit numbers, p = 10007 is set, and p ′ = 101, q ′ for dividing this into two. = 10007, it is assumed that the calculation is performed modulo q ′ = 10007.
[分散]
 ユーザAの第1のディーラ装置12Aはα1=11,α2=2を生成し、α=α1・α2=22とする(図93のステップ872)。
[dispersion]
The first dealer device 12A of user A generates α 1 = 11, α 2 = 2 and sets α = α 1 · α 2 = 22 (step 872 in FIG. 93).
 ユーザAの第1のディーラ装置12Aは保持している秘密情報a=23を2分割してA2=2,A1=3とし、多値化法により秘密分散したWa0,Wa1,Wa2にαをかけてWa’0,Wa’1,Wa’2を得る(ただし、A0=0)(図93のステップ874)。ここでは、(k-1)n-1=2個の乱数をr0=4,r1=5とする。その他にαjを多値化法によりWαji(i=1,・・・,n)を計算・分散する(図93のステップ876)。
Wa0=(Wa00)(Wa01)=(A0+r0)(A1+r1)=(4)(8)に、22をかけたWa’0=(88)(176) を、第0のサーバ14xに送信する。
Wa1=(Wa10)(Wa11)=(A2+r0)(A0+r1)=(6)(5) に、22をかけたWa’1=(132)(110) を、第1のサーバ14xに送信する。
Wa2=(Wa20)(Wa21)=(A1+r0)(-A2+r1)=(7)(3) に、22をかけたWa’2=(154)(66) を、第2のサーバ14xに送信する。
The first dealer apparatus 12A of user A divides the stored secret information a = 23 into two and sets A2 = 2 and A1 = 3, and multiplies Wa0, Wa1, and Wa2 by α and multiplies the secrets. Wa′0, Wa′1, and Wa′2 are obtained (A0 = 0) (step 874 in FIG. 93). Here, (k−1) n−1 = 2 random numbers are assumed to be r0 = 4 and r1 = 5. In addition, Wαji (i = 1,..., N) is calculated and distributed by the multivalued method of αj (step 876 in FIG. 93).
Wa0 = (Wa00) (Wa01) = (A0 + r0) (A1 + r1) = (4) (8) multiplied by 22, Wa'0 = (88) (176) is obtained as the 0th server 14x 0 Send to.
Wa1 = (Wa10) (Wa11) = (A2 + r0) (A0 + r1) = (6) to (5), the Wa'1 = (132) (110) multiplied by 22, the first server 14x 1 Send to.
Wa2 = (Wa20) (Wa21) = (A1 + r0) (-A2 + r1) = (7) (3) and Wa'2 = (154) (66) multiplied by 22 are used as the second server 14x. 2 to send.
 ユーザBの第2のディーラ装置12Bはβ1=61,β2=51を生成し、β=3111とする(図94のステップ882)。 The second dealer 12B of user B generates β 1 = 61 and β 2 = 51 and sets β = 3111 (step 882 in FIG. 94).
 ユーザBの第2のディーラ装置12Bは保持している秘密情報b=68を2分割してB2=6,B1=8とし、多値化法により秘密分散する(ただし、B0=0)(図94のステップ884)。ここで、乱数をt0=37,t1=18とする。その他にβjを多値化法によりWb’0、Wb’2 、Wb’3計算・分散する(図94のステップ886)。
 Wb0=(Wb00)(Wb01)=(B0+t0)(B1+t1)=(37)(26)に、
3111をかけたWb’0=(115107=5030)(80886=830)を、第0のサーバ14xに送信する。
 Wb1=(Wb10)(Wb11)=(B2+t0)(B0+t1)=(43)(18) に、
3111をかけたWb’1=(133773=3682)(55998=5963) を第1のサーバ14xに送信する。
 Wb2=(Wb20)(Wb21)=(B1+t0)(-B2+t1)=(45)(12) に、
3111をかけたWb’2=(139995=9904)(37332=7311) を第2のサーバ14xに送信する。
The second dealer apparatus 12B of the user B divides the stored secret information b = 68 into two to make B2 = 6, B1 = 8, and the secret is distributed by the multi-value method (however, B0 = 0) (FIG. 94 step 884). Here, it is assumed that the random numbers are t0 = 37 and t1 = 18. In addition, βj is calculated and distributed by Wb′0, Wb′2 and Wb′3 by the multivalue method (step 886 in FIG. 94).
Wb0 = (Wb00) (Wb01) = (B0 + t0) (B1 + t1) = (37) (26)
The Wb'0 = (115107 = 5030) ( 80886 = 830) multiplied by 3111, to the server 14x 0 of the 0.
Wb1 = (Wb10) (Wb11) = (B2 + t0) (B0 + t1) = (43) (18)
3111 multiplied by Wb'1 = (133773 = 3682) ( 55998 = 5963) to the transmission first to the server 14x 1.
Wb2 = (Wb20) (Wb21) = (B1 + t0) (-B2 + t1) = (45) (12)
3111 multiplied by Wb'2 = (139995 = 9904) ( 37332 = 7311) to the transmission second server 14x 2.
[乗算]
 サーバ14xdは下記によりWa’0とWa’1からαA1=66とαA2=44を復元し、αA2*10+αA1= 506=αaを計算する。
[Multiplication]
The server 14xd restores αA1 = 66 and αA2 = 44 from Wa′0 and Wa′1, and calculates αA2 * 10 + αA1 = 506 = αa.
Figure JPOXMLDOC01-appb-M000030
Figure JPOXMLDOC01-appb-M000030
 サーバ14xjは下記によりWb’0とWb’1からβB1(=24888)=4874(modq’)とβB2(=18666) =8659(modq’)を復元し、βB2*10+βB1=91464=(211548=)βbを計算し、αa*βb=46280784=8416(modq’)を復元者に送る。 The server 14xj restores βB1 (= 24888) = 4874 (modq ′) and βB2 (= 18666) = 8659 (modq ′) from Wb′0 and Wb′1, and βB2 * 10 + βB1 = 91464 = (211548) =) βb is calculated, and αa * βb = 46280784 = 8416 (modq ′) is sent to the restorer.
Figure JPOXMLDOC01-appb-M000031
Figure JPOXMLDOC01-appb-M000031
[復元]
 サーバ14x1はα1=11、β1=61を復元し、サーバ14x2はα2=2、β2=51を復元する。
 サーバ14x1はα1β1=11*61=671を、x2はα2β2=2*51=102を計算する。
 サーバ14x1はα1β1を、x2はα2β2を復元装置16に送信する。
 復元装置16はα1β1α2β2より68442=8400(modq’)を得て、q’を法としたその逆数である1974を計算し、αa*βb=8416にかけてq’で法をとると、ab=1564が得られる。
 以上は秘匿計算1に対応したものであるが、Shamirの秘密分散法の部分を多値化法に置き換えたものといえる。よって、Shamirの秘密分散法を多値化法に置き換えれば第1の実施の形態~第8の実施の形態の各手法に対応できることは明らかである。
[Restore]
Server 14x 1 restores the α 1 = 11, β 1 = 61, the server 14x2 restores the α2 = 2, β2 = 51.
Server 14x 1 is a α 1 β 1 = 11 * 61 = 671, x2 calculates α2β2 = 2 * 51 = 102.
The server 14 x 1 sends α 1 β 1 and x 2 sends α 2 β 2 to the restoration device 16.
The restoration device 16 obtains 68442 = 8400 (modq ′) from α 1 β 1 α 2 β 2 , calculates 1974 which is its reciprocal number modulo q ′, and calculates the modulus with q ′ over αa * βb = 8416. Then, ab = 1564 is obtained.
Although the above corresponds to the secret calculation 1, it can be said that the part of Shamir's secret sharing method is replaced with a multivalued method. Therefore, if Shamir's secret sharing method is replaced with a multilevel method, it is obvious that the methods of the first to eighth embodiments can be handled.
 第9の実施の形態における高速化は次の通りである。第8の実施の形態までのShamir法は多項式演算のため、復元には必ず多項式の連立方程式をとく、すなわち乗算やべき乗演算が必要であった。しかし、XOR型の復元はXORのみで処理ができる。第9の実施の形態では、XORを多値にしたものであり、秘匿乗算の場合、復元は加減算だけでよいので高速化が図られる。 Acceleration in the ninth embodiment is as follows. Since the Shamir method up to the eighth embodiment is a polynomial operation, the restoration always requires simultaneous equations of the polynomial, that is, multiplication or power operation is necessary. However, XOR-type restoration can be processed only with XOR. In the ninth embodiment, XOR is multi-valued, and in the case of concealment multiplication, since restoration only needs to be performed by addition / subtraction, the speed can be increased.
 また、法とする数については次の通りである。第7の実施の形態までは秘密情報Sのサイズまたはそのu倍のサイズで演算している。これに対し、第9の実施の形態では、Sを分解したサイズまたはそのu倍のサイズで演算する。よって、法とする数は大きくない。この特徴は請求項13に示される。 Moreover, the statutory numbers are as follows. Up to the seventh embodiment, calculation is performed with the size of the secret information S or u times the size. On the other hand, in the ninth embodiment, calculation is performed with a size obtained by decomposing S or a size that is u times as large. Therefore, the modulo number is not large. This feature is indicated in claim 13.
 また、多値化法の分散値の大きさを1/Lにするランプ型秘密分散法も、Shamir法をランプ型にした第8の実施の形態と同様に可能であることは明らかであり、この場合S(<ed)を素数p未満のe進数d桁の整数とすると、それをL(n-1)分割したSi(<ed/L(n-1))を用いて、同様の処理が行われる。このとき、乱数ri jもSiと同サイズの整数とし、素数p’(<edu/L(n-1))(uは1以上の整数)を法として演算が行われる([5]の手法はpを法として演算されている)。この特徴は請求項13に示される。 In addition, it is obvious that the ramp type secret sharing method in which the magnitude of the variance value of the multilevel method is 1 / L is also possible as in the eighth embodiment in which the Shamir method is a ramp type. In this case, if S (<e d ) is an e-decimal d-digit integer less than the prime number p, Si (< ed / L (n-1) ) divided by L (n-1 ) is used similarly. Is performed. At this time, the random number r i j is also assumed to be an integer of the same size as Si, and the arithmetic is performed using the prime number p ′ (<e du / L (n−1) ) (u is an integer of 1 or more) as a modulus ([5] Is calculated using p as the modulus). This feature is indicated in claim 13.
 以上のように、ランプ型多値化法は多値化法と同様に実現できるので、Shamirの秘密分散法をランプ型多値化法に置き換えれば第1の実施の形態~第8の実施の形態の各手法に対応できることは明らかである。 As described above, the ramp type multi-value method can be realized in the same manner as the multi-value method. Therefore, if the Shamir's secret sharing method is replaced with the ramp type multi-value method, the first to eighth embodiments are implemented. It is clear that each method of form can be handled.
 また、ランプ型多値化法と多値化法の違いは、多値化法がSを分割したサイズで演算しても、最後はこれらを集めるため分散値は秘密情報を同じサイズに戻りるのに対し、ランプ型多値化法では、分散値を集めても元の秘密情報の1/Lになっており、高速化と記憶容量の削減も同時に実現している点にある。 In addition, the difference between the ramp type multi-value method and the multi-value method is that even if the multi-value method calculates with a size obtained by dividing S, the distributed values return to the same size of the secret information because they are collected at the end. On the other hand, in the ramp type multi-valued method, even if the distributed values are collected, it is 1 / L of the original secret information, and the speed is increased and the storage capacity is reduced at the same time.
 2015年2月12日に出願された日本国特許出願2015-025825号の開示は、その全体が参照により本明細書に取り込まれる。 The entire disclosure of Japanese Patent Application No. 2015-025825 filed on February 12, 2015 is incorporated herein by reference.

Claims (18)

  1.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて分散値を計算する計算装置であって、
     k個以上の秘密情報の各々の分散値を計算する手段と、
     前記k個以上の秘密情報から合成値を生成する手段と、
     前記合成値を新たな秘密情報に作用させた秘匿化秘密情報を生成する手段と、
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed into n pieces, and the secret information can be restored by collecting k of the n pieces of shared values. A calculation device that calculates a variance value in a system that performs a secret operation using means that cannot restore secret information with L or less,
    means for calculating a variance value for each of the k or more pieces of secret information;
    Means for generating a composite value from the k or more pieces of secret information;
    Means for generating concealed secret information obtained by applying the composite value to new secret information;
    A computing device comprising:
  2.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘匿演算をする計算装置であって、
     第1の秘匿化秘密情報に用いられた第1の乱数を構成する複数の乱数のうちの1部である第1の部分乱数の分散値と、第2の秘匿化秘密情報に用いられた第2の乱数を構成する複数の乱数うちの1部である第2の部分乱数の分散値とを集めて、前記第1の部分乱数と前記第2の部分乱数を復元する手段と、
     前記復元した第1の部分乱数と第2の部分乱数を合成する手段と、
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed into n pieces, and the secret information can be restored by collecting k of the n pieces of shared values. A computing device that performs a secret calculation in a system that performs a secret calculation using means that cannot restore secret information with L or less,
    The distributed value of the first partial random number that is a part of a plurality of random numbers constituting the first random number used for the first concealment secret information, and the first used for the second concealment secret information Means for recovering the first partial random number and the second partial random number by collecting a variance value of a second partial random number that is a part of a plurality of random numbers constituting the random number of 2,
    Means for synthesizing the restored first partial random number and second partial random number;
    A computing device comprising:
  3.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘匿演算をする計算装置であって、
     k個以上の乱数を用いて秘匿化された秘匿化秘密情報を復元する手段と、
     前記復元した秘匿化秘密情報と他の値とに基づいて所定の演算をする手段と、
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed into n pieces, and the secret information can be restored by collecting k of the n pieces of shared values. A computing device that performs a secret calculation in a system that performs a secret calculation using means that cannot restore secret information with L or less,
    means for restoring concealment secret information concealed using k or more random numbers;
    Means for performing a predetermined calculation based on the restored concealment secret information and other values;
    A computing device comprising:
  4.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘密情報を復元する計算装置であって、
     k個以上の乱数を用いて秘匿化された秘匿化秘密情報を復元する手段と、
     前記乱数を合成する手段と、
     前記合成された乱数を用いて、前記復元された前記秘匿化秘密情報の秘匿化を解除する手段と、
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed into n pieces, and the secret information can be restored by collecting k of the n pieces of shared values. A computing device that restores secret information in a system that performs a secret calculation using means that cannot restore secret information with L or less,
    means for restoring concealment secret information concealed using k or more random numbers;
    Means for synthesizing the random number;
    Means for releasing the concealment of the restored concealment secret information using the synthesized random number;
    A computing device comprising:
  5.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘匿演算をする計算装置であって、
     k個以上の乱数を用いて秘匿化された秘匿化秘密情報における第1の合成乱数と、第2の合成乱数を構成するk個以上の乱数とを組み合わせて、前記第1の合成乱数を変換する手段
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed into n pieces, and the secret information can be restored by collecting k of the n pieces of shared values. A computing device that performs a secret calculation in a system that performs a secret calculation using means that cannot restore secret information with L or less,
    The first synthesized random number is converted by combining the first synthesized random number in the secrecy secret information concealed using k or more random numbers and the k or more random numbers constituting the second synthesized random number. A computing device comprising means for
  6.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘匿演算をする計算装置であって、
     秘匿化されていない分散値に、別の秘匿化秘密情報を構成するk個以上の乱数を作用させて秘匿化する手段
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed into n pieces, and the secret information can be restored by collecting k of the n pieces of shared values. A computing device that performs a secret calculation in a system that performs a secret calculation using means that cannot restore secret information with L or less,
    A computing device comprising: means for concealing by applying k or more random numbers constituting another concealment secret information to a non-confidential distributed value.
  7.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて分散値を計算する計算装置であって、
     複数の新たな秘密情報を秘匿化して複数の分散値を計算する手段と、
     前記複数の分散値の各々の並び順を、前記秘匿化する前の前記複数の新たな秘密情報の予め定められた並び順に応じて指定する手段と、
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed into n pieces, and the secret information can be restored by collecting k of the n pieces of shared values. A calculation device that calculates a variance value in a system that performs a secret operation using means that cannot restore secret information with L or less,
    Means for concealing a plurality of new secret information and calculating a plurality of variance values;
    Means for designating the order of each of the plurality of distributed values in accordance with a predetermined order of the plurality of new secret information before concealing;
    A computing device comprising:
  8.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて検索する秘密情報を指定する計算装置であって、
     検索用秘密情報に乱数を作用させ秘匿化する手段と、
     前記システムから受信した値に前記乱数を作用させる手段と、
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed into n pieces, and the secret information can be restored by collecting k of the n pieces of shared values. A computing device for designating secret information to be searched in a system that performs a secret calculation using means that cannot restore secret information with L or less,
    Means for concealing the search secret information by applying a random number;
    Means for applying the random number to a value received from the system;
    A computing device comprising:
  9.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて指定された秘密情報を検索する計算装置であって、
     前記秘密情報に対応する第1の検索用秘密情報を第1の乱数で秘匿化すると共に、入力された第2の検索用秘密情報を第2の乱数で秘匿化する手段と、
     前記秘匿化された前記第1の検索用秘密情報に基づく第1の値と前記秘匿化された前記第2の検索用秘密情報に基づく第2の値との差に基づいて、前記第1の検索用秘密情報と前記第2の検索用秘密情報との差を取得する手段と、
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed into n pieces, and the secret information can be restored by collecting k of the n pieces of shared values. A computing device that searches for secret information specified in a system that performs a secret operation using means that cannot restore secret information with L or less,
    Means for concealing the first search secret information corresponding to the secret information with a first random number, and concealing the input second search secret information with a second random number;
    Based on the difference between the first value based on the concealed first search secret information and the second value based on the concealed second search secret information, the first value Means for obtaining a difference between the search secret information and the second search secret information;
    A computing device comprising:
  10.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて分散値の更新を行う計算装置であって、
     乱数で秘密情報が秘匿化されて得られた分散値に対して、新たな乱数を生成し、前記生成した新たな乱数を新たな分散値として保存する手段
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed into n pieces, and the secret information can be restored by collecting k of the n pieces of shared values. A computing device that updates a distributed value in a system that performs a secret operation using means that cannot restore secret information with L or less,
    A computing device comprising means for generating a new random number for a distributed value obtained by concealing secret information with a random number and storing the generated new random number as a new distributed value.
  11.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて分散値の更新を行う計算装置であって、
     k個以上の補正情報から秘密情報を更新する更新値を計算する手段
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed into n pieces, and the secret information can be restored by collecting k of the n pieces of shared values. A computing device that updates a distributed value in a system that performs a secret operation using means that cannot restore secret information with L or less,
    A calculation device comprising means for calculating an update value for updating secret information from k or more pieces of correction information.
  12.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて分散値を計算する計算装置であって、
     生成されたh(1~k-1までの整数)個の乱数を分散値として定め、前記h個の分散値と前記秘密情報とに基づいて、n-h個の分散値を計算する手段と、
     k個以上の秘密情報から合成値を生成する手段と、
     前記合成値を新たな秘密情報に作用させた秘匿化秘密情報を計算する手段と、
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed into n pieces, and the secret information can be restored by collecting k of the n pieces of shared values. A calculation device that calculates a variance value in a system that performs a secret operation using means that cannot restore secret information with L or less,
    Means for determining the generated h (integer from 1 to k−1) random numbers as a distributed value and calculating n−h distributed values based on the h distributed values and the secret information; ,
    means for generating a composite value from k or more pieces of secret information;
    Means for calculating concealed secret information obtained by applying the composite value to new secret information;
    A computing device comprising:
  13.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて分散値を計算する計算装置であって、
     秘密情報をe進数d桁の数値としたとき、前記秘密情報をL(n-1)分割を行ってe進数d/L(n-1)桁の数値とする手段と、
     前記数値とされた秘密情報の分散、復元、及び秘匿演算の少なくとも1つを、
    Figure JPOXMLDOC01-appb-M000001

    より大きな素数を法として、乗算及び除算を加算及び減算に分解することなく、加算と減算だけで行う手段と、
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed to n. A calculation device that calculates a variance value in a system that performs a secret operation using means that cannot restore secret information with L or less,
    Means for dividing the secret information into an e-adic d / L (n-1) digit value by dividing the secret information into L (n-1) digits, when the secret information is an e-decimal digit digit value;
    At least one of the secret information distribution, restoration, and concealment calculation, which is the numerical value,
    Figure JPOXMLDOC01-appb-M000001

    Means for performing only addition and subtraction without decomposing multiplication and division into addition and subtraction modulo a larger prime number;
    A computing device comprising:
  14.   nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘匿演算または復元をする計算装置であって、
     秘匿化され複数の桁に分割された秘匿化秘密情報の桁に合わせて所定の演算を行う手段
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed into n pieces, and the secret information can be restored by collecting k of the n pieces of shared values. A computing device that performs a secret calculation or restoration in a system that performs a secret calculation using means that cannot restore secret information with L or less,
    A computing device comprising means for performing a predetermined calculation in accordance with the digit of the secret information that is concealed and divided into a plurality of digits.
  15.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘匿演算をする計算装置であって、
     前記秘密情報をp1以下の整数、乱数をp2以下の整数として、それらを乗算したp1*p2以下の秘匿化秘密情報をp1*p2より大きな素数を法として秘密分散または復号する手段
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed into n pieces, and the secret information can be restored by collecting k of the n pieces of shared values. A computing device that performs a secret calculation in a system that performs a secret calculation using means that cannot restore secret information with L or less,
    Computation device comprising means for secretly sharing or decrypting the secret information of p1 * p2 or less obtained by multiplying the secret information as an integer of p1 or less and the random number as an integer of p2 or less by using a prime number larger than p1 * p2 as a modulus .
  16.  nを整数、kをnより小さい整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおける秘匿演算または復元を行う計算装置であって、
     乱数の加算によって秘密情報を秘匿した秘匿化秘密情報と、前記乱数が秘密分散された分散値とを加減算する手段を備える計算装置。
    If n is an integer, k is an integer smaller than n, L is an integer not less than 1 and not more than k, secret information is dispersed into n pieces, and k pieces among n pieces can be collected to restore the secret information. A computing device that performs a secret operation or restoration in a system that performs a secret operation using means that cannot restore secret information with L or less,
    A computing device comprising means for adding / subtracting concealment secret information in which secret information is concealed by addition of random numbers and a distributed value obtained by secretly distributing the random numbers.
  17.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘密情報の格納位置を検索する計算装置であって、
     第1の検索用秘密情報と第2の検索用秘密情報の差を取得する手段と、
     前記差に応じて前記格納位置を定める手段と、
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed into n pieces, and the secret information can be restored by collecting k of the n pieces of shared values. A computing device that searches for a storage location of secret information in a system that performs a secret calculation using means that cannot restore secret information with L or less,
    Means for obtaining a difference between the first search secret information and the second search secret information;
    Means for determining the storage position according to the difference;
    A computing device comprising:
  18.  nを整数、kをn以下の整数、Lを1以上k以下の整数とし、秘密情報をn個に分散し、n個のうちk個の分散値を集めれば秘密情報を復元でき、k-L個以下では秘密情報を復元できない手段を用いて秘匿演算を行うシステムにおいて秘密情報を更新する計算装置であって、
     秘密情報の分散値に、予め定められた第1の乱数を乗算しかつ予め定められた第2の乱数を加算する手段
     を備える計算装置。
    If n is an integer, k is an integer of n or less, L is an integer of 1 to k, and the secret information is distributed to n. A computing device that updates secret information in a system that performs a secret operation using means that cannot restore secret information with L or less,
    A computing device comprising: means for multiplying a distributed value of secret information by a predetermined first random number and adding a predetermined second random number.
PCT/JP2016/051934 2015-02-12 2016-01-22 Calculating device relating to concealment computation system employing distribution of secrets WO2016129363A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016574708A JPWO2016129363A1 (en) 2015-02-12 2016-01-22 Distributed device, operation / restoration device, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015025825 2015-02-12
JP2015-025825 2015-02-12

Publications (1)

Publication Number Publication Date
WO2016129363A1 true WO2016129363A1 (en) 2016-08-18

Family

ID=56615198

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/051934 WO2016129363A1 (en) 2015-02-12 2016-01-22 Calculating device relating to concealment computation system employing distribution of secrets

Country Status (2)

Country Link
JP (1) JPWO2016129363A1 (en)
WO (1) WO2016129363A1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019028391A (en) * 2017-08-03 2019-02-21 株式会社日立製作所 Secret distribution system and method of the same
JP2019144405A (en) * 2018-02-20 2019-08-29 学校法人東京理科大学 Input person's device, computation assisting device, device, secret computing device, and program
CN110199338A (en) * 2017-01-20 2019-09-03 日本电信电话株式会社 Secure computing system, secret computing device, secret calculation method, program
CN111246463A (en) * 2020-02-10 2020-06-05 浙江机电职业技术学院 Covert communication method based on skew parameter of alpha stable distribution random process
WO2020250269A1 (en) * 2019-06-10 2020-12-17 日本電信電話株式会社 Secret division system, secret calculation device, secret division method, and program
JPWO2021106143A1 (en) * 2019-11-28 2021-06-03
JP2022044737A (en) * 2018-02-20 2022-03-17 惠市 岩村 Input person device, arithmetic support device, device, secret arithmetic device, and program
EP4203398A4 (en) * 2020-12-02 2024-05-01 Tencent Tech Shenzhen Co Ltd Data processing method, apparatus, device, and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004341152A (en) * 2003-05-15 2004-12-02 Oki Electric Ind Co Ltd Secrecy distribution method, secrecy distribution system, and distribution calculation unit
JP2014138349A (en) * 2013-01-18 2014-07-28 Nippon Telegr & Teleph Corp <Ntt> Secret sharing system, data sharing device, shared data retention device, secret sharing scheme, and program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4300838B2 (en) * 2003-03-25 2009-07-22 沖電気工業株式会社 Distributed computing device and distributed computing system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004341152A (en) * 2003-05-15 2004-12-02 Oki Electric Ind Co Ltd Secrecy distribution method, secrecy distribution system, and distribution calculation unit
JP2014138349A (en) * 2013-01-18 2014-07-28 Nippon Telegr & Teleph Corp <Ntt> Secret sharing system, data sharing device, shared data retention device, secret sharing scheme, and program

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110199338A (en) * 2017-01-20 2019-09-03 日本电信电话株式会社 Secure computing system, secret computing device, secret calculation method, program
JP7027060B2 (en) 2017-08-03 2022-03-01 株式会社日立製作所 Secret sharing system and its method
JP2019028391A (en) * 2017-08-03 2019-02-21 株式会社日立製作所 Secret distribution system and method of the same
JP2019144405A (en) * 2018-02-20 2019-08-29 学校法人東京理科大学 Input person's device, computation assisting device, device, secret computing device, and program
JP7240037B2 (en) 2018-02-20 2023-03-15 惠市 岩村 Input person device, calculation support device, device, confidential calculation device, and program
JP7041951B2 (en) 2018-02-20 2022-03-25 惠市 岩村 Inputter device, calculation support device, and program
JP2022044737A (en) * 2018-02-20 2022-03-17 惠市 岩村 Input person device, arithmetic support device, device, secret arithmetic device, and program
WO2020250269A1 (en) * 2019-06-10 2020-12-17 日本電信電話株式会社 Secret division system, secret calculation device, secret division method, and program
JPWO2020250269A1 (en) * 2019-06-10 2020-12-17
JP7173328B2 (en) 2019-06-10 2022-11-16 日本電信電話株式会社 Secure division system, secure computing device, secure division method, and program
AU2019450855B2 (en) * 2019-06-10 2023-02-02 Nippon Telegraph And Telephone Corporation Secure division system, secure computation apparatus, secure division method, and program
WO2021106143A1 (en) * 2019-11-28 2021-06-03 日本電気株式会社 Shuffle system, shuffle method, and program
JPWO2021106143A1 (en) * 2019-11-28 2021-06-03
JP7334798B2 (en) 2019-11-28 2023-08-29 日本電気株式会社 Shuffle system, shuffle method and program
CN111246463A (en) * 2020-02-10 2020-06-05 浙江机电职业技术学院 Covert communication method based on skew parameter of alpha stable distribution random process
CN111246463B (en) * 2020-02-10 2023-04-18 浙江机电职业技术学院 Covert communication method based on skew parameter of alpha stable distribution random process
EP4203398A4 (en) * 2020-12-02 2024-05-01 Tencent Tech Shenzhen Co Ltd Data processing method, apparatus, device, and storage medium

Also Published As

Publication number Publication date
JPWO2016129363A1 (en) 2018-01-11

Similar Documents

Publication Publication Date Title
WO2016129363A1 (en) Calculating device relating to concealment computation system employing distribution of secrets
CN112989368B (en) Method and device for processing private data by combining multiple parties
US10951392B2 (en) Fast format-preserving encryption for variable length data
JP2022537531A (en) A Homomorphic Encryption Method Applied to Private Information Retrieval
US7986780B2 (en) Privacy-preserving substring creation
CN113987559B (en) Method and device for jointly processing data by two parties for protecting data privacy
Gomathisankaran et al. Ensure privacy and security in the process of medical image analysis
CN106326666A (en) Health record information management service system
CN115002291B (en) Information hiding method based on P tensor secret sharing and multiple data hiding devices
Wang et al. Chaotic image encryption algorithm based on dynamic spiral scrambling transform and deoxyribonucleic acid encoding operation
CN113992325B (en) Private data sharing method and device
Kumbhar et al. Privacy preserving mining of association rules on horizontally and vertically partitioned data: a review paper
CN107592298A (en) A kind of sequence comparison algorithm based on single server model safely outsourced method, user terminal and server
JP4623623B2 (en) Restoration control type secret information distribution device
Xuelong et al. A symmetric cryptography based on extended cellular automata
JP2007124610A (en) Confidential information distribution apparatus, confidential information restoration apparatus, method and program
JP7396373B2 (en) Secure computation system, secure computation server device, secure computation method, and secure computation program
Bhati et al. A Research on DNA and RSA Cryptography for Hybrid Encryption and Decryption for Cloud Processing via IOT Devices
JP2015108682A (en) Secrecy comparison method, program, and system
Kar et al. Medical image encryption algorithm based on dynamic DNA sequencing and 2D-3D chaotic equations
Thorat et al. Combining DNA sequences and chaotic maps to improve robustness of RGB image encryption
Sujan Securing Distributed Data Mechanism Based On Blockchain Technology
EP3696795B1 (en) Confidential sort system and method
Felista Sugirtha Lizy et al. Performance of RSA Algorithm Using Game Theory for Aadhaar Card
Hussein et al. Randomized Information Hiding in RGB Images Using Genetic Algorithm and Huffman Coding.

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

Country of ref document: EP

Kind code of ref document: A1

DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)
ENP Entry into the national phase

Ref document number: 2016574708

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

Country of ref document: EP

Kind code of ref document: A1