Method and device for generating multiplication quintuple

By generating secret sharing of triplets in secure multi-party calculations and sampling from equivalent classes, secret sharing of multiplication quintiles is solved, and a more efficient generation process is achieved.

CN119602950AActive Publication Date: 2025-03-11ALIPAY (HANGZHOU) INFORMATION TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411666747.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-20
Publication Date
2025-03-11
Estimated Expiration
2044-11-20

AI Technical Summary

Technical Problem

The prior art costs a lot when generating multiplication quintiles, which affects the efficiency of safe multi-party calculations.

Method used

Through data interaction based on secure multi-party computing between multiple participants, secret sharing of triplets in the specified domain space is generated, and samples from multiple equivalent classes based on these secret sharing, forming a secret sharing of five-tuple to be generated.

Benefits of technology

This method can improve the generation efficiency of multiplication five-tuples, reduce calculation overhead, and call the bucketing technology once, reducing overhead.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119602950A_ABST
    Figure CN119602950A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a multiplication quintuple generation method and device. Multiple participants interact with each other through first data based on secure multi-party calculation, so that the multiple participants respectively obtain first secret sharing of a triple of a specified domain space in the participants. Then, sampling elements in the triple from a plurality of equivalence classes of the elements in a specified domain space through second data interaction based on secure multi-party calculation according to the elements in the triple and based on first secret sharing owned by the parties, so that the participants respectively obtain the adopted secret sharing; and performing second secret sharing of other elements in the quintuple to be generated in the participant. The second secret sharing and the first secret sharing form the secret sharing of the quintuple to be generated.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] One or more embodiments of the present specification relate to the field of computer technology, and in particular, to a method and device for generating a multiplication quintuple. Background Art

[0002] Secure Multi-Party Computation (MPC) is a cryptographic technology that allows multiple parties to perform calculations and analyses together while maintaining the privacy of their respective data. The core idea is to use cryptographic technology and algorithms to encrypt the data of each party before performing calculations, so as to ensure that each party can only obtain the data and calculation results it needs, but cannot obtain the original data of other parties. Many business scenarios involve data calculation and interaction between multiple parties who cooperate with each other, but none of the parties want to leak their own private data. At this time, secure multi-party computing based on secret sharing has become a commonly deployed security solution. When performing data multiplication calculations based on secure multi-party computing, in order to ensure the security of multiplication operations, multiple parties need to generate random quintuples to assist in multiplication operations, thereby ensuring the correctness and security of the calculations and reducing the communication and calculation overhead. At present, the overhead of generating multiplication quintuples is relatively large.

[0003] Therefore, it is hoped that there will be an improved solution that can improve the efficiency of generating multiplication quintuples and reduce overhead. Summary of the invention

[0004] One or more embodiments of this specification describe a method and device for generating a multiplication quintuple, which can be used. The specific technical solution is as follows.

[0005] In a first aspect, an embodiment provides a method for generating a multiplication quintuple, which is performed by multiple parties and includes:

[0006] The multiple participants interact with each other through first data based on secure multi-party computing, so that the multiple participants respectively obtain: a first secret sharing of a triplet of a specified domain space among the participants;

[0007] Through the second data interaction based on secure multi-party computing, multiple participants sample the elements in the triplet from multiple equivalence classes in the specified domain space based on the first secret sharing owned by each party, so that the multiple participants respectively obtain: the second secret sharing of the remaining elements in the to-be-generated quintuple in the participant; the second secret sharing and the first secret sharing constitute the secret sharing of the quintuple to be generated.

[0008] In one embodiment, the first data interaction includes:

[0009] Multiple participants interact with each other through the first sub-data based on secure multi-party computing, and generate k Boolean secret sharing triplets owned by each party;

[0010] Through the second sub-data interaction based on secure multi-party computing, multiple participants package and encode k Boolean secret sharing triplets owned by each party in the specified domain space, so that multiple participants respectively obtain the corresponding first secret sharing.

[0011] In one embodiment, any Boolean secret sharing triplet includes a Boolean secret sharing of three elements; the second sub-data interaction includes:

[0012] Any participant, for any one of the three elements, uses k Boolean secret shares of the element to form a Boolean secret share of the vector corresponding to the element;

[0013] Through the second sub-data interaction based on secure multi-party computing, multiple participants package and encode the Boolean secret sharing of the vectors corresponding to the three elements owned by each party in the specified domain space, so that multiple participants respectively obtain the first secret sharing corresponding to the three elements.

[0014] In one embodiment, the designated domain space is a space containing a plurality of m-bit binary domain elements, and the encoding includes an operation based on a multiplication-friendly encoding RMFE.

[0015] In one implementation, the second data interaction includes:

[0016] The multiple participants interact with each other through a second data exchange based on secure multi-party computing, and sample from multiple original images of the vector in the specified domain space based on the secret sharing of the vector corresponding to the element owned by each party, so that the multiple participants obtain new secret sharing respectively, and the new secret sharing is used as the second secret sharing of the remaining elements;

[0017] The secret sharing of the vector can be obtained by decoding the first secret sharing of the element.

[0018] In one embodiment, the triplet includes a first element, a second element and a third element, and the third element is equal to the product of the first element and the second element; the step of sampling from the elements in a plurality of equivalence classes in the specified domain space includes:

[0019] Sampling the first element from a plurality of equivalence classes in the specified domain space, obtaining secret shares corresponding to the fourth element in the to-be-generated quintuple in a plurality of participants, as second secret shares of the fourth element;

[0020] The second element is sampled from multiple equivalence classes in the specified domain space to obtain secret shares corresponding to the fifth element in the to-be-generated quintuple in multiple participants, as the second secret share of the fifth element.

[0021] In a second aspect, the embodiment provides a privacy-protecting data processing method, which is performed by multiple parties and includes:

[0022] Multiple participants respectively obtain a five-tuple secret share of the multiplication five-tuple; the five-tuple secret share is generated by the method described in the first aspect;

[0023] Multiple participants use their own five-tuple secret sharing to hide their own private data, obtain secret data sharing, and send it to other participants;

[0024] Multiple participants determine the secret sharing of the product of the private data of multiple participants based on their own five-tuple secret sharing and the secret data sharing sent by other participants.

[0025] In a third aspect, the embodiment provides a method for generating a multiplication quintuple, which is executed by any participant and includes:

[0026] By interacting with other participants based on secure multi-party computing, the multiple participants can respectively obtain: a first secret sharing of a triplet of a specified domain space among the participants;

[0027] Through the second data interaction based on secure multi-party computing with the participants, for the elements in the triplet, based on the first secret sharing owned by each party, the elements are sampled from multiple equivalence classes in the specified domain space, so that multiple participants respectively obtain: the second secret sharing of the remaining elements in the quintuple to be generated in the participant; the second secret sharing and the first secret sharing constitute the secret sharing of the quintuple to be generated.

[0028] In a fourth aspect, an embodiment provides a system for generating a multiplication quintuple, the system comprising a plurality of participants;

[0029] The method is used for exchanging first data based on secure multi-party computing between multiple participants, so that the multiple participants respectively obtain: a first secret sharing of a triplet of a specified domain space among the participants;

[0030] The method is used for exchanging second data based on secure multi-party computing between multiple parties, and for sampling elements in the triplet from multiple equivalence classes in the specified domain space based on the first secret sharing owned by each party, so that the multiple parties respectively obtain: the second secret sharing of the remaining elements in the to-be-generated quintuple in the party; the second secret sharing and the first secret sharing constitute the secret sharing of the to-be-generated quintuple.

[0031] In a fifth aspect, an embodiment provides a data processing system for protecting privacy, the system comprising a plurality of participants;

[0032] Multiple participants, used to respectively obtain a quintuple secret share of a multiplication quintuple; the quintuple secret share is generated by the method described in the first aspect;

[0033] Multiple participants use their own five-tuple secret sharing to hide their own private data, obtain secret data sharing, and send it to other participants;

[0034] Multiple participants are used to determine the secret sharing of the product between the private data of multiple participants based on their own quintuple secret sharing and the secret data sharing sent by other participants.

[0035] In a sixth aspect, the embodiment provides a device for generating a multiplication quintuple, which is deployed in any participant, and includes:

[0036] The triplet determination module is configured to enable the multiple participants to respectively obtain: a first secret sharing of the triplet of the specified domain space in the participant through first data interaction with other participants based on secure multi-party computing;

[0037] The quintuple determination module is configured to sample the elements in the triplet from multiple equivalence classes in the specified domain space based on the first secret sharing owned by each party through the second data interaction with the participants based on secure multi-party computing, so that multiple participants respectively obtain: the second secret sharing of the remaining elements in the quintuple to be generated in the participant; the second secret sharing and the first secret sharing constitute the secret sharing of the quintuple to be generated.

[0038] In a seventh aspect, an embodiment provides a computer-readable storage medium having a computer program stored thereon, which, when executed in a computer, causes the computer to execute any one of the methods in the first to third aspects.

[0039] In an eighth aspect, an embodiment provides a computing device, comprising a memory and a processor, wherein the memory stores executable code, and when the processor executes the executable code, the method described in any one of the first to third aspects is implemented.

[0040] In the method and device provided in the embodiments of this specification, multiple participants interact with each other based on secure multi-party computing data, generate secret sharing of the remaining two elements of the specified domain space based on the triple of the specified domain space, and form the secret sharing of the quintuple through the secret sharing of the triple and the secret sharing of the two elements. This quintuple generation method can call the bucketing technology only once, has less overhead than the existing method, and can improve the generation efficiency of the multiplication quintuple. BRIEF DESCRIPTION OF THE DRAWINGS

[0041] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments of the present invention, and for ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.

[0042] Figure 1 A schematic diagram of an implementation scenario of an embodiment disclosed in this specification;

[0043] Figure 2 A schematic diagram of a flow chart of a method for generating a multiplication quintuple provided in an embodiment;

[0044] Figure 3 A schematic diagram comparing the bucketing overhead of the two solutions;

[0045] Figure 4 A flowchart of a data processing method for protecting privacy provided by an embodiment;

[0046] Figure 5 A schematic block diagram of a multiplication quintuple generation system provided in an embodiment;

[0047] Figure 6 A schematic block diagram of a data processing system provided in an embodiment;

[0048] Figure 7 A schematic block diagram of a device for generating a multiplication quintuple provided in an embodiment. DETAILED DESCRIPTION

[0049] The solution provided in this specification is described below in conjunction with the accompanying drawings.

[0050] Figure 1The present invention is a schematic diagram of an implementation scenario of an embodiment disclosed in this specification. It includes multiple participants such as participant A, participant B and participant C. Multiple participants can exchange data based on MPC, and generate multiplication quintuples through such data interaction. Based on data interaction between multiple participants, multiple participants can generate secret sharing of triples in a specified domain space. The secret sharing of triples of multiple participants can reconstruct a complete triple. Based on data interaction, multiple participants can generate secret sharing of quintuples based on secret sharing of triples. The secret sharing of quintuples of multiple participants can reconstruct a complete quintuple. The reconstruction operation may include operations such as addition. Figure 1 The multiple participants shown are only an example. In practical applications, the number of multiple participants can be 2 or more.

[0051] Multiple participants can communicate with each other through the Internet and jointly execute the pre-negotiated software protocol MPC. The MPC in this specification may include algorithms such as homomorphic encryption, secret sharing, zero-knowledge proof, oblivious transmission and obfuscated circuits. Among them, secret sharing (Secret Sharing) is also called secret sharing, which can divide a confidential information into multiple random fragments, each fragment is stored and managed by a different participant, and the original secret can only be restored when a certain number of participants cooperate. Among them, you can use <x>To represent the secret sharing of x. Secret sharing is a basic algorithm in MPC, which provides a method for secure information exchange without leaking each other's input. This algorithm mechanism is the cornerstone for building more complex secure multi-party computing protocols. Other secure multi-party computing algorithms can be executed based on the secret sharing algorithm.

[0052] In business processing, multiple parties need to perform data calculations based on MPC. In addition, multiple parties often need to use randomly generated multiplication quintuples to assist in data multiplication operations to ensure the security of the data calculation process. A multiplication quintuple is a secret sharing combination that contains 5 secret sharing values ​​and is used to assist in the multiplication operations of secure multi-party computing. There will be a large number of multiplication operations in the calculation process, requiring a large number of randomly generated multiplication quintuples. Therefore, the generation efficiency of the multiplication quintuple will significantly affect the data calculation efficiency between multiple parties.

[0053] In order to improve the efficiency of generating multiplication quintuples and reduce the computational overhead between multiple participants, an embodiment of this specification provides a method for generating multiplication quintuples. It should be noted that multiple participants perform data computing operations through their respective computing devices. The computing devices of multiple participants (i.e., the participant devices) are connected through network communication. Each computing device can be implemented by any device, equipment, platform, device cluster, etc. with computing and processing capabilities.

[0054] Combine the following Figure 2 The method of this embodiment is described in detail.

[0055] Figure 2 A flowchart of a method for generating a multiplication quintuple provided in an embodiment. The method is executed by multiple participants. For ease of understanding, the embodiment is described by taking participant A and participant B as an example. This embodiment specifically includes the following steps.

[0056] Step S210: Multiple participants interact with each other through first data based on secure multi-party computing, so that each of the multiple participants obtains: a first secret sharing of a triple (a, b, c) in a specified domain space among the participants.

[0057] The triple (a, b, c) includes a first element a, a second element b and a third element c, and the third element c is equal to the product of the first element a and the second element b, that is, c=ab.

[0058] The specified domain space can be a certain numerical domain space, which is a finite field. The specified domain space contains multiple elements. The specified domain space involves corresponding encoding and decoding processes. The specified domain space satisfies the following conditions: after encoding two vectors X and Y into elements M and N in the specified domain space respectively, if a multiplication Z=MN is performed on M and N, and Z is decoded back into a vector C, then it can be guaranteed that C is equal to the result of the point-by-point multiplication of X and Y, that is, for any i-th bit, C[i]=X[i]*Y[i]. Among them, C[i], X[i] and Y[i] represent the data of the i-th bit in C, X and Y respectively. In other words, this encoding and decoding process is used to embed elements in a small finite field into a larger finite field and maintain a certain degree of homomorphic properties. The multiplication operation based on the encoding and decoding process often uses randomly generated quintuples to implement this process.

[0059] In information theory, cryptography and communication systems, binary field is an important numerical field and algebraic operation field. The following takes binary field as an example to explain the specified field space. In the binary field space, the elements are m-bit binary numbers. This field space is usually called a binary finite field, also known as a Galois Field GF(2 m ). In this domain, the operations on elements are modulo 2, that is, the main operations are addition without carry and multiplication.

[0060] Through the first data interaction between the participants A and B, the participants A and B respectively obtain the first secret sharing ( , , <c> ).in,< / c> is the first secret sharing of the first element in the triple, is the first secret sharing of the second element in the triple, <c>It is the first secret sharing of the third element in the triple.

[0061] When multiple participants perform various data interactions based on MPC (including the first data interaction and subsequent other data interactions), the functions and status of the participants are the same, the operations performed and the types of data obtained are the same, but the values ​​of the data themselves are random and different, that is, the values ​​of the first secret sharing of the triplet in multiple participants are different. For example, the first secret sharing of the triplet (a, b, c) in participant A is (< / c> , , <c>) A Shared with the first secret in party B (< / c> , , <c>) B The values ​​of are different, the specific values ​​are randomly generated, and the first secret sharing of multiple participants can reconstruct the complete triple (a, b, c). It should be noted that although multiple secret sharing can reconstruct complete data, in the data processing process, it is generally not necessary to reconstruct the complete data, but to perform data processing based on secret sharing.

[0062] The technology for generating secret sharing of triples belongs to the existing technology in the field of MPC application. Therefore, for the step of first data interaction between multiple participants based on secure multi-party computing, so that multiple participants respectively obtain the first secret sharing of triples (a, b, c) in the specified domain space in the participant, a variety of existing technologies can be used.

[0063] In an application scenario, when it is necessary to calculate the "comparison" operation of two numbers, a common MPC approach is to describe the comparison operation as a Boolean logic circuit (composed of "exclusive OR gate" XOR and "AND gate" AND), and then use Boolean secret sharing technology to calculate. At present, an efficient approach is to package multiple Boolean secret shares into an arithmetic secret share through multiplication-friendly encoding RMFE packaging technology, and perform secure calculations on the arithmetic secret share.

[0064] RMFE (Reverse Multiplication-Friendly Embedding) is a technique used in cryptography and MPC that allows multiple values ​​to be encoded as polynomials so that these polynomials can be multiplied without leaking information about the original values. RMFE is an encoding method applied in binary domain space. Its input is a k-bit vector (each element is 0 or 1), and the output is an m-bit binary domain element through the mapping of the encoding function. After two k-bit vectors X and Y are encoded into binary domain elements M and N respectively, if a multiplication Z=MN is performed on M and N, and Z is decoded back to a vector C, then it can be guaranteed that C is equal to the point-by-point multiplication result of X and Y, that is, for all i (1≤i≤k), C[i]=X[i]*Y[i]. Among them, C[i], X[i] and Y[i] represent the i-th bit data in C, X and Y respectively. The subsequent content uses E to represent the encoding algorithm of RMFE and D to represent the decoding algorithm of RMFE. Among them, the space where the k-bit vector is located is a k-bit vector space. RMFE can convert elements between vector space and binary domain space. In addition, in order to increase security, m is usually set to be greater than k, that is, the number of bits in the binary domain space is greater than the dimension of the vector space. For example, the following settings can be selected: k = 12, m = 48. It is also possible to set k and m to other values.

[0065] In this embodiment, the first data interaction may include a first sub-data interaction and a second sub-data interaction. That is, step S210 may be performed using steps 1 and 2 below.

[0066] Step 1: Multiple participants interact with each other through the first sub-data based on MPC, and generate k Boolean secret sharing triplets of their own.

[0067] Any Boolean secret sharing triple can be understood as the secret sharing of the corresponding Boolean triple. A Boolean triple contains three elements, and the product of two of them is equal to the third element. After the first sub-data interaction based on MPC, each participant obtains the secret sharing of k Boolean triples. Boolean triples and Boolean secret sharing triples are not triples and their secret sharing in a specified domain space.

[0068] The Boolean secret sharing triplet owned by each participant is not a complete Boolean triplet, but a secret sharing of Boolean triples. Boolean Secret Sharing is a secret sharing scheme based on Boolean operations, i.e. logical operations such as AND, OR, and NOT. In this scheme, the secret is represented as a binary value, i.e. 0 or 1, and the shares are also binary values. In other words, the value of each element in the Boolean triple is 0 or 1, and the value of each element in the Boolean secret sharing triple is also 0 or 1. Boolean secret sharing has the characteristics of simplicity and high computational efficiency.

[0069] For any participant, the k Boolean secret sharing triplets it has can be expressed as

[0070] ( <x1> , <y1> , <z1> )、( <x2> , <y2> , <z2>),……,( <x k >, <y k >, <z k >) (1)

[0071] Among them, the i-th Boolean secret sharing triplet can be expressed as ( <x i >, <y i >, <z i >), i∈[1,k]. <x i >、 <y i > and <z i > are both 0 or 1.

[0072] The corresponding elements in the ith Boolean secret sharing triples of multiple participants can constitute a complete element in the Boolean triple. For example, the ith Boolean secret sharing triple of participant A ( <x i >, <y i >, <z i >) A , sharing triplet with the i-th Boolean secret of party B ( <x i >, <y i >, <z i >) B The elements at the same position in correspond to each other, and can reconstruct the complete i-th Boolean triple (x, y, z), where z = xy. The k Boolean secret sharing triplets owned by multiple participants can reconstruct k complete Boolean triplets.

[0073] The step of generating k Boolean secret sharing triplets owned by each of the multiple participants through the first sub-data interaction based on MPC can be implemented in a variety of existing ways. For example, the TinyOT technology can be used to generate k Boolean secret sharing triplets owned by each of the multiple participants, and the specific process will not be repeated here.

[0074] Step 2: Multiple participants interact with each other through the second sub-data based on secure multi-party computing, and package and encode the k Boolean secret sharing triplets owned by each party in a specified domain space, so that multiple participants can obtain the corresponding first secret sharing respectively.

[0075] The k Boolean secret sharing triplets owned by each participant are not elements of the specified domain space. Moreover, the k Boolean secret sharings owned by any participant are independent k Boolean secret sharings, not vectors in the k-dimensional vector space. The execution of step 2 enables the k Boolean secret sharings of each element in the Boolean triple to be packaged into a vector, and the vector is encoded into the specified domain space.

[0076] Any Boolean secret sharing triple includes Boolean secret sharing of three elements, so the second sub-data interaction can be performed using the following steps 2-1 and 2-2.

[0077] Step 2-1: Any participant A, for any element x among the three elements (x, y, z), shares k Boolean secrets of the element x <x1> , <x2>,…,as well as <x k >Constitute the Boolean secret sharing of the vector corresponding to the element x.

[0078] Each of the k Boolean secret shares of element x is an independent value. When the k Boolean secret shares of element x are used to form the vector corresponding to element x, the k Boolean secret shares of element x are actually constructed into a whole vector. The vector corresponding to element x can be constructed as (x1, x2, ..., x k ), the secret sharing of this vector among participant A is called Boolean secret sharing and can be expressed as ( <x1> , <x2>, …, <x k >). Similarly, participant A can construct the vector of element y as (y1, y2, …, y k ), the Boolean secret sharing of this vector in participant A can be expressed as ( <y1> , <y2>, …, <y k >). Participant A can construct a vector of element z as (z1, z2, …, z k ), the Boolean secret sharing of this vector in participant A can be expressed as ( <z1> , <z2>, …, <z k >).

[0079] For other participants, such as participant B, the k Boolean secret sharings of each of the three elements (x, y, z) can also constitute the Boolean secret sharing of the vector corresponding to the element. The expression of the vector and the Boolean secret sharing of the vector is the same as that of participant A, and will not be listed in detail here.

[0080] Multiple participants can independently share k Boolean secrets of a certain element to form a Boolean secret sharing of a vector corresponding to the element x.

[0081] In a vector composed of k Boolean secret sharings, the vector is k-dimensional, and the value of each element of the vector is 0 or 1, so it is called Boolean secret sharing of the vector.

[0082] After the data processing in step 2-1, each of the three elements (x, y, z) contained in the Boolean secret sharing triplet corresponds to a vector, thus obtaining three vectors corresponding to the three elements. Multiple participants have the Boolean secret sharing of these three vectors, namely

[0083] ( <x1> , <x2> ,…,<x k >)、( <y1> , <y2>, …, <y k >) and ( <z1> , <z2>, …, <z k >) (2)

[0085] Step 2-2, multiple participants interact with each other through the second sub-data based on secure multi-party computing, and package and encode the Boolean secret sharing of the vectors corresponding to the three elements (x, y, z) owned by each party in the specified domain space, so that multiple participants can obtain the first secret sharing ( < / z1> < / y1> < / x2> < / x1> < / z1> < / y1> < / x1> < / x1> < / y2> < / x2> < / z1> < / y1> < / x1> < / c> 、 、 <c>).

[0086] The vectors corresponding to the three elements (x, y, z) are vectors in the k-dimensional vector space, and the k elements contained in each vector are independent of each other. When packing and encoding, the k elements contained in each vector are packed and encoded, and the k elements in the vector are converted into an element in the specified domain space. In this way, the three vectors corresponding to the three elements (x, y, z) can be converted into an element in the specified domain space respectively, and a total of three elements are obtained, represented as (a, b, c). That is, the Boolean secret sharing of the first vector (vector 1) among multiple participants ( <x1> , <x2>, …, <x k >) is converted into the first secret sharing of element a in the triple (a, b, c), the Boolean secret sharing of the second vector (vector 2) among multiple parties ( <y1> , <y2>, …, <y k >) is converted into the first secret sharing of element b in the triple (a, b, c), the Boolean secret sharing of the third vector (vector3) among multiple parties ( <z1> , <z2>, …, <z k >) is converted into the first secret sharing of element c in the triple (a, b, c).

[0087] In the specific implementation of step 2-2 above, the specified domain space may be a space containing multiple m-bit binary domain elements, and the encoding algorithm may be RMFE. The RMFE packaging technology may be used to implement RMFE secret sharing conversion, that is, converting k Boolean secret sharings into one RMFE secret sharing.

[0088] This conversion is equivalent to sharing k Boolean secrets owned by multiple parties ( <x1> , <x2>, …, <x k >) Use RMFE to package it into a single arithmetic secret sharing < / x1> < / z1> < / y1> < / x1> < / c> , and the decoding result of a is D(a)=(x1, x2, ..., x k ), and a=E(x1,x2,…,x k ), a is a secret shared by multiple parties The complete data after reconstruction.

[0089] This conversion is also equivalent to sharing k Boolean secrets owned by multiple participants ( <y1> , <y2>, …, <y k >) Use RMFE to package it into a single arithmetic secret sharing , and the decoding result of b is D(b)=(y1, y2, ..., y k ), and b=E(y1,y2,…,y k ), b is a secret shared by multiple parties The complete data after reconstruction.

[0090] This conversion is also equivalent to sharing k Boolean secrets owned by multiple participants ( <z1> , <z2>, …, <z k >) Use RMFE to package it into a single arithmetic secret sharing <c>, and the decoding result of c is D(c)=(z1, z2, ..., z k ), and c=E(z1,z2,…,z k ), c is a secret shared by multiple parties <c>The complete data after reconstruction.

[0091] Table 1 shows various data related to the first secret sharing of k Boolean secret sharing triplets of any participant and the converted triplets of the specified domain space.

[0092]

[0093] Among them, the left column is the various secret shares obtained by a participant, and the right column is the corresponding complete data and the relationship between the data.< / c> < / c> < / z1> < / y1> 、 and <c>Each is an m-bit binary field element.

[0094] It should be noted that the values ​​without angle brackets usually represent complete values, not secret sharing. In the embodiments of this specification, the relationship between complete values ​​is only used for theoretical analysis and will not be used for actual data processing. The corresponding secret sharing is used in actual data processing.

[0095] For step S210, the designated domain space can adopt a variety of finite domains. In addition, the first data interaction can be implemented in a variety of ways, as long as multiple participants can obtain the first secret sharing of the triple (a, b, c) of the designated domain space. Step 1 and step 2 are an implementation method for implementing the first data interaction in a Boolean logic circuit-related scenario. In practical applications, step S210 can also be performed in other scenarios using implementation methods similar to step 1 and step 2, which will not be described in detail.

[0096] When executing step 2, step 2-1 and step 2-2 are one way to implement step 2. In practical applications, through MPC-based data interaction, the k Boolean secret sharing triplets owned by each party are packaged and encoded in a specified domain space, so that multiple participants can obtain the first secret sharing respectively. This can be implemented through a black box, and step 2 is the function of the black box. The input of the black box is the k Boolean secret sharing triplets of multiple participants, and the output is the first secret sharing of the triplets in the specified domain space. The implementation inside the black box can include many ways.

[0097] Step S220, through the second data interaction based on secure multi-party computing, multiple participants sample the elements in the triple (a, b, c) from multiple equivalence classes of the element in the specified domain space based on the first secret sharing owned by each party, so that multiple participants respectively obtain: the second secret sharing of the remaining elements in the to-be-generated five-tuple in the participant. The above-mentioned element can be any one of the triple (a, b, c). The sampling can be random sampling or sampling in a certain order.

[0098] Among them, the second secret sharing and the first secret sharing constitute the secret sharing of the five-tuple to be generated. If the first secret sharing of three elements (a, b, c) is already available among multiple participants, and the secret sharing of two elements (d, e) is still missing, the five-tuple (a, b, c, d, e) to be generated can be formed. Then, two elements can be selected from the triple (a, b, c), and for each element, based on the first secret sharing owned by each party, the element can be sampled from multiple equivalence classes in the specified domain space, so that the secret sharing of the two missing elements (d, e) can be obtained.

[0099] When selecting an element from the first element a, the second element b and the third element c included in the triple (a, b, c), the first element a and the second element b can be selected, or the first element a and the third element c or the second element b and the third element c can be selected. The following takes the selection of the first element a and the second element b as an example to illustrate how to sample from the equivalence class of an element. Other selection methods are similar and will not be described in detail.

[0100] Through the second data interaction based on secure multi-party computing, multiple participants can share the first secret of the first element a owned by each participant.< / c> , sampling from multiple equivalence classes of the first element a in the specified domain space, and obtaining the corresponding secret sharing of the fourth element d in the to-be-generated five-tuple (a, b, c, d, e) in multiple participants <d>, as the second secret sharing of the fourth element d <d>.

[0101] Through the second data interaction based on secure multi-party computing, multiple participants can share the first secret of the second element b owned by each participant. , sampling from multiple equivalence classes of the second element b in the specified domain space, and obtaining the corresponding secret sharing of the fifth element e in the to-be-generated five-tuple (a, b, c, d, e) in multiple participants <e>, as the second secret sharing of the fifth element e <e>.

[0102] An equivalence class refers to when multiple elements in a specified domain space are decoded, if the same vector can be obtained, then the multiple elements are called an equivalence class. That is, multiple binary domain elements in a specified domain space that can be decoded to the same vector can be called an equivalence class. That is, there is a relationship

[0103] D(d)=D(a),D(e)=D(b) (3)

[0104] From the above content, it can be seen that through RMFE encoding, a k-bit vector can be encoded into an m-bit binary domain element. In RMFE, the encoded domain space is much larger than the vector space before encoding, so different binary domain elements will be decoded to the same vector. In other words, multiple elements in the specified domain space correspond to a vector in the vector space. Through the RMFE encoding function, each vector can be uniquely encoded into a binary domain element. Through the RMFE decoding function, a binary domain element can be uniquely decoded into a vector.

[0105] When the encoding function and decoding function corresponding to the specified domain space are known, given the first secret sharing of a certain element of multiple participants, multiple equivalence classes of the element in the specified domain space can be determined. Step S220 can be implemented in the following way:

[0106] Through the second data interaction based on MPC, multiple participants respectively share the secret of the vector corresponding to the element owned by each party, sample from multiple original images of the vector in the specified domain space, so that multiple participants respectively obtain new secret sharing, and the new secret sharing is used as the second secret sharing of the remaining elements.

[0107] This includes the case where the element is the first element a, the second element b, or the third element c in the triple (a, b, c). The first element a and the second element b are still selected as an example for explanation.

[0108] Through the second data interaction based on secure multi-party computing, multiple participants can share the secret of the vector corresponding to the first element a owned by each participant ( <x1> , <x2>, …, <x k >), sample from multiple original images of the vector in the specified domain space, so that multiple participants obtain new secret shares respectively, which serve as the second secret shares corresponding to the fourth element d in the to-be-generated five-tuple (a, b, c, d, e) in multiple participants respectively <d>.

[0109] Through the second data interaction based on secure multi-party computing, multiple participants can share the secret of the vector corresponding to the second element b owned by each participant ( <y1> , <y2>, …, <y k >), sample from multiple original images of the vector in the specified domain space, so that multiple participants obtain new secret shares respectively, which serve as the second secret shares corresponding to the fifth element e in the five-tuple (a, b, c, d, e) to be generated in multiple participants <e>.

[0110] The secret sharing of the vector can be obtained by decoding the first secret sharing of the element. The first secret sharing of the element is the encoded data, and by decoding the first secret sharing of the element, the secret sharing of the vector corresponding to the element can be obtained. For example, the first secret sharing of the first element a< / e> < / y1> < / d> < / x1> < / e> < / e> < / d> < / d> By decoding, we can get the secret sharing of the vector ( <x1> , <x2>, …, <x k >); first secret sharing of the second element b By decoding, we can get the secret sharing of the vector ( <y1> , <y2>, …, <y k >). Multiple participants can independently decode the first secret sharing of the element to obtain the secret sharing of the vector.

[0111] It should be noted that the secret sharing of the vector can be obtained by decoding the first secret sharing of the element, or can be directly obtained from step S210 without decoding. In an implementation of step S210, the participant can use the k Boolean secret sharings of the element generated by itself to construct the Boolean secret sharing of the vector corresponding to the element.

[0112] Through the encoding function, the vector can be encoded into the specified domain space to obtain the first secret sharing of the element. Through the decoding function, multiple first secret sharings of the element (i.e., binary domain elements) can be decoded into the vector space to obtain the secret sharing of the vectors of multiple participants. In decoding, the vector belongs to the "image" and the binary domain elements in the specified domain space belong to the "pre-image".

[0113] When executing step S220, based on the secret sharing of the vector corresponding to the element owned by each party, sampling from multiple original images of the vector in the specified domain space is only one feasible implementation method. Step S220 can also be implemented in other ways, for example, by mathematical solution, directly based on the first secret sharing of the element owned by each party, sampling from multiple equivalence classes of the element in the specified domain space.

[0114] The sampling process is explained below from the perspective of the principles of encoding and decoding.

[0115] In RMFE, the specified domain space is an m-bit binary domain space, and the vector space is a k-bit binary number space. There is a mapping relationship between the elements of the two spaces, which can be expressed as:

[0116] f→(f(β1), f(β2),…, f(β k )) (4)

[0117] Among them, f on the left side of the above formula is a binary domain element, which can be expressed as a polynomial including variables and 2k-1 coefficients. The right side of the above formula is a k-dimensional vector, f(β1) and f(β2) are elements in the vector, → represents the mapping function (including decoding function and encoding function). β1, and β2 are fixed parameters in the mapping function.

[0118] When the variables in the polynomial take the k elements in the vector, when the vector on the right is determined, the k elements of the vector are the k estimates of f. The k estimates are when the variables take β1~β k The value of f at time . Based on the k estimates, the k coefficients of f can be randomly fixed, and the remaining k-1 coefficients can be determined by interpolation or other methods, so as to obtain f, and thus obtain a sample.

[0119] The concept of data interaction is further explained below. Data interactions such as the first data interaction and the second data interaction refer to data interaction methods between multiple participants. When the input data is different, the same data interaction method can achieve the same function. Therefore, the first data interaction and the second data interaction can be understood as corresponding to different functions respectively.

[0120] For the five-tuple (a, b, c, d, e) to be generated, the elements a, b and c are obtained by step S210, that is, the elements a, b and c are elements in the triple (a, b, c), where c = ab. The elements d and e are obtained by step S220, and the secret sharing of the elements d and e is obtained by sampling the equivalence classes of the elements in the triple, and the elements d and e have a relationship with the elements in the triple. For example, the following relationship exists between the elements in the five-tuple to be generated:

[0121] a=E(D(a)), b=E(D(b)), c=E(D(a) * D(b)), D(d)=D(a), D(e)=D(b) (5)

[0122] The embodiment is described below with reference to a specific example.

[0123] Generate TinyOT multiplication triples. In practical applications, in order to improve security and reduce computational overhead, each party generates (N+s)*k TinyOT triplets (i.e., Boolean secret sharing triplets) through step 1 ( <x i >, <y i >, <z i ), where i = 1, 2, ..., (N + s) * k. The elements in the triplet are either 0 or 1. N is the number of quintuples to be generated, which can be set to a relatively large value, such as 100,000. s is a security-related setting parameter, for example, 40 can generally be selected. The s group of quintuples is used as noise to protect the real quintuple. Each participant generates the following series of triples ( <x1> , <y1> , <z1> )、( <x2> , <y2> , <z2>),……,( <x (N+s)*k >, <y (N+s)*k >, <z (N+s)*k >).

[0124] Execute RMFE secret sharing conversion. Multiple participants divide the above series of triplets into small segments according to the number of triplets k, and each small segment is k Boolean secret sharing triplets. For each small segment, each party generates RMFE triples through step 2 ( i >, i >, <c i >), that is, a triplet specifying the domain space, where i = 1, ..., N + s.

[0125] Randomly sample the RMFE secret to share the original image of a and b. Multiple participants execute step S220 and input the obtained elements i >, output the corresponding random pre-image secret sharing <d i >, so that D(d i )=D(a i ); Input the obtained element i >, output the corresponding random pre-image secret sharing <e i >, so that D(e i )=D(b i ).element <d i > and <e i >With i >、 i > and <c i > constitutes the quintuple to be generated. For each i from 1 to N+s, N+s quintuples can be obtained, and N quintuples are selected from the N+s quintuples.

[0126] Output N quintuples ( i >, i >, <c i >, <d i >, <e i >), where i=1,…,N.

[0127] It should be noted that in the above process, the most expensive part is step 1 in step S210, where multiple participants jointly generate k Boolean secret sharing triplets through the first sub-data interaction based on MPC. This step can be performed in an existing manner. Usually, the execution of step 1 will introduce an overhead expansion factor B brought by bucketing technology. Bucketing is a data segmentation technology that randomly divides n*B elements into n buckets, each bucket containing B elements.

[0128] ​​​​​​​​Step 2 and step S220 executed based on the triplet do not need to use the bucketing technology. Therefore, the solution of this embodiment calls the bucketing technology at most once, which can reduce the overhead caused by bucketing.

[0129] < / y2> < / x2> < / z1> < / y1> < / x1> < / y1> < / x1> Figure 3 A schematic diagram comparing the bucketing overhead of the two schemes. The flowchart on the left includes the steps of generating TinyOT multiplication triples, performing RMFE secret sharing transformation, and randomly sampling the original image of RMFE secret sharing. In this process, the bucketing technology is introduced only once when generating TinyOT multiplication triples. Figure 3 ×B is used to represent it.

[0130] In a similar scheme, multiple parties can jointly generate the RMFE secret sharing tuple ( , <c>)and( , <d>), where c = E(D(a)), d = E(D(b)). Based on this tuple, by calling a complex "multiplication" protocol, we can calculate <e>, and e=c*d. In this scheme, calculate <e> The overhead is huge, and the bucketing technology needs to be called three times.< / e> < / e> < / d> < / c> Figure 3 As shown in the flowchart on the right, it includes the steps of constructing a binary group, bucket sacrifice, bucket combination (a) and bucket combination (b). Among them, the last three steps are all calculated <e>, the bucketing technology was called three times in total.

[0131] Assuming that the bucket size parameter for each bucketing is B, if N quintuples need to be generated, then a similar solution needs to generate approximately 2*N*B 3 That is to say, each bucketing is equivalent to multiplying the cost of this algorithm by a factor of B. In actual systems, B is usually 3, 4, or 5, so B 3 Equivalent to 27 or 64.

[0132] The solution of the embodiment of this specification only requires one bucketing technology, which can be used to 3 The overhead factor is reduced to B, improving the performance by about an order of magnitude.

[0133] The above content is an explanation of the method for generating a multiplication quintuple in MPC. Next, the process of using the multiplication quintuple to perform data processing, that is, performing multiplication operations between multiple devices, will be explained.

[0134] Figure 4 The present invention provides a flowchart of a privacy protection data processing method provided in an embodiment. The method is performed by multiple participants. For ease of understanding, the embodiment is described by taking participant A and participant B as examples. The method of this embodiment specifically includes the following steps.

[0135] Step S410: Multiple participants obtain the five-tuple secret sharing of the multiplication five-tuple respectively. For example, the five-tuple secret sharing of the multiplication five-tuple obtained by participant A is ( A , A , <c> A , <d> A , <e> A ), the multiplication quintuple secret shared by participant B is (< / e> < / d> < / c> B , B , <c> B , <d> B , <e> B ). Among them, there exists a relationship shown in formula (5) between each element a~e.

[0136] The five-tuple secret sharing of multiple participants is achieved through< / e> < / d> < / c> Figure 2 The specific generation process can be found in Figure 2 The relevant instructions will not be repeated here.

[0137] In step S420, multiple participants use their own five-tuple secret sharing to hide their own private data, obtain secret data sharing, and send the secret data sharing to other participants.

[0138] For example, the private data of Party A includes <x> A and <y> A , the private data of participant B includes <x> B and <y> B .

[0139] When using quintuple secret sharing to hide each other's private data, the quintuple secret sharing and private data can be pre-calculated or superimposed. For example, participant A can calculate <m> A = <x> A - A , <n> A = <y> A - A To achieve private data <x> A and <y> A hidden; Party A can calculate <m> B = <x> B -< / x> < / m> < / y> < / x> < / y> < / n> B , <n> B = <y> B - B To achieve private data <x> B and <y> B of hiding.

[0140] Secret data sharing is hidden data that is not private data and can be sent to other participants. Participant A can share secret data <m> A and <n> A Sent to participant B, who can share the secret data <m> B and <n> B Sent to party A without leaking private data.

[0141] Step S430: Multiple participants determine the secret sharing of the product of the private data of the multiple participants based on their own five-tuple secret sharing and the secret data sharing sent by other participants.

[0142] Specifically, when this step is executed, the secret sharing of the product between the private data of multiple participants can be determined in combination with the formula verified by reasoning. The reasoning verification can be performed based on the relationship between the elements of the quintuple.

[0143] For example, participant A can calculate m= <m> A - <m> B ,n= <n> A - <n> B ,as well as <z> A =E(D(m)) <e> A +E(D(n)) <d> A +E(D(m))E(D(n))+ <c> A .

[0144] Participant B can calculate m = <m> A - <m> B ,n= <n> A - <n> B ,as well as <z> B =E(D(m)) <e> B +E(D(n)) <d> B +E(D(m))E(D(n))+ <c> B . .

[0145] in, <z> A + <z> B =x*y. x is <x> A and <x> B After reconstruction, the complete data, y is <y> A and <y> B The complete data after reconstruction.

[0146] In this embodiment, step S410 can generate quintuples more efficiently, thereby shortening the entire data processing process and improving the overall data processing efficiency.

[0147] In this specification, the word "first" in terms such as first data interaction, first secret sharing and first element, as well as the corresponding "second" (if any) in the text, are merely for the convenience of distinction and description and do not have any limiting meaning.

[0148] The foregoing describes certain embodiments of the present specification, and other embodiments are within the scope of the appended claims. In some cases, the actions or steps described in the claims may be performed in an order different from that in the embodiments, and the desired results may still be achieved. In addition, the processes depicted in the accompanying drawings do not necessarily have to be performed in the specific order or sequential order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.

[0149] < / y> < / y> < / x> < / x> < / z> < / z> < / c> < / d> < / e> < / z> < / n> < / n> < / m> < / m> < / c> < / d> < / e> < / z> < / n> < / n> < / m> < / m> < / n> < / m> < / n> < / m> < / y> < / x> < / y> < / n> Figure 5 Schematic block diagram of a multiplication quintuple generation system provided in an embodiment. The system 500 includes multiple participants such as participant 510, participant 520 and participant 530. The system 500 and Figure 2 The illustrated method embodiments are relative.

[0150] The method is used for exchanging first data based on secure multi-party computing between multiple participants, so that the multiple participants respectively obtain: a first secret sharing of a triplet of a specified domain space among the participants;

[0151] The method is used for exchanging second data based on secure multi-party computing between multiple parties, and for sampling elements in the triplet from multiple equivalence classes in the specified domain space based on the first secret sharing owned by each party, so that the multiple parties respectively obtain: the second secret sharing of the remaining elements in the to-be-generated quintuple in the party; the second secret sharing and the first secret sharing constitute the secret sharing of the to-be-generated quintuple.

[0152] In one embodiment, the first data interaction includes: multiple participants generate k Boolean secret sharing triplets owned by each party through a first sub-data interaction based on secure multi-party computing; multiple participants package and encode the k Boolean secret sharing triplets owned by each party in the specified domain space through a second sub-data interaction based on secure multi-party computing, so that multiple participants respectively obtain the corresponding first secret sharing.

[0153] In one embodiment, any Boolean secret sharing triple includes Boolean secret sharing of three elements. The second sub-data interaction includes: any one of the three elements, for any one of the three elements, uses k Boolean secret sharings of the element to form the Boolean secret sharing of the vector corresponding to the element; through the second sub-data interaction based on secure multi-party computing, multiple participants package and encode the Boolean secret sharing of the vector corresponding to the three elements owned by each party in the specified domain space, so that multiple participants respectively obtain the first secret sharing corresponding to the three elements.

[0154] In one embodiment, the designated domain space is a space containing a plurality of m-bit binary domain elements, and the encoding includes an operation based on a multiplication-friendly encoding RMFE.

[0155] In one embodiment, the second data interaction includes: a plurality of participants, through a second data interaction based on secure multi-party computing, sample from a plurality of original images of the vector in the specified domain space based on the secret sharing of the vector corresponding to the element owned by each party, so that the plurality of participants obtain new secret sharing respectively, and the new secret sharing is used as the second secret sharing of the remaining elements. The secret sharing of the vector can be obtained by decoding the first secret sharing of the element.

[0156] In one embodiment, the triplet includes a first element, a second element, and a third element, and the third element is equal to the product of the first element and the second element. The second data interaction includes: sampling from the first element in multiple equivalence classes in the specified domain space, obtaining the secret sharing corresponding to the fourth element in the to-be-generated five-tuple in multiple participants, as the second secret sharing of the fourth element; sampling from the second element in multiple equivalence classes in the specified domain space, obtaining the secret sharing corresponding to the fifth element in the to-be-generated five-tuple in multiple participants, as the second secret sharing of the fifth element.

[0157] Figure 6 600 includes multiple participants such as participant 610, participant 620, and participant 630. Figure 4 The illustrated method embodiments are relative.

[0158] Multiple participants are used to obtain the five-tuple secret sharing of the multiplication five-tuple respectively. The five-tuple secret sharing is achieved by Figure 2 The method generation of the illustrated embodiment;

[0159] Multiple participants use their own five-tuple secret sharing to hide their own private data, obtain secret data sharing, and send it to other participants;

[0160] Multiple participants are used to determine the secret sharing of the product between the private data of multiple participants based on their own quintuple secret sharing and the secret data sharing sent by other participants.

[0161] The above-mentioned system embodiments correspond to the method embodiments. For specific descriptions, please refer to the description of the method embodiments, which will not be repeated here. The system embodiments have the same technical effects as the corresponding method embodiments. For specific descriptions, please refer to the corresponding method embodiments.

[0162] Figure 7 A schematic block diagram of a device for generating a multiplication quintuple provided in an embodiment. Figure 2 The device 700 is deployed in any participant, and includes:

[0163] The triplet determination module 710 is configured to enable multiple participants to respectively obtain: a first secret sharing of a triplet of a specified domain space in the participant through first data interaction with other participants based on secure multi-party computing;

[0164] The quintuple determination module 720 is configured to sample the elements in the triplet from multiple equivalence classes in the specified domain space based on the first secret sharing owned by each party through the second data interaction with the participants based on secure multi-party computing, so that multiple participants respectively obtain: the second secret sharing of the remaining elements in the quintuple to be generated in the participant; the second secret sharing and the first secret sharing constitute the secret sharing of the quintuple to be generated.

[0165] In one implementation, the triple determination module 710 includes:

[0166] The first interaction submodule 711 is configured to generate k Boolean secret sharing triplets owned by each party through a first sub-data interaction based on secure multi-party computing among multiple participants;

[0167] The second interaction submodule 712 is configured to package and encode k Boolean secret sharing triplets owned by each party in the specified domain space through the second sub-data interaction between multiple participants based on secure multi-party computing, so that multiple participants respectively obtain the corresponding first secret sharing.

[0168] In one embodiment, any Boolean secret sharing triple includes Boolean secret sharing of three elements. The second interaction submodule 712 is specifically configured as follows: any participant, for any one of the three elements, uses the k Boolean secret sharings of the element to form the Boolean secret sharing of the vector corresponding to the element; multiple participants interact with each other through the second sub-data based on secure multi-party computing, and package and encode the Boolean secret sharing of the vector corresponding to the three elements owned by each party in the specified domain space, so that multiple participants respectively obtain the first secret sharing corresponding to the three elements.

[0169] In one embodiment, the designated domain space is a space containing a plurality of m-bit binary domain elements, and the encoding includes an operation based on a multiplication-friendly encoding RMFE.

[0170] In one embodiment, the quintuple determination module 720 is specifically configured as follows: multiple participants interact with each other through second data based on secure multi-party computing, and sample from multiple original images of the vector in the specified domain space based on the secret sharing of the vector corresponding to the element owned by each party, so that multiple participants obtain new secret sharing respectively, and the new secret sharing is used as the second secret sharing of the remaining elements. The secret sharing of the vector can be obtained by decoding the first secret sharing of the element.

[0171] In one embodiment, the triplet includes a first element, a second element, and a third element, and the third element is equal to the product of the first element and the second element. The five-tuple determination module 720 is specifically configured to: sample the first element from multiple equivalence classes in the specified domain space, obtain the secret sharing corresponding to the fourth element in the five-tuple to be generated in multiple participants, as the second secret sharing of the fourth element; sample the second element from multiple equivalence classes in the specified domain space, obtain the secret sharing corresponding to the fifth element in the five-tuple to be generated in multiple participants, as the second secret sharing of the fifth element.

[0172] The above device embodiments correspond to the method embodiments. For specific descriptions, please refer to the description of the method embodiments, which will not be repeated here. The device embodiments are obtained based on the corresponding method embodiments and have the same technical effects as the corresponding method embodiments. For specific descriptions, please refer to the corresponding method embodiments.

[0173] The present specification also provides a computer-readable storage medium having a computer program stored thereon. When the computer program is executed in a computer, the computer is caused to execute Figures 1 to 4 Any of the methods described above.

[0174] The embodiment of the present specification also provides a computing device, including a memory and a processor, wherein the memory stores an executable code, and when the processor executes the executable code, Figures 1 to 4 Any of the methods described above.

[0175] Each embodiment in this specification is described in a progressive manner, and the same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the storage medium and computing device embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiments.

[0176] Those skilled in the art should be aware that in one or more of the above examples, the functions described in the embodiments of the present invention may be implemented using hardware, software, firmware, or any combination thereof. When implemented using software, these functions may be stored in a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium.

[0177] The specific implementation methods described above further describe the purpose, technical solutions and beneficial effects of the embodiments of the present invention in detail. It should be understood that the above description is only a specific implementation method of the embodiments of the present invention and is not intended to limit the scope of protection of the present invention. Any modification, equivalent replacement, improvement, etc. made on the basis of the technical solution of the present invention shall be included in the scope of protection of the present invention. < / x> < / m> < / y> < / x> < / y> < / x> < / e> < / x>

Claims

1. A method for generating a multiplication quintuple, performed by multiple parties, comprising: The multiple participants interact with each other through first data based on secure multi-party computing, so that the multiple participants respectively obtain: a first secret sharing of a triplet of a specified domain space among the participants; Through the second data interaction based on secure multi-party computing, multiple participants sample the elements in the triplet from multiple equivalence classes in the specified domain space based on the first secret sharing owned by each party, so that the multiple participants respectively obtain: the second secret sharing of the remaining elements in the to-be-generated quintuple in the participant; the second secret sharing and the first secret sharing constitute the secret sharing of the quintuple to be generated.

2. The method according to claim 1, wherein the first data interaction comprises: Multiple participants interact with each other through the first sub-data based on secure multi-party computing, and generate k Boolean secret sharing triplets owned by each party; Through the second sub-data interaction based on secure multi-party computing, multiple participants package and encode k Boolean secret sharing triplets owned by each party in the specified domain space, so that multiple participants respectively obtain the corresponding first secret sharing.

3. According to the method of claim 2, any Boolean secret sharing triplet includes a Boolean secret sharing of three elements; the second sub-data interaction includes: Any participant, for any one of the three elements, uses k Boolean secret shares of the element to form a Boolean secret share of the vector corresponding to the element; Through the second sub-data interaction based on secure multi-party computing, multiple participants package and encode the Boolean secret sharing of the vectors corresponding to the three elements owned by each party in the specified domain space, so that multiple participants respectively obtain the first secret sharing corresponding to the three elements.

4. According to the method of claim 3, the specified domain space is a space containing multiple m-bit binary domain elements, and the encoding includes an operation based on a multiplication-friendly encoding RMFE.

5. The method according to claim 1, wherein the second data interaction comprises: The multiple participants interact with each other through a second data exchange based on secure multi-party computing, and sample from multiple original images of the vector in the specified domain space based on the secret sharing of the vector corresponding to the element owned by each party, so that the multiple participants obtain new secret sharing respectively, and the new secret sharing is used as the second secret sharing of the remaining elements; The secret sharing of the vector can be obtained by decoding the first secret sharing of the element.

6. The method according to claim 1, wherein the triplet includes a first element, a second element and a third element, and the third element is equal to the product of the first element and the second element; and the step of sampling from the elements in a plurality of equivalence classes in the specified domain space comprises: Sampling the first element from a plurality of equivalence classes in the specified domain space, obtaining secret shares corresponding to the fourth element in the to-be-generated quintuple in a plurality of participants, as second secret shares of the fourth element; The second element is sampled from multiple equivalence classes in the specified domain space to obtain secret shares corresponding to the fifth element in the to-be-generated quintuple in multiple participants, as the second secret share of the fifth element.

7. A privacy-preserving data processing method, performed by multiple parties, comprising: Multiple participants respectively obtain a five-tuple secret share of the multiplication five-tuple; the five-tuple secret share is generated by the method of claim 1; Multiple participants use their own five-tuple secret sharing to hide their own private data, obtain secret data sharing, and send it to other participants; Multiple participants determine the secret sharing of the product of the private data of multiple participants based on their own five-tuple secret sharing and the secret data sharing sent by other participants.

8. A method for generating a multiplication quintuple, performed by any one of the participants, comprising: By interacting with other participants based on secure multi-party computing, the multiple participants can respectively obtain: a first secret sharing of a triplet of a specified domain space among the participants; Through the second data interaction based on secure multi-party computing with the participants, for the elements in the triplet, based on the first secret sharing owned by each party, the elements are sampled from multiple equivalence classes in the specified domain space, so that multiple participants respectively obtain: the second secret sharing of the remaining elements in the quintuple to be generated in the participant; the second secret sharing and the first secret sharing constitute the secret sharing of the quintuple to be generated.

9. A system for generating a multiplication quintuple, the system comprising a plurality of participants; The method is used for exchanging first data based on secure multi-party computing between multiple participants, so that the multiple participants respectively obtain: a first secret sharing of a triplet of a specified domain space among the participants; The method is used for exchanging second data based on secure multi-party computing between multiple parties, and for sampling elements in the triplet from multiple equivalence classes in the specified domain space based on the first secret sharing owned by each party, so that the multiple parties respectively obtain: the second secret sharing of the remaining elements in the to-be-generated quintuple in the party; the second secret sharing and the first secret sharing constitute the secret sharing of the to-be-generated quintuple.

10. A data processing system for protecting privacy, the system comprising a plurality of participants; A plurality of participants, for respectively obtaining a quintuple secret share of a multiplication quintuple; the quintuple secret share is generated by the method of claim 1; Multiple participants use their own five-tuple secret sharing to hide their own private data, obtain secret data sharing, and send it to other participants; Multiple participants are used to determine the secret sharing of the product between the private data of multiple participants based on their own quintuple secret sharing and the secret data sharing sent by other participants.

11. A device for generating a multiplication quintuple, deployed in any participant, comprising: The triplet determination module is configured to enable the multiple participants to respectively obtain: a first secret sharing of the triplet of the specified domain space in the participant through first data interaction with other participants based on secure multi-party computing; The quintuple determination module is configured to sample the elements in the triplet from multiple equivalence classes in the specified domain space based on the first secret sharing owned by each party through the second data interaction with the participants based on secure multi-party computing, so that multiple participants respectively obtain: the second secret sharing of the remaining elements in the quintuple to be generated in the participant; the second secret sharing and the first secret sharing constitute the secret sharing of the quintuple to be generated.

12. A computer-readable storage medium having a computer program stored thereon, which, when executed in a computer, causes the computer to execute the method according to any one of claims 1 to 8.

13. A computing device, comprising a memory and a processor, wherein the memory stores executable code, and when the processor executes the executable code, the method according to any one of claims 1 to 8 is implemented.

Citation Information

Patent Citations

  • Secret sharing method, system and device and storage medium

    CN114785491A

  • Verifiable, secret shuffles of encrypted data, such as elgamal encrypted data for secure multi-authority elections

    EP1633077A2