WO2023169079A1 - 数据处理 - Google Patents
数据处理 Download PDFInfo
- Publication number
- WO2023169079A1 WO2023169079A1 PCT/CN2023/071505 CN2023071505W WO2023169079A1 WO 2023169079 A1 WO2023169079 A1 WO 2023169079A1 CN 2023071505 W CN2023071505 W CN 2023071505W WO 2023169079 A1 WO2023169079 A1 WO 2023169079A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- mpc
- component
- party
- components
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/50—Oblivious transfer
Definitions
- One or more embodiments of this specification relate to the field of computer technology, and in particular, to data processing methods and devices.
- MPC Secure Multi-Party Computation, secure multi-party computation
- the data provider randomly splits the private data into multiple data components, and provides the data components to the MPC computing party through the secure channel established between the data provider and the MPC computing party.
- the principle of data components provided by data providers to each MPC calculation party is that each MPC calculation party only obtains part of the data components instead of all the original data, and at least two or more MPC calculation parties can restore the data components after interacting with each other.
- Raw data This ensures that each MPC computing party has only been exposed to the data component. Even if an attacker breaks into an MPC computing party and steals or modifies it for a long time, he will not be able to obtain effective information.
- One or more embodiments of this specification describe a data processing method to reduce the pressure caused by data component transmission on public network transmission.
- a data processing method is provided, applied to a system including a data provider and N multi-party secure calculation MPC calculators, where N is an integer above 3, and the method includes: each MPC calculator starts from The first data component is obtained from the data message sent by the data provider, and the first data component is a partial data component among multiple data components obtained after the data provider splits the private data, and the third data component is obtained from the data message sent by the data provider.
- One data component is a logical component; the first data component is converted from a logical component to an arithmetic component to obtain a second data component for MPC processing.
- the N MPC calculation parties include a first MPC calculation party, a second MPC calculation party and a third MPC calculation party;
- the arithmetic components obtained by converting the logical components include: Each MPC computing party performs zero-sharing processing to obtain a third data component, which is an arithmetic component; after the first MPC computing party uses the locally held logical component to perform the first conversion and the second conversion of the arithmetic value, Two options are obtained, and the two options are arithmetic components; the first MPC calculation party uses the two options to inadvertently transmit to the third MPC calculation party; each MPC calculation party uses the locally obtained arithmetic components as the to-be- The shared data is subjected to arithmetic sharing processing to obtain the second data component.
- the zero-share processing includes: each MPC computing party generates a first derived value using a locally held first zero-shared key, and a second locally held zero-shared key.
- the key generates a second derived value; using the difference between the first derived value and the second derived value, a third data component is obtained.
- the logical component includes a first logical component and a second logical component; the first MPC calculation party uses the locally held logical component to perform the first conversion and the third conversion of the arithmetic value.
- the second conversion includes: the first MPC calculation party uses the interactive key to generate a random value; uses the locally held first logical component, the second logical component, the random value and the decimal digits of the fixed-point number used in the MPC processing The first conversion and the second conversion are performed on the numbers to obtain two options; the method also includes: the second MPC calculating party using the interactive key to generate the random value.
- the first conversion and the second conversion respectively use the following formulas to obtain the options m0 and m1:
- m0 (0 ⁇ u1 ⁇ u2) ⁇ (1 ⁇ B)-rnd;
- ⁇ is the exclusive OR operator
- ⁇ is the left shift operator
- u1 and u2 are the first logical component and the second logical component respectively
- rnd is the random value
- B is the fixed-point number used in the MPC processing. Number of decimal places.
- each MPC computing party uses the locally obtained arithmetic component to perform arithmetic sharing processing.
- Obtaining the second data component includes: each MPC computing party encrypts the local data to be shared and then shares it. to the next MPC computing party, and receive the data shared by the previous MPC computing party and decrypt it; merge the decrypted data with the local data to be shared to obtain the second data component; each MPC computing party follows the ring
- the sharing process is performed in the following order.
- a data processing method is provided, applied to a system including a data provider and N MPC calculators, where N is an integer above 3, and the method includes: the data provider converts the private data Split into multiple data components; distribute the multiple data components to the N MPC computing parties through data messages, so that each MPC computing party receives some of the data components among the multiple data components as the first Data component, the first data component is a logical component.
- the plurality of data components are N data components; distributing the plurality of data components to the N MPC computing parties through data messages includes: Two data components are sent respectively, and the first data component sent to any one of the MPC calculators is the same as the second data component sent to the previous MPC calculator of the MPC calculator; each MPC calculator is in a ring. Sort.
- a data processing device applied to a system including a data provider and N multi-party secure calculation MPC calculation parties, where N is an integer above 3; the device is provided on the MPC calculation party , including: a data acquisition unit configured to acquire a first data component from the data provider, where the first data component is part of the data among a plurality of data components obtained by the data provider after splitting the privacy data. component, and the first data component is a logical component; the arithmetic conversion unit is configured to convert the first data component from a logical component to an arithmetic component to obtain a second data component for MPC processing.
- a data processing device applied to a system including a data provider and N multi-party secure calculation MPC calculators, where N is an integer above 3; the device is provided on the data provider , including: a data splitting unit configured to split the private data into multiple data components; a data sending unit configured to distribute the multiple data components to the N MPC computing parties through data messages to Each MPC computing party is caused to receive some of the plurality of data components as first data components, and the first data components are logical components.
- a computing device including a memory and a processor.
- the memory stores executable code.
- the processor executes the executable code, the method of the first aspect or the second aspect is implemented. .
- the data provider only needs to transmit logical components to each MPC calculation party; each MPC calculation party converts the received logical components into arithmetic components, thereby reducing the amount of data transmitted over the public network.
- Figure 1 is a system architecture diagram applicable to the embodiment of this application.
- Figure 2 shows a flow chart of a data processing method according to one embodiment
- Figure 3 shows a flow chart of a data processing method according to another embodiment
- Figure 4 is an example diagram of data transmission provided by an embodiment of the present application.
- Figure 5 is an example diagram of another data transmission provided by the embodiment of the present application.
- Figure 6 is a flow chart of a method for converting logical components into arithmetic components provided by an embodiment of the present application
- Figure 7 shows a schematic block diagram of a data processing device according to one embodiment
- Figure 8 shows a schematic block diagram of a data processing apparatus according to another embodiment.
- the word “if” as used herein may be interpreted as “when” or “when” or “in response to determination” or “in response to detection.”
- the phrase “if determined” or “if (stated condition or event) is detected” may be interpreted as “when determined” or “in response to determining” or “when (stated condition or event) is detected )” or “in response to detecting (a stated condition or event)”.
- FIG 1 is a system architecture diagram applicable to the embodiment of the present application.
- the system includes a data provider and N MPC calculation parties.
- N is an integer above 3.
- N is taken as 3 as an example.
- TECC Trusted Condensed Computing
- MPC Secure Multi-Party Computation, secure multi-party computation
- the above-mentioned MPC calculation method can be each TEE (Trusted Execution Environment, Trusted Execution Environment).
- the existing data component transmission method is that the data provider transmits through the public network between the data provider and the MPC calculator. In this transmission method, each data provider needs to transmit (N-1)* N data components.
- data provider 1 splits data u into u1, u2 and u3. Then u1 and u2 are provided to MPC calculator A, u2 and u3 are provided to MPC calculator B, and u3 and u1 are provided to MPC calculator C.
- the private data provided by the data provider is one hot (one-hot) encoded data of the sample feature data.
- the first data component transmitted by the data provider is a logical component randomly split by one hot encoded data. Due to the needs of some application scenarios, the arithmetic component corresponding to the logical component will also be transmitted.
- the logical component refers to the data component in which each element is a binary value
- the arithmetic component refers to the data component in which each element is an integer data value.
- each element in [n] is 0 or 1.
- the size of each logical component is consistent with X[d][b][n].
- the data provider needs to provide the data components corresponding to the above logical components, that is, each element of X[d][b][n] is represented by an integer, occupying 32 bits. This method will obviously also cause excessive transmission pressure on the public network.
- the size of sending all 6 data components is about 60GB, which is unacceptable.
- This application is committed to reducing the amount of data transmitted over the public network while still ensuring that each MPC calculation party can obtain the logical components and the corresponding arithmetic components.
- FIG 2 shows a flowchart of a data processing method according to one embodiment. This method is performed by the data provider in the system shown in Figure 1. As shown in Figure 2, the method includes the following steps: Step 201: The data provider splits the private data into multiple data components.
- Step 203 Distribute multiple data components to N MPC computing parties through data messages, so that each MPC computing party receives some of the above-mentioned multiple data components as first data components, and the first data component is a logical component. .
- FIG. 3 shows a flowchart of a data processing method executed by each MPC computing party in the system shown in FIG. 1 according to another embodiment. As shown in Figure 3, the method includes the following steps:
- Step 301 The MPC calculation party obtains the first data component from the data message sent by the data provider.
- the first data component is part of the multiple data components obtained by the data provider after splitting the private data, and the first data component is The data components are logical components.
- Step 303 Convert the first data component from a logical component to an arithmetic component to obtain a second data component for MPC processing.
- the data provider replaces the original need to transmit logical components and arithmetic components to the MPC calculation side at the same time with only the logical components; each MPC calculation side uses the received logical components to convert Arithmetic component, thereby reducing the amount of data transmitted over the public network.
- the data provider can still use the existing transmission method to split the private data into multiple data components. Then two data components are sent to each MPC calculator respectively, and the first data component sent to any one of the MPC calculators is the same as the second data component sent to the previous MPC calculator of the MPC calculator.
- data provider 1 splits data u into u1, u2 and u3. Then u1 and u2 are provided to MPC calculator A, u2 and u3 are provided to MPC calculator B, and u3 and u1 are provided to MPC calculator C. That is, in step 301, the first data components obtained by MPC calculation party A are u1 and u2. Since u1 and u2 are both logical components, u1 and u2 are called the first logical component and the second logical component respectively.
- the first logical component and the second logical component included in the first data component obtained by MPC calculation party B are u2 and u3 respectively
- the first logical component included in the first data component obtained by MPC calculation party C and the second logical components are u3 and u1 respectively.
- the data provider can send N data components to N MPC computing parties respectively, that is, each MPC computing party receives one of the data components and each MPC computing party receives the data component. different.
- step 301 after the MPC calculating party receives the data component, it performs arithmetic sharing (sharing) processing using the received data component to obtain the first data component.
- the so-called arithmetic sharing processing refers to: encrypting the local data to be shared and sharing it with the next MPC computing party, and receiving and decrypting the data shared by the previous MPC computing party. Then, the received decrypted data is combined with the local data to be shared to obtain the first data component.
- arithmetic sharing processing is a process in which each MPC calculation party performs data sharing in a circular order.
- the key used by the MPC calculator for encryption is the same as the key used by the next MPC calculator for decryption. This key is preconfigured or agreed upon.
- MPC calculator A, MPC calculator B and MPC calculator C jointly perform an arithmetic sharing process.
- each MPC calculating party has pre-agreed the interactive key so that each MPC calculating party has an interactive key pair (share_rng_d, share_rng_u) locally.
- the share_rng_d of MPC calculation party A is the same as the share_rng_u of MPC calculation party C.
- the share_rng_d of MPC calculation party B is the same as the share_rng_u of MPC calculation party A.
- the share_rng_d of MPC calculation party C is the same as the share_rng_u of MPC calculation party B.
- MPC computing party A uses share_rng_d to encrypt u1 and then transmits it to MPC computing party C.
- MPC computing party C uses share_rng_u to decrypt and obtain u1.
- MPC calculator B uses share_rng_d to encrypt u2 and transmits it to MPC calculator A.
- MPC calculator A uses share_rng_u to decrypt and obtain u2.
- MPC Calculator C uses share_rng_d to encrypt u3 and transmits it to MPC Calculator B.
- MPC Calculator B uses share_rng_u to decrypt and obtain u3.
- u1 and u2 exist locally in MPC computing party A
- u2 and u3 exist locally in MPC computing party B
- u3 and u1 exist locally in MPC computing party C.
- the public network only needs to transmit 3 data components (logical components), which is reduced from the original 6 data components to 3.
- the pressure on network transmission is very small because it is within the high-speed network.
- the number of data components split by the data provider is less than N, and only one data component is transmitted to some of the MPC calculation parties, and other MPCs obtain 0 data components. That is, some MPC computing parties received one of the data components respectively and each MPC computing party received different data components, while another part of the MPC computing parties received 0 data components.
- the MPC calculation party after the MPC calculation party obtains the data component (1 or 0) from the data message, it can first perform zero sharing processing to obtain the fourth data component; and then The obtained fourth data component and the data component obtained from the data message are combined to obtain the fifth data component; and then the fifth data component is used as the data to be shared for arithmetic sharing processing to obtain the first data component.
- Zero sharing processing means that each MPC calculation party generates data components independently and the sum of the data components generated by each MPC calculation party is 0.
- the zero-share processing includes: the MPC computing party generates a first derived value using a locally held first zero-shared key, and generates a second derived value using a second locally held zero-shared key; using the first The difference between the derived value and the second derived value obtains the above-mentioned fourth data component.
- Each MPC computing party has pre-agreed a zero-shared key so that each MPC computing party has a key pair (prng, prngu) consisting of the first zero-shared key and the second zero-shared key locally.
- the prng of MPC calculation side A is the same as the prngu of MPC calculation side C.
- the prng of MPC calculation side B is the same as the prngu of MPC calculation side A.
- the prng of MPC calculation side C is the same as the prngu of MPC calculation side B.
- This implementation method is described using the three MPC calculation methods shown in Figure 1 as an example. As shown in Figure 5, first, the data provider still splits the original data into two data components y1 and y2. Then y1 is transferred to MPC calculation side A, y2 is transferred to MPC calculation side B, and MPC calculation side C gets 0 data components.
- MPC calculator A, MPC calculator B and MPC calculator C jointly perform a zero sharing process and obtain the three components of 0 x1, x2 and x3 respectively.
- each MPC calculation party uses prng to generate the first derived value buf1, uses prngu to generate the second derived value buf2, and uses the values of buf1-buf2 as the fourth data component obtained by zero sharing processing.
- MPC calculation party A combines the results of zero-sharing processing x1 and y1 to obtain the fifth data component x1+y1.
- MPC calculation party B combines the results of zero-sharing processing x2 and y2 to obtain the fifth data component x2+y2.
- MPC calculation Party C combines the result x3 of the zero sharing process with the received 0 data components to obtain the fifth data component x3.
- MPC calculator A, MPC calculator B and MPC calculator C jointly perform an arithmetic sharing process.
- MPC computing party A uses share_rng_d to encrypt x1+y1 and then transmits it to MPC computing party C.
- MPC computing party C uses share_rng_u to decrypt and obtain x1+y1.
- MPC Calculator B uses share_rng_d to encrypt x2+y2 and transmits it to MPC Calculator A.
- MPC Calculator A uses share_rng_u to decrypt and obtain x2+y2.
- MPC Calculator C uses share_rng_d to encrypt x3 and then transmits it to MPC Calculator B.
- MPC Calculator B uses share_rng_u to decrypt and obtain x3.
- the public network only needs to transmit 2 data components, which is reduced from the original 6 data components to 2.
- the pressure on network transmission is very small because it is within the high-speed network.
- the data components can be reduced from 6 to 3 or 2 in the manner described in the above embodiment.
- step 303 that is, "Convert the first data component from a logical component to an arithmetic component, to obtain a second data component for MPC processing" will be described in detail below with reference to the embodiment.
- Figure 6 is a flow chart of a conversion method from logical components to arithmetic components provided by an embodiment of the present application.
- the system includes a first MPC calculation side, a second MPC calculation side and a third MPC calculation side.
- Step 601 Each MPC calculation party performs zero sharing processing to obtain the third data component.
- each MPC computing party uses the locally held first zero-shared key to generate a first derived value, and the locally held second zero-shared key to generate a second derived value; and then uses the first derived value The difference between the value and the second derived value results in the third data component.
- the third data component obtained through zero sharing processing is an arithmetic component. Specific examples will be given in subsequent embodiments.
- Step 603 After the first MPC calculation party performs the first conversion and the second conversion of the arithmetic value using the locally held logical components, two options are obtained, and the two options are arithmetic components.
- the first MPC computing party can use the interactive key to generate a random value; use the locally held first logical component, the second logical component, the random value and the number of decimal places of the fixed-point number to perform the third The first conversion and the second conversion yield two options.
- the second MPC calculating party can also use the interactive key to generate the above-mentioned random value.
- ⁇ is the exclusive OR operator
- ⁇ is the left shift operator
- B is the number of decimal places of the fixed-point number used in MPC processing. Fixed-point numbers are used in the MPC algorithm. The so-called fixed-point numbers generally refer to fixed-point decimals. Most of the numerical data processed by computers contain decimals, and the decimal point is usually hidden at a fixed position, which is called fixed-point representation, or fixed-point number for short.
- rnd is a random value that can be generated using the locally held interactive key share_rng_u.
- Step 605 The first MPC computing party uses the two options to perform unintentional transmission to the third MPC computing party.
- Oblivious transfer is a cryptographic protocol that is currently widely used in MPC.
- the purpose is that the MPC calculator sends m0 and m1 to another MPC calculator.
- the other MPC calculator can only get one of m0 and m1, and the MPC calculator that sends m0 and m1 cannot know the other MPC calculator. Which one of m0 and m1 is obtained.
- the inadvertent transmission in this step can be a three-party inadvertent transmission.
- the first MPC calculation party serves as the sender of the inadvertent transmission
- the second MPC calculation party serves as the assisting party
- the third party serves as the helper.
- the MPC computing party serves as the receiving party.
- the first MPC computing party uses m0 and m1 as two choices, and the second MPC computing party and the third MPC computing party locally hold u3 as a choice to perform an unintentional transmission. Specific examples will be described in subsequent embodiments.
- Step 607 Each MPC computing party performs arithmetic sharing processing on the locally obtained arithmetic component as the data to be shared, and obtains the second data component.
- each MPC computing party when performing arithmetic sharing processing, each MPC computing party encrypts the local data to be shared and shares it with the next MPC computing party, and receives the data shared by the previous MPC computing party and decrypts it; the decrypted data is The data is merged with the local data to be shared to obtain the second data component; each MPC computing party performs the above sharing processing in a ring order.
- MPC calculator A, MPC calculator B and MPC calculator C jointly perform a zero-sharing process and obtain their respective third data components r1, r2 and r3 respectively.
- r1, r2 and r3 are all arithmetic components.
- MPC calculation party A uses the local share_rng_u to generate a random value rnd and determine
- m1 (1 ⁇ u1 ⁇ u2) ⁇ (1 ⁇ B)-rnd.
- 1 ⁇ B is a process of converting arithmetic components, that is, converting (1 ⁇ x.b ⁇ x.bu) into an arithmetic value.
- MPC computing party A serves as the send party for casual transmission
- MPC computing party B serves as the help party
- MPC computing party C serves as the receiving party.
- MPC Computing Party A takes m0 and m1 as two choices
- MPC Computing Party B and MPC Computing Party C locally hold u3 as a choice, and performs an unintentional transmission.
- MPC calculator A and MPC calculator B interact to generate common random values W0 and W1.
- MPC calculation party A sends m0 ⁇ W0, m1 ⁇ W1 to MPC calculation party C.
- MPC calculator B uses u3 to send Wc to MPC calculator C, where Wc is W0 or W1.
- MPC calculation side C uses Wc to decrypt m0 ⁇ W0 and m1 ⁇ W1 respectively, decrypts one of them, and obtains mi, which is a value between m0 and m1.
- MPC calculator A uses r1 as the data to be shared
- MPC calculator B uses r2’ as the data to be shared
- MPC calculator C uses r3’ as the data to be shared, and performs an arithmetic sharing process to obtain their respective arithmetic components. That is, the MPC calculation side A obtains the arithmetic component r1+r2’, the MPC calculation side B obtains the arithmetic component r2+r3’, and the MPC calculation side C obtains the arithmetic component r1+r3’.
- r1+r2’+r3’ r1+r2+rnd+r3+(0 ⁇ u1 ⁇ u2)*(1 ⁇ B)-rnd
- r1+r2’+r3’ r1+r2+rnd+r3+(1 ⁇ u1 ⁇ u2)*(1 ⁇ B)-rnd
- (1 ⁇ B) is actually a process of converting logical values into arithmetic values. That is to say, r1+r2'+r3' after the above processing is equivalent to the sum of logical quantities (u3 ⁇ u1 ⁇ u2) and then Converted value. Perform arithmetic sharing on r1, r2’ and r3’, and each of the three MPC calculation methods will have arithmetic components.
- the data provider only needs to send the logical component of the sample and does not need to send the arithmetic component. Compared with the need to transmit the logical component and the arithmetic component at the same time, the data transmission amount is reduced to 1/33.
- FIG. 7 shows a schematic block diagram of a data processing apparatus according to one embodiment.
- the device can be set on the MPC calculation side in the system shown in Figure 1, and can be embodied in the form of an application program, or a plug-in in the application program or a software development kit (Software Development Kit, SDK) and other functional units.
- the device 700 includes: a data acquisition unit 701 and an arithmetic conversion unit 702.
- the main functions of each component unit are as follows: the data acquisition unit 701 is configured to obtain the first data component from the data provider.
- the first data component is part of multiple data components obtained by the data provider after splitting the private data. data component, and the first data component is a logical component.
- the arithmetic conversion unit 702 is configured to convert the first data component from a logical component to an arithmetic component to obtain a second data component for MPC processing.
- the arithmetic conversion unit 702 can be specifically configured to: perform zero sharing processing to obtain a third data component, where the third data component is an arithmetic component; if the device is located on the first MPC calculation side, Then the arithmetic conversion unit 702 uses the locally held logical components to perform the first conversion and the second conversion of the arithmetic value, and obtains two options, which are arithmetic components; uses the two options to calculate to the third MPC party to inadvertently transmit.
- the arithmetic conversion unit 702 obtains the selection items inadvertently transmitted by the first MPC computing party.
- the arithmetic conversion unit 702 is further configured to perform arithmetic sharing processing on the locally obtained arithmetic component as data to be shared, to obtain the second data component.
- the arithmetic conversion unit 702 can use the locally held first zero-shared key to generate the first derived value, and the locally held second zero-shared key to generate the second derived value; using the difference between the first derived value and the second derived value to obtain the third data component.
- the arithmetic conversion unit 702 can specifically use the interactive key to generate a random value; use the locally held third The first logical component, the second logical component, the random value and the number of decimal places of the adopted fixed-point number are subjected to the first conversion and the second conversion to obtain two options.
- the arithmetic conversion unit 702 also generates the above-mentioned random value using the interactive key.
- first conversion and second conversion use the following formulas to obtain the options m0 and m1 respectively:
- ⁇ is the exclusive OR operator
- ⁇ is the left shift operator
- u1 and u2 are the first logical component and the second logical component respectively
- rnd is a random value
- B is the number of decimal places of the fixed-point number used.
- the arithmetic conversion unit 702 uses the locally obtained arithmetic components to perform arithmetic sharing processing, it can specifically encrypt the local data to be shared and share it with the next MPC calculation party, and receive the previous MPC calculation.
- the data shared by each party is decrypted; the decrypted data is merged with the local data to be shared to obtain the second data component; each MPC computing party performs the above sharing processing in a ring order.
- FIG. 8 shows a schematic block diagram of a data processing apparatus according to one embodiment.
- the device can be provided on the data provider in the system shown in Figure 1, and can be embodied in the form of an application program, or a functional unit such as a plug-in in the application program or a Software Development Kit (SDK).
- SDK Software Development Kit
- the device 800 includes: a data splitting unit 801 and a data sending unit 802.
- the main functions of each component unit are as follows: the data splitting unit 801 is configured to split private data into multiple data components.
- the data sending unit 802 is configured to distribute multiple data components to N MPC computing parties through data messages, so that each MPC computing party receives some of the data components among the multiple data components as the first data component, and the first data component
- the data components are logical components.
- the above-mentioned plurality of data components are N data components.
- the data sending unit 802 can send two data components to each MPC calculating party respectively, and the first data component sent to any one of the MPC calculating parties is the same as the second data sent to the previous MPC calculating party of the MPC calculating party.
- the components are the same; each MPC calculation method is sorted in a ring.
- a computer-readable storage medium is also provided, with a computer program stored thereon.
- the computer program When the computer program is executed in a computer, the computer is caused to execute what is described in connection with FIG. 2, FIG. 3 or FIG. 6. Methods.
- a computing device including a memory and a processor, executable code is stored in the memory, and when the processor executes the executable code, the steps shown in FIG. 2 and FIG. 3 are implemented. Or the method described in Figure 6.
- the computer-readable storage medium may be, for example, but is not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus or device, or any combination thereof.
- a computer-readable storage medium may be any tangible medium that contains or stores a program that may be used by or in conjunction with an instruction execution system, apparatus, or device.
- the above-mentioned processor may include one or more single-core processors or multi-core processors.
- the processor may include any combination of general-purpose processors or special-purpose processors (eg, image processors, applications processors, baseband processors, etc.).
- At least one of the processors may be packaged with logic for one or more controllers of system control logic. In one embodiment, at least one of the processors may be packaged with logic for one or more controllers of system control logic to form a system-in-package. In one embodiment, at least one of the processors may be integrated on the same die as logic for one or more controllers of system control logic. In one embodiment, at least one of the processors may be integrated on the same die with logic for one or more controllers for system control logic to form a system-on-a-chip.
- Computer program code for performing the operations of the present invention may be written in one or more programming languages, including object-oriented programming languages such as Java, Smalltalk, C++, and conventional Procedural programming language—such as "C" or a similar programming language.
- the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer can be connected to the user's computer through any kind of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (such as an Internet service provider through the Internet). connect).
- LAN local area network
- WAN wide area network
- Internet service provider such as an Internet service provider through the Internet. connect
- the functions described in the present invention can be implemented by hardware, software, firmware, or any combination thereof.
- the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例提供了一种数据处理方法和装置,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为3以上的整数。根据该实施例的方法,首先各MPC计算方从所述数据提供方发送的数据消息中获取第一数据分量,所述第一数据分量为所述数据提供方将隐私数据拆分后得到的多个数据分量中的部分数据分量,且所述第一数据分量为逻辑分量;然后对所述第一数据分量进行从逻辑分量到算数分量的转换,得到第二数据分量用以进行MPC处理。
Description
本说明书一个或多个实施例涉及计算机技术领域,尤其涉及数据处理的方法和装置。
众所周知,数据往往包含大量的隐私和机密信息,统称为隐私数据,很多企业、医院等机构都会对隐私数据进行保护。在密码学中如何在不泄露隐私的情况下,保密地使用互联网实现数据共享是一个重要的问题。在这种背景下,MPC(Secure Multi-Party Computation,安全多方计算)应运而生。MPC指的是一组互相不信任的参与者在保护隐私的同时,还可以进行协同计算。其中,上述的参与者称为MPC计算方。
数据提供方将隐私数据随机拆分成多个数据分量,将数据分量通过数据提供者与MPC计算方之间建立的安全信道提供给MPC计算方。数据提供者提供给各MPC计算方数据分量的原则在于,每个MPC计算方只获得其中一部分数据分量而非原始数据全部,并且至少2个以上的MPC计算方之间交互数据分量后能还原出原始数据。这样能够保证每个MPC计算方都只接触过数据分量,即便攻击者攻破一个MPC计算方,并且长期窃取或修改它,也不能获得有效信息。
由于数据提供者与MPC计算方之间是通过公网传输的,因此亟需一种数据处理方式能够降低数据提供者与MPC计算方之间数据分量传输对公网传输造成的压力。
发明内容
本说明书一个或多个实施例描述了一种数据处理方法,以便于降低数据分量传输对公网传输造成的压力。
根据第一方面,提供了一种数据处理方法,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为3以上的整数,所述方法包括:各MPC计算方从所述数据提供方发送的数据消息中获取第一数据分量,所述第一数据分量为所述数据提供方将隐私数据拆分后得到的多个数据分量中的部分数据分量,且所述第一数据分量为逻辑分量;对所述第一数据分量进行从逻辑分量到算数分量的转换,得到第二数据分量用以进行MPC处理。
根据本申请实施例中一可实现的方式,所述N个MPC计算方包括第一MPC计算方、第二MPC计算方和第三MPC计算方;对所述逻辑分量进行转换得到算数分量包括:各 MPC计算方进行零共享处理,得到第三数据分量,所述第三数据分量为算数分量;第一MPC计算方利用本地持有的逻辑分量进行算数值的第一转换和第二转换后,得到两个选择项,所述两个选择项为算数分量;第一MPC计算方利用所述两个选择项向第三MPC计算方进行不经意传输;各MPC计算方将本地得到的算数分量作为待分享数据进行算数共享处理,得到所述第二数据分量。
根据本申请实施例中一可实现的方式,所述零共享处理包括:各MPC计算方利用本地持有的第一零共享密钥生成第一派生值,以及本地持有的第二零共享密钥生成第二派生值;利用所述第一派生值与所述第二派生值的差值,得到第三数据分量。
根据本申请实施例中一可实现的方式,所述逻辑分量包括第一逻辑分量和第二逻辑分量;所述第一MPC计算方利用本地持有的逻辑分量进行算数值的第一转换和第二转换包括:所述第一MPC计算方利用交互密钥生成随机值;利用本地持有的第一逻辑分量、第二逻辑分量、所述随机值以及所述MPC处理所采用定点数的小数位数进行所述第一转换和第二转换,得到两个选择项;该方法还包括:所述第二MPC计算方利用所述交互密钥生成所述随机值。
根据本申请实施例中一可实现的方式,所述第一转换和所述第二转换分别采用如下公式得到选择项m0和m1:
m0=(0^u1^u2)×(1<<B)-rnd;
m1=(1^u1^u2)×(1<<B)-rnd
其中,^为异或运算符,<<为左移运算符,u1和u2分别为第一逻辑分量和第二逻辑分量,rnd为所述随机值,B为所述MPC处理所采用定点数的小数位数。
根据本申请实施例中一可实现的方式,各MPC计算方利用本地得到的算数分量进行算数共享处理,得到所述第二数据分量包括:各MPC计算方将本地的待分享数据进行加密后分享给下一MPC计算方,并接收上一MPC计算方分享来的数据并进行解密;将解密后的数据与本地的待分享数据合并,得到所述第二数据分量;其中各MPC计算方按照环状次序进行所述分享处理。
根据第二方面,提供了一种数据处理方法,应用于包括数据提供方和N个MPC计算方的系统,所述N为3以上的整数,所述方法包括:所述数据提供方将隐私数据拆分为多个数据分量;将所述多个数据分量通过数据消息分发给所述N个MPC计算方,以使得各MPC计算方接收到所述多个数据分量中的部分数据分量作为第一数据分量,所 述第一数据分量为逻辑分量。
根据本申请实施例中一可实现的方式,所述多个数据分量为N个数据分量;将所述多个数据分量通过数据消息分发给所述N个MPC计算方包括:向各MPC计算方分别发送两个数据分量,且向其中任一个MPC计算方发送的第一个数据分量与向该MPC计算方的上一个MPC计算方发送的第二个数据分量相同;各MPC计算方按环状排序。
根据第三方面,提供了一种数据处理装置,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为3以上的整数;所述装置设置于所述MPC计算方,包括:数据获取单元,被配置为从所述数据提供方获取第一数据分量,所述第一数据分量为所述数据提供方将隐私数据拆分后得到的多个数据分量中的部分数据分量,且所述第一数据分量为逻辑分量;算数转换单元,被配置为对所述第一数据分量进行从逻辑分量到算数分量的转换,得到第二数据分量用以进行MPC处理。
根据第四方面,提供了一种数据处理装置,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为3以上的整数;所述装置设置于所述数据提供方,包括:数据拆分单元,被配置为将隐私数据拆分为多个数据分量;数据发送单元,被配置为将所述多个数据分量通过数据消息分发给所述N个MPC计算方,以使得各MPC计算方接收到所述多个数据分量中的部分数据分量作为第一数据分量,所述第一数据分量为逻辑分量。
根据第五方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面的方法。
根据本说明书实施例提供的方法和装置,数据提供方仅需要向各MPC计算方传输逻辑分量;由各MPC计算方利用接收到的逻辑分量转换得到算数分量,从而降低公网传输的数据量。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例适用的系统架构图;
图2示出根据一个实施例的数据处理方法的流程图;
图3示出根据另一个实施例的数据处理方法的流程图;
图4为本申请实施例提供的一种数据传输的实例图;
图5为本申请实施例提供的另一种数据传输的实例图;
图6为本申请实施例提供的逻辑分量转换算数分量的方法流程图;
图7示出根据一个实施例的数据处理装置的示意性框图;
图8示出根据另一个实施例的数据处理装置的示意性框图。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
图1为本申请实施例适用的系统架构图,如图1中所示,该系统中包括数据提供方和N个MPC计算方,N为3以上的整数,在图1中N以3为例。TECC(可信密态计算)基于MPC(Secure Multi-Party Computation,安全多方计算)算法,是一种安全高效的密态计算方法。在TECC应用场景下,上述的MPC计算方可以为各TEE(Trusted Execution Environment,可信执行环境)。
目前已有的数据分量传输方式是,数据提供方由于数据提供方与MPC计算方之间是通过公网传输的,这种传输方式下,每个数据提供方都需要传输(N-1)*N份数据分量。
以图1中为例,数据提供者1将数据u拆分成u1、u2和u3。然后将u1、u2提供给MPC计算方A,将u2、u3提供给MPC计算方B,将u3、u1提供给MPC计算方C。
在诸如机器学习等模型训练或预测场景下,数据提供方提供的隐私数据为样本特征数据的one hot(独热)编码数据。相应地,数据提供方传输的第一数据分量为由one hot 编码数据随机拆分的逻辑分量,由于一些应用场景的需要,同时会传输逻辑分量对应的算数分量。其中逻辑分量指的是各元素为二进制值的数据分量,算数分量指的是各元素为整型数据值的数据分量。例如,对于特征数量为d,分桶为b,样本数量为n的数据集,可以使用X[d][b][n]来表示样本特征数据的one hot编码,X[d][b][n]中各元素的取值为0或1。每个元素占用1bit,将其拆分为逻辑分量,每个逻辑分量的大小与X[d][b][n]一致。同时,数据提供方需要提供上述逻辑分量对应的数据分量,即X[d][b][n]的每个元素都用一个整数表示,占用32bit。这种方式显然也会造成公网的传输压力过大,以d=200,b=13,n=100w为例,全量发送6个数据分量大小约为60GB,这是难以接受的。本申请则致力于在降低公网传输的数据量的基础上,仍保证各MPC计算方能够获取逻辑分量以及对应的算数分量。
下面结合附图,对本说明书提供的方案进行描述。
图2示出根据一个实施例的数据处理方法的流程图。该方法由图1所示系统中的数据提供者执行。如图2所示,该方法包括以下步骤:步骤201:数据提供方将隐私数据拆分为多个数据分量。
步骤203:将多个数据分量通过数据消息分发给N个MPC计算方,以使得各MPC计算方接收到上述多个数据分量中的部分数据分量作为第一数据分量,第一数据分量为逻辑分量。
图3示出根据另一个实施例的数据处理方法的流程图,该方法由图1所示系统中的各MPC计算方执行。如图3中所示,该方法包括以下步骤:
步骤301:MPC计算方从数据提供方发送的数据消息中获取第一数据分量,第一数据分量为数据提供方将隐私数据拆分后得到的多个数据分量中的部分数据分量,且第一数据分量为逻辑分量。
步骤303:对第一数据分量进行从逻辑分量到算数分量的转换,得到第二数据分量用以进行MPC处理。
通过图2和图3所示数据处理方法,数据提供方将原本需要同时向MPC计算方传输逻辑分量和算数分量,替换为仅传输逻辑分量;由各MPC计算方利用接收到的逻辑分量转换得到算数分量,从而降低公网传输的数据量。
作为其中一种可实现的方式,数据提供方仍可以采用现有的传输方式,将隐私数据拆分成多个数据分量。然后向各MPC计算方分别发送两个数据分量,且向其中任一个MPC计算方发送的第一个数据分量与向该MPC计算方的上一个MPC计算方发送的第二个数据分量相同。
以图1中为例,数据提供者1将数据u拆分成u1、u2和u3。然后将u1、u2提供给MPC计算方A,将u2、u3提供给MPC计算方B,将u3、u1提供给MPC计算方C。即在步骤301中,MPC计算方A获取到的第一数据分量为u1和u2,由于u1和u2均为逻辑分量,因此将u1和u2分别称为第一逻辑分量和第二逻辑分量。相应地,MPC计算方B获取到的第一数据分量中包含的第一逻辑分量和第二逻辑分量分别为u2和u3,MPC计算方C获取到的第一数据分量中包含的第一逻辑分量和第二逻辑分量分别为u3和u1。
作为另一种可实现的方式,数据提供方可以将N个数据分量分别发送给N个MPC计算方,即每个MPC计算方接收到其中一个数据分量且每个MPC计算方接收到的数据分量不同。
这种情况下,在上述步骤301中,MPC计算方接收到数据分量后,利用接收到的数据分量进行算数共享(sharing)处理即可获取到第一数据分量。
所谓算数共享处理指的是:将本地的待分享数据进行加密后分享给下一MPC计算方,并接收上一MPC计算方分享来的数据并进行解密。然后将接收到的解密后的数据与本地的待分享数据合并,得到第一数据分量。也就是说,算数共享处理是各MPC计算方按照环状次序进行数据分享的过程。另外,MPC计算方进行加密时采用的密钥与下一MPC计算方解密所采用的密钥相同,该密钥是预先配置或约定好的。
以图1所示的3个MPC计算方为例对这种实现方式进行描述。如图4所示,首先,数据提供方依然将原始数据拆分成三个数据分量u1、u2和u3。然后将u1传输给MPC计算方A,将u2传输给MPC计算方B,将u3传输给MPC计算方C。
MPC计算方A、MPC计算方B和MPC计算方C共同执行一次算数共享处理。其中,每个MPC计算方预先约定好交互密钥使得每个MPC计算方本地均存在交互密钥对(share_rng_d,share_rng_u)。MPC计算方A的share_rng_d与MPC计算方C的share_rng_u相同,MPC计算方B的share_rng_d与MPC计算方A的share_rng_u相同,MPC计算方C的share_rng_d与MPC计算方B的share_rng_u相同。
在进行算数共享处理时,MPC计算方A利用share_rng_d对u1进行加密后传输给MPC计算方C,MPC计算方C利用share_rng_u进行解密得到u1。
MPC计算方B利用share_rng_d对u2进行加密后传输给MPC计算方A,MPC计算方A利用share_rng_u进行解密得到u2。
MPC计算方C利用share_rng_d对u3进行加密后传输给MPC计算方B,MPC计算方B利用share_rng_u进行解密得到u3。
进行算数共享处理之后,MPC计算方A本地存在u1和u2,MPC计算方B本地存在u2和u3,MPC计算方C本地存在u3和u1。但公网仅需要传输3份数据分量(逻辑分量),即从原本需要传输6份数据分量减少到3份。而在MPC计算方之间进行算数共享时,由于是在高速网内部因此对于网络传输的压力很小。
作为再一种可实现的方式,数据提供方拆分得到的数据分量数量小于N,仅向其中部分MPC计算方传输一个数据分量,其他MPC获取0个数据分量。即有部分MPC计算方分别接收到其中一个数据分量且每个MPC计算方接收到的数据分量不同,另一部分MPC计算方接收到0个数据分量。
这种情况下,在上述步骤301中,MPC计算方从数据消息中获取到数据分量(1个或0个)后,可以首先进行零共享(zero sharing)处理,得到第四数据分量;然后将得到的第四数据分量和从数据消息中获取的数据分量进行合并后得到第五数据分量;再将第五数据分量作为待分享数据进行算数共享处理,得到第一数据分量。
零共享处理指的是各MPC计算方各自生成数据分量并且各MPC计算方生成的数据分量的和为0。具体地,零共享处理包括:MPC计算方利用本地持有的第一零共享密钥生成第一派生值,以及本地持有的第二零共享密钥生成第二派生值;利用所述第一派生值与所述第二派生值的差值,得到上述的第四数据分量。其中每个MPC计算方预先约定好零共享密钥使得每个MPC计算方本地均存在由第一零共享密钥和第二零共享密钥构成的密钥对(prng,prngu)。MPC计算方A的prng与MPC计算方C的prngu相同,MPC计算方B的prng与MPC计算方A的prngu相同,MPC计算方C的prng与MPC计算方B的prngu相同。
以图1所示的3个MPC计算方为例对这种实现方式进行描述。如图5所示,首先,数据提供方依然将原始数据拆分成两个数据分量y1和y2。然后将y1传输给MPC计算方A,将y2传输给MPC计算方B,MPC计算方C得到0个数据分量。
MPC计算方A、MPC计算方B和MPC计算方C共同执行一次零共享处理,分别获得0的三个分量x1、x2和x3。具体地,各MPC计算方各自使用prng生成第一派生值buf1,使用prngu生成第二派生值buf2,将buf1-buf2的值作为零共享处理得到的第四数据分量。
MPC计算方A将零共享处理的结果x1与y1合并后得到第五数据分量x1+y1,MPC计算方B将零共享处理的结果x2与y2合并后得到第五数据分量x2+y2,MPC计算方C将零共享处理的结果x3与接收到的0个数据分量合并后得到第五数据分量x3。
然后MPC计算方A、MPC计算方B和MPC计算方C共同执行一次算数共享处理。
在进行算数共享处理时,MPC计算方A利用share_rng_d对x1+y1进行加密后传输给MPC计算方C,MPC计算方C利用share_rng_u进行解密得到x1+y1。
MPC计算方B利用share_rng_d对x2+y2进行加密后传输给MPC计算方A,MPC计算方A利用share_rng_u进行解密得到x2+y2。
MPC计算方C利用share_rng_d对x3进行加密后传输给MPC计算方B,MPC计算方B利用share_rng_u进行解密得到x3。
进行算数共享处理之后,MPC计算方A本地存在u1=x1+y1,u2=x2+y2,MPC计算方B本地存在u2=x2+y2,u3=x3,MPC计算方C本地存在u3=x3,u1=x1+y1。但公网仅需要传输2份数据分量,即从原本需要传输6份数据分量减少到2份。而在MPC计算方之间进行算数共享时,由于是在高速网内部因此对于网络传输的压力很小。
通过上面实施例中所述的方式可以将数据分量(逻辑分量)从6个缩小为3个或2个。
下面结合实施例对上述步骤303即“对第一数据分量进行从逻辑分量到算数分量的转换,得到第二数据分量用以进行MPC处理”进行详细描述。
图6为本申请实施例提供的一种从逻辑分量到算数分量的转换方法流程图,在该流程中,系统中包括第一MPC计算方、第二MPC计算方和第三MPC计算方。如图6中所示,包括以下步骤:步骤601:各MPC计算方进行零共享处理,得到第三数据分量。
在进行零共享处理时,各MPC计算方利用本地持有的第一零共享密钥生成第一派生值,以及本地持有的第二零共享密钥生成第二派生值;然后利用第一派生值与第二派生值的差值,得到第三数据分量。经过零共享处理得到的第三数据分量为算数分量。具体将在后续实施例中举例说明。
步骤603:第一MPC计算方利用本地持有的逻辑分量进行算数值的第一转换和第二转换后,得到两个选择项,所述两个选择项为算数分量。
作为一种可实现的方式,第一MPC计算方可以利用交互密钥生成随机值;利用本地持有的第一逻辑分量、第二逻辑分量、随机值以及所采用定点数的小数位数进行第一转换和第二转换,得到两个选择项。另外,第二MPC计算方也可以利用交互密钥生成上述的随机值。
其中可以利用如下公式分别得到两个选择项m0和m1:
m0=(0^u1^u2)×(1<<B)-rnd
m1=(1^u1^u2)×(1<<B)-rnd
其中,^为异或运算符,<<为左移运算符。B为MPC处理所采用定点数的小数位数。MPC算法中使用的是定点数,所谓定点数一般指的是定点小数。计算机处理的数值数 据多数带有小数,小数点一般隐含在某个固定的位置上,称为定点表示法,简称定点数。rnd为随机值,可以利用本地持有的交互密钥share_rng_u生成。
步骤605:第一MPC计算方利用所述两个选择项向第三MPC计算方进行不经意传输。
不经意传输(OT,oblivious transfer)是一个密码学协议,目前被广泛的应用于MPC。目的是MPC计算方将m0和m1发送给另一个MPC计算方,该另一个MPC计算方只能获取m0和m1中的一个,并且发送m0和m1的MPC计算方也无法获知另一个MPC计算方获取的是m0和m1中的哪一个。
作为其中一种可实现的方式,本步骤中的不经意传输可以是三方不经意传输,第一MPC计算方作为不经意传输的发送(send)方,第二MPC计算方作为协助(help)方,第三MPC计算方作为接收(receive)方。第一MPC计算方以m0和m1作为两个选择项,第二MPC计算方和第三MPC计算方本地持有的u3作为选择,执行一次不经意传输。具体将在后续实施例中举例描述。
步骤607:各MPC计算方将本地得到的算数分量作为待分享数据进行算数共享处理,得到所述第二数据分量。
具体地,在进行算数共享处理时,各MPC计算方将本地的待分享数据进行加密后分享给下一MPC计算方,并接收上一MPC计算方分享来的数据并进行解密;将解密后的数据与本地的待分享数据合并,得到第二数据分量;其中各MPC计算方按照环状次序进行上述的分享处理。
以图1所示的3个MPC计算方为例对这种实现方式进行描述。假设MPC计算方A、MPC计算方B和MPC计算方C分别获取到了第一数据分量(u1,u2),(u2,u3),和(u3,u1)。
MPC计算方A、MPC计算方B和MPC计算方C共同执行一次零共享处理,分别得到各自的第三数据分量r1,r2和r3。r1,r2和r3均为算数分量。
MPC计算方A使用本地的share_rng_u生成随机值rnd,确定
m0=(0^u1^u2)×(1<<B)-rnd,
m1=(1^u1^u2)×(1<<B)-rnd。
其中,“1<<B”是一个转算数分量的处理,即将(1^x.b^x.bu)转成算数值。
MPC计算方B使用本地的share_rng_d生成随机值rnd,该值与MPC计算方A生成的随机值相同。此时MPC计算方B本地持有r2’,r2’=r2+rnd。
MPC计算方A作为不经意传输的send方,MPC计算方B作为help方,MPC计算方C作为receive方。MPC计算方A以m0和m1作为两个选择项,MPC计算方B和 MPC计算方C本地持有的u3作为选择,执行一次不经意传输。
具体地,MPC计算方A和MPC计算方B进行交互产生共有的随机值W0和W1。MPC计算方A发送m0^W0,m1^W1给MPC计算方C。MPC计算方B利用u3将Wc发送给MPC计算方C,其中Wc为W0或W1。MPC计算方C利用Wc分别对m0^W0,m1^W1进行解密,解密其中一个,得到mi,mi为m0和m1中的一个值。不经意传输后,MPC计算方C本地持有r3’,r3’=r3+mi。
MPC计算方A将r1作为待分享数据,MPC计算方B将r2’作为待分享数据,MPC计算方C将r3’作为待分享数据,执行一次算数共享处理,得到各自的算数分量。即MPC计算方A得到算数分量r1+r2’,MPC计算方B得到算数分量r2+r3’,MPC计算方C得到算数分量r1+r3’。
下面论证上述过程是否得到算数分量:由于u3的取值是0或者1,
当u3为0时:
r1+r2’+r3’=r1+r2+rnd+r3+(0^u1^u2)*(1<<B)-rnd
=(0^u1^u2)*(1<<B)=(u3^u1^u2)*(1<<B)
当u3为1时:
r1+r2’+r3’=r1+r2+rnd+r3+(1^u1^u2)*(1<<B)-rnd
=(1^u1^u2)*(1<<B)=(u3^u1^u2)*(1<<B)
其中,(1<<B)实际上是将逻辑值转为算数值的处理,也就是说,r1+r2’+r3’经过上述处理后相当于逻辑量的和(u3^u1^u2)再转算数值。将r1、r2’和r3’进行一次算数sharing,三个MPC计算方就各自拥有了算数分量。
在该例子中,数据提供方只需要发送样本的逻辑分量,而不需要发送算数分量,相比较需要同时传输逻辑分量和算数分量数据传输量降低为1/33。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
根据另一方面的实施例,提供了一种数据处理装置。图7示出根据一个实施例的数据处理装置的示意性框图。可以理解,该装置可以设置于图1所示系统中的MPC计算方,可以体现为应用程序,或者应用程序中的插件或软件开发工具包(Software Development Kit,SDK)等功能单元的形式。如图7所示,该装置700包括:数据获取 单元701和算数转换单元702。其中各组成单元的主要功能如下:数据获取单元701,被配置为从数据提供方获取第一数据分量,第一数据分量为数据提供方将隐私数据拆分后得到的多个数据分量中的部分数据分量,且第一数据分量为逻辑分量。
算数转换单元702,被配置为对第一数据分量进行从逻辑分量到算数分量的转换,得到第二数据分量用以进行MPC处理。
作为其中一种可实现的方式,算数转换单元702可以具体被配置为:进行零共享处理,得到第三数据分量,所述第三数据分量为算数分量;若该装置位于第一MPC计算方,则算数转换单元702利用本地持有的逻辑分量进行算数值的第一转换和第二转换后,得到两个选择项,该两个选择项为算数分量;利用两个选择项向第三MPC计算方进行不经意传输。
若该装置位于第三MPC计算方,则算数转换单元702获取第一MPC计算方不经意传输来的选择项。
算数转换单元702进一步被配置为将本地得到的算数分量作为待分享数据进行算数共享处理,得到第二数据分量。
作为其中一种可实现的方式,算数转换单元702在进行零共享处理时,可以利用本地持有的第一零共享密钥生成第一派生值,以及本地持有的第二零共享密钥生成第二派生值;利用第一派生值与第二派生值的差值,得到第三数据分量。
作为其中一种可实现的方式,算数转换单元702在利用本地持有的逻辑分量进行算数值的第一转换和第二转换时,可以具体利用交互密钥生成随机值;利用本地持有的第一逻辑分量、第二逻辑分量、随机值以及所采用定点数的小数位数进行第一转换和第二转换,得到两个选择项。
若该装置位于第二MPC计算方,则算数转换单元702利用交互密钥也生成上述的随机值。
其中,上述的第一转换和第二转换分别采用如下公式得到选择项m0和m1:
m0=(0^u1^u2)×(1<<B)-rnd
m1=(1^u1^u2)×(1<<B)-rnd
其中,^为异或运算符,<<为左移运算符,u1和u2分别为第一逻辑分量和第二逻辑分量,rnd为随机值,B为所采用定点数的小数位数。
作为其中一种可实现的方式,算数转换单元702利用本地得到的算数分量进行算数共享处理时,可以具体将本地的待分享数据进行加密后分享给下一MPC计算方,并接收上一MPC计算方分享来的数据并进行解密;将解密后的数据与本地的待分享数据合 并,得到第二数据分量;其中各MPC计算方按照环状次序进行上述的分享处理。
根据另一方面的实施例,提供了一种数据处理装置。图8示出根据一个实施例的数据处理装置的示意性框图。可以理解,该装置可以设置于图1所示系统中的数据提供方,可以体现为应用程序,或者应用程序中的插件或软件开发工具包(Software Development Kit,SDK)等功能单元的形式。如图8所示,该装置800包括:数据拆分单元801和数据发送单元802。其中各组成单元的主要功能如下:数据拆分单元801,被配置为将隐私数据拆分为多个数据分量。
数据发送单元802,被配置为将多个数据分量通过数据消息分发给N个MPC计算方,以使得各MPC计算方接收到多个数据分量中的部分数据分量作为第一数据分量,该第一数据分量为逻辑分量。
作为一种可实现的方式,上述多个数据分量为N个数据分量。数据发送单元802可以向各MPC计算方分别发送两个数据分量,且向其中任一个MPC计算方发送的第一个数据分量与向该MPC计算方的上一个MPC计算方发送的第二个数据分量相同;各MPC计算方按环状排序。
需要说明的是,本公开中涉及的“第一”、“第二”、“第三”等限定并不具备大小、顺序和数量等方面的限制,仅仅用以在名称上加以区分,例如“第一数据分量”、“第二数据分量”、“第三数据分量”等用以在名称上区分各数据分量。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2、图3或图6所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2、图3或图6所述的方法。
随着时间、技术的发展,计算机可读存储介质含义越来越广泛,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载等。可以采用一个或多个计算机可读存储介质的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本说明书中,计算机可读存储介质可以是任 何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
上述的处理器可包括一个或多个单核处理器或多核处理器。处理器可包括任何一般用途处理器或专用处理器(如图像处理器、应用处理器基带处理器等)的组合。
在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑一起封装。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑一起封装以形成系统级封装。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑集成在相同的管芯上。在一个实施例中,处理器中的至少一个可以与用于系统控制逻辑的一个或多个控制器的逻辑集成在相同的管芯上以形成系统芯片。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (11)
- 一种数据处理方法,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为3以上的整数,所述方法包括:各MPC计算方从所述数据提供方发送的数据消息中获取第一数据分量,所述第一数据分量为所述数据提供方将隐私数据拆分后得到的多个数据分量中的部分数据分量,且所述第一数据分量为逻辑分量;对所述第一数据分量进行从逻辑分量到算数分量的转换,得到第二数据分量用以进行MPC处理。
- 根据权利要求1所述的方法,其中,所述N个MPC计算方包括第一MPC计算方、第二MPC计算方和第三MPC计算方;对所述逻辑分量进行转换得到算数分量包括:各MPC计算方进行零共享处理,得到第三数据分量,所述第三数据分量为算数分量;第一MPC计算方利用本地持有的逻辑分量进行算数值的第一转换和第二转换后,得到两个选择项,所述两个选择项为算数分量;第一MPC计算方利用所述两个选择项向第三MPC计算方进行不经意传输;各MPC计算方将本地得到的算数分量作为待分享数据进行算数共享处理,得到所述第二数据分量。
- 根据权利要求2所述的方法,其中,所述零共享处理包括:各MPC计算方利用本地持有的第一零共享密钥生成第一派生值,以及本地持有的第二零共享密钥生成第二派生值;利用所述第一派生值与所述第二派生值的差值,得到第三数据分量。
- 根据权利要求2所述的方法,其中,所述逻辑分量包括第一逻辑分量和第二逻辑分量;所述第一MPC计算方利用本地持有的逻辑分量进行算数值的第一转换和第二转换包括:所述第一MPC计算方利用交互密钥生成随机值;利用本地持有的第一逻辑分量、第二逻辑分量、所述随机值以及所述MPC处理所采用定点数的小数位数进行所述第一转换和第二转换,得到两个选择项;该方法还包括:所述第二MPC计算方利用所述交互密钥生成所述随机值。
- 根据权利要求4所述的方法,其中,所述第一转换和所述第二转换分别采用如下公式得到选择项m0和m1:m0=(0^u1^u2)×(1<<B)-rndm1=(1^u1^u2)×(1<<B)-rnd其中,^为异或运算符,<<为左移运算符,u1和u2分别为第一逻辑分量和第二逻辑分量,rnd为所述随机值,B为所述MPC处理所采用定点数的小数位数。
- 根据权利要求2所述的方法,其中,各MPC计算方利用本地得到的算数分量进行算数共享处理,得到所述第二数据分量包括:各MPC计算方将本地的待分享数据进行加密后分享给下一MPC计算方,并接收上一MPC计算方分享来的数据并进行解密;将解密后的数据与本地的待分享数据合并,得到所述第二数据分量;其中各MPC计算方按照环状次序进行所述分享处理。
- 一种数据处理方法,应用于包括数据提供方和N个MPC计算方的系统,所述N为3以上的整数,所述方法包括:所述数据提供方将隐私数据拆分为多个数据分量;将所述多个数据分量通过数据消息分发给所述N个MPC计算方,以使得各MPC计算方接收到所述多个数据分量中的部分数据分量作为第一数据分量,所述第一数据分量为逻辑分量。
- 根据权利要求7所述的方法,其中,所述多个数据分量为N个数据分量;将所述多个数据分量通过数据消息分发给所述N个MPC计算方包括:向各MPC计算方分别发送两个数据分量,且向其中任一个MPC计算方发送的第一个数据分量与向该MPC计算方的上一个MPC计算方发送的第二个数据分量相同;各MPC计算方按环状排序。
- 一种数据处理装置,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为3以上的整数;所述装置设置于所述MPC计算方,包括:数据获取单元,被配置为从所述数据提供方获取第一数据分量,所述第一数据分量为所述数据提供方将隐私数据拆分后得到的多个数据分量中的部分数据分量,且所述第一数据分量为逻辑分量;算数转换单元,被配置为对所述第一数据分量进行从逻辑分量到算数分量的转换,得到第二数据分量用以进行MPC处理。
- 一种数据处理装置,应用于包括数据提供方和N个多方安全计算MPC计算方的系统,所述N为3以上的整数;所述装置设置于所述数据提供方,包括:数据拆分单元,被配置为将隐私数据拆分为多个数据分量;数据发送单元,被配置为将所述多个数据分量通过数据消息分发给所述N个MPC计算方,以使得各MPC计算方接收到所述多个数据分量中的部分数据分量作为第一数据分量,所述第一数据分量为逻辑分量。
- 一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1至8中任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/827,306 US20240430081A1 (en) | 2022-03-08 | 2024-09-06 | Data processing |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210227401.5 | 2022-03-08 | ||
| CN202210227401.5A CN114726511B (zh) | 2022-03-08 | 2022-03-08 | 数据处理方法和装置 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/827,306 Continuation US20240430081A1 (en) | 2022-03-08 | 2024-09-06 | Data processing |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023169079A1 true WO2023169079A1 (zh) | 2023-09-14 |
Family
ID=82237032
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/071505 Ceased WO2023169079A1 (zh) | 2022-03-08 | 2023-01-10 | 数据处理 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20240430081A1 (zh) |
| CN (1) | CN114726511B (zh) |
| WO (1) | WO2023169079A1 (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114090638B (zh) | 2022-01-20 | 2022-04-22 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的联合数据查询方法及装置 |
| CN114726511B (zh) * | 2022-03-08 | 2024-03-22 | 支付宝(杭州)信息技术有限公司 | 数据处理方法和装置 |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019231481A1 (en) * | 2018-05-29 | 2019-12-05 | Visa International Service Association | Privacy-preserving machine learning in the three-server model |
| CN111049847A (zh) * | 2019-12-20 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 基于隐私数据的区间判定进行业务处理的方法及装置 |
| CN111737757A (zh) * | 2020-07-31 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 针对隐私数据进行安全运算的方法和装置 |
| CN112688779A (zh) * | 2021-03-09 | 2021-04-20 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
| CN113708930A (zh) * | 2021-10-20 | 2021-11-26 | 杭州趣链科技有限公司 | 隐私数据的数据比较方法、装置、设备及介质 |
| CN114726512A (zh) * | 2022-03-08 | 2022-07-08 | 支付宝(杭州)信息技术有限公司 | 数据处理方法和装置 |
| CN114726511A (zh) * | 2022-03-08 | 2022-07-08 | 支付宝(杭州)信息技术有限公司 | 数据处理方法和装置 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112751665B (zh) * | 2019-10-30 | 2022-12-09 | 阿里巴巴(中国)网络技术有限公司 | 一种安全多方计算方法、设备、系统及存储介质 |
| CN113111569A (zh) * | 2021-03-08 | 2021-07-13 | 支付宝(杭州)信息技术有限公司 | 乱序处理方法、模型训练方法、装置和计算设备 |
| CN114090638B (zh) * | 2022-01-20 | 2022-04-22 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的联合数据查询方法及装置 |
-
2022
- 2022-03-08 CN CN202210227401.5A patent/CN114726511B/zh active Active
-
2023
- 2023-01-10 WO PCT/CN2023/071505 patent/WO2023169079A1/zh not_active Ceased
-
2024
- 2024-09-06 US US18/827,306 patent/US20240430081A1/en active Pending
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019231481A1 (en) * | 2018-05-29 | 2019-12-05 | Visa International Service Association | Privacy-preserving machine learning in the three-server model |
| CN111049847A (zh) * | 2019-12-20 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 基于隐私数据的区间判定进行业务处理的方法及装置 |
| CN111737757A (zh) * | 2020-07-31 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 针对隐私数据进行安全运算的方法和装置 |
| CN112688779A (zh) * | 2021-03-09 | 2021-04-20 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法、装置和用于数据处理的装置 |
| CN113708930A (zh) * | 2021-10-20 | 2021-11-26 | 杭州趣链科技有限公司 | 隐私数据的数据比较方法、装置、设备及介质 |
| CN114726512A (zh) * | 2022-03-08 | 2022-07-08 | 支付宝(杭州)信息技术有限公司 | 数据处理方法和装置 |
| CN114726511A (zh) * | 2022-03-08 | 2022-07-08 | 支付宝(杭州)信息技术有限公司 | 数据处理方法和装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN114726511A (zh) | 2022-07-08 |
| US20240430081A1 (en) | 2024-12-26 |
| CN114726511B (zh) | 2024-03-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2022237450A1 (zh) | 多方安全计算方法、装置、设备及存储介质 | |
| CN110166446B (zh) | 一种基于安全多方计算的地理加权平均中心的实现方法 | |
| JP2021111973A (ja) | ブロックチェーンに基づくマルチパーティ計算方法、装置、電子機器、非一時的コンピュータ可読記憶媒体およびコンピュータプログラム | |
| WO2023169081A1 (zh) | 数据处理 | |
| WO2020211485A1 (zh) | 数据处理方法、装置和电子设备 | |
| CN107248984B (zh) | 数据交换系统、方法和装置 | |
| US20240430081A1 (en) | Data processing | |
| JPWO2019130528A1 (ja) | 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム | |
| Irviani et al. | Nur algorithm on data encryption and decryption | |
| CN111193741B (zh) | 一种信息发送方法、信息获取方法、装置及设备 | |
| CN111831978B (zh) | 一种对配置文件进行保护的方法及装置 | |
| CN109711178B (zh) | 一种键值对的存储方法、装置、设备及存储介质 | |
| US12587359B2 (en) | Multi-party computation of split private data with address geo-coded component | |
| CN115225367B (zh) | 数据处理方法、装置、计算机设备、存储介质和产品 | |
| WO2023185360A1 (zh) | 一种数据处理方法、装置、系统、设备及存储介质 | |
| JP2018025587A (ja) | 秘匿演算技術およびその方法 | |
| CN113505386A (zh) | 基于区块链和同态算法的数据处理方法、装置及存储介质 | |
| Al-Attab et al. | Lightweight effective encryption algorithm for securing data in cloud computing | |
| JP7622969B1 (ja) | 情報処理方法、情報処理プログラム、および情報処理システム | |
| CN118246050B (zh) | 数据库密钥管理器的加密和解密方法、装置、设备及介质 | |
| CN118802325B (zh) | 题库数据处理方法、装置、设备、存储介质及程序产品 | |
| Dharshana et al. | Encrypted computation on a one instruction set architecture | |
| Badhwar | The future state of data security | |
| CN114282253A (zh) | 基于区块链的数据授权方法及装置、存储介质及电子设备 | |
| Devmane et al. | Safeguarding Data through Homomorphic Cryptosystems in Cloud Storage |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23765659 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 23765659 Country of ref document: EP Kind code of ref document: A1 |