Multiplication execution method, data preparation method and apparatus

By coordinating the generation and computation of random multipliers and addition fragments among participating parties and third parties, the problem of high communication overhead in SMPC multiplication is solved, thereby reducing the communication frequency.

CN114089948BActive Publication Date: 2026-03-31SASI DIGITAL TECHNOLOGY (BEIJING) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-11-24
Publication Date
2026-03-31

AI Technical Summary

Technical Problem

The communication overhead is significant when performing multiplication based on secure multi-party computation, especially since participants need to frequently communicate with third parties to obtain random multipliers and addition fragments.

Method used

By coordinating between the participants and third parties, a new data preparation method and apparatus are adopted to reduce the number of communications by the participants directly obtaining data from third parties, using a random number generator to generate and calculate random multipliers and additive sharding.

Benefits of technology

It effectively reduces the communication overhead when performing SMPC-based multiplication and reduces the frequency of communication between participants and third parties.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114089948B_ABST
    Figure CN114089948B_ABST
Patent Text Reader

Abstract

The embodiment of the present specification provides a multiplication execution method, a data preparation method and device based on SMPC. The multiplication execution method comprises: a first party obtains a first random multiplier and a first addition fragment according to an execution round i, the first random multiplier is generated by a first random number generator based on the execution round i, the first addition fragment is calculated by a third party based on the first random multiplier, a second random multiplier and a second addition fragment, the second random multiplier and the second addition fragment are generated by a second random number generator deployed in the third party based on the execution round i; the first party sends the execution round i to a second party; the second party obtains the second random multiplier and the second addition fragment generated by the second random number generator deployed by the second party based on the execution round i according to the execution round i; the first party uses the first random multiplier and the first addition fragment, and the second party uses the second random multiplier and the second addition fragment to jointly execute the ith multiplication based on SMPC.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This specification relates to one or more embodiments in the field of computers, and more particularly to a multiplication execution method, data preparation method and apparatus based on secure multi-party computation. Background Technology

[0002] Secure Multi-Party Computation (SMPC) refers to the collaborative computation of a function by multiple parties without disclosing the input data held by each participant. This input data is typically private, but the result of the computation can be disclosed to designated individuals. SMPC-based multiplication is a typical SMPC method. In performing SMPC-based multiplication, a third party usually provides each participant with random multipliers and addition slices.

[0003] The aim is to provide a new technical solution to reduce the communication overhead when performing SMPC-based multiplication. Summary of the Invention

[0004] This specification provides a multiplication execution method, data preparation method, and apparatus based on SMPC in one or more embodiments.

[0005] In a first aspect, a multiplication execution method based on SMPC is provided, applied to a first party. The method includes: obtaining a first random multiplier and a first addition slice based on execution round i, wherein the first random multiplier is generated by a first random number generator based on execution round i, the first addition slice is calculated by a third party based on the first random multiplier, a second random multiplier, and a second addition slice, and the second random multiplier and the second addition slice are generated by a second random number generator deployed on the third party based on execution round i; sending the execution round i to a second party, such that the second party, based on execution round i, obtains the second random multiplier and the second addition slice generated by its deployed second random number generator based on execution round i, wherein the second random multiplier and the second addition slice are used by the second party and the first party to jointly execute the i-th multiplication based on SMPC; and using the first random multiplier and the first addition slice, jointly executing the i-th multiplication based on SMPC with the second party.

[0006] In one possible implementation, the method further includes: sending the execution round i to the third party, causing the third party to return the first addition fragment.

[0007] In one possible implementation, the method further includes: generating the first random multiplier based on the execution round i using a first random number generator deployed in the first party.

[0008] In one possible implementation, the method further includes: receiving from the third party a first random number generator that it has deployed, based on the execution round i, a first random multiplier.

[0009] In one possible implementation, the method further includes: sending a first random seed to the third party, causing the third party to initialize a first random number generator deployed by the third party using the first random seed.

[0010] In one possible implementation, the method further includes: initializing a first random number generator deployed in the first party using the first random seed.

[0011] Secondly, a multiplication execution device based on SMPC is provided, deployed in the first party. The device includes:

[0012] The acquisition unit is configured to acquire a first random multiplier and a first addition slice based on the execution round i. The first random multiplier is generated by a first random number generator based on the execution round i. The first addition slice comes from the third party and is calculated by the third party based on the first random multiplier, a second random multiplier, and a second addition slice. The second random multiplier and the second addition slice are generated by a second random number generator deployed on the third party based on the execution round i.

[0013] The communication unit is configured to send the execution round i to the second party, so that the second party obtains the second random multiplier and the second addition slice generated by its deployed second random number generator based on the execution round i, wherein the second random multiplier and the second addition slice are used by the second party and the first party to jointly perform the i-th multiplication based on SMPC;

[0014] The computing unit is configured to jointly perform the i-th multiplication based on SMPC with the second party using the first random multiplier and the first addition slice.

[0015] In one possible implementation, the communication unit is further configured to send the execution round i to the third party, causing the third party to return the first addition fragment.

[0016] In one possible implementation, the apparatus further includes: a calling unit configured to generate the first random multiplier based on the execution round i using a first random number generator deployed in the first party.

[0017] In one possible implementation, the communication unit is further configured to receive from the third party the first random multiplier generated by its deployed first random number generator based on the execution round i.

[0018] In one possible implementation, the communication unit is further configured to send a first random seed to the third party, causing the third party to initialize a first random number generator it has deployed using the first random seed.

[0019] In one possible implementation, the apparatus further includes a configuration unit configured to initialize a first random number generator deployed thereon using the first random seed.

[0020] Thirdly, a multiplication execution method based on SMPC is provided, applied to a second party, comprising: receiving an execution round i from a first party; obtaining, based on the execution round i, a second random multiplier and a second addition slice generated by a second random number generator deployed in the second party based on the execution round i; and using the second random multiplier and the second addition slice, jointly executing the i-th multiplication based on SMPC with the first party.

[0021] In one possible implementation, the method further includes: initializing a second random number generator deployed in the second party using a second random seed; and sending the second random seed to a third party, causing the third party to initialize its deployed second random number generator using the second random seed.

[0022] Fourthly, a multiplication execution device based on SMPC is provided, deployed in a second party, comprising: a communication unit configured to receive execution round i from a first party; an acquisition unit configured to acquire, based on the execution round i, a second random multiplier and a second addition slice generated by a second random number generator deployed in the second party based on the execution round i; and a calculation unit configured to, using the second random multiplier and the second addition slice, jointly execute the i-th multiplication based on SMPC with the first party.

[0023] In one possible implementation, the apparatus further includes: a configuration unit configured to initialize a second random number generator deployed in the second party using a second random seed; the communication unit is further configured to send the second random seed to the third party, causing the third party to initialize its deployed second random number generator using the second random seed.

[0024] Fifthly, a data preparation method based on SMPC is provided, applied to a third party. The method includes: receiving an execution round i from a first party; generating a first random multiplier based on the execution round i using a first random number generator deployed in the third party; generating a second random multiplier and a second addition fragment based on the execution round i using a second random number generator deployed in the third party; calculating a first addition fragment using the first random multiplier, the second random multiplier, and the second addition fragment; and sending the first addition fragment to the first party.

[0025] In one possible implementation, the method further includes sending the first random multiplier to the first party.

[0026] In one possible implementation, the method further includes: receiving a first random seed and a second random seed from the first party and the second party, respectively; and initializing a first random number generator and a second random number generator using the first random seed and the second random seed, respectively.

[0027] In a sixth aspect, a data preparation apparatus based on SMPC is provided, deployed in a third party, comprising: a communication unit configured to receive an execution round i from a first party; a calling unit configured to generate a first random multiplier based on the execution round i using a first random number generator deployed in the third party; and to generate a second random multiplier and a second addition fragment based on the execution round i using a second random number generator deployed in the third party; a calculation unit configured to calculate the first addition fragment using the first random multiplier, the second random multiplier, and the second addition fragment; the communication unit is further configured to send the first addition fragment to the first party.

[0028] In one possible implementation, the communication unit is further configured to send the first random multiplier to the first party.

[0029] In one possible implementation, the communication unit is further configured to receive a first random seed and a second random seed from the first party and the second party, respectively; the apparatus further includes: a configuration unit configured to initialize the first random number generator using the first random seed and initialize the second random number generator using the second random seed.

[0030] In a seventh aspect, a computer-readable storage medium is provided having a computer program / instructions stored thereon, wherein when the computer program / instructions are executed in a computing device, the computing device performs the method as described in any one of the first, third, or fifth aspects.

[0031] Eighthly, a computing device is provided, including a memory and a processor, wherein the memory stores a computer program / instructions, and the processor executes the computer program / instructions to implement the method as described in any one of the first, third, or fifth aspects.

[0032] The methods and apparatus provided in one or more embodiments of this specification eliminate the need for the second party to obtain random multipliers and addition fragments for performing SMPC-based multiplication from a third party, significantly reducing the frequency of communication between the second party and the third party and lowering the communication overhead when performing SMPC-based multiplication. Attached Figure Description

[0033] To more clearly illustrate the technical solutions of the embodiments in this specification, the drawings used in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0034] Figure 1 This is an example of a process where two parties jointly perform SMPC-based multiplication.

[0035] Figure 2 This is a schematic diagram of the SMPC-based multiplication execution system provided in the embodiments of this specification;

[0036] Figure 3 This is a schematic diagram of the initialization phase that may be included in a SMPC-based multiplication execution method;

[0037] Figure 4 This is a schematic diagram illustrating the data preparation phase that a SMPC-based multiplication execution method may include.

[0038] Figure 5 This is a schematic diagram of the online multiplication stage included in the SMPC-based multiplication execution method;

[0039] Figure 6 This is a schematic diagram of a multiplication execution device based on SMPC provided in the embodiments of this specification;

[0040] Figure 7 This is a schematic diagram of another SMPC-based multiplication execution device provided in the embodiments of this specification;

[0041] Figure 8 This is a schematic diagram of a data preparation device based on SMPC provided in the embodiments of this specification. Detailed Implementation

[0042] The various non-limiting embodiments provided in this specification will now be described in detail with reference to the accompanying drawings.

[0043] Figure 1 This is an example diagram illustrating the process of two parties jointly performing SMPC-based multiplication. Figure 1 As shown, a first party (e.g., participant A) and a second party (e.g., participant B) each hold privacy data a and privacy data b. When performing SMPC-based multiplication on a and b, participant A can obtain a random multiplier x1 and an addition fragment y1, while participant B can obtain a random multiplier x2 and an addition fragment y2. The product of x1 and x2 is equal to the sum of y1 and y2, and x1, x2, y1, and y2 can also be represented as a multiplication triple for SMPC. Next, participant A can subtract its holdings a and x1 to obtain data e and send it to participant B; participant B can subtract its holdings b and x2 to obtain data f and send it to participant A. Then, participant B can sum the product of b and e with y2 to obtain data c2; participant A can sum the product of x1 and f with y1 to obtain data c1. Finally, participants A and B can exchange their calculated values ​​of c1 and c2, and each sum c1 and c2; the sum of c1 and c2 is equal to the product of a and b.

[0044] In one possible implementation, to ensure that participant A cannot know x2 and y2, and participant B cannot know x1 and y1, while ensuring x1*x2 = y1 + y2, thereby preventing participant A or participant B from deduce the corresponding privacy data a or b, x1, x2, y1, and y2 typically need to be provided by a third party (e.g., participant C). Specifically, participant C generates random numbers x1, x2, and y1, and calculates y2 based on x1*x2 = y1 + y2. In other words, participant C typically needs to obtain x1, x2, y1, and y2, and send x1 and y1 to participant A, and x2 and y2 to participant B. However, participants A and B typically need to jointly perform a large number of SMPC-based multiplications. When performing SMPC-based multiplications in different execution rounds, participant C needs to generate different multiplication triples and distribute them to participants A and B. This results in participants A and B needing to communicate with participant C frequently, leading to relatively high communication overhead.

[0045] The multiplication execution method, data preparation method, and apparatus based on SMPC provided in the embodiments of this specification can reduce the communication overhead in the process of performing SMPC-based multiplication.

[0046] Figure 2This is a schematic diagram of a SMPC-based multiplication execution system provided in the embodiments of this specification. The multiplication execution system includes a first party (Party A), a second party (Party B), and a third party (Party C). Participant C deploys a first random number generator (i.e., random number generator D1) corresponding to Participant A and a second random number generator (i.e., random number generator D2) corresponding to Participant B. Participant B deploys its corresponding random number generator D2, and optionally, Participant A also deploys its corresponding random number generator D1. Participants A, B, and C can each be implemented as any computer program, device, platform, or device cluster capable of processing and storing data. Furthermore, both random number generators D1 and D2 can be deterministic random bit generators / pseudo-random number generators.

[0047] The following is combined Figure 2 The system described herein details a multiplication execution method based on SMPC. Regarding the timing of the various method steps that may be included in the SMPC-based multiplication execution method, it includes at least an online multiplication phase, and optionally, an initialization phase and / or a data preparation phase preceding the online multiplication phase. Furthermore, it should be noted that the names of the aforementioned three phases are only used to logically and temporally delineate the various method steps that may be included in the SMPC-based multiplication execution method; they are not used to limit the actual transactions executed in each phase. Method steps within a single phase, or method steps in different phases, may not be executed in the order of the aforementioned three phases or in the sequence number of the method steps.

[0048] Figure 3 This is a schematic diagram illustrating the initialization phase that may be included in a SMPC-based multiplication execution method. For example... Figure 3 As shown, the initialization phase may include, but is not limited to, the following steps 3011-305.

[0049] Step 3011: Participant B initializes its deployed random number generator D2 using the second random seed m2. The second random seed m2 can be a value obtained by participant B and not disclosed to participant A.

[0050] When participant A deploys a random number generator D1, the initialization phase may further include step 3013, whereby participant A initializes its deployed random number generator D1 using a first random seed m1. Similar to participant B, the first random seed m1 can be a value obtained by participant A and not disclosed to participant B.

[0051] Step 3031: Participant A sends the first random seed m1 to Participant C.

[0052] Step 3033: Participant B sends the second random seed m2 to Participant C.

[0053] Step 305: Participant C initializes its deployed random number generator D1 using the first random seed m1, and initializes its deployed random number generator D2 using the second random seed m2.

[0054] After initializing the random number generators D1 and / or D2 deployed by each participant in the aforementioned initialization phase, each participant can use its deployed random number generators D1 and / or D2 to generate random numbers for online multiplication in the subsequent data preparation phase and / or online multiplication phase.

[0055] Figure 4 This is a schematic diagram illustrating the data preparation phase that a SMPC-based multiplication execution method may include. For example... Figure 4 As shown, the data preparation stage may include, but is not limited to, the following steps 401-4075.

[0056] Step 401, participant C receives execution round i from participant A.

[0057] Step 403: Participant C uses its deployed random number generator D1 to generate a first random multiplier based on execution round i, and uses its deployed random number generator D2 to generate a second random multiplier and a second addition slice based on execution round i. More specifically, participant C can input execution round i into its deployed random number generators D1 and D2 respectively to obtain the first random multiplier generated by random number generator D1 based on execution round i, and the second random multiplier and the second addition slice generated by random number generators based on execution round i.

[0058] Step 405: Participant C calculates the first addition piece using the first random multiplier, the second random multiplier, and the second addition piece. As mentioned earlier, let the first random multiplier be denoted as x1, the second random multiplier as x2, the first addition piece as y1, and the second addition piece as y2. Participant C can then specifically calculate the first addition piece y1 using x1*x2=y1+y2.

[0059] Step 4071: Participant C sends the first addition fragment to Participant A.

[0060] When participant A has not deployed its corresponding random number generator D1, the data preparation phase may further include step 4073, where participant C sends the first random multiplier to participant A. Specifically, for steps 4071 and 4073, participant C can send the first random multiplier and the first addition fragment to participant A using the same message, or it can send the first random multiplier and the first addition fragment to participant A using different messages.

[0061] When participant A deploys its corresponding random number generator D1, the data preparation phase may also include 4075, where participant A uses its deployed random number generator D1 to generate a first random multiplier based on execution round i.

[0062] It should be noted that participant A can obtain multiple sets of first random multipliers and first addition slices for multiple execution rounds through the data preparation phase. For example, participant A can obtain and store the first random multipliers and first addition slices corresponding to each of the N1 to N2 execution rounds through the aforementioned data preparation phase; when participant A performs the i-th multiplication based on SMPC, and i is not less than N1 and not greater than N2, participant A can obtain / determine the first random multipliers and first addition slices for performing the i-th multiplication from its stored first random multipliers and first addition slices corresponding to each of the N1 to N2 execution rounds, based on the execution round i.

[0063] It should be noted that the methods executed by participant C or corresponding to participant C in the initialization and data preparation phases can constitute a data preparation method based on SMPC. The execution process of a data preparation method based on SMPC provided in the embodiments of this specification will not be described again here.

[0064] Figure 5 This is a schematic diagram illustrating the online multiplication stage included in the SMPC-based multiplication execution method. (See diagram below.) Figure 5 As shown, the online multiplication stage may include, but is not limited to, the following steps 501-507.

[0065] Step 501: Participant A obtains a first random multiplier and a first addition shard based on execution round i. The first random multiplier is generated by random number generator D1 based on execution round i, and the first addition shard is calculated by participant C based on the first random multiplier, the second random multiplier, and the second addition shard. The second random multiplier and the second addition shard are generated by random number generator D2 deployed on participant C based on execution round i.

[0066] Participant A can obtain and store the first random multiplier and first addition slice corresponding to each of the N1 to N2 execution rounds through the aforementioned data preparation stage. When Participant A performs the i-th multiplication based on SMPC, and i is not less than N1 and not greater than N2, Participant A can specifically obtain / determine the first random multiplier and first addition slice for performing the i-th multiplication from its stored first random multiplier and first addition slice corresponding to each of the N1 to N2 execution rounds in step 501, based on the execution round i. Alternatively, Participant A can specifically obtain the first random multiplier and first addition slice according to the execution round i through some or all of the steps in the aforementioned data preparation stage in step 501.

[0067] Step 503: Participant A sends execution round i to Participant B.

[0068] Step 505: Participant B obtains the second random multiplier and second addition shard generated by its deployed random number generator D2 based on execution round i. Since Participant B and Participant C initialize their respective deployed random number generators D2 using the same random seed m2, the random number generators D2 deployed by Participant B and Participant C can generate the same second random multiplier and second addition shard based on the same execution round i.

[0069] Participant B can pre-obtain and store the second random multiplier and second addition slice corresponding to each of the N1 to N2 execution rounds through its deployed random number generator D2. When Participant B receives execution round i from Participant A, and i is not less than N1 and not greater than N2, Participant A can, in step 505, obtain / determine the second random multiplier and second addition slice used for the i-th multiplication from its stored second random multiplier and second addition slice corresponding to each of the N1 to N2 execution rounds based on execution round i. Alternatively, Participant B can, in step 505, input execution round i into its deployed random number generator D2 to obtain the second random multiplier and second addition slice generated by the random number generator D2 based on execution round i and used for the i-th multiplication.

[0070] Step 507: Participant A uses the first random multiplier and the first addition partition, while participant B uses the second random multiplier and the second addition partition, to jointly perform the i-th multiplication based on SMPC. The process by which participant A and participant B jointly perform the i-th multiplication based on SMPC is described above. Figure 1 The relevant descriptions will not be repeated here.

[0071] With the technical solutions provided in the embodiments of this specification, participant B does not need to obtain the second random multiplier and the second addition fragment for performing SMPC-based multiplication from participant C, which greatly saves the frequency of communication between participant B and participant C and can reduce the communication overhead when performing SMPC-based multiplication.

[0072] Based on the same concept as the foregoing system and method embodiments, this specification also provides an SMPC-based multiplication execution device deployed in a first party. For example... Figure 6 As shown, the device includes: an acquisition unit 601 configured to acquire a first random multiplier and a first addition slice based on execution round i, wherein the first random multiplier is generated by a first random number generator based on execution round i, the first addition slice comes from the third party, the first addition slice is calculated by the third party based on the first random multiplier, a second random multiplier, and a second addition slice, and the second random multiplier and the second addition slice are generated by a second random number generator deployed on the third party based on execution round i; a communication unit 603 configured to send the execution round i to the second party, such that the second party acquires the second random multiplier and the second addition slice generated by its deployed second random number generator based on execution round i, wherein the second random multiplier and the second addition slice are used by the second party and the first party to jointly perform the i-th multiplication based on SMPC; and a calculation unit 605 configured to use the first random multiplier and the first addition slice to jointly perform the i-th multiplication based on SMPC with the second party.

[0073] In one possible implementation, the communication unit 601 is further configured to send the execution round i to the third party, causing the third party to return the first addition fragment.

[0074] In one possible implementation, the apparatus further includes: a calling unit 607 configured to generate the first random multiplier based on the execution round i using a first random number generator deployed in the first party.

[0075] In one possible implementation, the communication unit 603 is further configured to receive from the third party the first random multiplier generated by its deployed first random number generator based on the execution round i.

[0076] In one possible implementation, the communication unit 603 is further configured to send a first random seed to the third party, causing the third party to initialize its deployed first random number generator using the first random seed.

[0077] In one possible implementation, the apparatus further includes a configuration unit 609 configured to initialize a first random number generator deployed thereon using the first random seed.

[0078] Based on the same concept as the foregoing system and method embodiments, this specification also provides an SMPC-based multiplication execution device deployed in a second party. For example... Figure 7 As shown, the device includes: a communication unit 701 configured to receive execution round i from a first party; an acquisition unit 703 configured to acquire, based on the execution round i, a second random multiplier and a second addition slice generated by a second random number generator deployed in the second party based on the execution round i; and a calculation unit 705 configured to, using the second random multiplier and the second addition slice, jointly perform the i-th multiplication based on SMPC with the first party.

[0079] In one possible implementation, the apparatus further includes: a configuration unit 707 configured to initialize a second random number generator deployed in the second party using a second random seed; the communication unit 701 is further configured to send the second random seed to the third party, causing the third party to initialize its deployed second random number generator using the second random seed.

[0080] Based on the same concept as the foregoing system and method embodiments, this specification also provides a data preparation device based on SMPC, deployed on a third party. For example... Figure 8 As shown, the device includes: a communication unit 801 configured to receive execution round i from a first party; a calling unit 803 configured to generate a first random multiplier based on execution round i using a first random number generator deployed in the third party, and to generate a second random multiplier and a second addition fragment based on execution round i using a second random number generator deployed in the third party; a calculation unit 805 configured to calculate a first addition fragment using the first random multiplier, the second random multiplier, and the second addition fragment; the communication unit 801 is further configured to send the first addition fragment to the first party.

[0081] In one possible implementation, the communication unit 801 is further configured to send the first random multiplier to the first party.

[0082] In one possible implementation, the communication unit 801 is further configured to receive a first random seed and a second random seed from the first party and the second party, respectively; the device further includes a configuration unit 807 configured to initialize the first random number generator using the first random seed and initialize the second random number generator using the second random seed.

[0083] Those skilled in the art will recognize that, in one or more of the examples above, the functions described herein can be implemented using hardware, software, firmware, or any combination thereof. When implemented in software, the computer program corresponding to these functions can be stored in a computer-readable medium or transmitted as one or more instructions / code on a computer-readable medium so that when the computer program corresponding to these functions is executed by a computer, the methods described in any embodiment of this specification can be implemented by the computer.

[0084] This specification also provides a computer-readable storage medium storing a computer program, which, when executed in a computing device, enables the computing device to perform the method provided in any embodiment of this specification, executed by participant A, participant B, or participant C.

[0085] This specification also provides a computing device in its embodiments, including a memory and a processor. The memory stores executable code, and when the processor executes the executable code, it implements the method provided in any embodiment of this specification, which is executed by participant A, participant B, or participant C.

[0086] The various embodiments in this specification are described in a progressive manner. Similar or identical parts in each embodiment can be referred to interchangeably. Each embodiment focuses on describing the differences from other embodiments. Especially for the device and system embodiments, since they are basically similar to the method embodiments, the descriptions are relatively simple; relevant parts can be referred to the descriptions in the method embodiments.

[0087] The foregoing has described specific embodiments of this specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims may be performed in a different order than that shown in the embodiments and may still achieve the desired result. Furthermore, the processes depicted in the drawings do not necessarily require the specific or sequential order shown to achieve the desired result. In some embodiments, multitasking and parallel processing are possible or may be advantageous.

[0088] The specific embodiments described above further illustrate the purpose, technical solution, and beneficial effects of the present invention. It should be understood that the above description is only a specific embodiment of the present invention and is not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc., made on the basis of the technical solution of the present invention should be included within the scope of protection of the present invention.

Claims

1. A method for performing multiplication based on secure multi-party computation, applied to a first party, comprising: generating, by a first random number generator deployed in the first party, a first random multiplier based on an execution round i; sending the execution round i to a third party, so that the third party generates the first random multiplier based on the execution round i by using the first random number generator deployed in the third party, generates a second random multiplier and a second additive share based on the execution round i by using a second random number generator deployed in the third party, calculates a first additive share based on the first random multiplier, the second random multiplier and the second additive share, and returns the first additive share; sending the execution round i to a second party, so that the second party obtains the second random multiplier and the second additive share generated by the second random number generator deployed in the second party based on the execution round i, wherein the second random multiplier and the second additive share are used for the second party and the first party to jointly perform the i-th multiplication based on secure multi-party computation; performing the i-th multiplication based on secure multi-party computation with the second party by using the first random multiplier and the first additive share.

2. The method of claim 1, further comprising: sending a first random seed to the third party, so that the third party initializes the first random number generator deployed in the third party by using the first random seed.

3. The method of claim 2, further comprising: initializing the first random number generator deployed in the first party by using the first random seed. 4.An apparatus for performing multiplication based on secure multi-party computation, deployed in a first party, comprising: a calling unit configured to generate a first random multiplier based on an execution round i by using a first random number generator deployed in the first party; a communication unit configured to send the execution round i to a third party, so that the third party generates the first random multiplier based on the execution round i by using the first random number generator deployed in the third party, generates a second random multiplier and a second additive share based on the execution round i by using a second random number generator deployed in the third party, calculates a first additive share based on the first random multiplier, the second random multiplier and the second additive share, and returns the first additive share; the communication unit is further configured to send the execution round i to a second party, so that the second party obtains the second random multiplier and the second additive share generated by the second random number generator deployed in the second party based on the execution round i, wherein the second random multiplier and the second additive share are used for the second party and the first party to jointly perform the i-th multiplication based on secure multi-party computation; a calculation unit configured to perform the i-th multiplication based on secure multi-party computation with the second party by using the first random multiplier and the first additive share.

5. The apparatus of claim 4, wherein, the communication unit is further configured to send a first random seed to the third party, so that the third party initializes the first random number generator deployed in the third party by using the first random seed.

6. The apparatus of claim 5, wherein, the apparatus further comprises a configuration unit configured to initialize the first random number generator deployed in the first party by using the first random seed. 7.A method for data preparation based on secure multi-party computation, applied to a third party, comprising: receiving an execution round i from a first party; generating a first random multiplier based on the execution round i by a first random number generator deployed in the third party; generating a second random multiplier and a second additive share based on the execution round i by a second random number generator deployed in the third party; calculating a first additive share by using the first random multiplier, the second random multiplier and the second additive share; sending the first additive share to the first party, so that the first party performs an i-th multiplication based on secure multi-party computation with a second party by using the first random multiplier and the first additive share. 8.The method of claim 7, further comprising: receiving a first random seed and a second random seed from the first party and the second party respectively; initializing the first random number generator by using the first random seed and initializing the second random number generator by using the second random seed. 9.An apparatus for data preparation based on secure multi-party computation, deployed in a third party, comprising: a communication unit configured to receive an execution round i from a first party; a calling unit configured to generate a first random multiplier based on the execution round i by a first random number generator deployed in the third party; and generate a second random multiplier and a second additive share based on the execution round i by a second random number generator deployed in the third party; a calculation unit configured to calculate a first additive share by using the first random multiplier, the second random multiplier and the second additive share; the communication unit is further configured to send the first additive share to the first party, so that the first party performs an i-th multiplication based on secure multi-party computation with a second party by using the first random multiplier and the first additive share.

10. The apparatus of claim 9, wherein, the communication unit is further configured to receive a first random seed and a second random seed from the first party and the second party respectively; the apparatus further comprises a configuration unit configured to initialize the first random number generator by using the first random seed and initialize the second random number generator by using the second random seed. 11.A computer readable storage medium having stored thereon computer programs or instructions, which when executed in a computing device, cause the computing device to perform the method of any one of claims 1-3, claims 7-8. 12.A computing device comprising a memory and a processor, the memory having stored thereon computer programs or instructions, the processor executing the computer programs or instructions to implement the method of any one of claims 1-3, claims 7-8.

Citation Information

Patent Citations

  • Multi-party joint data processing method and device using trusted third party

    CN112800479A

  • Multi-party joint data processing method and device for controlling delay

    CN113065156A