WO2021017420A1 - 数据处理方法、装置和电子设备 - Google Patents
数据处理方法、装置和电子设备 Download PDFInfo
- Publication number
- WO2021017420A1 WO2021017420A1 PCT/CN2020/071355 CN2020071355W WO2021017420A1 WO 2021017420 A1 WO2021017420 A1 WO 2021017420A1 CN 2020071355 W CN2020071355 W CN 2020071355W WO 2021017420 A1 WO2021017420 A1 WO 2021017420A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- ciphertext
- data
- identification data
- party
- identification
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- 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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
Definitions
- the embodiments of this specification relate to the field of computer technology, and in particular to a data processing method, device, and electronic equipment.
- the purpose of the embodiments of this specification is to provide a data processing method, device and electronic equipment, so that each data party can jointly complete the statistics of data indicators without leaking the data owned by itself.
- a data processing method is provided, which is applied to a first data party holding an identification data set, the identification data set including at least one identification data, and the method includes: Encrypt the identification data, and use the encryption result as the first identification data ciphertext in the first ciphertext set; send the first ciphertext set to the second data party; receive the second ciphertext set sent by the second data party, The second ciphertext set includes at least one second identification data ciphertext, the second identification data ciphertext is obtained by encrypting the first identification data ciphertext; the second identification data ciphertext is decrypted, and the decryption result is As the third identification data ciphertext in the third ciphertext set; the fourth ciphertext set sent by the second data party is received, the fourth ciphertext set includes at least one ciphertext subset, and the ciphertext subset includes the first 3.
- Identification data ciphertext and business data ciphertext where the business data ciphertext includes homomorphic ciphertext; obtaining a third identification data ciphertext shared between the third ciphertext set and the fourth ciphertext set; calculating The homomorphic addition result of the business data ciphertext corresponding to the shared third identification data ciphertext; the homomorphic addition result is sent to the second data party.
- a data processing method is provided, which is applied to a second data party holding a business data set, the business data set including at least one plaintext subset, and the clear
- the text sub-set includes identification data and business data
- the method includes: generating a first cipher text set, the first cipher text set including at least one cipher text sub-set, the cipher text sub-set including the first identification data cipher text and the business data cipher text
- the first identification data ciphertext is obtained by encrypting identification data
- the service data ciphertext is obtained by encrypting the service data by a homomorphic encryption algorithm
- sending the first ciphertext set to the first data party receiving The homomorphic addition result of the specific service data ciphertext sent by the first data party; decrypt the homomorphic addition result to obtain statistical indicators.
- a data processing device which is applied to a first data party holding an identification data set, the identification data set including at least one identification data
- the device includes:
- the encryption unit is configured to encrypt the identification data, and use the encryption result as the first identification data ciphertext in the first ciphertext set;
- the first sending unit is configured to send the first ciphertext set to the second data party;
- the receiving unit is configured to receive a second ciphertext set sent by a second data party, where the second ciphertext set includes at least one second identification data ciphertext, and the second identification data ciphertext passes through the first identification data
- the ciphertext is obtained through encryption;
- the decryption unit is used to decrypt the second identification data ciphertext, and the decryption result is used as the third identification data ciphertext in the third ciphertext set;
- the second receiving unit is used to receive the second data
- a data processing device which is applied to a second data party holding a business data set, the business data set including at least one plaintext subset, and the clear
- the text subset includes identification data and business data.
- the device includes: a generating unit configured to generate a first ciphertext set, the first ciphertext set including at least one ciphertext subset, and the ciphertext subset including a first identification data cipher
- the first identification data ciphertext is obtained by encrypting identification data
- the service data ciphertext is obtained by encrypting the service data by a homomorphic encryption algorithm
- the sending unit is configured to send The data party sends the first ciphertext set
- the receiving unit is used to receive the homomorphic addition result of the specific service data ciphertext sent by the first data party
- the decryption unit is used to decrypt the homomorphic addition result, Get statistical indicators.
- an electronic device including: a memory, configured to store computer instructions; and a processor, configured to execute the computer instructions to implement the computer instructions described in the first aspect Method steps.
- an electronic device including: a memory, configured to store computer instructions; and a processor, configured to execute the computer instructions to implement the method described in the second aspect Method steps.
- the first data party and the second data party can jointly complete the statistics of data indicators without leaking their own data.
- Fig. 1 is a flowchart of a data processing method according to an embodiment of this specification
- FIG. 2 is a schematic diagram of an application scenario of an embodiment of the specification
- FIG. 3 is a flowchart of a data processing method according to an embodiment of the specification.
- FIG. 5 is a schematic diagram of the functional structure of a data processing device according to an embodiment of the specification.
- FIG. 6 is a schematic diagram of the functional structure of a data processing device according to an embodiment of the specification.
- FIG. 7 is a schematic diagram of the functional structure of an electronic device according to an embodiment of the specification.
- the intersection of data held by multiple data parties can be obtained according to the Private Set Intersection (PSI) protocol, and the statistics of data indicators can be realized on the basis of the intersection.
- PSI Private Set Intersection
- Homomorphic Encryption is an encryption technology. It allows direct operations on ciphertext data to get the result of encryption, and the result obtained by decrypting it is the same as the result of performing the same operation on plaintext data.
- Algorithms that implement homomorphic encryption may include, for example, Paillier algorithm, Okamoto-Uchiyama algorithm, Damgard-Jurik algorithm, and so on.
- the embodiment of this specification provides a data processing system.
- the data processing system may include a first data party and a second data party, and the first data party and the second data party may be two parties that perform data index statistics, respectively.
- the data party may be an electronic device.
- the electronic equipment may include a personal computer, a server, a handheld device, a portable device, a tablet device, a multi-processor device; or, it may also include a cluster formed by any of the above devices or devices.
- the first data party may hold a set of identification data.
- the identification data set may include at least one identification data, and the identification data may be used to identify service data.
- the identification data may be an ID card number, and the business data may be a deposit amount.
- the second data party may hold a set of business data.
- the service data set may include at least one subset (in order to distinguish from subsequent ciphertext subsets, hereinafter referred to as plaintext subsets).
- the plaintext subset may include identification data and business data having a corresponding relationship. The correspondence between the identification data and the business data can be understood as: the identification data is used to identify the business data.
- the identification data in the identification data set and the service data set may all be the same, or may also be partially the same.
- the second data party can obtain statistical indicators.
- the statistical indicators may include the sum of specific business data.
- the specific service data may include: service data corresponding to identification data shared between the service data set and the identification data set.
- the first data party cannot leak the identification data set it holds, and the second data party cannot leak the business data set it holds.
- the first data party may hold part of the ID card number, and the second data party may hold the full ID card number and the corresponding deposit amount.
- the statistical indicator may include: the sum of the deposit amount corresponding to the ID card number held by the first data party.
- Step S101 The first data party encrypts the identification data in the identification data set, and uses the encryption result as the first identification data ciphertext in the first ciphertext set.
- the identification data set may include at least one identification data.
- the first data party may generate a first encryption key; an encryption algorithm may be used to separately encrypt each identification data in the identification data set according to the first encryption key; the encryption result may be used as the first ciphertext set The first identification data ciphertext in.
- the encryption algorithm may have alternation and/or determinism. Alternability refers to: using an encryption algorithm to iteratively encrypt plaintext data based on two or more encryption keys, and the encryption result is the same as iteratively encrypting plaintext data based on two or more encryption keys after changing the order
- the encryption result is the same. For example, using an encryption algorithm to iteratively encrypt the plaintext data A according to the encryption keys k 1 and k 2 to obtain the encryption result Iteratively encrypt the plaintext data A according to the encryption keys k 2 and k 1 to obtain the encryption result.
- Certainty means that the same plaintext data is encrypted multiple times using an encryption algorithm, and the multiple encryption results obtained are the same.
- the encryption algorithm may include a symmetric encryption algorithm and an asymmetric encryption algorithm.
- the first data party may generate an encryption key as the first encryption key, and the decryption key corresponding to the first encryption key may be the The first encryption key itself.
- the encryption algorithm is an asymmetric encryption algorithm
- the first data party can generate a public-private key pair; the public key in the public-private key pair can be used as the first encryption key; the public-private key pair can be The private key of is used as the decryption key corresponding to the first encryption key.
- the encryption algorithm may be a homomorphic encryption algorithm; or, it may also be a non-homomorphic encryption algorithm.
- the first data party may obtain the coding of the identification data in the identification data set; the coding of the identification data may be performed Encryption; the encryption result can be used as the first identification data ciphertext in the first ciphertext set.
- the encoding may include, for example, a hash value, including but not limited to MD5, SHA1, SHA256, SHA384, SHA512, and CRC32.
- the encoding may also include other forms of encoding, which is not specifically limited in this embodiment.
- Step S103 The first data sends the first ciphertext set to the second data party.
- the first data party may directly send the first ciphertext set to the second data party.
- the first data party in order to increase security and prevent the second data party from learning the positional relationship between the ciphertexts of the first identification data in the first ciphertext set, the first data party may also The first identification data ciphertext in the ciphertext set is out of order to obtain the out-of-order first ciphertext set; the out-of-order first ciphertext set can be sent to the second data party.
- Step S105 The second data party receives the first ciphertext set; encrypts the first identification data ciphertext in the first ciphertext set, and uses the encryption result as the second identification data ciphertext in the second ciphertext set.
- the first data party may directly send the first ciphertext set to the second data party, and the second data party may receive the first ciphertext set.
- the first data party may also send the out-of-order first ciphertext set to the second data party, and the second data party may receive the out-of-order first ciphertext set.
- the second data party may generate a second encryption key; an encryption algorithm may be used to perform the ciphertext of each first identification data in the first ciphertext set according to the second encryption key. Encryption; the encryption result can be used as the second identification data ciphertext in the second ciphertext set. It is worth noting that, since the second identification data ciphertext is obtained by encrypting the first identification data ciphertext, the second identification data ciphertext is the ciphertext after the second encryption.
- the encryption algorithm may include a symmetric encryption algorithm and an asymmetric encryption algorithm.
- the second data party may generate an encryption key as the second encryption key, and the decryption key corresponding to the second encryption key may be the The second encryption key itself.
- the second data party can generate a public-private key pair; the public key of the public-private key pair can be used as the second encryption key; the public-private key pair can be The private key of is used as the decryption key corresponding to the second encryption key.
- the encryption algorithm used by the second data party may be the same as the encryption algorithm used by the first data party in step S101.
- Step S107 The second data sends a second ciphertext set to the first data party.
- the second data party may directly send the second ciphertext set to the first data party.
- the second data party may also compare the second ciphertext
- the second identification data ciphertext in the set is out of order to obtain the out-of-order second ciphertext set; the out-of-order second ciphertext set can be sent to the first data party.
- Step S109 The first data party receives the second ciphertext set; decrypts the second identification data ciphertext in the second ciphertext set, and uses the decryption result as the third identification data ciphertext in the third ciphertext set.
- the second data party may directly send the second ciphertext set to the first data party, and the first data party may receive the second ciphertext set.
- the second data party may also send the out-of-order second ciphertext set to the first data party, and the first data party may receive the out-of-order second ciphertext set.
- the first data party may decrypt each second identification data ciphertext in the second ciphertext set according to the decryption key corresponding to the first encryption key; the decryption result may be As the third identification data ciphertext in the third ciphertext set. It is worth noting that the third identification data ciphertext is obtained by decrypting the second identification data ciphertext. Since the ciphertext of the second identification data is a ciphertext after the second encryption, the ciphertext of the third identification data is a ciphertext after the first encryption.
- the encryption algorithm used by the first data party in step S101 (that is, the encryption algorithm used by the second data party in step S105) is alternate, the decryption result after decrypting the second identification data ciphertext is different from The two encryption keys have the same encryption result after encrypting the identification data held by the first data party.
- the storage of the third ciphertext set will occupy more When the first data party obtains the intersection (see the subsequent step S115 for details), time overhead will be increased.
- the first data party may respectively decrypt each second identification data ciphertext in the second ciphertext set according to the decryption key corresponding to the first encryption key; the code of the decryption result can be obtained; The encoding of the decryption result can be used as the third identification data ciphertext in the third ciphertext set.
- the encoding may include, for example, a hash value, including but not limited to MD5, SHA1, SHA256, SHA384, SHA512, and CRC32.
- the encoding may also include other forms of encoding, which is not specifically limited in this embodiment.
- the number of encoded bits of the decryption result is less than the number of bits of the decryption result, so that the number of bits of the third identification data ciphertext in the third ciphertext set can be reduced.
- the number of bits in the decryption result is at least 256, and the number of bits in the hash value of the decryption result can be 80.
- Step S111 The second data party generates a fourth ciphertext set according to the service data set.
- the service data set may include at least one plaintext subset, and the plaintext subset may include identification data and business data having a corresponding relationship.
- the fourth ciphertext set may include at least one ciphertext subset, and each ciphertext subset may include a third identification data ciphertext and a business data ciphertext having a corresponding relationship.
- the second data party may generate a third encryption key.
- the second data party may use an encryption algorithm to encrypt the identification data in each plaintext subset according to the second encryption key, and may use the encryption result as the third identification data ciphertext in the ciphertext subset;
- the encryption result can be used as the ciphertext of the business data in the ciphertext subset.
- the encryption algorithm used by the second data party to encrypt the identification data in the plaintext subset may be the same as the encryption algorithm used by the first data party in step S101.
- the third encryption key may be different from the second encryption key.
- the second data party may generate a public-private key pair; may use the public key in the public-private key pair as the third encryption key; may use the private key in the public-private key pair as the third encryption key; The decryption key corresponding to the key.
- the second data party can use an encryption algorithm to encrypt the identification data in each plaintext subset according to the second encryption key; the encoding of the encryption result can be obtained; the encoding of the encryption result can be used as the encryption The third identification data cipher text in the text sub-set.
- the encoding may include, for example, a hash value, including but not limited to MD5, SHA1, SHA256, SHA384, SHA512, and CRC32.
- the encoding may also include other forms of encoding, which is not specifically limited in this embodiment.
- the number of bits of the encoding of the encryption result is smaller than the number of bits of the encryption result, so that the number of bits of the third identification data ciphertext in the fourth ciphertext set can be reduced.
- the number of bits in the encryption result is at least 256, and the number of bits in the hash value of the encryption result can be 80.
- Step S113 The second data sends the fourth ciphertext set to the first data party.
- the second data party may directly send the fourth ciphertext set to the first data party.
- the second data party may further The ciphertext sub-set is out of order to obtain the out-of-order fourth ciphertext set; the out-of-order fourth ciphertext set can be sent to the first data party.
- Step S115 The first data party receives the fourth ciphertext set; obtains the third identification data ciphertext shared between the third ciphertext set and the fourth ciphertext set.
- the second data party may directly send the fourth ciphertext set to the first data party, and the first data party may receive the fourth ciphertext set.
- the second data party may also send the out-of-order fourth ciphertext set to the first data party, and the first data party may receive the out-of-order fourth ciphertext set.
- the first data party may obtain an intersection of the third ciphertext set and the fourth ciphertext set, and the intersection may include the third ciphertext set and the fourth ciphertext set.
- the third identification data ciphertext shared between the text sets. Both the third identification data ciphertext in the third ciphertext set and the identification data ciphertext in the fourth ciphertext set are ciphertexts that are encrypted once. In this way, the intersection can be obtained on the basis of a ciphertext.
- Step S117 The first data party calculates the homomorphic addition result of the service data ciphertext corresponding to the shared third identification data ciphertext.
- each shared third identification data ciphertext may correspond to a business data ciphertext in the fourth ciphertext set.
- the first data party can obtain the business data ciphertext corresponding to the third identification data ciphertext in the fourth ciphertext set in the intersection; and can calculate the homomorphic addition result of the obtained business data ciphertext.
- the homomorphic addition result is the same as the encryption result after homomorphic encryption of the sum of the specific service data.
- the specific service data may include: service data corresponding to identification data shared between the service data set and the identification data set.
- the operation mode used when calculating the homomorphic addition result can be, for example, addition operation, multiplication operation, etc.
- the specific calculation method used when calculating the homomorphic addition result can also be different.
- the business data ciphertext corresponding to the third identification data ciphertext in the intersection set in the fourth ciphertext set may include E(t 1 ), E(t 2 ), and E(t 3 ) .
- the business data ciphertext corresponding to the third identification data ciphertext in the intersection set in the fourth ciphertext set may include E(t 1 ), E(t 2 ), and E(t 3 ).
- Step S119 The first data sends the homomorphic addition result to the second data party.
- Step S121 The second data party receives the result of the homomorphic addition; decrypts the result of the homomorphic addition to obtain a statistical index.
- the first data party may send the homomorphic addition result to the second data party.
- the second data party may receive the homomorphic addition result; the homomorphic addition result may be decrypted according to the decryption key corresponding to the third encryption key to obtain the statistical index.
- the statistical indicators may include the sum of specific service data, and the specific service data may include: service data corresponding to identification data shared between the service data set and the identification data set.
- the first data party may hold an identification data set ⁇ u i , 1 ⁇ i ⁇ m ⁇ , where u i represents identification data, and m represents the number of identification data in the identification data set.
- the first party data may generate a first encryption key k 1, and the decryption key corresponding to the first encryption key may be a key k 1 k 1 as the first encryption itself.
- the second data party may hold a service data set ⁇ v j ,t j >,1 ⁇ j ⁇ n ⁇ , ⁇ v j ,t j > represents a plaintext subset, v j represents identification data, and t j represents business Data, n represents the number of plaintext subsets in the business data set.
- the second party may generate the second data encryption key k 2, k and the second encryption key decryption key corresponding to the key k 2 may be 2 to the second encryption itself.
- the second data party may also generate a public-private key pair pk and sk; the public key pk may be used as the third encryption key; and the private key sk may be used as the decryption key corresponding to the third encryption key pk.
- the first data party can obtain the hash value of the identification data in the identification data set ⁇ u i ,1 ⁇ i ⁇ m ⁇ ; the hash value of the identification data can be encrypted according to the first encryption key k 1 ; The encryption result is used as the first identification data ciphertext in the first ciphertext set.
- the first ciphertext set can be expressed as Indicates the ciphertext of the first identification data.
- the first data party may shuffle the first identification data ciphertext in the first ciphertext set to obtain the first ciphertext set out of order; may send the first ciphertext out of order to the second data party Text collection.
- the second data party may receive the first ciphertext set in disorder; may encrypt each first identification data ciphertext in the first ciphertext set according to the second encryption key k 2 ; may use the encryption result as the second The second identification data ciphertext in the ciphertext set.
- the second ciphertext set can be expressed as Indicates the ciphertext of the second identification data.
- the second data party may shuffle the second identification data ciphertexts in the second ciphertext set to obtain the out-of-order second ciphertext set; may send the out-of-order second ciphertext to the first data party Text collection.
- the first data party may receive the out-of-order second ciphertext set; may encrypt each second identification data in the second ciphertext set according to the decryption key corresponding to the first encryption key k 1
- the text is decrypted; the hash value of the decryption result can be obtained; the hash value of the decryption result can be used as the third identification data ciphertext in the third ciphertext set.
- the third ciphertext set can be expressed as Represents the third identification data ciphertext, Indicates the decryption result after decrypting the ciphertext of the second identification data.
- the second data party may generate a fourth ciphertext set according to the service data set ⁇ v j , t j >, 1 ⁇ j ⁇ n ⁇ .
- the fourth ciphertext set can be expressed as Represents the ciphertext sub-collection, Represents the third identification data ciphertext, Epk (t j ) represents the business data ciphertext, and Epk (t j ) is specifically the homomorphic ciphertext.
- the second data party may shuffle the ciphertext sub-sets in the fourth ciphertext set to obtain the out-of-order fourth ciphertext set; and may send the out-of-order fourth ciphertext set to the first data party.
- the first data party may receive the fourth ciphertext set in disorder; may obtain the intersection of the third ciphertext set and the fourth ciphertext set; may calculate the third identification data ciphertext location in the intersection service data corresponding ciphertext homomorphic addition result sumE pk (t j); homomorphic may transmit the addition result sumE pk (t j) of data to the second party.
- the second data party can receive the homomorphic addition result; the homomorphic addition result can be decrypted according to the decryption key sk corresponding to the third encryption key pk to obtain the statistical index sum(t j ).
- the first data party and the second data party can jointly complete the statistics of data indicators without leaking the data they own.
- the first data party may not leak the identification data set held by itself, and the second data party may not leak the business data set held by itself,
- the intersection is obtained on the basis of a ciphertext of the identification data.
- the second data party may then obtain statistical indicators according to the intersection. Since the intersection is obtained on the basis of a ciphertext of the identification data, on the one hand, it can ensure that the data will not be leaked and has high security; on the other hand, the amount of calculation can be reduced (for example, the first data party does not need to The ciphertext of the third identification data in the set is encrypted again).
- this specification also provides an embodiment of another data processing method. Please refer to Figure 3.
- the first data party holding the identification data set is the execution subject, and the identification data set may include at least one identification data.
- This embodiment may include the following steps.
- Step S201 Encrypt the identification data, and use the encryption result as the first identification data ciphertext in the first ciphertext set.
- the first data party may generate an encryption key; an encryption algorithm may be used to encrypt each identification data in the identification data set according to the encryption key; the encryption result may be used as the first encryption key.
- the first identification data ciphertext in the text set.
- the first data party may obtain the encoding of the identification data in the identification data set; may encrypt the encoding of the identification data; may use the encryption result as the first identification data in the first ciphertext set Ciphertext.
- Step S203 Send the first ciphertext set to the second data party.
- the first data party may directly send the first ciphertext set to the second data party.
- the first data party may also shuffle the first identification data cipher text in the first cipher text set to obtain the first cipher text set after the disorder; The party sends the first ciphertext set in disorder.
- Step S205 Receive a second ciphertext set sent by a second data party, where the second ciphertext set includes at least one second identification data ciphertext, and the second identification data ciphertext is compared to the first identification data ciphertext Get encrypted.
- the second data party may receive the first ciphertext set; may encrypt the first identification data ciphertext in the first ciphertext set; may use the encryption result as the ciphertext in the second ciphertext set
- the second identification data ciphertext; the second ciphertext set can be sent to the first data party.
- the first data party may receive the second ciphertext set.
- Step S207 Decrypt the second identification data ciphertext, and use the decryption result as the third identification data ciphertext in the third ciphertext set.
- the first data party may decrypt each second identification data ciphertext in the second ciphertext set according to the decryption key corresponding to the encryption key; the decryption result may be As the third identification data ciphertext in the third ciphertext set.
- the first data party may respectively decrypt each second identification data ciphertext in the second ciphertext set according to the decryption key corresponding to the encryption key; the encoding of the decryption result can be obtained ; The code of the decryption result can be used as the third identification data ciphertext in the third ciphertext set.
- Step S209 Receive a fourth ciphertext set sent by the second data party, the fourth ciphertext set includes at least one ciphertext subset, and the ciphertext subset includes the third identification data ciphertext and the business data ciphertext, so The business data ciphertext includes homomorphic ciphertext.
- the second data party may generate the fourth ciphertext set according to the service data set, and the specific generation process may refer to the related description in the previous step S111.
- the second data party may send a fourth ciphertext set to the first data party.
- the first data party may receive a fourth ciphertext set.
- Step S211 Obtain a third identification data ciphertext shared between the third ciphertext set and the fourth ciphertext set.
- the first data party may obtain an intersection of the third ciphertext set and the fourth ciphertext set, and the intersection includes the third ciphertext set and the fourth ciphertext set The third identification data ciphertext shared between the sets.
- Step S213 Calculate the homomorphic addition result of the service data ciphertext corresponding to the shared third identification data ciphertext.
- Step S215 Send the homomorphic addition result to the second data party.
- the first data party can obtain the third ciphertext set and the fourth ciphertext set; the third ciphertext set and the fourth ciphertext set can be obtained.
- the third identification data ciphertext shared between the text sets; the homomorphic addition result of the business data ciphertext corresponding to the shared third identification data ciphertext can be calculated; the homomorphic addition result can be sent to the second data party. So that the second data party can obtain statistical indicators based on the result of homomorphic addition.
- a second data party holding a business data set is the execution subject.
- the business data set may include at least one plaintext subset, and the plaintext subset may include identification data and business data.
- This embodiment may include the following steps.
- Step S301 Generate a first ciphertext set, the first ciphertext set including at least one ciphertext subset, the ciphertext subset including a first identification data ciphertext and a business data ciphertext, the first identification data ciphertext Obtained by encrypting the identification data, and the ciphertext of the service data is obtained by encrypting the service data by a homomorphic encryption algorithm.
- the second data party may generate the first ciphertext set according to the service data set.
- the specific generation process refer to the generation process of the fourth ciphertext set in the previous step S111.
- Step S303 Send the first ciphertext set to the first data party.
- the second data party may directly send the first ciphertext set to the first data party.
- the second data party may also shuffle the ciphertext subsets in the first ciphertext set to obtain the first ciphertext set after being out of order; and may send the scrambled text to the first data party.
- the first ciphertext set after the sequence may be shuffle the ciphertext subsets in the first ciphertext set to obtain the first ciphertext set after being out of order; and may send the scrambled text to the first data party.
- the first ciphertext set after the sequence may be shuffle the ciphertext subsets in the first ciphertext set to obtain the first ciphertext set after being out of order.
- Step S305 Receive the homomorphic addition result of the specific service data ciphertext sent by the first data party.
- Step S307 Decrypt the homomorphic addition result to obtain statistical indicators.
- the second data party may also receive a second ciphertext set sent by the first data party.
- the second ciphertext set may include at least one second identification data ciphertext, and the second identification data ciphertext is obtained by encrypting the identification data held by the first data party.
- the second data party may encrypt the second identification data ciphertext; the encryption result may be used as the third identification data ciphertext in the third ciphertext set; the third ciphertext set may be sent to the first data party to The first data party generates a fourth ciphertext set according to the third ciphertext set.
- the fourth ciphertext set may include at least one first identification data ciphertext.
- the second data party may directly send the third ciphertext set to the first data party.
- the second data party may also perform out-of-order on the third identification data ciphertext in the third ciphertext set to obtain the out-of-order third ciphertext set; may send the out-of-order ciphertext set to the first data party The third ciphertext set.
- the specific service data ciphertext may include: the service data ciphertext corresponding to the first identification data ciphertext shared between the first ciphertext set and the fourth ciphertext set.
- first ciphertext set, the second ciphertext set, the third ciphertext set, and the fourth ciphertext set in this embodiment may refer to the fourth ciphertext set and the fourth ciphertext set in the embodiment corresponding to FIG. 1 respectively. Description of the first ciphertext set, the second ciphertext set, and the third ciphertext set.
- the first data party can obtain the homomorphic addition result; the homomorphic addition result can be decrypted to obtain statistical indicators.
- this specification also provides an embodiment of a data processing device. Please refer to Figure 5.
- This embodiment may be applied to a first data party holding an identification data set, and the identification data set may include at least one identification data.
- This embodiment may include the following units.
- the encryption unit 401 is configured to encrypt the identification data, and use the encryption result as the first identification data ciphertext in the first ciphertext set;
- the first sending unit 403 is configured to send the first ciphertext set to the second data party;
- the first receiving unit 405 is configured to receive a second ciphertext set sent by a second data party, where the second ciphertext set includes at least one second identification data ciphertext, and the second identification data ciphertext is A ciphertext of the identification data is obtained through encryption;
- the decryption unit 407 is configured to decrypt the second identification data ciphertext, and use the decryption result as the third identification data ciphertext in the third ciphertext set;
- the second receiving unit 409 is configured to receive a fourth ciphertext set sent by a second data party, where the fourth ciphertext set includes at least one ciphertext subset, and the ciphertext subset includes a third identification data ciphertext and a service Data ciphertext, where the business data ciphertext includes homomorphic ciphertext;
- the obtaining unit 411 is configured to obtain the third identification data ciphertext shared by the third ciphertext set and the fourth ciphertext set;
- the calculation unit 413 is configured to calculate the homomorphic addition result of the business data ciphertext corresponding to the shared third identification data ciphertext;
- the second sending unit 415 is configured to send the homomorphic addition result to the second data party.
- this specification also provides another embodiment of a data processing device. Please refer to Figure 6.
- This embodiment can be applied to a second data party holding a business data set.
- the business data set may include at least one plaintext subset, and the plaintext subset may include identification data and business data.
- This embodiment may include the following units.
- the generating unit 501 is configured to generate a first ciphertext set, the first ciphertext set including at least one ciphertext subset, the ciphertext subset including a first identification data ciphertext and a business data ciphertext, the first identification
- the data ciphertext is obtained by encrypting the identification data
- the business data ciphertext is obtained by encrypting the business data by a homomorphic encryption algorithm
- the sending unit 503 is configured to send the first ciphertext set to the first data party
- the receiving unit 505 is configured to receive the homomorphic addition result of the specific service data ciphertext sent by the first data party;
- the decryption unit 507 is configured to decrypt the homomorphic addition result to obtain statistical indicators.
- FIG. 7 is a schematic diagram of the hardware structure of an electronic device in this embodiment.
- the electronic device may include one or more (only one is shown in the figure) processor, memory, and transmission module.
- processor any electronic device that can be included in the electronic device.
- memory any type of memory
- transmission module any type of transmission module.
- the hardware structure shown in FIG. 7 is only for illustration, which does not limit the hardware structure of the above electronic device.
- the electronic device may also include more or fewer component units than shown in FIG. 7; or, have a different configuration from that shown in FIG. 7.
- the memory may include a high-speed random access memory; or, it may also include a non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory.
- the storage may also include a remotely set network storage.
- the remotely set network storage can be connected to the electronic device through a network such as the Internet, an intranet, a local area network, a mobile communication network, and the like.
- the memory may be used to store program instructions or modules of application software, such as the program instructions or modules of the embodiment corresponding to FIG. 3 of this specification; and/or, the program instructions or modules of the embodiment corresponding to FIG. 4 of this specification.
- the processor can be implemented in any suitable way.
- the processor may take the form of, for example, a microprocessor or a processor and a computer-readable medium storing computer-readable program codes (for example, software or firmware) executable by the (micro)processor, logic gates, switches, special-purpose integrated Circuit (Application Specific Integrated Circuit, ASIC), programmable logic controller and embedded microcontroller form, etc.
- the processor can read and execute program instructions or modules in the memory.
- the transmission module may be used for data transmission via a network, for example, data transmission via a network such as the Internet, an intranet, a local area network, a mobile communication network, and the like.
- a programmable logic device Programmable Logic Device, PLD
- FPGA Field Programmable Gate Array
- HDL Hardware Description Language
- a typical implementation device is a computer.
- the computer may be, for example, a personal computer, a laptop computer, a cell phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or Any combination of these devices.
- This manual can be used in many general or special computer system environments or configurations.
- program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
- This specification can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected through a communication network.
- program modules can be located in local and remote computer storage media including storage devices.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例提供一种数据处理方法、装置和电子设备。所述方法包括:对标识数据进行加密,将加密结果作为第一密文集合中的第一标识数据密文;向第二数据方发送第一密文集合;接收第二数据方发来的第二密文集合,所述第二密文集合包括第二标识数据密文;对第二标识数据密文进行解密,将解密结果作为第三密文集合中的第三标识数据密文;接收第二数据方发来的第四密文集合,所述第四密文集合包括第三标识数据密文和业务数据密文;获取所述第三密文集合和所述第四密文集合间共有的第三标识数据密文;计算共有的第三标识数据密文所对应的业务数据密文的同态相加结果;向第二数据方发送同态相加结果。
Description
本说明书实施例涉及计算机技术领域,特别涉及一种数据处理方法、装置和电子设备。
在业务实际中,单个数据方拥有的数据并不完备,通常需要借助其它数据方的数据,共同完成一些数据指标的统计。在统计的过程中,往往存在数据泄漏的问题。
发明内容
本说明书实施例的目的是提供一种数据处理方法、装置和电子设备,以以使各个数据方在***漏自身拥有的数据的条件下共同完成数据指标的统计。
为实现上述目的,本说明书中一个或多个实施例提供的技术方案如下。
根据本说明书一个或多个实施例的第一方面,提供了一种数据处理方法,应用于持有标识数据集合的第一数据方,所述标识数据集合包括至少一个标识数据,该方法包括:对标识数据进行加密,将加密结果作为第一密文集合中的第一标识数据密文;向第二数据方发送第一密文集合;接收第二数据方发来的第二密文集合,所述第二密文集合包括至少一个第二标识数据密文,所述第二标识数据密文通过对第一标识数据密文进行加密得到;对第二标识数据密文进行解密,将解密结果作为第三密文集合中的第三标识数据密文;接收第二数据方发来的第四密文集合,所述第四密文集合包括至少一个密文子集合,所述密文子集合包括第三标识数据密文和业务数据密文,所述业务数据密文包括同态密文;获取所述第三密文集合和所述第四密文集合间共有的第三标识数据密文;计算共有的第三标识数据密文所对应的业务数据密文的同态相加结果;向第二数据方发送同态相加结果。
根据本说明书一个或多个实施例的第二方面,提供了一种数据处理方法,应用于持有业务数据集合的第二数据方,所述业务数据集合包括至少一个明文子集合,所述明文子集合包括标识数据和业务数据,该方法包括:生成第一密文集合,所述第一密文集合包括至少一个密文子集合,所述密文子集合包括第一标识数据密文和业务数据密文,所 述第一标识数据密文通过对标识数据进行加密得到,所述业务数据密文由同态加密算法通过对业务数据进行加密得到;向第一数据方发送第一密文集合;接收第一数据方发来的特定业务数据密文的同态相加结果;对所述同态相加结果进行解密,得到统计指标。
根据本说明书一个或多个实施例的第三方面,提供了一种数据处理装置,应用于持有标识数据集合的第一数据方,所述标识数据集合包括至少一个标识数据,该装置包括:加密单元,用于对标识数据进行加密,将加密结果作为第一密文集合中的第一标识数据密文;第一发送单元,用于向第二数据方发送第一密文集合;第一接收单元,用于接收第二数据方发来的第二密文集合,所述第二密文集合包括至少一个第二标识数据密文,所述第二标识数据密文通过对第一标识数据密文进行加密得到;解密单元,用于对第二标识数据密文进行解密,将解密结果作为第三密文集合中的第三标识数据密文;第二接收单元,用于接收第二数据方发来的第四密文集合,所述第四密文集合包括至少一个密文子集合,所述密文子集合包括第三标识数据密文和业务数据密文,所述业务数据密文包括同态密文;获取单元,用于获取所述第三密文集合和所述第四密文集合共有的第三标识数据密文;计算单元,用于计算共有的第三标识数据密文所对应的业务数据密文的同态相加结果;第二发送单元,用于向第二数据方发送同态相加结果。
根据本说明书一个或多个实施例的第四方面,提供了一种数据处理装置,应用于持有业务数据集合的第二数据方,所述业务数据集合包括至少一个明文子集合,所述明文子集合包括标识数据和业务数据,该装置包括:生成单元,用于生成第一密文集合,所述第一密文集合包括至少一个密文子集合,所述密文子集合包括第一标识数据密文和业务数据密文,所述第一标识数据密文通过对标识数据进行加密得到,所述业务数据密文由同态加密算法通过对业务数据进行加密得到;发送单元,用于向第一数据方发送第一密文集合;接收单元,用于接收第一数据方发来的特定业务数据密文的同态相加结果;解密单元,用于对所述同态相加结果进行解密,得到统计指标。
根据本说明书一个或多个实施例的第五方面,提供了一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第一方面所述的方法步骤。
根据本说明书一个或多个实施例的第六方面,提供了一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如第二方面所述的方法步骤。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中,第一数据方和第 二数据方可以在***漏自身拥有的数据的条件下,共同完成数据指标的统计。
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例一种数据处理方法的流程图;
图2为本说明书实施例一种应用场景的示意图;
图3为本说明书实施例一种数据处理方法的流程图;
图4为本说明书实施例一种数据处理方法的流程图;
图5为本说明书实施例一种数据处理装置的功能结构示意图;
图6为本说明书实施例一种数据处理装置的功能结构示意图;
图7为本说明书实施例一种电子设备的功能结构示意图。
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
在相关技术中,可以根据私有集合求交协议(Private Set Intersection,PSI)获得多个数据方所持有数据的交集,进而可以在交集的基础上实现数据指标的统计。私有集合求交协议有多种实现方案。但是发明人发现,这些实现方案的安全性都不是很高,数据容易被泄露。
同态加密(Homomorphic Encryption)是一种加密技术。它允许直接对密文数据进行运算得到仍是加密的结果,将其解密所得到的结果与对明文数据进行同样运算的结果相同。实现同态加密的算法例如可以包括Paillier算法、Okamoto-Uchiyama算法、Damgard-Jurik算法等。
本说明书实施例提供一种数据处理***。所述数据处理***可以包括第一数据方和第二数据方,所述第一数据方和所述第二数据方可以分别为进行数据指标统计的双方。所述数据方可以为电子设备。所述电子设备可以包括个人计算机、服务器、手持设备、便携式设备、平板型设备、多处理器装置;或者,还可以包括由以上任何多个装置或设备所构成的集群等。
在一些实施例中,所述第一数据方可以持有标识数据集合。所述标识数据集合可以包括至少一个标识数据,所述标识数据可以用于标识业务数据。例如,所述标识数据可以为身份证号码,所述业务数据可以为存款金额。所述第二数据方可以持有业务数据集合。所述业务数据集合可以包括至少一个子集合(为了与后续的密文子集合进行区分,以下称为明文子集合)。所述明文子集合可以包括具有对应关系的标识数据和业务数据。这里标识数据和业务数据具有对应关系可以理解为:标识数据用于标识业务数据。
在一些实施例中,所述标识数据集合和所述业务数据集合中的标识数据可以全部相同,或者,还可以部分相同。通过与所述第一数据方进行交互,所述第二数据方可以获得统计指标。所述统计指标可以包括特定业务数据之和。所述特定业务数据可以包括:所述业务数据集合和所述标识数据集合间共有的标识数据所对应的业务数据。在此过程中,所述第一数据方不能够泄漏自身持有的标识数据集合,所述第二数据方不能够泄漏自身持有的业务数据集合。例如,所述第一数据方可以持有部分身份证号码,所述第二数据方可以持有全量的身份证号码及其对应的存款金额。那么,所述统计指标可以包括:第一数据方持有的身份证号码所对应的存款金额之和。
请参阅图1。本说明书提供数据处理方法的一个实施例。该实施例可以包括以下步骤。
步骤S101:第一数据方对标识数据集合中的标识数据进行加密,将加密结果作为第一密文集合中的第一标识数据密文。
在一些实施例中,所述标识数据集合可以包括至少一个标识数据。所述第一数据方可以生成第一加密密钥;可以采用加密算法,根据所述第一加密密钥分别对标识数据集合中的各个标识数据进行加密;可以将加密结果作为第一密文集合中的第一标识数据密文。
所述加密算法可以具有交替性和/或确定性。交替性是指:采用加密算法,根据两个或两个以上加密密钥对明文数据进行迭代加密,其加密结果与根据改变顺序后的两个或 两个以上加密密钥对明文数据进行迭代加密的加密结果相同。例如,采用加密算法,根据加密密钥k
1和k
2对明文数据A进行迭代加密得到加密结果
根据加密密钥k
2和k
1对明文数据A进行迭代加密得到加密结果
那么,
确定性是指:采用加密算法对同一明文数据分别进行多次加密,得到的多个加密结果相同。
所述加密算法可以包括对称加密算法和非对称加密算法。在所述加密算法为对称加密算法的条件下,所述第一数据方可以生成一个加密密钥作为第一加密密钥,与所述第一加密密钥相对应的解密密钥可以为所述第一加密密钥自身。在所述加密算法为非对称加密算法的条件下,所述第一数据方可以生成公私钥对;可以将该公私钥对中的公钥作为第一加密密钥;可以将该公私钥对中的私钥作为与所述第一加密密钥相对应的解密密钥。
所述加密算法可以为同态加密算法;或者,还可以为非同态加密算法。
在一些实施例中,为了增加安全性,避免不同的加密结果之间具有明显的规律性,所述第一数据方可以获取所述标识数据集合中标识数据的编码;可以对标识数据的编码进行加密;可以将加密结果作为第一密文集合中的第一标识数据密文。所述编码例如可以包括哈希值,包括但不限于MD5、SHA1、SHA256、SHA384、SHA512、和CRC32等。当然,所述编码还可以包括其它形式的编码,本实施例不作具体限定。
步骤S103:第一数据方向第二数据方发送第一密文集合。
在一些实施例中,所述第一数据方可以直接向所述第二数据方发送第一密文集合。
在一些实施例中,为了增加安全性,避免所述第二数据方获知第一密文集合中第一标识数据密文之间的位置关系,所述第一数据方还可以对所述第一密文集合中的第一标识数据密文进行乱序,得到乱序后的第一密文集合;可以向第二数据方发送乱序后的第一密文集合。
步骤S105:第二数据方接收第一密文集合;对第一密文集合中的第一标识数据密文进行加密,将加密结果作为第二密文集合中的第二标识数据密文。
在一些实施例中,所述第一数据方可以直接向所述第二数据方发送第一密文集合,所述第二数据方可以接收第一密文集合。或者,所述第一数据方还可以向所述第二数据方发送乱序后的第一密文集合,所述第二数据方可以接收乱序后的第一密文集合。
在一些实施例中,所述第二数据方可以生成第二加密密钥;可以采用加密算法,根据所述第二加密密钥分别对第一密文集合中的各个第一标识数据密文进行加密;可以将加密结果作为第二密文集合中的第二标识数据密文。值得说明的是,由于所述第二标识数据密文是通过对第一标识数据密文进行加密得到的,因而所述第二标识数据密文是二次加密后的密文。
所述加密算法可以包括对称加密算法和非对称加密算法。在所述加密算法为对称加密算法的条件下,所述第二数据方可以生成一个加密密钥作为第二加密密钥,与所述第二加密密钥相对应的解密密钥可以为所述第二加密密钥自身。在所述加密算法为非对称加密算法的条件下,所述第二数据方可以生成公私钥对;可以将该公私钥对中的公钥作为第二加密密钥;可以将该公私钥对中的私钥作为与所述第二加密密钥相对应的解密密钥。
所述第二数据方采用的加密算法可以与步骤S101中第一数据方采用的加密算法相同。
步骤S107:第二数据方向第一数据方发送第二密文集合。
在一些实施例中,所述第二数据方可以直接向所述第一数据方发送第二密文集合。
在一些实施例中,为了增加安全性,避免第一数据方获知第二密文集合中第二标识数据密文之间的位置关系,所述第二数据方还可以对所述第二密文集合中的第二标识数据密文进行乱序,得到乱序后的第二密文集合;可以向第一数据方发送乱序后的第二密文集合。
步骤S109:第一数据方接收第二密文集合;对第二密文集合中的第二标识数据密文进行解密,将解密结果作为第三密文集合中的第三标识数据密文。
在一些实施例中,所述第二数据方可以直接向所述第一数据方发送第二密文集合,所述第一数据方可以接收第二密文集合。或者,所述第二数据方还可以向所述第一数据方发送乱序后的第二密文集合,所述第一数据方可以接收乱序后的第二密文集合。
在一些实施例中,所述第一数据方可以根据与第一加密密钥相对应的解密密钥,分别对第二密文集合中的各个第二标识数据密文进行解密;可以将解密结果作为第三密文集合中的第三标识数据密文。值得说明的是,所述第三标识数据密文是通过对第二标识数据密文进行解密得到的。由于所述第二标识数据密文是二次加密后的密文,因而所述第三标识数据密文是一次加密后的密文。另外,由于步骤S101中第一数据方采用的加 密算法(即步骤S105中第二数据方采用的加密算法)具有交替性,因而对第二标识数据密文进行解密后的解密结果,与根据第二加密密钥对第一数据方持有的标识数据进行加密后的加密结果相同。从而可以实现,所述第一数据方在***漏自身持有的标识数据集合的条件下,获得第三密文集合中的第三标识数据密文,即,获得根据第二加密密钥对自身持有的标识数据进行加密后的加密结果。
在一些实施例中,考虑到解密结果的比特位数较多,若直接将解密结果作为第三密文集合中的第三标识数据密文,则对第三密文集合的存储会占用较多的存储空间,并且在第一数据方求取交集时(具体过程详见后续步骤S115)会增加时间开销。为此,所述第一数据方可以根据与第一加密密钥相对应的解密密钥,分别对第二密文集合中的各个第二标识数据密文进行解密;可以获取解密结果的编码;可以将解密结果的编码作为第三密文集合中的第三标识数据密文。所述编码例如可以包括哈希值,包括但不限于MD5、SHA1、SHA256、SHA384、SHA512、和CRC32等。当然,所述编码还可以包括其它形式的编码,本实施例不作具体限定。解密结果的编码的比特位数小于解密结果的比特位数,这样便可以减少第三密文集合中第三标识数据密文的比特位数。例如,受限于安全性的要求,解密结果的比特位数至少为256,而解密结果的哈希值的比特位数则可以为80。
步骤S111:第二数据方根据业务数据集合生成第四密文集合。
在一些实施例中,所述业务数据集合可以包括至少一个明文子集合,所述明文子集合可以包括具有对应关系的标识数据和业务数据。所述第四密文集合可以包括至少一个密文子集合,每个密文子集合可以包括具有对应关系的第三标识数据密文和业务数据密文。
在一些实施例中,所述第二数据方可以生成第三加密密钥。所述第二数据方可以采用加密算法,根据所述第二加密密钥对每个明文子集合中的标识数据进行加密,可以将加密结果作为密文子集合中的第三标识数据密文;可以采用同态加密算法,根据第三加密密钥对该明文子集合中的业务数据进行加密,可以将加密结果作为密文子集合中的业务数据密文。值得说明的是,这里所述第二数据方对明文子集合中的标识数据进行加密时所采用的加密算法可以与步骤S101中第一数据方采用的加密算法相同。
所述第三加密密钥可以与所述第二加密密钥不同。具体地,所述第二数据方可以生成公私钥对;可以将该公私钥对中的公钥作为第三加密密钥;可以将该公私钥对中的私钥作为与所述第三加密密钥相对应的解密密钥。
在一些实施例中,考虑到加密结果的比特位数较多,若直接将标识数据的加密结果作为第四密文集合中的第三标识数据密文,则在第二数据方向第一数据方发送第四密文集合时会增加通信量,并且在第一数据方求取交集时(具体过程详见后续步骤S115)会增加时间开销。为此,所述第二数据方可以采用加密算法,根据所述第二加密密钥对每个明文子集合中的标识数据进行加密;可以获取加密结果的编码;可以将加密结果的编码作为密文子集合中的第三标识数据密文。所述编码例如可以包括哈希值,包括但不限于MD5、SHA1、SHA256、SHA384、SHA512、和CRC32等。当然,所述编码还可以包括其它形式的编码,本实施例不作具体限定。加密结果的编码的比特位数小于加密结果的比特位数,这样便可以减少第四密文集合中第三标识数据密文的比特位数。例如,受限于安全性的要求,加密结果的比特位数至少为256,而加密结果的哈希值的比特位数则可以为80。
步骤S113:第二数据方向第一数据方发送第四密文集合。
在一些实施例中,所述第二数据方可以直接向所述第一数据方发送第四密文集合。
在一些实施例中,为了增加安全性,避免第一数据方获知第四密文集合中密文子集合之间的位置关系,所述第二数据方还可以对所述第四密文集合中的密文子集合进行乱序,得到乱序后的第四密文集合;可以向第一数据方发送乱序后的第四密文集合。
步骤S115:第一数据方接收第四密文集合;获取所述第三密文集合和所述第四密文集合之间共有的第三标识数据密文。
在一些实施例中,所述第二数据方可以直接向所述第一数据方发送第四密文集合,所述第一数据方可以接收第四密文集合。或者,所述第二数据方还可以向所述第一数据方发送乱序后的第四密文集合,所述第一数据方可以接收乱序后的第四密文集合。
在一些实施例中,所述第一数据方可以获取所述第三密文集合和所述第四密文集合的交集,所述交集可以包括所述第三密文集合和所述第四密文集合之间共有的第三标识数据密文。所述第三密文集合中的第三标识数据密文和所述第四密文集合中的标识数据密文均是一次加密后的密文。这样便可以实现在一次密文的基础上求取交集。
步骤S117:第一数据方计算共有的第三标识数据密文所对应的业务数据密文的同态相加结果。
在一些实施例中,每个共有的第三标识数据密文在第四密文集合中可以对应有业务数据密文。这样所述第一数据方可以获取所述交集中的第三标识数据密文在第四密文集 合中所对应的业务数据密文;可以计算所获取业务数据密文的同态相加结果。
所述同态相加结果与将特定业务数据的和进行同态加密后的加密结果相同。所述特定业务数据可以包括:所述业务数据集合和所述标识数据集合间共有的标识数据所对应的业务数据。计算同态相加结果时采用的运算方式例如可以为加法运算、乘法运算等等。依赖于同态加密算法性质的不同,计算同态相加结果时采用的具体运算方式也可以不同。在一个场景示例中,所述交集中的第三标识数据密文在第四密文集合中所对应的业务数据密文可以包括E(t
1)、E(t
2)和E(t
3)。那么,可以将业务数据密文E(t
1)、E(t
2)和E(t
3)相加,得到同态相加结果E(t
1+t
2+t
3)=E(t
1)+E(t
2)+E(t
3)。在另一个场景示例中,所述交集中的第三标识数据密文在第四密文集合中所对应的业务数据密文可以包括E(t
1)、E(t
2)和E(t
3)。那么,可以将业务数据密文E(t
1)、E(t
2)和E(t
3)相乘,得到同态相加结果E(t
1+t
2+t
3)=E(t
1)×E(t
2)×E(t
3)。
步骤S119:第一数据方向第二数据方发送同态相加结果。
步骤S121:第二数据方接收同态相加结果;对同态相加结果进行解密,得到统计指标。
在一些实施例中,所述第一数据方可以向所述第二数据方发送同态相加结果。所述第二数据方可以接收同态相加结果;可以根据与第三加密密钥相对应的解密密钥对同态相加结果进行解密,得到统计指标。所述统计指标可以包括特定业务数据之和,所述特定业务数据可以包括:所述业务数据集合和所述标识数据集合间共有的标识数据所对应的业务数据。
请参阅图2。以下介绍本说明书实施例的一个应用场景示例。
所述第一数据方可以持有标识数据集合{u
i,1≤i≤m},u
i表示标识数据,m表示所述标识数据集合中标识数据的数量。所述第一数据方可以生成第一加密密钥k
1,与第一加密密钥k
1相对应的解密密钥可以为所述第一加密密钥k
1自身。
所述第二数据方可以持有业务数据集合{<v
j,t
j>,1≤j≤n},<v
j,t
j>表示明文子集合,v
j表示标识数据,t
j表示业务数据,n表示所述业务数据集合中明文子集合的数量。所述第二数据方可以生成第二加密密钥k
2,与第二加密密钥k
2相对应的解密密钥可以为 所述第二加密密钥k
2自身。所述第二数据方还可以生成公私钥对pk和sk;可以将公钥pk作为第三加密密钥;可以将私钥sk作为与第三加密密钥pk相对应的解密密钥。
所述第一数据方可以获取标识数据集合{u
i,1≤i≤m}中标识数据的哈希值;可以根据第一加密密钥k
1对标识数据的哈希值进行加密;可以将加密结果作为第一密文集合中的第一标识数据密文。所述第一密文集合可以表示为
表示第一标识数据密文。所述第一数据方可以对第一密文集合中的第一标识数据密文进行乱序,得到乱序后的第一密文集合;可以向第二数据方发送乱序后的第一密文集合。
第二数据方可以接收乱序后的第一密文集合;可以根据第二加密密钥k
2对第一密文集合中的各个第一标识数据密文进行加密;可以将加密结果作为第二密文集合中的第二标识数据密文。所述第二密文集合可以表示为
表示第二标识数据密文。所述第二数据方可以对第二密文集合中的第二标识数据密文进行乱序,得到乱序后的第二密文集合;可以向第一数据方发送乱序后的第二密文集合。
所述第一数据方可以接收乱序后的第二密文集合;可以根据与第一加密密钥k
1相对应的解密密钥,分别对第二密文集合中的各个第二标识数据密文进行解密;可以获取解密结果的哈希值;可以将解密结果的哈希值作为第三密文集合中的第三标识数据密文。所述第三密文集合可以表示为
表示第三标识数据密文,
表示对第二标识数据密文进行解密后的解密结果。
所述第二数据方可以根据业务数据集合{<v
j,t
j>,1≤j≤n}生成第四密文集合。所述第四密文集合可以表示为
表示密文子集合,
表示第三标识数据密文,E
pk(t
j)表示业务数据密文,E
pk(t
j)具体为同态密文。所述第二数据方可以对第四密文集合中的密文子集合进行乱序,得到乱序后的第四密文集合;可以向第一数据方发送乱序后的第四密文集合。
所述第一数据方可以接收乱序后的第四密文集合;可以获取所述第三密文集合和所 述第四密文集合的交集;可以计算交集中的第三标识数据密文所对应的业务数据密文的同态相加结果sumE
pk(t
j);可以向第二数据方发送同态相加结果sumE
pk(t
j)。
所述第二数据方可以接收同态相加结果;可以根据与第三加密密钥pk相对应的解密密钥sk对同态相加结果进行解密,得到统计指标sum(t
j)。
在本实施例中,第一数据方和第二数据方可以在***漏自身拥有的数据的条件下,共同完成数据指标的统计。另外,在本实施例中,所述第一数据方可以在***漏自身持有的标识数据集合的条件下,所述第二数据方可以在***漏自身持有的业务数据集合的条件下,在标识数据的一次密文的基础上求取交集。所述第二数据方进而可以根据所述交集获得统计指标。由于是在标识数据的一次密文的基础上求取交集,一方面可以保证数据不会被泄漏,安全性较高;另一方面可以减少计算量(例如第一数据方无需对第四密文集合中的第三标识数据密文进行再次加密)。
基于同样的发明构思,本说明书还提供另一种数据处理方法的实施例。请参阅图3。该实施例以持有标识数据集合的第一数据方为执行主体,所述标识数据集合可以包括至少一个标识数据。该实施例可以包括以下步骤。
步骤S201:对标识数据进行加密,将加密结果作为第一密文集合中的第一标识数据密文。
在一些实施例中,所述第一数据方可以生成加密密钥;可以采用加密算法,根据所述加密密钥分别对标识数据集合中的各个标识数据进行加密;可以将加密结果作为第一密文集合中的第一标识数据密文。
在一些实施例中,所述第一数据方可以获取所述标识数据集合中标识数据的编码;可以对标识数据的编码进行加密;可以将加密结果作为第一密文集合中的第一标识数据密文。
步骤S203:向第二数据方发送第一密文集合。
在一些实施例中,所述第一数据方可以直接向所述第二数据方发送第一密文集合。
在一些实施例中,所述第一数据方还可以对所述第一密文集合中的第一标识数据密文进行乱序,得到乱序后的第一密文集合;可以向第二数据方发送乱序后的第一密文集合。
步骤S205:接收第二数据方发来的第二密文集合,所述第二密文集合包括至少一个 第二标识数据密文,所述第二标识数据密文通过对第一标识数据密文进行加密得到。
在一些实施例中,所述第二数据方可以接收第一密文集合;可以对第一密文集合中的第一标识数据密文进行加密;可以将加密结果作为第二密文集合中的第二标识数据密文;可以向第一数据方发送第二密文集合。所述第一数据方可以接收第二密文集合。
步骤S207:对第二标识数据密文进行解密,将解密结果作为第三密文集合中的第三标识数据密文。
在一些实施例中,所述第一数据方可以根据与所述加密密钥相对应的解密密钥,分别对第二密文集合中的各个第二标识数据密文进行解密;可以将解密结果作为第三密文集合中的第三标识数据密文。
在一些实施例中,所述第一数据方可以根据与加密密钥相对应的解密密钥,分别对第二密文集合中的各个第二标识数据密文进行解密;可以获取解密结果的编码;可以将解密结果的编码作为第三密文集合中的第三标识数据密文。
步骤S209:接收第二数据方发来的第四密文集合,所述第四密文集合包括至少一个密文子集合,所述密文子集合包括第三标识数据密文和业务数据密文,所述业务数据密文包括同态密文。
在一些实施例中,所述第二数据方可以根据业务数据集合生成第四密文集合,具体的生成过程可以参见前面步骤S111中的相关描述。所述第二数据方可以向第一数据方发送第四密文集合。所述第一数据方可以接收第四密文集合。
步骤S211:获取所述第三密文集合和所述第四密文集合间共有的第三标识数据密文。
在一些实施例中,所述第一数据方可以获取所述第三密文集合和所述第四密文集合的交集,所述交集包括所述第三密文集合和所述第四密文集合之间共有的第三标识数据密文。
步骤S213:计算共有的第三标识数据密文所对应的业务数据密文的同态相加结果。
步骤S215:向第二数据方发送同态相加结果。
在本实施例中,通过与第二数据方进行交互,所述第一数据方可以获得第三密文集合和第四密文集合;可以获取所述第三密文集合和所述第四密文集合之间共有的第三标识数据密文;可以计算共有的第三标识数据密文所对应的业务数据密文的同态相加结果;可以向第二数据方发送同态相加结果。以便第二数据方根据同态相加结果获得统计指标。
基于同样的发明构思,本说明书还提供另一种数据处理方法的实施例。请参阅图4。该实施例以持有业务数据集合的第二数据方为执行主体,所述业务数据集合可以包括至少一个明文子集合,所述明文子集合可以包括标识数据和业务数据。该实施例可以包括以下步骤。
步骤S301:生成第一密文集合,所述第一密文集合包括至少一个密文子集合,所述密文子集合包括第一标识数据密文和业务数据密文,所述第一标识数据密文通过对标识数据进行加密得到,所述业务数据密文由同态加密算法通过对业务数据进行加密得到。
在一些实施例中,所述第二数据方可以根据业务数据集合生成第一密文集合,具体的生成过程可以参见前面步骤S111中有关第四密文集合的生成过程。
步骤S303:向第一数据方发送第一密文集合。
在一些实施例中,所述第二数据方可以直接向所述第一数据方发送第一密文集合。
在一些实施例中,所述第二数据方还可以对所述第一密文集合中的密文子集合进行乱序,得到乱序后的第一密文集合;可以向第一数据方发送乱序后的第一密文集合。
步骤S305:接收第一数据方发来的特定业务数据密文的同态相加结果。
步骤S307:对所述同态相加结果进行解密,得到统计指标。
在一些实施例中,所述第二数据方还可以接收第一数据方发来的第二密文集合。所述第二密文集合可以包括至少一个第二标识数据密文,所述第二标识数据密文通过对第一数据方持有的标识数据进行加密得到。所述第二数据方可以对第二标识数据密文进行加密;可以将加密结果作为第三密文集合中的第三标识数据密文;可以向第一数据方发送第三密文集合,以便第一数据方根据第三密文集合生成第四密文集合。所述第四密文集合可以包括至少一个第一标识数据密文。其中,所述第二数据方可以直接向第一数据方发送第三密文集合。或者,所述第二数据方还可以对第三密文集合中的第三标识数据密文进行乱序,得到乱序后的第三密文集合;可以向第一数据方发送乱序后的第三密文集合。所述特定业务数据密文可以包括:所述第一密文集合和所述第四密文集合间共有的第一标识数据密文所对应的业务数据密文。
值得说明的是,本实施例中的第一密文集合、第二密文集合、第三密文集合、第四密文集合可以分别参见图1所对应实施例中有关第四密文集合、第一密文集合、第二密文集合、第三密文集合的描述。
在本实施例中,通过与第一数据方进行交互,所述第一数据方可以获得同态相加结果;可以对所述同态相加结果进行解密,得到统计指标。
基于同样的发明构思,本说明书还提供一种数据处理装置的实施例。请参阅图5。该实施例可以应用于持有标识数据集合的第一数据方,所述标识数据集合可以包括至少一个标识数据。该实施例可以包括以下单元。
加密单元401,用于对标识数据进行加密,将加密结果作为第一密文集合中的第一标识数据密文;
第一发送单元403,用于向第二数据方发送第一密文集合;
第一接收单元405,用于接收第二数据方发来的第二密文集合,所述第二密文集合包括至少一个第二标识数据密文,所述第二标识数据密文通过对第一标识数据密文进行加密得到;
解密单元407,用于对第二标识数据密文进行解密,将解密结果作为第三密文集合中的第三标识数据密文;
第二接收单元409,用于接收第二数据方发来的第四密文集合,所述第四密文集合包括至少一个密文子集合,所述密文子集合包括第三标识数据密文和业务数据密文,所述业务数据密文包括同态密文;
获取单元411,用于获取所述第三密文集合和所述第四密文集合共有的第三标识数据密文;
计算单元413,用于计算共有的第三标识数据密文所对应的业务数据密文的同态相加结果;
第二发送单元415,用于向第二数据方发送同态相加结果。
基于同样的发明构思,本说明书还提供另一种数据处理装置的实施例。请参阅图6。该实施例可以应用于持有业务数据集合的第二数据方,所述业务数据集合可以包括至少一个明文子集合,所述明文子集合可以包括标识数据和业务数据。该实施例可以包括以下单元。
生成单元501,用于生成第一密文集合,所述第一密文集合包括至少一个密文子集合,所述密文子集合包括第一标识数据密文和业务数据密文,所述第一标识数据密文通过对标识数据进行加密得到,所述业务数据密文由同态加密算法通过对业务数据进行 加密得到;
发送单元503,用于向第一数据方发送第一密文集合;
接收单元505,用于接收第一数据方发来的特定业务数据密文的同态相加结果;
解密单元507,用于对所述同态相加结果进行解密,得到统计指标。
下面介绍本说明书电子设备的一个实施例。图7是该实施例中一种电子设备的硬件结构示意图。如图7所示,所述电子设备可以包括一个或多个(图中仅示出一个)处理器、存储器和传输模块。当然,本领域普通技术人员可以理解,图7所示的硬件结构仅为示意,其并不对上述电子设备的硬件结构造成限定。在实际中所述电子设备还可以包括比图7所示更多或者更少的组件单元;或者,具有与图7所示不同的配置。
所述存储器可以包括高速随机存储器;或者,还可以包括非易失性存储器,例如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。当然,所述存储器还可以包括远程设置的网络存储器。所述远程设置的网络存储器可以通过诸如互联网、企业内部网、局域网、移动通信网等网络连接至所述电子设备。所述存储器可以用于存储应用软件的程序指令或模块,例如本说明书图3所对应实施例的程序指令或模块;和/或,本说明书图4所对应实施例的程序指令或模块。
所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以读取并执行所述存储器中的程序指令或模块。
所述传输模块可以用于经由网络进行数据传输,例如经由诸如互联网、企业内部网、局域网、移动通信网等网络进行数据传输。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于装置实施例和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例 如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字***“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)与Verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。
Claims (18)
- 一种数据处理方法,应用于持有标识数据集合的第一数据方,所述标识数据集合包括至少一个标识数据,该方法包括:对标识数据进行加密,将加密结果作为第一密文集合中的第一标识数据密文;向第二数据方发送第一密文集合;接收第二数据方发来的第二密文集合,所述第二密文集合包括至少一个第二标识数据密文,所述第二标识数据密文通过对第一标识数据密文进行加密得到;对第二标识数据密文进行解密,将解密结果作为第三密文集合中的第三标识数据密文;接收第二数据方发来的第四密文集合,所述第四密文集合包括至少一个密文子集合,所述密文子集合包括第三标识数据密文和业务数据密文,所述业务数据密文包括同态密文;获取所述第三密文集合和所述第四密文集合间共有的第三标识数据密文;计算共有的第三标识数据密文所对应的业务数据密文的同态相加结果;向第二数据方发送同态相加结果。
- 如权利要求1所述的方法,所述对标识数据进行加密,包括:获取标识数据的编码;对标识数据的编码进行加密。
- 如权利要求1所述的方法,所述第一数据方持有加密密钥;所述对标识数据进行加密,包括:根据加密密钥对标识数据进行加密;所述对第二密文数据进行解密,包括:根据与所述加密密钥相对应的解密密钥对第二标识数据密文进行解密。
- 如权利要求1所述的方法,所述对第二标识数据密文进行解密,将解密结果作为第三密文集合中的第三标识数据密文,包括:对第二标识数据密文进行解密;获取解密结果的编码作为第三密文集合中的第三标识数据密文。
- 如权利要求2或4所述的方法,所述编码包括哈希值。
- 如权利要求1所述的方法,所述向第二数据方发送第一密文集合,包括:对第一密文集合中的第一标识数据密文进行乱序,得到乱序后的第一密文集合;向第二数据方发送乱序后的第一密文集合。
- 一种数据处理方法,应用于持有业务数据集合的第二数据方,所述业务数据集合包括至少一个明文子集合,所述明文子集合包括标识数据和业务数据,该方法包括:生成第一密文集合,所述第一密文集合包括至少一个密文子集合,所述密文子集合包括第一标识数据密文和业务数据密文,所述第一标识数据密文通过对标识数据进行加密得到,所述业务数据密文由同态加密算法通过对业务数据进行加密得到;向第一数据方发送第一密文集合;接收第一数据方发来的特定业务数据密文的同态相加结果;对所述同态相加结果进行解密,得到统计指标。
- 如权利要求7所述的方法,所述第一标识数据密文通过对标识数据的编码进行加密得到。
- 如权利要求8所述的方法,所述编码包括哈希值。
- 如权利要求7所述的方法,所述第二数据方持有第一加密密钥和第二加密密钥;所述第一标识数据密文根据第一加密密钥对标识数据进行加密得到,所述业务数据密文根据第二加密密钥对业务数据进行加密得到。
- 如权利要求7所述的方法,所述向第一数据方发送第一密文集合,包括:对第一密文集合中的密文子集合进行乱序,得到乱序后的第一密文集合;向第一数据方发送乱序后的第一密文集合。
- 如权利要求7所述的方法,还包括:接收第一数据方发来的第二密文集合,所述第二密文集合包括至少一个第二标识数据密文,所述第二标识数据密文通过对第一数据方持有的标识数据进行加密得到;对第二标识数据密文进行加密,将加密结果作为第三密文集合中的第三标识数据密文;向第一数据方发送第三密文集合,以便第一数据方根据第三密文集合生成第四密文集合,所述第四密文集合包括至少一个第一标识数据密文。
- 如权利要求12所述的方法,所述特定业务数据密文包括:所述第一密文集合和所述第四密文集合间共有的第一标识数据密文所对应的业务数据密文。
- 如权利要求12所述的方法,所述向第一数据方发送第三密文集合,包括:对第三密文集合中的第三标识数据密文进行乱序,得到乱序后的第三密文集合;向第一数据方发送乱序后的第三密文集合。
- 一种数据处理装置,应用于持有标识数据集合的第一数据方,所述标识数据集合包括至少一个标识数据,该装置包括:加密单元,用于对标识数据进行加密,将加密结果作为第一密文集合中的第一标识数据密文;第一发送单元,用于向第二数据方发送第一密文集合;第一接收单元,用于接收第二数据方发来的第二密文集合,所述第二密文集合包括至少一个第二标识数据密文,所述第二标识数据密文通过对第一标识数据密文进行加密得到;解密单元,用于对第二标识数据密文进行解密,将解密结果作为第三密文集合中的第三标识数据密文;第二接收单元,用于接收第二数据方发来的第四密文集合,所述第四密文集合包括至少一个密文子集合,所述密文子集合包括第三标识数据密文和业务数据密文,所述业务数据密文包括同态密文;获取单元,用于获取所述第三密文集合和所述第四密文集合共有的第三标识数据密文;计算单元,用于计算共有的第三标识数据密文所对应的业务数据密文的同态相加结果;第二发送单元,用于向第二数据方发送同态相加结果。
- 一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如权利要求1-6中任一项所述的方法步骤。
- 一种数据处理装置,应用于持有业务数据集合的第二数据方,所述业务数据集合包括至少一个明文子集合,所述明文子集合包括标识数据和业务数据,该装置包括:生成单元,用于生成第一密文集合,所述第一密文集合包括至少一个密文子集合,所述密文子集合包括第一标识数据密文和业务数据密文,所述第一标识数据密文通过对标识数据进行加密得到,所述业务数据密文由同态加密算法通过对业务数据进行加密得到;发送单元,用于向第一数据方发送第一密文集合;接收单元,用于接收第一数据方发来的特定业务数据密文的同态相加结果;解密单元,用于对所述同态相加结果进行解密,得到统计指标。
- 一种电子设备,包括:存储器,用于存储计算机指令;处理器,用于执行所述计算机指令以实现如权利要求7-14中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/778,989 US10885203B2 (en) | 2019-08-01 | 2020-01-31 | Encrypted data exchange |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910706736.3A CN110535622A (zh) | 2019-08-01 | 2019-08-01 | 数据处理方法、装置和电子设备 |
CN201910706736.3 | 2019-08-01 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/778,989 Continuation US10885203B2 (en) | 2019-08-01 | 2020-01-31 | Encrypted data exchange |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021017420A1 true WO2021017420A1 (zh) | 2021-02-04 |
Family
ID=68661186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/071355 WO2021017420A1 (zh) | 2019-08-01 | 2020-01-10 | 数据处理方法、装置和电子设备 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN110535622A (zh) |
TW (1) | TWI740399B (zh) |
WO (1) | WO2021017420A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722744A (zh) * | 2021-09-15 | 2021-11-30 | 京东科技信息技术有限公司 | 用于联邦特征工程的数据处理方法、装置、设备以及介质 |
CN115001733A (zh) * | 2022-04-15 | 2022-09-02 | 支付宝(杭州)信息技术有限公司 | 一种数据确定方法、装置、存储介质及终端 |
CN115118448A (zh) * | 2022-04-21 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10885203B2 (en) | 2019-08-01 | 2021-01-05 | Advanced New Technologies Co., Ltd. | Encrypted data exchange |
CN110535622A (zh) * | 2019-08-01 | 2019-12-03 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和电子设备 |
CN111144576A (zh) * | 2019-12-13 | 2020-05-12 | 支付宝(杭州)信息技术有限公司 | 模型训练方法、装置和电子设备 |
CN111061720B (zh) * | 2020-03-12 | 2021-05-07 | 支付宝(杭州)信息技术有限公司 | 数据筛选方法、装置和电子设备 |
CN112003695B (zh) * | 2020-08-11 | 2024-01-05 | 天翼电子商务有限公司 | 隐私集合求交方法、***、介质及装置 |
CN111931221B (zh) * | 2020-09-25 | 2021-01-01 | 支付宝(杭州)信息技术有限公司 | 数据处理方法、装置和服务器 |
CN112883415A (zh) * | 2021-01-22 | 2021-06-01 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的数据核对方法、装置和服务器 |
CN112597524B (zh) * | 2021-03-03 | 2021-05-18 | 支付宝(杭州)信息技术有限公司 | 隐私求交的方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105794145A (zh) * | 2013-11-27 | 2016-07-20 | 微软技术许可有限责任公司 | 服务器辅助的具有数据传输的私有集交集(psi) |
WO2017160317A1 (en) * | 2016-03-18 | 2017-09-21 | Entit Software Llc | Data objects associated with private set intersection (psi) |
EP3340152A1 (en) * | 2016-12-22 | 2018-06-27 | Telefonica Digital España, S.L.U. | Method of selecting and delivering content for privacy-protected targeting content systems |
CN108463827A (zh) * | 2016-01-22 | 2018-08-28 | 谷歌有限责任公司 | 用于检测敏感信息泄漏同时保护隐私的***和方法 |
CN109525386A (zh) * | 2018-11-29 | 2019-03-26 | 东北大学 | 一种基于Paillier同态加密私有交集和的方法 |
CN110535622A (zh) * | 2019-08-01 | 2019-12-03 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和电子设备 |
CN110622165A (zh) * | 2018-04-19 | 2019-12-27 | 谷歌有限责任公司 | 用于确定隐私集交集的安全性措施 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099653A (zh) * | 2014-05-20 | 2015-11-25 | 华为技术有限公司 | 分布式数据处理方法、装置及*** |
CN104468612B (zh) * | 2014-12-24 | 2017-06-23 | 无锡儒安科技有限公司 | 基于对称加密的保护隐私的属性匹配方法 |
CN108055118B (zh) * | 2017-12-11 | 2020-06-05 | 东北大学 | 一种隐私保护的图数据交集计算方法 |
CN110012443A (zh) * | 2019-03-11 | 2019-07-12 | 暨南大学 | 一种全同态的数据加密聚合方法及其*** |
-
2019
- 2019-08-01 CN CN201910706736.3A patent/CN110535622A/zh active Pending
-
2020
- 2020-01-10 WO PCT/CN2020/071355 patent/WO2021017420A1/zh active Application Filing
- 2020-03-02 TW TW109106724A patent/TWI740399B/zh active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105794145A (zh) * | 2013-11-27 | 2016-07-20 | 微软技术许可有限责任公司 | 服务器辅助的具有数据传输的私有集交集(psi) |
CN108463827A (zh) * | 2016-01-22 | 2018-08-28 | 谷歌有限责任公司 | 用于检测敏感信息泄漏同时保护隐私的***和方法 |
WO2017160317A1 (en) * | 2016-03-18 | 2017-09-21 | Entit Software Llc | Data objects associated with private set intersection (psi) |
EP3340152A1 (en) * | 2016-12-22 | 2018-06-27 | Telefonica Digital España, S.L.U. | Method of selecting and delivering content for privacy-protected targeting content systems |
CN110622165A (zh) * | 2018-04-19 | 2019-12-27 | 谷歌有限责任公司 | 用于确定隐私集交集的安全性措施 |
CN109525386A (zh) * | 2018-11-29 | 2019-03-26 | 东北大学 | 一种基于Paillier同态加密私有交集和的方法 |
CN110535622A (zh) * | 2019-08-01 | 2019-12-03 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置和电子设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722744A (zh) * | 2021-09-15 | 2021-11-30 | 京东科技信息技术有限公司 | 用于联邦特征工程的数据处理方法、装置、设备以及介质 |
CN115001733A (zh) * | 2022-04-15 | 2022-09-02 | 支付宝(杭州)信息技术有限公司 | 一种数据确定方法、装置、存储介质及终端 |
CN115001733B (zh) * | 2022-04-15 | 2024-06-04 | 支付宝(杭州)信息技术有限公司 | 一种数据确定方法、装置、存储介质及终端 |
CN115118448A (zh) * | 2022-04-21 | 2022-09-27 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
CN115118448B (zh) * | 2022-04-21 | 2023-09-01 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TW202107316A (zh) | 2021-02-16 |
CN110535622A (zh) | 2019-12-03 |
TWI740399B (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021017420A1 (zh) | 数据处理方法、装置和电子设备 | |
US10885203B2 (en) | Encrypted data exchange | |
US11784801B2 (en) | Key management method and related device | |
WO2021057073A1 (zh) | 一种非对称密钥中的私钥生成和使用方法、装置和设备 | |
WO2020211485A1 (zh) | 数据处理方法、装置和电子设备 | |
US20130016832A1 (en) | Security device | |
KR101600016B1 (ko) | 동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치 | |
US20120269340A1 (en) | Hierarchical encryption/decryption device and method thereof | |
US20200226952A1 (en) | Digital cryptosystem with re-derivable hybrid keys | |
US10305689B2 (en) | Encryption apparatus, decryption apparatus, cryptography processing system, encryption method, decryption method, encryption program, and decryption program | |
JP6533553B2 (ja) | 暗号化/復号装置及びその電力解析保護方法 | |
WO2021017424A1 (zh) | 数据预处理方法、密文数据获取方法、装置和电子设备 | |
CN112788001B (zh) | 一种基于数据加密的数据处理业务处理方法、装置及设备 | |
US11431489B2 (en) | Encryption processing system and encryption processing method | |
CN110636070A (zh) | 数据发送方法、数据查询方法、装置、电子设备和*** | |
CN111193741B (zh) | 一种信息发送方法、信息获取方法、装置及设备 | |
CN110730167B (zh) | 数据发送方法、数据查询方法、装置、电子设备和*** | |
CN110650119A (zh) | 数据传输方法、装置和电子设备 | |
US11496287B2 (en) | Privacy preserving fully homomorphic encryption with circuit verification | |
CN111046431B (zh) | 数据处理方法、查询方法、装置、电子设备和*** | |
CN114866312B (zh) | 一种保护数据隐私的共有数据确定方法及装置 | |
US9553723B2 (en) | Multi-dimensional encryption | |
US11533162B2 (en) | Method for verification of integrity and decryption of an encrypted message, associated cryptomodule and terminal | |
WO2021031828A1 (zh) | 数据传输方法、装置和电子设备 | |
CN111556003A (zh) | 双重网络加密*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20847848 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: 20847848 Country of ref document: EP Kind code of ref document: A1 |