WO2021120861A1 - 多方联合进行模型数据处理的方法及装置 - Google Patents
多方联合进行模型数据处理的方法及装置 Download PDFInfo
- Publication number
- WO2021120861A1 WO2021120861A1 PCT/CN2020/123982 CN2020123982W WO2021120861A1 WO 2021120861 A1 WO2021120861 A1 WO 2021120861A1 CN 2020123982 W CN2020123982 W CN 2020123982W WO 2021120861 A1 WO2021120861 A1 WO 2021120861A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- random number
- result
- ciphertext
- model
- owner
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
-
- 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
-
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3218—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
Definitions
- One or more embodiments of this specification relate to the field of machine learning and data security, and more particularly to methods and devices for multi-party joint processing of model data.
- Party A holds the user sample characteristic data to be processed
- Party B holds the data processing model.
- Party A sends the sample data directly to Party B, it will cause the feature value of the user sample to be exposed, leaking user privacy; if Party B provides the data processing model to The use by Party A will cause the model parameters of the data processing model to be exposed.
- One or more embodiments of this specification describe a method and device for multiple parties to jointly process model data. After the model owner homomorphically encrypts multiple model parameters, it also generates a zero-knowledge proof of the legitimacy of the ciphertext for Data owner verification, thereby further protecting the security of all parties' private data from leakage.
- a method for multiple parties to jointly perform model data processing to protect data privacy includes a model owner and a data owner.
- the method is executed by the model owner and includes: adopting homomorphism Encryption algorithm, based on the pre-generated public key and separately generated k random numbers, respectively encrypt the k model parameters in the first model possessed to obtain k parameter ciphertexts; randomly select the first message and the first Random number; and using the homomorphic encryption algorithm, based on the public key and the first random number, encrypt the first message to obtain an auxiliary ciphertext; send the k data to the data owner The parameter ciphertext and the auxiliary ciphertext; obtaining k number of challenges; linearly combining the k number of challenges with the k model parameters, and superimposing them with the first message, and obtaining a verification message based on the superposition result; Combine the k challenge numbers with the k random numbers and the first random number to obtain a verification random number; send a
- the first model is a linear regression model or a logistic regression model.
- the public key includes a natural number N and a generator h of a cyclic subgroup in the random number space defined by the natural number N; in this case, the first message is encrypted to obtain
- the step of assisting the ciphertext may include: using the first message to perform a power operation on (N+1) to obtain a first intermediate result; using the first random number to perform a group operation based on the generator h to obtain The second intermediate result; based on the first intermediate result and the second intermediate result, the auxiliary ciphertext is obtained.
- the verification random number can be obtained by linearly combining the k challenge numbers with the k random numbers, and superimposing them with the first random number to obtain The verification random number.
- the public key includes at least a natural number N; in this case, the step of encrypting the first message to obtain an auxiliary ciphertext may include: using the first message, pairing (N+ 1) Perform a power operation to obtain a first intermediate result; perform an N-th power operation on the first random number to obtain a second intermediate result; obtain the auxiliary ciphertext based on the first intermediate result and the second intermediate result .
- the verification random number can be obtained in the following manner: sequentially for the i-th challenge number and the i-th random number, use the i-th challenge number to power the i-th random number to obtain k Exponentiation operation result; multiplying the k exponentiation operation results and the first random number to obtain the verification random number.
- the k challenge numbers are obtained in the following manner: receiving the k challenge numbers randomly selected by the data owner.
- the k challenge numbers are obtained in the following manner: based on the k parameter ciphertexts and the auxiliary ciphertext, the hash algorithm agreed with the data owner is used to calculate the The number of k challenges.
- calculating the number of k challenges may include: arranging the k parameter ciphertexts and the auxiliary ciphertext into a first sequence; at a predetermined position of the first sequence, K predetermined index values are respectively added to obtain k second sequences; a predetermined hash function is respectively applied to the k second sequences to obtain the k challenge numbers.
- calculating the number of k challenges may include: arranging the k parameter ciphertexts and the auxiliary ciphertexts into k sequences according to predetermined k sorting modes; respectively; A predetermined hash function is applied to the k sequences to obtain the k challenge numbers.
- the step of obtaining a verification message based on the first superimposition result may include: taking the first superimposition result modulo N, and using the modulo result as the verification message, where N is a natural number in the public key.
- the method further includes: using a decryption algorithm corresponding to the homomorphic encryption algorithm, and using a private key corresponding to the public key to decrypt the feature operation ciphertext to obtain the feature An operation result, the feature operation result corresponding to the linear combination of the k sample features and the k model parameters.
- a method for multiple parties to jointly process model data to protect data privacy includes a model owner and a data owner.
- the method is executed by the data owner and includes:
- the model owner receives k parameter ciphertexts and auxiliary ciphertexts whose encryption legitimacy needs to be verified; in the case of legal encryption, the k parameter ciphertexts are homomorphic encryption algorithms used by the model owner based on pre-generated
- the public key and the respectively generated k random numbers are obtained by respectively encrypting the k model parameters.
- the auxiliary ciphertext is obtained by using the homomorphic encryption algorithm and based on the public key and the first random number.
- a message is encrypted; determine k challenge numbers; receive a zero-knowledge proof from the model owner, which includes a verification message and a verification random number; wherein, the verification message is based on the k challenge numbers and the The linear combination of k model parameters, and the superposition with the first message, the verification random number is obtained based on the combination of the k challenge numbers, the k random numbers, and the first random number ; Use the k challenge numbers to perform a homomorphic sum operation on the k parameter ciphertext and the auxiliary ciphertext to obtain the first result; and use the homomorphic encryption algorithm based on the public key and the The verification random number encrypts the verification message to obtain a second result; in the case that the first result of verification is equal to the second result, homomorphic summation of the k parameter ciphertexts is performed using the k sample features that are possessed Calculation to obtain a feature operation ciphertext; sending the feature operation ciphertext to the model owner for the model owner to restore the feature operation result
- the public key includes a natural number N and a generator h of a cyclic subgroup in the random number space defined by the natural number N; correspondingly, the second result can be obtained through the following steps: use Verify the message, perform a power operation on (N+1) to obtain the first intermediate term; use a verification random number to perform a group operation based on the generator h to obtain the second intermediate term; based on the first intermediate term and the second intermediate term In the middle term, the second result is obtained.
- the first result is obtained in the following manner: sequentially for the i-th challenge number and the i-th parameter ciphertext, use the i-th challenge number to power the i-th parameter ciphertext to obtain the k power operation result ; Multiply the auxiliary ciphertext and the k power operation results together, and the product result is used as the first result.
- the feature operation ciphertext is obtained in the following manner: sequentially for the i-th sample feature and the i-th parameter ciphertext, the i-th sample feature is used to exponentiate the i-th parameter ciphertext to obtain k power operation results ; Multiply the k power operation results together, and the product result is used as the feature operation ciphertext.
- the step of determining the number of k challenges may include: randomly determining the number of k challenges and sending them to the model owner.
- the step of determining the number of k challenges may include: based on the k parameter ciphertexts and the auxiliary ciphertext, using a hash algorithm agreed with the model owner to calculate all State the number of k challenges.
- calculating the k number of challenges specifically includes: arranging the k parameter ciphertexts and the auxiliary ciphertext into a first sequence; at a predetermined position of the first sequence, K predetermined index values are respectively added to obtain k second sequences; a predetermined hash function is respectively applied to the k second sequences to obtain the k challenge numbers.
- calculating the k number of challenges specifically includes: arranging the k parameter ciphertexts and the auxiliary ciphertexts into k sequences according to predetermined k sorting modes; respectively; A predetermined hash function is applied to the k sequences to obtain the k challenge numbers.
- the k sample characteristics may include one of the following: user attribute characteristics, picture pixel characteristics, audio characteristics, and text encoding characteristics.
- a device for multiple parties to jointly process model data to protect data privacy includes a model owner and a data owner.
- the device is deployed in the model owner and includes: parameter encryption
- the unit is configured to use a homomorphic encryption algorithm to separately encrypt the k model parameters in the first model it owns based on the pre-generated public key and the k random numbers generated separately to obtain k parameter ciphertexts; auxiliary An encryption unit configured to randomly select a first message and a first random number; and adopt the homomorphic encryption algorithm to encrypt the first message based on the public key and the first random number to obtain an auxiliary secret
- the first sending unit is configured to send the k parameter ciphertexts and the auxiliary ciphertext to the data owner;
- the challenge number acquisition unit is configured to acquire k challenge numbers;
- the combination unit is configured to send all
- the k challenge numbers are linearly combined with the k model parameters, and superimposed with the first message, and a verification message is obtained based on the superposition result; the
- a random number is combined to obtain a verification random number;
- the second sending unit is configured to send a zero-knowledge proof to the data owner, which includes the verification message and the verification random number, so that the data owner verifies and uses all
- the first result of the homomorphic addition operation of the k challenge numbers on the k parameter ciphertexts and the auxiliary ciphertext is the same as using the homomorphic encryption algorithm, based on the public key and the verification random number Whether the second result of encrypting the verification message is equal;
- the receiving unit is configured to receive a feature operation ciphertext sent by the data owner, and the feature operation ciphertext is the data owner who passed the verification In this case, the result of homomorphic addition operation on the k parameter ciphertexts using the k sample features it owns is used for the model owner to restore the feature operation result, so as to perform business processing based on the feature operation result.
- a device for multiple parties to jointly process model data to protect data privacy includes a model owner and a data owner.
- the device is deployed in the data owner and includes:
- the receiving unit is configured to receive k parameter ciphertexts and auxiliary ciphertexts whose encryption legitimacy needs to be verified from the model owner; in the case of legal encryption, the k parameter ciphertexts are the same as those used by the model owner
- Encryption algorithm is obtained by separately encrypting k model parameters based on a pre-generated public key and k random numbers generated separately.
- the auxiliary ciphertext is obtained by using the homomorphic encryption algorithm based on the public key and the first A random number, obtained by encrypting a random first message; a challenge number determining unit, configured to determine k challenge numbers; a second receiving unit, configured to receive a zero-knowledge proof from the model owner, including a verification message And verification random number; wherein, the verification message is obtained based on the linear combination of the k challenge numbers and the k model parameters, and the superposition with the first message, and the verification random number is based on all
- the k challenge numbers are obtained by combining the k random numbers and the first random number; the verification unit is configured to perform the k parameter ciphertext and the auxiliary ciphertext using the k challenge numbers A homomorphic sum operation is used to obtain a first result; and the homomorphic encryption algorithm is used to encrypt the verification message based on the public key and the verification random number to obtain a second result; a homomorphic operation unit is configured In order to perform homomorphic addition operations
- a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed in a computer, the computer is caused to execute the method of the first aspect or the second aspect.
- a computing device including a memory and a processor, characterized in that executable code is stored in the memory, and when the processor executes the executable code, the first aspect or the first aspect is implemented. Two-sided approach.
- the model owner and the data owner can interact with the data through homomorphic encryption and homomorphic operations, thereby obtaining characteristic calculation results.
- the model owner also provides a zero-knowledge proof to the data owner to prove that the sent ciphertext is generated by legally encrypting the model parameters.
- the above zero-knowledge proof can verify the legitimacy of multiple parameter ciphertexts at one time without revealing any relevant plaintext information, thereby further ensuring that the model data process The security of the private data of all parties.
- Fig. 1 is a schematic diagram of an implementation scenario of an embodiment disclosed in this specification
- FIG. 2 shows a schematic diagram of a process in which multiple parties jointly perform model data processing in an embodiment
- Fig. 3 shows a schematic block diagram of a model data processing device deployed in a model owner according to an embodiment
- Fig. 4 shows a schematic block diagram of a model data processing device deployed in a data owner according to an embodiment.
- Figure 1 is a schematic diagram of an implementation scenario of an embodiment disclosed in this specification.
- two participants are schematically shown, where participant A is the model owner, and participant B is the data owner.
- the data owner B has sample feature data to be processed, where the sample can be a picture, user, audio, text, etc. to be analyzed, respectively corresponding to it.
- the sample feature can include: picture pixel feature, user attribute feature (for example, , Age, gender, registration duration, occupation, etc.), audio frequency spectrum characteristics, text encoding characteristics, etc.
- the model owner A has a model for business processing based on the above-mentioned sample characteristic data.
- the business processing can include: image recognition-based business processing, such as face recognition, target detection, etc.; when the sample is a user, the business processing can include: business processing based on user classification, such as user population Division, user service customization, etc.; when the sample is audio, business processing can include: audio recognition-based business processing, such as voice recognition, voiceprint analysis, speech-to-text, etc.; when the sample is text, business processing can include: Business processing of text analysis, such as semantic analysis, intent recognition, etc.
- the above-mentioned model may be a classification model or a regression model, and the model involves a linear combination operation of model parameters and sample characteristics.
- the model may be a linear regression model, and its core algorithm is the above-mentioned linear combination operation.
- the model may also be a logistic regression model, which further imposes a nonlinear function operation on the basis of the above linear combination operation.
- the model can also be another model that requires the use of the above linear combination operation.
- data owner B cannot directly send its sample data to model owner A to avoid leaking sample characteristics Value; model owner A cannot directly send its model parameters to data owner B, so as not to reveal the value of model parameters. Then, the data owner B and the model owner A can use the following scheme to jointly perform data processing.
- the model owner A selects a homomorphic encryption algorithm and generates the public key pk and the private key sk under the encryption algorithm.
- the public key pk contains a natural number N related to the order of the encrypted space. Therefore, the model owner A uses the homomorphic encryption algorithm to encrypt its k model parameters (m 1 , m 2 ,..., m k ) respectively to obtain the parameter ciphertext (c 1 , c 2 , .. ., c k ), where:
- Enc represents the homomorphic encryption algorithm
- r i represents the random number used when encrypting mi.
- the model owner A can send the parameter cipher text (c 1 , c 2 ,..., c k ) to the data owner B. Therefore, the data owner B can use the k sample features (y 1 , y 2 ,..., y k ) it owns to perform homomorphic addition operations on the k parameter ciphertexts.
- a homomorphic encryption algorithm is an encryption function that performs operations on the plaintext and then encrypts it, and performs corresponding operations on the ciphertext after encryption, and the result is equivalent.
- E PK public key
- E PK (v 1 +v 2 ) E PK (v 1 ) ⁇ E PK (v 2 )
- E PK (v 1 ) ⁇ E PK (v 2 ) is the corresponding homomorphic addition operation.
- the data owner B can use the k sample features (y 1 , y 2 ,..., y k ) it owns to cipher text for k parameters (c 1 , c 2 , .. ., c k ) Perform the following homomorphic summation operations to obtain the characteristic operation ciphertext X′:
- the model owner A can use its private key sk to decrypt the above-mentioned feature operation ciphertext X'. According to the nature of homomorphic operation (2), the model owner can then restore the characteristic operation result X:
- model owner A will not disclose its model parameters, and data owner B will not disclose its sample characteristics.
- the malicious or impersonating model owner may not perform homomorphic encryption according to the agreed protocol, but carefully construct malicious strings (c 1 , c 2 ,..., c k ) and send them to Data owner B. If the data owner B still uses the homomorphic operation shown in formula (3) to return the result X′ to the model owner, then the malicious model owner may take advantage of the characteristics of the carefully constructed string mentioned above, according to the result X 'Reverse the characteristics of the samples in the data owner.
- the model owner adopts ZKP (Zero Knowledge Proof) to protect privacy data security.
- ZKP Zaero Knowledge Proof
- the zero-knowledge proof is to prove that the ciphertext c is generated by applying a predetermined encryption algorithm to the message m using the random number r without revealing the message m and the random number r.
- Fig. 2 shows a schematic diagram of a process in which multiple parties jointly perform model data processing in an embodiment.
- the scenario example of FIG. 1 is continued, and the model owner A and the data owner B are also shown exemplarily.
- the model owner can separately obtain the feature calculation results of each data owner and perform business processing separately, or aggregate the feature calculation results of each data owner for business processing.
- the model owner A and data owner B are still taken as examples to describe the process of model data processing.
- step S201 the model owner A adopts the homomorphic encryption algorithm Z, based on the pre-generated public key pk and the respectively generated k random numbers (r 1 , r 2 ,..., r k ),
- the k model parameters (m 1 , m 2 ,..., m k ) in the business model of, are respectively encrypted to obtain k parameter ciphertexts (c 1 , c 2 ,..., c k ), each of which The meaning of the parameter ciphertext c i is shown in the aforementioned formula (1).
- the aforementioned homomorphic encryption algorithm Z adopts the Paillier encryption algorithm.
- the Paillier encryption algorithm when the message m is encrypted with the public key pk, the ciphertext c can be expressed as:
- r is the random number used for encryption
- mod is the modulo operation
- an improvement can be made on the basis of the existing Paillier algorithm, and a new encryption algorithm is proposed, which is called an improved Paillier algorithm.
- the ciphertext c when the public key pk is used to encrypt the message m, the ciphertext c can be expressed as:
- r is the random number used for encryption
- mod is the modulo operation
- each model parameter can be m i
- the improved Paillier encryption algorithm corresponding to the random number r i is applied to the equation (7) to obtain a parameter corresponding to the ciphertext c i.
- step S202 the model owner A randomly selects a message m 0 and selects a random number r 0 within a predetermined range.
- a predetermined range For the convenience of description, it will be called the first message hereinafter.
- the message and the first random number The size of the aforementioned predetermined range will be explained in the subsequent steps.
- the model owner uses the aforementioned homomorphic encryption algorithm Z, based on the public key pk and the first random number r 0 , to encrypt the first message m 0 to obtain the auxiliary ciphertext c 0 .
- the process of obtaining the auxiliary ciphertext c 0 may include, using the first message m 0 , exponentiating (N+1) to obtain First intermediate result Perform the N-th power operation on the first random number r 0 to obtain the second intermediate result r 0 N ; based on the above-mentioned first intermediate result and the second intermediate result, obtain the auxiliary ciphertext c 0 .
- the process of obtaining the auxiliary ciphertext c 0 may include, using the first message m 0 , exponentiating (N+1) Operation, get the first intermediate result Use the first random number r 0 to perform group operations based on the generator h to obtain the second intermediate result Based on the first intermediate result and the second intermediate result, the auxiliary ciphertext c 0 is obtained .
- the first message m 0 is encrypted according to the corresponding encryption function to obtain the auxiliary ciphertext c 0 .
- step S203 the model owner sends the k parameter ciphertexts (c 1 , c 2 ,..., c k ) and the auxiliary ciphertext c 0 to the data owner.
- the parameter ciphertext and the auxiliary ciphertext can be sent separately in two or more steps. For example, it is possible to send k parameter ciphertexts first, and then generate auxiliary ciphertexts for transmission. The order of sending is not limited here.
- step S204 the model owner obtains k challenge numbers (e 1 , e 2 ,..., e k ).
- k challenge numbers e 1 , e 2 ,..., e k .
- the data owner B randomly selects or generates k random numbers as the k challenge numbers after receiving the above-mentioned auxiliary ciphertext, and sends the k challenge numbers to the model owner.
- the model owner A obtains the number of k challenges by receiving the data from the data owner B.
- the generation of the challenge number is relatively simple and does not require complicated calculations.
- model owner A and the data owner B agree on a hash algorithm in advance, and use the agreed algorithm to each be based on the k parameter ciphertexts (c 1 , c 2 ,..., c k ) and the auxiliary ciphertext c 0 , calculated to obtain k challenge numbers (e 1 , e 2 ,..., e k ), namely:
- the model owner A and the data owner B need to adopt the same agreed method, based on the overall k+1 ciphertexts of the k parameter ciphertexts and the auxiliary ciphertexts, respectively determine The number of k challenges.
- the two parties respectively calculate the same number of k challenges through an agreed method, thereby reducing the number of interactions between the two parties and reducing the cost of communication.
- the process of calculating the number of challenges for both parties can be implemented in a variety of ways.
- k parameter ciphertexts and auxiliary ciphertexts can be arranged into a sequence, which is called the first sequence.
- the first sequence is, for example, (c 1 c 2 ...c k c 0 ).
- k predetermined index values are respectively added to obtain k second sequences. For example, add index P to the end of the above first sequence (c 1 c 2 ... c k c 0 ) to obtain (c 1 c 2 ... c k c 0 P); when the index P is different k index values, for example, when 1, 2, ..., k are respectively taken, k specific second sequences are obtained.
- k challenge numbers can be obtained.
- the challenge number e i can be expressed as:
- p i is the i-th index value of the aforementioned index P.
- the number of challenges can also be calculated as follows.
- the k parameter ciphertexts (c 1 , c 2 ,..., c k ) and the auxiliary ciphertext c 0 may be arranged into k sequences according to predetermined k sorting modes. For example, take c 1 , c 2 ,..., c k as the first ciphertext of the sequence, and keep the relative order between the ciphertexts for sorting, so that k sequences are formed in a loop, for example, sequence 1 is (c 1 c 2 ...c k c 0 ), the sequence 2 is (c 2 c 3 ...
- step S205 the above k challenge numbers are combined with the k model parameters and the k random numbers used in encryption to obtain a verification message m * and a verification random number. Number r * .
- the above k challenge numbers (e 1 , e 2 ,..., e k ) can be linearly combined with k model parameters (m 1 , m 2 ,..., m k ), and combined with the aforementioned first A message m 0 is superimposed, and a verification message m * is obtained based on the superimposition result.
- the verification message m * is the above superimposed result:
- the first message when selecting the first message m 0 in step S202, it is necessary to consider the approximate range of the subsequent linear combination results of k challenge numbers and k model parameters, so that the first message is also in such a range. This is because if the value range of m 0 and the following linear combination term in equation (11) are too different (for example, a few orders of magnitude), the result of the above linear combination will be exposed; and the data owner also has the above k Challenge number, then it is possible to deduct the original model parameters based on the result of the above linear combination. Therefore, the value range of the first message needs to play a role in confusing the subsequent linear combination results.
- the modulus is further taken to N, and the modulus result is used as the verification message m * , namely:
- N is the natural number N in the Paillier encryption algorithm or the public key of the improved Paillier encryption algorithm. Since the natural number N is exactly the order of the value space where the encrypted message is located, the modulo N of the superposition result will not affect the subsequent encryption result.
- the model owner also adds k challenge numbers (e 1 , e 2 ,..., e k ) to the k random numbers (r 1 , r 2 , ..) used when encrypting the above k model parameters. ., r k) selected in step S202 and the random number r 0 for the first composition, the random number is verified r *.
- the combination of random numbers in the homomorphic operation corresponding to Paillier encryption shown in formula (6) can be referred to, and the following calculations can be performed.
- k challenge numbers and k random numbers for any of the i-th challenge number e i and the i-th random number r i in turn , use the i-th challenge number e i to power the i-th random number r i , Get the result of k power operation And multiply the result of the k power operation and the first random number r 0 to obtain the verification random number r * , namely:
- the k challenge numbers (e 1 , e 2 ,..., e k ) can be linearly combined with the aforementioned k random numbers (r 1 , r 2 ,..., r k ), and combined with the first
- the random number r 0 is superimposed, and the verification random number r * is obtained based on this, namely:
- step S206 a zero-knowledge proof is sent to the data owner B, which includes the verification message m * and the verification random number r * .
- the data owner can verify the encryption legitimacy of the k parameter ciphertexts based on the zero-knowledge proof. Specifically, the data owner uses the above k challenge numbers (e 1 , e 2 ,..., e k ) to compare the k parameter ciphertexts (c 1 , c 2 ,..., c k ) and auxiliary The ciphertext c 0 performs a homomorphic addition operation to obtain the first result Q 1 .
- the i-th challenge number is used to exponentiate the i-th parameter ciphertext to obtain k power operation results; and the auxiliary ciphertext c 0 is multiplied by the result of the k power operation, and the first result Q 1 is obtained based on the product result, namely:
- the right side of the above formula (17) is equal to the second result Q 2 .
- the right side of the above formula (18) is equal to the second result Q 2 .
- the verification message is verified by using the homomorphic encryption algorithm with a verification random number.
- the second result of encryption should be equal. Therefore, the data owner B can verify whether the k parameter ciphertexts are legally encrypted using the agreed homomorphic encryption algorithm by verifying whether the first result and the second result are equal.
- step S208 the data owner B uses the k sample characteristics that it owns (y 1 , y 2 ,..., y k ) perform homomorphic addition operations on k parameter ciphertexts (c 1 , c 2 ,..., c k ) to obtain feature operation ciphertext X′.
- the i-th sample feature is used to exponentiate the i-th parameter ciphertext to obtain k power operation results; the k power operation results are Multiply, the result of the product is used as the feature operation ciphertext X', and the specific calculation is shown in the aforementioned formula (3).
- step S209 the data owner B sends the feature operation ciphertext X′ to the model owner A.
- step S210 the model owner A uses the private key sk corresponding to the aforementioned public key pk to decrypt the feature operation ciphertext X'to obtain the feature operation result.
- the model owner can perform model operations required for business processing based on the restored feature operation result X, such as image recognition, user classification, voice recognition, text processing, and so on.
- the feature operation results obtained above can be used in the model training stage or in the model use stage.
- the above k model parameters can be temporary parameters to be tuned.
- the model owner performs further processing and prediction based on the above feature operation results, and then compares the prediction results with the sample labels to compare the current
- the k model parameters are adjusted, that is, the model is updated and optimized.
- the above k model parameters are model parameters that have been trained and tuned, and the model owner can perform further processing based on the above feature calculation results, and output the prediction results for the current sample for business processing.
- the model owner and the data owner can interact with the data through homomorphic encryption and homomorphic operations to obtain the characteristic calculation results.
- the model owner also provides a zero-knowledge proof to the data owner to prove that the sent ciphertext is generated by legally encrypting the model parameters.
- the above zero-knowledge proof can verify the legitimacy of multiple parameter ciphertexts at one time without revealing any relevant plaintext information, thereby further ensuring that the model data process The security of the private data of all parties.
- a device for jointly performing model data processing is provided.
- the device is deployed in a model owner, and the model owner can implement it through any device, platform, or device cluster with computing and processing capabilities.
- Fig. 3 shows a schematic block diagram of a model data processing device deployed in a model owner according to an embodiment.
- the processing device 300 includes a parameter encryption unit 31, an auxiliary encryption unit 32, a first sending unit 33, a challenge number acquisition unit 34, a combination unit 35, a second sending unit 36, and a receiving unit 37.
- the parameter encryption unit 31 is configured to use a homomorphic encryption algorithm to separately encrypt the k model parameters in the first model possessed based on the pre-generated public key and the k random numbers generated separately to obtain k parameter secrets. Text.
- the auxiliary encryption unit 32 is configured to randomly select a first message and a first random number; and adopt the homomorphic encryption algorithm to encrypt the first message based on the public key and the first random number to obtain Auxiliary ciphertext.
- the first sending unit 33 is configured to send the k parameter ciphertexts and the auxiliary ciphertext to the data owner.
- the challenge number acquiring unit 34 is configured to acquire k challenge numbers.
- the combination unit 35 is configured to linearly combine the k challenge numbers and the k model parameters, and superimpose them with the first message, and obtain a verification message based on the superposition result; and combine the k challenge numbers with the The k random numbers are combined with the first random number to obtain a verification random number.
- the second sending unit 36 is configured to send a zero-knowledge proof to the data owner, which includes the verification message and a verification random number, so that the data owner verifies that the k challenge numbers are used to compare the k
- the first result of the homomorphic addition operation of the parameter ciphertext and the auxiliary ciphertext is the same as the second result of using the homomorphic encryption algorithm to encrypt the verification message based on the public key and the verification random number Whether the results are equal.
- the receiving unit 37 is configured to receive a feature operation ciphertext sent by the data owner, where the feature operation ciphertext is that the data owner uses the k sample characteristics owned by the data owner to perform the verification if the data owner passes the verification.
- the result of the homomorphic addition operation of the k parameter ciphertexts is used for the model owner to restore the feature operation result, so as to perform business processing based on the feature operation result.
- the first model maintained in the model owner is a linear regression model or a logistic regression model.
- the public key includes a natural number N and a generator h of a cyclic subgroup in a random number space defined by the natural number N; and the auxiliary encryption unit 32 is specifically configured to: use the first Message, perform a power operation on (N+1) to obtain a first intermediate result; use the first random number to perform a group operation based on the generator h to obtain a second intermediate result; based on the first intermediate result and The second intermediate result is the auxiliary ciphertext.
- the combination unit 35 is specifically configured to: linearly combine the k challenge numbers with the k random numbers, and superimpose them with the first random numbers to obtain the Verify the random number.
- the public key includes at least a natural number N; correspondingly, the auxiliary encryption unit 32 is specifically configured to: use the first message to perform an exponentiation operation on (N+1) to obtain a first intermediate result; Performing an N-th power operation on the first random number to obtain a second intermediate result; and obtain the auxiliary ciphertext based on the first intermediate result and the second intermediate result.
- the combination unit 35 is specifically configured to: sequentially for the i-th challenge number and the i-th random number, use the i-th challenge number to power the i-th random number to obtain k power operations Result; multiplying the result of the k power operation and the first random number to obtain the verification random number.
- the challenge number obtaining unit 34 is configured to receive the k challenge numbers randomly selected by the data owner.
- the challenge number obtaining unit 34 is configured to calculate the k challenges based on the k parameter ciphertexts and the auxiliary ciphertext, using a hash algorithm agreed with the data owner number.
- the challenge number acquiring unit 34 calculates the k challenge numbers as follows: arrange the k parameter ciphertexts and the auxiliary ciphertext into a first sequence; in the first sequence K predetermined index values are added to the predetermined positions of, respectively, to obtain k second sequences; and a predetermined hash function is applied to the k second sequences to obtain the k challenge numbers.
- the challenge number acquiring unit 34 calculates the k challenge numbers as follows: arrange the k parameter ciphertexts and the auxiliary ciphertext into k sequences according to predetermined k sorting modes; A predetermined hash function is respectively applied to the k sequences to obtain the k challenge numbers.
- the combining unit 35 is configured to: modulate the first superimposition result with N, and use the modulo result as the verification message, where N is a natural number in the public key.
- the device further includes a decryption unit (not shown), configured to: adopt a decryption algorithm corresponding to the homomorphic encryption algorithm, and use a private key corresponding to the public key to verify the feature Calculate the ciphertext for decryption to obtain the feature operation result, which corresponds to the linear combination of the k sample features and the k model parameters.
- a decryption unit (not shown), configured to: adopt a decryption algorithm corresponding to the homomorphic encryption algorithm, and use a private key corresponding to the public key to verify the feature Calculate the ciphertext for decryption to obtain the feature operation result, which corresponds to the linear combination of the k sample features and the k model parameters.
- a device for jointly performing model data processing is provided, the device is deployed in a data owner, and the data owner can be implemented by any device, platform or device cluster with computing and processing capabilities .
- Fig. 4 shows a schematic block diagram of a model data processing device deployed in a data owner according to an embodiment.
- the processing device 400 includes a first receiving unit 41, a challenge number determining unit 42, a second receiving unit 43, a verification unit 44, a homomorphic operation unit 45, and a sending unit 46.
- the first receiving unit 41 is configured to receive k parameter ciphertexts and auxiliary ciphertexts whose encryption legality is to be verified from the model owner; in the case of legal encryption, the k parameter ciphertexts are adopted by the model owner
- the homomorphic encryption algorithm is obtained by separately encrypting k model parameters based on a pre-generated public key and k random numbers generated separately.
- the auxiliary ciphertext is obtained by using the homomorphic encryption algorithm based on the public key and
- the first random number is obtained by encrypting a random first message.
- the challenge number determining unit 42 is configured to determine k challenge numbers.
- the second receiving unit 43 is configured to receive a zero-knowledge proof from the model owner, including a verification message and a verification random number; wherein the verification message is based on the k challenge numbers and the k model parameters Linear combination, and superposition with the first message, the verification random number is obtained based on the combination of the k challenge numbers, the k random numbers, and the first random number.
- the verification unit 44 is configured to use the k challenge numbers to perform a homomorphic addition operation on the k parameter ciphertexts and the auxiliary ciphertext to obtain a first result; and adopt the homomorphic encryption algorithm based on all The public key and the verification random number encrypt the verification message to obtain a second result.
- the homomorphic operation unit 45 is configured to perform a homomorphic summation operation on the k parameter ciphertexts using the k sample features that the verification unit 44 verifies that the first result is equal to the second result to obtain the feature Calculate ciphertext.
- the sending unit 46 is configured to send the feature operation ciphertext to the model owner for the model owner to restore the feature operation result, so as to perform service processing based on the feature operation result.
- the public key includes a natural number N and a generator h of a cyclic subgroup in the space defined by the natural number N; correspondingly, the verification unit 44 is configured to: use a verification message, to ( N+1) Perform a power operation to obtain the first intermediate term; use a verification random number to perform a group operation based on the generator h to obtain the second intermediate term; based on the first intermediate term and the second intermediate term, obtain the The second result.
- the verification unit 44 is configured to: sequentially for the i-th challenge number and the i-th parameter ciphertext, use the i-th challenge number to exponentiate the i-th parameter ciphertext to obtain the k-th power operation result; The auxiliary ciphertext is multiplied by the k power operation results, and the product result is used as the first result.
- the homomorphic operation unit 45 is configured to: sequentially for the i-th sample feature and the i-th parameter ciphertext, use the i-th sample feature to exponentiate the i-th parameter ciphertext to obtain k power operation results; The k power operation results are multiplied together, and the product result is used as the feature operation ciphertext.
- the challenge number determining unit 42 is configured to randomly determine the k challenge numbers and send them to the model owner.
- the challenge number determining unit 42 is configured to calculate the k challenges based on the k parameter ciphertexts and the auxiliary ciphertext, using a hash algorithm agreed with the model owner number.
- the challenge number determining unit 42 calculates the k challenge numbers as follows: arrange the k parameter ciphertexts and the auxiliary ciphertext into a first sequence; in the first sequence K predetermined index values are added to the predetermined positions of, respectively, to obtain k second sequences; and a predetermined hash function is applied to the k second sequences to obtain the k challenge numbers.
- the challenge number determining unit 42 calculates the k challenge numbers as follows: arrange the k parameter ciphertexts and the auxiliary ciphertext into k sequences according to predetermined k sorting modes; A predetermined hash function is respectively applied to the k sequences to obtain the k challenge numbers.
- the k sample characteristics may include one of the following: user attribute characteristics, picture pixel characteristics, audio characteristics, and text encoding characteristics.
- a computer-readable storage medium having a computer program stored thereon, and when the computer program is executed in a computer, the computer is caused to execute the method described in conjunction with FIG. 2.
- a computing device including a memory and a processor, the memory is stored with executable code, and when the processor executes the executable code, it implements the method described in conjunction with FIG. 2 method.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种保护数据隐私的多方联合进行模型数据处理的方法和装置,根据该方法,模型拥有方在对k个模型参数进行同态加密得到k个参数密文后,还选取第一随机数对随机的第一消息进行加密,得到辅助密文。此外,模型拥有方和数据拥有方共同确定出k个挑战数。之后,模型拥有方将k个挑战数分别与模型参数和第一消息,以及加密随机数和第一随机数进行组合,生成验证随机数和验证消息作为零知识证明。数据拥有方可以验证,基于k个挑战数对参数密文和辅助密文同态操作的结果,与用验证随机数加密验证消息的结果是否相等。在相等的情况下,用其样本特征进行同态运算,返回给模型拥有方,从而确保了模型数据过程中各方隐私数据的安全性。
Description
本说明书一个或多个实施例涉及机器学习领域和数据安全领域,尤其涉及多方联合进行模型数据处理的方法和装置。
随着计算机技术的发展,机器学习已经应用到各种各样的技术领域,用于分析、处理各种业务数据。机器学习所需要的数据往往会涉及到多个领域,例如在基于机器学习的商户分类分析场景中,电子支付平台拥有商户的交易流水数据,电子商务平台存储有商户的销售数据,银行机构拥有商户的借贷数据。数据往往以孤岛的形式存在。由于行业竞争、数据安全、用户隐私等问题,数据整合面临着很大阻力,将分散在各个平台的数据整合在一起训练机器学习模型难以实现。因此,提出多方联合训练和使用机器学习模型进行业务处理的方式。
在多方联合训练和使用机器学习模型的场景下,数据隐私的保护和安全性成为值得关注的问题。例如,在一个多方计算的场景下,A方持有待处理的用户样本特征数据,B方持有数据处理模型。在通过该数据处理模型对样本特征数据实施处理时,如果A方将样本数据直接发送至B方,会导致用户样本的特征取值被暴露,泄露用户隐私;如果B方将数据处理模型提供至A方进行使用,会导致数据处理模型的模型参数被暴露。
因此,希望提供改进的方案,在多方联合进行模型数据处理的过程中,保护各方隐私数据的安全。
发明内容
本说明书一个或多个实施例描述了多方联合进行模型数据处理的方法和装置,其中模型拥有方在对多个模型参数进行同态加密后,还生成密文合法性的零知识证明,以供数据拥有方验证,从而进一步保护各方隐私数据的安全不泄露。
根据第一方面,提供了一种保护数据隐私的多方联合进行模型数据处理的方法,所述多方包括模型拥有方和数据拥有方,所述方法通过所述模型拥有方执行,包括:采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对所拥有的第一模型 中的k个模型参数分别进行加密,得到k个参数密文;随机选择第一消息和第一随机数;并采用所述同态加密算法,基于所述公钥和所述第一随机数,对所述第一消息进行加密,得到辅助密文;向所述数据拥有方发送所述k个参数密文和所述辅助密文;获取k个挑战数;将所述k个挑战数与所述k个模型参数线性组合,并与所述第一消息进行叠加,基于叠加结果得到验证消息;将所述k个挑战数与所述k个随机数和所述第一随机数进行组合,得到验证随机数;向所述数据拥有方发送零知识证明,其中包括所述验证消息和验证随机数,使得所述数据拥有方验证,使用所述k个挑战数对所述k个参数密文和所述辅助密文进行同态加和运算的第一结果,与采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密的第二结果是否相等;接收所述数据拥有方发送的特征运算密文,所述特征运算密文是所述数据拥有方在所述验证通过的情况下,使用其拥有的k个样本特征对所述k个参数密文进行同态加和运算的结果,用于所述模型拥有方还原出特征运算结果,从而基于特征运算结果进行业务处理。
在一个实施例中,所述第一模型为线性回归模型,或逻辑回归模型。
根据一种实施方式,所述公钥包括,自然数N和由该自然数N限定的随机数空间中的一个循环子群的生成元h;在这样的情况下,对所述第一消息进行加密得到辅助密文的步骤可以包括:使用所述第一消息,对(N+1)进行幂操作,得到第一中间结果;使用所述第一随机数,基于所述生成元h进行群操作,得到第二中间结果;基于所述第一中间结果和第二中间结果,得到所述辅助密文。
相应的,在上述实施方式的一个示例中,验证随机数可以通过如下方式得到:将所述k个挑战数与所述k个随机数线性组合,并与所述第一随机数进行叠加,得到所述验证随机数。
根据另一种实施方式,所述公钥至少包括自然数N;在这样的情况下,对所述第一消息进行加密得到辅助密文的步骤可以包括:使用所述第一消息,对(N+1)进行幂操作,得到第一中间结果;对所述第一随机数进行N次幂操作,得到第二中间结果;基于所述第一中间结果和第二中间结果,得到所述辅助密文。
相应的,在上述实施方式的一个示例中,验证随机数可以通过如下方式得到:依次对于第i挑战数和第i随机数,使用第i挑战数对第i随机数进行幂操作,得到k个幂操作结果;将所述k个幂操作结果与所述第一随机数连乘,得到所述验证随机数。
在一个实施例中,所述k个挑战数通过以下方式获取:从所述数据拥有方接收其 随机选择的所述k个挑战数。
在另一实施例中,所述k个挑战数通过以下方式获取:基于所述k个参数密文和所述辅助密文,使用与所述数据拥有方约定的哈希算法,计算得到所述k个挑战数。
更具体的,在一个示例中,计算得到所述k个挑战数可以包括:将所述k个参数密文和所述辅助密文排成第一序列;在所述第一序列的预定位置,分别添加k个预定索引值,得到k个第二序列;分别对所述k个第二序列施加预定哈希函数,得到所述k个挑战数。
在另一个示例中,计算得到所述k个挑战数可以包括:将所述k个参数密文和所述辅助密文,按照预定的k种排序方式,排成k个序列;分别对所述k个序列施加预定哈希函数,得到所述k个挑战数。
根据一种实施方式,基于第一叠加结果得到验证消息的步骤可以包括:将所述第一叠加结果对N取模,将取模结果作为所述验证消息,其中N为公钥中的自然数。
在一个实施例中,所述方法还包括:采用与所述同态加密算法对应的解密算法,使用与所述公钥对应的私钥,对所述特征运算密文进行解密,得到所述特征运算结果,所述特征运算结果对应于,所述k个样本特征和所述k个模型参数的线性组合。
根据第二方面,提供了一种保护数据隐私的多方联合进行模型数据处理的方法,所述多方包括模型拥有方和数据拥有方,所述方法通过所述数据拥有方执行,包括:从所述模型拥有方接收加密合法性有待验证的k个参数密文以及辅助密文;在合法加密的情况下,所述k个参数密文是所述模型拥有方采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对k个模型参数分别加密得到的,所述辅助密文是采用所述同态加密算法,基于所述公钥和第一随机数,对随机的第一消息进行加密得到的;确定k个挑战数;从所述模型拥有方接收零知识证明,其中包括验证消息和验证随机数;其中,所述验证消息是基于所述k个挑战数与所述k个模型参数的线性组合,以及与所述第一消息的叠加得到的,所述验证随机数是基于所述k个挑战数与所述k个随机数和所述第一随机数组合得到的;使用所述k个挑战数对所述k个参数密文和所述辅助密文进行同态加和运算,得到第一结果;并采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密,得到第二结果;在验证第一结果等于第二结果的情况下,使用拥有的k个样本特征对所述k个参数密文进行同态加和运算,得到特征运算密文;向所述模型拥有方发送所述特征运算密文,用于所述模型拥有方还原出特征运算结 果,从而基于特征运算结果进行业务处理。
在一个实施例中,所述公钥包括,自然数N和由该自然数N限定的随机数空间中的一个循环子群的生成元h;相应的,所述第二结果可以通过以下步骤得到:使用验证消息,对(N+1)进行幂操作,得到第一中间项;使用验证随机数,基于所述生成元h进行群操作,得到第二中间项;基于所述第一中间项和第二中间项,得到所述第二结果。
在一个实施例中,所述第一结果通过以下方式得到:依次对于第i挑战数和第i参数密文,使用第i挑战数对第i参数密文进行幂操作,得到k个幂操作结果;将所述辅助密文与所述k个幂操作结果连乘,乘积结果作为所述第一结果。
根据一个实施例,所述特征运算密文通过以下方式得到:依次对于第i样本特征和第i参数密文,使用第i样本特征对第i参数密文进行幂操作,得到k个幂操作结果;将所述k个幂操作结果连乘,乘积结果作为所述特征运算密文。
根据一种实施方式,所述确定k个挑战数的步骤可以包括:随机确定所述k个挑战数,并将其发送给所述模型拥有方。
根据另一种实施方式,所述确定k个挑战数的步骤可以包括:基于所述k个参数密文和所述辅助密文,使用与所述模型拥有方约定的哈希算法,计算得到所述k个挑战数。
更具体的,在一个示例中,计算得到所述k个挑战数具体包括:将所述k个参数密文和所述辅助密文排成第一序列;在所述第一序列的预定位置,分别添加k个预定索引值,得到k个第二序列;分别对所述k个第二序列施加预定哈希函数,得到所述k个挑战数。
在另一示例中,计算得到所述k个挑战数具体包括:将所述k个参数密文和所述辅助密文,按照预定的k种排序方式,排成k个序列;分别对所述k个序列施加预定哈希函数,得到所述k个挑战数。
根据具体实施方式,所述k个样本特征可以包括以下之一:用户属性特征,图片像素特征,音频特征,文本编码特征。
根据第三方面,提供了一种保护数据隐私的多方联合进行模型数据处理的装置,所述多方包括模型拥有方和数据拥有方,所述装置部署在所述模型拥有方中,包括:参数加密单元,配置为采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对所拥有的第一模型中的k个模型参数分别进行加密,得到k个参数密文;辅助加密单 元,配置为随机选择第一消息和第一随机数;并采用所述同态加密算法,基于所述公钥和所述第一随机数,对所述第一消息进行加密,得到辅助密文;第一发送单元,配置为向所述数据拥有方发送所述k个参数密文和所述辅助密文;挑战数获取单元,配置为获取k个挑战数;组合单元,配置为将所述k个挑战数与所述k个模型参数线性组合,并与所述第一消息进行叠加,基于叠加结果得到验证消息;将所述k个挑战数与所述k个随机数和所述第一随机数进行组合,得到验证随机数;第二发送单元,配置为向所述数据拥有方发送零知识证明,其中包括所述验证消息和验证随机数,使得所述数据拥有方验证,使用所述k个挑战数对所述k个参数密文和所述辅助密文进行同态加和运算的第一结果,与采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密的第二结果是否相等;接收单元,配置为接收所述数据拥有方发送的特征运算密文,所述特征运算密文是所述数据拥有方在所述验证通过的情况下,使用其拥有的k个样本特征对所述k个参数密文进行同态加和运算的结果,用于所述模型拥有方还原出特征运算结果,从而基于特征运算结果进行业务处理。
根据第四方面,提供了一种保护数据隐私的多方联合进行模型数据处理的装置,所述多方包括模型拥有方和数据拥有方,所述装置部署在所述数据拥有方中,包括:第一接收单元,配置为从所述模型拥有方接收加密合法性有待验证的k个参数密文以及辅助密文;在合法加密的情况下,所述k个参数密文是所述模型拥有方采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对k个模型参数分别加密得到的,所述辅助密文是采用所述同态加密算法,基于所述公钥和第一随机数,对随机的第一消息进行加密得到的;挑战数确定单元,配置为确定k个挑战数;第二接收单元,配置为从所述模型拥有方接收零知识证明,其中包括验证消息和验证随机数;其中,所述验证消息是基于所述k个挑战数与所述k个模型参数的线性组合,以及与所述第一消息的叠加得到的,所述验证随机数是基于所述k个挑战数与所述k个随机数和所述第一随机数组合得到的;验证单元,配置为使用所述k个挑战数对所述k个参数密文和所述辅助密文进行同态加和运算,得到第一结果;并采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密,得到第二结果;同态运算单元,配置为在验证单元验证所述第一结果等于第二结果的情况下,使用拥有的k个样本特征对所述k个参数密文进行同态加和运算,得到特征运算密文;发送单元,配置为向所述模型拥有方发送所述特征运算密文,用于所述模型拥有方还原出特征运算结果,从而基于特征运算结果进行业务处理。
根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所 述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。
根据第六方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面的方法。
根据本说明书实施例提供的方法和装置,在多方联合进行模型数据处理过程中,模型拥有方和数据拥有方可以通过同态加密和同态操作的方式交互数据,从而得到特征运算结果。进一步的,在本说明书实施例提供的方案中,模型拥有方还向数据拥有方提供零知识证明,以证明所发送的密文是对模型参数合法加密生成的。根据实施例中验证随机数和验证消息的设置方式,上述零知识证明可以一次性对多个参数密文的合法性进行验证,而不会泄露任何有关明文信息,从而进一步确保了模型数据过程中各方隐私数据的安全性。
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出在一个实施例中多方联合进行模型数据处理的过程示意图;
图3示出根据一个实施例的部署在模型拥有方中的模型数据处理装置的示意性框图;
图4示出根据一个实施例的部署在数据拥有方中的模型数据处理装置的示意性框图。
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。在该实施场景中,示意性示出了2个参与方,其中参与方A为模型拥有方,参与方B为数据拥有方。
数据拥有方B拥有有待处理的样本特征数据,其中,样本可以是有待分析的图片、用户、音频、文本等等,与之分别对应的,样本特征可以包括:图片像素特征、用户属性特征(例如,年龄、性别、注册时长、职业等等)、音频频谱特征、文本编码特征等等。
模型拥有方A拥有根据上述样本特征数据进行业务处理的模型。例如,当样本是图片时,业务处理可以包括:基于图像识别的业务处理,例如人脸识别、目标检测等;当样本是用户时,业务处理可以包括:基于用户分类的业务处理,例如用户人群划分、用户服务定制等;当样本为音频时,业务处理可以包括:基于音频识别的业务处理,例如语音识别、声纹分析、语音转文本等;当样本是文本时,业务处理可以包括:基于文本分析的业务处理,例如语义分析、意图识别等。
根据业务处理的需要,上述模型可以是分类模型或回归模型,并且,该模型中涉及模型参数与样本特征的线性组合运算。典型的,该模型可以是线性回归模型,其核心算法即为上述线性组合运算。或者,该模型也可以是逻辑回归模型,其在上述线性组合运算的基础上,进一步施加非线性函数运算。或者,该模型也可以是其他需要利用上述线性组合运算的模型。
在以上的数据拥有方B和模型拥有方A联合进行模型数据处理的情况下,出于隐私数据保护的目的,数据拥有方B不能直接将其样本数据发送给模型拥有方A,以免泄露样本特征取值;模型拥有方A也不能直接将其模型参数发送给数据拥有方B,以免泄露模型参数取值。那么,数据拥有方B和模型拥有方A可以采用下面的方案联合进行数据处理。
首先,模型拥有方A选用同态加密算法,并生成该加密算法下的公钥pk和私钥sk。一般的,公钥pk中包含与加密空间的阶数有关的自然数N。于是,模型拥有方A使用该同态加密算法,对其k个模型参数(m
1,m
2,...,m
k)分别进行加密,得到参数密文(c
1,c
2,...,c
k),其中:
c
i=Enc(pk,m
i;r
i) (1)
其中,Enc表示同态加密算法,r
i表示对m
i加密时使用的随机数。
然后,模型拥有方A可以将参数密文(c
1,c
2,...,c
k)发送给数据拥有方B。于是,数据拥有方B可以使用其拥有的k个样本特征(y
1,y
2,...,y
k),对k个参数密文进行同态加和运算。
需要理解,同态加密算法是这样一种加密函数,对明文进行运算后再加密,与加密后对密文进行相应的运算,结果是等价的。例如,用同样的公钥PK加密v
1和v
2得到E
PK(v
1)和E
PK(v
2),如果满足E
PK(v
1+v
2)=E
PK(v
1)·E
PK(v
2),那么则认为,该加密算法满足加法同态,相应的,E
PK(v
1)·E
PK(v
2)为对应的同态加和操作。
容易验证,加法同态的加密算法还满足:
根据上式(2),数据拥有方B可以使用其拥有的k个样本特征(y
1,y
2,...,y
k),对k个参数密文(c
1,c
2,...,c
k)进行如下的同态加和运算,得到特征运算密文X′:
然后,数据拥有方B将上述特征运算密文X′返回给模型拥有方A。于是,模型拥有方A可以使用其私钥sk,对上述特征运算密文X′进行解密。根据同态运算的性质(2),模型拥有方于是可以还原得到特征运算结果X:
X=m
1*y
1+m
2*y
2+...+m
k*y
kmod(N) (4)
在以上过程中,利用同态加密的性质,模型拥有方A不会泄露其模型参数,数据拥有方B也不会泄露其样本特征。
然而,上述过程是理想化的过程。在一种可能的情况下,恶意或冒充的模型拥有方可能不按照约定的协议进行同态加密,而是精心地构造恶意字符串(c
1,c
2,...,c
k)发送给数据拥有方B。如果数据拥有方B仍然采用公式(3)所示的同态操作,将结果X′返还给模型拥有方,那么恶意的模型拥有方有可能借助于上述精心构造的字符串的特点,根据结果X′反推出数据拥有方中的样本特征。
考虑到以上风险,根据本说明书一个实施例,模型拥有方在提供参数密文后,还向数据拥有方提供密文合法性证明P,以证明发送的参数密文确实是采用预定的同态加密算法生成的,而不是恶意构造的字符串。例如,当模型拥有方向数据拥有方发送密文c后,上述证明P即用于证明,存在消息m和随机数r,满足c=Enc(pk,m;r)。数据拥有方可以基于密文合法性证明P,对收到的密文的合法性进行验证,在验证通过的情况下,再进行后续的同态操作,从而避免数据泄露的风险。
对于上述密文合法性证明,在一个实施例中,模型拥有方采用零知识证明ZKP(Zero Knowledge Proof)来保护隐私数据安全。所述零知识证明即,在不泄露消息m和随机数r的情况下,证明密文c是通过使用随机数r对消息m施加预定加密算法生成的。
下面描述引入零知识证明的多方联合进行模型数据处理的过程。
图2示出在一个实施例中多方联合进行模型数据处理的过程示意图。在图2中,延续图1的场景示例,同样示例性示出了模型拥有方A和数据拥有放B。然而需要理解,该示例可以扩展到更多参与方的情况,例如,存在多个数据拥有方,均与模型拥有方进行交互。模型拥有方可以分别得到各个数据拥有方的特征运算结果,分别进行业务处理,或者将各个数据拥有方的特征运算结果进行汇总后进行业务处理。为了描述的简单和清楚,下面仍以模型拥有方A和数据拥有方B为例,描述模型数据处理的过程。
首先,在步骤S201,模型拥有方A采用同态加密算法Z,基于预先生成的公钥pk和分别生成的k个随机数(r
1,r
2,...,r
k),对所拥有的业务模型中的k个模型参数(m
1,m
2,...,m
k)分别进行加密,得到k个参数密文(c
1,c
2,...,c
k),其中各个参数密文c
i的含义如前述公式(1)所示。
具体地,在一个实施例中,上述同态加密算法Z采用Paillier加密算法。Paillier加密算法是一种已知的加密算法,其公钥可以表示(N,g),其中N为自然数,且可以表示为两个较大素数p,q的乘积:N=p*q;g为小于N
2且满足一定数学条件的自然数。实践中,可以取g=N+1。根据Paillier加密算法,当采用公钥pk对消息m进行加密时,密文c可以表示为:
c=g
m*r
N=(N+1)
m*r
N(mod N
2) (5)
其中,r为加密使用的随机数,mod为取模操作。
如此,可以对各个模型参数m
i,利用对应的随机数r
i施加公式(5)的加密运算,得到对应的参数密文c
i。
可以验证,Paillier加密算法满足同态性。具体的,对于密文c
1和c
2,其中c
1=Enc(pk,m
1;r
1),c
2=Enc(pk,m
2;r
2),Paillier加密算法满足:
在另一实施例中,可以在已有的Pailiier算法基础上进行改进,提出一种新的加密算法,称为改进的Paillier算法。该改进的Paillier算法公钥可以包括(N,h),其中N为自然数,h为由该自然数N限定的空间
中的一个循环子群G的生成元。更具体的,N可以表示为两个较大素数p,q的乘积:N=p*q。根据该改进的Paillier加密算法,当采用公钥pk对消息m进行加密时,密文c可以表示为:
c=(N+1)
m*(h
N)
r(mod N
2) (7)
其中,r为加密使用的随机数,mod为取模操作。
如此,可以对各个模型参数m
i,利用对应的随机数r
i施加公式(7)的改进的Paillier加密运算,得到对应的参数密文c
i。
可以验证,改进的Paillier加密算法同样满足同态性。具体的,对于密文c
1和c
2,其中c
1=Enc(pk,m
1;r
1),c
2=Enc(pk,m
2;r
2),改进的Paillier加密算法满足:
对比公式(8)和(6)可以看到,Paillier算法和改进的Paillier算法,均满足公式(2)所要求的加法同态性,只是在进行加和同态运算后,得到的随机数不同。
在其他实施例中,还可以采用其他同态加密算法,对k个模型参数进行加密,得到k个参数密文(c
1,c
2,...,c
k)。
为了证明所生成的参数密文的合法性,在步骤S202,模型拥有方A随机选择一个消息m
0,并在预定范围内选择一个随机数r
0,下文为了描述方便,将其称为第一消息和第一随机数。上述预定范围的大小在后续步骤中进行说明。然后,模型拥有方采用上述同态加密算法Z,基于公钥pk和第一随机数r
0,对第一消息m
0进行加密,得到辅助密文c
0。
当所述同态加密算法Z为Paillier加密算法时,根据前述公式(5),得到辅助密文c
0的过程可以包括,使用第一消息m
0,对(N+1)进行幂操作,得到第一中间结果
对第一随机数r
0进行N次幂操作,得到第二中间结果r
0
N;基于上述第一中间结果和第二中间结果,得到辅助密文c
0。
当所述同态加密算法Z为前述改进的Paillier加密算法时,根据前述公式(7),得到辅助密文c
0的过程可以包括,使用第一消息m
0,对(N+1)进行幂操作,得到第一中间结果
使用第一随机数r
0,基于生成元h进行群操作,得到第二中间结果
基于该第一中间结果和第二中间结果,得到辅助密文c
0。
当采用其他同态加密算法时,则根据相应的加密函数对第一消息m
0进行加密,得到辅助密文c
0。
在步骤S203,模型拥有方向数据拥有方发送上述k个参数密文(c
1,c
2,...,c
k)和所述辅助密文c
0。
需要说明的是,尽管在图2中示出为一个步骤,但是在其他实施例中,参数密文 和辅助密文可以通过两个或更多步骤分别发送。例如,可以先发送k个参数密文,然后生成辅助密文进行发送。对于发送的顺序,在此不做限定。
然后,在步骤S204,模型拥有方获取k个挑战数(e
1,e
2,...,e
k)。对于挑战数的获取,有多种实施方式。
在一个实施例中,数据拥有方B在接收到上述辅助密文后,随机选择或生成k个随机数作为k个挑战数,并该k个挑战数发送给模型拥有方。模型拥有方A通过接收数据拥有方B的发送,获取到该k个挑战数。在该实施例中,挑战数的生成比较简单,不需要经过复杂的计算。
在另一实施例中,模型拥有方A和数据拥有方B预先约定一种哈希算法,利用该约定的算法,各自基于上述k个参数密文(c
1,c
2,...,c
k)和所述辅助密文c
0,计算得到k个挑战数(e
1,e
2,...,e
k),即:
(e
1,e
2,...,e
k)=Hash(c
1,c
2,...,c
k,c
0) (9)
需要理解,根据公式(9),模型拥有方A和数据拥有方B,需要采用约定的同样的方式,基于k个参数密文和辅助密文共k+1份密文的整体,分别确定出k个挑战数。在该实施例中,双方通过约定方式各自计算得到相同的k个挑战数,从而减少双方交互次数,降低通信带来的成本。
双方计算挑战数的过程可以通过多种方式具体实现。
具体的,在一个例子中,可以将k个参数密文和辅助密文排成一个序列,称为第一序列。该第一序列例如为(c
1c
2...c
kc
0)。然后,在该第一序列的预定位置,分别添加k个预定索引值,得到k个第二序列。例如,在上述第一序列(c
1c
2...c
kc
0)的尾部添加索引P,得到(c
1c
2...c
kc
0P);当该索引P分别取不同的k个索引值,例如分别取1,2,…,k时,就得到k个具体的第二序列。然后,分别对k个第二序列施加预定哈希函数,就可以得到k个挑战数。换而言之,在该例子中,挑战数e
i可以表示为:
e
i=Hash(c
1c
2...c
kc
0p
i) (10)
其中,p
i为上述索引P的第i个索引值。
在另一例子中,还可以如下计算挑战数。可以将k个参数密文(c
1,c
2,...,c
k)和所述辅助密文c
0,按照预定的k种排序方式,排成k个序列。例如,分别以c
1,c
2,...,c
k作为序列的首个密文,保持密文之间的相对顺序进行排序,如此循环形成k个序列,例如序列1为(c
1c
2...c
kc
0),序列2为(c
2c
3...c
0c
1),序列k为(c
kc
0c
1...c
k-2c
k-1)。然后,分别 对上述k个序列施加预定哈希函数,得到k个挑战数(e
1,e
2,...,e
k)。
在以上具体例子的基础上,本领域技术人员还可以对其进行修改,采用更多方式,计算得到k个挑战数,在此不一一列举。需要理解的是,在计算k个挑战数时,需要基于k个参数密文和辅助密文共k+1份密文的整体,进行计算,共同确定k个挑战数。
在模型拥有方A获取到上述k个挑战数后,在步骤S205,将上述k个挑战数分别与k个模型参数和加密时采用的k个随机数进行组合,得到验证消息m
*和验证随机数r
*。
具体的,可以将上述k个挑战数(e
1,e
2,...,e
k)与k个模型参数(m
1,m
2,...,m
k)线性组合,并与前述第一消息m
0进行叠加,基于叠加结果得到验证消息m
*。
在一个例子中,验证消息m
*即为上述叠加结果:
m
*=m
0+e
1*m
1+e
2*m
2+...+e
k*m
k (11)
在这样的情况下,在步骤S202选择该第一消息m
0时,需要考虑后续k个挑战数和k个模型参数的线性组合结果的大致范围,使得第一消息也处于这样的范围中。这是因为,如果m
0与式(11)中后面的线性组合项取值范围差异过大(例如相差几个数量级),则会暴露上述线性组合的结果;而数据拥有方也拥有上述k个挑战数,那么有可能根据上述线性组合的结果反推出原始的模型参数。因此,第一消息的取值范围需要起到混淆后面的线性组合结果的作用。
在另一例子中,在以上公式(11)所示的叠加结果的基础上,进一步对N取模,将取模结果作为验证消息m
*,即:
m
*=m
0+e
1*m
1+e
2*m
2+...+e
k*m
kmod(N) (12)
其中,N为Paillier加密算法或改进的Paillier加密算法公钥中的自然数N。由于该自然数N正是加密消息所在的取值空间的阶数,因此将叠加结果对N取模不会影响后续加密结果。
在采用公式(12)计算验证消息的情况下,步骤S202中选择第一消息m
0时,优选在{0,1,N-1}中均匀选择,而对取值范围没有特殊要求,因为取模操作本身可以混淆原始的线性组合结果。
另一方面,模型拥有方还将k个挑战数(e
1,e
2,...,e
k)与加密上述k个模型参数时使用的k个随机数(r
1,r
2,...,r
k)和步骤S202选取的第一随机数r
0进行组合,得到验证随机数r
*。
当步骤S201和S202采用Paillier加密算法时,可以参考公式(6)所示的Paillier加密对应的同态操作中随机数的组合方式,进行如下计算。对于k个挑战数和k个随机数,可以依次对于其中任意的第i挑战数e
i和第i随机数r
i,使用该第i挑战数e
i对第i随机数r
i进行幂操作,得到k个幂操作结果
并将k个幂操作结果与第一随机数r
0连乘,得到验证随机数r
*,即:
当步骤S201和S202采用前述改进的Paillier加密算法时,可以参考公式(8)所示的改进的Paillier加密对应的同态操作中随机数的组合方式,进行如下计算。可以将k个挑战数(e
1,e
2,...,e
k)与前述的k个随机数(r
1,r
2,...,r
k)线性组合,并与所述第一随机数r
0进行叠加,据此得到验证随机数r
*,即:
r
*=r
0+e
1*r
1+e
2*r
2+...+e
k*r
k (14)
在采用公式(14)计算验证随机数时,由于难以确定随机数所在的空间阶数,因此在计算验证随机数r
*时一般不进行取模操作。这就要求,步骤S202在选取第一随机数时,在预定范围内进行选取,该预定范围与公式(14)中r
0后面的线性组合项的取值范围对应一致,从而起到混淆后面的线性组合结果的作用。例如,当加密时的k个随机数中的每一个为320bit,每个挑战数为112bit时,第一随机数的范围可以是(432*logk+112)bit。
在模型拥有方A计算得到上述验证消息m
*和验证随机数r
*后,在步骤S206,向数据拥有方B发送零知识证明,其中包括上述验证消息m
*和验证随机数r
*。
在接收到上述零知识证明后,在步骤S207,数据拥有方就可以基于该零知识证明,对k个参数密文的加密合法性进行验证。具体地,数据拥有方使用上述k个挑战数(e
1,e
2,...,e
k)对所述k个参数密文(c
1,c
2,...,c
k)和辅助密文c
0进行同态加和运算,得到第一结果Q
1。具体的,依次对于第i挑战数e
i和第i参数密文c
i,使用第i挑战数对第i参数密文进行幂操作,得到k个幂操作结果;并将所述辅助密文c
0与所述k个幂操作结果连乘,基于乘积结果得到所述第一结果Q
1,即:
另一方面,采用同样的同态加密算法Z,基于所述公钥pk和验证随机数r
*对验证消息进行加密m
*,得到第二结果Q
2,即:
Q
2=Enc(pk,m
*;r
*) (16)
然后,比对第一结果Q
1和第二结果Q
2是否相等。
如果k个参数密文和辅助密文均是采用Paillier加密算法合法加密的,那么根据公式(6)所示的Paillier算法的加法同态性质,上述第一结果Q
1可以写为:
根据公式(11)或(12)中验证消息m
*的计算方式,以及公式(13)中验证随机数r
*的计算方式,上式(17)右侧即等于第二结果Q
2。
如果k个参数密文和辅助密文均是采用改进的Paillier加密算法合法加密的,那么根据公式(8)所示的改进的Paillier算法的加法同态性质,上述第一结果Q
1可以写为:
根据公式(11)或(12)中验证消息m
*的计算方式,以及公式(14)中验证随机数r
*的计算方式,上式(18)右侧即等于第二结果Q
2。
总之,如果k个参数密文和辅助密文均是采用同态加密算法合法加密的,那么根据对应同态操作得到的第一结果,与采用该同态加密算法使用验证随机数对验证消息进行加密的第二结果应该相等。因此,数据拥有方B可以通过验证第一结果和第二结果是否相等,来验证k个参数密文是否是采用约定的同态加密算法合法加密的。
如果验证第一结果等于第二结果,那么零知识证明验证通过,证明k个参数密文是合法加密的密文而非恶意构造,那么在步骤S208,数据拥有方B使用拥有的k个样本特征(y
1,y
2,...,y
k)对k个参数密文(c
1,c
2,...,c
k)进行同态加和运算,得到特征运算密文X′。具体的,依次对于第i样本特征y
i和第i参数密文c
i,使用第i样本特征对第i参数密文进行幂操作,得到k个幂操作结果;将这样的k个幂操作结果连乘,乘积结果作为特征运算密文X′,具体计算如前述公式(3)所示。
然后,在步骤S209,数据拥有方B将上述特征运算密文X′发送给模型拥有方A。
接着,在步骤S210,模型拥有方A使用与前述公钥pk对应的私钥sk,对特征运算密文X′进行解密,得到特征运算结果。如前述公式(4)所示,解密得到的特征运算结果即为,k个样本特征(y
1,y
2,...,y
k)和k个模型参数(m
1,m
2,...,m
k)的线性组合X=m
1*y
1+m
2*y
2+...+m
k*y
k mod(N)。
于是,模型拥有方可以基于还原出的特征运算结果X,进行业务处理所需的模型运算,例如图像识别,用户分类,语音识别,文本处理等等。
需要理解,以上获取的特征运算结果,既可以用于模型训练阶段,也可以用于模型使用阶段。在模型训练阶段,上述的k个模型参数可以是暂时的有待调优的参数,模型拥有方基于上述特征运算结果进行进一步处理和预测,然后将预测结果与样本标签进行比对,从而对当前的k个模型参数进行调整,即更新和优化模型。在模型使用阶段,上述k个模型参数是已经经过训练调优的模型参数,模型拥有方可以基于上述特征运算结果进行进一步处理后,输出针对当前样本的预测结果,用于业务处理。
回顾以上整个过程可以看到,在多方联合进行模型数据处理过程中,模型拥有方和数据拥有方可以通过同态加密和同态操作的方式交互数据,从而得到特征运算结果。进一步的,在本说明书实施例提供的方案中,模型拥有方还向数据拥有方提供零知识证明,以证明所发送的密文是对模型参数合法加密生成的。根据实施例中验证随机数和验证消息的设置方式,上述零知识证明可以一次性对多个参数密文的合法性进行验证,而不会泄露任何有关明文信息,从而进一步确保了模型数据过程中各方隐私数据的安全性。
根据另一方面的实施例,提供了一种联合进行模型数据处理的装置,该装置部署在模型拥有方中,该模型拥有方可以通过任何具有计算、处理能力的设备、平台或设备集群来实现。图3示出根据一个实施例的部署在模型拥有方中的模型数据处理装置的示意性框图。如图3所示,该处理装置300包括参数加密单元31、辅助加密单元32、第一发送单元33、挑战数获取单元34、组合单元35、第二发送单元36、接收单元37。
参数加密单元31,配置为采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对所拥有的第一模型中的k个模型参数分别进行加密,得到k个参数密文。
辅助加密单元32,配置为随机选择第一消息和第一随机数;并采用所述同态加密算法,基于所述公钥和所述第一随机数,对所述第一消息进行加密,得到辅助密文。
第一发送单元33,配置为向数据拥有方发送所述k个参数密文和所述辅助密文。
挑战数获取单元34,配置为获取k个挑战数。
组合单元35,配置为将所述k个挑战数与所述k个模型参数线性组合,并与所述第一消息进行叠加,基于叠加结果得到验证消息;将所述k个挑战数与所述k个随机数和所述第一随机数进行组合,得到验证随机数。
第二发送单元36,配置为向所述数据拥有方发送零知识证明,其中包括所述验证 消息和验证随机数,使得所述数据拥有方验证,使用所述k个挑战数对所述k个参数密文和所述辅助密文进行同态加和运算的第一结果,与采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密的第二结果是否相等。
接收单元37,配置为接收所述数据拥有方发送的特征运算密文,所述特征运算密文是所述数据拥有方在所述验证通过的情况下,使用其拥有的k个样本特征对所述k个参数密文进行同态加和运算的结果,用于所述模型拥有方还原出特征运算结果,从而基于特征运算结果进行业务处理。
在一个实施例中,模型拥有方中维护的所述第一模型为线性回归模型,或逻辑回归模型。
根据一种实施方式,所述公钥包括,自然数N和由该自然数N限定的随机数空间中的一个循环子群的生成元h;并且,辅助加密单元32具体配置为:使用所述第一消息,对(N+1)进行幂操作,得到第一中间结果;使用所述第一随机数,基于所述生成元h进行群操作,得到第二中间结果;基于所述第一中间结果和第二中间结果,得到所述辅助密文。
相应的,在上述实施方式的一个示例中,组合单元35具体配置为:将所述k个挑战数与所述k个随机数线性组合,并与所述第一随机数进行叠加,得到所述验证随机数。
根据另一种实施方式,所述公钥至少包括自然数N;相应的,辅助加密单元32具体配置为:使用所述第一消息,对(N+1)进行幂操作,得到第一中间结果;对所述第一随机数进行N次幂操作,得到第二中间结果;基于所述第一中间结果和第二中间结果,得到所述辅助密文。
相应的,在上述实施方式的一个示例中,组合单元35具体配置为:依次对于第i挑战数和第i随机数,使用第i挑战数对第i随机数进行幂操作,得到k个幂操作结果;将所述k个幂操作结果与所述第一随机数连乘,得到所述验证随机数。
在一个实施例中,挑战数获取单元34配置为:从所述数据拥有方接收其随机选择的所述k个挑战数。
在另一实施例中,挑战数获取单元34配置为:基于所述k个参数密文和所述辅助密文,使用与所述数据拥有方约定的哈希算法,计算得到所述k个挑战数。
更具体的,在一个示例中,挑战数获取单元34如下计算得到所述k个挑战数:将所述k个参数密文和所述辅助密文排成第一序列;在所述第一序列的预定位置,分别添 加k个预定索引值,得到k个第二序列;分别对所述k个第二序列施加预定哈希函数,得到所述k个挑战数。
在另一个示例中,挑战数获取单元34如下计算得到所述k个挑战数:将所述k个参数密文和所述辅助密文,按照预定的k种排序方式,排成k个序列;分别对所述k个序列施加预定哈希函数,得到所述k个挑战数。
根据一种实施方式,组合单元35配置为:将所述第一叠加结果对N取模,将取模结果作为所述验证消息,其中N为公钥中的自然数。
在一个实施例中,所述装置还包括解密单元(未示出),配置为:采用与所述同态加密算法对应的解密算法,使用与所述公钥对应的私钥,对所述特征运算密文进行解密,得到所述特征运算结果,所述特征运算结果对应于,所述k个样本特征和所述k个模型参数的线性组合。
根据另一方面的实施例,提供了一种联合进行模型数据处理的装置,该装置部署在数据拥有方中,该数据拥有方可以通过任何具有计算、处理能力的设备、平台或设备集群来实现。图4示出根据一个实施例的部署在数据拥有方中的模型数据处理装置的示意性框图。如图4所示,该处理装置400包括第一接收单元41、挑战数确定单元42、第二接收单元43、验证单元44、同态运算单元45、发送单元46。
第一接收单元41,配置为从模型拥有方接收加密合法性有待验证的k个参数密文以及辅助密文;在合法加密的情况下,所述k个参数密文是所述模型拥有方采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对k个模型参数分别加密得到的,所述辅助密文是采用所述同态加密算法,基于所述公钥和第一随机数,对随机的第一消息进行加密得到的。
挑战数确定单元42,配置为确定k个挑战数。
第二接收单元43,配置为从所述模型拥有方接收零知识证明,其中包括验证消息和验证随机数;其中,所述验证消息是基于所述k个挑战数与所述k个模型参数的线性组合,以及与所述第一消息的叠加得到的,所述验证随机数是基于所述k个挑战数与所述k个随机数和所述第一随机数组合得到的。
验证单元44,配置为使用所述k个挑战数对所述k个参数密文和所述辅助密文进行同态加和运算,得到第一结果;并采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密,得到第二结果。
同态运算单元45,配置为在验证单元44验证所述第一结果等于第二结果的情况下,使用拥有的k个样本特征对所述k个参数密文进行同态加和运算,得到特征运算密文。
发送单元46,配置为向所述模型拥有方发送所述特征运算密文,用于所述模型拥有方还原出特征运算结果,从而基于特征运算结果进行业务处理。
在一个实施例中,所述公钥包括,自然数N和由该自然数N限定的空间中的一个循环子群的生成元h;相应的,所述验证单元44配置为:使用验证消息,对(N+1)进行幂操作,得到第一中间项;使用验证随机数,基于所述生成元h进行群操作,得到第二中间项;基于所述第一中间项和第二中间项,得到所述第二结果。
在一个实施例中,所述验证单元44配置为:依次对于第i挑战数和第i参数密文,使用第i挑战数对第i参数密文进行幂操作,得到k个幂操作结果;将所述辅助密文与所述k个幂操作结果连乘,乘积结果作为所述第一结果。
根据一个实施例,同态运算单元45配置为:依次对于第i样本特征和第i参数密文,使用第i样本特征对第i参数密文进行幂操作,得到k个幂操作结果;将所述k个幂操作结果连乘,乘积结果作为所述特征运算密文。
根据一种实施方式,挑战数确定单元42配置为:随机确定所述k个挑战数,并将其发送给所述模型拥有方。
根据另一种实施方式,挑战数确定单元42配置为:基于所述k个参数密文和所述辅助密文,使用与所述模型拥有方约定的哈希算法,计算得到所述k个挑战数。
更具体的,在一个示例中,挑战数确定单元42如下计算得到所述k个挑战数:将所述k个参数密文和所述辅助密文排成第一序列;在所述第一序列的预定位置,分别添加k个预定索引值,得到k个第二序列;分别对所述k个第二序列施加预定哈希函数,得到所述k个挑战数。
在另一示例中,挑战数确定单元42如下计算得到所述k个挑战数:将所述k个参数密文和所述辅助密文,按照预定的k种排序方式,排成k个序列;分别对所述k个序列施加预定哈希函数,得到所述k个挑战数。
根据具体实施方式,所述k个样本特征可以包括以下之一:用户属性特征,图片像素特征,音频特征,文本编码特征。
通过以上的装置300和装置400,在保护隐私数据安全的同时实现多方联合进行模 型数据处理。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (25)
- 一种保护数据隐私的多方联合进行模型数据处理的方法,所述多方包括模型拥有方和数据拥有方,所述方法通过所述模型拥有方执行,包括:采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对所拥有的第一模型中的k个模型参数分别进行加密,得到k个参数密文;随机选择第一消息和第一随机数;并采用所述同态加密算法,基于所述公钥和所述第一随机数,对所述第一消息进行加密,得到辅助密文;向所述数据拥有方发送所述k个参数密文和所述辅助密文;获取k个挑战数;将所述k个挑战数与所述k个模型参数线性组合,并与所述第一消息进行叠加,基于叠加结果得到验证消息;将所述k个挑战数与所述k个随机数和所述第一随机数进行组合,得到验证随机数;向所述数据拥有方发送零知识证明,其中包括所述验证消息和验证随机数,使得所述数据拥有方验证,使用所述k个挑战数对所述k个参数密文和所述辅助密文进行同态加和运算的第一结果,与采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密的第二结果是否相等;接收所述数据拥有方发送的特征运算密文,所述特征运算密文是所述数据拥有方在所述验证通过的情况下,使用其拥有的k个样本特征对所述k个参数密文进行同态加和运算的结果,用于所述模型拥有方还原出特征运算结果,从而基于特征运算结果进行业务处理。
- 根据权利要求1所述的方法,其中,所述第一模型为线性回归模型,或逻辑回归模型。
- 根据权利要求1所述的方法,其中,所述公钥包括,自然数N和由该自然数N限定的随机数空间中的一个循环子群的生成元h;采用所述同态加密算法,基于所述公钥和所述第一随机数,对所述第一消息进行加密,得到辅助密文,包括:使用所述第一消息,对(N+1)进行幂操作,得到第一中间结果;使用所述第一随机数,基于所述生成元h进行群操作,得到第二中间结果;基于所述第一中间结果和第二中间结果,得到所述辅助密文。
- 根据权利要求3所述的方法,其中,将所述k个挑战数与所述k个随机数和所述第一随机数进行组合,得到验证随机数,包括:将所述k个挑战数与所述k个随机数线性组合,并与所述第一随机数进行叠加,得到所述验证随机数。
- 根据权利要求1所述的方法,其中,所述公钥至少包括自然数N;采用所述同态加密算法,基于所述公钥和所述第一随机数,对所述第一消息进行加密,得到辅助密文,包括:使用所述第一消息,对(N+1)进行幂操作,得到第一中间结果;对所述第一随机数进行N次幂操作,得到第二中间结果;基于所述第一中间结果和第二中间结果,得到所述辅助密文。
- 根据权利要求5所述的方法,其中,将所述k个挑战数与所述k个随机数和所述第一随机数进行组合,得到验证随机数,包括:依次对于第i挑战数和第i随机数,使用第i挑战数对第i随机数进行幂操作,得到k个幂操作结果;将所述k个幂操作结果与所述第一随机数连乘,得到所述验证随机数。
- 根据权利要求1所述的方法,其中,所述获取k个挑战数,包括:从所述数据拥有方接收其随机选择的所述k个挑战数。
- 根据权利要求1所述的方法,其中,所述获取k个挑战数,包括:基于所述k个参数密文和所述辅助密文,使用与所述数据拥有方约定的哈希算法,计算得到所述k个挑战数。
- 根据权利要求8所述的方法,其中,计算得到所述k个挑战数,包括:将所述k个参数密文和所述辅助密文排成第一序列;在所述第一序列的预定位置,分别添加k个预定索引值,得到k个第二序列;分别对所述k个第二序列施加预定哈希函数,得到所述k个挑战数。
- 根据权利要求8所述的方法,其中,计算得到所述k个挑战数,包括:将所述k个参数密文和所述辅助密文,按照预定的k种排序方式,排成k个序列;分别对所述k个序列施加预定哈希函数,得到所述k个挑战数。
- 根据权利要求3所述的方法,其中,所述基于第一叠加结果得到验证消息,包括:将所述第一叠加结果对N取模,将取模结果作为所述验证消息。
- 根据权利要求1所述的方法,还包括:采用与所述同态加密算法对应的解密算法,使用与所述公钥对应的私钥,对所述特征运算密文进行解密,得到所述特征运算结果,所述特征运算结果对应于,所述k个样本特征和所述k个模型参数的线性组合。
- 一种保护数据隐私的多方联合进行模型数据处理的方法,所述多方包括模型拥有方和数据拥有方,所述方法通过所述数据拥有方执行,包括:从所述模型拥有方接收加密合法性有待验证的k个参数密文以及辅助密文;在合法加密的情况下,所述k个参数密文是所述模型拥有方采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对k个模型参数分别加密得到的,所述辅助密文是采用所述同态加密算法,基于所述公钥和第一随机数,对随机的第一消息进行加密得到的;确定k个挑战数;从所述模型拥有方接收零知识证明,其中包括验证消息和验证随机数;其中,所述验证消息是基于所述k个挑战数与所述k个模型参数的线性组合,以及与所述第一消息的叠加得到的,所述验证随机数是基于所述k个挑战数与所述k个随机数和所述第一随机数组合得到的;使用所述k个挑战数对所述k个参数密文和所述辅助密文进行同态加和运算,得到第一结果;并采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密,得到第二结果;在验证第一结果等于第二结果的情况下,使用拥有的k个样本特征对所述k个参数密文进行同态加和运算,得到特征运算密文;向所述模型拥有方发送所述特征运算密文,用于所述模型拥有方还原出特征运算结果,从而基于特征运算结果进行业务处理。
- 根据权利要求13所述的方法,其中,所述公钥包括,自然数N和由该自然数N限定的随机数空间中的一个循环子群的生成元h;基于所述公钥和所述验证随机数对所述验证消息进行加密,得到第二结果,包括:使用所述验证消息,对(N+1)进行幂操作,得到第一中间项;使用所述验证随机数,基于所述生成元h进行群操作,得到第二中间项;基于所述第一中间项和第二中间项,得到所述第二结果。
- 根据权利要求13所述的方法,其中,使用所述k个挑战数对所述k个参数密文和所述辅助密文进行同态加和运算,得到第一结果,包括:依次对于第i挑战数和第i参数密文,使用第i挑战数对第i参数密文进行幂操作,得到k个幂操作结果;将所述辅助密文与所述k个幂操作结果连乘,基于乘积结果得到所述第一结果。
- 根据权利要求13所述的方法,其中,使用拥有的k个样本特征对所述k个参数密文进行同态加和运算,得到特征运算密文,包括:依次对于第i样本特征和第i参数密文,使用第i样本特征对第i参数密文进行幂操作,得到k个幂操作结果;将所述k个幂操作结果连乘,基于乘积结果得到所述特征运算密文。
- 根据权利要求13所述的方法,其中,所述确定k个挑战数,包括:随机确定所述k个挑战数,并将其发送给所述模型拥有方。
- 根据权利要求13所述的方法,其中,所述确定k个挑战数,包括:基于所述k个参数密文和所述辅助密文,使用与所述模型拥有方约定的哈希算法,计算得到所述k个挑战数。
- 根据权利要求18所述的方法,其中,计算得到所述k个挑战数,包括:将所述k个参数密文和所述辅助密文排成第一序列;在所述第一序列的预定位置,分别添加k个预定索引值,得到k个第二序列;分别对所述k个第二序列施加预定哈希函数,得到所述k个挑战数。
- 根据权利要求18所述的方法,其中,计算得到所述k个挑战数,包括:将所述k个参数密文和所述辅助密文,按照预定的k种排序方式,排成k个序列;分别对所述k个序列施加预定哈希函数,得到所述k个挑战数。
- 根据权利要求13所述的方法,其中,所述k个样本特征包括以下之一:用户属性特征,图片像素特征,音频特征,文本编码特征。
- 一种保护数据隐私的多方联合进行模型数据处理的装置,所述多方包括模型拥有方和数据拥有方,所述装置部署在所述模型拥有方中,包括:参数加密单元,配置为采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对所拥有的第一模型中的k个模型参数分别进行加密,得到k个参数密文;辅助加密单元,配置为随机选择第一消息和第一随机数;并采用所述同态加密算法,基于所述公钥和所述第一随机数,对所述第一消息进行加密,得到辅助密文;第一发送单元,配置为向所述数据拥有方发送所述k个参数密文和所述辅助密文;挑战数获取单元,配置为获取k个挑战数;组合单元,配置为将所述k个挑战数与所述k个模型参数线性组合,并与所述第一消息进行叠加,基于叠加结果得到验证消息;将所述k个挑战数与所述k个随机数和所述第一随机数进行组合,得到验证随机数;第二发送单元,配置为向所述数据拥有方发送零知识证明,其中包括所述验证消息和验证随机数,使得所述数据拥有方验证,使用所述k个挑战数对所述k个参数密文和所述辅助密文进行同态加和运算的第一结果,与采用所述同态加密算法,基于所述公钥 和所述验证随机数对所述验证消息进行加密的第二结果是否相等;接收单元,配置为接收所述数据拥有方发送的特征运算密文,所述特征运算密文是所述数据拥有方在所述验证通过的情况下,使用其拥有的k个样本特征对所述k个参数密文进行同态加和运算的结果,用于所述模型拥有方还原出特征运算结果,从而基于特征运算结果进行业务处理。
- 一种保护数据隐私的多方联合进行模型数据处理的装置,所述多方包括模型拥有方和数据拥有方,所述装置部署在所述数据拥有方中,包括:第一接收单元,配置为从所述模型拥有方接收加密合法性有待验证的k个参数密文以及辅助密文;在合法加密的情况下,所述k个参数密文是所述模型拥有方采用同态加密算法,基于预先生成的公钥和分别生成的k个随机数,对k个模型参数分别加密得到的,所述辅助密文是采用所述同态加密算法,基于所述公钥和第一随机数,对随机的第一消息进行加密得到的;挑战数确定单元,配置为确定k个挑战数;第二接收单元,配置为从所述模型拥有方接收零知识证明,其中包括验证消息和验证随机数;其中,所述验证消息是基于所述k个挑战数与所述k个模型参数的线性组合,以及与所述第一消息的叠加得到的,所述验证随机数是基于所述k个挑战数与所述k个随机数和所述第一随机数组合得到的;验证单元,配置为使用所述k个挑战数对所述k个参数密文和所述辅助密文进行同态加和运算,得到第一结果;并采用所述同态加密算法,基于所述公钥和所述验证随机数对所述验证消息进行加密,得到第二结果;同态运算单元,配置为在验证单元验证所述第一结果等于第二结果的情况下,使用拥有的k个样本特征对所述k个参数密文进行同态加和运算,得到特征运算密文;发送单元,配置为向所述模型拥有方发送所述特征运算密文,用于所述模型拥有方还原出特征运算结果,从而基于特征运算结果进行业务处理。
- 一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-21中任一项的所述的方法。
- 一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-21中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911298674.3 | 2019-12-17 | ||
CN201911298674.3A CN110991655B (zh) | 2019-12-17 | 2019-12-17 | 多方联合进行模型数据处理的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021120861A1 true WO2021120861A1 (zh) | 2021-06-24 |
Family
ID=70094376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/123982 WO2021120861A1 (zh) | 2019-12-17 | 2020-10-27 | 多方联合进行模型数据处理的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110991655B (zh) |
WO (1) | WO2021120861A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110991655B (zh) * | 2019-12-17 | 2021-04-02 | 支付宝(杭州)信息技术有限公司 | 多方联合进行模型数据处理的方法及装置 |
CN111563267B (zh) * | 2020-05-08 | 2024-04-05 | 京东科技控股股份有限公司 | 用于联邦特征工程数据处理的方法和装置 |
CN111598254B (zh) * | 2020-05-22 | 2021-10-08 | 深圳前海微众银行股份有限公司 | 联邦学习建模方法、设备及可读存储介质 |
CN111371545B (zh) * | 2020-05-27 | 2020-09-11 | 支付宝(杭州)信息技术有限公司 | 一种基于隐私保护的加密方法和系统 |
CN111539535B (zh) * | 2020-06-05 | 2022-04-12 | 支付宝(杭州)信息技术有限公司 | 基于隐私保护的联合特征分箱方法及装置 |
CN111984932B (zh) * | 2020-08-24 | 2023-11-14 | 支付宝(杭州)信息技术有限公司 | 两方数据分组统计方法、装置及系统 |
CN112000991B (zh) * | 2020-10-27 | 2021-02-09 | 支付宝(杭州)信息技术有限公司 | 多方数据联合处理方法、装置及系统 |
US11849043B2 (en) * | 2020-11-13 | 2023-12-19 | Sony Group Corporation | Zero-knowledge authentication based on device information |
CN112800479B (zh) * | 2021-04-07 | 2021-07-06 | 支付宝(杭州)信息技术有限公司 | 利用可信第三方的多方联合数据处理方法及装置 |
CN114401079B (zh) * | 2022-03-25 | 2022-06-14 | 腾讯科技(深圳)有限公司 | 多方联合信息价值计算方法、相关设备及存储介质 |
CN114422107B (zh) * | 2022-03-31 | 2022-06-17 | 四川高速公路建设开发集团有限公司 | 基于智慧工程建设系统平台可容错的密文数据聚合方法 |
CN115242444B (zh) * | 2022-06-22 | 2023-08-01 | 暨南大学 | 一种可验证的隐私保护线性回归方法和系统 |
CN115242409B (zh) * | 2022-09-21 | 2022-11-25 | 环球数科集团有限公司 | 一种基于零知识证明的隐私计算方法与系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951443A (zh) * | 2019-01-28 | 2019-06-28 | 湖北工业大学 | 一种云环境下隐私保护的集合交集计算方法及系统 |
CN110011781A (zh) * | 2019-03-04 | 2019-07-12 | 华中科技大学 | 一种用于交易金额加密且支持零知识证明的同态加密方法 |
US20190280880A1 (en) * | 2018-12-21 | 2019-09-12 | Alibaba Group Holding Limited | Blockchain data protection based on generic account model and homomorphic encryption |
CN110291756A (zh) * | 2018-11-07 | 2019-09-27 | 阿里巴巴集团控股有限公司 | 在区块链机密交易中恢复加密交易信息 |
CN110991655A (zh) * | 2019-12-17 | 2020-04-10 | 支付宝(杭州)信息技术有限公司 | 多方联合进行模型数据处理的方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008022158A2 (en) * | 2006-08-14 | 2008-02-21 | The Regents Of The University Of California | System for non-interactive zero-knowledge proofs |
CN102916968B (zh) * | 2012-10-29 | 2016-01-27 | 北京天诚盛业科技有限公司 | 身份认证方法、身份认证服务器和身份认证装置 |
CN103414690B (zh) * | 2013-07-15 | 2016-05-11 | 北京航空航天大学 | 一种可公开验证云端数据持有性校验方法 |
CN107682379A (zh) * | 2017-11-22 | 2018-02-09 | 南京汽车集团有限公司 | 基于同态加密的信息安全传输装置、传输方法及存储方法 |
CN110163008B (zh) * | 2019-04-30 | 2023-03-07 | 创新先进技术有限公司 | 一种部署的加密模型的安全性审计的方法和系统 |
CN110414981B (zh) * | 2019-07-04 | 2023-05-09 | 华中科技大学 | 一种支持ZKPs的同态加密方法和区块链交易金额加密方法 |
-
2019
- 2019-12-17 CN CN201911298674.3A patent/CN110991655B/zh active Active
-
2020
- 2020-10-27 WO PCT/CN2020/123982 patent/WO2021120861A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110291756A (zh) * | 2018-11-07 | 2019-09-27 | 阿里巴巴集团控股有限公司 | 在区块链机密交易中恢复加密交易信息 |
US20190280880A1 (en) * | 2018-12-21 | 2019-09-12 | Alibaba Group Holding Limited | Blockchain data protection based on generic account model and homomorphic encryption |
CN109951443A (zh) * | 2019-01-28 | 2019-06-28 | 湖北工业大学 | 一种云环境下隐私保护的集合交集计算方法及系统 |
CN110011781A (zh) * | 2019-03-04 | 2019-07-12 | 华中科技大学 | 一种用于交易金额加密且支持零知识证明的同态加密方法 |
CN110991655A (zh) * | 2019-12-17 | 2020-04-10 | 支付宝(杭州)信息技术有限公司 | 多方联合进行模型数据处理的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110991655B (zh) | 2021-04-02 |
CN110991655A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021120861A1 (zh) | 多方联合进行模型数据处理的方法及装置 | |
CN110912713B (zh) | 多方联合进行模型数据处理的方法及装置 | |
WO2021197037A1 (zh) | 双方联合进行数据处理的方法及装置 | |
US12101415B2 (en) | Method of RSA signature or decryption protected using a homomorphic encryption | |
CN108292402B (zh) | 用于信息的安全交换的公共秘密的确定和层级确定性密钥 | |
CN112989368B (zh) | 多方联合进行隐私数据处理的方法及装置 | |
US10396976B2 (en) | System and method for private-key fully homomorphic encryption and private search between rings | |
JP2020502856A5 (zh) | ||
TW202006615A (zh) | 基於模型的預測方法和裝置 | |
JP5599728B2 (ja) | ホワイトボックス実装 | |
CN113162752B (zh) | 基于混合同态加密的数据处理方法和装置 | |
Zhu et al. | Fairness-aware and privacy-preserving friend matching protocol in mobile social networks | |
EP3718250A1 (en) | Cryptography device having secure provision of random number sequences | |
CN115037477A (zh) | 一种基于区块链的联邦学习隐私保护方法 | |
CN113420886B (zh) | 纵向联邦学习模型的训练方法、装置、设备及存储介质 | |
CN109831306B (zh) | 基于多个密钥池的抗量子计算环签名方法和系统 | |
US20240048360A1 (en) | Method for processing multi-source data | |
Kaaniche et al. | A novel zero-knowledge scheme for proof of data possession in cloud storage applications | |
Wan et al. | Towards privacy-preserving and verifiable federated matrix factorization | |
Cui et al. | Towards Multi-User, Secure, and Verifiable $ k $ NN Query in Cloud Database | |
CN116318696B (zh) | 一种双方无初始信任情况下代理重加密数字资产授权方法 | |
CN117240433A (zh) | 一种基于代理重加密的信息分享方法及装置 | |
US20110320814A1 (en) | System and method of authentication | |
CN113792282B (zh) | 身份数据验证方法、装置、计算机设备和存储介质 | |
EP4262134A1 (en) | Secure multi-party computation methods and apparatuses |
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: 20902458 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: 20902458 Country of ref document: EP Kind code of ref document: A1 |