Data processing method and apparatus for secure computation, medium, device and product
By converting the feature sharding problem in multi-party secure computing into a polynomial evaluation problem and splitting the evaluation process into two sub-processes: reduction and evaluation, the problem of excessive feature sharding communication volume is solved, and efficient data processing and security protection are achieved in scenarios such as model training and SQL queries.
Patent Information
- Application Number
- PCT/CN2024/133536
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-26
- Filing Date
- 2024-11-21
- Publication Date
- 2025-10-02
AI Technical Summary
In multi-party secure computing, the communication volume is too large during feature sharding, especially when the data scale of the large data party is large, resulting in huge communication overhead.
The feature slicing problem is converted into a polynomial evaluation problem, and the polynomial evaluation process is divided into two sub-processes: degree reduction and evaluation. By reducing the degree of the polynomial, the degree of the polynomial is reduced from O(N) level to O(n) level, and then evaluated in the intersection.
It reduces the amount of communication between the two parties during polynomial evaluation, improves the processing efficiency of target data processing tasks, and protects data security in scenarios such as model training and SQL queries.
Smart Images

Figure CN2024133536_02102025_PF_FP_ABST
Abstract
Description
Data processing methods, devices, media, equipment and products for secure computing
[0001] This application claims priority to Chinese Patent Application No. 202410355153.1 filed on March 26, 2024, and the contents of the above-mentioned Chinese patent application disclosure are hereby incorporated by reference in their entirety as a part of this application. Technical Field
[0002] The present disclosure relates to a data processing method, apparatus, medium, equipment and product for secure computing. Background Art
[0003] Secure multi-party computation, also known as multi-party secure computation (MPC), allows multiple parties to jointly compute the result of a function without disclosing the input data of each party involved in the function. The result is publicly available to one or more of the parties involved. Typical applications of secure multi-party computation include joint statistical analysis of privacy-preserving multi-party data and machine learning. The function here can be a statistical operation, a machine learning algorithm, or something similar.
[0004] In multi-party secure computation, to prevent the leakage of data and intermediate computation results, data or intermediate results can be shared among all parties. A single party holds a data shard, and the shards held by all parties are combined to restore the corresponding data. Typically, computations are performed in a shared state. Therefore, the number and volume of data communications in multi-party secure computations are important factors affecting the efficiency of secure computations. Summary of the Invention
[0005] This summary is provided to briefly introduce concepts that will be described in detail in the detailed description below. This summary is not intended to identify key features or essential features of the claimed technical solution, nor is it intended to limit the scope of the claimed technical solution.
[0006] In a first aspect, the present disclosure provides a data processing method for secure computing, wherein participants in the secure computing include a first party and a second party, the first party holds a first set of identifiers, each identifier in the first set of identifiers corresponding to an h-dimensional feature, and the second party holds a second set of identifiers, where h ≥ 1. The method is applied to the first party and includes:
[0007] Based on the first identifier set, performing a data processing process based on a privacy set intersection protocol with the second party, so that the second party obtains an intersection of the first identifier set and the second identifier set;
[0008] In response to receiving the ciphertext polynomial sent by the second party, for each dimensional feature of at least some of the dimensional features in the h-dimensional features, perform degree reduction processing on a first polynomial corresponding to the dimensional feature according to the ciphertext polynomial to obtain a second polynomial, wherein the ciphertext polynomial is generated by the second party based on the intersection set, and the first polynomial is constructed based on the dimensional features corresponding to each identifier in the first identifier set; calculating with the second party the value of the second polynomial on at least some of the identifiers in the intersection set to obtain a first slice of the value;
[0009] Execute the target data processing task based on the first shard.
[0010] In a second aspect, the present disclosure provides a data processing method for secure computing, wherein participants in the secure computing include a first party and a second party, the first party holds a first set of identifiers, each identifier in the first set of identifiers corresponding to an h-dimensional feature, and the second party holds a second set of identifiers, where h ≥ 1. The method is applied to the second party and includes:
[0011] Based on the second identifier set, performing a data processing process based on the privacy set intersection protocol with the first party to obtain an intersection of the first identifier set and the second identifier set;
[0012] Based on the intersection, construct a fifth polynomial, and perform homomorphic encryption on the fifth polynomial to obtain a ciphertext polynomial;
[0013] Sending the ciphertext polynomial to the first party, so that the first party performs, for each dimensional feature of at least some of the dimensional features in the h-dimensional features, a first polynomial corresponding to the dimensional feature according to the ciphertext polynomial, to reduce the degree of the first polynomial to obtain a second polynomial, wherein the first polynomial is constructed by the first party based on the dimensional features corresponding to each identifier in the first identifier set; and calculating with the first party the value of the second polynomial on at least some of the identifiers in the intersection set to obtain a second slice of the value;
[0014] Execute the target data processing task based on the second shard.
[0015] In a third aspect, the present disclosure provides a data processing device for secure computing, wherein participants in the secure computing include a first party and a second party, the first party holds a first set of identifiers, each identifier in the first set of identifiers corresponding to an h-dimensional feature, and the second party holds a second set of identifiers, where h ≥ 1. The device is applied to the first party and includes:
[0016] a first intersection module, configured to perform, with the second party, a data processing process based on a privacy set intersection protocol based on the first identifier set, so that the second party obtains an intersection of the first identifier set and the second identifier set;
[0017] a degree reduction module, configured to, in response to receiving the ciphertext polynomial sent by the second party, perform, for each dimensional feature of at least some of the dimensional features in the h-dimensional features, degree reduction processing on a first polynomial corresponding to the dimensional feature according to the ciphertext polynomial, to obtain a second polynomial, wherein the ciphertext polynomial is generated by the second party based on the intersection, and the first polynomial is constructed based on the dimensional features corresponding to each identifier in the first identifier set; and a first evaluation module, configured to calculate, with the second party, the value of the second polynomial on at least some of the identifiers in the intersection, to obtain a first slice of the value;
[0018] A first execution module is used to execute a target data processing task based on the first shard.
[0019] In a fourth aspect, the present disclosure provides a data processing device for secure computing, wherein participants in the secure computing include a first party and a second party, the first party holds a first set of identifiers, each identifier in the first set of identifiers corresponding to an h-dimensional feature, and the second party holds a second set of identifiers, where h ≥ 1. The device, applied to the second party, includes:
[0020] A second intersection module is configured to perform a data processing process based on a privacy set intersection protocol with the first party based on the second identifier set to obtain an intersection of the first identifier set and the second identifier set;
[0021] An encryption module, configured to construct a fifth polynomial based on the intersection, and perform homomorphic encryption on the fifth polynomial to obtain a ciphertext polynomial;
[0022] a sending module, configured to send the ciphertext polynomial to the first party, so that the first party performs, for each dimensional feature of at least some of the dimensional features in the h-dimensional features, a first polynomial corresponding to the dimensional feature according to the ciphertext polynomial, to reduce the degree of the first polynomial to obtain a second polynomial, wherein the first polynomial is constructed by the first party based on the dimensional features corresponding to each identifier in the first identifier set; and a second evaluation module, configured to calculate, with the first party, the value of the second polynomial on at least some of the identifiers in the intersection set, to obtain a second slice of the value;
[0023] A second execution module is used to execute the target data processing task based on the second slice.
[0024] In a fifth aspect, the present disclosure provides a computer-readable medium having a computer program stored thereon, which, when executed by a processing device, implements the steps of the data processing method for secure computing provided in the first aspect of the present disclosure or the steps of the data processing method for secure computing provided in the second aspect of the present disclosure.
[0025] In a sixth aspect, the present disclosure provides an electronic device, including:
[0026] a storage device having a computer program stored thereon;
[0027] A processing device is used to execute the computer program in the storage device to implement the steps of the data processing method for secure computing provided by the first aspect of the present disclosure or the steps of the data processing method for secure computing provided by the second aspect of the present disclosure.
[0028] In a seventh aspect, the present disclosure provides a computer program product, comprising a computer program, which, when executed by a processor, implements the steps of the data processing method for secure computing provided in the first aspect of the present disclosure or the steps of the data processing method for secure computing provided in the second aspect of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] The above and other features, advantages and aspects of the various embodiments of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. Throughout the drawings, the same or similar reference numerals represent the same or similar elements. It should be understood that the drawings are schematic and that the originals and elements are not necessarily drawn to scale. In the drawings:
[0030] Fig. 1 is a flowchart showing a data processing method for secure computing applied to a first party according to an exemplary embodiment.
[0031] Fig. 2 is a flow chart showing a data processing method for secure computing applied to a second party according to an exemplary embodiment.
[0032] Fig. 3 is a block diagram showing a data processing device for secure computing applied to a first party according to an exemplary embodiment.
[0033] Fig. 4 is a block diagram showing a data processing device for secure computing applied to a second party according to an exemplary embodiment.
[0034] Fig. 5 is a schematic structural diagram of an electronic device according to an exemplary embodiment. DETAILED DESCRIPTION
[0035] Before introducing the specific embodiments of the present disclosure, the terms involved in the present disclosure and the specific application scenarios of multi-party secure computing are first introduced and explained.
[0036] Ring: refers to a set that defines two operations, addition and multiplication, and forms a commutative group (i.e., an Abelian group) for addition, a semigroup for multiplication for elements other than 0, and multiplication satisfies the distributive law for addition.
[0037] Secret sharing, also known as secret splitting or secret sharing, is based on the principle of splitting a secret (such as a key or private data) into multiple shares, each of which is held by different data parties. The secret can only be recovered by combining the shares obtained by more than a threshold number of parties. Shares obtained from fewer than the threshold number of parties cannot reveal any information about the secret. In multi-party secure computation, the threshold number is typically equal to the number of participating parties, and the shares into which the secret is split are also called shards. Private data is data that is not intended for other parties to know in a multi-party secure computation.
[0038] Homomorphic encryption is a technique that allows calculations to be performed on encrypted data (i.e., ciphertext) and then decrypted to obtain the result. The result of a homomorphic encryption calculation is the same as the result of a direct calculation on the original data (i.e., plaintext), but the entire calculation process is performed on the encrypted data. There are many encryption algorithms that can be used to implement homomorphic encryption, among which BFV is one of them, and it is called BFV homomorphic encryption.
[0039] Private Set Intersection (PSI) is a proprietary protocol in the field of secure multi-party computation. It allows two participating parties to input private sets to jointly calculate set intersection, and ensures that no additional element information is leaked except for the set intersection result.
[0040] Communication volume: Since the data of the participants in secure computing are on different machines, network communication is required to complete the interaction. During the computing process, encrypted data will be transmitted on the network. The amount of data transmitted is the communication volume.
[0041] In practical applications, multi-party secure computing (MPCC) algorithms are typically black-box algorithms for privacy protection purposes. Data transmission between computing nodes using MPC algorithms is opaque. As discussed in the background, typical applications of MPC include machine learning. MPC technology can be used to protect private data during the inference and training phases of machine learning, primarily involving the protection of model parameters and the data of each participant during the training process.
[0042] Currently, common strategies for privacy-preserving machine learning based on secure multi-party computation include: privacy-preserving machine learning protocols based on technologies such as obfuscated circuits and oblivious transfer, and the use of secure multi-party computation protocols to perform nonlinear operations such as activation functions. Secret sharing technology allows multiple parties to participate in the training or prediction of machine learning network models without revealing data or model information.
[0043] In addition to the above application areas, multi-party secure computing can also be applied to privacy-protected network security detection, joint statistical analysis of privacy-protected multi-party data, spam cleaning and filtering of encrypted emails, advertising conversion and other fields.
[0044] Among them, bilateral secure computing is usually used for joint statistical analysis of privacy-protected data between two parties, that is, to perform queries across the two parties' databases while protecting the private data of the two parties.
[0045] For example, consider the following Structured Query Language (SQL) statement:
[0046] select avg(a.key)from a join b on a.id=b.id;
[0047] This SQL statement aligns Tables a and b by their ID columns, then averages a.key based on the aligned tables to obtain the query result. Table a, which includes an ID column and at least one feature column, is stored on the first party, P0. Table b, which also includes an ID column, is stored on the second party, P1. P0 and P1 perform SQL queries using secure computing technology, without exposing each other's private data. After the query is complete, only the query result is disclosed to the querying party, and the query result is stored in shards on P0 and P1.
[0048] Specifically, P0 and P1 align Table a and Table b according to their ID columns in the following way (this can be called PSI to share): First, both parties obtain the intersection of their ID columns through PSI. P1 holds the intersection alone and does not expose it to P0. Then, feature sharding is performed. That is, the features held by P0 that correspond to the intersection are stored in the form of shards on P0 and P1, so that both parties can perform SQL queries based on the feature shards they hold.
[0049] In related technologies, feature sharding is usually implemented based on the DDH hypothesis and homomorphic encryption algorithm. The amount of data communication involved in this process is proportional to the data size of the large data volume party. When the data volume party is large, it will cause huge communication overhead for feature sharding.
[0050] For example, P0 has N = 1 billion pieces of data, each piece of data contains h = 1000 features and an identifier (for example, id); P1 has d = 1 million pieces of data, each piece of data includes an identifier (for example, id). Among them, P0 is the party with a large amount of data. The communication volume involved in feature sharding based on the DDH hypothesis and homomorphic encryption algorithm is at the O(hN) level. It can be seen that the communication overhead of feature sharding is huge.
[0051] In view of this, the present disclosure provides a data processing method, apparatus, medium, device and product for secure computing to reduce the communication volume between the two parties during feature sharding.
[0052] The following describes embodiments of the present disclosure in more detail with reference to the accompanying drawings. Although certain embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be construed as limited to the embodiments described herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of the present disclosure. It should be understood that the drawings and embodiments of the present disclosure are for illustrative purposes only and are not intended to limit the scope of protection of the present disclosure.
[0053] It should be understood that the various steps described in the method embodiments of the present disclosure may be performed in different orders and / or in parallel. In addition, the method embodiments may include additional steps and / or omit the steps shown. The scope of the present disclosure is not limited in this respect.
[0054] As used herein, the term "including" and its variations are open-ended, i.e., "including but not limited to." The term "based on" means "based, at least in part, on." The term "one embodiment" means "at least one embodiment," the term "another embodiment" means "at least one additional embodiment," and the term "some embodiments" means "at least some embodiments." Definitions of other terms are provided in the following description.
[0055] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are only used to distinguish different devices, modules or units, and are not used to limit the order or interdependence of the functions performed by these devices, modules or units.
[0056] It should be noted that the modifications of "one" and "multiple" mentioned in the present disclosure are illustrative rather than restrictive, and those skilled in the art should understand that unless otherwise clearly indicated in the context, they should be understood as "one or more".
[0057] The names of the messages or information exchanged between multiple devices in the embodiments of the present disclosure are only used for illustrative purposes and are not used to limit the scope of these messages or information.
[0058] It is understandable that before using the technical solutions disclosed in the various embodiments of this disclosure, the type, scope of use, usage scenarios, etc. of the personal information involved in this disclosure should be informed to the user and the user's authorization should be obtained in an appropriate manner in accordance with relevant laws and regulations.
[0059] For example, in response to a user's active request, a prompt message is sent to the user to clearly inform the user that the operation requested will require the acquisition and use of the user's personal information. This allows the user to independently choose whether to provide personal information to the electronic device, application, server, storage medium, or other software or hardware that performs the operations of the disclosed technical solution based on the prompt message.
[0060] As an optional but non-limiting implementation, in response to receiving a user's active request, the prompt information may be sent to the user in the form of a pop-up window, in which the prompt information may be presented in text form. Furthermore, the pop-up window may also contain a selection control for the user to select "agree" or "disagree" to provide personal information to the electronic device.
[0061] It is understandable that the above notification and user authorization process are merely illustrative and do not limit the implementation of the present disclosure. Other methods that comply with relevant laws and regulations may also be applied to the implementation of the present disclosure.
[0062] At the same time, it is understood that the data involved in the technical solution of the present disclosure (including but not limited to the data itself, the acquisition or use of the data) should comply with the requirements of relevant laws, regulations and relevant provisions.
[0063] Before describing the specific implementation of the present disclosure, the core concept of the data processing method for secure computing in the present disclosure is first introduced.
[0064] In the present disclosure, the participants in the secure computing include a first party and a second party, wherein the first party holds a first identification set, each identification in the first identification set corresponds to an h-dimensional feature, and the second party holds a second identification set, h≥1, that is, each identification in the first identification set corresponds to at least one-dimensional feature. The first identification set and the second identification set both contain at least one identification, and the first identification set is different from the second identification set. In one embodiment, the number of identifications in the first identification set is much larger than the number of identifications in the second identification set. In this case, the first party is the party with the largest amount of data. For example, the first party is the above-mentioned P0, and the second party is the above-mentioned P1.
[0065] The core concept of the data processing method for secure computing is to convert the problem of sharding the features corresponding to the intersection of a first set of identifiers and a second set of identifiers into a polynomial evaluation problem. Specifically, the first party can encode each dimension of at least some of the h-dimensional features as a polynomial, such that the value of the polynomial at the corresponding identifier is the value of the dimension corresponding to the identifier; then, the value of each polynomial encoded by the first party is calculated at each identifier in the intersection, where the value is distributed in the form of slices between the first and second parties, and the value slices are the feature slices corresponding to the corresponding identifier in the intersection.
[0066] The degree of each polynomial obtained by the first-party encoding is the number of identifiers in the first identifier set. The communication volume during polynomial evaluation is proportional to the degree of the polynomial. Thus, when the number of identifiers in the first identifier set is large, it indicates that the degree of each polynomial is high. If it is evaluated directly, the communication overhead will be huge. Therefore, it is possible to consider splitting the polynomial evaluation process into two sub-processes, namely, reducing the degree of the polynomial and evaluating the polynomial, which are executed sequentially.
[0067] In the degree reduction sub-process, the degree of the polynomial is reduced from O(N) to O(n). In the evaluation sub-process, the O(n) degree polynomial is evaluated on the n identifiers in the intersection, where N is the number of identifiers in the first identifier set and n is the number of identifiers in the intersection. The degree of the polynomial can be reduced based on the following theorem:
[0068] Theorem: Let is a domain, x i is the i-th identifier in the intersection, is a polynomial group with coefficients on x, x is the independent variable, if Then there is Where i = 0, ..., n-1, and f(x) are both polynomials in , that is, if a polynomial is equal to another polynomial mod g(x), then the two polynomials have the same value on the same label.
[0069] Specifically, first, the first party converts the polynomial f(x) into the following form:
[0070] Among them, f k (x) is the kth polynomial whose degree is less than or equal to n-1.
[0071] Then, the second party prepares the data h k (x) = x kn modg(x), k=1,2,...,L, Then we have:
[0072] That is, polynomial The number of times is less than or equal to 2n-2, It is the polynomial obtained by reducing the degree of the polynomial f(x).
[0073] For example, N=7, n=3, f(x)=a0+a1x+a2x 2 +a3x 3 +a4x 4 +a5x5 +a6x 6 +a7x 7 ,but At this point, f(x) can be converted into the following form: f(x)=(a0+a1x+a2x 2 )+(a3+a4x+a5x 2 )x 3 +(a6+a7x+a8x 2 )x 6
[0074] Where f0(x)=a0+a1x+a2x 2 , f1(x)=a3+a4x+a5x 2 , f2(x)=a6+a7x+a8x 2 , a8=0. At this time, the second party prepares h1(x)=x 3 modg(x), h2(x)=x 6 modg(x).
[0075] Fig. 1 is a flow chart showing a data processing method for secure computing applied to a first party according to an exemplary embodiment. As shown in Fig. 1 , the method may include S101 to S104.
[0076] In S101 , based on the first identification set, a data processing process based on the privacy set intersection protocol is performed with the second party, so that the second party obtains the intersection of the first identification set and the second identification set.
[0077] In the present disclosure, the first party and the second party jointly execute a data processing process based on the PSI protocol, that is, jointly execute the PSI protocol to obtain the intersection of the first identification set and the second identification set, wherein the intersection is held solely by the second party and is not exposed to the first party, thereby preventing the first party from locating the corresponding object in the second party through the features corresponding to the intersection, thereby protecting the second party's data privacy.
[0078] In S102, in response to receiving the ciphertext polynomial sent by the second party, for each dimensional feature of at least some of the dimensional features in the h-dimensional features, the first polynomial corresponding to the dimensional feature is reduced in degree according to the ciphertext polynomial to obtain a second polynomial.
[0079] In the present disclosure, the ciphertext polynomial is generated by the second party based on the intersection of the first identifier set and the second identifier set. Specifically, the second party can construct a fifth polynomial based on the intersection of the first identifier set and the second identifier set, and homomorphically encrypt the fifth polynomial to obtain the ciphertext polynomial.
[0080] For example, the fifth polynomial can be constructed based on the intersection of the first identification set and the second identification set by the following equation: k (x) = x kn modg(x)k=1,2,...,L
[0081] Among them, there are L fifth polynomials, h k (x) is the kth fifth polynomial, and the second party obtains N by interacting with the first party.
[0082] After constructing L fifth polynomials, the second party can use the locally generated first homomorphic encryption private key to homomorphically encrypt the L fifth polynomials respectively, obtain L ciphertext polynomials, and send them to the first party. This process is the first interaction between the two parties in the feature sharding process. The communication volume involved is 2NBlogp, where B is the expansion coefficient of the ciphertext relative to the plaintext (for example, the number of expansions of the plaintext polynomial relative to the fifth polynomial), and p is the plaintext modulus of the homomorphic encryption. Among them, the kth ciphertext polynomial is generated by the second party for h k (x)(i.e. x kn modg(x)) is homomorphically encrypted.
[0083] The first polynomial corresponding to the dimensional feature can be constructed based on the dimensional feature corresponding to each identifier in the first identifier set. The value of the first polynomial at any identifier in the first identifier set is the value of the dimensional feature corresponding to the identifier. That is, the first polynomial is constructed using each identifier in the first identifier set as an independent variable and the dimensional feature as a dependent variable. The degree of the first polynomial is less than or equal to the number of identifiers in the first identifier set. In one embodiment, the first party can construct the first polynomial using an interpolation method (e.g., Lagrange interpolation).
[0084] In addition, both parties may shard some of the h-dimensional features. In this case, the first party may, based on the ciphertext polynomial sent by the second party, perform a degree reduction process on the first polynomial corresponding to each of the h-dimensional features. In addition, both parties may shard some of the h-dimensional features. In this case, the first party may, based on the ciphertext polynomial sent by the second party, perform a degree reduction process on the first polynomial corresponding to each of the h-dimensional features. In this case, a total of h second polynomials are obtained. This disclosure does not specifically limit the number of features to be sharded.
[0085] In S103, the value of the second polynomial on at least part of the identifiers in the intersection is calculated with the second square to obtain a first slice of the value.
[0086] In the present disclosure, after the first and second parties jointly calculate the values of the second polynomial for at least some of the identifiers in the intersection, the first party can obtain a first slice of the values, and the second party can obtain a second slice of the values. The values of the second polynomial for at least some of the identifiers in the intersection are the feature slices corresponding to at least some of the identifiers in the intersection.
[0087] In addition, the first party and the second party may jointly calculate the value of the second polynomial on each identifier in the intersection, or may jointly calculate the value of the second polynomial on some identifiers in the intersection, which is not specifically limited in the present disclosure.
[0088] In S104 , the target data processing task is executed based on the first slice.
[0089] In the present disclosure, the above-mentioned target data processing task is an SQL query task or a machine learning model training task.
[0090] In one embodiment, when the target data processing task is an SQL query task, the first party and the second party can jointly perform an SQL query based on the feature shards they each hold to obtain query result shards respectively. Afterwards, both parties will feed back the query result shards they obtained to the query party; after the query party receives the query result shards sent by both parties, it merges them to obtain the final query result.
[0091] Specifically, the first party can perform an SQL query with the second party based on the first shard to obtain a first query result shard, and then feed the first query result shard back to the query party; accordingly, the second party can perform an SQL query with the first party based on the second shard to obtain a second query result shard, and then feed the second query result shard back to the query party; finally, the query party merges the first query result shard and the second query result shard to obtain the final query result.
[0092] In another embodiment, when the target data processing task is a machine learning model training task, the second party can use the features of the first party to perform model training, wherein the first party and the second party can perform model training in an MPC manner based on the feature slices they each hold to obtain model parameter slices respectively. Afterwards, the first party sends the model parameter slices it holds to the second party, and the second party merges the model parameter slices obtained from the first party with the model parameter slices it holds to obtain the model parameters of the corresponding model and complete the model training of the second party. In this way, when the second party lacks training data or the training data is insufficient, the features of the first party can be used to perform model training, which can improve the accuracy of model training while ensuring the privacy of the first party's data.
[0093] Specifically, the first party can conduct model training with the second party based on the first shard to obtain a first model parameter shard, and then feed the first model parameter shard back to the second party; accordingly, the second party can conduct model training with the first party based on the second shard to obtain a second model parameter shard, and then merge the second model parameter shard with the first model parameter shard received from the first party to obtain complete model parameters.
[0094] In the above technical solution, first, the first and second parties jointly perform a data processing process based on the privacy set intersection protocol, and the second party obtains the intersection of the first identification set and the second identification set; then, the second party generates a ciphertext polynomial based on the intersection and sends it to the first party; next, the first party performs a degree reduction process on the first polynomial corresponding to each of at least some of the h-dimensional features held by itself based on the received ciphertext polynomial to obtain a second polynomial; thereafter, the first and second parties jointly calculate the value of the second polynomial on at least some of the identifications in the intersection to obtain the first and second shards of the values, respectively; finally, the first and second parties each perform the target data processing task based on the shards held by themselves. In this way, the sharding problem of the features corresponding to the intersection of the two parties' identification sets can be cleverly converted into a polynomial evaluation problem, and the polynomial evaluation process can be split into two sub-processes: degree reduction and evaluation. By reducing the degree of the polynomial, the degree of the polynomial to be evaluated can be reduced, thereby reducing the communication volume between the two parties during polynomial evaluation (where the communication volume during polynomial evaluation is proportional to the degree of the polynomial). This reduces the communication volume between the two parties during feature sharding, improving the processing efficiency of the target data processing task. Therefore, the present disclosure can protect data security and reduce communication volume in scenarios such as model training and SQL queries.
[0095] The following describes in detail the specific implementation method of performing degree reduction processing on the first polynomial corresponding to the dimensional feature in the above S102 according to the ciphertext polynomial to obtain the second polynomial. Specifically, it can be achieved by the following steps (21) to (23):
[0096] Step (21): Convert the first polynomial corresponding to the dimension feature into form.
[0097] Step (22): Set f k (x) is multiplied by the k-th ciphertext polynomial to obtain the third polynomial, where k = 1, 2, ..., L.
[0098] Among them, f k (x) is plaintext, and k ciphertext polynomials are ciphertext. At this time, the plaintext and ciphertext multiplication protocol can be used to multiply the two to obtain the third polynomial.
[0099] Step (23): Determine the sum of each third polynomial and f0(x) as the second polynomial.
[0100] The sum of each third polynomial and f0(x) is It is equal to That is, the second polynomial is obtained
[0101] The following describes in detail the specific implementation of calculating the value of the second polynomial on at least part of the identifiers in the intersection with the second square in S103 to obtain the first slice of the value. Specifically, it can be achieved by the following steps (31) to (33):
[0102] Step (31): Generate a random polynomial of the same degree as the second polynomial.
[0103] Step (32): Masking the second polynomial with a random polynomial to obtain a masked polynomial, and sending the masked polynomial to the second party so that the second party decrypts the masked polynomial to obtain a fourth polynomial.
[0104] Specifically, the difference between the second polynomial and the random polynomial can be determined as a masking polynomial and sent to the second party. After receiving the masking polynomial, the second party can decrypt it using the first homomorphic encryption private key to obtain the fourth polynomial. This process is the second interaction between the two parties in the feature sharding process. That is, the first party sends the masking polynomial to the second party, involving a communication volume of 2wBlogp (for a single second polynomial). Thus, the total communication volume involved in all second polynomials is 2mwBlogp, where m is the feature dimension contained in the at least partially dimensional feature, that is, the number of second polynomials, and w is the number of identifiers in the at least partially identified feature. If both parties shard the h-dimensional feature, then m = h. If both parties jointly calculate the value of the second polynomial at each identifier in the intersection, then w = n.
[0105] Step (33): Based on the random polynomial, execute the sharded polynomial evaluation protocol with the second party to obtain a first shard of the value of the second polynomial on at least part of the identification in the intersection, wherein the second party executes the sharded polynomial evaluation protocol based on the fourth polynomial.
[0106] In the present disclosure, the first party may jointly execute a shared polynomial evaluation protocol based on a random polynomial and the second party may jointly execute a shared polynomial evaluation protocol based on a fourth polynomial to respectively obtain slices of values of the second polynomial on at least some identifiers in the intersection.
[0107] The following describes in detail the specific implementation of executing the sharded polynomial evaluation protocol with the second party based on the random polynomial in step (33) to obtain the first shard of the second polynomial value on at least some of the identifiers in the intersection. Specifically, this can be achieved by the following steps (331) to (333):
[0108] Step (331): Perform homomorphic encryption on the coefficient vector of the random polynomial to obtain an encrypted vector.
[0109] Step (332): Send the encrypted vector to the second party, so that the second party generates a difference vector based on the encrypted vector and the fourth polynomial, and sends the difference vector to the first party.
[0110] Step (333): In response to receiving the difference vector sent by the second party, decrypt the difference vector to obtain the first slice of the value.
[0111] Specifically, the first party can use the locally generated second homomorphic encryption private key to homomorphically encrypt the coefficient vector of the random polynomial to obtain an encrypted vector, and send it to the second party; after the second party receives the encrypted vector, it can generate a difference vector based on the encrypted vector and the fourth polynomial, and send it to one party; the first party uses the second homomorphic encryption private key to decrypt the received difference vector to obtain a first fragment of the value of the second polynomial on at least part of the identification in the intersection.
[0112] The second party may generate a difference vector based on the encrypted vector and the fourth polynomial in the following manner:
[0113] First, a sixth polynomial is generated using the sum of the coefficient vector of the fourth polynomial and the encrypted vector as the coefficient vector. Then, each identifier in at least some of the identifiers in the intersection is substituted into the sixth polynomial to obtain a result vector. Substituting each identifier in at least some of the identifiers in the intersection into the sixth polynomial yields a value of the sixth polynomial at that identifier, and these values constitute the result vector. Next, a random vector of the same length as the result vector is generated, and the difference between the result vector and the random vector is determined as a difference vector. The second party uses the random vector as a second slice of the value of the second polynomial at at least some of the identifiers in the intersection.
[0114] The above step (332) is the third interaction between the two parties in the feature sharding process, that is, the first party sends the encrypted vector to the second party, the communication volume involved is zBlogp (for a single second polynomial), and the total communication volume involved for all second polynomials is: mzBlogp, where z is the degree of the second polynomial; the above step (333) is the fourth interaction between the two parties in the feature sharding process, that is, the second party sends the difference vector to the first party, the communication volume involved is wBlogp (for a single second polynomial), and the total communication volume involved for all second polynomials is mwBlogp; therefore, the total communication volume involved in the above step (33) is (w+z)Blogp (for a single second polynomial), and the total communication volume involved for all second polynomials is m(w+z)Blogp.
[0115] It can be seen that during the entire feature sharding process, the two parties conducted four interactions, involving communication volumes of 2NBlogp, 2mwBlogp, mzBlogp, and mwBlogp respectively. Therefore, the total communication volume involved in the entire feature sharding process is (2N+3mw+mz)Blogp. The communication volume involved is no longer at the O(hN) level, which is greatly reduced compared to the O(hN) level communication volume.
[0116] Fig. 2 is a flow chart showing a data processing method for secure computing applied to a second party according to an exemplary embodiment. As shown in Fig. 2 , the method may include S201 to S205.
[0117] In S201 , based on the second identification set, a data processing process based on the privacy set intersection protocol is performed with the first party to obtain the intersection of the first identification set and the second identification set.
[0118] In the present disclosure, the participants in the secure computing include a first party and a second party. The first party holds a first set of identifiers, each identifier in the first set of identifiers corresponds to an h-dimensional feature (also held by the first party), and the second party holds a second set of identifiers, where h≥1.
[0119] In S202 , a fifth polynomial is constructed based on the intersection, and homomorphic encryption is performed on the fifth polynomial to obtain a ciphertext polynomial.
[0120] In S203, the ciphertext polynomial is sent to the first party, so that the first party performs degree reduction processing on the first polynomial corresponding to each dimensional feature of at least some of the h-dimensional features according to the ciphertext polynomial to obtain a second polynomial.
[0121] The first polynomial is constructed by the first party based on the dimensional features corresponding to each identifier in the first identifier set;
[0122] In S204, the value of the second polynomial on at least part of the identifiers in the intersection is calculated with the first polynomial to obtain a second slice of the value.
[0123] In S205 , the target data processing task is executed based on the second slice.
[0124] In the above technical solution, first, the first and second parties jointly perform a data processing process based on the privacy set intersection protocol, and the second party obtains the intersection of the first identification set and the second identification set; then, the second party generates a ciphertext polynomial based on the intersection and sends it to the first party; next, the first party performs a degree reduction process on the first polynomial corresponding to each of at least some of the h-dimensional features held by itself based on the received ciphertext polynomial to obtain a second polynomial; thereafter, the first and second parties jointly calculate the value of the second polynomial on at least some of the identifications in the intersection to obtain the first and second shards of the values, respectively; finally, the first and second parties each perform the target data processing task based on the shards held by themselves. In this way, the sharding problem of the features corresponding to the intersection of the two parties' identification sets can be cleverly converted into a polynomial evaluation problem, and the polynomial evaluation process can be split into two sub-processes: degree reduction and evaluation. By reducing the degree of the polynomial, the degree of the polynomial to be evaluated can be reduced, thereby reducing the communication volume between the two parties during polynomial evaluation (where the communication volume during polynomial evaluation is proportional to the degree of the polynomial). This reduces the communication volume between the two parties during feature sharding, improving the processing efficiency of the target data processing task. Therefore, the present disclosure can protect data security and reduce communication volume in scenarios such as model training and SQL queries.
[0125] Optionally, based on the intersection, a fifth polynomial is constructed, including:
[0126] Based on the intersection, the fifth polynomial is constructed by the following formula: k (x) = x kn modg(x)
[0127] Among them, there are L fifth polynomials, h k (x) is the kth fifth polynomial, k=1,2,...,L, N is the number of identifiers in the first identifier set, n is the number of identifiers in the intersection set, x i is the i-th identifier in the intersection, and x is the independent variable.
[0128] Optionally, calculating the value of the second polynomial on at least some of the identifiers in the intersection with the first party to obtain a second slice of the value includes:
[0129] In response to receiving the masking polynomial sent by the first party, decrypting the masking polynomial to obtain a fourth polynomial, wherein the masking polynomial is obtained by masking a random polynomial generated by the first party;
[0130] Based on the fourth polynomial, a sharded polynomial evaluation protocol is performed with the first party to obtain a second shard of values of the second polynomial on at least some of the identifiers in the intersection, wherein the first party performs the sharded polynomial evaluation protocol based on the random polynomial.
[0131] Optionally, executing a sharded polynomial evaluation protocol with the first party based on the fourth polynomial to obtain a second shard of values of the second polynomial on at least some of the identifiers in the intersection includes:
[0132] receiving an encrypted vector sent by the first party, where the encrypted vector is obtained by the first party performing homomorphic encryption on a coefficient vector of a random polynomial;
[0133] Generate a sixth polynomial using the sum of the coefficient vector of the fourth polynomial and the encrypted vector as the coefficient vector;
[0134] Substituting each identifier in at least part of the identifiers in the intersection into the sixth polynomial to obtain a result vector;
[0135] Generate a random vector with the same length as the result vector and use the random vector as the second slice of the value;
[0136] The difference vector is sent to the first party, where the difference vector is the difference between the result vector and the random vector.
[0137] Optionally, the target data processing task is a structured query language query task or a machine learning model training task.
[0138] The specific implementation methods of each step in the data processing method for secure computing applied to the second party according to the embodiment of the present disclosure have been described in detail in the data processing method for secure computing applied to the first party according to the embodiment of the present disclosure, and will not be repeated here.
[0139] FIG3 is a block diagram of a data processing device for secure computing applied to a first party according to an exemplary embodiment. The participants in the secure computing include a first party and a second party. The first party holds a first set of identifiers, each identifier in the first set of identifiers corresponding to h-dimensional features, and the second party holds a second set of identifiers, where h ≥ 1. As shown in FIG3 , the device 300 includes:
[0140] A first intersection module 301 is configured to perform a data processing process based on a privacy set intersection protocol with the second party based on the first identifier set, so that the second party obtains an intersection of the first identifier set and the second identifier set;
[0141] A degree reduction module 302 is configured to, in response to receiving the ciphertext polynomial sent by the second party, perform degree reduction processing on a first polynomial corresponding to each dimensional feature of at least some of the dimensional features in the h-dimensional features according to the ciphertext polynomial, to obtain a second polynomial, wherein the ciphertext polynomial is generated by the second party based on the intersection, and the first polynomial is constructed based on the dimensional features corresponding to each identifier in the first identifier set; a first evaluation module 303 is configured to calculate, with the second party, the value of the second polynomial on at least some of the identifiers in the intersection, to obtain a first slice of the value;
[0142] The first execution module 304 is configured to execute a target data processing task based on the first shard.
[0143] In the above technical solution, first, the first and second parties jointly perform a data processing process based on the privacy set intersection protocol, and the second party obtains the intersection of the first identification set and the second identification set; then, the second party generates a ciphertext polynomial based on the intersection and sends it to the first party; next, the first party performs a degree reduction process on the first polynomial corresponding to each of at least some of the h-dimensional features held by itself based on the received ciphertext polynomial to obtain a second polynomial; thereafter, the first and second parties jointly calculate the value of the second polynomial on at least some of the identifications in the intersection to obtain the first and second shards of the values, respectively; finally, the first and second parties each perform the target data processing task based on the shards held by themselves. In this way, the sharding problem of the features corresponding to the intersection of the two parties' identification sets can be cleverly converted into a polynomial evaluation problem, and the polynomial evaluation process can be split into two sub-processes: degree reduction and evaluation. By reducing the degree of the polynomial, the degree of the polynomial to be evaluated can be reduced, thereby reducing the communication volume between the two parties during polynomial evaluation (where the communication volume during polynomial evaluation is proportional to the degree of the polynomial). This reduces the communication volume between the two parties during feature sharding, improving the processing efficiency of the target data processing task. Therefore, the present disclosure can protect data security and reduce communication volume in scenarios such as model training and SQL queries.
[0144] Optionally, there are L ciphertext polynomials, and the kth ciphertext polynomial is generated by the second party for x kn modg(x) is homomorphically encrypted to obtain k=1,2,...,L, where N is the number of identifiers in the first identifier set, n is the number of identifiers in the intersection set, x i is the i-th identifier in the intersection, and x is the independent variable;
[0145] The step of reducing the degree of the first polynomial corresponding to the dimensional feature according to the ciphertext polynomial to obtain a second polynomial includes:
[0146] The first polynomial corresponding to the dimension feature is converted into form, where f k (x) is the kth polynomial;
[0147] f k (x) multiplying the k-th ciphertext polynomial to obtain a third polynomial, where k = 1, 2, ..., L;
[0148] The sum of each of the third polynomials and f0(x) is determined as the second polynomial.
[0149] Optionally, the first evaluation module 303 includes:
[0150] A first generating submodule, configured to generate a random polynomial of the same degree as the second polynomial;
[0151] a masking processing submodule, configured to mask the second polynomial using the random polynomial to obtain a masked polynomial, and send the masked polynomial to the second party so that the second party decrypts the masked polynomial to obtain a fourth polynomial;
[0152] A first execution submodule is configured to execute a sharded polynomial evaluation protocol with the second party based on the random polynomial to obtain a first shard of values of the second polynomial on at least some of the identifiers in the intersection, wherein the second party executes the sharded polynomial evaluation protocol based on the fourth polynomial.
[0153] Optionally, the first execution submodule includes:
[0154] An encryption submodule, configured to perform homomorphic encryption on the coefficient vector of the random polynomial to obtain an encrypted vector;
[0155] a first sending submodule, configured to send the encrypted vector to the second party, so that the second party generates a difference vector based on the encrypted vector and the fourth polynomial, and sends the difference vector to the first party;
[0156] The first decryption submodule is configured to, in response to receiving the difference vector sent by the second party, decrypt the difference vector to obtain a first slice of the value.
[0157] Optionally, the target data processing task is a structured query language query task or a machine learning model training task.
[0158] FIG4 is a block diagram of a data processing device for secure computing applied to a second party according to an exemplary embodiment. The participants in the secure computing include a first party and a second party. The first party holds a first set of identifiers, each identifier in the first set of identifiers corresponding to h-dimensional features, and the second party holds a second set of identifiers, where h ≥ 1. As shown in FIG4 , the device 400 includes:
[0159] A second intersection module 401 is configured to perform a data processing process based on a privacy set intersection protocol with the first party based on the second identifier set to obtain an intersection of the first identifier set and the second identifier set;
[0160] An encryption module 402 is configured to construct a fifth polynomial based on the intersection, and perform homomorphic encryption on the fifth polynomial to obtain a ciphertext polynomial;
[0161] A sending module 403 is configured to send the ciphertext polynomial to the first party, so that the first party can perform, for each dimensional feature of at least some of the dimensional features in the h-dimensional features, a first polynomial corresponding to the dimensional feature according to the ciphertext polynomial to reduce the degree of the first polynomial to obtain a second polynomial, wherein the first polynomial is constructed by the first party based on the dimensional features corresponding to each identifier in the first identifier set; a second evaluation module 404 is configured to calculate, with the first party, the value of the second polynomial on at least some of the identifiers in the intersection set to obtain a second slice of the value;
[0162] The second execution module 405 is configured to execute the target data processing task based on the second shard.
[0163] In the above technical solution, first, the first and second parties jointly perform a data processing process based on the privacy set intersection protocol, and the second party obtains the intersection of the first identification set and the second identification set; then, the second party generates a ciphertext polynomial based on the intersection and sends it to the first party; next, the first party performs a degree reduction process on the first polynomial corresponding to each of at least some of the h-dimensional features held by itself based on the received ciphertext polynomial to obtain a second polynomial; thereafter, the first and second parties jointly calculate the value of the second polynomial on at least some of the identifications in the intersection to obtain the first and second shards of the values, respectively; finally, the first and second parties each perform the target data processing task based on the shards held by themselves. In this way, the sharding problem of the features corresponding to the intersection of the two parties' identification sets can be cleverly converted into a polynomial evaluation problem, and the polynomial evaluation process can be split into two sub-processes: degree reduction and evaluation. By reducing the degree of the polynomial, the degree of the polynomial to be evaluated can be reduced, thereby reducing the communication volume between the two parties during polynomial evaluation (where the communication volume during polynomial evaluation is proportional to the degree of the polynomial). This reduces the communication volume between the two parties during feature sharding, improving the processing efficiency of the target data processing task. Therefore, the present disclosure can protect data security and reduce communication volume in scenarios such as model training and SQL queries.
[0164] Optionally, the encryption module 402 includes a construction submodule, wherein the construction submodule is configured to construct a fifth polynomial based on the intersection using the following formula: k (x) = x kn modg(x)
[0165] Among them, the fifth polynomial is L, h k (x) is the kth fifth polynomial, k=1,2,...,L, N is the number of identifiers in the first identifier set, n is the number of identifiers in the intersection set, x i is the i-th identifier in the intersection, and x is the independent variable.
[0166] Optionally, the second evaluation module 404 includes:
[0167] a second decryption submodule, configured to, in response to receiving the masking polynomial sent by the first party, decrypt the masking polynomial to obtain a fourth polynomial, wherein the masking polynomial is obtained by masking a random polynomial generated by the first party itself;
[0168] a second execution submodule, configured to execute a sharded polynomial evaluation protocol with the first party based on the fourth polynomial to obtain a second shard of values of the second polynomial on at least some of the identifiers in the intersection, wherein the first party executes the sharded polynomial evaluation protocol based on the random polynomial.
[0169] Optionally, the second execution submodule includes:
[0170] a receiving submodule, configured to receive an encrypted vector sent by the first party, wherein the encrypted vector is obtained by the first party performing homomorphic encryption on the coefficient vector of the random polynomial;
[0171] A second generating submodule, configured to generate a sixth polynomial using the sum of the coefficient vector of the fourth polynomial and the encrypted vector as a coefficient vector;
[0172] a substitution submodule, configured to substitute each identifier in at least part of the identifiers in the intersection into the sixth polynomial to obtain a result vector;
[0173] A third generating submodule is configured to generate a random vector having the same length as the result vector, and use the random vector as a second slice of the value;
[0174] The second sending submodule is configured to send a difference vector to the first party, wherein the difference vector is a difference between the result vector and the random vector.
[0175] Optionally, the target data processing task is a structured query language query task or a machine learning model training task.
[0176] The present disclosure also provides a computer-readable medium having a computer program stored thereon, which, when executed by a processing device, implements the steps of the above-mentioned data processing method for secure computing applied to a first party or the steps of the data processing method for secure computing applied to a second party provided by the present disclosure.
[0177] The present disclosure also provides a computer program product, including a computer program, which, when executed by a processor, implements the steps of the above-mentioned data processing method for secure computing applied to a first party or the steps of the data processing method for secure computing applied to a second party provided by the present disclosure.
[0178] Reference is now made to FIG5 , which illustrates a schematic diagram of the structure of an electronic device (e.g., a terminal device or server) 600 suitable for implementing embodiments of the present disclosure. The terminal device in the embodiments of the present disclosure may include, but is not limited to, mobile terminals such as mobile phones, laptop computers, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), in-vehicle terminals (e.g., in-vehicle navigation terminals), and fixed terminals such as digital TVs and desktop computers. The electronic device illustrated in FIG5 is merely an example and should not limit the functionality or scope of use of the embodiments of the present disclosure.
[0179] As shown in Figure 5, the electronic device 600 may include a processing device (e.g., a central processing unit, a graphics processing unit, etc.) 601, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 602 or a program loaded from a storage device 608 into a random access memory (RAM) 603. Various programs and data required for the operation of the electronic device 600 are also stored in the RAM 603. The processing device 601, the ROM 602, and the RAM 603 are connected to each other via a bus 604. An input / output (I / O) interface 605 is also connected to the bus 604.
[0180] Typically, the following devices may be connected to the I / O interface 605: an input device 606 including, for example, a touch screen, a touchpad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 607 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device 608 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 609. The communication device 609 may allow the electronic device 600 to communicate with other devices wirelessly or by wire to exchange data. Although FIG. 5 shows the electronic device 600 with various devices, it should be understood that not all of the devices shown are required to be implemented or present. More or fewer devices may be implemented or present instead.
[0181] According to an embodiment of the present disclosure, the process described above with reference to the flowchart can be implemented as a computer software program. For example, an embodiment of the present disclosure includes a computer program product, which includes a computer program carried on a non-transitory computer-readable medium, and the computer program includes a program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from the network through the communication device 609, or installed from the storage device 608, or installed from the ROM 602. When the computer program is executed by the processing device 601, the above-mentioned functions defined in the method of the embodiment of the present disclosure are performed.
[0182] It should be noted that the computer-readable medium mentioned above in the present disclosure may be a computer-readable signal medium or a computer-readable storage medium, or any combination of the two. A computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or component, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present disclosure, a computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, device, or component. In the present disclosure, a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, which carries computer-readable program code. Such a propagated data signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. A computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium that can transmit, propagate, or transport a program for use by or in conjunction with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium may be transmitted using any suitable medium, including but not limited to wires, optical cables, RF (radio frequency), etc., or any suitable combination thereof.
[0183] In some embodiments, the client and server can communicate using any currently known or later developed network protocol, such as HTTP (HyperText Transfer Protocol), and can be interconnected with any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), an internet (e.g., the Internet), and a peer-to-peer network (e.g., an ad hoc peer-to-peer network), as well as any currently known or later developed network.
[0184] The computer-readable medium may be included in the electronic device, or may exist independently without being incorporated into the electronic device.
[0185] The above-mentioned computer-readable medium carries one or more programs. When the above-mentioned one or more programs are executed by the electronic device, the electronic device: based on the first identification set, performs a data processing process based on the privacy set intersection protocol with the second party, so that the second party obtains the intersection of the first identification set and the second identification set, wherein the participants in the secure calculation include the first party and the second party, the first party holds the first identification set, each identification in the first identification set corresponds to h-dimensional features, and the second party holds the second identification set, h≥1; in response to receiving the ciphertext polynomial sent by the second party, for each dimensional feature of at least part of the dimensional features in the h-dimensional features, according to the ciphertext polynomial, the first polynomial corresponding to the dimensional feature is reduced in degree to obtain a second polynomial, wherein the ciphertext polynomial is generated by the second party based on the intersection, and the first polynomial is constructed based on the dimensional feature corresponding to each identification in the first identification set; calculates with the second party the value of the second polynomial on at least part of the identifications in the intersection to obtain a first shard of the value; and executes the target data processing task based on the first shard.
[0186] Alternatively, the computer-readable medium carries one or more programs, and when the one or more programs are executed by the electronic device, the electronic device: based on the second identification set, performs a data processing process based on the privacy set intersection protocol with the first party to obtain the intersection of the first identification set and the second identification set, wherein the participants in the secure calculation include the first party and the second party, the first party holds the first identification set, each identification in the first identification set corresponds to h-dimensional features, and the second party holds the second identification set, h≥1; based on the intersection, constructs a fifth polynomial, and homomorphically encrypts the fifth polynomial to obtain a ciphertext polynomial; sends the ciphertext polynomial to the first party, so that the first party reduces the order of the first polynomial corresponding to each dimensional feature of at least part of the h-dimensional features according to the ciphertext polynomial to obtain a second polynomial, wherein the first polynomial is constructed by the first party based on the dimensional feature corresponding to each identification in the first identification set; calculates with the first party the value of the second polynomial on at least part of the identifications in the intersection to obtain a second shard of the value; and executes the target data processing task based on the second shard.
[0187] Computer program code for performing the operations of the present disclosure may be written in one or more programming languages, or a combination thereof, including, but not limited to, object-oriented programming languages such as Java, Smalltalk, C++, and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., through the Internet using an Internet service provider).
[0188] The flowcharts and block diagrams in the accompanying drawings illustrate the possible implementation architecture, functions and operations of the systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each box in the flowchart or block diagram can represent a module, program segment, or a part of code, and the module, program segment, or a part of code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order than that marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flowchart, and the combination of the boxes in the block diagram and / or flowchart, can be implemented with a dedicated hardware-based system that performs the specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0189] The modules described in the embodiments of the present disclosure may be implemented in software or hardware. In some cases, the name of a module does not necessarily limit the module itself. For example, the first execution module may also be described as a "module that performs a target data processing task based on the first shard."
[0190] The functions described above in the present disclosure may be performed at least in part by one or more hardware logic components. For example, and without limitation, exemplary types of hardware logic components that may be used include: field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on chips (SOCs), complex programmable logic devices (CPLDs), and the like.
[0191] In the context of the present disclosure, a machine-readable medium can be a tangible medium that can contain or store a program for use by or in conjunction with an instruction execution system, device or equipment. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium can include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0192] According to one or more embodiments of the present disclosure, Example 1 provides a data processing method for secure computing. Participants in the secure computing include a first party and a second party. The first party holds a first set of identifiers, each identifier in the first set of identifiers corresponding to an h-dimensional feature. The second party holds a second set of identifiers, where h ≥ 1. The method is applied to the first party and includes:
[0193] Based on the first identifier set, performing a data processing process based on a privacy set intersection protocol with the second party, so that the second party obtains an intersection of the first identifier set and the second identifier set;
[0194] In response to receiving the ciphertext polynomial sent by the second party, for each dimensional feature of at least some of the dimensional features in the h-dimensional features, perform degree reduction processing on a first polynomial corresponding to the dimensional feature according to the ciphertext polynomial to obtain a second polynomial, wherein the ciphertext polynomial is generated by the second party based on the intersection set, and the first polynomial is constructed based on the dimensional features corresponding to each identifier in the first identifier set; calculating with the second party the value of the second polynomial on at least some of the identifiers in the intersection set to obtain a first slice of the value;
[0195] Execute the target data processing task based on the first shard.
[0196] According to one or more embodiments of the present disclosure, Example 2 provides the method of Example 1, wherein the number of the ciphertext polynomials is L, and the kth ciphertext polynomial is generated by the second party for x kn modg(x) is homomorphically encrypted to obtain k=1,2,...,L, where N is the number of identifiers in the first identifier set, n is the number of identifiers in the intersection set, x iis the i-th identifier in the intersection, and x is the independent variable;
[0197] The step of reducing the degree of the first polynomial corresponding to the dimensional feature according to the ciphertext polynomial to obtain a second polynomial includes:
[0198] The first polynomial corresponding to the dimension feature is converted into form, where f k (x) is the kth polynomial;
[0199] f k (x) multiplying the k-th ciphertext polynomial to obtain a third polynomial, where k = 1, 2, ..., L;
[0200] The sum of each of the third polynomials and f0(x) is determined as the second polynomial.
[0201] According to one or more embodiments of the present disclosure, Example 3 provides the method of Example 1, wherein calculating the value of the second polynomial on at least part of the identifiers in the intersection with the second square to obtain a first slice of the value includes:
[0202] generating a random polynomial of the same degree as the second polynomial;
[0203] masking the second polynomial using the random polynomial to obtain a masked polynomial, and sending the masked polynomial to the second party so that the second party decrypts the masked polynomial to obtain a fourth polynomial;
[0204] Based on the random polynomial, a sharded polynomial evaluation protocol is executed with the second party to obtain a first shard of values of the second polynomial on at least some of the identifiers in the intersection, wherein the second party executes the sharded polynomial evaluation protocol based on the fourth polynomial.
[0205] According to one or more embodiments of the present disclosure, Example 4 provides the method of Example 3, wherein, based on the random polynomial, executing a sharded polynomial evaluation protocol with the second party to obtain a first shard of the value of the second polynomial on at least a portion of the identifiers in the intersection set includes:
[0206] Performing homomorphic encryption on the coefficient vector of the random polynomial to obtain an encrypted vector;
[0207] Sending the encrypted vector to the second party, so that the second party generates a difference vector based on the encrypted vector and the fourth polynomial, and sends the difference vector to the first party;
[0208] In response to receiving the difference vector sent by the second party, decrypting the difference vector to obtain the first slice of the value.
[0209] According to one or more embodiments of the present disclosure, Example 5 provides the method described in any one of Examples 1-4, wherein the target data processing task is a structured query language query task or a machine learning model training task.
[0210] According to one or more embodiments of the present disclosure, Example 6 provides a data processing method for secure computing, wherein participants in the secure computing include a first party and a second party, the first party holds a first set of identifiers, each identifier in the first set of identifiers corresponding to an h-dimensional feature, and the second party holds a second set of identifiers, where h ≥ 1. The method, applied to the second party, includes:
[0211] Based on the second identifier set, performing a data processing process based on the privacy set intersection protocol with the first party to obtain an intersection of the first identifier set and the second identifier set;
[0212] Based on the intersection, construct a fifth polynomial, and perform homomorphic encryption on the fifth polynomial to obtain a ciphertext polynomial;
[0213] Sending the ciphertext polynomial to the first party, so that the first party performs, for each dimensional feature of at least some of the dimensional features in the h-dimensional features, a first polynomial corresponding to the dimensional feature according to the ciphertext polynomial, to reduce the degree of the first polynomial to obtain a second polynomial, wherein the first polynomial is constructed by the first party based on the dimensional features corresponding to each identifier in the first identifier set; and calculating with the first party the value of the second polynomial on at least some of the identifiers in the intersection set to obtain a second slice of the value;
[0214] Execute the target data processing task based on the second shard.
[0215] According to one or more embodiments of the present disclosure, Example 7 provides the method of Example 6, wherein constructing a fifth polynomial based on the intersection includes:
[0216] Based on the intersection, the fifth polynomial is constructed by the following formula: k (x) = x kn modg(x)
[0217] Among them, the fifth polynomial is L, h k (x) is the kth fifth polynomial, k=1,2,...,L, N is the number of identifiers in the first identifier set, n is the number of identifiers in the intersection set, x iis the i-th identifier in the intersection, and x is the independent variable.
[0218] According to one or more embodiments of the present disclosure, Example 8 provides the method of Example 6, wherein calculating the value of the second polynomial on at least part of the identifiers in the intersection with the first square to obtain a second slice of the value includes:
[0219] In response to receiving the masking polynomial sent by the first party, decrypting the masking polynomial to obtain a fourth polynomial, wherein the masking polynomial is obtained by masking a random polynomial generated by the first party;
[0220] Based on the fourth polynomial, execute a sharded polynomial evaluation protocol with the first party to obtain a second shard of values of the second polynomial on at least some of the identifiers in the intersection, wherein the first party executes the sharded polynomial evaluation protocol based on the random polynomial.
[0221] According to one or more embodiments of the present disclosure, Example 9 provides the method of Example 8, wherein, based on the fourth polynomial, executing a sharded polynomial evaluation protocol with the first party to obtain a second shard of the second polynomial value on at least a portion of the identifiers in the intersection set includes:
[0222] receiving an encrypted vector sent by the first party, wherein the encrypted vector is obtained by the first party performing homomorphic encryption on a coefficient vector of the random polynomial;
[0223] generating a sixth polynomial using the sum of the coefficient vector of the fourth polynomial and the encrypted vector as a coefficient vector;
[0224] Substituting each identifier in at least part of the identifiers in the intersection into the sixth polynomial to obtain a result vector;
[0225] Generate a random vector with the same length as the result vector, and use the random vector as the second slice of the value;
[0226] Sending a difference vector to the first party, wherein the difference vector is a difference between the result vector and the random vector.
[0227] According to one or more embodiments of the present disclosure, Example 10 provides the method described in any one of Examples 6-9, wherein the target data processing task is a structured query language query task or a machine learning model training task.
[0228] According to one or more embodiments of the present disclosure, Example 11 provides a data processing device for secure computing, wherein participants in the secure computing include a first party and a second party, the first party holds a first set of identifiers, each identifier in the first set of identifiers corresponding to an h-dimensional feature, and the second party holds a second set of identifiers, where h ≥ 1. The device is applied to the first party and includes:
[0229] a first intersection module, configured to perform, with the second party, a data processing process based on a privacy set intersection protocol based on the first identifier set, so that the second party obtains an intersection of the first identifier set and the second identifier set;
[0230] a degree reduction module, configured to, in response to receiving the ciphertext polynomial sent by the second party, perform, for each dimensional feature of at least some of the dimensional features in the h-dimensional features, degree reduction processing on a first polynomial corresponding to the dimensional feature according to the ciphertext polynomial, to obtain a second polynomial, wherein the ciphertext polynomial is generated by the second party based on the intersection, and the first polynomial is constructed based on the dimensional features corresponding to each identifier in the first identifier set; and a first evaluation module, configured to calculate, with the second party, the value of the second polynomial on at least some of the identifiers in the intersection, to obtain a first slice of the value;
[0231] A first execution module is used to execute a target data processing task based on the first shard.
[0232] According to one or more embodiments of the present disclosure, Example 12 provides a data processing device for secure computing, wherein participants in the secure computing include a first party and a second party, the first party holds a first set of identifiers, each identifier in the first set of identifiers corresponding to an h-dimensional feature, and the second party holds a second set of identifiers, where h ≥ 1. The device is applied to the second party and includes:
[0233] A second intersection module is configured to perform a data processing process based on a privacy set intersection protocol with the first party based on the second identifier set to obtain an intersection of the first identifier set and the second identifier set;
[0234] An encryption module, configured to construct a fifth polynomial based on the intersection, and perform homomorphic encryption on the fifth polynomial to obtain a ciphertext polynomial;
[0235] a sending module, configured to send the ciphertext polynomial to the first party, so that the first party performs, for each dimensional feature of at least some of the dimensional features in the h-dimensional features, a first polynomial corresponding to the dimensional feature according to the ciphertext polynomial, to reduce the degree of the first polynomial to obtain a second polynomial, wherein the first polynomial is constructed by the first party based on the dimensional features corresponding to each identifier in the first identifier set; and a second evaluation module, configured to calculate, with the first party, the value of the second polynomial on at least some of the identifiers in the intersection set, to obtain a second slice of the value;
[0236] A second execution module is used to execute the target data processing task based on the second slice.
[0237] According to one or more embodiments of the present disclosure, Example 13 provides a computer-readable medium having a computer program stored thereon, which implements the steps of the method described in any one of Examples 1-10 when executed by a processing device.
[0238] According to one or more embodiments of the present disclosure, Example 14 provides an electronic device, including:
[0239] a storage device having a computer program stored thereon;
[0240] A processing device is used to execute the computer program in the storage device to implement the steps of the method described in any one of Examples 1-10.
[0241] According to one or more embodiments of the present disclosure, Example 15 provides a computer program product, including a computer program, which implements the steps of any one of the methods of Examples 1-10 when executed by a processor.
[0242] The above description is merely an example of the present disclosure and an illustration of the technical principles employed. Those skilled in the art should understand that the scope of disclosure involved in the present disclosure is not limited to the technical solutions formed by a specific combination of the above-mentioned technical features, but should also cover other technical solutions formed by any combination of the above-mentioned technical features or their equivalents without departing from the above-mentioned disclosed concepts. For example, a technical solution formed by replacing the above-mentioned features with (but not limited to) technical features with similar functions disclosed in this disclosure.
[0243] In addition, although each operation is described in a specific order, this should not be understood as requiring these operations to be performed in the specific order shown or in a sequential order. Under certain circumstances, multitasking and parallel processing may be advantageous. Similarly, although some specific implementation details have been included in the above discussion, these should not be interpreted as limiting the scope of the present disclosure. Some features described in the context of a separate embodiment can also be implemented in a single embodiment in combination. On the contrary, the various features described in the context of a single embodiment can also be implemented in multiple embodiments individually or in any suitable sub-combination mode.
[0244] Although the present disclosure has been described using language specific to structural features and / or methodological logical acts, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are merely example forms of implementing the claims. Regarding the apparatus in the above-described embodiments, the specific manner in which each module performs operations has been described in detail in the embodiments related to the method and will not be elaborated upon here.
Claims
1. A data processing method for secure computing, wherein the participants in the secure computing include a first party and a second party, wherein the first party holds a first set of identifiers, wherein each identifier in the first set of identifiers corresponds to an h-dimensional feature, and the second party holds a second set of identifiers, where h ≥ 1, wherein: The method is applied to the first party, comprising: Based on the first identifier set, performing a data processing process based on a privacy set intersection protocol with the second party, so that the second party obtains an intersection of the first identifier set and the second identifier set; In response to receiving the ciphertext polynomial sent by the second party, for each dimensional feature of at least some of the dimensional features in the h-dimensional features, performing a degree reduction process on a first polynomial corresponding to each dimensional feature according to the ciphertext polynomial to obtain a second polynomial, wherein the ciphertext polynomial is generated by the second party based on the intersection, and the first polynomial is constructed based on each dimensional feature corresponding to each identifier in the first identifier set; calculating, with the second party, values of the second polynomial on at least some of the identifiers in the intersection set to obtain a first slice of the values; Execute the target data processing task based on the first shard.
2. The method according to claim 1, wherein There are L ciphertext polynomials, and the kth ciphertext polynomial is obtained by the second party for x kn mod g(x) is homomorphically encrypted, k=1,2,…,L, where N is the number of identifiers in the first identifier set, n is the number of identifiers in the intersection set, x i is the i-th identifier in the intersection, and x is the independent variable; The step of reducing the first polynomial corresponding to each dimensional feature according to the ciphertext polynomial to obtain a second polynomial includes: Convert the first polynomial corresponding to each dimensional feature into form, where f k (x) is the kth polynomial; f k (x) multiplying the k-th ciphertext polynomial to obtain a third polynomial, where k = 1, 2, ..., L; The sum of each of the third polynomials and f0(x) is determined as the second polynomial.
3. The method according to claim 1 or 2, wherein Calculating the value of the second polynomial on at least part of the identifiers in the intersection with the second square to obtain a first slice of the value includes: generating a random polynomial of the same degree as the second polynomial; masking the second polynomial using the random polynomial to obtain a masked polynomial, and sending the masked polynomial to the second party so that the second party decrypts the masked polynomial to obtain a fourth polynomial; Based on the random polynomial, a sharded polynomial evaluation protocol is executed with the second party to obtain a first shard of values of the second polynomial on at least some of the identifiers in the intersection, wherein the second party executes the sharded polynomial evaluation protocol based on the fourth polynomial.
4. The method according to claim 3, wherein: The step of executing a sharded polynomial evaluation protocol with the second party based on the random polynomial to obtain a first shard of a value of the second polynomial on at least a portion of the identifiers in the intersection includes: Performing homomorphic encryption on the coefficient vector of the random polynomial to obtain an encrypted vector; Sending the encrypted vector to the second party, so that the second party generates a difference vector based on the encrypted vector and the fourth polynomial, and sends the difference vector to the first party; In response to receiving the difference vector sent by the second party, decrypting the difference vector to obtain the first slice of the value.
5. The method according to any one of claims 1 to 4, wherein The target data processing task is a structured query language query task or a machine learning model training task.
6. A data processing method for secure computing, wherein the participants in the secure computing include a first party and a second party, the first party holds a first set of identifiers, each identifier in the first set of identifiers corresponding to an h-dimensional feature, and the second party holds a second set of identifiers, where h ≥ 1, wherein: The method is applied to the second party, comprising: Based on the second identifier set, performing a data processing process based on the privacy set intersection protocol with the first party to obtain an intersection of the first identifier set and the second identifier set; Based on the intersection, construct a fifth polynomial, and perform homomorphic encryption on the fifth polynomial to obtain a ciphertext polynomial; Sending the ciphertext polynomial to the first party, so that the first party, for each dimensional feature of at least some of the dimensional features in the h-dimensional features, performs a degree reduction process on the first polynomial corresponding to each dimensional feature according to the ciphertext polynomial to obtain a second polynomial, wherein the first polynomial is constructed by the first party based on each dimensional feature corresponding to each identifier in the first identifier set; and calculating with the first party the value of the second polynomial on at least some of the identifiers in the intersection set to obtain a second slice of the value; Execute the target data processing task based on the second shard.
7. The method according to claim 6, wherein: The constructing a fifth polynomial based on the intersection includes: Based on the intersection, the fifth polynomial is constructed by the following formula: h k (x)=x kn mod g(x) Among them, the fifth polynomial is L, h k (x) is the kth fifth polynomial, k=1,2,…,L, N is the number of identifiers in the first identifier set, n is the number of identifiers in the intersection set, x i is the i-th identifier in the intersection, and x is the independent variable.
8. The method according to claim 6 or 7, wherein: Calculating the value of the second polynomial on at least part of the identifiers in the intersection with the first square to obtain a second slice of the value includes: In response to receiving the masking polynomial sent by the first party, decrypting the masking polynomial to obtain a fourth polynomial, wherein the masking polynomial is obtained by masking a random polynomial generated by the first party; Based on the fourth polynomial, execute a sharded polynomial evaluation protocol with the first party to obtain a second shard of values of the second polynomial on at least some of the identifiers in the intersection, wherein the first party executes the sharded polynomial evaluation protocol based on the random polynomial.
9. The method according to claim 8, wherein The step of executing a sharded polynomial evaluation protocol with the first party based on the fourth polynomial to obtain a second shard of values of the second polynomial on at least a portion of the identifiers in the intersection includes: receiving an encrypted vector sent by the first party, wherein the encrypted vector is obtained by the first party performing homomorphic encryption on a coefficient vector of the random polynomial; generating a sixth polynomial using the sum of the coefficient vector of the fourth polynomial and the encrypted vector as a coefficient vector; Substituting each identifier in at least part of the identifiers in the intersection into the sixth polynomial to obtain a result vector; Generate a random vector with the same length as the result vector, and use the random vector as the second slice of the value; Sending a difference vector to the first party, wherein the difference vector is a difference between the result vector and the random vector.
10. The method according to any one of claims 6 to 9, wherein: The target data processing task is a structured query language query task or a machine learning model training task.
11. A data processing device for secure computing, wherein the participants in the secure computing include a first party and a second party, the first party holds a first set of identifiers, each identifier in the first set of identifiers corresponding to h-dimensional features, and the second party holds a second set of identifiers, where h≥1, wherein: The device is applied to the first party and includes: a first intersection module configured to perform, with the second party, a data processing process based on a privacy set intersection protocol based on the first identifier set, so that the second party obtains an intersection of the first identifier set and the second identifier set; a degree reduction module configured to, in response to receiving the ciphertext polynomial sent by the second party, perform, for each dimensional feature of at least some of the dimensional features in the h-dimensional features, degree reduction processing on a first polynomial corresponding to the dimensional feature according to the ciphertext polynomial to obtain a second polynomial, wherein the ciphertext polynomial is generated by the second party based on the intersection set, and the first polynomial is constructed based on the dimensional features corresponding to each identifier in the first identifier set; and a first evaluation module configured to calculate, with the second party, a value of the second polynomial on at least some of the identifiers in the intersection set to obtain a first slice of the value; The first execution module is configured to execute a target data processing task based on the first shard.
12. A data processing device for secure computing, wherein the participants in the secure computing include a first party and a second party, the first party holds a first set of identifiers, each identifier in the first set of identifiers corresponding to an h-dimensional feature, and the second party holds a second set of identifiers, where h≥1, wherein: The device is applied to the second party, including: a second intersection module configured to perform a data processing process based on a privacy set intersection protocol with the first party based on the second identifier set to obtain an intersection of the first identifier set and the second identifier set; an encryption module configured to construct a fifth polynomial based on the intersection, and perform homomorphic encryption on the fifth polynomial to obtain a ciphertext polynomial; a sending module configured to send the ciphertext polynomial to the first party, so that the first party, for each dimensional feature of at least some of the dimensional features in the h-dimensional features, performs a degree reduction process on the first polynomial corresponding to each dimensional feature according to the ciphertext polynomial to obtain a second polynomial, wherein the first polynomial is constructed by the first party based on each dimensional feature corresponding to each identifier in the first identifier set; and a second evaluation module, configured to calculate, with the first party, the value of the second polynomial on at least some of the identifiers in the intersection set to obtain a second slice of the value; The second execution module is configured to execute the target data processing task based on the second shard.
13. A computer-readable medium storing a computer program, wherein: When the computer program is executed by a processing device, the method according to any one of claims 1 to 10 is implemented.
14. An electronic device comprising: a storage device storing a computer program; A processing device is configured to execute the computer program in the storage device to implement the method according to any one of claims 1 to 10.
15. A computer program product comprising a computer program, wherein When the computer program is executed by a processor, the method according to any one of claims 1 to 10 is implemented.
Citation Information
Patent Citations
Security measures for determination of private set intersections
CN110622165A
Data processing method and device for security computing, medium, equipment and product
CN118157856A
Data processing method and system based on node group, and device and medium
WO2022057631A1
Data processing method and apparatus
WO2022218033A1