WO2017099117A1 - 事前計算装置、方法、およびコンピュータ読取可能な記録媒体、並びにベクトル乗算装置、および方法 - Google Patents

事前計算装置、方法、およびコンピュータ読取可能な記録媒体、並びにベクトル乗算装置、および方法 Download PDF

Info

Publication number
WO2017099117A1
WO2017099117A1 PCT/JP2016/086352 JP2016086352W WO2017099117A1 WO 2017099117 A1 WO2017099117 A1 WO 2017099117A1 JP 2016086352 W JP2016086352 W JP 2016086352W WO 2017099117 A1 WO2017099117 A1 WO 2017099117A1
Authority
WO
WIPO (PCT)
Prior art keywords
beaver
processing unit
vector
secret
secret sharing
Prior art date
Application number
PCT/JP2016/086352
Other languages
English (en)
French (fr)
Inventor
古川 潤
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US16/060,082 priority Critical patent/US10972260B2/en
Priority to JP2017555094A priority patent/JP6970379B2/ja
Priority to EP16873010.9A priority patent/EP3389031B1/en
Publication of WO2017099117A1 publication Critical patent/WO2017099117A1/ja
Priority to US17/025,001 priority patent/US11349648B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Definitions

  • the present invention relates to a pre-calculation apparatus, a method, a computer-readable recording medium, a vector multiplication apparatus, and a method.
  • the secret calculation method is a method in which a plurality of secret calculation devices calculate a given function by performing calculations while communicating with each other.
  • the secret calculation method has a feature that information regarding the input and output to the function cannot be obtained unless any of these secret calculation devices share data handled among a sufficient number of devices.
  • Non-Patent Document 1 As a known secret calculation method, a method listed in Non-Patent Document 1 is known.
  • a secret S which is a value on a certain field
  • F (0) S.
  • F (0) S.
  • F [i]: F (X for the (K-1) degree polynomial F chosen randomly for each i-th device
  • F (0) A Distribute [i]).
  • the secret is that if K or more devices are gathered, it is possible to solve the (K-1) degree polynomial, calculate the coefficients of F and G, and calculate F (0) and G (0) It becomes possible.
  • ⁇ A * B is distributed differently from Secret A and Secret B.
  • each i-th device generates a K-1th order polynomial G from H [i] and each other j-th device This is done by distributing G (X [j]) to.
  • G X [j]
  • Non-Patent Document 2 As another known secret calculation method, a method listed in Non-Patent Document 2 is known.
  • Each device can calculate the dispersion of the exclusive OR of the two values dispersed by a light calculation without communicating with other devices.
  • the device 1 sends a value depending on the input of the device 2 to the device 2.
  • the method in which the device 1 cannot know the input of the device 2 is realized by a technique called “oblivious transfer” between the device 1 and the device 2.
  • this technique generally requires both computation and communication.
  • Non-Patent Documents 1 and 2 are based on the assumption that each device behaves honestly.
  • Non-Patent Document 3 describes a method in which if a certain number of devices behave honestly, the safety can be maintained even if other devices behave maliciously.
  • “behave maliciously” means that a correct value is not sent to others when communicating with each other.
  • safety is maintained means that a secret held by another person cannot be obtained by sending a false value.
  • both the secret and the secret message authenticator are held by secret sharing, and the result of performing the secret calculation on both is the final calculation result and its Confirm that it is a message authenticator.
  • a malicious participant does not cheat by sending a false value to another person in a secret calculation.
  • three sets of random numbers and their message authenticators are pre-calculated, and the result of multiplying the first two sets is the third set, and this is used in the multiplication part by the secret calculation.
  • a cipher with homomorphism is used.
  • Non-Patent Documents 1 to 3 have the following problems.
  • Non-Patent Documents 1 and 2 are problematic in that they cannot keep secrets against the malicious behavior of participants.
  • Non-Patent Document 3 requires a homomorphic encryption for pre-calculation and has a problem that this processing time is long.
  • An object of the present invention is to provide a pre-calculation apparatus, method, and computer-readable recording medium that solve any of the above-described problems, and a vector multiplication apparatus, method, and computer-readable recording medium.
  • the pre-computing device of the present invention is a pre-computing device capable of communicating with a plurality of other pre-computing devices, generates two secret-distributed random numbers, and generates a secret-distributed value of the product of the two random numbers.
  • the pre-computing device and the plurality of other pre-computing devices are generated by communicating with each other, so that a triple consisting of two random numbers and their product is formed into the pre-computing device and the plurality of other pre-computing devices.
  • a beaver triplet generation processing unit for generating a large number of secret-distributed beaver triplets by repeatedly using a secret sharing function; and selecting the secret-distributed beaver triplets at random, These beaver triplets are restored by communicating with other pre-computing devices, and the product of the first two elements becomes the third element using the restored beaver triplet values.
  • Check to Beaver triplet random inspection processing unit comprises; a beaver triplets did not the restored rearranged randomly and beaver triplet position agitation processing unit for generating a secret distributed beaver triplets after rearranged.
  • the pre-computation method of the present invention is a pre-computation method performed in a pre-computation device that can communicate with a plurality of other pre-computation devices, wherein the beaver triplet generation processing unit generates two secret-distributed random numbers, A secret-distributed value of the product of the two random numbers is generated by the pre-calculation device and the plurality of other pre-calculation devices communicating with each other, so that a triple consisting of the product of the two random numbers and the two random numbers is generated.
  • a large number of secret-distributed beaver triplets are generated; a beaver triplet random check processing unit is configured to distribute the secret A beaver triplet is randomly selected, and the pre-computing device and the plurality of other pre-computing devices communicate with each other to restore these beaver triplets, and the restored beaver Confirm that the product of the first two elements is the third element using the doublet value; the beaver triplet position agitation processing unit randomly rearranges the unrestored beaver triplets Generate a secret-distributed beaver triplet after replacement.
  • the pre-computation program of the present invention generates a secret-distributed random number from a computer of a pre-computing device capable of communicating with a plurality of other pre-computing devices, and obtains a secret-distributed value of the product of the two random numbers.
  • the pre-computing device and the plurality of other pre-computing devices are generated by communicating with each other, so that a triple consisting of two random numbers and their product is formed into the pre-computing device and the plurality of other pre-computing devices.
  • the beaver triplet generation processing means for generating a large number of secret-distributed beaver triplets by repeatedly using the secret sharing function; and randomly selecting the secret-distributed beaver triplets, These beaver triplets are restored by communicating with other pre-computing devices, and the product of the first two elements is the third element using the restored beaver triplet values.
  • Beaver triplet random inspection processing means for confirming that; and beaver triplet position stirring processing means for randomly sorting the unrestored beaver triplets and generating secret-distributed beaver triplets after the rearrangement; To function as.
  • the vector multiplication device of the present invention is a vector multiplication device capable of communicating with a plurality of other vector multiplication devices, and generates secret sharing data of the beaver triplet, or receives the secret sharing data of the beaver triplet. For each of the two sets of secret sharing data to be multiplied; and an input processing unit for inputting a plurality of sets of secret sharing data to be multiplied. One element of each of the secret sharing data of the beaver triplet is added, and the secret sharing data of the addition result is an auxiliary result which is disclosed as a result of the plurality of other vector multiplication devices and the vector multiplication device communicating with each other.
  • An auxiliary vector generation processing unit for generating a vector; a secret of a vector multiplication result from the auxiliary vector and the secret sharing data of the beaver triplet And vector multiplication unit that generates a distributed data; comprises.
  • the vector multiplication method of the present invention is a vector multiplication method performed in a vector multiplication device capable of communicating with a plurality of other vector multiplication devices, wherein the pre-calculation input processing unit generates secret sharing data of the beaver triplet, Alternatively, the secret sharing data of the beaver triplet is input; the input processing unit inputs a plurality of sets of secret sharing data of two numbers to be multiplied; and the auxiliary vector generation processing unit is configured to input the two One element of each of the secret sharing data of the beaver triplet is added to each set of secret sharing data, and the secret sharing data of the addition result is added to the plurality of other vector multiplication devices and the vector multiplication device. Communicate with each other to generate an auxiliary vector that is disclosed; a vector multiplication processing unit includes the auxiliary vector and the beaver triplet And a secret sharing data, generates a secret sharing data vector multiplication result.
  • the vector multiplication program recorded on the computer-readable recording medium of the present invention generates a secret sharing data of a beaver triplet from a computer of a vector multiplication apparatus capable of communicating with a plurality of other vector multiplication apparatuses, or the beaver Pre-computation input processing means for inputting triplet secret sharing data; input processing means for inputting a plurality of sets of secret sharing data of two numbers to be multiplied; and for each of the two sets of secret sharing data to be multiplied
  • one element of each of the secret sharing data of the beaver triplet is added, and the secret sharing data of the addition result is disclosed by the plurality of other vector multiplication devices and the vector multiplication device communicating with each other.
  • FIG. It is a flowchart for demonstrating operation
  • FIG. It is a block diagram which shows the hardware constitutions of the prior calculation apparatus which comprises the prior calculation system which concerns on the 4th Embodiment of this invention.
  • movement of the data processor used for the prior calculation apparatus shown by FIG. It is a block diagram which shows the hardware constitutions of the vector multiplication apparatus which comprises the vector multiplication system which concerns on the 5th Embodiment of this invention.
  • FIG. 1 It is a block diagram which shows the hardware constitutions of the vector multiplication apparatus which comprises the vector multiplication system which concerns on the 6th Embodiment of this invention. It is a flowchart for demonstrating operation
  • the multiplication result of the vectors x and y is z
  • the present invention relates to this multiplication.
  • the above vector can be added and multiplied, it can be used when a large amount of addition and multiplication of the elements of the field F are executed simultaneously.
  • a polynomial P is to be calculated for N inputs.
  • vectors are prepared for the number of variables of the polynomial P, the kth vector is assigned to the kth variable, and the ith input element is assigned to the ith element of each vector.
  • the evaluation of the polynomial P with respect to N inputs is an evaluation with a plurality of vectors of length N for a single polynomial P. That is, each multiplication or addition constituting the polynomial P is performed simultaneously on all inputs by vector addition or multiplication.
  • M is a safety variable and N is a vector length.
  • the present invention is particularly efficient when M ⁇ N.
  • K be an integer.
  • the present invention is particularly efficient when M ⁇ K.
  • v be the inspection rate.
  • L N (K + M) / (1-v). ⁇ M ⁇ represents ⁇ 1, ..., M ⁇ , ⁇ N ⁇ represents ⁇ 1, ..., N ⁇ , ⁇ K ⁇ represents ⁇ 1, ..., K ⁇ , ⁇ L ⁇ represents ⁇ 1, ... , L ⁇ .
  • ⁇ X> indicates that the value x is (t, n) -secret sharing. Specifically, when each participant has some data about the value x, and (t-1) or less participants bring these data, they do not know any information about the value x, and more than t The value x can be restored when the participants bring these data.
  • x secret sharing share the data held by each device.
  • ⁇ z> Reshare ( ⁇ z >>).
  • Open ( ⁇ x>) is the process for all participants to get x from ⁇ x>.
  • the restoration result of x regarding the combination of all the t participants is obtained. This is because if some participants are cheating, the correct values may not be restored for some combinations. Participants who cannot obtain the same value for all the combinations are notified that fraud has been detected, and the operation ends.
  • ⁇ [i, j]> Random.
  • ⁇ [i, j]> for i ⁇ ⁇ M ⁇ , j ⁇ ⁇ N ⁇ is a secret-distributed value of the message authenticator key, or a secret-distributed message authenticator key, or It is also called secret sharing data of the message authenticator key.
  • FIG. 1 is a block diagram showing a hardware configuration of a pre-calculation apparatus 10 constituting the pre-calculation system according to the first embodiment of the present invention.
  • the illustrated pre-calculation apparatus 10 can be realized by a computer that operates under program control.
  • the pre-calculation system shown is a safe pre-calculation system for Beaver triplets.
  • the pre-calculation system is a system including a plurality of pre-calculation apparatuses 10 that can communicate with each other.
  • the pre-computing device 10 includes a communication interface (hereinafter referred to as “communication I / F”) 11, an input device 12 for inputting data, an output device 13 for outputting data, and a memory for storing programs and data to be described later.
  • a device 14 and a data processing device 15 for processing data are provided.
  • the communication I / F 11 is composed of a dedicated data communication line.
  • the communication I / F 11 has a function of transmitting and receiving data via a communication network (not shown) or wirelessly. Specifically, the communication I / F 11 transmits data to other pre-computing devices and receives data from other pre-computing devices.
  • the communication I / F 11 also has a function of sending the received data to the data processing device 15.
  • the input device 12 includes a keyboard and a mouse.
  • the input device 12 has a function of detecting an operation of the operator and sending the operation information to the data processing device 15.
  • the output device 13 includes a display device such as an LCD (Liquid Crystal Display) or a PDP (Plasma Display Panel) or a printer.
  • the output device 13 has a function of displaying various information such as an operation menu and printing out a final result in response to an instruction from the data processing device 15.
  • the storage device 14 includes a memory such as a hard disk, a read only memory (ROM), and a random access memory (RAM).
  • the storage device 14 has a function of storing processing information (described later) and programs 111 necessary for various processes in the data processing device 15.
  • the data processing device 15 includes a microprocessor such as an MPU (micro processing unit) or a central processing unit (CPU).
  • the data processing device 15 has a function of realizing various processing units that read the program 111 from the storage device 14 and process data according to the program 111.
  • Main processing units realized by the data processing device 15 include a beaver triplet generation processing unit 101, a beaver triplet random inspection processing unit 102, and a beaver triplet position agitation processing unit 103.
  • the beaver triplet generation processing unit 101 generates two secret-distributed random numbers, and generates a secret-distributed value of the product of the two random numbers by the plurality of pre-computing devices 10 communicating with each other. It has a function of secretly sharing a triple consisting of two random numbers and their products with a plurality of pre-computing devices 10.
  • the beaver triplet generation processing unit 101 generates a large number of secret-distributed beaver triplets by repeatedly using this function.
  • the storage device 14 stores the random number 112 and the secret sharing data 113 of the beaver triplet generated by the beaver triplet generation processing unit 101.
  • the secret sharing data 113 of the beaver triplet is also called a secreted beaver triplet.
  • the beaver triplet random inspection processing unit 102 randomly selects secret-distributed beaver triplets 113 and restores these beaver triplets by communicating with each other a plurality of pre-computing devices 10.
  • the beaver triplet random inspection processing unit 102 uses the restored value of the beaver triplet to confirm that the product of the first two elements is the third element.
  • the pass / fail result of the inspection by the beaver triplet random inspection processing unit 102 is output from the output device 13.
  • the beaver triplet position agitation processing unit 103 randomly rearranges (that is, agitates) the beaver triplets that have not been restored, and generates secret-distributed beaver triplets after the rearrangement.
  • the storage device 14 stores the secret sharing data 114 of the stirred beaver triplet stirred by the beaver triplet position stirring processing unit 103.
  • the secret sharing data 114 of the agitated beaver triplet is also referred to as a secret-distributed beaver triplet after rearrangement.
  • the secret-distributed beaver triplets are also called beaver triplets secret-shared data. This process is called a beaver triplet generation process (S101).
  • the safe pre-computation of beaver triplets has the effect that a set of beaver triplets can be created in which the proportion of false beaver triplets is below a certain value.
  • FIG. 3 is a block diagram showing a hardware configuration of the vector multiplication apparatus 20 constituting the vector multiplication system according to the second embodiment of the present invention.
  • the vector multiplication device 20 shown in the figure can be realized by a computer that operates under program control.
  • the vector multiplication system shown in the figure is a secretly safe vector multiplication system using a beaver triplet.
  • the vector multiplication system is a system including a plurality of vector multiplication devices 20 that can communicate with each other.
  • the vector multiplication device 20 includes a communication interface (hereinafter referred to as “communication I / F”) 21, an input device 22 for inputting data, an output device 23 for outputting data, and a storage for storing programs and data to be described later.
  • a device 24 and a data processing device 25 for processing data are provided.
  • the communication I / F 21 includes a dedicated data communication line.
  • the communication I / F 21 has a function of transmitting and receiving data via a communication network (not shown) or wirelessly. Specifically, the communication I / F 21 transmits data to other vector multipliers and receives data from other vector multipliers.
  • the communication I / F 21 also has a function of sending received data to the data processing device 25.
  • the input device 22 includes a keyboard and a mouse.
  • the input device 22 has a function of detecting an operator's operation and sending the operation information to the data processing device 25.
  • the output device 23 includes a display device such as an LCD (Liquid Crystal Display) or a PDP (Plasma Display Panel) or a printer.
  • the output device 23 has a function of displaying various information such as an operation menu and printing out a final result in response to an instruction from the data processing device 25.
  • the storage device 24 includes a memory such as a hard disk, a read only memory (ROM), and a random access memory (RAM).
  • the storage device 24 has a function of storing processing information (described later) and programs 211 necessary for various processing in the data processing device 25.
  • the data processing device 25 includes a microprocessor such as an MPU (micro processing unit) or a central processing unit (CPU).
  • the data processing device 25 has a function of realizing various processing units that read the program 211 from the storage device 24 and process data according to the program 211.
  • the main processing unit realized by the data processing device 25 includes a pre-calculation input processing unit 201, an input processing unit 202, an auxiliary vector generation processing unit 203, and a vector multiplication processing unit 204.
  • the pre-calculation input processing unit 201 generates or inputs the secret sharing data 212 of beaver triplets.
  • the storage device 24 stores the secret sharing data 212 of the beaver triplet generated or input by the pre-calculation input processing unit 201.
  • the beaver triplet secret sharing data 212 is the same as the stirred beaver triplet secret sharing data 114 stored in the storage device 14 of FIG.
  • the input processing unit 202 inputs a plurality of sets of secret sharing data of two numbers to be multiplied.
  • the storage device 24 stores the secret sharing data 213 of the data to be multiplied input from the input processing unit 202.
  • the secret sharing data 213 of the data to be multiplied is composed of two sets of secret sharing data to be multiplied.
  • the auxiliary vector generation processing unit 203 adds one element of each of the secret sharing data of the Beaver triplets to each of the two sets of secret sharing data to be multiplied, and the secret sharing data of the addition result is obtained.
  • a plurality of vector multipliers 20 communicate with each other to generate auxiliary vectors 216 that are the disclosed results.
  • the storage device 24 stores the auxiliary vector 216 generated by the auxiliary vector generation processing unit 203.
  • the vector multiplication processing unit 204 uses the auxiliary vector 216 to generate the secret sharing data 215 of the product from the secret sharing data 212 of the beaver triplet.
  • the storage device 24 stores the product secret sharing data 215 generated by the vector multiplication processing unit 204.
  • the secret sharing data of the product is also called secret sharing data of the vector multiplication result.
  • ⁇ N ⁇ is chosen as a subset of ⁇ LV ⁇ .
  • the pre-computation input processing unit 201 receives the secret sharing data of the above-described beaver triplet for a certain k. This k is omitted. That is, it is assumed that ⁇ a [j]>, ⁇ b [j]>, ⁇ c [j]> regarding all j ⁇ ⁇ N ⁇ are input from the pre-calculation input processing unit 201.
  • This process is a vector multiplication process and it is forgotten to guarantee safety, this process is a substantial purpose. This process is called a vector multiplication process (S204).
  • vector multiplication is performed by using a set of beaver triplets in a secretly safe vector multiplication method using beaver triplets
  • the fact that each multiplication was performed correctly is the same as the proportion of correct beaver triplets. There is an effect that it can be guaranteed.
  • FIG. 5 is a block diagram showing a hardware configuration of the vector multiplication apparatus 30 constituting the vector multiplication system according to the third embodiment of the present invention.
  • the vector multiplication device 30 shown in the figure can be realized by a computer that operates under program control.
  • the vector multiplication system shown is a safe vector multiplication system using beaver triplets.
  • the vector multiplication system is a system composed of a plurality of vector multiplication devices 30 that can communicate with each other.
  • the vector multiplying device 30 includes a communication interface (hereinafter referred to as “communication I / F”) 31, an input device 32 for inputting data, an output device 33 for outputting data, and a memory for storing programs and data to be described later.
  • a device 34 and a data processing device 35 for processing data are provided.
  • the communication I / F 31 includes a dedicated data communication line.
  • the communication I / F 31 has a function of transmitting and receiving data via a communication network (not shown) or wirelessly. Specifically, the communication I / F 31 transmits data to other vector multipliers and receives data from other vector multipliers.
  • the communication I / F 31 also has a function of sending the received data to the data processing device 35.
  • the input device 32 includes a keyboard and a mouse.
  • the input device 32 has a function of detecting the operation of the operator and sending the operation information to the data processing device 35.
  • the output device 33 includes a display device such as an LCD (Liquid Crystal Display) or a PDP (Plasma Display Panel) or a printer.
  • the output device 33 has a function of displaying various information such as an operation menu and printing out a final result in response to an instruction from the data processing device 35.
  • the storage device 34 includes a memory such as a hard disk, a read only memory (ROM), and a random access memory (RAM).
  • the storage device 34 has a function of storing processing information (described later) and programs 311 necessary for various processes in the data processing device 35.
  • the data processing unit 35 includes a microprocessor such as an MPU (micro processing unit) or a central processing unit (CPU).
  • the data processing device 35 has a function of realizing various processing units that read the program 311 from the storage device 34 and process data according to the program 311.
  • the main processing unit realized by the data processing device 35 includes an input unit 301, a vector multiplication unit 302, and a result identical confirmation processing unit 303.
  • the input unit 301 includes first to T-th input processing modules 301-1 to 301-T (T is an integer equal to or greater than 2).
  • T is an integer equal to or greater than 2.
  • Each of the first to Tth input processing modules 301-1 to 301-T includes a pre-calculation processing unit 201 and an input processing unit 202 in the data processing device 25 of FIG.
  • the vector multiplication unit 302 includes first to Tth vector multiplication modules 302-1 to 302-T.
  • Each of the first to T-th vector multiplication modules 302-1 to 302-T includes an auxiliary vector generation processing unit 203 and a vector multiplication processing unit 204 in the data processing device 25 of FIG.
  • each of the first to Tth vector multiplication modules 302-1 to 302-T performs a covertly safe vector multiplication method using a beaver triplet.
  • the result identical confirmation processing unit 303 confirms that the multiplication results of the first to Tth vector multiplication modules 302-1 to 302-T are all the same value.
  • the storage device 34 stores processing information similar to the processing information stored in the storage device 24 illustrated in FIG. That is, the storage device 34 stores the secret sharing data 312 of the Beaver triplet, the secret sharing data 313 of the data to be multiplied, the secret sharing data 315 of the product, and the auxiliary vector 316. However, unlike the storage device 24, the storage device 34 stores T pieces of the information.
  • T be the multiple.
  • T inputs having the same value are prepared for one input (S301).
  • S301 each secret sharing is independent, and all the data possessed by each participant for the same input is distributed randomly.
  • the vector multiplying unit 302 applies the above-described implicitly safe multiplication method to T inputs independently (S302).
  • the result identical confirmation processing unit 303 confirms that the results are all identical as follows.
  • T results for a certain j are ⁇ z (1) [j]>, ..., ⁇ z (T) [j]>.
  • the secretly safe method according to the second embodiment described above cannot guarantee that the answer multiplication result is correct unless the beaver triplet is generated correctly. On the other hand, if a large number of beaver triplets are produced and a certain ratio is inspected from the verification method of the beaver triplets, the number of illegal beaver triplets that can be trapped has remained at a certain small ratio.
  • a plurality of calculations are performed at the same time, and each calculation is secured by a different beaver triplet. Therefore, at least one calculation has a sufficient probability that it will be calculated by a correct beaver triplet. Can be high. After that, if all the calculations are confirmed to be the same, it is guaranteed that all the calculations are the same as the calculation results by the correct beaver triplet.
  • vector multiplication is performed using a set of beaver triplets in a safe vector multiplication method using beaver triplets, it is possible to guarantee that each multiplication has been performed correctly with an overwhelming probability. .
  • FIG. 7 is a block diagram showing a hardware configuration of a pre-calculation apparatus 10A constituting the pre-calculation system according to the fourth embodiment of the present invention.
  • the illustrated pre-calculation apparatus 10A can be realized by a computer that operates under program control.
  • the pre-computation system shown is a secure pre-computation system for Beaver Mieko with a message authenticator.
  • the pre-calculation system is a system including a plurality of pre-calculation apparatuses 10A that can communicate with each other.
  • the plurality of pre-computing devices 10A have a function of secretly distributing and holding the message authenticator key among these pre-computing devices 10A.
  • the pre-computing device 10A includes a communication interface (hereinafter referred to as “communication I / F”) 11, an input device 12 for inputting data, an output device 13 for outputting data, and a storage for storing programs and data to be described later.
  • a device 14A and a data processing device 15A for processing data are provided.
  • the communication I / F 11 is composed of a dedicated data communication line.
  • the communication I / F 11 has a function of transmitting and receiving data via a communication network (not shown) or wirelessly. Specifically, the communication I / F 11 transmits data to other pre-computing devices and receives data from other pre-computing devices.
  • the communication I / F 11 also has a function of sending the received data to the data processing device 15A.
  • the input device 12 includes a keyboard and a mouse.
  • the input device 12 has a function of detecting an operator's operation and sending the operation information to the data processing device 15A.
  • the output device 13 includes a display device such as an LCD (Liquid Crystal Display) or a PDP (Plasma Display Panel) or a printer.
  • the output device 13 has a function of displaying various information such as an operation menu and printing out a final result in response to an instruction from the data processing device 15A.
  • the storage device 14A includes a memory such as a hard disk, a read only memory (ROM), and a random access memory (RAM).
  • the storage device 14A has a function of storing processing information (described later) necessary for various processes in the data processing device 15A and a program 111A.
  • the data processing device 15A includes a microprocessor such as an MPU (micro processing unit) or a central processing unit (CPU).
  • the data processing device 15A has a function of realizing various processing units that read the program 111A from the storage device 14A and process data according to the program 111A.
  • the main processing units realized by the data processing device 15A are a beaver triplet generation processing unit 101, a beaver triplet random inspection processing unit 102, a beaver triplet position agitation processing unit 103A, a beaver triplet message authenticator generation processing unit 104, and a beaver triplet.
  • a message authenticator verification processing unit 105 is included.
  • the data processing device 15A is different from the data processing device 15 shown in FIG. 1 in that a beaver triplet message authenticator generation processing unit 104 and a beaver triplet message authenticator verification processing unit 105 are newly added. It is different in that the processing contents in the beaver triplet position agitation processing unit 103A are different.
  • the beaver triplet generation processing unit 101 generates two secret-distributed random numbers, and generates a secret-distributed value of the product of the two random numbers by the plurality of pre-computing devices 10A communicating with each other, thereby generating two It has a function of secretly sharing a triple consisting of two random numbers and their products with a plurality of pre-calculation apparatuses 10A.
  • the beaver triplet generation processing unit 101 generates a large number of secret-distributed beaver triplets by repeatedly using this function.
  • the storage device 14A stores the random number 112 and the secret sharing data 113 of the beaver triplet generated by the beaver triplet generation processing unit 101.
  • the secret sharing data 113 of the beaver triplet is also called a secreted beaver triplet.
  • the beaver triplet random inspection processing unit 102 randomly selects secret-distributed beaver triplets 113, and restores these beaver triplets by communicating with each other a plurality of pre-computing devices 10A.
  • the beaver triplet random inspection processing unit 102 uses the restored value of the beaver triplet to confirm that the product of the first two elements is the third element.
  • the pass / fail result of the inspection by the beaver triplet random inspection processing unit 102 is output from the output device 13.
  • the beaver triplet position agitation processing unit 103A randomly rearranges (that is, agitates) the beaver triplets that have not been restored, and generates a secret-distributed beaver triplet after rearrangement with a new index.
  • the storage device 14A stores the secret sharing data 114A of the stirred beaver triplet stirred by the beaver triplet position stirring processing unit 103A.
  • the secret sharing data 114A of the stirred beaver triplet is also referred to as a secret-distributed beaver triplet after rearrangement.
  • the storage device 14A stores the secret sharing data 115 of the message authenticator key described above.
  • the secret sharing data 115 of the message authenticator key is also referred to as a secret-distributed message authenticator key.
  • the beaver triplet message authenticator generation processing unit 104 uses the random number 112 and the secret sharing data 115 of the message authenticator key to distribute the secret to the rearranged secreted beaver triplet 114A.
  • the message authenticator is generated by the plurality of pre-computing devices 10A communicating with each other.
  • the storage device 14A stores the stirred beaver triplet and the secret sharing data 116 of the message authenticator.
  • the secret sharing data 116 of the stirred beaver triplet and its message authenticator is also called secret sharing data of the beaver triplet with the message authenticator. Therefore, the secret sharing data 116 of the beaver triplet with message authenticator includes a secret-distributed beaver triplet and a secret-distributed beaver triplet message authenticator.
  • the beaver triple child message authenticator verification processing unit 105 performs a restoration process and a confirmation process as described below.
  • the beaver triplet message authenticator verification processing unit 105 generates a large number of linear sums of randomly sorted coefficients of the secret-distributed beaver triplets after the rearrangement, and restores the generated many values. Generate the restored value.
  • the beaver triplet message authenticator verification processing unit 105 generates a value obtained by generating a large number of linear sums of the secret-distributed beaver triplet message authenticators and the restored value and the secret-distributed value. It is confirmed that the value obtained by generating a large number of linear sums by the key of the message authenticator is the same.
  • the result of verification by the beaver triple child message authenticator verification processing unit 105 is output from the output device 13.
  • the secret-distributed beaver triplets are also called beaver triplets secret-shared data. This process is called a beaver triplet generation process (S101).
  • N (K + M) K′N pairs are randomly replaced with new indexes, and j ⁇ ⁇ N ⁇ and k ⁇ , respectively.
  • ⁇ C [j, k]> ⁇ a [j, k]> ⁇ b [j, k if all participants behave honestly for all j ⁇ ⁇ N ⁇ , k ⁇ ⁇ K ' ⁇ ]> Is true.
  • a [i, k] for i ⁇ ⁇ M ⁇ , k ⁇ ⁇ K ' ⁇ is a message authenticator for a [j, k] for j ⁇ ⁇ N ⁇ , k ⁇ ⁇ K' ⁇ .
  • B [i, k] for i ⁇ ⁇ M ⁇ , k ⁇ ⁇ K ' ⁇ is a message authenticator for b [j, k] for j ⁇ ⁇ N ⁇ , k ⁇ ⁇ K' ⁇ .
  • C [i, k] for i ⁇ ⁇ M ⁇ , k ⁇ ⁇ K ' ⁇ is a message authenticator for c [j, k] for j ⁇ ⁇ N ⁇ , k ⁇ ⁇ K' ⁇ .
  • the key of the message authenticator is ⁇ [i, j] for i ⁇ ⁇ M ⁇ , j ⁇ ⁇ N ⁇ .
  • a '[j, m], b' [j, m], c '[j, m] for j ⁇ ⁇ N ⁇ and m ⁇ ⁇ M ⁇ are respectively j ⁇ ⁇ N ⁇ and k ⁇ ⁇ K ' ⁇
  • the output of the data processing device 15A is (a [j, k]>, ⁇ b [j, k]>, ⁇ c [j, k]>) for all j ⁇ ⁇ N ⁇ , k ⁇ ⁇ K ⁇ . And ( ⁇ A [i, k]>, ⁇ B [i, k]>, ⁇ C [ik]>) for all k ⁇ ⁇ K ⁇ and i ⁇ ⁇ M ⁇ .
  • the safe pre-computation of the beaver triplets with message authenticators has the effect that a set of beaver triplets with message authentications can be created in which the proportion of false beaver triplets is below a certain value.
  • FIG. 9 is a block diagram showing a hardware configuration of a vector multiplication apparatus 20A constituting a vector multiplication system according to the fifth embodiment of the present invention.
  • the illustrated vector multiplication apparatus 20A can be realized by a computer that operates under program control.
  • the vector multiplication system shown in the figure is a secretly secure vector multiplication system using a beaver triplet with a message authenticator.
  • the vector multiplication system is a system composed of a plurality of vector multiplication devices 20A that can communicate with each other.
  • the plurality of vector multipliers 20A have a function of secretly distributing and holding the message authenticator key among these vector multipliers 20A.
  • the vector multiplication device 20A includes a communication interface (hereinafter referred to as “communication I / F”) 21, an input device 22 for inputting data, an output device 23 for outputting data, and a storage for storing programs and data to be described later.
  • a device 24A and a data processing device 25A for processing data are provided.
  • the communication I / F 21 includes a dedicated data communication line.
  • the communication I / F 21 has a function of transmitting and receiving data via a communication network (not shown) or wirelessly. Specifically, the communication I / F 21 transmits data to other vector multipliers and receives data from other vector multipliers.
  • the communication I / F 21 also has a function of sending the received data to the data processing device 25A.
  • the input device 22 includes a keyboard and a mouse.
  • the input device 22 has a function of detecting an operator's operation and sending the operation information to the data processing device 25A.
  • the output device 23 includes a display device such as an LCD (Liquid Crystal Display) or a PDP (Plasma Display Panel) or a printer.
  • the output device 23 has a function of displaying various information such as an operation menu and printing out a final result in response to an instruction from the data processing device 25A.
  • the storage device 24A includes a memory such as a hard disk, a read only memory (ROM), and a random access memory (RAM).
  • the storage device 24A has a function of storing processing information (described later) necessary for various processes in the data processing device 25A and a program 211A.
  • the data processing device 25A includes a microprocessor such as an MPU (micro processing unit) or a central processing unit (CPU).
  • the data processing device 25A has a function of realizing various processing units that read the program 211A from the storage device 24A and process data according to the program 211A.
  • the main processing units realized by the data processing device 25A are a pre-calculation input processing unit 201A, an input processing unit 202A, an auxiliary vector generation processing unit 203, a vector multiplication processing unit 204, an auxiliary vector message authenticator generation processing unit 205, an input It consists of a validity confirmation processing unit 206 and an output message authenticator generation processing unit 207.
  • the data processing device 25A is different from the data processing device 25 shown in FIG. 3 in that an auxiliary vector message authenticator generation processing unit 205, an input validity confirmation processing unit 206, and an output message authenticator generation processing unit 207 are added.
  • an auxiliary vector message authenticator generation processing unit 205 an input validity confirmation processing unit 206
  • an output message authenticator generation processing unit 207 is added.
  • the processing contents in the pre-calculation input processing unit 201A and the input processing unit 202A are different.
  • the pre-calculation input processing unit 201A generates or inputs secret sharing data 212A of beaver triplets with message authenticators.
  • the storage device 24A stores the secret sharing data 212A of the beaver triplet with message authenticator generated or input by the pre-calculation input processing unit 201A.
  • the secret sharing data 212A of the beaver triplet with message authenticator is the same as the secret shared data 116 of the stirred beaver triplet and the message authenticator stored in the storage device 14A of FIG.
  • the input processing unit 202A inputs a plurality of sets of secret sharing data of two numbers to be multiplied and secret sharing data of a message authenticator for each of the plurality of sets of two numbers to be multiplied. .
  • the storage device 24A stores the secret sharing data 213A of the data to be multiplied input from the input processing unit 202A.
  • the secret sharing data 213A of data to be multiplied is composed of two sets of secret sharing data to be multiplied and secret sharing data of the message authenticator corresponding thereto.
  • the auxiliary vector generation processing unit 203 adds one element of each of the secret sharing data of the Beaver triplets to each of the two sets of secret sharing data to be multiplied, and the secret sharing data of the addition result is obtained.
  • a plurality of vector multipliers 20A communicate with each other to generate an auxiliary vector 216 that is the disclosed result.
  • the storage device 24A stores the auxiliary vector 216 generated by the auxiliary vector generation processing unit 203.
  • the vector multiplication processing unit 204 uses the auxiliary vector 216 to generate the secret sharing data 215 of the product from the secret sharing data of the stirred beaver triplets.
  • the storage device 24A stores the product secret sharing data 215 generated by the vector multiplication processing unit 204.
  • the secret sharing data of the product is also called secret sharing data of the vector multiplication result.
  • the auxiliary vector message authenticator generation processing unit 205 obtains the secret sharing data 217 of the message authenticator for the auxiliary vector 216 from the secret sharing data of the message authenticator for the input and the secret sharing data of the message authenticator for the beaver triplet. Generate.
  • the storage device 24A stores the auxiliary vector message authenticator secret sharing data 217 generated by the auxiliary vector message authenticator generation processing unit 205.
  • the storage device 24A stores the secret sharing data 218 of the message authenticator key described above.
  • the message authentication key secret sharing data 218 is the same as the message authentication key secret sharing data 115 stored in the storage device 14A shown in FIG.
  • the input validity confirmation processing unit 206 verifies the auxiliary vector 216 from the secret sharing data 217 of the message authenticator for the auxiliary vector, the auxiliary vector 216, and the secret sharing data 218 of the message authenticator key. .
  • the pass / fail result of the inspection in the input validity confirmation processing unit 206 is output from the output device 23.
  • the output message authenticator generation processing unit 207 includes secret sharing data of the message authenticator of the vector multiplication result, secret sharing data of a beaver triplet message authenticator, an auxiliary vector 216, and secret sharing of a key of the message authenticator
  • the output message authenticator 219 is generated from the data 218 and the secret sharing data of the beaver triplet.
  • the storage device 24A stores the output message authenticator 219 generated from the output message authenticator generation processing unit 207.
  • the output message authenticator 219 is output from the output device 23.
  • the pre-calculation input processing unit 201A receives the secret sharing data of the above-mentioned beaver Mieko with message authenticator for a certain k. This k is omitted. That is, from the pre-calculation input processing unit 201A, ⁇ a [j]>, ⁇ A [i]>, ⁇ b [j]>, ⁇ B [i] for all j ⁇ ⁇ N ⁇ , i ⁇ ⁇ M ⁇ >, ⁇ C [j]>, ⁇ C [i]> are input.
  • ⁇ x [j]>, ⁇ y [j]> is input for j ⁇ ⁇ N ⁇ as an object of multiplication in the input processing unit 202A.
  • ⁇ X [i]>, ⁇ Y [i]> is input as i ⁇ ⁇ M ⁇ as these message authenticators.
  • This process is a vector multiplication process and it is forgotten to guarantee safety, this process is a substantial purpose. This process is called a vector multiplication process (S204).
  • D [i] and E [i] generated here are message authenticators of d [i] and e [i]. This process is called an auxiliary vector message authenticator generation process (S205).
  • the input validity confirmation processing unit 206 calculates this with secret sharing, and discloses and confirms the result. If this is confirmed, it is confirmed that the message authenticators of x [j] and y [j] were correct under the assumption that the beaver triplet with message authenticators was correct. This process is called an input validity confirmation process (S206).
  • Z [i] for i ⁇ ⁇ M ⁇ is the message authenticator for output z [j]. If the inputted beaver triplet with a message authenticator is correct, the message authenticator is correct. This process is called an output message authenticator generation process (S207).
  • FIG. 11 is a block diagram showing a hardware configuration of a vector multiplication device 30A constituting a vector multiplication system according to the sixth embodiment of the present invention.
  • the illustrated vector multiplying device 30A can be realized by a computer that operates under program control.
  • the vector multiplication system shown is a secure vector multiplication system using a beaver triplet with a message authenticator.
  • the vector multiplication system is a system composed of a plurality of vector multiplication devices 30A that can communicate with each other.
  • the plurality of vector multiplication devices 30A have a function of secretly distributing and holding the message authenticator key among these vector multiplication devices 30A.
  • the vector multiplying device 30A includes a communication interface (hereinafter referred to as “communication I / F”) 31, an input device 32 for inputting data, an output device 33 for outputting data, and a memory for storing programs and data to be described later.
  • a device 34A and a data processing device 35A for processing data are provided.
  • the communication I / F 31 includes a dedicated data communication line.
  • the communication I / F 31 has a function of transmitting and receiving data via a communication network (not shown) or wirelessly. Specifically, the communication I / F 31 transmits data to other vector multipliers and receives data from other vector multipliers.
  • the communication I / F 31 also has a function of sending the received data to the data processing device 35A.
  • the input device 32 includes a keyboard and a mouse.
  • the input device 32 has a function of detecting an operator's operation and sending the operation information to the data processing device 35A.
  • the output device 33 includes a display device such as an LCD (Liquid Crystal Display) or a PDP (Plasma Display Panel) or a printer.
  • the output device 33 has a function of displaying various information such as an operation menu and printing out a final result in response to an instruction from the data processing device 35A.
  • the storage device 34A includes a memory such as a hard disk, a read only memory (ROM), and a random access memory (RAM).
  • the storage device 34A has a function of storing processing information (described later) necessary for various processes in the data processing device 35A and a program 311A.
  • the data processing unit 35A includes a microprocessor such as an MPU (micro processing unit) or a central processing unit (CPU).
  • the data processing device 35A has a function of realizing various processing units that read the program 311A from the storage device 34A and process data according to the program 311A.
  • the main processing unit realized by the data processing device 35A includes an input unit 301A, a vector multiplication unit 302A, and a result identical confirmation processing unit 303.
  • the input unit 301A includes first to Tth (T is an integer of 2 or more) input processing modules 301A-1 to 301A-T.
  • T is an integer of 2 or more input processing modules 301A-1 to 301A-T.
  • Each of the first to Tth input processing modules 301A-1 to 301A-T includes a pre-calculation processing unit 201A and an input processing unit 202A in the data processing device 25A of FIG.
  • the vector multiplication unit 302A includes first to Tth vector multiplication modules 302A-1 to 302A-T.
  • Each of the first to Tth vector multiplication modules 302A-1 to 302A-T includes an auxiliary vector generation processing unit 203, a vector multiplication processing unit 204, and auxiliary vector message authenticator generation in the data processing device 25A of FIG.
  • the processing unit 205, the input validity confirmation processing unit 206, and the output message authenticator generation processing unit 207 are configured.
  • each of the first to Tth vector multiplication modules 302A-1 to 302A-T implements a secretly secure vector multiplication method using a beaver triplet with a message authenticator.
  • the result identical confirmation processing unit 303 confirms that the multiplication results of the first to Tth vector multiplication modules 302A-1 to 302A-T all have the same value.
  • the storage device 34A stores processing information similar to the processing information stored in the storage device 24A illustrated in FIG. That is, the storage device 34A includes the secret sharing data 312A of the beaver triplet with message authenticator, the secret sharing data 313A of the data to be multiplied, the secret sharing data 315 of the product, the auxiliary vector 316, and the secret sharing data 317 of the auxiliary vector message authenticator. The secret sharing data 318 of the message authenticator key and the output message authenticator 319 are stored. However, unlike the storage device 24A, the storage device 34A stores T pieces of the information.
  • T be the multiple.
  • T inputs having the same value are prepared for one input (S301A).
  • each secret sharing is independent, and all the data possessed by each participant for the same input is distributed randomly.
  • the vector multiplication unit 302A independently applies the above-described implicitly safe multiplication method to T inputs (S302A).
  • the result identical confirmation processing unit 303 confirms that the results are all identical as follows.
  • T results for a certain j are ⁇ z (1) [j]>, ..., ⁇ z (T) [j]>.
  • a plurality of calculations are performed at the same time, and each calculation is secured by a different beaver triplet. Therefore, there is a sufficient probability that at least one calculation will be calculated by a correct beaver triplet. Can be high. After that, if all the calculations are confirmed to be the same, it is guaranteed that all the calculations are the same as the calculation results by the correct beaver triplet.
  • Programs for executing this method include floppy disks (registered trademark), magnetic disks such as hard disks, optical disks such as CD-ROM (Compact Disc-Read Memory), DVD (digital versatile disc), magneto-optical disks (MO), It can also be stored and distributed in a recording medium such as a semiconductor memory.
  • the storage format may be any form.
  • an operating system running on a computer middleware such as database management software, network software, or the like may execute a part of each process based on an instruction of a program installed in the computer from a recording medium.
  • the recording medium in the present invention is not limited to a medium independent of a computer, but also includes a recording medium in which a program transmitted via a LAN (Local Area Network) or the Internet is downloaded and stored or temporarily stored.
  • LAN Local Area Network
  • the number of recording media is not limited to one, and the case where the processing in the above embodiment is executed from a plurality of media is also included in the recording media of the present invention, and the media configuration may be any configuration.
  • the computer executes each process based on a program stored in a recording medium, and may have any configuration such as a device including a personal computer or a system in which a plurality of devices are connected to a network. .
  • the computer in the present invention is not limited to a personal computer, but includes an arithmetic processing unit included in an information processing device, and is a device or device capable of realizing the functions of the present invention by a program.
  • a beaver triplet that generates a large number of secret-distributed beaver triplets by repeatedly using the function of secret sharing of a triple consisting of two random numbers and their products in the pre-calculation device and the plurality of other pre-calculation devices
  • a processing unit (101) The secret-distributed beaver triplets are randomly selected, and the pre-computing device and the plurality of other pre-computing devices communicate with each other to restore these beaver triplets, and first use the restored beaver triplet values.
  • a beaver triple child's safe pre-calculation system comprising a plurality of the pre-calculation devices (10) according to supplementary note 1 so as to be communicable.
  • the pre-computing device (10A) has a function of secretly sharing a message authenticator key between the plurality of other pre-computing devices and the pre-computing device (10A).
  • the beaver triplet position agitation processing unit (103A) randomly rearranges the unrestored beaver triplets, generates a secret-distributed beaver triplet after rearranging with a new index
  • the pre-calculation device (10A) Using the secret-distributed message authenticator key for the secret-distributed beaver triplet after the rearrangement, the pre-computing device and the plurality of other A beaver triplet message authenticator generation processing unit (104) generated by communicating with the pre-computing device; Generating a number of linear sums of randomly selected coefficients of the secret-distributed beaver triplets after the rearrangement, restoring the generated values to generate restored values, and the secret-distributed A value obtained by generating
  • a vector multiplier (20; 20A) capable of communicating with a plurality of other vector multipliers, Generating a secret sharing data of the beaver triplet, or a pre-calculation input processing unit (201; 201A) to which the secret sharing data of the beaver triplet is input;
  • An input processing unit (202; 202A) to which a plurality of sets of two sets of secret sharing data to be multiplied are input; For each of the two sets of secret sharing data to be multiplied, one element of each of the secret sharing data of the Beaver triplet is added, and the secret sharing data of the addition result is added to the plurality of other vector multiplications
  • An auxiliary vector generation processing unit (203) for generating an auxiliary vector as a result disclosed by communication between the device and the vector multiplication device (20; 20A);
  • a vector multiplication processing unit (204) for generating secret sharing data of a vector multiplication result from the auxiliary vector and the secret sharing data of the beaver triplet;
  • Additional remark 6 The vector multiplication apparatus (20) of Additional remark 5 is equipped with two or more communicably, and it is a secretly safe vector multiplication system using a beaver triplet.
  • the vector multiplication device (20A) has a function of secretly sharing a message authenticator key between the plurality of other vector multiplication devices and the vector multiplication device (20A).
  • the pre-calculation input processing unit (201A) generates secret sharing data of the beaver triplet with message authenticator, or the secret sharing data of the beaver triplet with message authenticator is input,
  • the input processing unit (202A) adds the two numbers of sets of secret sharing data to be multiplied to a plurality, and secrets of message authenticators for each of the plurality of sets of two numbers to be multiplied.
  • the vector multiplier (20A) Auxiliary vector message authenticator generation processing unit (205) for generating secret sharing data of a message authenticator for the auxiliary vector from secret sharing data of a message authenticator for the input and secret sharing data of a message authenticator for the beaver triplet
  • An input validity check processing unit (206) for verifying the auxiliary vector from the secret sharing data of the message authenticator for the auxiliary vector, the auxiliary vector, and the secret sharing data of the key of the message authenticator; Secret sharing data of the message authenticator of the vector multiplication result, secret sharing data of the message authenticator of the beaver triplet, the auxiliary vector, secret sharing data of the key of the message authenticator, and secret sharing of the beaver triplet
  • An output message authenticator generation processing unit (207) that generates an output message authenticator from the data;
  • the vector multiplier (20A) according to appendix 5, further comprising:
  • a vector multiplier (30) capable of communicating with a plurality of other vector multipliers, The pre-calculation input processing unit (201), the input processing unit (202), the auxiliary vector generation processing unit (203), and the vector multiplication processing unit that constitute the vector multiplication device (20) according to attachment 5. (204) each including a plurality, A result identical confirmation processing unit (303) for confirming that secret sharing data of the plurality of vector multiplication results are all the same value; Vector multiplier (30).
  • a vector multiplier (30A) capable of communicating with a plurality of other vector multipliers, and a message authenticator between the plurality of other vector multipliers and the vector multiplier (30A).
  • the vector multiplication device (30A) having a function of secretly sharing the key of The pre-calculation input processing unit (201A), the input processing unit (202A), the auxiliary vector generation processing unit (203), and the vector multiplication processing unit (20) constituting the vector multiplication device (20A) according to appendix 7. 204), a plurality of the auxiliary vector message authenticator generation processing unit (205), the input validity confirmation processing unit (206), and the output message authenticator generation processing unit (207), respectively.
  • a result identical confirmation processing unit (303) for confirming that secret sharing data of the plurality of vector multiplication results are all the same value;
  • Vector multiplier (30A) for confirming that secret sharing data of the plurality of vector multiplication results are all the same value;
  • Vector multiplier (30A) for confirming that secret sharing data of the plurality of vector multiplication results are all the same
  • a secure vector multiplication system using a beaver triplet with a message authenticator comprising a plurality of the vector multiplication devices (30A) according to Supplementary note 11 so as to be communicable.
  • a pre-calculation method performed in a pre-computing device (10) capable of communicating with a plurality of other pre-computing devices A beaver triplet generation processing unit (101) generates two secret-distributed random numbers, and the pre-computing device and the plurality of other pre-computing devices exchange the secret-distributed value of the product of the two random numbers with each other.
  • a beaver triplet generation processing unit (101) generates two secret-distributed random numbers
  • the pre-computing device and the plurality of other pre-computing devices exchange the secret-distributed value of the product of the two random numbers with each other.
  • a beaver triplet random inspection processing unit (102) randomly selects the secret-distributed beaver triplets and restores the beaver triplets by communicating with the pre-computing device and the plurality of other pre-computing devices.
  • the beaver triplet position agitation processing unit (103) rearranges the unrestored beaver triplets randomly, and generates the secret-distributed beaver triplets after the rearrangement. Pre-calculation method.
  • a vector multiplication method performed in a vector multiplier (20) capable of communicating with a plurality of other vector multipliers The pre-calculation input processing unit (201) generates secret sharing data of the beaver triplet, or inputs the secret sharing data of the beaver triplet, An input processing unit (202) inputs a plurality of sets of secret sharing data of two numbers to be multiplied, The auxiliary vector generation processing unit (203) adds one element of each of the secret sharing data of the beaver triplet to each of the two sets of secret sharing data to be multiplied, and the result of the secret sharing is obtained.
  • a vector multiplication processing unit (204) generates secret sharing data as a vector multiplication result from the auxiliary vector and the secret sharing data of the beaver triplet. Vector multiplication method.
  • the pre-calculation input processing unit (201), the input processing unit (202), the auxiliary vector generation processing unit (203), and the vector multiplication processing unit (204) all include a plurality of processes. Carried out, 15.
  • a beaver triplet generation processing unit (101) generates two secret-distributed random numbers, and the pre-computing device and the plurality of other pre-computing devices exchange the secret-distributed value of the product of the two random numbers with each other.
  • a beaver triplet random inspection processing unit (102) randomly selects the secret-distributed beaver triplets and restores the beaver triplets by communicating with the pre-computing device and the plurality of other pre-computing devices.
  • the beaver triplet position agitation processing unit (103A) randomly rearranges the unrestored beaver triplets, generates a secret-distributed beaver triplet after rearranging with a new index
  • the beaver triple child message authenticator generation processing unit (104) uses the secret-distributed message authenticator for the rearranged secret-distributed beaver triplet and the secret-distributed message authenticator key.
  • the beaver triplet message authenticator verification processing unit (105) generates a large number of linear sums of randomly sorted coefficients of the secret-distributed beaver triplets after the rearrangement, and restores the generated multiple values. A value obtained by generating a large number of linear sums of the secret-distributed beaver triplet message authenticators by the coefficients, and the restored value by a key of the secret-distributed message authenticator key. A process of confirming that the values that have generated many sums are the same, Pre-calculation method.
  • the pre-calculation input processing unit (201A) generates secret sharing data of a beaver triplet with a message authenticator, or inputs secret sharing data of the beaver triplet with a message authenticator,
  • the input processing unit (202A) includes a plurality of sets of secret sharing data of two numbers to be multiplied, and secret sharing data of a message authenticator for each of the plurality of sets of two numbers to be multiplied.
  • the auxiliary vector generation processing unit (203) adds one element of each of the secret sharing data of the beaver triplet to each of the two sets of secret sharing data to be multiplied, and the result of the secret sharing is obtained.
  • Generating auxiliary vectors as a result of disclosing data by communicating with the other vector multipliers and the vector multiplier (20A) A vector multiplication processing unit (204) generates secret sharing data as a vector multiplication result from the auxiliary vector and the secret sharing data of the beaver triplet,
  • An auxiliary vector message authenticator generation processing unit (205) obtains secret sharing data of the message authenticator for the auxiliary vector from secret sharing data of the message authenticator for the input and secret sharing data of the message authenticator for the beaver triplet.
  • An input validity check processing unit (206) verifies the auxiliary vector from the secret sharing data of the message authenticator for the auxiliary vector, the auxiliary vector, and the secret sharing data of the key of the message authenticator,
  • An output message authenticator generation processing unit (207) generates secret sharing data of the message authenticator as the vector multiplication result, secret sharing data of the message authenticator of the beaver triplet, the auxiliary vector, and a key of the message authenticator Generated as an output message authenticator from the secret sharing data of the beaver triplet and the secret sharing data of the beaver triplet, Vector multiplication method.
  • the pre-calculation input processing unit (201A), the input processing unit (202A), the auxiliary vector generation processing unit (203), the vector multiplication processing unit (204), and the auxiliary vector message authenticator generation processing Unit (205), the input validity confirmation processing unit (206), and the output message authenticator generation processing unit (207) all perform a plurality of processes, 18.
  • a beaver triplet that generates a large number of secret-distributed beaver triplets by repeatedly using the function of secret sharing of a triple consisting of two random numbers and their products in the pre-calculation device and the plurality of other pre-calculation devices Processing means (101),
  • the secret-distributed beaver triplets are randomly selected, and the pre-computing device and the plurality of other pre-computing devices communicate with each other to restore these beaver triplets, and first use the restored beaver triplet values.
  • a beaver triplet that generates a large number of secret-distributed beaver triplets by repeatedly using the function of secret sharing of a triple consisting of two random numbers and their products in the pre-calculation device and the plurality of other pre-calculation devices Processing means (101),
  • the secret-distributed beaver triplets are randomly selected, and the pre-computing device and the plurality of other pre-computing devices communicate with each other to restore these beaver triplets, and first use the restored beaver triplet values.
  • the secret-distributed message authenticator key for the secret-distributed beaver triplet after the rearrangement the pre-computing device and the plurality of other A beaver triplet message authenticator generation processing means (104) generated by communicating with the pre-computing device, and a large number of linear sums by randomly selected coefficients of the rearranged secreted beaver triplets are generated.
  • a beaver triplet mem- ber that performs processing for confirming that a value obtained by generating a large number of linear sums of the secret message authentication code keys is the same.
  • Message authenticator verification processing means (105), The computer-readable recording medium which recorded the precomputation program for functioning as.
  • a vector multiplier (20A) capable of communicating with a plurality of other vector multipliers, and a message authenticator between the plurality of other vector multipliers and the vector multiplier (20A).
  • a computer of the vector multiplication device (20A) having a function of secretly sharing the key of Precalculation input processing means (201A) for generating secret sharing data of beaver triplets with message authenticators or inputting secret sharing data of beaver triplets with message authenticators,
  • Input processing means (202A) for inputting a plurality of sets of secret sharing data of two numbers to be multiplied and secret sharing data of a message authenticator for each of the plurality of sets of two numbers to be multiplied , For each of the two sets of secret sharing data to be multiplied, one element of each of the secret sharing data of the Beaver triplet is added, and the secret sharing data of the addition result is added to the plurality of other vector multiplications
  • Auxiliary vector generation processing means (203) for generating auxiliary vectors as a result disclosed by the
  • a vector multiplier (30A) capable of communicating with a plurality of other vector multipliers, and a message authenticator between the plurality of other vector multipliers and the vector multiplier (30A).
  • a computer of the vector multiplication device (30A) having a function of secretly sharing the key of The precalculation input processing means (201A), the input processing means (202A), the auxiliary vector generation processing means (203), the vector multiplication processing means (204), the auxiliary vector message authenticator according to appendix 23
  • a result identical confirmation processing means (303) for confirming that secret sharing data of the plurality of vector multiplication results are all the same value
  • the computer-readable recording medium which recorded the vector multiplication program for making it function as.

Landscapes

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

Abstract

処理量を少なく保ったまま、参加者の悪意のある振る舞いに対して秘密を守ることが出来る事前計算装置を提供する。ビーバー三重子生成処理部は、秘密分散された二つの乱数と、この二つの乱数の積の秘密分散された積とから成る、秘密分散されたビーバー三重子を生成する。ビーバー三重子ランダム検査処理部は、秘密分散されたビーバー三重子をランダムに選び、他の事前計算装置と通信することでビーバー三重子を復元し、復元したビーバー三重子の最初の二つの要素の積が第三の要素となっていることを確認する。ビーバー三重子位置攪拌処理部は、復元しなかったビーバー三重子をランダムに並び替えて、並び替えた後の秘密分散されたビーバー三重子を生成する。

Description

事前計算装置、方法、およびコンピュータ読取可能な記録媒体、並びにベクトル乗算装置、および方法
 本発明は、事前計算装置、方法、およびコンピュータ読取可能な記録媒体、並びにベクトル乗算装置、および方法に関する。
 秘密計算方法とは、複数の秘密計算装置が互いに通信を介しながら計算することで、与えられた関数を計算する方法である。そして、秘密計算方法は、これらのいずれの秘密計算装置も十分な数の多装置間で互いに扱うデータを共有しない限り、関数への入力や出力に関する情報を得ることができない特徴を持つ。
 公知の秘密計算方法として、非特許文献1に挙げられる方法が知られている。
 非特許文献1に記載の方法では、ある体上の値である秘密Sを、この体上の多項式FでF(0)=Sとなるものを使って複数の装置に分散する。装置の数をN、秘密の個数がK未満であれば、関数の入力や出力に関する情報を得ることができないとする。この様な技術をこの技術分野では「秘密分散」という。装置毎に異なるこの体上の値が割り当てられているとし、i番目の装置に割り当てられている体の値をX[i]とする。ここで、1≦i≦Nである。
 秘密Aをこれら複数の装置に分散する時、各i番目の装置にはF(0)=Aなるランダムに選ばれた(K-1)次多項式Fに関する、F[i]:=F(X[i])を配る。
 秘密Bに関しても同様に、G(0)=Bなる(K-1)次多項式Gに関する、G[i]:=G(X[i])を各i番目の装置に配る。
 秘密は、K個以上の装置が集まれば(K-1)次多項式を解くことが可能で、FやGの係数を求めることができ、F(0)やG(0)を計算することが可能になる。
 A+Bを分散した値を計算するには、各i番目の装置は H[i]=F[i]+G[i]を計算する。この値はFとGのそれぞれ対応する係数を足したものを係数とする多項式Hに、X[i]を代入して得られたものH(X[i])であるので、秘密Aや秘密Bと同様にA+Bを複数の装置で分散したものとなる。
 秘密Aや秘密Bの場合と同様に、K個以上の装置が集まれば(K-1)次多項式を解くことが可能で、Hの係数を求めることができ、H(0)を計算することが可能になる。
 K*2 ≦N+1 の場合は、A*Bを分散した値を計算するには、各i番目の装置は H[i]=F[i]*G[i]を計算する。この値は2K次多項式H(X)=F(X)*G(X)、X[i]を代入して得られたものH(X[i])であるので、秘密Aや秘密Bと同様にA*Bを複数の装置で分散したものとなる。ただし、秘密Aや秘密Bの場合とは異なりHの次数は2Kとなるので、2K個以上の装置が集まれば2K次多項式を解くことが可能で、Hの係数を求めることができ、H(0)を計算することが可能になる。
 A*Bの分散方法は、秘密Aや秘密Bとは分散のされ方が異なる。これを同様に(K-1)次多項式を用いた形で分散するには、それぞれi番目の装置がH[i]からK-1次多項式Gを生成して、他のそれぞれj番目の装置にG(X[j])を配ることでなされる。このようにして、非特許文献1記載の方法では、加算と乗算からなる全ての関数を計算することができる。
 その他の公知の秘密計算方法として、非特許文献2に挙げられる方法が知られている。
 非特許文献2には、装置の数が二つの場合の方法に関する記述がある。この方法では、二つの装置がビット、すなわちガロア体GF(2)上のある要素bを分散して保持する場合は、 b+c=b mod 2 となるbとcを、それぞれの装置で分けて保持する。
 この様な方法を使うと、あるビットAとあるビットBを装置1と装置2で分散する場合、A=C+D mod 2, B=E+F mod 2として、装置1はCとEを、装置2はDとFを保持する。この時、ビットAとビットBの排他的論理和Gは G=A+B mod 2となり、これらの装置1と装置2との分散は、それぞれ、H=C+E mod 2とJ=D+F mod 2 とすることができる。
 それぞれの装置は、他の装置と通信することなく、軽い計算で分散された二つの値の排他的論理和の分散が計算できたことになる。
 同様に、ビットAとビットBとを分散して保持しているとき、この二つのビットの論理積 K=A・Bのそれぞれの分散、すなわち L+M=K mod 2なるLとMを、装置1がLを装置2がMを得るように計算を行うには、次のようにする。
 装置1はLをランダムに生成する。この時、M=(C+D)・(E+F)=L mod 2 であるので、装置2が持つ値DとFに応じて、装置1がMの値を知らずに装置2に次の値を返す。(D,F)=(0,0)ならM=(C+0)・(E+0)+L mod 2を返す。(D,F)=(0,1)ならM=(C+0)・(1+E)+L mod 2 を返す。(D,F)=(1,0)ならM=(1+C)・(E+0)+L mod 2 を返す。(D,F)=(1,1)ならM=(1+C)・(1+E)+L mod 2 を返す。
 装置2の入力に依存する値を装置1が装置2に送付する。装置1が装置2の入力を知ることができない方法は、装置1と装置2との間の oblivious transfer と呼ばれる技術で実現される。しかしながら、この技術では、一般に両者に多くの計算と通信を要求する。
 非特許文献1と2に開示された秘密計算方法では、各装置が正直に振る舞うことを前提としている。
 これに対して、非特許文献3は、一定数以上の装置が正直に振る舞えば、その他の装置が悪意を持って振る舞っても、安全性が保たれる方法を記述している。ここで、「悪意を持って振る舞う」とは、互いに通信する時に、正しい値を他者に送らないことを意味する。また、「安全性が保たれる」とは、偽の値を送ることで他者の持つ秘密を得ることができないことを意味する。
 非特許文献3に開示された秘密計算方法においては、秘密とその秘密のメッセージ認証子の両方を秘密分散により保持し、両者に対して秘密計算を行った結果が、最終的な計算結果とそのメッセージ認証子になっていることを確認する。このことで、悪意ある参加者が秘密計算において偽の値を他者に送るという不正をしていないことが確認できる。上記秘密計算においては、乱数とそのメッセージ認証子の組を3組で、最初の二組を乗じた結果が三組目となるものを事前計算し、秘密計算による乗算部分においてこれを使う。この3組を事前計算するためには、準同型性を持つ暗号を用いる。
Tal Rabin, Michael Ben-Or: Verifiable Secret Sharing and Multiparty Protocols with Honest Majority (Extended Abstract). STOC 1989: 73-85 Oded Goldreich, Ronen Vainish: How to Solve any Protocol Problem - An Efficiency Improvement. CRYPTO 1987: 73-86 Ivan Damgard, Valerio Pastro, Nigel P. Smart, Sarah Zakarias: Multiparty Computation from Somewhat Homomorphic Encryption. CRYPTO 2012: 643-662.
 上記非特許文献1~3に記述された方法には、それぞれ、次に述べるような問題がある。
 非特許文献1と2に記述された方法は、参加者の悪意ある振る舞いに対して秘密を守ることができないことが問題である。
 一方、非特許文献3に記述された方法は、事前計算には準同型暗号が必要であり、この処理時間が大きいことが問題である。
 したがって、処理量を少なく保ったまま、参加者の悪意のある振る舞いに対して秘密を守ることが課題である。
 本発明の目的は、上述したいずれかの課題を解決する事前計算装置、方法、およびコンピュータ読取可能な記録媒体、並びにベクトル乗算装置、方法、およびコンピュータ読取可能な記録媒体を提供することにある。
 本発明の事前計算装置は、複数の他の事前計算装置と通信可能な事前計算装置であって、秘密分散された二つの乱数を生成し、この二つの乱数の積の秘密分散された値を当該事前計算装置と前記複数の他の事前計算装置とが互いに通信することで生成することで、二つの乱数とそれらの積からなる三つ組みを当該事前計算装置と前記複数の他の事前計算装置とで秘密分散する機能を繰り返し使うことで、多数の秘密分散されたビーバー三重子を生成するビーバー三重子生成処理部と;前記秘密分散されたビーバー三重子をランダムに選び、互いに当該事前計算装置と前記複数の他の事前計算装置とが通信することでこれらのビーバー三重子を復元し、復元したビーバー三重子の値を用いて最初の二つの要素の積が第三の要素となっていることを確認するビーバー三重子ランダム検査処理部と;前記復元しなかったビーバー三重子をランダムに並び替えて、並び替えた後の秘密分散されたビーバー三重子を生成するビーバー三重子位置攪拌処理部と;を備える。
 本発明の事前計算方法は、複数の他の事前計算装置と通信可能な事前計算装置において行われる事前計算方法であって、ビーバー三重子生成処理部が、秘密分散された二つの乱数を生成し、この二つの乱数の積の秘密分散された値を当該事前計算装置と前記複数の他の事前計算装置とが互いに通信することで生成することで、二つの乱数とそれらの積からなる三つ組みを当該事前計算装置と前記複数の他の事前計算装置とで秘密分散する機能を繰り返し使うことで、多数の秘密分散されたビーバー三重子を生成し;ビーバー三重子ランダム検査処理部が、前記秘密分散されたビーバー三重子をランダムに選び、互いに当該事前計算装置と前記複数の他の事前計算装置とが通信することでこれらのビーバー三重子を復元し、復元したビーバー三重子の値を用いて最初の二つの要素の積が第三の要素となっていることを確認し;ビーバー三重子位置攪拌処理部が、前記復元しなかったビーバー三重子をランダムに並び替えて、並び替えた後の秘密分散されたビーバー三重子を生成する。
 本発明の事前計算プログラムは、複数の他の事前計算装置と通信可能な事前計算装置のコンピュータを、秘密分散された二つの乱数を生成し、この二つの乱数の積の秘密分散された値を当該事前計算装置と前記複数の他の事前計算装置とが互いに通信することで生成することで、二つの乱数とそれらの積からなる三つ組みを当該事前計算装置と前記複数の他の事前計算装置とで秘密分散する機能を繰り返し使うことで、多数の秘密分散されたビーバー三重子を生成するビーバー三重子生成処理手段;前記秘密分散されたビーバー三重子をランダムに選び、互いに当該事前計算装置と前記複数の他の事前計算装置とが通信することでこれらのビーバー三重子を復元し、復元したビーバー三重子の値を用いて最初の二つの要素の積が第三の要素となっていることを確認するビーバー三重子ランダム検査処理手段;および前記復元しなかったビーバー三重子をランダムに並び替えて、並び替えた後の秘密分散されたビーバー三重子を生成するビーバー三重子位置攪拌処理手段;として機能させる。
 また、本発明のベクトル乗算装置は、複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置であって、ビーバー三重子の秘密分散データを生成し、あるいは前記ビーバー三重子の秘密分散データが入力される事前計算入力処理部と;乗算されるべき二つの数の組の秘密分散データが複数個入力される入力処理部と;前記乗算されるべき二つの組の秘密分散データそれぞれに対して、前記ビーバー三重子の秘密分散データそれぞれの一つの要素を加算し、加算結果の秘密分散されたデータを、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置とが互いに通信して開示した結果である補助ベクトルを生成する補助ベクトル生成処理部と;前記補助ベクトルと前記ビーバー三重子の秘密分散データとから、ベクトル乗算結果の秘密分散データを生成するベクトル乗算処理部と;を備える。
 本発明のベクトル乗算方法は、複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置において行われるベクトル乗算方法であって、事前計算入力処理部が、ビーバー三重子の秘密分散データを生成し、あるいは前記ビーバー三重子の秘密分散データを入力し;入力処理部が、乗算されるべき二つの数の組の秘密分散データを複数個入力し;補助ベクトル生成処理部が、前記乗算されるべき二つの組の秘密分散データそれぞれに対して、前記ビーバー三重子の秘密分散データそれぞれの一つの要素を加算し、加算結果の秘密分散されたデータを、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置とが互いに通信して開示した結果である補助ベクトルを生成し;ベクトル乗算処理部が、前記補助ベクトルと前記ビーバー三重子の秘密分散データとから、ベクトル乗算結果の秘密分散データを生成する。
 本発明のコンピュータ読取可能な記録媒体に記録されたベクトル乗算プログラムは、複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置のコンピュータを、ビーバー三重子の秘密分散データを生成し、あるいは前記ビーバー三重子の秘密分散データを入力する事前計算入力処理手段;乗算されるべき二つの数の組の秘密分散データを複数個入力する入力処理手段;前記乗算されるべき二つの組の秘密分散データそれぞれに対して、前記ビーバー三重子の秘密分散データそれぞれの一つの要素を加算し、加算結果の秘密分散されたデータを、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置とが互いに通信して開示した結果である補助ベクトルを生成する補助ベクトル生成処理手段;および前記補助ベクトルと前記ビーバー三重子の秘密分散データとから、ベクトル乗算結果の秘密分散データを生成するベクトル乗算処理手段;として機能させる。
 本発明によれば、処理量を少なく保ったまま、参加者の悪意のある振る舞いに対して秘密を守ることができる。
本発明の第1の実施形態に係る事前計算システムを構成する事前計算装置のハードウェア構成を示すブロック図である。 図1に示される事前計算装置に使用されるデータ処理装置の動作を説明するためのフロー図である。 本発明の第2の実施形態に係るベクトル乗算システムを構成するベクトル乗算装置のハードウェア構成を示すブロック図である。 図3に示されるベクトル乗算装置に使用されるテータ処理装置の動作を説明するためのフロー図である。 本発明の第3の実施形態に係るベクトル乗算システムを構成するベクトル乗算装置のハードウェア構成を示すブロック図である。 図5に示されるベクトル乗算装置に使用されるテータ処理装置の動作を説明するためのフロー図である。 本発明の第4の実施形態に係る事前計算システムを構成する事前計算装置のハードウェア構成を示すブロック図である。 図7に示される事前計算装置に使用されるデータ処理装置の動作を説明するためのフロー図である。 本発明の第5の実施形態に係るベクトル乗算システムを構成するベクトル乗算装置のハードウェア構成を示すブロック図である。 図9に示されるベクトル乗算装置に使用されるテータ処理装置の動作を説明するためのフロー図である。 本発明の第6の実施形態に係るベクトル乗算システムを構成するベクトル乗算装置のハードウェア構成を示すブロック図である。 図11に示されるベクトル乗算装置に使用されるテータ処理装置の動作を説明するためのフロー図である。
(記号と定義の説明)
 最初に、本発明の理解を容易するために、本発明において使用される演算子などの記号やその定義について説明する。
 体Fを要素とする長さNのベクトル同士の演算を示す。二つのベクトルxとyがあり、それらの第i番目の要素をそれぞれx[i], y[i]とする。ベクトルxとy の加算結果をzとすると、zのi番目の要素をz[i]=x[i]+y[i]とする。
 以下に記述される発明の文脈において、この加算方法は容易でよく知られているため、これ以上は記述しない。
 ベクトルxとyの乗算結果をzとすると、zのi番目の要素を z[i]=x[i]y[i]とする。本発明はこの乗算に関する発明である。
 上記ベクトルの加算と乗算が可能になれば、体Fの要素の加算と乗算を大量に同時に実行する場合に利用することができる。例えば、多項式PをN個の入力に対して計算したい場合を考える。この場合、多項式Pの変数の数だけベクトルを準備し、k番目の変数にk番目のベクトルを割り当て、それぞれのベクトルのi番目の要素に、i番目の入力の要素を割り振る。このとき、N個の入力に対する多項式Pの評価は、単一の多項式Pに対する長さNのベクトル複数の入力による評価となる。すなわち、多項式Pを構成するそれぞれの乗算や加算は、ベクトルの加算や乗算によって、全ての入力に対して同時に実行されることになる。
 Mを安全変数、Nをベクトル長とする。本発明は特にM<<Nの場合に効率的である。Kを整数とする。本発明は特にM<<Kの場合に効率的である。vを検査率とする。L=N(K+M)/(1-v) とする。{M}は{1,…,M}を表し、{N}は{1,…,N}を表し、{K}は{1,…,K}を表し、{L}は{1,…,L}を表すとする。
 Fを体とする。値x が(t,n)-秘密分散されていることを、<x>と表す。具体的には、各参加者が値xに関するあるデータを持っている状態で、かつ(t-1)以下の参加者がこれらのデータを持ち寄っても値xに関する情報は一切わからず、t以上の参加者がこれらのデータを持ち寄ると値xを復元できる状態である。
 ここで各装置が持つデータをxの秘密分散のシェア、あるいはxのシェアと呼ぶ。この秘密分散は参加者が互いに通信することなく二つの(t,n)-秘密分散 <x>, <y> から、x とyの積z=xy の(2t-1,n)-秘密分散を求めることができるとする。この結果を<<z>>=<x>** <y>と表すとする。<<z>>から、参加者間で通信することで<z>を得る方法があるとする。この処理を<z>=Reshare(<<z>>)と表す。
 Open(<x>)を、<x>から全ての参加者がxを得る処理とする。この時、全てのt参加者の組み合わせに関するxの復元結果を得るとする。これは、一部の参加者が不正を働いた場合、一部の組み合わせでは正しい値が復元されない可能性があるからである。この全ての組み合わせに対して同じ値が得られなかった参加者は、不正を検知したとことを通知して動作を終了する。
 Randomは、全ての参加者が参加することで(t,n)-秘密分散されたランダムな体Fの要素を生成する処理である。Random’は、公開されたランダムな体Fの要素を生成する処理である。公開された値a と秘密分散 <x>との積、a<x>=<ax> は通信を伴うことなく計算できるとする。Reshare, Random, Random’処理では各参加者は乱数を消費する。
 全てのi ∈{M}, j ∈ {N} に関して<Γ[i,j]> =Randomと生成してあるとする。ここで、i ∈{M}, j ∈ {N} に関する<Γ[i,j]>は、メッセージ認証子の鍵を秘密分散した値であり、秘密分散されたメッセージ認証子の鍵、または、メッセージ認証子の鍵の秘密分散データとも呼ばれる。
[実施形態1]
 図1は、本発明の第1の実施形態に係る事前計算システムを構成する事前計算装置10のハードウェア構成を示すブロック図である。図示の事前計算装置10は、プログラム制御により動作するコンピュータで実現可能である。
 図示の事前計算システムは、ビーバー(Beaver)三重子の安全な事前計算システムである。
 事前計算システムは、互いに通信が可能な複数の事前計算装置10から成るシステムである。
 事前計算装置10は、通信インターフェイス(以下、「通信I/F」と記す)11と、データを入力する入力装置12と、データを出力する出力装置13と、後述するプログラムやデータを記憶する記憶装置14と、データを処理するデータ処理装置15とを備えている。
 通信I/F11は、専用のデータ通信回線から成る。通信I/F11は、通信ネットワーク(図示せず)を介してまたは無線によりデータを送受信する機能を有する。具体的には、通信I/F11は、他の事前計算装置へデータを送信し、他の事前計算装置からデータを受信する。通信I/F11は、受信したデータを、データ処理装置15へ送出する機能をも有する。
 入力装置12は、キーボードやマウスなどから成る。入力装置12は、オペレータの操作を検出して、その操作情報をデータ処理装置15へ送出する機能を有する。
 出力装置13は、LCD(Liquid Crystal Display)やPDP(Plasma Display Panel)などの表示装置やプリンタから成る。出力装置13は、データ処理装置15からの指示に応じて、操作メニューなどの各種情報を表示したり、最終結果を印字出力する機能を有する。
 記憶装置14は、ハードディスクやリードオンリメモリ(ROM)およびランダムアクセスメモリ(RAM)などのメモリから成る。記憶装置14は、データ処理装置15における各種処理に必要な処理情報(後述する)やプログラム111を記憶する機能を有する。
 データ処理装置15は、MPU(micro processing unit)などのマイクロプロセッサや中央処理装置(CPU)から成る。データ処理装置15は、記憶装置14からプログラム111を読み込んで、プログラム111に従ってデータを処理する各種処理部を実現する機能を有する。
 データ処理装置15で実現される主な処理部は、ビーバー三重子生成処理部101、ビーバー三重子ランダム検査処理部102、およびビーバー三重子位置攪拌処理部103から成る。
 ビーバー三重子生成処理部101は、秘密分散された二つの乱数を生成し、この二つの乱数の積の秘密分散された値を複数の事前計算装置10が互いに通信することで生成することで、二つの乱数とそれらの積からなる三つ組みを複数の事前計算装置10で秘密分散する機能を持つ。ビーバー三重子生成処理部101は、この機能を繰り返し使うことで、多数の秘密分散されたビーバー三重子を生成する。
 記憶装置14は、乱数112と、ビーバー三重子生成処理部101で生成された、ビーバー三重子の秘密分散データ113と、を保存する。ビーバー三重子の秘密分散データ113は、秘密分散されたビーバー三重子とも呼ばれる。
 ビーバー三重子ランダム検査処理部102は、秘密分散されたビーバー三重子113をランダムに選び、互いに複数の事前計算装置10が通信することでこれらのビーバー三重子を復元する。そして、ビーバー三重子ランダム検査処理部102は、復元したビーバー三重子の値を用いて、最初の二つの要素の積が第三の要素となっていることを確認する。
 ビーバー三重子ランダム検査処理部102の検査の合否結果は、出力装置13から出力される。
 ビーバー三重子位置攪拌処理部103は、前記復元しなかったビーバー三重子をランダムに並び替え(すなわち、攪拌し)て、並び替えた後の秘密分散されたビーバー三重子を生成する。
 記憶装置14は、ビーバー三重子位置攪拌処理部103で攪拌された、攪拌済みビーバー三重子の秘密分散データ114を保存する。攪拌済みビーバー三重子の秘密分散データ114は、並び替えた後の秘密分散されたビーバー三重子とも呼ばれる。
 次に、図2を参照して、図1のデータ処理装置15の各処理部101~103において行われる処理について更に詳細に説明する。
 ビーバー三重子生成処理部101は、先ず、全てのj ∈ {L} に対して、<a[j]> = Randomと生成する。引き続いて、ビーバー三重子生成処理部101は、全てのj ∈ {L} に対して、<b[j]> = Randomと生成する。
 そして、ビーバー三重子生成処理部101は、全てのj ∈ {L} に対して、<c[j]> = Reshare(<a[j]>**<b[j]>) と生成する。
 ここで、全ての参加者が正直に振る舞ったならば、この時点で、 全てのj ∈ {L} に対して、正しい秘密分散されたビーバー三重子(<a[j]>, <b[j]>, <c[j]>)が生成されている。ここで言う「正しい」とは、a[j] b[j]=c[j] の関係が成り立っているということである。尚、秘密分散されたビーバー三重子は、ビーバー三重子の秘密分散データとも呼ばれる。
 この処理はビーバー三重子生成処理(S101)と呼ばれる。
 ビーバー三重子ランダム検査処理部102は、一定の割合vでj∈{L}を選び、Open(<c[j]>= Open(<a[j]>) Open(<b[j]>) が成り立つことを確認する。成り立たない組が見つかれば、ビーバー三重子ランダム検査処理部102は、不正を検知したとして終了する。
 この関係はビーバー三重子として成立すべきであるため、関係の不成立は参加者の不正があったことを意味する。また、一定の割合vで検査しているため、特定のビーバー三重子が正しく作られていない時にこれが見つかる確率は、この一定の割合である。
 さらに、ある一定の割合Fでビーバー三重子の生成で不正を働こうとすると、生成したビーバー三重子の数Lが多ければ多いほど、不正が見つかる可能性が高くなる。なぜなら、個数L個のビーバー三重子の内、L*f =F個のビーバー三重子が正しく生成されておらず, L*v=V個検査した場合、不正が見つかる確率1-(1-F/L)Vは、Lが大きくなればなるほど1に近づくからである。よって、Lを大きくすればするほど、不正が発見されにくいためには、Fを小さくしなければならない。
 この処理は、ビーバー三重子ランダム検査処理(S102)と呼ばれる。
 ビーバー三重子位置攪拌処理部103は、全て確認されたら、残りのL-V の組をランダムに入れ替えて、それぞれ j∈{L-V},<a[j]>, <b[j]>, <c[j]> とする。
 上記入れ替えにより、例え不正なビーバー三重子が存在しても、その位置がランダムになる。
 この処理は、ビーバー三重子位置攪拌処理(S103)と呼ばれる。
 次に、本発明の第1の実施形態に係る事前計算システムの効果について説明する。ビーバー三重子の安全な事前計算により、誤ったビーバー三重子の割合が一定の値以下となる、ビーバー三重子の集合を作ることができる、という効果がある。
[実施形態2]
 図3は、本発明の第2の実施形態に係るベクトル乗算システムを構成するベクトル乗算装置20のハードウェア構成を示すブロック図である。図示のベクトル乗算装置20は、プログラム制御により動作するコンピュータで実現可能である。
 図示のベクトル乗算システムは、ビーバー三重子を用いた隠然的に安全なベクトル乗算システムである。
 ベクトル乗算システムは、互いに通信が可能な複数のベクトル乗算装置20から成るシステムである。
 ベクトル乗算装置20は、通信インターフェイス(以下、「通信I/F」と記す)21と、データを入力する入力装置22と、データを出力する出力装置23と、後述するプログラムやデータを記憶する記憶装置24と、データを処理するデータ処理装置25とを備えている。
 通信I/F21は、専用のデータ通信回線から成る。通信I/F21は、通信ネットワーク(図示せず)を介してまたは無線によりデータを送受信する機能を有する。具体的には、通信I/F21は、他のベクトル乗算装置へデータを送信し、他のベクトル乗算装置からデータを受信する。通信I/F21は、受信したデータを、データ処理装置25へ送出する機能をも有する。
 入力装置22は、キーボードやマウスなどから成る。入力装置22は、オペレータの操作を検出して、その操作情報をデータ処理装置25へ送出する機能を有する。
 出力装置23は、LCD(Liquid Crystal Display)やPDP(Plasma Display Panel)などの表示装置やプリンタから成る。出力装置23は、データ処理装置25からの指示に応じて、操作メニューなどの各種情報を表示したり、最終結果を印字出力する機能を有する。
 記憶装置24は、ハードディスクやリードオンリメモリ(ROM)およびランダムアクセスメモリ(RAM)などのメモリから成る。記憶装置24は、データ処理装置25における各種処理に必要な処理情報(後述する)やプログラム211を記憶する機能を有する。
 データ処理装置25は、MPU(micro processing unit)などのマイクロプロセッサや中央処理装置(CPU)から成る。データ処理装置25は、記憶装置24からプログラム211を読み込んで、プログラム211に従ってデータを処理する各種処理部を実現する機能を有する。
 データ処理装置25で実現される主な処理部は、事前計算入力処理部201、入力処理部202、補助ベクトル生成処理部203、およびベクトル乗算処理部204から成る。
 事前計算入力処理部201は、ビーバー三重子の秘密分散データ212を生成し、あるいはこれを入力する。
 記憶装置24は、事前計算入力処理部201で生成あるいは入力された、ビーバー三重子の秘密分散データ212を保存する。このビーバー三重子の秘密分散データ212は、図1の記憶装置14に保存されている、攪拌済みビーバー三重子の秘密分散データ114と同じである。
 入力処理部202は、乗算されるべき二つの数の組の秘密分散データが複数個を入力する。
 記憶装置24は、入力処理部202から入力された、乗算されるデータの秘密分散データ213を保存する。この乗算されるデータの秘密分散データ213は、乗算されるべき二つの組の秘密分散データから成る。
 補助ベクトル生成処理部203は、前記乗算されるべき二つの組の秘密分散データそれぞれに対して、ビーバー三重子の秘密分散データそれぞれの一つの要素を加算し、加算結果の秘密分散されたデータを、複数のベクトル乗算装置20が互いに通信して開示した結果である補助ベクトル216を生成する。
 記憶装置24は、補助ベクトル生成処理部203で生成された、補助ベクトル216を保存する。
 ベクトル乗算処理部204は、補助ベクトル216を用いて、前記ビーバー三重子の秘密分散データ212から、積の秘密分散データ215を生成する。
 記憶装置24は、ベクトル乗算処理部204で生成された、積の秘密分散データ215を保存する。積の秘密分散データは、ベクトル乗算結果の秘密分散データとも呼ばれる。
 次に、図4を参照して、図3のデータ処理装置25の各処理部201~204において行われる処理について更に詳細に説明する。
 {N}は{L-V}よりその部分集合として選ぶ。 
 事前計算入力処理部201において、あるk に関する前述のビーバー三重子の秘密分散データが入力されたとする。このkは省略する。すなわち、事前計算入力処理部201から、全ての j ∈ {N} に関する <a[j]>, <b[j]>, <c[j]> が入力されているとする。
 これらの値は、次の関係を満たしていることが期待されている。 
 全てのj ∈{N}に関して、 c[j]=a[j] b[j]. 
 この処理は、事前計算入力処理(S201)と呼ばれる。
 入力処理部202において、乗算の対象として、j ∈{N} に関して、<x[j]>, <y[j]> が入力されるとする。 
 この処理は、入力処理(S202)と呼ばれる。
 補助ベクトル生成処理部203は、まず、全てのj ∈{N}に関して、d[j] = Open(<x[j]> +<a[j]>) を生成する。
 引き続いて、補助ベクトル生成処理部203は、全てのj ∈{N}に関して、e[j] = Open(<y[j]> + <b[j]>) を生成する。 
 この処理は、補助ベクトル生成処理(S203)と呼ばれる。
 ベクトル乗算処理部204は、全てのj ∈{N}に関して、<z[j]>=<c[j]>+ d[j]e[j] - e[j]<a[j]>- d[j]<b[j]> を生成する。
 本処理がベクトルの乗算処理であり、安全性を保証することを忘れれば、この処理が実質的な目的である。 
 この処理は、ベクトル乗算処理(S204)と呼ばれる。
 次に、本発明の第2の実施形態に係るベクトル乗算システムの効果について説明する。ビーバー三重子の集合を、ビーバー三重子を用いた隠然的に安全なベクトル乗算方法で利用してベクトル乗算を行っているので、各乗算が正しく行われたことが、正しいビーバー三重子の割合と同じ割合で保証することができる、という効果がある。
[実施形態3]
 図5は、本発明の第3の実施形態に係るベクトル乗算システムを構成するベクトル乗算装置30のハードウェア構成を示すブロック図である。図示のベクトル乗算装置30は、プログラム制御により動作するコンピュータで実現可能である。
 図示のベクトル乗算システムは、ビーバー三重子を用いた安全なベクトル乗算システムである。
 ベクトル乗算システムは、互いに通信が可能な複数のベクトル乗算装置30から成るシステムである。
 ベクトル乗算装置30は、通信インターフェイス(以下、「通信I/F」と記す)31と、データを入力する入力装置32と、データを出力する出力装置33と、後述するプログラムやデータを記憶する記憶装置34と、データを処理するデータ処理装置35とを備えている。
 通信I/F31は、専用のデータ通信回線から成る。通信I/F31は、通信ネットワーク(図示せず)を介してまたは無線によりデータを送受信する機能を有する。具体的には、通信I/F31は、他のベクトル乗算装置へデータを送信し、他のベクトル乗算装置からデータを受信する。通信I/F31は、受信したデータを、データ処理装置35へ送出する機能をも有する。
 入力装置32は、キーボードやマウスなどから成る。入力装置32は、オペレータの操作を検出して、その操作情報をデータ処理装置35へ送出する機能を有する。
 出力装置33は、LCD(Liquid Crystal Display)やPDP(Plasma Display Panel)などの表示装置やプリンタから成る。出力装置33は、データ処理装置35からの指示に応じて、操作メニューなどの各種情報を表示したり、最終結果を印字出力する機能を有する。
 記憶装置34は、ハードディスクやリードオンリメモリ(ROM)およびランダムアクセスメモリ(RAM)などのメモリから成る。記憶装置34は、データ処理装置35における各種処理に必要な処理情報(後述する)やプログラム311を記憶する機能を有する。
 データ処理装置35は、MPU(micro processing unit)などのマイクロプロセッサや中央処理装置(CPU)から成る。データ処理装置35は、記憶装置34からプログラム311を読み込んで、プログラム311に従ってデータを処理する各種処理部を実現する機能を有する。
 データ処理装置35で実現される主な処理部は、入力部301、ベクトル乗算部302、および結果同一確認処理部303から成る。
 入力部301は、第1乃至第T(Tは2以上の整数)の入力処理モジュール301-1~301-Tから成る。第1乃至第Tの入力処理モジュール301-1~301-Tの各々は、図3のデータ処理装置25における事前計算処理部201と入力処理部202とから成る。
 ベクトル乗算部302は、第1乃至第Tのベクトル乗算モジュール302-1~302-Tから成る。第1乃至第Tのベクトル乗算モジュール302-1~302-Tの各々は、図3のデータ処理装置25における、補助ベクトル生成処理部203と、ベクトル乗算処理部204とから成る。
 換言すれば、第1乃至第Tのベクトル乗算モジュール302-1~302-Tの各々は、ビーバー三重子を用いた隠然的に安全なベクトル乗算方法を実施する。
 結果同一確認処理部303は、第1乃至第Tのベクトル乗算モジュール302-1~302-Tの乗算結果が全て同一の値であることを確認する。
 記憶装置34は、図3に図示された記憶装置24に記憶された処理情報と同様の処理情報を記憶する。すなわち、記憶装置34は、ビーバー三重子の秘密分散データ312、乗算されるデータの秘密分散データ313、積の秘密分散データ315、および補助ベクトル316を保存する。但し、記憶装置24とは異なり、記憶装置34は、それら情報をT個保存する。
 次に、図6を参照して、図5のデータ処理装置35の各処理部301~303において行われる処理について更に詳細に説明する。
 Tを重複数とする。 
 入力部301では、一つの入力に対してT個の同じ値の入力が準備されているとする(S301)。ただし、それぞれの秘密分散は独立しており、同じ入力に対する各参加者が所持するデータは全て互いにランダムに分布するとする。
 ベクトル乗算部302は、前述の隠然的に安全な乗算方法をT個の入力に対して独立に適用する(S302)。
 適用後、結果同一確認処理部303は、結果が全て同一であることを次のように確認する。
 あるjに対するT個の結果が <z(1)[j]>,…, <z(T)[j]> であったとする。 
 結果同一確認処理部303は、O= Open(<z(u)[j]>=<z(u+1)[j]>) を全てのu=1,…,T-1 に対して確認する。 
 この処理は、結果同一確認処理と呼ばれる(S303)。
 これらの確認も確率的な確認を多数行うことで、Open の数を減らすことができる。
 前述した第2の実施形態に係る隠然的に安全な方法では、ビーバー三重子が正しく生成されていなければ、答え乗算結果が正しいことは保証できなかった。一方、ビーバー三重子の検証方法から、ビーバー三重子が大量に作られていてかつ一定の割合を検査するならば、紛れ込ませることのできる不正なビーバー三重子の数は一定の小さな割合に留まった。
 それゆえ、本第3の実施形態では、複数の計算を同時に行い、それぞれの計算を異なるビーバー三重子で担保しているので、少なくとも一つの計算は正しいビーバー三重子で計算されるようになる確率を十分高くすることができる。その後、全ての計算が同一であることを確認すれば、全ての計算が正しいビーバー三重子による計算結果と同じになることが保証される。
 次に、本発明の第3の実施形態に係るベクトル乗算システムの効果について説明する。ビーバー三重子の集合を、ビーバー三重子を用いた安全なベクトル乗算方法で利用してベクトル乗算を行っているので、各乗算が正しく行われたことが、圧倒的な確率で保証できる、という効果がある。
 この計算で通信が必要な処理は、Rehash, Open, Rand である。これらの回数は、M<<N<<Kであることを考えると、隠然的に安全な方法で乗算一個当たり5回、安全な方法で5T回である。
[実施形態4]
 図7は、本発明の第4の実施形態に係る事前計算システムを構成する事前計算装置10Aのハードウェア構成を示すブロック図である。図示の事前計算装置10Aは、プログラム制御により動作するコンピュータで実現可能である。
 図示の事前計算システムは、メッセージ認証子付ビーバー(Beaver)三重子の安全な事前計算システムである。
 事前計算システムは、互いに通信が可能な複数の事前計算装置10Aから成るシステムである。複数の事前計算装置10Aは、これらの事前計算装置10Aの間で、メッセージ認証子の鍵を秘密分散して保持する機能を備える。
 事前計算装置10Aは、通信インターフェイス(以下、「通信I/F」と記す)11と、データを入力する入力装置12と、データを出力する出力装置13と、後述するプログラムやデータを記憶する記憶装置14Aと、データを処理するデータ処理装置15Aとを備えている。
 通信I/F11は、専用のデータ通信回線から成る。通信I/F11は、通信ネットワーク(図示せず)を介してまたは無線によりデータを送受信する機能を有する。具体的には、通信I/F11は、他の事前計算装置へデータを送信し、他の事前計算装置からデータを受信する。通信I/F11は、受信したデータを、データ処理装置15Aへ送出する機能をも有する。
 入力装置12は、キーボードやマウスなどから成る。入力装置12は、オペレータの操作を検出して、その操作情報をデータ処理装置15Aへ送出する機能を有する。
 出力装置13は、LCD(Liquid Crystal Display)やPDP(Plasma Display Panel)などの表示装置やプリンタから成る。出力装置13は、データ処理装置15Aからの指示に応じて、操作メニューなどの各種情報を表示したり、最終結果を印字出力する機能を有する。
 記憶装置14Aは、ハードディスクやリードオンリメモリ(ROM)およびランダムアクセスメモリ(RAM)などのメモリから成る。記憶装置14Aは、データ処理装置15Aにおける各種処理に必要な処理情報(後述する)やプログラム111Aを記憶する機能を有する。
 データ処理装置15Aは、MPU(micro processing unit)などのマイクロプロセッサや中央処理装置(CPU)から成る。データ処理装置15Aは、記憶装置14Aからプログラム111Aを読み込んで、プログラム111Aに従ってデータを処理する各種処理部を実現する機能を有する。
 データ処理装置15Aで実現される主な処理部は、ビーバー三重子生成処理部101、ビーバー三重子ランダム検査処理部102、ビーバー三重子位置攪拌処理部103A、ビーバー三重子メッセージ認証子生成処理部104、およびビーバー三重子メッセージ認証子検証処理部105から成る。
 すなわち、データ処理装置15Aは、図1に示されたデータ処理装置15とは、ビーバー三重子メッセージ認証子生成処理部104とビーバー三重子メッセージ認証子検証処理部105とが新たに追加されていると共に、ビーバー三重子位置攪拌処理部103Aでの処理内容が異なっている点において、相違している。
 ビーバー三重子生成処理部101は、秘密分散された二つの乱数を生成し、この二つの乱数の積の秘密分散された値を複数の事前計算装置10Aが互いに通信することで生成することで、二つの乱数とそれらの積からなる三つ組みを複数の事前計算装置10Aで秘密分散する機能を持つ。ビーバー三重子生成処理部101は、この機能を繰り返し使うことで、多数の秘密分散されたビーバー三重子を生成する。
 記憶装置14Aは、乱数112と、ビーバー三重子生成処理部101で生成された、ビーバー三重子の秘密分散データ113と、を保存する。ビーバー三重子の秘密分散データ113は、秘密分散されたビーバー三重子とも呼ばれる。
 ビーバー三重子ランダム検査処理部102は、秘密分散されたビーバー三重子113をランダムに選び、互いに複数の事前計算装置10Aが通信することでこれらのビーバー三重子を復元する。そして、ビーバー三重子ランダム検査処理部102は、復元したビーバー三重子の値を用いて、最初の二つの要素の積が第三の要素となっていることを確認する。
 ビーバー三重子ランダム検査処理部102の検査の合否結果は、出力装置13から出力される。
 ビーバー三重子位置攪拌処理部103Aは、前記復元しなかったビーバー三重子をランダムに並び替え(すなわち、攪拌し)て、新しいインデックスを付けて並び替えた後の秘密分散されたビーバー三重子を生成する。
 記憶装置14Aは、ビーバー三重子位置攪拌処理部103Aで攪拌された、攪拌済みビーバー三重子の秘密分散データ114Aを保存する。攪拌済みビーバー三重子の秘密分散データ114Aは、並び替えた後の秘密分散されたビーバー三重子とも呼ばれる。
 記憶装置14Aは、前述したメッセージ認証子の鍵の秘密分散データ115を保存する。メッセージ認証子の鍵の秘密分散データ115は、秘密分散されたメッセージ認証子の鍵とも呼ばれる。
 ビーバー三重子メッセージ認証子生成処理部104は、乱数112とメッセージ認証子の鍵の秘密分散データ115とを用いて、前記並び替えた後の秘密分散されたビーバー三重子114Aに対してその秘密分散されたメッセージ認証子を、複数の事前計算装置10Aが互いに通信することで生成する。
 記憶装置14Aは、攪拌済みビーバー三重子とそのメッセージ認証子の秘密分散データ116を保存する。攪拌済みビーバー三重子とそのメッセージ認証子の秘密分散データ116は、メッセージ認証子付ビーバー三重子の秘密分散データとも呼ばれる。したがって、メッセージ認証子付ビーバー三重子の秘密分散データ116は、秘密分散されたビーバー三重子と、秘密分散されたビーバー三重子のメッセージ認証子とから成る。
 ビーバー三重子メッセージ認証子検証処理部105は、次に述べるような、復元処理と、確認処理とを行う。復元処理では、ビーバー三重子メッセージ認証子検証処理部105は、前記並び替えた後の秘密分散されたビーバー三重子のランダムに選んだ係数による線形和を多数生成し、この多数生成した値を復元して復元された値を生成する。確信処理では、ビーバー三重子メッセージ認証子検証処理部105は、前記秘密分散されたビーバー三重子のメッセージ認証子を前記係数による線形和を多数生成した値と、前記復元された値を前記秘密分散されたメッセージ認証子の鍵による線形和を多数生成した値とが同一であることを確認する。
 ビーバー三重子メッセージ認証子検証処理部105の検証の合否結果は、出力装置13から出力される。
 次に、図8を参照して、図7のデータ処理装置15Aの各処理部101~105において行われる処理について更に詳細に説明する。
 ビーバー三重子生成処理部101は、先ず、全てのj ∈ {L} に対して、<a[j]> = Randomと生成する。引き続いて、ビーバー三重子生成処理部101は、全てのj ∈ {L} に対して、<b[j]> = Randomと生成する。
 そして、ビーバー三重子生成処理部101は、全てのj ∈ {L} に対して、<c[j]> = Reshare(<a[j]>**<b[j]>) と生成する。
 ここで、全ての参加者が正直に振る舞ったならば、この時点で、 全てのj ∈ {L} に対して、正しい秘密分散されたビーバー三重子(<a[j]>, <b[j]>, <c[j]>)が生成されている。ここで言う「正しい」とは、a[j] b[j]=c[j] の関係が成り立っているということである。尚、秘密分散されたビーバー三重子は、ビーバー三重子の秘密分散データとも呼ばれる。 
 この処理はビーバー三重子生成処理(S101)と呼ばれる。
 ビーバー三重子ランダム検査処理部102は、一定の割合vでj∈{L}を選び、Open(<c[j]>= Open(<a[j]>) Open(<b[j]>) が成り立つことを確認する。成り立たない組が見つかれば、ビーバー三重子ランダム検査処理部102は、不正を検知したとして終了する。
 この関係はビーバー三重子として成立すべきであるため、関係の不成立は参加者の不正があったことを意味する。また、一定の割合vで検査しているため、特定のビーバー三重子が正しく作られていない時にこれが見つかる確率は、この一定の割合である。
 さらに、ある一定の割合Fでビーバー三重子の生成で不正を働こうとすると、生成したビーバー三重子の数Lが多ければ多いほど、不正が見つかる可能性が高くなる。なぜなら、個数L個のビーバー三重子の内、L*f =F個のビーバー三重子が正しく生成されておらず, L*v=V個検査した場合、不正が見つかる確率1-(1-F/L)Vは、Lが大きくなればなるほど1に近づくからである。よって、Lを大きくすればするほど、不正が発見されにくいためには、Fを小さくしなければならない。 
 この処理は、ビーバー三重子ランダム検査処理(S102)と呼ばれる。
 ビーバー三重子位置攪拌処理部103Aは、まず、K’=K+Mとして、{K’}は{1,…,K’}とする。
 次に、ビーバー三重子位置攪拌処理部103Aは、全て確認されたら、残りのN(K+M)=K’N の組をランダムに入れ替えて新しいインデックスを付け、それぞれ j∈{N}, k ∈{K’} に対して、<a[j,k]>, <b[j,k]>, <c[j,k]>とする。
 全ての j ∈ {N}, k ∈ {K’} に関して、全ての参加者が正直に振る舞っていれば<c[j,k]>=<a[j,k]><b[j,k]> が成り立つ。
 上記入れ替えにより、たとえ不正なビーバー三重子が存在しても、その位置がランダムになる。 
 この処理は、ビーバー三重子位置攪拌処理(S103A)と呼ばれる。
 ビーバー三重子メッセージ認証子生成処理部104は、まず、全てのi ∈ {M}, k ∈ {K’} に対して、<A[i,k]> = Reshare(Σj∈{N}<Γ[i,j]>**<a[j,k]>) と生成する。同様に、ビーバー三重子メッセージ認証子生成処理部104は、全てのi ∈ {M}, k ∈ {K’} に対して、<B[i,k]> = Reshare(Σj∈{N}<Γ[i,j]>**<b[j,k]>) と生成する。また、ビーバー三重子メッセージ認証子生成処理部104は、全てのi ∈ {M}, k ∈ {K’} に対して、<C[i,k] > = Reshare(Σj∈{N}<Γ[i,j]>**<c[j,k]>) と生成する。
 i ∈ {M}, k ∈ {K’} に対するA[i,k] は、j ∈ {N}, k ∈ {K’} に対する a[j,k] に対するメッセージ認証子である。 
 i ∈ {M}, k ∈ {K’} に対するB[i,k] は、j ∈ {N}, k ∈ {K’} に対する b[j,k] に対するメッセージ認証子である。 
 i ∈ {M}, k ∈ {K’} に対するC[i,k] は、j ∈ {N}, k ∈ {K’} に対する c[j,k] に対するメッセージ認証子である。 
 ここで、メッセージ認証子の鍵はi ∈ {M}, j ∈ {N} に対するΓ[i,j]である。
 参加者が正直に振る舞っていれば、これらのメッセージ認証子が秘密分散されることになる。 
 この処理は、ビーバー三重子メッセージ認証子生成処理(S104)と呼ばれる。
 ビーバー三重子メッセージ認証子検証処理部105は、まず、全てのm ∈ {M}, k ∈ {K’} に対して、Λ[m,k] = Random’と生成する。引き続いて、ビーバー三重子メッセージ認証子検証処理部105は、全てのj ∈ {N}, m ∈ {M} に対して、a’[j,m] = Open(Σj∈{N} Λ[m,k] <a[j,k]>)と生成する。そして、ビーバー三重子メッセージ認証子検証処理部105は、全てのi ∈ {M}, m ∈ {M} に対して、0 = Open(Σk∈{K’} Λ[m,k] <A[i,k]>-Σj∈{N} <Γ[i,j]> a’[j,m]) であることを確認する。
 さらに、ビーバー三重子メッセージ認証子検証処理部105は、全てのm ∈ {M}, k ∈ {K’} に対して、Ω[m,k] = Random’と生成する。引き続いて、ビーバー三重子メッセージ認証子検証処理部105は、全てのj ∈ {N}, m ∈ {M} に対して、b’[j,m] = Open(Σj∈{N} Ω[m,k] <b[j,k]>)と生成する。そして、ビーバー三重子メッセージ認証子検証処理部105は、全てのi ∈ {M}, m ∈ {M} に対して、0 = Open(Σk∈{K’} Ω[m,k] <B[i,k]>-Σj∈{N} <Γ[i,j]> b’[j,m]) であることを確認する。
 さらにまた、ビーバー三重子メッセージ認証子検証処理部105は、全てのm ∈ {M}, k ∈ {K’} に対して、Θ[m,k] = Random’と生成する。引き続いて、ビーバー三重子メッセージ認証子検証処理部105は、全てのj ∈ {N}, m ∈ {M} に対して、c’[j,m] = Open(Σj∈{N} Θ[m,k] <c[j,k]>)と生成する。そして、ビーバー三重子メッセージ認証子検証処理部105は、全てのi ∈ {M}, m ∈ {M} に対して、0 = Open(Σk∈{K’} Θ[m,k] <C[i,k]>-Σj∈{N} <Γ[i,j]> c’[j,m]) であることを確認する。
 ビーバー三重子メッセージ認証子検証処理部105は、k >K’-M :=K’’なる <a[j,k]>, <A[i,k]>, <b[j,k]>, <B[i,k]>, <c[j,k]>, <C[i.k]> を全て削除する。
 j ∈ {N}, m ∈ {M} に関する a’[j,m], b’[j,m], c’[j,m] それぞれは、 全てのj ∈ {N}, k ∈ {K’} に関するa[j,k], b[j,k], c[j,k] それぞれのメッセージ認証子の重ね合わせである。
 メッセージ認証子の線形性より、0=Σk∈{K’} Λ[m,k] A[i,k]-Σj∈{N} Γ[i,j] a’[j,m], 0=Σk∈{K’} Λ[m,k] B[i,k]-Σj∈{N} Γ[i,j] b’[j,m], 0=Σk∈{K’} Λ[m,k] C[i,k]-Σj∈{N} Γ[i,j] c’[j,m] を確認することにより、全てのメッセージ認証子が正しいことが確認される。j ∈ {N}, m ∈ {M} に関する a’[j,m], b’[j,m], c’[j,m] が開示されるため、j ∈ {N}, k ∈ {K’} に関するa[j,k], b[j,k], c[j,k] の関係が開示される。そのため、一部を削除することで、依存関係のないビーバー三重子の集合とする。 
 この処理は、ビーバー三重子メッセージ認証子検証処理(S105)と呼ばれる。
 データ処理装置15Aの出力は、全てのj∈ {N}, k ∈{K} に関する, (a[j,k]>, <b[j,k]>, <c[j,k]>)と、全てのk ∈{K}, i∈{M} に関する, (<A[i,k]>, <B[i,k]>, <C[i.k]>) である。
 次に、本発明の第4の実施形態に係る事前計算システムの効果について説明する。メッセージ認証子付ビーバー三重子の安全な事前計算により、誤ったビーバー三重子の割合が一定の値以下となる、メッセージ認証付ビーバー三重子の集合を作ることができる、という効果がある。
[実施形態5]
 図9は、本発明の第5の実施形態に係るベクトル乗算システムを構成するベクトル乗算装置20Aのハードウェア構成を示すブロック図である。図示のベクトル乗算装置20Aは、プログラム制御により動作するコンピュータで実現可能である。
 図示のベクトル乗算システムは、メッセージ認証子付ビーバー三重子を用いた隠然的に安全なベクトル乗算システムである。
 ベクトル乗算システムは、互いに通信が可能な複数のベクトル乗算装置20Aから成るシステムである。複数のベクトル乗算装置20Aは、これらのベクトル乗算装置20Aの間で、メッセージ認証子の鍵を秘密分散して保持する機能を備える。
 ベクトル乗算装置20Aは、通信インターフェイス(以下、「通信I/F」と記す)21と、データを入力する入力装置22と、データを出力する出力装置23と、後述するプログラムやデータを記憶する記憶装置24Aと、データを処理するデータ処理装置25Aとを備えている。
 通信I/F21は、専用のデータ通信回線から成る。通信I/F21は、通信ネットワーク(図示せず)を介してまたは無線によりデータを送受信する機能を有する。具体的には、通信I/F21は、他のベクトル乗算装置へデータを送信し、他のベクトル乗算装置からデータを受信する。通信I/F21は、受信したデータを、データ処理装置25Aへ送出する機能をも有する。
 入力装置22は、キーボードやマウスなどから成る。入力装置22は、オペレータの操作を検出して、その操作情報をデータ処理装置25Aへ送出する機能を有する。
 出力装置23は、LCD(Liquid Crystal Display)やPDP(Plasma Display Panel)などの表示装置やプリンタから成る。出力装置23は、データ処理装置25Aからの指示に応じて、操作メニューなどの各種情報を表示したり、最終結果を印字出力する機能を有する。
 記憶装置24Aは、ハードディスクやリードオンリメモリ(ROM)およびランダムアクセスメモリ(RAM)などのメモリから成る。記憶装置24Aは、データ処理装置25Aにおける各種処理に必要な処理情報(後述する)やプログラム211Aを記憶する機能を有する。
 データ処理装置25Aは、MPU(micro processing unit)などのマイクロプロセッサや中央処理装置(CPU)から成る。データ処理装置25Aは、記憶装置24Aからプログラム211Aを読み込んで、プログラム211Aに従ってデータを処理する各種処理部を実現する機能を有する。
 データ処理装置25Aで実現される主な処理部は、事前計算入力処理部201A、入力処理部202A、補助ベクトル生成処理部203、ベクトル乗算処理部204、補助ベクトルメッセージ認証子生成処理部205、入力正当性確認処理部206、および出力メッセージ認証子生成処理部207から成る。
 すなわち、データ処理装置25Aは、図3に示したデータ処理装置25とは、補助ベクトルメッセージ認証子生成処理部205と入力正当性確認処理部206と出力メッセージ認証子生成処理部207とが追加されていると共に、事前計算入力処理部201Aおよび入力処理部202Aでの処理内容が異なる点に関して、相違している。
 事前計算入力処理部201Aは、メッセージ認証子付ビーバー三重子の秘密分散データ212Aを生成し、あるいはこれを入力する。
 記憶装置24Aは、事前計算入力処理部201Aで生成あるいは入力された、メッセージ認証子付ビーバー三重子の秘密分散データ212Aを保存する。このメッセージ認証子付ビーバー三重子の秘密分散データ212Aは、図7の記憶装置14Aに保存されている、攪拌済みビーバー三重子とそのメッセージ認証子の秘密分散データ116と同じである。
 入力処理部202Aは、乗算されるべき二つの数の組の秘密分散データが複数個と、前記複数個の乗算されるべき二つの数の組それぞれに対するメッセージ認証子の秘密分散データとを入力する。
 記憶装置24Aは、入力処理部202Aから入力された、乗算されるデータの秘密分散データ213Aを保存する。この乗算されるデータの秘密分散データ213Aは、乗算されるべき二つの組の秘密分散データと、それに対応するメッセージ認証子の秘密分散データとから成る。
 補助ベクトル生成処理部203は、前記乗算されるべき二つの組の秘密分散データそれぞれに対して、ビーバー三重子の秘密分散データそれぞれの一つの要素を加算し、加算結果の秘密分散されたデータを、複数のベクトル乗算装置20Aが互いに通信して開示した結果である補助ベクトル216を生成する。
 記憶装置24Aは、補助ベクトル生成処理部203で生成された、補助ベクトル216を保存する。
 ベクトル乗算処理部204は、補助ベクトル216を用いて、前記攪拌済みビーバー三重子の秘密分散データから、積の秘密分散データ215を生成する。
 記憶装置24Aは、ベクトル乗算処理部204で生成された、積の秘密分散データ215を保存する。積の秘密分散データは、ベクトル乗算結果の秘密分散データとも呼ばれる。
 補助ベクトルメッセージ認証子生成処理部205は、前記補助ベクトル216に対するメッセージ認証子の秘密分散データ217を、前記入力に対するメッセージ認証子の秘密分散データと前記ビーバー三重子に対するメッセージ認証子の秘密分散データとから生成する。
 記憶装置24Aは、補助ベクトルメッセージ認証子生成処理部205で生成された、補助ベクトルメッセージ認証子の秘密分散データ217を保存する。
 記憶装置24Aは、前述したメッセージ認証子の鍵の秘密分散データ218を保存している。このメッセージ認証子の鍵の秘密分散データ218は、図7に図示した記憶装置14Aに保存されている、メッセージ認証子の鍵の秘密分散データ115と同一である。
 入力正当性確認処理部206は、前記補助ベクトルに対するメッセージ認証子の秘密分散データ217と、前記補助ベクトル216と、前記メッセージ認証子の鍵の秘密分散データ218とから、前記補助ベクトル216を検証する。
 入力正当性確認処理部206における検査の合否結果は、出力装置23から出力される。
 出力メッセージ認証子生成処理部207は、前記ベクトル乗算結果のメッセージ認証子の秘密分散データを、ビーバー三重子のメッセージ認証子の秘密分散データと、補助ベクトル216と、前記メッセージ認証子の鍵の秘密分散データ218と、ビーバー三重子の秘密分散データとから、出力メッセージ認証子219として生成する。
 記憶装置24Aは、出力メッセージ認証子生成処理部207から生成された、出力メッセージ認証子219を保存する。また、この出力メッセージ認証子219は、出力装置23から出力される。
 次に、図10を参照して、図9のデータ処理装置25Aの各処理部201A~207において行われる処理について更に詳細に説明する。
 事前計算入力処理部201Aにおいて、あるk に関する前述のメッセージ認証子付ビーバー三重子の秘密分散データが入力されたとする。このkは省略する。すなわち、事前計算入力処理部201Aから、全ての j ∈ {N}, i ∈ {M} に関する <a[j]>, <A[i]>, <b[j]>, <B[i]>, <c[j]>, <C[i]> が入力されているとする。
 これらの値は、次の関係を満たしていることが期待されている。
 全てのj ∈{N}, i ∈ {M} に関して、 c[j]=a[j] b[j], A[i]=Σj∈{N}Γ[i,j] a[j] , B[i]=Σj∈{N}Γ[i,j] b[j], C[i]=Σj∈{N}Γ[i,j] c[j]. 
 この処理は、事前計算入力処理(S201A)と呼ばれる。
 入力処理部202Aにおいて、乗算の対象として、j ∈{N} に関して、<x[j]>, <y[j]> が入力されるとする。また、入力処理部202Aにおいて、これらのメッセージ認証子として、i∈{M}に関して、<X[i]>, <Y[i]> が入力される。
 これらは、すべてのi∈{M}に関して、X[i]=Σj∈{N}Γ[i,j] x[j] , Y[i]=Σj∈{N}Γ[i,j] y[j] の関係を満たすことが期待されている。 
 この処理は、入力処理(S202A)と呼ばれる。
 補助ベクトル生成処理部203は、まず、全てのj ∈{N}に関して、d[j] = Open(<x[j]> +<a[j]>) を生成する。
 引き続いて、補助ベクトル生成処理部203は、全てのj ∈{N}に関して、e[j] = Open(<y[j]> + <b[j]>) を生成する。 
 この処理は、補助ベクトル生成処理(S203)と呼ばれる。
 ベクトル乗算処理部204は、全てのj ∈{N}に関して、<z[j]>=<c[j]>+ d[j]e[j] - e[j]<a[j]>- d[j]<b[j]> を生成する。
 本処理がベクトルの乗算処理であり、安全性を保証することを忘れれば、この処理が実質的な目的である。 
 この処理は、ベクトル乗算処理(S204)と呼ばれる。
 補助ベクトルメッセージ認証子生成処理部205は、まず、全てのi ∈{M}に関して、<D[i]> = <X[i]>+ <A[i]> を生成する。
 引き続いて、補助ベクトルメッセージ認証子生成処理部205は、全てのi ∈{M}に関して、<E[i]> =<Y[i]>+<B[i]> を生成する。
 ここで生成されたD[i], E[i] は、d[i], e[i] のメッセージ認証子となっている。 
 この処理は、補助ベクトルメッセージ認証子生成処理(S205)と呼ばれる。
 入力正当性確認処理部206は、まず、全てのi ∈{M}に関して、 0= Open(<D[i]> -Σj∈{N} d[j] <Γ[i,j]>) を確認する。
 引き続いて、入力正当性確認処理部206は、全てのi ∈{M}に関して、 0= Open(<E[i]> -Σj∈{N} e[j] <Γ[i,j]>) を確認する。
 補助ベクトルのメッセージ認証子が正しいことは、D[i] -Σj∈{N} d[j] Γ[i,j]=0, E[i] -Σj∈{N} e[j] Γ[i,j]=0 が成り立つことである。入力正当性確認処理部206は、これを秘密分散したまま計算し、結果を開示して確認している。これが確認されると、メッセージ認証子付ビーバー三重子が正しいものであったという仮定のもと、x[j]とy[j]のメッセージ認証子が正しかったことが確認される。 
 この処理は、入力正当性確認処理(S206)と呼ばれる。
 出力メッセージ認証子生成処理部207は、全てのi ∈{M}に関して、 <Z[i]>=<C[i]>+Σj∈{N} d[j]e[j] <Γ[i,j]> -Reshare(Σj∈{N} e[j](<Γ[i,j]>**<a[j]>)+ Σj∈{N} d[j](<Γ[i,j]>**<b[j]>)) を生成する。
 i ∈{M}に関する Z[i]は、出力z[j]に対するメッセージ認証子となっている。入力されたメッセージ認証子付ビーバー三重子が正しいものであれば、このメッセージ認証子は正しいものとなる。 
 この処理は、出力メッセージ認証子生成処理(S207)と呼ばれる。
 次に、本発明の第5の実施形態に係るベクトル乗算システムの効果について説明する。メッセージ認証付ビーバー三重子の集合を、メッセージ認証子付ビーバー三重子を用いた隠然的に安全なベクトル乗算方法で利用してベクトル乗算を行っているので、各乗算が正しく行われたことが、正しいビーバー三重子の割合と同じ割合で保証することができる、という効果がある。
[実施形態6]
 図11は、本発明の第6の実施形態に係るベクトル乗算システムを構成するベクトル乗算装置30Aのハードウェア構成を示すブロック図である。図示のベクトル乗算装置30Aは、プログラム制御により動作するコンピュータで実現可能である。
 図示のベクトル乗算システムは、メッセージ認証子付ビーバー三重子を用いた安全なベクトル乗算システムである。
 ベクトル乗算システムは、互いに通信が可能な複数のベクトル乗算装置30Aから成るシステムである。複数のベクトル乗算装置30Aは、これらのベクトル乗算装置30Aの間で、メッセージ認証子の鍵を秘密分散して保持する機能を備える。
 ベクトル乗算装置30Aは、通信インターフェイス(以下、「通信I/F」と記す)31と、データを入力する入力装置32と、データを出力する出力装置33と、後述するプログラムやデータを記憶する記憶装置34Aと、データを処理するデータ処理装置35Aとを備えている。
 通信I/F31は、専用のデータ通信回線から成る。通信I/F31は、通信ネットワーク(図示せず)を介してまたは無線によりデータを送受信する機能を有する。具体的には、通信I/F31は、他のベクトル乗算装置へデータを送信し、他のベクトル乗算装置からデータを受信する。通信I/F31は、受信したデータを、データ処理装置35Aへ送出する機能をも有する。
 入力装置32は、キーボードやマウスなどから成る。入力装置32は、オペレータの操作を検出して、その操作情報をデータ処理装置35Aへ送出する機能を有する。
 出力装置33は、LCD(Liquid Crystal Display)やPDP(Plasma Display Panel)などの表示装置やプリンタから成る。出力装置33は、データ処理装置35Aからの指示に応じて、操作メニューなどの各種情報を表示したり、最終結果を印字出力する機能を有する。
 記憶装置34Aは、ハードディスクやリードオンリメモリ(ROM)およびランダムアクセスメモリ(RAM)などのメモリから成る。記憶装置34Aは、データ処理装置35Aにおける各種処理に必要な処理情報(後述する)やプログラム311Aを記憶する機能を有する。
 データ処理装置35Aは、MPU(micro processing unit)などのマイクロプロセッサや中央処理装置(CPU)から成る。データ処理装置35Aは、記憶装置34Aからプログラム311Aを読み込んで、プログラム311Aに従ってデータを処理する各種処理部を実現する機能を有する。
 データ処理装置35Aで実現される主な処理部は、入力部301A、ベクトル乗算部302A、および結果同一確認処理部303から成る。
 入力部301Aは、第1乃至第T(Tは2以上の整数)の入力処理モジュール301A-1~301A-Tから成る。第1乃至第Tの入力処理モジュール301A-1~301A-Tの各々は、図9のデータ処理装置25Aにおける事前計算処理部201Aと入力処理部202Aとから成る。
 ベクトル乗算部302Aは、第1乃至第Tのベクトル乗算モジュール302A-1~302A-Tから成る。第1乃至第Tのベクトル乗算モジュール302A-1~302A-Tの各々は、図9のデータ処理装置25Aにおける、補助ベクトル生成処理部203と、ベクトル乗算処理部204と、補助ベクトルメッセージ認証子生成処理部205と、入力正当性確認処理部206と、出力メッセージ認証子生成処理部207とから成る。
 換言すれば、第1乃至第Tのベクトル乗算モジュール302A-1~302A-Tの各々は、メッセージ認証子付ビーバー三重子を用いた隠然的に安全なベクトル乗算方法を実施する。
 結果同一確認処理部303は、第1乃至第Tのベクトル乗算モジュール302A-1~302A-Tの乗算結果が全て同一の値であることを確認する。
 記憶装置34Aは、図9に図示された記憶装置24Aに記憶された処理情報と同様の処理情報を記憶する。すなわち、記憶装置34Aは、メッセージ認証子付ビーバー三重子の秘密分散データ312A、乗算されるデータの秘密分散データ313A、積の秘密分散データ315、補助ベクトル316、補助ベクトルメッセージ認証子の秘密分散データ317、メッセージ認証子の鍵の秘密分散データ318、および出力メッセージ認証子319を保存する。但し、記憶装置24Aとは異なり、記憶装置34Aは、それら情報をT個保存する。
 次に、図12を参照して、図11のデータ処理装置35Aの各処理部301A~303において行われる処理について更に詳細に説明する。
 Tを重複数とする。 
 入力部301Aでは、一つの入力に対してT個の同じ値の入力が準備されているとする(S301A)。ただし、それぞれの秘密分散は独立しており、同じ入力に対する各参加者が所持するデータは全て互いにランダムに分布するとする。
 ベクトル乗算部302Aは、前述の隠然的に安全な乗算方法をT個の入力に対して独立に適用する(S302A)。
 適用後、結果同一確認処理部303は、結果が全て同一であることを次のように確認する。
 あるjに対するT個の結果が <z(1)[j]>,…, <z(T)[j]> であったとする。 
 結果同一確認処理部303は、O= Open(<z(u)[j]>=<z(u+1)[j]>) を全てのu=1,…,T-1 に対して確認する。 
 この処理は、結果同一確認処理と呼ばれる(S303)。
 これらの確認も確率的な確認を多数行うことで、Open の数を減らすことができる。
 前述した第5の実施形態に係る隠然的に安全な方法では、ビーバー三重子が正しく生成されていなければ、答え乗算結果が正しいことは保証できなかった。一方、ビーバー三重子の検証方法から、ビーバー三重子が大量に作られていてかつ一定の割合を検査するならば、紛れ込ませることのできる不正なビーバー三重子の数は一定の小さな割合に留まった。
 それゆえ、本第6の実施形態では、複数の計算を同時に行い、それぞれの計算を異なるビーバー三重子で担保しているので、少なくとも一つの計算は正しいビーバー三重子で計算されるようになる確率を十分高くすることができる。その後、全ての計算が同一であることを確認すれば、全ての計算が正しいビーバー三重子による計算結果と同じになることが保証される。
 次に、本発明の第6の実施形態に係るベクトル乗算システムの効果について説明する。メッセージ認証付ビーバー三重子の集合を、メッセージ認証子付ビーバー三重子を用いた安全なベクトル乗算方法で利用してベクトル乗算を行っているので、各乗算が正しく行われたことが、圧倒的な確率で保証できる、という効果がある。
 この計算で通信が必要な処理は、Rehash, Open, Rand である。これらの回数は、M<<N<<Kであることを考えると、隠然的に安全な方法で乗算一個当たり5回、安全な方法で5T回である。
 次に、本発明の効果について説明する。
 以上説明した様に、本発明を用いれば、複数の装置にデータを分散して各装置にデータを隠ぺいしたまま乗算が可能になり、加算も既知の方法で可能なことを考えると、あわせて任意の関数を計算することが可能になる。また、参加装置が不正を働いたとしても、これを検知することができる。この計算に必要な通信量と計算量は小さい。この様なシステムは、ある装置で秘密のデータを扱ってなんらかのサービスを提供する時に、装置の管理者がデータを盗む出すことを防止する。なぜなら、複数の装置に異なる管理者を割り当てれば、一人で全ての装置中のデータを見ることのできる管理者がいなくなり、このような管理者を通じたデータの盗み出しを防止することに貢献するからである。
 なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、複数の構成要素の適宜な組合せにより種々の発明を形成できる。
 なお、本発明に記載した方法は、コンピュータに実行させることができる。この方法を実行させるプログラムは、フロッピー(登録商標)ディスク、ハードディスクなどの磁気ディスク、CD-ROM(Compact Disc- Read Only Memory)、DVD(digital versatile disc)などの光ディスク、光磁気ディスク(MO)、半導体メモリなどの記録媒体に格納して頒布することもできる。
 また、この記録媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。
 また、記録媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが各処理の一部を実行してもよい。
 さらに、本発明における記録媒体は、コンピュータと独立した媒体に限らず、LAN(Local Area Network)やインターネットなどにより伝送されたプログラムをダウンロードして記憶または一時記憶した記録媒体も含まれる。
 また、記録媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記録媒体に含まれ、媒体構成は何れの構成であってもよい。
 本発明におけるコンピュータは、記録媒体に記憶されたプログラムに基づき各処理を実行するものであって、パソコンなどからなる装置、複数の装置がネットワーク接続されたシステムなどの何れの構成であってもよい。
 また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置を含み、プログラムによって本発明の機能を実現することが可能な機器、装置である。
 上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1) 複数の他の事前計算装置と通信可能な事前計算装置(10;10A)であって、
 秘密分散された二つの乱数を生成し、この二つの乱数の積の秘密分散された値を当該事前計算装置と前記複数の他の事前計算装置とが互いに通信することで生成することで、二つの乱数とそれらの積からなる三つ組みを当該事前計算装置と前記複数の他の事前計算装置とで秘密分散する機能を繰り返し使うことで、多数の秘密分散されたビーバー三重子を生成するビーバー三重子生成処理部(101)と、
 前記秘密分散されたビーバー三重子をランダムに選び、互いに当該事前計算装置と前記複数の他の事前計算装置とが通信することでこれらのビーバー三重子を復元し、復元したビーバー三重子の値を用いて最初の二つの要素の積が第三の要素となっていることを確認するビーバー三重子ランダム検査処理部(102)と、
 前記復元しなかったビーバー三重子をランダムに並び替えて、並び替えた後の秘密分散されたビーバー三重子を生成するビーバー三重子位置攪拌処理部(103;103A)と、
を備える事前計算装置(10;10A)。
(付記2) 付記1に記載の事前計算装置(10)を、複数個、通信可能に備える、ビーバー三重子の安全な事前計算システム。
(付記3) 前記事前計算装置(10A)は、前記複数の他の事前計算装置と当該事前計算装置(10A)との間で、メッセージ認証子の鍵を秘密分散して保持する機能を備え、
 前記ビーバー三重子位置攪拌処理部(103A)は、前記復元しなかったビーバー三重子をランダムに並び替えて、新しいインデックスを付けて並び替えた後の秘密分散されたビーバー三重子を生成し、
  前記事前計算装置(10A)は、
 前記並び替えた後の秘密分散されたビーバー三重子に対してその秘密分散されたメッセージ認証子を、前記秘密分散されたメッセージ認証子の鍵を使用して、当該事前計算装置と前記複数の他の事前計算装置とが互いに通信することで生成するビーバー三重子メッセージ認証子生成処理部(104)と、
 前記並び替えた後の秘密分散されたビーバー三重子のランダムに選んだ係数による線形和を多数生成し、この多数生成した値を復元して復元された値を生成する処理と、前記秘密分散されたビーバー三重子のメッセージ認証子を前記係数による線形和を多数生成した値と、前記復元された値を前記秘密分散されたメッセージ認証子の鍵による線形和を多数生成した値とが同一であることを確認する処理とを実施するビーバー三重子メッセージ認証子検証処理部(105)と、
を更に備える、付記1に記載の事前計算装置(10A)。
(付記4) 付記3に記載の事前計算装置(10A)を、複数個、通信可能に備える、メッセージ認証子付ビーバー三重子の安全な事前計算システム。
(付記5) 複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置(20;20A)であって、
 ビーバー三重子の秘密分散データを生成し、あるいは前記ビーバー三重子の秘密分散データが入力される事前計算入力処理部(201;201A)と、
 乗算されるべき二つの数の組の秘密分散データが複数個入力される入力処理部(202;202A)と、
 前記乗算されるべき二つの組の秘密分散データそれぞれに対して、前記ビーバー三重子の秘密分散データそれぞれの一つの要素を加算し、加算結果の秘密分散されたデータを、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置(20;20A)とが互いに通信して開示した結果である補助ベクトルを生成する補助ベクトル生成処理部(203)と、
 前記補助ベクトルと前記ビーバー三重子の秘密分散データとから、ベクトル乗算結果の秘密分散データを生成するベクトル乗算処理部(204)と、
を備えるベクトル乗算装置(20;20A)。
(付記6) 付記5に記載のベクトル乗算装置(20)を、複数個、通信可能に備える、ビーバー三重子を用いた隠然的に安全なベクトル乗算システム。
(付記7) 前記ベクトル乗算装置(20A)は、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置(20A)との間で、メッセージ認証子の鍵を秘密分散して保持する機能を備え、
 前記事前計算入力処理部(201A)は、メッセージ認証子付ビーバー三重子の秘密分散データを生成し、あるいは前記メッセージ認証子付ビーバー三重子の秘密分散データが入力され、
 前記入力処理部(202A)は、前記乗算されるべき二つの数の組の秘密分散データを複数個に加えて、前記複数個の乗算されるべき二つの数の組それぞれに対するメッセージ認証子の秘密分散データをも入力され、
  前記ベクトル乗算装置(20A)は、
 前記補助ベクトルに対するメッセージ認証子の秘密分散データを、前記入力に対するメッセージ認証子の秘密分散データと前記ビーバー三重子に対するメッセージ認証子の秘密分散データとから生成する補助ベクトルメッセージ認証子生成処理部(205)と、
 前記補助ベクトルに対するメッセージ認証子の秘密分散データと、前記補助ベクトルと、前記メッセージ認証子の鍵の秘密分散データとから、前記補助ベクトルを検証する入力正当性確認処理部(206)と、
 前記ベクトル乗算結果のメッセージ認証子の秘密分散データを、前記ビーバー三重子のメッセージ認証子の秘密分散データと、前記補助ベクトルと、前記メッセージ認証子の鍵の秘密分散データと、前記ビーバー三重子の秘密分散データとから、出力メッセージ認証子として生成する出力メッセージ認証子生成処理部(207)と、
を更に備える、付記5に記載のベクトル乗算装置(20A)。
(付記8) 付記7に記載のベクトル乗算装置(20A)を、複数個、通信可能に備える、メッセージ認証子付ビーバー三重子を用いた隠然的に安全なベクトル乗算システム。
(付記9) 複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置(30)であって、
 付記5に記載のベクトル乗算装置(20)を構成する、前記事前計算入力処理部(201)、前記入力処理部(202)、前記補助ベクトル生成処理部(203)、および前記ベクトル乗算処理部(204)を、それぞれ、複数個備え、
 複数個の前記ベクトル乗算結果の秘密分散データが全て同一の値であることを確認する結果同一確認処理部(303)を備える、
ベクトル乗算装置(30)。
(付記10) 付記9に記載のベクトル乗算装置(30)を、複数個、通信可能に備える、ビーバー三重子を用いた安全なベクトル乗算システム。
(付記11) 複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置(30A)であって、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置(30A)との間で、メッセージ認証子の鍵を秘密分散して保持する機能を備えるベクトル乗算装置(30A)において、
 付記7に記載のベクトル乗算装置(20A)を構成する、前記事前計算入力処理部(201A)、前記入力処理部(202A)、前記補助ベクトル生成処理部(203)、前記ベクトル乗算処理部(204)、前記補助ベクトルメッセージ認証子生成処理部(205)、前記入力正当性確認処理部(206)、および前記出力メッセージ認証子生成処理部(207)を、それぞれ、複数個備え、
 複数個の前記ベクトル乗算結果の秘密分散データが全て同一の値であることを確認する結果同一確認処理部(303)を備える、
ベクトル乗算装置(30A)。
(付記12) 付記11に記載のベクトル乗算装置(30A)を、複数個、通信可能に備える、メッセージ認証子付ビーバー三重子を用いた安全なベクトル乗算システム。
(付記13) 複数の他の事前計算装置と通信可能な事前計算装置(10)において行われる事前計算方法であって、
 ビーバー三重子生成処理部(101)が、秘密分散された二つの乱数を生成し、この二つの乱数の積の秘密分散された値を当該事前計算装置と前記複数の他の事前計算装置とが互いに通信することで生成することで、二つの乱数とそれらの積からなる三つ組みを当該事前計算装置と前記複数の他の事前計算装置とで秘密分散する機能を繰り返し使うことで、多数の秘密分散されたビーバー三重子を生成し、
 ビーバー三重子ランダム検査処理部(102)が、前記秘密分散されたビーバー三重子をランダムに選び、互いに当該事前計算装置と前記複数の他の事前計算装置とが通信することでこれらのビーバー三重子を復元し、復元したビーバー三重子の値を用いて最初の二つの要素の積が第三の要素となっていることを確認し、
 ビーバー三重子位置攪拌処理部(103)が、前記復元しなかったビーバー三重子をランダムに並び替えて、並び替えた後の秘密分散されたビーバー三重子を生成する、
事前計算方法。
(付記14) 複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置(20)において行われるベクトル乗算方法であって、
 事前計算入力処理部(201)が、ビーバー三重子の秘密分散データを生成し、あるいは前記ビーバー三重子の秘密分散データを入力し、
 入力処理部(202)が、乗算されるべき二つの数の組の秘密分散データを複数個入力し、
 補助ベクトル生成処理部(203)が、前記乗算されるべき二つの組の秘密分散データそれぞれに対して、前記ビーバー三重子の秘密分散データそれぞれの一つの要素を加算し、加算結果の秘密分散されたデータを、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置(20)とが互いに通信して開示した結果である補助ベクトルを生成し、
 ベクトル乗算処理部(204)が、前記補助ベクトルと前記ビーバー三重子の秘密分散データとから、ベクトル乗算結果の秘密分散データを生成する、
ベクトル乗算方法。
(付記15) 前記事前計算入力処理部(201)、前記入力処理部(202)、前記補助ベクトル生成処理部(203)、および前記ベクトル乗算処理部(204)が、各処理を全て複数個実施し、
 結果同一確認処理部(303)が、複数個の前記ベクトル乗算結果の秘密分散データが全て同一の値であることを確認する
付記14に記載のベクトル乗算方法。
(付記16) 複数の他の事前計算装置と通信可能な事前計算装置(10A)において行われる事前計算方法であって、前記複数の他の事前計算装置と当該事前計算装置(10A)との間で、メッセージ認証子の鍵を秘密分散して保持する機能を備える、事前計算装置(10A)の事前計算方法において、
 ビーバー三重子生成処理部(101)が、秘密分散された二つの乱数を生成し、この二つの乱数の積の秘密分散された値を当該事前計算装置と前記複数の他の事前計算装置とが互いに通信することで生成することで、二つの乱数とそれらの積からなる三つ組みを当該事前計算装置と前記複数の他の事前計算装置とで秘密分散する機能を繰り返し使うことで、多数の秘密分散されたビーバー三重子を生成し、
 ビーバー三重子ランダム検査処理部(102)が、前記秘密分散されたビーバー三重子をランダムに選び、互いに当該事前計算装置と前記複数の他の事前計算装置とが通信することでこれらのビーバー三重子を復元し、復元したビーバー三重子の値を用いて最初の二つの要素の積が第三の要素となっていることを確認し、
 ビーバー三重子位置攪拌処理部(103A)が、前記復元しなかったビーバー三重子をランダムに並び替えて、新しいインデックスを付けて並び替えた後の秘密分散されたビーバー三重子を生成し、
 ビーバー三重子メッセージ認証子生成処理部(104)が、前記並び替えた後の秘密分散されたビーバー三重子に対してその秘密分散されたメッセージ認証子を、前記秘密分散されたメッセージ認証子の鍵を使用して、当該事前計算装置と前記複数の他の事前計算装置とが互いに通信することで生成し、
 ビーバー三重子メッセージ認証子検証処理部(105)が、前記並び替えた後の秘密分散されたビーバー三重子のランダムに選んだ係数による線形和を多数生成し、この多数生成した値を復元して復元された値を生成する処理と、前記秘密分散されたビーバー三重子のメッセージ認証子を前記係数による線形和を多数生成した値と、前記復元された値を前記秘密分散されたメッセージ認証子の鍵による線形和を多数生成した値とが同一であることを確認する処理とを実施する、
事前計算方法。
(付記17) 複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置(20A)において行われるベクトル乗算方法であって、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置(20A)との間で、メッセージ認証子の鍵を秘密分散して保持する機能を備える、ベクトル乗算装置(20A)のベクトル情報方法において、
 事前計算入力処理部(201A)が、メッセージ認証子付のビーバー三重子の秘密分散データを生成し、あるいは前記メッセージ認証子付のビーバー三重子の秘密分散データを入力し、
 入力処理部(202A)が、乗算されるべき二つの数の組の秘密分散データを複数個と、前記複数個の乗算されるべき二つの数の組それぞれに対するメッセージ認証子の秘密分散データとを入力し、
 補助ベクトル生成処理部(203)が、前記乗算されるべき二つの組の秘密分散データそれぞれに対して、前記ビーバー三重子の秘密分散データそれぞれの一つの要素を加算し、加算結果の秘密分散されたデータを、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置(20A)とが互いに通信して開示した結果である補助ベクトルを生成し、
 ベクトル乗算処理部(204)が、前記補助ベクトルと前記ビーバー三重子の秘密分散データとから、ベクトル乗算結果の秘密分散データを生成し、
 補助ベクトルメッセージ認証子生成処理部(205)が、前記補助ベクトルに対するメッセージ認証子の秘密分散データを、前記入力に対するメッセージ認証子の秘密分散データと前記ビーバー三重子に対するメッセージ認証子の秘密分散データとから生成し、
 入力正当性確認処理部(206)が、前記補助ベクトルに対するメッセージ認証子の秘密分散データと、前記補助ベクトルと、前記メッセージ認証子の鍵の秘密分散データとから、前記補助ベクトルを検証し、
 出力メッセージ認証子生成処理部(207)が、前記ベクトル乗算結果のメッセージ認証子の秘密分散データを、前記ビーバー三重子のメッセージ認証子の秘密分散データと、前記補助ベクトルと、前記メッセージ認証子の鍵の秘密分散データと、前記ビーバー三重子の秘密分散データとから、出力メッセージ認証子として生成する、
ベクトル乗算方法。
(付記18) 前記事前計算入力処理部(201A)、前記入力処理部(202A)、前記補助ベクトル生成処理部(203)、前記ベクトル乗算処理部(204)、前記補助ベクトルメッセージ認証子生成処理部(205)、前記入力正当性確認処理部(206)、および前記出力メッセージ認証子生成処理部(207)が、各処理を全て複数個実施し、
 結果同一確認処理部(303)が、複数個の前記ベクトル乗算結果の秘密分散データが全て同一の値であることを確認する
付記17に記載のベクトル乗算方法。
(付記19) 複数の他の事前計算装置と通信可能な事前計算装置(10)のコンピュータを、
 秘密分散された二つの乱数を生成し、この二つの乱数の積の秘密分散された値を当該事前計算装置と前記複数の他の事前計算装置とが互いに通信することで生成することで、二つの乱数とそれらの積からなる三つ組みを当該事前計算装置と前記複数の他の事前計算装置とで秘密分散する機能を繰り返し使うことで、多数の秘密分散されたビーバー三重子を生成するビーバー三重子生成処理手段(101)、
 前記秘密分散されたビーバー三重子をランダムに選び、互いに当該事前計算装置と前記複数の他の事前計算装置とが通信することでこれらのビーバー三重子を復元し、復元したビーバー三重子の値を用いて最初の二つの要素の積が第三の要素となっていることを確認するビーバー三重子ランダム検査処理手段(102)、および
 前記復元しなかったビーバー三重子をランダムに並び替えて、並び替えた後の秘密分散されたビーバー三重子を生成するビーバー三重子位置攪拌処理手段(103)、
として機能させるための事前計算プログラムを記録したコンピュータ読取可能な記録媒体。
(付記20) 複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置(20)のコンピュータを、
 ビーバー三重子の秘密分散データを生成し、あるいは前記ビーバー三重子の秘密分散データを入力する事前計算入力処理手段(201)、
 乗算されるべき二つの数の組の秘密分散データを複数個入力する入力処理手段(202)、
 前記乗算されるべき二つの組の秘密分散データそれぞれに対して、前記ビーバー三重子の秘密分散データそれぞれの一つの要素を加算し、加算結果の秘密分散されたデータを、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置とが互いに通信して開示した結果である補助ベクトルを生成する補助ベクトル生成処理手段(203)、および
 前記補助ベクトルと前記ビーバー三重子の秘密分散データとから、ベクトル乗算結果の秘密分散データを生成するベクトル乗算処理手段(204)、
として機能させるためのベクトル乗算プログラムを記録したコンピュータ読取可能な記録媒体。
(付記21) 複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置(30)のコンピュータを、
 付記20に記載の、前記事前計算入力処理手段、前記入力処理手段、前記補助ベクトル生成処理手段、および前記ベクトル乗算処理手段として、それぞれ、複数個、機能させ、
 更に、複数個の前記ベクトル乗算結果の秘密分散データが全て同一の値であることを確認する結果同一確認処理手段、
として機能させるためのベクトル乗算プログラムを記録したコンピュータ読取可能な記録媒体。
(付記22) 複数の他の事前計算装置と通信可能な事前計算装置(10A)であって、前記複数の他の事前計算装置と当該事前計算装置(10A)との間で、メッセージ認証子の鍵を秘密分散して保持する機能を備える、事前計算装置(10A)のコンピュータを、
 秘密分散された二つの乱数を生成し、この二つの乱数の積の秘密分散された値を当該事前計算装置と前記複数の他の事前計算装置とが互いに通信することで生成することで、二つの乱数とそれらの積からなる三つ組みを当該事前計算装置と前記複数の他の事前計算装置とで秘密分散する機能を繰り返し使うことで、多数の秘密分散されたビーバー三重子を生成するビーバー三重子生成処理手段(101)、
 前記秘密分散されたビーバー三重子をランダムに選び、互いに当該事前計算装置と前記複数の他の事前計算装置とが通信することでこれらのビーバー三重子を復元し、復元したビーバー三重子の値を用いて最初の二つの要素の積が第三の要素となっていることを確認するビーバー三重子ランダム検査処理手段(102)、
 前記復元しなかったビーバー三重子をランダムに並び替えて、新しいインデックスを付けて並び替えた後の秘密分散されたビーバー三重子を生成するビーバー三重子位置攪拌処理手段(103A)、
 前記並び替えた後の秘密分散されたビーバー三重子に対してその秘密分散されたメッセージ認証子を、前記秘密分散されたメッセージ認証子の鍵を使用して、当該事前計算装置と前記複数の他の事前計算装置とが互いに通信することで生成するビーバー三重子メッセージ認証子生成処理手段(104)、および
 前記並び替えた後の秘密分散されたビーバー三重子のランダムに選んだ係数による線形和を多数生成し、この多数生成した値を復元して復元された値を生成する処理と、前記秘密分散されたビーバー三重子のメッセージ認証子を前記係数による線形和を多数生成した値と、前記復元された値を前記秘密分散されたメッセージ認証子の鍵による線形和を多数生成した値とが同一であることを確認する処理とを実施するビーバー三重子メッセージ認証子検証処理手段(105)、
として機能させるための事前計算プログラムを記録したコンピュータ読取可能な記録媒体。
(付記23) 複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置(20A)であって、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置(20A)との間で、メッセージ認証子の鍵を秘密分散して保持する機能を備える、ベクトル乗算装置(20A)のコンピュータを、
 メッセージ認証子付ビーバー三重子の秘密分散データを生成し、あるいは前記メッセージ認証子付ビーバー三重子の秘密分散データを入力する事前計算入力処理手段(201A)、
 乗算されるべき二つの数の組の秘密分散データを複数個と、前記複数個の乗算されるべき二つの数の組それぞれに対するメッセージ認証子の秘密分散データとを入力する入力処理手段(202A)、
 前記乗算されるべき二つの組の秘密分散データそれぞれに対して、前記ビーバー三重子の秘密分散データそれぞれの一つの要素を加算し、加算結果の秘密分散されたデータを、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置とが互いに通信して開示した結果である補助ベクトルを生成する補助ベクトル生成処理手段(203)、
 前記補助ベクトルと前記ビーバー三重子の秘密分散データとから、ベクトル乗算結果の秘密分散データを生成するベクトル乗算処理手段(204)、
 前記補助ベクトルに対するメッセージ認証子の秘密分散データを、前記入力に対するメッセージ認証子の秘密分散データと前記ビーバー三重子に対するメッセージ認証子の秘密分散データとから生成する補助ベクトルメッセージ認証子生成処理手段(205)、
 前記補助ベクトルに対するメッセージ認証子の秘密分散データと、前記補助ベクトルと、前記メッセージ認証子の鍵の秘密分散データとから、前記補助ベクトルを検証する入力正当性確認処理手段(206)、および
 前記ベクトル乗算結果のメッセージ認証子の秘密分散データを、前記ビーバー三重子のメッセージ認証子の秘密分散データと、前記補助ベクトルと、前記メッセージ認証子の鍵の秘密分散データと、前記ビーバー三重子の秘密分散データとから、出力メッセージ認証子として生成する出力メッセージ認証子生成処理手段(207)、
として機能させるためのベクトル乗算プログラムを記録したコンピュータ読取可能な記録媒体。
(付記24) 複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置(30A)であって、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置(30A)との間で、メッセージ認証子の鍵を秘密分散して保持する機能を備えるベクトル乗算装置(30A)のコンピュータを、
 付記23に記載の、前記事前計算入力処理手段(201A)、前記入力処理手段(202A)、前記補助ベクトル生成処理手段(203)、前記ベクトル乗算処理手段(204)、前記補助ベクトルメッセージ認証子生成処理手段(205)、前記入力正当性確認処理手段(206)、および前記出力メッセージ認証子生成処理手段(207)として、それぞれ、複数個、機能させ、
 更に、複数個の前記ベクトル乗算結果の秘密分散データが全て同一の値であることを確認する結果同一確認処理手段(303)、
として機能させるためのベクトル乗算プログラムを記録したコンピュータ読取可能な記録媒体。
 この出願は、2015年12月10日に出願された日本出願特願2015-241251を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 10、10A 事前計算装置
 11 通信I/F
 12 入力装置
 13 出力装置
 14、14A 記憶装置
 15、15A データ処理装置
 101 ビーバー三重子生成処理部
 102 ビーバー三重子ランダム検査処理部
 103、103A ビーバー三重子位置攪拌処理部
 104 ビーバー三重子メッセージ認証子生成処理部
 105 ビーバー三重子メッセージ認証子検証処理部
 111、111A プログラム
 112 乱数
 113 ビーバー三重子の秘密分散データ
 114、114A 攪拌済みビーバー三重子の秘密分散データ
 115 メッセージ認証子の鍵の秘密分散データ
 116 攪拌済みビーバー三重子とそのメッセージ認証子の秘密分散データ
 20、20A、30、30A ベクトル乗算装置
 21、31 通信I/F
 22、32 入力装置
 23、33 出力装置
 24、24A、34、34A 記憶装置
 25、25A、35、35A データ処理装置
 201、201A 事前計算入力処理部
 202、202A 入力処理部
 203 補助ベクトル生成処理部
 204 ベクトル乗算処理部
 205 補助ベクトルメッセージ認証子生成処理部
 206 入力正当性確認処理部
 207 出力メッセージ認証子生成処理部
 211、211A、311、311A プログラム
 212、312  ビーバー三重子の秘密分散データ
 212A、312A メッセージ認証子付ビーバー三重子の秘密分散データ
 213、313 乗算されるデータの秘密分散データ
 213A、313A 乗算されるデータの秘密分散データ
 215、315 積の秘密分散データ
 216、316 補助ベクトル
 217、317 補助ベクトルメッセージ認証子の秘密分散データ
 218、318 メッセージ認証子の鍵の秘密分散データ
 219、319 出力メッセージ認証子
 301 入力部
 301A 入力部
 301-1~301-T 入力処理モジュール
 301A-1~301A-T 入力処理モジュール
 302 ベクトル乗算部
 302A ベクトル乗算部
 302-1~302-T ベクトル乗算モジュール
 302A-1~302A-T ベクトル乗算モジュール
 303  結果同一確認処理部
 

Claims (10)

  1.  複数の他の事前計算装置と通信可能な事前計算装置であって、
     秘密分散された二つの乱数を生成し、この二つの乱数の積の秘密分散された値を当該事前計算装置と前記複数の他の事前計算装置とが互いに通信することで生成することで、二つの乱数とそれらの積からなる三つ組みを当該事前計算装置と前記複数の他の事前計算装置とで秘密分散する機能を繰り返し使うことで、多数の秘密分散されたビーバー三重子を生成するビーバー三重子生成処理部と、
     前記秘密分散されたビーバー三重子をランダムに選び、互いに当該事前計算装置と前記複数の他の事前計算装置とが通信することでこれらのビーバー三重子を復元し、復元したビーバー三重子の値を用いて最初の二つの要素の積が第三の要素となっていることを確認するビーバー三重子ランダム検査処理部と、
     前記復元しなかったビーバー三重子をランダムに並び替えて、並び替えた後の秘密分散されたビーバー三重子を生成するビーバー三重子位置攪拌処理部と、
    を備える事前計算装置。
  2.  前記事前計算装置は、前記複数の他の事前計算装置と当該事前計算装置との間で、メッセージ認証子の鍵を秘密分散して保持する機能を備え、
     前記ビーバー三重子位置攪拌処理部は、前記復元しなかったビーバー三重子をランダムに並び替えて、新しいインデックスを付けて並び替えた後の秘密分散されたビーバー三重子を生成し、
      前記事前計算装置は、
     前記並び替えた後の秘密分散されたビーバー三重子に対してその秘密分散されたメッセージ認証子を、前記秘密分散されたメッセージ認証子の鍵を使用して、当該事前計算装置と前記複数の他の事前計算装置とが互いに通信することで生成するビーバー三重子メッセージ認証子生成処理部と、
     前記並び替えた後の秘密分散されたビーバー三重子のランダムに選んだ係数による線形和を多数生成し、この多数生成した値を復元して復元された値を生成する処理と、前記秘密分散されたビーバー三重子のメッセージ認証子を前記係数による線形和を多数生成した値と、前記復元された値を前記秘密分散されたメッセージ認証子の鍵による線形和を多数生成した値とが同一であることを確認する処理とを実施するビーバー三重子メッセージ認証子検証処理部と、
    を更に備える、請求項1に記載の事前計算装置。
  3.  複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置であって、
     ビーバー三重子の秘密分散データを生成し、あるいは前記ビーバー三重子の秘密分散データが入力される事前計算入力処理部と、
     乗算されるべき二つの数の組の秘密分散データが複数個入力される入力処理部と、
     前記乗算されるべき二つの組の秘密分散データそれぞれに対して、前記ビーバー三重子の秘密分散データそれぞれの一つの要素を加算し、加算結果の秘密分散されたデータを、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置とが互いに通信して開示した結果である補助ベクトルを生成する補助ベクトル生成処理部と、
     前記補助ベクトルと前記ビーバー三重子の秘密分散データとから、ベクトル乗算結果の秘密分散データを生成するベクトル乗算処理部と、
    を備えるベクトル乗算装置。
  4.  前記ベクトル乗算装置は、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置との間で、メッセージ認証子の鍵を秘密分散して保持する機能を備え、
     前記事前計算入力処理部は、メッセージ認証子付ビーバー三重子の秘密分散データを生成し、あるいは前記メッセージ認証子付ビーバー三重子の秘密分散データが入力され、
     前記入力処理部は、前記乗算されるべき二つの数の組の秘密分散データを複数個に加えて、前記複数個の乗算されるべき二つの数の組それぞれに対するメッセージ認証子の秘密分散データをも入力され、
      前記ベクトル乗算装置は、
     前記補助ベクトルに対するメッセージ認証子の秘密分散データを、前記入力に対するメッセージ認証子の秘密分散データと前記ビーバー三重子に対するメッセージ認証子の秘密分散データとから生成する補助ベクトルメッセージ認証子生成処理部と、
     前記補助ベクトルに対するメッセージ認証子の秘密分散データと、前記補助ベクトルと、前記メッセージ認証子の鍵の秘密分散データとから、前記補助ベクトルを検証する入力正当性確認処理部と、
     前記ベクトル乗算結果のメッセージ認証子の秘密分散データを、前記ビーバー三重子のメッセージ認証子の秘密分散データと、前記補助ベクトルと、前記メッセージ認証子の鍵の秘密分散データと、前記ビーバー三重子の秘密分散データとから、出力メッセージ認証子として生成する出力メッセージ認証子生成処理部と、
    を更に備える、請求項3に記載のベクトル乗算装置。
  5.  複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置であって、
     請求項3に記載のベクトル乗算装置を構成する、前記事前計算入力処理部、前記入力処理部、前記補助ベクトル生成処理部、および前記ベクトル乗算処理部を、それぞれ、複数個備え、
     複数個の前記ベクトル乗算結果の秘密分散データが全て同一の値であることを確認する結果同一確認処理部を備える、
    ベクトル乗算装置。
  6.  複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置であって、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置との間で、メッセージ認証子の鍵を秘密分散して保持する機能を備えるベクトル乗算装置において、
     請求項4に記載のベクトル乗算装置を構成する、前記事前計算入力処理部、前記入力処理部、前記補助ベクトル生成処理部、前記ベクトル乗算処理部、前記補助ベクトルメッセージ認証子生成処理部、前記入力正当性確認処理部、および前記出力メッセージ認証子生成処理部を、それぞれ、複数個備え、
     複数個の前記ベクトル乗算結果の秘密分散データが全て同一の値であることを確認する結果同一確認処理部を備える、
    ベクトル乗算装置。
  7.  複数の他の事前計算装置と通信可能な事前計算装置において行われる事前計算方法であって、
     ビーバー三重子生成処理部が、秘密分散された二つの乱数を生成し、この二つの乱数の積の秘密分散された値を当該事前計算装置と前記複数の他の事前計算装置とが互いに通信することで生成することで、二つの乱数とそれらの積からなる三つ組みを当該事前計算装置と前記複数の他の事前計算装置とで秘密分散する機能を繰り返し使うことで、多数の秘密分散されたビーバー三重子を生成し、
     ビーバー三重子ランダム検査処理部が、前記秘密分散されたビーバー三重子をランダムに選び、互いに当該事前計算装置と前記複数の他の事前計算装置とが通信することでこれらのビーバー三重子を復元し、復元したビーバー三重子の値を用いて最初の二つの要素の積が第三の要素となっていることを確認し、
     ビーバー三重子位置攪拌処理部が、前記復元しなかったビーバー三重子をランダムに並び替えて、並び替えた後の秘密分散されたビーバー三重子を生成する、
    事前計算方法。
  8.  複数の他のベクトル乗算装置と通信が可能なベクトル乗算装置において行われるベクトル乗算方法であって、
     事前計算入力処理部が、ビーバー三重子の秘密分散データを生成し、あるいは前記ビーバー三重子の秘密分散データを入力し、
     入力処理部が、乗算されるべき二つの数の組の秘密分散データを複数個入力し、
     補助ベクトル生成処理部が、前記乗算されるべき二つの組の秘密分散データそれぞれに対して、前記ビーバー三重子の秘密分散データそれぞれの一つの要素を加算し、加算結果の秘密分散されたデータを、前記複数の他のベクトル乗算装置と当該ベクトル乗算装置とが互いに通信して開示した結果である補助ベクトルを生成し、
     ベクトル乗算処理部が、前記補助ベクトルと前記ビーバー三重子の秘密分散データとから、ベクトル乗算結果の秘密分散データを生成する、
    ベクトル乗算方法。
  9.  前記事前計算入力処理部、前記入力処理部、前記補助ベクトル生成処理部、および前記ベクトル乗算処理部が、各処理を全て複数個実施し、
     結果同一確認処理部が、複数個の前記ベクトル乗算結果の秘密分散データが全て同一の値であることを確認する
    請求項8に記載のベクトル乗算方法。
  10.  複数の他の事前計算装置と通信可能な事前計算装置のコンピュータを、
     秘密分散された二つの乱数を生成し、この二つの乱数の積の秘密分散された値を当該事前計算装置と前記複数の他の事前計算装置とが互いに通信することで生成することで、二つの乱数とそれらの積からなる三つ組みを当該事前計算装置と前記複数の他の事前計算装置とで秘密分散する機能を繰り返し使うことで、多数の秘密分散されたビーバー三重子を生成するビーバー三重子生成処理手段、
     前記秘密分散されたビーバー三重子をランダムに選び、互いに当該事前計算装置と前記複数の他の事前計算装置とが通信することでこれらのビーバー三重子を復元し、復元したビーバー三重子の値を用いて最初の二つの要素の積が第三の要素となっていることを確認するビーバー三重子ランダム検査処理手段、および
     前記復元しなかったビーバー三重子をランダムに並び替えて、並び替えた後の秘密分散されたビーバー三重子を生成するビーバー三重子位置攪拌処理手段、
    として機能させるための事前計算プログラムを記録したコンピュータ読取可能な記録媒体。
     
PCT/JP2016/086352 2015-12-10 2016-12-07 事前計算装置、方法、およびコンピュータ読取可能な記録媒体、並びにベクトル乗算装置、および方法 WO2017099117A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US16/060,082 US10972260B2 (en) 2015-12-10 2016-12-07 Pre-calculation device, method, computer-readable recording medium, vector multiplication device, and method
JP2017555094A JP6970379B2 (ja) 2015-12-10 2016-12-07 事前計算装置、方法、およびプログラム、並びにベクトル乗算装置、および方法
EP16873010.9A EP3389031B1 (en) 2015-12-10 2016-12-07 Pre-calculation device, method, computer-readable recording medium, vector multiplication device, and method
US17/025,001 US11349648B2 (en) 2015-12-10 2020-09-18 Pre-calculation device, method, computer-readable recording medium, vector multiplication device, and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015241251 2015-12-10
JP2015-241251 2015-12-10

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US16/060,082 A-371-Of-International US10972260B2 (en) 2015-12-10 2016-12-07 Pre-calculation device, method, computer-readable recording medium, vector multiplication device, and method
US17/025,001 Division US11349648B2 (en) 2015-12-10 2020-09-18 Pre-calculation device, method, computer-readable recording medium, vector multiplication device, and method

Publications (1)

Publication Number Publication Date
WO2017099117A1 true WO2017099117A1 (ja) 2017-06-15

Family

ID=59013180

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/086352 WO2017099117A1 (ja) 2015-12-10 2016-12-07 事前計算装置、方法、およびコンピュータ読取可能な記録媒体、並びにベクトル乗算装置、および方法

Country Status (4)

Country Link
US (2) US10972260B2 (ja)
EP (1) EP3389031B1 (ja)
JP (1) JP6970379B2 (ja)
WO (1) WO2017099117A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018216512A1 (ja) * 2017-05-25 2018-11-29 日本電信電話株式会社 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム
US11588621B2 (en) * 2019-12-06 2023-02-21 International Business Machines Corporation Efficient private vertical federated learning

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111543025A (zh) * 2017-08-30 2020-08-14 因福尔公司 高精度隐私保护实值函数评估
US11323444B2 (en) * 2017-09-29 2022-05-03 Robert Bosch Gmbh Method for faster secure multiparty inner product computation with SPDZ
IL285484B2 (en) * 2019-02-22 2024-07-01 Inpher Inc Arithmetic for secure multipart computation with modular integers
US20230016859A1 (en) * 2020-07-13 2023-01-19 Inpher, Inc. Multi-Pivot Partial Quicksort and Oblivious Comparisons of Secret Shared Arithmetic Values in a Multi-Party Computing Setting
CN112769542B (zh) * 2021-04-12 2021-06-11 富算科技(上海)有限公司 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质
CN113541963B (zh) * 2021-07-16 2024-05-24 北京数牍科技有限公司 一种基于tee可扩展的安全多方计算方法及系统
CN117009723B (zh) * 2023-09-27 2024-01-30 长春吉大正元信息技术股份有限公司 一种多方计算方法、装置、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120002811A1 (en) * 2010-06-30 2012-01-05 The University Of Bristol Secure outsourced computation
US10083310B1 (en) * 2013-03-13 2018-09-25 Hrl Laboratories, Llc System and method for mobile proactive secure multi-party computation (MPMPC) using commitments
US9536114B1 (en) * 2013-03-13 2017-01-03 Hrl Laboratories, Llc Secure mobile proactive multiparty computation protocol

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DEMMLER, DANIEL ET AL.: "ABY - A Framework for Efficient Mixed-Protocol Secure Two-Party Computation", PROCEEDINGS OF THE 2015 NETWORK AND DISTRIBUTED SYSTEM SECURITY (NDSS) SYMPOSIUM, February 2015 (2015-02-01), pages 1 - 15, XP055389193, Retrieved from the Internet <URL:http://www.internetsociety.org/sites/default/files/08_2_l.pdf> [retrieved on 20170221] *
ZAMANI, MAHDI ET AL.: "Millions of Millionaires: Multiparty Computation in Large Networks", CRYPTOLOGY EPRINT ARCHIVE, March 2014 (2014-03-01), pages 1 - 26, XP061015759, Retrieved from the Internet <URL:http://eprint.iacr.org/2014/149> [retrieved on 20170221] *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018216512A1 (ja) * 2017-05-25 2018-11-29 日本電信電話株式会社 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム
US11588621B2 (en) * 2019-12-06 2023-02-21 International Business Machines Corporation Efficient private vertical federated learning

Also Published As

Publication number Publication date
JP6970379B2 (ja) 2021-11-24
EP3389031B1 (en) 2021-08-04
EP3389031A4 (en) 2019-07-17
US11349648B2 (en) 2022-05-31
US20210005112A1 (en) 2021-01-07
US10972260B2 (en) 2021-04-06
JPWO2017099117A1 (ja) 2018-09-27
US20180366036A1 (en) 2018-12-20
EP3389031A1 (en) 2018-10-17

Similar Documents

Publication Publication Date Title
WO2017099117A1 (ja) 事前計算装置、方法、およびコンピュータ読取可能な記録媒体、並びにベクトル乗算装置、および方法
CN112989368B (zh) 多方联合进行隐私数据处理的方法及装置
Li et al. Privacy-preserving-outsourced association rule mining on vertically partitioned databases
EP3741081B1 (en) Computer implemented method and system for obtaining digitally signed data
Jayapandian et al. Secure and efficient online data storage and sharing over cloud environment using probabilistic with homomorphic encryption
CN112385176B (zh) 匿名工作分配和多数表决的系统、方法和介质
CN110071814A (zh) 一种基于Bell态纠缠交换的量子盲签名方法及系统
US20220374544A1 (en) Secure aggregation of information using federated learning
Mishra et al. Quantum anonymous veto: a set of new protocols
Lai et al. An efficient quantum blind digital signature scheme
WO2020165931A1 (ja) 情報処理装置、秘密計算方法及びプログラム
Cao et al. Security analysis and improvement of a blind semi-quantum signature
CN108599941A (zh) 随机非对称扩充字节通信数据加密方法
CN110740034B (zh) 基于联盟链的qkd网络认证密钥生成方法及系统
Guo et al. A novel quantum proxy blind signature scheme
JP2980320B2 (ja) 暗号文による通信方式における暗号鍵共有方式
CN105099693B (zh) 一种传输方法及传输装置
Rohde et al. Quantum crypto-economics: Blockchain prediction markets for the evolution of quantum technology
Xu An Efficient HPRA‐Based Multiclient Verifiable Computation: Transform and Instantiation
Ahubele et al. Towards a Scalable and Secure Blockchain Based on Post-Quantum Cryptography.
CN116633560B (zh) 一种面向区块链组播交易模式的隐私保护与监管方法
CN112926078B (zh) 一种紧凑的多目标属性基加法同态加密方法
Huang et al. A black-box construction of strongly unforgeable signature scheme in the leakage setting
CN110929872B (zh) 抗量子计算私钥备份、挂失及恢复方法及系统
TWI818708B (zh) 驗證模型更新的方法

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017555094

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2016873010

Country of ref document: EP