CN112800479B - Multi-party combined data processing method and device by using trusted third party - Google Patents

Multi-party combined data processing method and device by using trusted third party Download PDF

Info

Publication number
CN112800479B
CN112800479B CN202110373247.8A CN202110373247A CN112800479B CN 112800479 B CN112800479 B CN 112800479B CN 202110373247 A CN202110373247 A CN 202110373247A CN 112800479 B CN112800479 B CN 112800479B
Authority
CN
China
Prior art keywords
party
random
trusted
participants
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110373247.8A
Other languages
Chinese (zh)
Other versions
CN112800479A (en
Inventor
余超凡
王磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202110373247.8A priority Critical patent/CN112800479B/en
Publication of CN112800479A publication Critical patent/CN112800479A/en
Application granted granted Critical
Publication of CN112800479B publication Critical patent/CN112800479B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Abstract

The embodiment of the specification provides a multi-party combined data processing method and device by using a trusted third party. The multiple participants respectively determine the same nth identification of the multiple participants at this time when performing nth joint data processing, respectively generate acquisition requests carrying the nth identification, and send the acquisition requests to the trusted third party; the computing unit in the trusted third party receives the acquisition requests sent by the multiple parties respectively, generates random arrays corresponding to the multiple parties respectively based on the stored initial seeds and the acquired nth identification, and sends the random arrays to the corresponding parties respectively; the random arrays meet a preset relationship; and the multiple participants respectively receive the random arrays returned by the trusted third party and perform the joint data processing based on the respective service data and the random arrays by utilizing the multi-party security calculation.

Description

Multi-party combined data processing method and device by using trusted third party
Technical Field
One or more embodiments of the present disclosure relate to the field of data processing technologies, and in particular, to a multiparty federated data processing method and apparatus using a trusted third party.
Background
With the development of computer technology, the service platforms of enterprises or institutions and the like have an increasing demand for improving service capability by using business data. The service data comprises various data of the user in the service receiving process in the service platform, and the service data is processed and analyzed, so that the service level of the service platform is improved. Different service platforms are combined to analyze and process the service data, so that the analysis result is more comprehensive and profound. However, the service data is often private data of the service platform, and cannot be directly combined with service data of other service platforms, so that higher privacy protection requirements exist.
Multi-party secure computing (MPC) is a privacy technique that protects the computing process of multi-party data participation from revealing any participant data through a pure cryptographic means. In the process of processing multi-party combined data by using the MPC, the business data of the participants cannot be directly sent to other participants, and the participants cannot utilize the interactive data among a plurality of participants to reversely deduce the business data of other participants. Currently, a demand exists for performing joint data processing with MPC in a large batch and at high density among a plurality of participants, and a demand exists for improving usability of the joint data processing process on the premise of ensuring data privacy and security.
Accordingly, improved approaches are desired that provide a federated data processing environment that is highly available and that ensures data privacy and security.
Disclosure of Invention
One or more embodiments of the present specification describe a multiparty federated data processing method and apparatus using a trusted third party to provide a highly available federated data processing environment and to ensure the privacy and security of data. The specific technical scheme is as follows.
In a first aspect, an embodiment provides a multiparty federated data processing method using a trusted third party, which is used for performing private federated data processing on business data of a plurality of participants, where the trusted third party includes a plurality of computing units, and an initial seed for generating a random number is preconfigured in the plurality of computing units, and the method is performed by a first participant of any of the plurality of participants, and includes:
when the nth joint data processing is carried out, the nth identification which is the same at this time of a plurality of participants is determined;
generating a first acquisition request carrying the nth identifier, and sending the first acquisition request to the trusted third party;
receiving a first random array returned by the trusted third party; a computing unit in the trusted third party generates corresponding random arrays aiming at a plurality of participants respectively based on the initial seeds and the nth identification, and the plurality of random arrays meet a preset relationship;
and performing the joint data processing on the basis of the service data and the first random array of the first participant and the respective service data and random arrays of other participants by using a multi-party security computing MPC.
In one embodiment, the step of determining the nth identifier that is the same for the time by the multiple participants includes:
determining the nth identifier based on the current value of a first counter owned by the first participant; the initial values of the counters owned by the multiple participants are the same, and the values of the multiple counters are updated once in the process of each joint data processing.
In one embodiment, the step of determining the nth identity comprises: directly determining the current value of the first counter as the nth identifier; or, the nth identifier is determined based on the hash value of the current numerical value of the first counter.
In one embodiment, the business data includes at least one of the following characteristics of a plurality of objects: basic attribute information, incidence relation information, interaction information and historical behavior information; the object comprises one of the following categories: user, commodity, event.
In one embodiment, the plurality of computing units are further configured with keys of a plurality of parties, and the first random number group is a result of encryption by the key of the first party; the step of performing the joint data processing includes:
decrypting the first random array by using the secret key of the first party to obtain a decrypted first random array; and performing the joint data processing based on the service data and the decrypted first random array of the first participant, and the service data and the decrypted random array of the other participants by using the MPC.
In one embodiment, the keys configured in the plurality of computing units are respective public keys of the plurality of parties; the step of decrypting the first random number using the key of the first party comprises: decrypting the first random array using a corresponding private key of the first party.
In one embodiment, the step of performing the joint data processing includes:
determining first covert data based on the fusion of the business data of the first party and the first random array; and performing the joint data processing based on the exchange between the first secret data and the secret data of other participants by using the MPC.
In one embodiment, the computing unit in the trusted third party comprises a trusted computing unit having a trusted execution environment TEE.
In one embodiment, the step of sending it to the trusted third party comprises:
performing remote authentication RA with a trusted computing unit in the trusted third party, and establishing an RA channel;
and sending the first acquisition request to a corresponding trusted computing unit in the trusted third party through the RA channel.
In a second aspect, an embodiment provides a multiparty federated data processing method using a trusted third party, which is used for performing private federated data processing on business data of multiple participants, where the trusted third party includes multiple computing units, and an initial seed for generating a random number is preconfigured in the multiple computing units, and the method is performed by any first computing unit in the trusted third party, and includes:
receiving a first acquisition request sent by a first participant in a plurality of participants, wherein the first acquisition request carries an nth identifier; the nth identification is the same identification determined by a plurality of participants in the nth joint data processing;
respectively generating random arrays corresponding to the multiple participants based on the initial seeds and the nth identifier, wherein the random arrays comprise a first random array generated for the first participant, and the multiple random arrays meet a preset relationship;
and sending the first random array to the first participant, so that the first participant and other participants perform the joint data processing based on the respective service data and the random array by using the MPC.
In one embodiment, the method further comprises: receiving an acquisition request sent by other participants; and when the n-th identifier is determined to be carried in the acquisition request, sending the random arrays corresponding to the other participants in the plurality of random arrays to the other participants.
In one embodiment, the step of generating respective corresponding random arrays for the plurality of participants includes:
generating random number seeds of this time based on the combination of the initial seeds and the nth identifier; and respectively generating corresponding random arrays for a plurality of participants based on the random number seeds.
In one embodiment, the step of generating respective corresponding random arrays for the plurality of participants includes:
and determining a random array corresponding to each participant by utilizing a preset relation between a pseudo-random algorithm and a plurality of random arrays based on the initial seed and the nth identifier.
In one embodiment, the step of determining the random array corresponding to each participant further comprises:
respectively generating random arrays corresponding to a plurality of participants by utilizing a pseudo-random algorithm, wherein each random array comprises a plurality of random number matrixes, a random number matrix to be corrected and a random number matrix not to be corrected;
determining a correction value of a random number matrix to be corrected by utilizing a preset relation among a plurality of random arrays based on the random number matrix not to be corrected in the plurality of random arrays;
and updating the corresponding random array by using the correction value.
In one embodiment, a plurality of computing units are also configured with respective keys of a plurality of parties; the step of sending the first random number group to the first participant comprises:
and encrypting the first random array by using the secret key of the first party, and sending the encrypted result to the first party.
In one embodiment, the trusted third party further comprises: a load balancing unit;
the step of receiving a first obtaining request sent by a first party of the multiple parties comprises:
and receiving a first acquisition request forwarded by the load balancing unit, wherein the first acquisition request is sent by a first participant in a plurality of participants.
In a third aspect, an embodiment provides a multiparty federated data processing method using a trusted third party, which is used for performing private federated data processing on business data of a plurality of participants, where the trusted third party includes a plurality of computing units, and an initial seed for generating a random number is preconfigured in the plurality of computing units, and the method includes:
the multiple participants respectively determine the same nth identification of the multiple participants at this time when performing nth joint data processing, respectively generate acquisition requests carrying the nth identification, and send the acquisition requests to the trusted third party;
the computing unit in the trusted third party receives the acquisition requests sent by the multiple parties respectively, generates random arrays corresponding to the multiple parties respectively based on the initial seeds and the nth identification, and sends the random arrays to the corresponding parties respectively; the random arrays meet a preset relationship;
and the multiple participants respectively receive the random arrays returned by the trusted third party and perform the joint data processing based on the respective service data and the random arrays by using the MPC.
In a fourth aspect, an embodiment provides a multi-party federated data processing apparatus using a trusted third party, configured to perform private federated data processing on business data of a plurality of participants, where the trusted third party includes a plurality of computing units, and an initial seed for generating a random number is preconfigured in the plurality of computing units, and the apparatus is deployed in any first participant among the plurality of participants, and includes:
the first determining module is configured to determine the nth identifier which is the same for the time of the multiple participants when the nth joint data processing is performed;
the first sending module is configured to generate a first obtaining request carrying the nth identifier and send the first obtaining request to the trusted third party;
the first receiving module is configured to receive a first random array returned by the trusted third party; a computing unit in the trusted third party generates corresponding random arrays aiming at a plurality of participants respectively based on the initial seeds and the nth identification, and the plurality of random arrays meet a preset relationship;
and the first processing module is configured to perform the joint data processing based on the service data and the first random array of the first participant and the respective service data and random arrays of other participants by using the MPC.
In a fifth aspect, an embodiment provides a multiparty federated data processing apparatus using a trusted third party, configured to perform private federated data processing on business data of multiple participants, where the trusted third party includes multiple computing units, and an initial seed for generating a random number is preconfigured in the multiple computing units, and the apparatus is deployed in any first computing unit of the trusted third party, and includes:
the second receiving module is configured to receive a first acquisition request sent by a first participant in the multiple participants, wherein the first acquisition request carries an nth identifier; the nth identification is the same identification determined by a plurality of participants in the nth joint data processing;
the first generation module is configured to generate random arrays corresponding to the multiple parties respectively based on the initial seeds and the nth identification, the random arrays include a first random array generated for the first party, and the random arrays meet a preset relationship;
and the second sending module is configured to send the first random array to the first participant, so that the first participant and other participants perform the joint data processing based on the respective service data and the random array by using the MPC.
In a sixth aspect, an embodiment provides a multiparty federated data processing system using a trusted third party, for performing private federated data processing on business data of a plurality of participants, the system including the trusted third party and the plurality of participants; the trusted third party comprises a plurality of computing units, and initial seeds for generating random numbers are pre-configured in the computing units;
the multiple participants are used for respectively determining the n-th identifications which are the same as the multiple participants at this time when the n-th joint data processing is carried out, respectively generating acquisition requests carrying the n-th identifications and sending the acquisition requests to the trusted third party;
the computing unit in the trusted third party is configured to receive acquisition requests sent by multiple participants respectively, generate random arrays corresponding to the multiple participants respectively based on the initial seeds and the nth identifier, and send the random arrays to the corresponding participants respectively; the random arrays meet a preset relationship;
and the multiple participants are used for respectively receiving the random arrays returned by the trusted third party and performing the joint data processing based on the respective service data and the random arrays by using the MPC.
In a seventh aspect, embodiments provide a computer-readable storage medium, on which a computer program is stored, which, when executed in a computer, causes the computer to perform the method of any one of the first to third aspects.
In a seventh aspect, an embodiment provides a computing device, including a memory and a processor, where the memory stores executable code, and the processor executes the executable code to implement the method of any one of the first to third aspects.
In the method and the apparatus provided in the embodiment of the present specification, a plurality of participants may determine an identifier each time data is processed in a combined manner, the identifier is the same for the plurality of participants, any one of the participants sends the identifier of this time to a trusted third party, a random array corresponding to the identifier may be obtained by the trusted third party, the trusted third party may generate a random array for each participant based on the identifier and an initial seed, and when the identifiers are different, the generated random array also changes. Moreover, the initial seed is pre-configured for each of the plurality of computing units in the trusted third party, and any one of the computing units can provide a random array meeting the requirements for the plurality of participants when receiving the acquisition request. Therefore, on the premise of ensuring the privacy and the safety of the data of the participants, a high-availability environment is provided for the joint data processing.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings used in the description of the embodiments will be briefly introduced below. It is obvious that the drawings in the following description are only some embodiments of the invention, and that for a person skilled in the art, other drawings can be derived from them without inventive effort.
FIG. 1 is a schematic diagram illustrating an implementation scenario of an embodiment disclosed herein;
FIG. 2 is a schematic diagram of two parties federated data processing using secret sharing;
FIG. 3 is a flowchart illustrating a method for processing data by a multi-party federation using a trusted third party, according to an embodiment;
FIG. 4 is a flowchart illustrating another method for processing data by a multi-party federation using a trusted third party according to an embodiment;
FIG. 5 is a schematic block diagram of a multi-party federated data processing apparatus utilizing a trusted third party, provided by an embodiment;
FIG. 6 is a schematic block diagram of another embodiment of a multi-party federated data processing apparatus utilizing a trusted third party;
FIG. 7 is a schematic block diagram of a multi-party federated data processing system utilizing a trusted third party, according to an embodiment.
Detailed Description
The scheme provided by the specification is described below with reference to the accompanying drawings.
Fig. 1 is a schematic view of an implementation scenario of an embodiment disclosed in this specification. The trusted third party comprises a plurality of computing units, and each computing unit is pre-configured with an initial seed for generating a random number; a plurality of parties, such as party a and party B, are each communicatively coupled to the trusted third party. Only two computing units and two participants are shown in fig. 1, and in practical applications, the number of computing units and the number of participants may be more, and fig. 1 does not limit the embodiments of the present specification.
As mentioned earlier, different service platforms, such as various enterprises or organizations, each maintain their business data, which may include characteristic information related to a particular object. The object may be, but is not limited to, any one of a user, a commodity, an event, and the like. For example, it is possible for a user to use services provided by a bank, an insurance company, or a shopping company, and business data related to the user exists in any of these organizations or businesses. If the organizations or enterprises perform joint processing on business data of all parties, such as joint assessment of credit level and risk level of users, the obtained data processing result will be more comprehensive and accurate.
In particular, the business data may comprise at least one of the following characteristics of the plurality of objects: basic attribute information, incidence relation information, interaction information and historical behavior information. For example, when the object is a user, the basic attribute information may include gender, age, income, and the like of the user, the association information of the user may include other users, companies, regions, and the like, which have an association with the user, the interaction information of the user may include information of clicking, viewing, participating in a certain activity, and the like of the user at a certain website, and the historical behavior information of the user may include historical transaction behavior, payment behavior, purchase behavior, and the like of the user. When the object is a commodity, the basic attribute information may include a category, a place of production, a price, and the like of the commodity, the association relationship information of the commodity may include a user, a shop, or other commodities, and the like, which have an association relationship with the commodity, the interaction information of the commodity may include interaction characteristics between the user, the shop, and the commodity, and the historical behavior information of the commodity may include information that the commodity is purchased, transferred, returned, and the like. When the object is an event, the basic attribute information may be text information for describing the event, the association relationship information may include text having a relationship with the event in a context, other event information having an association with the event, and the like, and the historical behavior information may include record information of a development and change of the event in a time dimension, and the like. The service data is often privacy data of the service platform, and higher privacy and security are required to be maintained in the processing process.
The service platforms can be respectively used as participants of joint data processing. The business data of each participant can be represented in a matrix form, for example, in a matrix with dimensions of N × M, where M and N are integers, the matrix contains feature data of N objects, and the feature data of each object includes feature values of M attribute features. The value of M or N may be different for different participants. In one embodiment, the business data may be a matrix that is subjected to a dimension reduction process or other processes.
Multi-party Secure computing (MPC) is an existing data privacy protection technology that can be used for Multi-party participation, and specific implementations thereof include homomorphic encryption, garbled circuit, careless transmission, secret sharing, and the like. MPC is generally divided into an offline phase and an online phase. The offline phase is mainly used to generate offline factors, such as triples (viewer triples). The generation of the offline factor is independent of online data processing and can be generated in advance. The offline phase and the online phase are relative relationships, and the online phase can be understood as a phase for performing joint data processing by using an offline factor generated by the offline phase.
In order to more clearly illustrate the process of multi-party secure computing, the following description will take a secret sharing technique as an example to illustrate an offline stage and an online stage when joint data processing is performed between multiple participants. Fig. 2 is a schematic diagram of joint data processing by two parties using secret sharing. Suppose that Alice side owns matrix X and Bob side owns matrix Y. The matrix X and the matrix Y are respectively data matrixes corresponding to the service data of the two participants.
In the step 1, in an offline stage, an Alice side and a Bob side respectively obtain offline factors (U1, V1, W1) and (U2, V2, W2), where matrices U1 and U2 are the same as the X dimension, matrices V1 and V2 are the same as the Y dimension, and satisfy (U1 + U2) ∗ (V1+ V2) = (W1+ W2). This is the off-line phase.
And 2, randomly generating a matrix X1 by Alice, obtaining a fragment X2= X-X1, and sending X2 to Bob. At the same time, Bob also randomly generates a matrix Y2, and gets a slice Y1= Y-Y2, sending Y1 to Alice. Thus, Alice and Bob possess X1, Y1 and X2, Y2, respectively.
Step 3, calculate D, E under the finite field. Alice calculates according to the following formula: d1= X1-U1, E1= Y1-V1. Bob was calculated according to the following formula, D2= Y2-U2, E2= Y2-V2. Both parties exchange D1, E1 and D2, E2.
And 4, obtaining a fragment Z1 by Alice through calculating the following formula:
D=D1+D2,E=E1+E2
Z1=W1+E·U1+D·V1+D·E
bob obtains the shard Z2 by calculating the following equation:
D=D1+D2,E=E1+E2
Z2=W2+E·U2+D·V2
it can be verified that Z1+ Z2= X · Y.
Thus, the two holders get slices of matrix multiplication, Z1 and Z2, respectively, without exposing the original matrices X and Y. The above steps 2, 3 and 4 are all online stages. The joint data processing shown in the above online phase is only an example and is not to be construed as limiting the present specification. In practical applications, the joint data processing process of the online phase may also include more other ways.
The offline factor may be a set of random arrays comprising a plurality of random numbers. For example, in the example shown in fig. 2, the offline factors (U1, V1, W1) and (U2, V2, W2) respectively constitute a set of random arrays. In the on-line stage, the random number is combined with the service data to obtain a secret matrix of the service data, and on the basis of the secret matrix, all the participants can implement joint data processing. In each joint data processing, the random number group should be different in order to ensure data privacy.
When high-frequency joint data processing is performed among a plurality of participants, a random array needs to be generated in a large amount. On the premise of ensuring data privacy and security, the high availability of the random array needs to be realized, and the high availability of the joint data processing process is further improved. In embodiments of the present description, the random array may be generated using a trusted third party other than the plurality of parties, the trusted third party including a plurality of computing units. The embodiment of the specification provides a multi-party combined data processing method, wherein when the nth combined data processing is carried out, each participant respectively determines the same nth identifier of a plurality of participants at this time, and sends an acquisition request carrying the nth identifier to a trusted third party; the trusted third party generates corresponding random arrays aiming at the multiple participants respectively based on the initial seeds and the nth identification, and sends the multiple participants to the corresponding participants respectively when the multiple random arrays meet a preset relationship; after the multiple participants acquire the random array of the trusted third party, the joint data processing is carried out based on the respective service data and the random array.
In the embodiment of the description, a trusted third party is adopted to generate the random array, initial seeds are pre-configured for a plurality of computing units in the trusted third party, and when a participant sends an acquisition request, any one computing unit can generate the random array based on the initial seeds and the nth identifier. Therefore, privacy and safety of data of the participants can be guaranteed, and a high-availability environment can be provided for generating the random array.
Specific examples of the present specification are explained below.
Fig. 3 is a flowchart illustrating a multiparty federation data processing method using a trusted third party according to an embodiment. The method is used for carrying out privacy joint data processing on the business data of a plurality of participants. The trusted third party includes a plurality of computing units, and an initial seed for generating the random number is pre-configured in the computing units, and the initial seed may be configured by an operation of an administrator or may be configured in another manner. In this embodiment, the plurality of participants and the plurality of computing units may be implemented by any device, apparatus, platform, apparatus cluster, etc. having computing and processing capabilities. For convenience of description, two participants are exemplified in the following examples. For example, the two parties are a first party a and a second party B, respectively. The method of the present embodiment includes steps S310 to S340.
Step S310, when performing the nth joint data processing, the first party a determines the nth identifier of this time, the second party B determines the nth identifier of this time, and the nth identifiers of the first party a and the second party B are the same.
Wherein n is a natural number. Different times of joint data processing correspond to different identifications, for example, the nth identification is different from the (n + 1) th identification and the (n-1) th identification. The nth identifier may be represented by uuid, for example, uuid corresponding to the 1 st joint data processing may be valued as 1, uuid corresponding to the 2 nd joint data processing may be valued as 2, uuid corresponding to the 3 rd joint data processing may be valued as 3, and so on.
The nth joint data processing can be well defined among the multiple participants through various ways. In the case of performing the nth joint data processing, it is understood that the nth joint data processing is started or the nth joint data processing is ready to be performed. The process of the nth joint data processing has been described above, and is not described herein again.
When determining the nth identifier that is the same for a plurality of participants at this time, any one of the participants, for example, the first participant a, may determine the nth identifier based on the current value of the counter owned by the first participant a.
The counters owned by the multiple participants a are the first counter, the counters owned by the second participant B are the second counter, and the initial values of the counters owned by the multiple participants are the same, and the values of the multiple counters are updated once in each process of the joint data processing, for example, the count of each time may be increased by 1 or decreased by 1, and so on.
In a specific embodiment, when determining the nth identifier, the first party a may directly determine the current value of the first counter as the nth identifier, or may determine the nth identifier based on a hash value of the current value of the first counter. For example, the hash value of the current value of the first counter may be directly used as the nth identifier, or may be used as the nth identifier after being subjected to preset transformation.
Step S320, the first party a generates a first obtaining request carrying the nth identifier and sends the first obtaining request to the trusted third party, the second party B generates a second obtaining request carrying the nth identifier and sends the second obtaining request to the trusted third party, and the trusted third party receives the obtaining requests sent by the first party a and the second party B, respectively.
The time when the first party a and the second party B generate the acquisition request may be prior or simultaneous. The first get request may be in an existing request format, and the nth identifier is added to a first specified field, e.g., a data field, of the first get request. The second specified field in the first acquisition request may also have a specified identifier added to identify that the request is an acquisition random array.
In one embodiment, the computing unit in the Trusted third party comprises a Trusted computing unit having a Trusted Execution Environment (TEE).
The isolation capability of the trusted computing unit can prevent other application programs from snooping and tampering the application programs and data in the trusted computing unit, and the computing safety is ensured. The trusted computing unit may be a trusted computing enclosure (Enclave), and may be implemented by using software guard extension (SGX) or Trust domain (Trust Zone) technology. For example, according to the SGX technique, a computing enclosure is formed by providing a series of CPU instruction codes, allowing user codes to create private memory regions with high access rights. Other applications, including the OS, BIOS, virtual machine systems, etc., cannot access the data in the enclosure, and thus cannot snoop and tamper with the state and data of the applications therein.
The trusted third party realized by using the trusted computing unit can provide random arrays for each participant more safely and reliably, and the processing safety is improved.
When sending the first acquisition request to the trusted third party, the first party a may specifically perform Remote Authentication (RA) with a trusted computing unit in the trusted third party, establish an RA channel, and send the first acquisition request to a corresponding trusted computing unit in the trusted third party through the RA channel. Specifically, the RA channel may be established after the remote authentication is passed. The RA authentication is confirmation of credibility of the trusted computing unit by the participant, and after the authentication is passed, the participant and the trusted computing unit can output data through a more secure RA channel.
In one embodiment, the trusted third party may further include a load balancing unit configured to load balance the computing tasks of the plurality of computing units. The load balancing unit can receive the acquisition requests sent by the multiple participants, determine the computing units to be forwarded according to the residual computing capacity of each computing unit, and forward the acquisition requests to the determined computing units to realize load balancing. For example, any first computing unit in the trusted third party may receive the first acquisition request forwarded by the load balancing unit.
Of course, the trusted third party may not include a load balancing unit, and each participant is directly connected to each computing unit. When the participant does not receive the returned random array after sending the acquisition request to a certain computing unit, the participant can send the acquisition request to other computing units.
In step S330, any one of the computing units in the trusted third party, for example, the first computing unit, generates respective corresponding random arrays for the multiple parties based on the initial seed and the nth identifier, where the random arrays include a first random array generated for the first party a and a second random array generated for the second party B, and the random arrays satisfy a preset relationship. The first computing unit then sends the first random number group to the first party a and the second random number group to the second party B. The first participant A and the second participant B respectively receive the first random array and the second random array returned by the first computing unit.
After receiving the first obtaining request (for example, the first obtaining request), the trusted third party may perform a step of generating respective corresponding random arrays for the plurality of parties based on the initial seed and the nth identifier. After receiving the first acquisition request, the trusted third party may also receive acquisition requests sent by other parties. When it is determined that the n-th identifier is carried in the acquisition request, the trusted third party may send the random array corresponding to the other party in the plurality of random arrays to the other party.
The acquisition request sent by the other participants may be sent after the first computing unit generates the random array, or may be sent before or simultaneously with the generation of the random array.
The first calculating unit may generate a random number seed of this time based on a combination of the initial seed and the nth identifier when generating random arrays corresponding to the plurality of participants, respectively, and generate random arrays corresponding to the plurality of participants, respectively, based on the random number seed.
When the random number seed of this time is generated, the initial seed and the nth identifier may be subjected to a combination manner such as splicing, exclusive or, addition, subtraction, or the like, so as to obtain the random number seed of this time. Thus, the nth identifiers are different in each joint data processing, and the random numbers are different. When the random number seeds are different, the difference between different times can be ensured based on the random number groups generated by the random number seeds.
When the random arrays corresponding to the multiple participants are respectively generated, the random array corresponding to each participant can be determined by utilizing a preset relation between a pseudo-random algorithm and the multiple random arrays based on the initial seed and the nth identifier. The predetermined relationship between the plurality of random arrays may be predetermined. If the random number array comprises a plurality of random number matrixes, when the random number array is determined, the determination can be further based on the number of preset matrixes and the number of preset matrix dimensions contained in the random number array.
For example, the preset relationship may be a × b = c, or aTB = c or other preset relationship. The following description will be given taking as an example that the preset relationship is a × b = c. Assuming that the random array corresponding to the first participant a includes a0, B0 and c0, and the random array corresponding to the second participant B includes a1, B1 and c1, a = a0+ a1, B = B0+ B1 and c = c0+ c1, the preset relationship between the two random arrays is satisfied. When the number of the participants is more than two, the following relation is satisfied between the random arrays of the participants:
(a0 + a1 + a2…)(b0 + b1 + b2…) = (c0 + c1 + c2 …)
wherein, the random numbers with the same number are contained in the random array of the same participant, for example, a2, b2 and c2 belong to the same participant. The above-mentioned a0, b0 and c0, a1, b1 and c1, etc. may be random numbers or random number matrices.
In specific implementation, a random number seed may be generated based on the initial seed and the nth identifier, and a random array corresponding to each participant is determined based on the random number seed by using a pseudo-random algorithm and the preset relationship.
When determining the random array corresponding to each participant, the following steps 1 to 3 may be specifically included.
Step 1: and respectively generating random arrays corresponding to the multiple participants by using a pseudo-random algorithm, wherein each random array comprises multiple random number matrixes, a random number matrix to be corrected and a random number matrix not to be corrected. For example, random number matrices a0, b0, and c0 are generated for the first participant a*Generating random number matrices a1, B1, and c1 for the second participant B; wherein, c0*Is to be repairedThe positive random number matrices, a0, b0, a1, b1, and c1, are non-random number matrices to be modified. The dimension of each random number matrix is related to the dimension of the service data of the multiple participants, so that the dimension and the number of elements of each random number matrix can be preset.
The random number matrix to be modified may be a default, or may be randomly determined or determined in other ways.
Step 2: and determining the correction value of the random number matrix to be corrected by utilizing the preset relation among the plurality of random arrays based on the random number matrix which is not to be corrected in the plurality of random arrays. For example, for a first party a and a second party B, the following preset relationships exist for the random number matrices: (a 0+ a 1) (b 0+ b 1) = (c 0+ c 1). The random number matrix c0 to be corrected can be determined using the following formula*Correction value c 0:
c0 =(a0+a1)(b0+b1)- c1。
and step 3: and updating the corresponding random array by using the correction value. Specifically, the correction value may be used to directly replace the corresponding random number matrix to be corrected. For example, the value of C0 described above may be used in place of C0*The replaced random array is the random array generated for each participant.
The pseudo random algorithm is an algorithm in which the random number generated after each run is the same in the case where the random number generation method determines and the random number seed determines. The pseudo-random algorithm includes a pseudo-random algorithm based on Advanced Encryption Standard (AES), and the like.
For a plurality of computing units in the trusted third party, a random number determination mode based on a pseudo-random algorithm and an initial seed are set, and no matter which computing unit receives an acquisition request carrying the nth identifier, the same plurality of random arrays can be generated for a plurality of participants. When the calculation amount of a certain calculation unit is overloaded, other calculation units can easily bear the calculation task of generating the random array, and seamless switching among a plurality of calculation units is realized. And after a certain computing unit sends the random array to the first participant, if the computing unit fails, the second participant can acquire the corresponding random array from other computing units, so that the random arrays of the first participant and the second participant meet the preset relationship. Therefore, high availability during random array generation can be improved, and high availability during joint data processing is further improved.
In order to increase the security when transmitting data, a plurality of computing units may be provided with keys for a plurality of parties. When the first random array is sent to the first party a, the first computing unit may encrypt the first random array by using a key of the first party a, and send a result after encryption to the first party a. The same encryption operation may be performed when sending the second random array to the second party B.
When the keys of the participating parties in the plurality of computing units are configured by the administrator, the keys may be asymmetric keys, the public keys of the participating parties are configured in the computing units, and the participating parties perform decryption by the private keys. When the keys of the participating parties in the plurality of computing units are sent by the participating parties through the secure channel, the keys may be symmetric keys.
Step S340, a plurality of participants perform the joint data processing based on the service data and the random array of the plurality of participants by using a multi-party security calculation (MPC).
When the participating party includes the first participating party a and the second participating party B, the MPC may be utilized to perform the joint data processing based on the service data and the first random array of the first participating party a and the service data and the second random array of the second participating party B.
The random array can be used for carrying out data secret covering on the business data of the participant, so that the privacy of a user cannot be revealed by the processed business data. Multiple parties may utilize random arrays for secure multi-party computations. For example, a first participant a may determine first covert data based on the fusion of the service data of the first participant a and a first random array, and a second participant B may determine second covert data based on the fusion of the service data of the second participant B and a second random array, and perform the joint data processing this time based on the exchange between the first covert data and the second covert data by using MPC.
The joint data processing based on the exchange of covert data may include a variety of specific processes. Referring to fig. 2, the processing procedure is a joint data processing example based on secret sharing, and may further include a plurality of specific processing manners in practical application, which are not described herein again.
In the case where the plurality of calculation units are also provided with the keys of the plurality of parties, the random number group received by each party is a result of encryption using the key of each party. For example, the first random number set is the result after encryption with the key of the first party a, and the second random number set is the result after encryption with the key of the second party B.
When the joint data processing is performed, the first random array may be decrypted by using the secret key of the first party a to obtain a decrypted first random array; and decrypting the second random array by using the secret key of the second party B to obtain the decrypted second random array. And each participant performs the joint data processing based on the service data of the first participant A and the decrypted first random array, and the service data of the second participant B and the decrypted second random array by using the MPC.
When the participating parties adopt asymmetric encryption, the secret keys configured in the plurality of computing units are respective public keys of the plurality of participating parties. In decrypting, the first party a may decrypt the first random array using the first party a's corresponding private key. The second party B may decrypt the second random array using the second party B's corresponding private key.
The embodiment provided by the specification can obtain a consistent random array based on the initial seed and the nth identifier when the nth identifier is determined, so that the embodiment has high availability and a failover function. In addition, the generation mechanism of the random array not only ensures the one-to-one mapping between the nth identifier (uuid) and the random array, but also ensures the randomness of the random array. On the other hand, the embodiment of the specification does not need to rely on stateful components, and is simple to deploy.
Fig. 4 is a flowchart illustrating another multiparty federation data processing method using a trusted third party according to an embodiment. The method is used for carrying out privacy joint data processing on the business data of a plurality of participants. The trusted third party comprises a plurality of computing units, and initial seeds used for generating random numbers are configured in advance in the computing units. In this embodiment, the plurality of participants and the plurality of computing units may be implemented by any device, apparatus, platform, apparatus cluster, etc. having computing and processing capabilities. The method comprises the following steps:
and step S410, when the multiple participants perform the nth joint data processing, respectively determining the nth identifications which are the same for the multiple participants, respectively generating acquisition requests carrying the nth identifications, and sending the acquisition requests to the trusted third party.
Step S420, the computing unit in the trusted third party receives the acquisition requests sent by the multiple parties respectively, generates respective corresponding random arrays for the multiple parties based on the initial seed and the nth identifier, and sends the multiple random arrays to the corresponding parties respectively. The random arrays satisfy a preset relationship.
And step S430, the multiple participants respectively receive the random arrays returned by the trusted third party, and the MPC is utilized to perform the joint data processing based on the respective service data and the random arrays.
The first acquisition request, the first participant, the first random array, the "first" in the first computing unit, and the corresponding "second" are mentioned above only for convenience of distinction and description and are not meant to be limiting in any way.
The foregoing describes certain embodiments of the present specification, and other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims may be performed in a different order than in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily have to be in the particular order shown or in sequential order to achieve desirable results. In some embodiments, multitasking and parallel processing may also be possible or may be advantageous.
FIG. 5 is a schematic block diagram of a multi-party federated data processing apparatus utilizing a trusted third party according to an embodiment. The apparatus 500 is used for joint data processing for privacy of business data of a plurality of participants. The trusted third party includes a plurality of computing units, wherein an initial seed for generating a random number is pre-configured in the plurality of computing units. This embodiment of the apparatus corresponds to the embodiment of the method shown in fig. 3. The apparatus 500 is deployed in a first participant of any of a plurality of participants, and comprises:
a first determining module 510, configured to determine an nth identifier that is the same for the time of the multiple participating parties when performing nth joint data processing;
a first sending module 520, configured to generate a first obtaining request carrying the nth identifier, and send the first obtaining request to the trusted third party;
a first receiving module 530, configured to receive a first random array returned by the trusted third party; a computing unit in the trusted third party generates corresponding random arrays aiming at a plurality of participants respectively based on the initial seeds and the nth identification, and the plurality of random arrays meet a preset relationship;
the first processing module 540 is configured to perform, by using the MPC, the joint data processing based on the service data and the first random array of the first participant and the service data and the random array of each of the other participants.
In an embodiment, the first determining module 510 is specifically configured to:
determining the nth identifier based on the current value of a first counter owned by the first participant; the initial values of the counters owned by the multiple participants are the same, and the values of the multiple counters are updated once in the process of each joint data processing.
In one embodiment, the first determining module 510, when determining the nth identifier, includes:
directly determining the current value of the first counter as the nth identifier;
or, the nth identifier is determined based on the hash value of the current numerical value of the first counter.
In one embodiment, the business data includes at least one of the following characteristics of a plurality of objects: basic attribute information, incidence relation information, interaction information and historical behavior information; the object comprises one of the following categories: user, commodity, event.
In one embodiment, the plurality of computing units are further configured with keys of a plurality of parties, and the first random number group is a result of encryption by the key of the first party; the first processing module 540 is specifically configured to:
decrypting the first random array by using the secret key of the first party to obtain a decrypted first random array;
and performing the joint data processing based on the service data and the decrypted first random array of the first participant, and the service data and the decrypted random array of the other participants by using the MPC.
In one embodiment, the keys configured in the plurality of computing units are respective public keys of the plurality of parties; the first processing module 540, when decrypting the first random array using the key of the first party, includes:
decrypting the first random array using a corresponding private key of the first party.
In an embodiment, the first processing module 540 is specifically configured to:
determining first covert data based on the fusion of the business data of the first party and the first random array;
and performing the joint data processing based on the exchange between the first secret data and the secret data of other participants by using the MPC.
In one embodiment, the computing unit in the trusted third party comprises a trusted computing unit having a trusted execution environment TEE.
In one embodiment, the first sending module 520, when sending the first obtaining request to the trusted third party, includes:
performing remote authentication RA with a trusted computing unit in the trusted third party, and establishing an RA channel;
and sending the first acquisition request to a corresponding trusted computing unit in the trusted third party through the RA channel.
FIG. 6 is a schematic block diagram of another data processing apparatus utilizing a trusted third party according to an embodiment. The apparatus 600 is used for joint data processing for privacy of business data of a plurality of participants. The trusted third party includes a plurality of computing units, wherein an initial seed for generating the random number is pre-configured in the plurality of computing units. This embodiment of the apparatus corresponds to the embodiment of the method shown in fig. 3. The apparatus 600 is deployed in any first computing unit in the trusted third party, and includes:
a second receiving module 610, configured to receive a first obtaining request sent by a first participant in the multiple participants, where the first obtaining request carries an nth identifier; the nth identification is the same identification determined by a plurality of participants in the nth joint data processing;
a first generating module 620, configured to generate, based on the initial seed and the nth identifier, respective corresponding random arrays for the multiple parties, including a first random array generated for the first party, where the multiple random arrays satisfy a preset relationship;
a second sending module 630, configured to send the first random array to the first participant, so that the first participant and other participants perform the joint data processing based on their respective service data and random arrays by using MPC.
In an embodiment, the second receiving module 610 is further configured to receive an acquisition request sent by another participant;
the second sending module 630 is further configured to, when it is determined that the n-th identifier is carried in the acquisition request, send a random array corresponding to the other party in the plurality of random arrays to the other party.
In an embodiment, the first generating module 620 is specifically configured to:
generating random number seeds of this time based on the combination of the initial seeds and the nth identifier;
and respectively generating corresponding random arrays for a plurality of participants based on the random number seeds.
In an embodiment, the first generating module 620 is specifically configured to:
and determining a random array corresponding to each participant by utilizing a preset relation between a pseudo-random algorithm and a plurality of random arrays based on the initial seed and the nth identifier.
In one embodiment, the first generating module 620, when determining the random array corresponding to each participant, further includes:
respectively generating random arrays corresponding to a plurality of participants by utilizing a pseudo-random algorithm, wherein each random array comprises a plurality of random number matrixes, a random number matrix to be corrected and a random number matrix not to be corrected;
determining a correction value of a random number matrix to be corrected by utilizing a preset relation among a plurality of random arrays based on the random number matrix not to be corrected in the plurality of random arrays;
and updating the corresponding random array by using the correction value.
In one embodiment, a plurality of computing units are also configured with respective keys of a plurality of parties; the second sending module 630 is specifically configured to:
and encrypting the first random array by using the secret key of the first party, and sending the encrypted result to the first party.
In one embodiment, the trusted third party further comprises a load balancing unit (not shown in the figure);
the second receiving module 610 is specifically configured to: and receiving a first acquisition request forwarded by a load balancing unit, wherein the first acquisition request is sent by a first participant in a plurality of participants.
The above device embodiments correspond to the method embodiments, and specific descriptions may refer to descriptions of the method embodiments, which are not repeated herein. The device embodiment is obtained based on the corresponding method embodiment, has the same technical effect as the corresponding method embodiment, and for the specific description, reference may be made to the corresponding method embodiment.
FIG. 7 is a schematic block diagram of a multi-party federated data processing system utilizing a trusted third party, according to an embodiment. The system 700 is used for privatized federated data processing of business data of a plurality of participants, and the system 700 includes a trusted third party 710 and a plurality of participants 720. The trusted third party 710 includes a plurality of computing units 711, in which initial seeds for generating random numbers are pre-configured;
the multiple participants 720 are configured to determine the same nth identifier of the multiple participants at this time respectively when performing nth joint data processing, generate acquisition requests carrying the nth identifier respectively, and send the acquisition requests to the trusted third party 710;
a computing unit in the trusted third party 710, configured to receive the obtaining requests sent by the multiple parties 720, respectively, generate corresponding random arrays for the multiple parties 720 based on the initial seed and the nth identifier, and send the random arrays to the corresponding parties; the random arrays meet a preset relationship;
and the multiple participants 720 are configured to receive the random arrays returned by the trusted third party 710, and perform the joint data processing based on the respective service data and the random arrays by using the MPC.
The above system embodiment is obtained based on the above method embodiment, and specific descriptions may refer to descriptions in the method embodiment section, which are not described herein again. The system embodiment and the corresponding method embodiment have the same technical effects, and specific descriptions can be found in the corresponding method embodiment.
Embodiments of the present specification also provide a computer-readable storage medium having a computer program stored thereon, which, when executed in a computer, causes the computer to perform the method of any one of fig. 1 to 4.
The present specification also provides a computing device, including a memory and a processor, where the memory stores executable code, and the processor executes the executable code to implement the method described in any one of fig. 1 to 4.
The embodiments in the present specification are described in a progressive manner, and the same and similar parts among the embodiments are referred to each other, and each embodiment focuses on the differences from the other embodiments. In particular, for the storage medium and the computing device embodiments, since they are substantially similar to the method embodiments, they are described relatively simply, and reference may be made to some descriptions of the method embodiments for relevant points.
Those skilled in the art will recognize that, in one or more of the examples described above, the functions described in connection with the embodiments of the invention may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium.
The above-mentioned embodiments further describe the objects, technical solutions and advantages of the embodiments of the present invention in detail. It should be understood that the above description is only exemplary of the embodiments of the present invention, and is not intended to limit the scope of the present invention, and any modification, equivalent replacement, or improvement made on the basis of the technical solutions of the present invention should be included in the scope of the present invention.

Claims (22)

1. A multiparty federated data processing method using a trusted third party, configured to perform private federated data processing on business data of a plurality of participants, where the trusted third party includes a plurality of computing units, and an initial seed for generating a random number is preconfigured in the plurality of computing units, and the method is performed by a first participant of any of the plurality of participants, and includes:
when the nth joint data processing is carried out, the nth identification which is the same at this time of a plurality of participants is determined;
generating a first acquisition request carrying the nth identifier, and sending the first acquisition request to the trusted third party;
receiving a first random array returned by the trusted third party; a computing unit in the trusted third party generates corresponding random arrays aiming at a plurality of participants respectively based on the initial seeds and the nth identification, and the plurality of random arrays meet a preset relationship;
and performing the joint data processing on the basis of the service data and the first random array of the first participant and the respective service data and random arrays of other participants by using a multi-party security computing MPC.
2. The method of claim 1, wherein the step of determining the same nth identifier of the plurality of participants comprises:
determining the nth identifier based on the current value of a first counter owned by the first participant; the initial values of the counters owned by the multiple participants are the same, and the values of the multiple counters are updated once in the process of each joint data processing.
3. The method of claim 2, the step of determining the nth identity comprising:
directly determining the current value of the first counter as the nth identifier;
or, the nth identifier is determined based on the hash value of the current numerical value of the first counter.
4. The method of claim 1, the business data comprising at least one of the following characteristics of a plurality of objects: basic attribute information, incidence relation information, interaction information and historical behavior information; the object comprises one of the following categories: user, commodity, event.
5. The method of claim 1, further comprising configuring keys of each of a plurality of parties in a plurality of computing units, the first random number set being a result of encryption with the key of the first party; the step of performing the joint data processing includes:
decrypting the first random array by using the secret key of the first party to obtain a decrypted first random array; and performing the joint data processing based on the service data and the decrypted first random array of the first participant, and the service data and the decrypted random array of the other participants by using the MPC.
6. The method of claim 5, wherein the keys configured in the plurality of computing units are public keys of respective ones of the plurality of parties; the step of decrypting the first random number using the key of the first party comprises: decrypting the first random array using a corresponding private key of the first party.
7. The method according to claim 1, wherein the step of performing the joint data processing includes:
determining first covert data based on the fusion of the business data of the first party and the first random array;
and performing the joint data processing based on the exchange between the first secret data and the secret data of other participants by using the MPC.
8. The method of claim 1, the computing unit in the trusted third party comprising a trusted computing unit having a Trusted Execution Environment (TEE).
9. The method of claim 8, the step of sending it to the trusted third party comprising:
performing remote authentication RA with a trusted computing unit in the trusted third party, and establishing an RA channel;
and sending the first acquisition request to a corresponding trusted computing unit in the trusted third party through the RA channel.
10. A multiparty joint data processing method using a trusted third party, which is used for privacy-based joint data processing of business data of a plurality of participants, wherein the trusted third party comprises a plurality of computing units, and initial seeds for generating random numbers are pre-configured in the computing units, and the method is executed by any first computing unit in the trusted third party and comprises the following steps:
receiving a first acquisition request sent by a first participant in a plurality of participants, wherein the first acquisition request carries an nth identifier; the nth identification is the same identification determined by a plurality of participants in the nth joint data processing;
respectively generating random arrays corresponding to the multiple participants based on the initial seeds and the nth identifier, wherein the random arrays comprise a first random array generated for the first participant, and the multiple random arrays meet a preset relationship;
and sending the first random array to the first participant, so that the first participant and other participants perform the joint data processing based on the respective service data and the random array by using a multi-party security computing (MPC).
11. The method of claim 10, further comprising:
receiving an acquisition request sent by other participants;
and when the n-th identifier is determined to be carried in the acquisition request, sending the random arrays corresponding to the other participants in the plurality of random arrays to the other participants.
12. The method of claim 10, the step of generating respective corresponding random arrays for the plurality of participants, comprising:
generating random number seeds of this time based on the combination of the initial seeds and the nth identifier;
and respectively generating corresponding random arrays for a plurality of participants based on the random number seeds.
13. The method of claim 10, the step of generating respective corresponding random arrays for the plurality of participants, comprising:
and determining a random array corresponding to each participant by utilizing a preset relation between a pseudo-random algorithm and a plurality of random arrays based on the initial seed and the nth identifier.
14. The method of claim 13, the step of determining a random array for each participant, comprising:
respectively generating random arrays corresponding to a plurality of participants by utilizing a pseudo-random algorithm, wherein each random array comprises a plurality of random number matrixes, a random number matrix to be corrected and a random number matrix not to be corrected;
determining a correction value of a random number matrix to be corrected by utilizing a preset relation among a plurality of random arrays based on the random number matrix not to be corrected in the plurality of random arrays;
and updating the corresponding random array by using the correction value.
15. The method of claim 10, wherein a plurality of computing units are further configured with respective keys of a plurality of parties; the step of sending the first random number group to the first participant comprises:
and encrypting the first random array by using the secret key of the first party, and sending the encrypted result to the first party.
16. The method of claim 10, the trusted third party further comprising: a load balancing unit;
the step of receiving a first obtaining request sent by a first party of the multiple parties comprises:
and receiving a first acquisition request forwarded by the load balancing unit, wherein the first acquisition request is sent by a first participant in a plurality of participants.
17. A multiparty federated data processing method using a trusted third party, configured to perform private federated data processing on business data of a plurality of participants, where the trusted third party includes a plurality of computing units, and an initial seed for generating a random number is preconfigured in the plurality of computing units, the method comprising:
the multiple participants respectively determine the same nth identification of the multiple participants at this time when performing nth joint data processing, respectively generate acquisition requests carrying the nth identification, and send the acquisition requests to the trusted third party;
the computing unit in the trusted third party receives the acquisition requests sent by the multiple parties respectively, generates random arrays corresponding to the multiple parties respectively based on the initial seeds and the nth identification, and sends the random arrays to the corresponding parties respectively; the random arrays meet a preset relationship;
and the multiple participants respectively receive the random arrays returned by the trusted third party and perform the joint data processing based on the respective service data and the random arrays by utilizing the multi-party security calculation MPC.
18. A multiparty federated data processing apparatus utilizing a trusted third party for privatized federated data processing of business data of a plurality of participants, the trusted third party including a plurality of computing units, each of the plurality of computing units being preconfigured with an initial seed for generating a random number, the apparatus being deployed in a first participant of any of the plurality of participants, comprising:
the first determining module is configured to determine the nth identifier which is the same for the time of the multiple participants when the nth joint data processing is performed;
the first sending module is configured to generate a first obtaining request carrying the nth identifier and send the first obtaining request to the trusted third party;
the first receiving module is configured to receive a first random array returned by the trusted third party; a computing unit in the trusted third party generates corresponding random arrays aiming at a plurality of participants respectively based on the initial seeds and the nth identification, and the plurality of random arrays meet a preset relationship;
and the first processing module is configured to perform the joint data processing based on the service data and the first random array of the first participant and the respective service data and random arrays of other participants by using a multi-party security computing MPC.
19. A multiparty federated data processing apparatus using a trusted third party, configured to perform private federated data processing on business data of a plurality of participants, where the trusted third party includes a plurality of computing units, and an initial seed for generating a random number is preconfigured in the plurality of computing units, and the apparatus is deployed in an arbitrary first computing unit of the trusted third party, and includes:
the second receiving module is configured to receive a first acquisition request sent by a first participant in the multiple participants, wherein the first acquisition request carries an nth identifier; the nth identification is the same identification determined by a plurality of participants in the nth joint data processing;
the first generation module is configured to generate random arrays corresponding to the multiple parties respectively based on the initial seeds and the nth identification, the random arrays include a first random array generated for the first party, and the random arrays meet a preset relationship;
and the second sending module is configured to send the first random array to the first participant, so that the first participant and other participants perform the joint data processing based on respective service data and the random array by using a multi-party security computing MPC.
20. A multiparty federated data processing system utilizing a trusted third party for privatized federated data processing of business data of a plurality of participants, the system comprising a trusted third party and a plurality of participants; the trusted third party comprises a plurality of computing units, and initial seeds for generating random numbers are pre-configured in the computing units;
the multiple participants are used for respectively determining the nth identifications which are the same as the multiple participants at this time when the nth joint data processing is carried out, respectively generating acquisition requests carrying the nth identifications and sending the acquisition requests to the trusted third party;
the computing unit in the trusted third party is configured to receive acquisition requests sent by multiple participants respectively, generate random arrays corresponding to the multiple participants respectively based on the initial seeds and the nth identifier, and send the random arrays to the corresponding participants respectively; the random arrays meet a preset relationship;
and the multiple participants are used for respectively receiving the random arrays returned by the trusted third party and performing the joint data processing based on the respective service data and the random arrays by utilizing the multi-party security calculation MPC.
21. A computer-readable storage medium, on which a computer program is stored which, when executed in a computer, causes the computer to carry out the method of any one of claims 1-17.
22. A computing device comprising a memory having executable code stored therein and a processor that, when executing the executable code, implements the method of any of claims 1-17.
CN202110373247.8A 2021-04-07 2021-04-07 Multi-party combined data processing method and device by using trusted third party Active CN112800479B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110373247.8A CN112800479B (en) 2021-04-07 2021-04-07 Multi-party combined data processing method and device by using trusted third party

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110373247.8A CN112800479B (en) 2021-04-07 2021-04-07 Multi-party combined data processing method and device by using trusted third party

Publications (2)

Publication Number Publication Date
CN112800479A CN112800479A (en) 2021-05-14
CN112800479B true CN112800479B (en) 2021-07-06

Family

ID=75816357

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110373247.8A Active CN112800479B (en) 2021-04-07 2021-04-07 Multi-party combined data processing method and device by using trusted third party

Country Status (1)

Country Link
CN (1) CN112800479B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821824A (en) * 2021-08-27 2021-12-21 交通银行股份有限公司 Triple generation method and system based on careless linear evaluation (OLE)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106961336A (en) * 2017-04-18 2017-07-18 北京百旺信安科技有限公司 A kind of key components trustship method and system based on SM2 algorithms
CN109255247A (en) * 2018-08-14 2019-01-22 阿里巴巴集团控股有限公司 Secure calculation method and device, electronic equipment
CN110289955A (en) * 2019-06-25 2019-09-27 杭州趣链科技有限公司 A kind of key management method for serving certificate agency based on threshold cryptography model
CN110991655A (en) * 2019-12-17 2020-04-10 支付宝(杭州)信息技术有限公司 Method and device for processing model data by combining multiple parties
CN111327643A (en) * 2020-05-15 2020-06-23 支付宝(杭州)信息技术有限公司 Multi-party data sharing method and device
WO2020167333A1 (en) * 2019-02-12 2020-08-20 Visa International Service Association Fast oblivious transfers
CN112425136A (en) * 2018-05-16 2021-02-26 伊耐斯克泰克-计算机科学与技术系统工程研究所 Internet of things security using multi-party computing (MPC)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8010782B2 (en) * 2008-01-18 2011-08-30 Sap Ag Method and system for mediated secure computation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106961336A (en) * 2017-04-18 2017-07-18 北京百旺信安科技有限公司 A kind of key components trustship method and system based on SM2 algorithms
CN112425136A (en) * 2018-05-16 2021-02-26 伊耐斯克泰克-计算机科学与技术系统工程研究所 Internet of things security using multi-party computing (MPC)
CN109255247A (en) * 2018-08-14 2019-01-22 阿里巴巴集团控股有限公司 Secure calculation method and device, electronic equipment
WO2020167333A1 (en) * 2019-02-12 2020-08-20 Visa International Service Association Fast oblivious transfers
CN110289955A (en) * 2019-06-25 2019-09-27 杭州趣链科技有限公司 A kind of key management method for serving certificate agency based on threshold cryptography model
CN110991655A (en) * 2019-12-17 2020-04-10 支付宝(杭州)信息技术有限公司 Method and device for processing model data by combining multiple parties
CN111327643A (en) * 2020-05-15 2020-06-23 支付宝(杭州)信息技术有限公司 Multi-party data sharing method and device

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Shuffle to Baffle: Towards Scalable Protocols for Secure Multi-party Shuffling;Mahnush Movahedi etc;《IEEE》;20150723;第800-801页 *
同态加密技术及其在云计算隐私保护中的应用;李宗育等;《软件学报》;20180731;第2018卷(第7期);第1831-1847页 *
安全多方计算技术研究与应用;张卷美;《ZTE TECHNOLOGY JOURNAL》;20160229;第22卷(第1期);第23-25页 *

Also Published As

Publication number Publication date
CN112800479A (en) 2021-05-14

Similar Documents

Publication Publication Date Title
EP2721765B1 (en) Key generation using multiple sets of secret shares
CN106664205B (en) System and method for generating digital signature, non-transitory computer readable storage medium
WO2019013886A1 (en) Key attestation statement generation providing device anonymity
US20130230168A1 (en) Information processing device, information processing method, and computer readable medium
CN109728906B (en) Anti-quantum-computation asymmetric encryption method and system based on asymmetric key pool
WO2020051710A1 (en) System and process for managing digitized security tokens
JP5762232B2 (en) Method and system for selecting the order of encrypted elements while protecting privacy
CN113179158B (en) Multi-party combined data processing method and device for controlling bandwidth
CN113536379B (en) Private data query method and device and electronic equipment
CN112953974B (en) Data collision method, device, equipment and computer readable storage medium
EP4000216B1 (en) Cryptographic pseudonym mapping method, computer system, computer program and computer-readable medium
Athena et al. Survey on public key cryptography scheme for securing data in cloud computing
CN114124343A (en) Privacy-protecting risk scoring information query method, device, system and equipment
CN114443718A (en) Data query method and system
CN112800479B (en) Multi-party combined data processing method and device by using trusted third party
US20220286291A1 (en) Secure environment for cryptographic key generation
CN112003690B (en) Password service system, method and device
CN114514550A (en) Partitioning requests into blockchains
CN116596658A (en) Computation-controllable multiparty security credit assessment method and device
CN113746621B (en) Multi-chain architecture information sharing system based on block chain technology
CN113065156B (en) Multi-party combined data processing method and device for controlling time delay
JP3784055B2 (en) List matching method, network system, server and information terminal
CN113965310A (en) Method for realizing mixed privacy calculation processing based on controllable de-identification label
JP2013235535A (en) Data management system and data management program
CN115314204B (en) Random number generation method, device and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant