Heterogeneous data processing method, device and electronic device
Through the blinding processing and matching rules, the problem of user information leakage risk in heterogeneous data joint computing is solved, the security and compliance of data processing are improved, and the user experience is improved.
Patent Information
- Application Number
- CN202111462228.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-02
- Publication Date
- 2025-01-10
- Estimated Expiration
- 2041-12-02
AI Technical Summary
In joint computing of heterogeneous data, the prior art leads to an increase in user information leakage risk through sample alignment, affecting user experience and compliance risks.
The blinding processing method is adopted to obtain the blinded identifier set of each user through the collaborative side, and the matching process is performed according to the preset matching rules, and the identifier record information corresponding to the user side is generated, and it is sent back to the user side for differentiation. Construct data decryption and calculation to reduce the risk of information leakage.
Through blind processing, the risk of user information leakage is reduced, the security and compliance of heterogeneous data processing is improved, and the user experience is improved.
Smart Images

Figure CN114154196B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present application relate to the field of blockchain technology, and in particular to a heterogeneous data processing method, device and electronic device. Background Art
[0002] With the development of Internet technology, the interactions between institutions are becoming more and more frequent. When implementing financial services, it may involve the joint calculation of heterogeneous data between different institutions.
[0003] In the prior art, when performing joint computation of heterogeneous data, sample alignment can be performed first through privacy intersection to obtain plaintext identification information in the sample records shared by all parties, and then secure multi-party computation or federated learning algorithm can be performed on the data set corresponding to the plaintext identification information to achieve cross-institutional joint computation of heterogeneous data.
[0004] However, in real business, when performing sample alignment, the output is shared plaintext information, that is, all institutions participating in the calculation can obtain information shared by other institutions and themselves, increasing the risk of user information leakage, thereby increasing compliance risks and affecting the user experience. Summary of the invention
[0005] The embodiments of the present application provide a heterogeneous data processing method, device and electronic device to reduce the risk of user information leakage.
[0006] In a first aspect, an embodiment of the present application provides a heterogeneous data processing method, which is applied to a collaboration party, including:
[0007] Obtaining a set of blinded identifiers corresponding to the pending services sent by each user terminal after blinding processing;
[0008] Perform matching processing on each blinded identifier set according to a preset matching rule to obtain a matching identifier set;
[0009] Identifier record information corresponding to each user terminal is generated according to the matching identifier set and the blinded identifier sets, and the identifier record information corresponding to each user terminal is sent to the corresponding user terminal respectively, so that the user terminal performs heterogeneous data decryption calculation according to the received identifier record information to obtain the plaintext processing result of the service to be processed.
[0010] Optionally, performing matching processing on each blinded identifier set according to a preset matching rule to obtain a matching identifier set includes:
[0011] The blinded identifier sets corresponding to different user terminals are compared and processed to determine the intersection of the blinded identifier sets corresponding to the different user terminals, and obtain a matching identifier set.
[0012] Optionally, the generating the identifier record information corresponding to each user terminal according to the matching identifier set and each blinded identifier set includes:
[0013] Deleting the blinded identifiers corresponding to the matching identifier set in each blinded identifier set to obtain a private identifier set corresponding to each user terminal;
[0014] Mixing the matching identifier set and the private identifier set corresponding to each user terminal after the completion to obtain an alignment sample set;
[0015] For each alignment sample in the alignment sample set, if the alignment sample belongs to the matching identifier set, generating identifier record information corresponding to each user terminal according to a pre-stored first generation rule;
[0016] If the aligned sample belongs to the private identifier set corresponding to each user terminal, the identifier record information corresponding to each user terminal is generated according to a pre-stored second generation rule.
[0017] Optionally, if the aligned sample belongs to the matching identifier set, generating identifier record information corresponding to each user terminal according to a pre-stored first generation rule includes:
[0018] If the aligned sample belongs to the set of matching identifiers, randomly generate a pair of first private fragment data about the value 1;
[0019] Identifier record information corresponding to each of the user terminals is generated according to the alignment sample and the first private segment data.
[0020] Optionally, if the aligned sample belongs to a private identifier set corresponding to each user terminal, generating identifier record information corresponding to each user terminal according to a pre-stored second generation rule includes:
[0021] If the aligned sample belongs to the private identifier set corresponding to each of the user terminals, a pair of second private fragment data with respect to a value of 0 is randomly generated;
[0022] Identifier record information corresponding to each of the user terminals is generated according to the alignment sample and the second private segment data.
[0023] Optionally, the performing padding processing on the private identifier set corresponding to each user terminal according to a preset padding rule to obtain the private identifier set corresponding to each user terminal after padding includes:
[0024] Determine a target private identifier set having the largest number of private identifiers among the private identifier sets corresponding to the user terminals;
[0025] According to the number of private identifiers in the target private identifier set, other private identifier sets in the private identifier set corresponding to each user terminal except the target private identifier set are supplemented to obtain the supplemented private identifier set corresponding to each user terminal.
[0026] Optionally, after generating the identifier record information corresponding to each user terminal according to the matching identifier set and each blinded identifier set, the method further includes:
[0027] Performing conversion processing on the identifier record information corresponding to each of the user terminals according to a pre-stored hash function to obtain converted identifier record information;
[0028] The converted identifier record information is uploaded to a preset blockchain.
[0029] Optionally, before obtaining the blinded identifier set after blinding processing of the to-be-processed services sent by each user terminal, the method further includes:
[0030] Constructing a data transmission channel between the collaboration party terminal and each user terminal according to a preset channel construction rule;
[0031] Then the step of obtaining a set of blinded identifiers corresponding to the services to be processed sent by each user terminal after blinding processing includes:
[0032] A set of blinded identifiers corresponding to the services to be processed sent by each user terminal after blinding processing is obtained through a pre-built data transmission channel.
[0033] In a second aspect, an embodiment of the present application provides a heterogeneous data processing method, which is applied to a user end, including:
[0034] Perform blinding processing on the identifier data corresponding to the service to be processed according to the pre-stored blinding processing rules to obtain a blinded identifier set;
[0035] The blinded identifier set is sent to the collaboration party end, so that the collaboration party end performs matching processing according to the blinded identifier set sent by each user end to obtain a matching identifier set, and then generates identifier record information corresponding to each user end according to the matching identifier set and each blinded identifier set;
[0036] Receive a number of identifier record information sent by the collaboration party, and perform heterogeneous data decryption calculation according to the number of identifier record information to obtain a plaintext processing result of the service to be processed.
[0037] Optionally, performing blinding processing on the identifier data corresponding to the service to be processed according to a pre-stored blinding processing rule to obtain a blinded identifier set includes:
[0038] Determine the blinding parameter according to the preset blinding parameter processing rule;
[0039] Processing the blinding parameter and the identifier data corresponding to the service to be processed according to a preset hash function to obtain an initial blinding identifier set;
[0040] Generate a preset number of noise identifiers according to a preset noise generation rule, which are not repeated with the initial blinded identifier set;
[0041] A blinded identifier set is obtained according to the noise identifier and the initial blinded identifier set.
[0042] Optionally, determining the blinding parameter according to a preset blinding parameter processing rule includes:
[0043] Randomly determine a first initial blinding parameter, and simultaneously receive a second initial blinding parameter sent by another user terminal;
[0044] An XOR operation is performed on the first initial blinding parameter and the second initial blinding parameter to obtain a blinding parameter.
[0045] Optionally, the identifier record information includes an identifier position, and performing heterogeneous data decryption calculation according to the plurality of identifier record information to obtain a plaintext processing result of the service to be processed includes:
[0046] For each of the identifier record information, judging whether the identifier record information is a noise identifier according to the identifier position;
[0047] If the identifier record information is not a noise identifier, determining first initial data corresponding to the identifier position according to the identifier position and the identifier data corresponding to the service to be processed;
[0048] The first initial data and the second initial data sent by other users are jointly processed according to a preset joint calculation processing rule to obtain an intermediate result fragment corresponding to the identifier record information;
[0049] Aggregate the intermediate result fragments corresponding to each of the identifier record information to obtain an intermediate result, and decrypt the intermediate result according to a preset secure multi-party computing protocol to obtain a plaintext processing result of the business to be processed.
[0050] Optionally, the identifier record information includes sub-private shard data generated by the first private shard data or the second private shard data, and the first initial data and the second initial data sent by other user terminals are jointly processed according to a preset joint calculation processing rule to obtain an intermediate result shard corresponding to the identifier record information, including:
[0051] Slice the first initial data according to a preset slicing rule to obtain a plurality of first initial sub-data;
[0052] Sending a preset number of first initial sub-data among the plurality of first initial sub-data to other user terminals to obtain first remaining initial sub-data, and simultaneously receiving a preset number of second outgoing initial sub-data sent by the other user terminals, wherein the second outgoing initial sub-data is obtained by slicing the second sub-data in the other user terminals according to a preset slicing rule;
[0053] According to a preset private sharing protocol, the first remaining initial sub-data, the second externally sent initial sub-data, the first sub-private shard data, and the second remaining initial sub-data, the first externally sent initial sub-data, and the second sub-private shard data in the other user terminals are jointly calculated to obtain an intermediate result shard corresponding to the identifier record information, wherein the first sub-private shard data is the sub-private shard data contained in the identifier record information corresponding to the local user terminal, and the second sub-private shard data is the sub-private shard data contained in the identifier record information corresponding to the other user terminal.
[0054] Optionally, also include:
[0055] If the identifier record information is a noise identifier, the data corresponding to the identifier position is set to zero.
[0056] Optionally, after obtaining the plaintext processing result of the service to be processed, the method further includes:
[0057] Converting the plaintext processing result of the service to be processed according to a pre-stored hash function to obtain a converted plaintext processing result;
[0058] The converted plaintext processing result is uploaded to the preset blockchain.
[0059] In a third aspect, an embodiment of the present application provides a heterogeneous data processing device, which is applied to a collaborating party, including:
[0060] An acquisition module, used for acquiring a set of blinded identifiers corresponding to the services to be processed sent by each user terminal after blinding processing;
[0061] A processing module, used for performing matching processing on each blinded identifier set according to a preset matching rule to obtain a matching identifier set;
[0062] The processing module is also used to generate identifier record information corresponding to each user terminal based on the matching identifier set and the blinded identifier sets, and send the identifier record information corresponding to each user terminal to the corresponding user terminal respectively, so that the user terminal performs heterogeneous data decryption calculation according to the received identifier record information to obtain the plaintext processing result of the service to be processed.
[0063] In a fourth aspect, an embodiment of the present application provides a heterogeneous data processing device, applied to a user end, including:
[0064] A processing module, used for performing blind processing on the identifier data corresponding to the service to be processed according to a pre-stored blind processing rule to obtain a blinded identifier set;
[0065] A sending module, used to send the blinded identifier set to the collaboration party end, so that the collaboration party end performs matching processing according to the blinded identifier set sent by each user end to obtain a matching identifier set, and then generates identifier record information corresponding to each user end according to the matching identifier set and each blinded identifier set;
[0066] The processing module is also used to receive the plurality of identifier record information sent by the collaboration party, and perform heterogeneous data decryption calculation based on the plurality of identifier record information to obtain the plaintext processing result of the service to be processed.
[0067] In a fifth aspect, an embodiment of the present application provides an electronic device, comprising: a processor, and a memory communicatively connected to the processor;
[0068] The memory stores computer-executable instructions;
[0069] The processor executes the computer-executable instructions stored in the memory to implement the heterogeneous data processing method as described in any one of the first aspect and the second aspect.
[0070] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, in which computer-executable instructions are stored. When a processor executes the computer-executable instructions, a heterogeneous data processing method as described in any one of the first and second aspects is implemented.
[0071] In a fifth aspect, an embodiment of the present application provides a computer program product, including a computer program, which, when executed by a processor, implements the heterogeneous data processing method as described in any one of the first and second aspects.
[0072] The embodiments of the present application provide a heterogeneous data processing method, device and electronic device. After adopting the above scheme, the collaborative party end can first obtain the blinded identifier set after blinding processing corresponding to the pending business sent by each user end, and then match each blinded identifier set according to a preset matching rule to obtain a matching identifier set, and generate identifier record information corresponding to each user end according to the matching identifier set and each blinded identifier set, and send the identifier record information corresponding to each user end to the corresponding user end respectively, so that the user end performs heterogeneous data decryption calculation according to the received identifier record information to obtain the plaintext processing result of the pending business. The sample alignment method is realized by adding a collaborative party end that only processes non-sensitive ciphertext data after blinding processing, which overcomes the problem of needing to disclose the sample identifier set shared by multiple parties in the traditional sample alignment method, reduces the risk of user information leakage, improves the security of blinding processing of heterogeneous data, reduces compliance risks, and thus improves the user experience. BRIEF DESCRIPTION OF THE DRAWINGS
[0073] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative labor.
[0074] Figure 1 A schematic diagram of the architecture of an application system for the heterogeneous data processing method provided in an embodiment of the present application;
[0075] Figure 2 A schematic diagram of a process for processing heterogeneous data provided in an embodiment of the present application;
[0076] Figure 3 A schematic diagram of a flow chart of a heterogeneous data processing method provided in another embodiment of the present application;
[0077] Figure 4 A schematic diagram of the structure of a heterogeneous data processing device provided in an embodiment of the present application;
[0078] Figure 5 A schematic diagram of the hardware structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0079] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0080] The terms "first", "second", "third", "fourth", etc. (if any) in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments of the present application described herein can also include other sequential instances in addition to those illustrated or described. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units that are clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
[0081] In the prior art, different organizations can be represented by different terminal devices (which can be user terminals), and different user terminals can each have heterogeneous data sets with different fields. Without providing each other with their own plaintext sensitive data, sample alignment can be performed based on the identifiers of the data set records, and then aggregate statistical operations can be performed. For example, user terminal Party A has 100 records (id, X1) about sensitive data X1, and user terminal Party B has 50 records (id, X2) about sensitive data X2. The size of the id set jointly owned by Party A and Party B is 40. After sample alignment, the 40 records jointly owned can be found, and the sum of the sensitive data products of the 40 records Y=SUM(X1*X2) can be calculated, so as to realize the joint operation of heterogeneous data. However, in real business, when sample alignment is performed, the output is the common plaintext information, that is, all organizations participating in the calculation can obtain the information shared by other organizations and themselves, which increases the risk of user information leakage, thereby increasing the compliance risk and affecting the user experience.
[0082] Based on the above technical problems, the present application realizes sample alignment by adding a collaborating party that only processes non-sensitive ciphertext data after blinding processing. This overcomes the problem of traditional sample alignment methods that require disclosure of a set of sample identifiers shared by multiple parties, reduces the risk of user information leakage, improves the security of blind processing of heterogeneous data, reduces compliance risks, and thereby improves user experience.
[0083] Figure 1A schematic diagram of the architecture of an application system for the heterogeneous data processing method provided in an embodiment of the present application, such as Figure 1 As shown, the application system may include: a protocol party end 101 and different user ends 102, wherein the user ends 102 may be two, three or more. Each user end 102 may blind the identifier set corresponding to the service to be processed stored locally to obtain a blind identifier set, and then send the blind identifier set to the protocol party end 101 for sample alignment processing to generate identifier record information corresponding to each user end. The identifier record information corresponding to each user end is then sent to the corresponding user end, so that the user end performs heterogeneous data decryption calculation according to the received identifier record information to obtain the plaintext processing result of the service to be processed.
[0084] The collaboration party end 101 may be a separate server or a server cluster. The user end 102 may be a separate server or a server cluster, or may be a personal computer, a smart phone, a tablet or other device. Each user end may be the same device or different devices.
[0085] The technical solution of the present application is described in detail with specific embodiments below. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described in detail in some embodiments.
[0086] Figure 2 1 is a flow chart of a heterogeneous data processing method provided in an embodiment of the present application. The method of this embodiment can be executed by the protocol party terminal 101. Figure 2 As shown, the method of this embodiment may include:
[0087] S201: Obtain a set of blinded identifiers corresponding to the services to be processed sent by each user terminal after blinding processing.
[0088] In this embodiment, when implementing the pending service, data corresponding to the pending service may be first obtained from different user terminals, and then the obtained heterogeneous data corresponding to the pending service may be jointly processed to implement the pending service.
[0089] However, since there may be multiple data in different user terminals, some data may be used and some data may not be used when implementing the service to be processed. Therefore, it is necessary to perform sample alignment on the data to obtain the relevant data needed in the process of implementing the service to be processed. In order to improve the efficiency of sample alignment, a protocol party terminal can be added to implement the sample alignment process by sending a set of identifiers representing data from the user terminal to the protocol party terminal, thereby improving the processing efficiency of the sample alignment process.
[0090] However, in the process of each user end sending the identifier set to the agreement party end, data leakage may occur. In order to reduce the risk of data leakage, each user end can first blind the identifier set corresponding to the service to be processed, obtain a blinded identifier set after blinding, and then send the blinded identifier set to the collaboration party end.
[0091] There may be multiple blinded identifiers in the blinded identifier set, and each blinded identifier is a data identifier after blinding processing. Exemplarily, the data identifier may be a data id, and the blinded identifier may be an id after blinding processing. For example, the data identifier before blinding processing may be A0001, and the data identifier after blinding processing may be 0xAF12C3.
[0092] In addition, the blinding processing method can be customized according to the actual application scenario and will not be defined in detail here.
[0093] S202: performing matching processing on each blinded identifier set according to a preset matching rule to obtain a matching identifier set.
[0094] In this embodiment, after obtaining the blinded identifier sets after blinding processing of each user terminal, matching processing may be performed on the blinded identifier sets of different user terminals to obtain matching identifier sets containing the same identifier information in different blinded identifier sets.
[0095] Further, matching processing is performed on each blinded identifier set according to a preset matching rule to obtain a matching identifier set, which may specifically include:
[0096] The blinded identifier sets corresponding to different user terminals are compared and processed to determine the intersection of the blinded identifier sets corresponding to the different user terminals, and obtain a matching identifier set.
[0097] Specifically, the blinded identifier sets corresponding to different user terminals may be compared to determine the same identifier information in the blinded identifier sets corresponding to different user terminals, and then all the same identifier information may be allocated to a new set to obtain a matching identifier set.
[0098] S203: Generate identifier record information corresponding to each user terminal according to the matching identifier set and each blinded identifier set, and send the identifier record information corresponding to each user terminal to the corresponding user terminal, so that the user terminal performs heterogeneous data decryption calculation according to the received identifier record information to obtain the plaintext processing result of the service to be processed.
[0099] In this embodiment, after obtaining the matching identifier set, identifier record information corresponding to each user terminal can be generated according to each blinded identifier information in the matching identifier set and the blinded identifier information in each blinded identifier set, and then the identifier record information corresponding to each user terminal is sent to the corresponding user terminal respectively, so that the user terminal processes according to the identifier record information to obtain the plaintext processing result of the service to be processed.
[0100] Further, generating identifier record information corresponding to each user terminal according to the matching identifier set and each blinded identifier set may specifically include:
[0101] The blinded identifiers corresponding to the matching identifier set in each blinded identifier set are deleted to obtain a private identifier set corresponding to each user terminal.
[0102] Specifically, the blinded identifiers corresponding to the matching identifier set in the blinded identifier set corresponding to the user end may be removed respectively to obtain the private identifier set corresponding to each user end.
[0103] In addition, the number of private identifier sets may be zero, one, or more. If the blinded identifier sets in all user terminals are the same, the number of private identifier sets is zero. If only one user terminal's blinded identifier set contains other blinded identifiers except the blinded identifiers in the matching identifier set, the number of private identifier sets is one.
[0104] The private identifier sets corresponding to the user terminals are padded according to a preset padded rule to obtain the private identifier sets corresponding to the user terminals after padded.
[0105] Specifically, when completing the private identifier set, the specific processing process may be:
[0106] Determine a target private identifier set having the largest number of private identifiers among the private identifier sets corresponding to the user terminals.
[0107] According to the number of private identifiers in the target private identifier set, other private identifier sets in the private identifier set corresponding to each user terminal except the target private identifier set are supplemented to obtain the supplemented private identifier set corresponding to each user terminal.
[0108] Correspondingly, the target private identifier set containing the largest number of private identifiers can be first determined from the private identifier set, and then the number of private identifiers in other private identifier sets can be padded to be consistent with the private identifier data in the target private identifier set, that is, the number of private identifiers contained in all private identifier sets after padded is consistent, which provides convenience for subsequent analysis and processing. Among them, the private identifiers in the private identifier set are blinded identifiers after blinding processing.
[0109] When the private identifier set is being supplemented, the supplementation may be performed by generating a noise identifier that is not repeated with the existing blinded identifier using the existing noise identifier generation rule.
[0110] The matching identifier set and the private identifier set corresponding to each user terminal after the completion are mixed to obtain an aligned sample set.
[0111] Specifically, after the private identifier set is completed, in order to improve the security of the subsequent data processing process, the data in the matching identifier set can be randomly mixed with the data in the private identifier set corresponding to each user terminal after completion to obtain a mixed alignment sample set. Each alignment sample in the alignment sample set has a corresponding sample number.
[0112] By mixing the data to disrupt the previous order of data, the possibility of data leakage is further reduced, thereby improving the security of data transmission.
[0113] For each alignment sample in the alignment sample set, if the alignment sample belongs to the matching identifier set, identifier record information corresponding to each user terminal is generated according to a pre-stored first generation rule.
[0114] If the aligned sample belongs to the private identifier set corresponding to each user terminal, the identifier record information corresponding to each user terminal is generated according to a pre-stored second generation rule.
[0115] Specifically, after obtaining the aligned sample set after the mixing process, an aligned sample can be randomly selected from the aligned sample set, and then the original source of the aligned sample can be determined based on the sample identifier contained in the aligned sample, that is, whether the aligned sample belongs to the matching identifier set or the private identifier set corresponding to each user terminal is determined, and then the corresponding generation rule is determined based on the original source of the aligned sample, and the identifier record information corresponding to each user terminal is generated according to the corresponding generation rule.
[0116] Further, if the aligned sample belongs to the matching identifier set, generating identifier record information corresponding to each user terminal according to a pre-stored first generation rule may specifically include:
[0117] If the aligned sample belongs to the matching identifier set, a pair of first private fragment data with respect to the value 1 is randomly generated.
[0118] Identifier record information corresponding to each of the user terminals is generated according to the alignment sample and the first private segment data.
[0119] In addition, if the aligned sample belongs to the private identifier set corresponding to each user terminal, generating identifier record information corresponding to each user terminal according to a pre-stored second generation rule may specifically include:
[0120] If the aligned sample belongs to the private identifier set corresponding to each user terminal, a pair of second private fragment data with respect to the value 0 is randomly generated.
[0121] Identifier record information corresponding to each of the user terminals is generated according to the alignment sample and the second private segment data.
[0122] Among them, the first private shard data about the value 1 is a group of first private shard data whose sum is 1, and the number of the first private shard data corresponds to the number of user terminals. Exemplarily, if there are two user terminals, when generating the first private shard data about the value 1, a random number r_w is first randomly generated, and then the first private shard data is generated as selector_w=(r_w, 1-r_w). Similarly, the second private shard data about the value 0 is a group of second private shard data whose sum is 0, and the number of the second private shard data corresponds to the number of user terminals. Exemplarily, if there are two user terminals, when generating the second private shard data about the value 0, a random number r_w is first randomly generated, and then the second private shard data is generated as selector_w=(r_w,-r_w).
[0123] After obtaining the first private segment data or the second private segment data, identifier record information corresponding to each user terminal can be generated based on the aligned sample and the obtained first private segment data or the second private segment data, that is, the identifier record information after deleting the information related to other user terminals, and then the generated identifier record information corresponding to the user terminal is sent to the corresponding user terminal.
[0124] For example, it is assumed that there are two user terminals, namely user terminal A and user terminal B. User terminal A has four data samples. Table 1 is a data sample table of user terminal A. The data samples respectively include identifier information and corresponding specific data. Among them, the specific data in user terminal A is income level (income).
[0125] Table 1 Data sample table of user terminal A
[0126] id income A0001 100 A0002 300 A0003 200 A0004 150
[0127] User terminal B has six data samples. Table 2 is a data sample table of user terminal B. The data samples include identifier information and corresponding specific data. Among them, the specific data in user terminal B is tax (tax_rate).
[0128] Table 2 Data sample table of user B
[0129] Id tax_rate A0001 0.10 A0003 0.35 A0004 0.2 A0005 0.25 A0007 0.3 A0009 0.22
[0130] Then user terminal A can perform blind processing on the identifier information (i.e., Id) of user terminal A to obtain the blinded identifier set id_bn_A = {identifier position pos_A_i, identifier data id_bn_A_i} corresponding to user terminal A. User terminal B can perform blind processing on the identifier information (i.e., Id) of user terminal B to obtain the blinded identifier set id_bn_B = {identifier position pos_B_i, identifier data id_bn_B_i} corresponding to user terminal B. Then user terminal A and user terminal B can send their respective blinded identifier sets to the collaborative terminal C. After receiving the blinded identifier sets sent by user terminal A and user terminal B, the collaborative terminal C can compare the blinded identifier sets of user terminal A and user terminal B, find all identical blinded identifiers, and obtain the matching identifier set id_match. Correspondingly, there are three identical blinded identifiers in the matching identifier set id_match, namely, the blinded identifiers 0xAF12C3, 0xCC6712, and 0x2E341B obtained after blinding A0001, A0003, and A0004. In addition, two private identifier sets can be obtained, namely, the private identifier set id_rest_A corresponding to user end A and the private identifier set id_rest_B corresponding to user end B. And the collaborating party end C cannot see the plaintext identifier, but can only see the blinded identifier, which reduces the risk of identifier information leakage.
[0131] Furthermore, the collaborating party C can select the larger set of id_rest_A and id_rest_B, size_rest_large = max(size(id_rest_A), size(id_rest_B)) records, and then add non-repetitive noise identifiers to the corresponding smaller set to pad it to size_rest_large, and obtain two padded sets of id_rest_A and id_rest_B of the same size. Among them, the corresponding identifier position field pos_A_i or pos_B_i is incremented accordingly. Correspondingly, user terminal B has 2 more data than user terminal A, and the collaborating party C will insert 2 noise identifiers into id_rest_A to make its data volume the same as id_rest_B. Then, the collaborating party C can shuffle the elements in the three sets of id_match, id_rest_A and id_rest_B into a complete alignment sample set BAS, and then randomly select the wth group of alignment samples from the alignment sample set. If the wth group of alignment samples comes from id_match, a pair of first secret fragment data selector_w=(r_w, 1–r_w) about the value 1 is generated, where r_w is a random number independently generated each time, and the final alignment sample is (idx_w, pos_A_i, pos_B_j, selector_w). Among them, the alignment sample is also a blinded sample alignment set.
[0132] In addition, if the alignment sample of the wth group is not from id_match, a group of data is randomly selected from id_rest_A and id_rest_B respectively, and a pair of second secret fragment data about data 0 is generated selector_w = (r_w, -r_w), where r_w is a random number independently generated each time, and the final alignment sample is (idx_w, pos_A_i, pos_B_j, selector_w). Among them, each data selection is a sampling without replacement, and the previously selected data will not be selected next time. Then the collaborative party C can obtain the identifier record information corresponding to the user terminal A and the user terminal B according to the alignment sample (idx_w, pos_A_i, pos_B_j, selector_w), that is, the identifier record information corresponding to the user terminal A is (idx_w, pos_A_i, selector_w[0]), and the identifier record information corresponding to the user terminal B is (idx_w, pos_B_j, selector_w[1]). The collaborative party C can send (idx_w, pos_A_i, selector_w[0]) to the user terminal A through the preset Channel_AC, and can send (idx_w, pos_B_j, selector_w[1]) to the user terminal B through the preset Channel_BC.
[0133] Furthermore, the pending business may be a business such as transfer, balance inquiry, loan, etc. In this embodiment, the pending business is to calculate the total tax amount, that is, the total tax amount is determined by the expression SUM(income*tax_rate). Therefore, after receiving the identifier record information, user terminal A and user terminal B can perform heterogeneous data decryption calculation according to the received (idx_w, pos_A_i, selector_w[0]) and (idx_w, pos_B_j, selector_w[1]) to obtain the total tax amount.
[0134] After adopting the above scheme, the collaborative party end can first obtain the blinded identifier set after blinding processing corresponding to the pending business sent by each user end, and then match each blinded identifier set according to the preset matching rules to obtain the same identifier information, and obtain the matching identifier set based on the same identifier information and each blinded identifier set, and then generate the identifier record information corresponding to each user end according to the matching identifier set and each blinded identifier set, and send the identifier record information corresponding to each user end to the corresponding user end respectively, so that the user end performs heterogeneous data decryption calculation according to the received identifier record information to obtain the plaintext processing result of the pending business. The sample alignment method is realized by adding a collaborative party end that only processes non-sensitive ciphertext data after blinding processing, which overcomes the problem of needing to disclose the sample identifier set shared by multiple parties in the traditional sample alignment method, reduces the risk of user information leakage, improves the security of heterogeneous data processing, reduces compliance risks, and thus improves the user experience.
[0135] based on Figure 2 The method, the examples of this specification also provide some specific implementation plans of the method, which are described below.
[0136] In addition, in another embodiment, after generating the identifier record information corresponding to each user terminal according to the matching identifier set and each blinded identifier set, the method may further include:
[0137] The identifier record information corresponding to each of the user terminals is converted according to a pre-stored hash function to obtain the converted identifier record information.
[0138] The converted identifier record information is uploaded to a preset blockchain.
[0139] In this embodiment, in order to improve the security of data, after obtaining the identifier record information, the identifier record information can be uploaded to the preset blockchain to prevent tampering by other user terminals and support post-audit. In addition, after each user terminal obtains the blinded blinded identifier set, the blinded identifier set can also be converted according to the pre-stored hash function to obtain the converted blinded identifier set, and then the converted blinded identifier set can be uploaded to the preset blockchain. Among them, the blockchain can be implemented by existing methods, which will not be limited in detail here.
[0140] In addition, in another embodiment, before obtaining the blinded identifier set after blinding processing of the to-be-processed services sent by each user terminal, the method may further include:
[0141] A data transmission channel between the collaboration party terminal and each user terminal is constructed according to a preset channel construction rule.
[0142] Then, a set of blinded identifiers corresponding to the services to be processed sent by each user terminal after blinding processing is obtained, which may specifically include:
[0143] A set of blinded identifiers corresponding to the services to be processed sent by each user terminal after blinding processing is obtained through a pre-built data transmission channel.
[0144] In this embodiment, each user terminal can first obtain its own private key and public key, then send each other their public keys, and then build a corresponding data transmission channel based on the received public keys. For example, assume that there are two user terminals, user terminal A and user terminal B. User terminal A applies for a certificate containing public key pk_A for its private key sk_A from an authoritative certificate issuing authority, and user terminal B applies for a certificate containing public key pk_B for its private key sk_B from an authoritative certificate issuing authority. User terminal A and user terminal B send each other their public keys and verify their authenticity based on the relevant certificates. Then user terminal A and user terminal B build an anti-eavesdropping secure channel based on each other's public keys, that is, a data transmission channel Channel_AB. When user terminal A sends a message m to user terminal B, it is sent through Channel_AB, that is, it is first encrypted by B's public key pk_B and then sent to B. After B receives it, it decrypts it with its own private key sk_B to obtain the plaintext of m, and vice versa. In addition, a third collaborating party C that does not handle sensitive data can be introduced, and the above steps can be repeated to build corresponding secure channels Channel_AC and Channel_BC. The data transmission security is improved by transmitting data through the data transmission channel.
[0145] Figure 3 FIG. 1 is a flow chart of a heterogeneous data processing method provided by another embodiment of the present application. The method of this embodiment can be executed by the user terminal 102. Figure 3 As shown, the method of this embodiment may include:
[0146] S301: Perform blinding processing on identifier data corresponding to the service to be processed according to a pre-stored blinding processing rule to obtain a blinded identifier set.
[0147] In this embodiment, at least one identifier data corresponding to the service to be processed in each user terminal can be processed according to a pre-stored blinding processing rule to obtain a blinded identifier set.
[0148] Further, blinding processing is performed on the identifier data corresponding to the service to be processed according to the pre-stored blinding processing rules to obtain a blinded identifier set, which may specifically include:
[0149] The blinding parameters are determined according to the preset blinding parameter processing rules.
[0150] The blinding parameters and the identifier data corresponding to the service to be processed are processed according to a preset hash function to obtain an initial blinding identifier set.
[0151] A preset number of noise identifiers that are not repeated with the initial blinded identifier set are generated according to a preset noise generation rule.
[0152] A blinded identifier set is obtained according to the noise identifier and the initial blinded identifier set.
[0153] Specifically, when determining the blinding parameter according to the preset blinding parameter processing rule, a first initial blinding parameter can be randomly determined, and a second initial blinding parameter sent by other user terminals can be received at the same time. Then, an XOR operation is performed on the first initial blinding parameter and the second initial blinding parameter to obtain the blinding parameter. The second initial blinding parameter can be one or more.
[0154] In addition, when a preset number of noise identifiers that are non-repetitive with the initial blinded identifier set are generated according to a preset noise generation rule, N noise identifiers that are non-repetitive with the blinded identifiers in the existing initial blinded identifier set can be generated according to a preset noise generation rate, and then the N noise identifiers are added to the initial blinded identifier set and their order is disrupted to obtain a blinded identifier set.
[0155] Exemplarily, there are two user terminals, user terminal A and user terminal B. User terminal A independently selects a random number b_A, uses it as a blinded seed fragment, and sends it to user terminal B through Channel_AB. User terminal B independently selects a random number b_B, uses it as a blinded seed fragment, and sends it to user terminal A through Channel_AB. User terminal A calculates the blinding parameter b=b_A XOR b_B. Then user terminal A can calculate id_b=Hash(id,b) for all id fields in its N_A records in sequence to obtain N_A blinded identifier sets id_b_A. For example, id_b=Hash("A0001",b)=a blinded string 0xAF12C3 corresponding to "A0001", thereby avoiding the leakage of id plaintext data in the sample alignment stage.
[0156] In addition, based on the noise rate rate_n budgeted by the user end A, N_A*rate_n noise identifiers that are not repeated with the existing elements in id_b_A are generated, and the generated noise identifiers are added to the initial blinded identifier set id_b_A, and then the order is disrupted. The final blinded identifier set is recorded as id_bn_A = {identifier position pos_A_i, identifier data id_bn_A_i}. For example, N_A = 4, rate_n = 50%, N_A*rate_n = 2, then 2 noise identifiers are added to id_bn_A, that is, there are 4+2=6 blinded identifiers in the blinded identifier set.
[0157] Similarly, user terminal B can generate its own blinded identifier set, recorded as id_bn_B = {identifier position pos_B_i, identifier data id_bn_B_i}.
[0158] Among them, for the ids shared by user terminals A and B, since the inputs are the same, the generated blinded id values are also the same. For example, id_b = Hash ("A0001", b) = a blinded string 0xAF12C3 corresponding to "A0001", which can be used to determine the matching identifier set in the subsequent sample id blind comparison process.
[0159] S302: Send the blinded identifier set to the collaboration party, so that the collaboration party performs matching processing according to the blinded identifier set sent by each user end to obtain a matching identifier set, and then generates identifier record information corresponding to each user end according to the matching identifier set and each blinded identifier set.
[0160] In this embodiment, after obtaining the blinded identifier set, the user end can send the blinded identifier to the collaboration end through a preset data transmission channel. After receiving the blinded identifier set sent by the user end, the collaboration end can also simultaneously receive the blinded identifier set sent by other users. After receiving the blinded identifier set sent by each user end, it can process according to the blinded identifier set sent by each user end to obtain a number of identifier record information corresponding to each user end. Among them, the specific processing process has been described in detail in the aforementioned embodiment, and will not be repeated here.
[0161] S303: receiving a number of identifier record information sent by the collaboration party, and performing heterogeneous data decryption calculation according to the number of identifier record information to obtain a plain text processing result of the service to be processed.
[0162] In this embodiment, after obtaining the identifier record information corresponding to each user end, the collaborating party end can return the obtained identifier record information to the corresponding user end. After the user end receives the returned identifier record information, it can perform heterogeneous data decryption calculations based on the identifier record information to obtain the plaintext processing results of the business to be processed.
[0163] Furthermore, if the identifier record information includes the identifier position, then a heterogeneous data decryption calculation is performed according to the plurality of identifier record information to obtain a plain text processing result of the service to be processed, which may specifically include:
[0164] For each piece of the identifier record information, it is determined whether the identifier record information is a noise identifier according to the identifier position.
[0165] If the identifier record information is not a noise identifier, the first initial data corresponding to the identifier position is determined according to the identifier position and the identifier data corresponding to the service to be processed.
[0166] The first initial data and the second initial data sent by other user terminals are jointly processed according to a preset joint calculation processing rule to obtain an intermediate result fragment corresponding to the identifier record information.
[0167] Aggregate the intermediate result fragments corresponding to each of the identifier record information to obtain an intermediate result, and decrypt the intermediate result according to a preset secure multi-party computing protocol to obtain a plaintext processing result of the business to be processed.
[0168] Specifically, each identifier record information includes an identifier position, i.e., pos_A_i or pos_B_j, and then it can be determined whether it is data in the initially acquired data set sample according to pos_A_i or pos_B_j. There are many ways to determine, and only one specific implementation method is listed here. Other determination methods are also within the protection scope of this application.
[0169] Furthermore, the identifier record information includes sub-private shard data generated by the first private shard data or the second private shard data, and the first initial data and the second initial data sent by other users are jointly processed according to the preset joint calculation processing rule to obtain the intermediate result shard corresponding to the identifier record information, which may specifically include:
[0170] The first initial data is fragmented according to a preset fragmentation rule to obtain a plurality of first initial sub-data.
[0171] A preset number of first initial sub-data among the plurality of first initial sub-data are sent to other user terminals to obtain first remaining initial sub-data, and a preset number of second outward initial sub-data sent by the other user terminals are received at the same time, wherein the second outward initial sub-data are obtained by sharding the second sub-data in the other user terminals according to a preset sharding rule.
[0172] According to a preset private sharing protocol, the first remaining initial sub-data, the second externally sent initial sub-data, the first sub-private shard data, and the second remaining initial sub-data, the first externally sent initial sub-data, and the second sub-private shard data in the other user terminals are jointly calculated to obtain an intermediate result shard corresponding to the identifier record information, wherein the first sub-private shard data is the sub-private shard data contained in the identifier record information corresponding to the local user terminal, and the second sub-private shard data is the sub-private shard data contained in the identifier record information corresponding to the other user terminal.
[0173] Specifically, after other user terminals send the second outgoing initial sub-data, the remaining data may be referred to as second remaining initial sub-data.
[0174] In addition, the method may further include:
[0175] If the identifier record information is a noise identifier, the data corresponding to the identifier position is set to zero.
[0176] For example, taking user terminal A and user terminal B as an example, user terminal A locally reads the record-related data pointed to by pos_A_i in (idx_w, pos_A_i, selector_w[0]) to determine the corresponding income field in the initial data set sample, which can be specifically:
[0177] If pos_A_i exceeds the maximum number of records in the original data set sample of user end A, it indicates that it is a noise record added by the collaborative end C, and income is set to 0.
[0178] If pos_A_i points to the noise record originally added by user A, income is also set to 0.
[0179] Otherwise, read the field of the real income data corresponding to pos_A_i in the initial dataset sample.
[0180] In addition, user terminal A can generate a new random number r_w for the income field based on the selected secure multi-party computing protocol (the classic secret sharing protocol can be selected), split the income value v1_w into two random shard sets v1_w = (r_w, v1_w-r_w), and send v1_w[0] (i.e., the first outgoing initial sub-data) to user terminal B.
[0181] Client B locally reads the data related to the record pointed to by pos_B_j in (idx_w, pos_B_j, selector_w[1]). In the initial data set example, the corresponding tax_rate field can be:
[0182] If pos_B_i exceeds the maximum number of records of client B in the initial data set sample, it indicates that the noise records are added by the collaborating client C, and tax_rate is set to 0.
[0183] If pos_B_i points to the noise record originally added by client B, tax_rate is also set to 0.
[0184] Otherwise, read pos_B_i to point to the field containing the actual tax_rate data.
[0185] In addition, user terminal B divides the tax_rate field, splits the tax_rate value v2_w into two random fragmentation sets v2_w=(r_w, v2_w-r_w), and sends v2_w[0] (ie, the second outgoing initial sub-data) to user terminal A.
[0186] Based on the existing secure multi-party computing protocol (such as the classic secret sharing protocol), user terminal A and user terminal B jointly calculate the intermediate result shards related to v1_w*v2_w*selector_w according to the shard data v1_w[1] (i.e. the first remaining initial sub-data), v2_w[0] (i.e. the second outward initial sub-data), selector_w[0] (i.e. the first sub-private shard data) in the hands of user terminal A and the shard data v1_w[0], v2_w[1], selector_w[1] (i.e. the second sub-private shard data) in the hands of user terminal B without leaking the plaintext values of v1_w, v2_w, selector_w.
[0187] Among them, only when the wth group contains the correct aligned data, the value of selector_w is 1. At this time, the calculation will obtain the ciphertext intermediate result containing the real data, such as the data corresponding to A0001, A0003, and A0004 in the example. Otherwise, selector_w is 0, and the corresponding ciphertext intermediate result is also 0=0*arbitrary noise identifier, thereby eliminating the influence of the noise identifier on the final result.
[0188] Repeat the above process until the entire sample alignment set is traversed, aggregate the intermediate result fragments corresponding to each identifier incentive information, and perform final decryption based on a secure multi-party computing protocol (such as a classic secret sharing protocol) to obtain the plaintext processing result of the final business to be processed.
[0189] Based on the above-mentioned embodiment, Table 3 is a logical summary table after sample alignment, which specifically includes identifier information shared by user terminal A and user terminal B and corresponding specific information.
[0190] Table 3 Logical summary table after sample alignment
[0191] id income tax A0001 100 0.10 A0003 200 0.35 A0004 150 0.2
[0192] That is, the total tax amount of the plain text processing result SUM (income*tax_rate) = 100*0.10+200*0.35+150*0.2=110.
[0193] Optionally, client A and client B can respectively calculate the aggregate Hash of the local shard data and send the results to the blockchain for evidence storage.
[0194] In addition, in another embodiment, after obtaining the plain text processing result of the service to be processed, the method may further include:
[0195] The plaintext processing result of the to-be-processed business is converted according to a pre-stored hash function to obtain a converted plaintext processing result.
[0196] The converted plaintext processing result is uploaded to the preset blockchain.
[0197] By combining the tamper-proof capabilities of blockchain, key password inputs and final plaintext processing results are stored on-chain, improving data security and supporting post-audit.
[0198] Based on the same idea, the embodiments of this specification also provide a device corresponding to the above method. Figure 4 A schematic diagram of the structure of a heterogeneous data processing device provided in an embodiment of the present application, which is applied to a collaborative party, such as Figure 4 As shown, the device provided in this embodiment may include:
[0199] The acquisition module 401 is used to acquire a set of blinded identifiers corresponding to the services to be processed sent by each user terminal after blinding processing.
[0200] The processing module 402 is used to perform matching processing on each blinded identifier set according to a preset matching rule to obtain a matching identifier set.
[0201] In this embodiment, the processing module 402 is further used for:
[0202] The blinded identifier sets corresponding to different user terminals are compared and processed to determine the intersection of the blinded identifier sets corresponding to the different user terminals, and obtain a matching identifier set.
[0203] The processing module 402 is also used to generate identifier record information corresponding to each user terminal based on the matching identifier set and the blinded identifier sets, and send the identifier record information corresponding to each user terminal to the corresponding user terminal, so that the user terminal performs heterogeneous data decryption calculation according to the received identifier record information to obtain the plaintext processing result of the service to be processed.
[0204] In this embodiment, the processing module 402 is further used for:
[0205] The private identifier sets corresponding to the user terminals are padded according to a preset padded rule to obtain the private identifier sets corresponding to the user terminals after padded.
[0206] The matching identifier set and the private identifier set corresponding to each user terminal after the completion are mixed to obtain an aligned sample set.
[0207] For each alignment sample in the alignment sample set, if the alignment sample belongs to the matching identifier set, identifier record information corresponding to each user terminal is generated according to a pre-stored first generation rule.
[0208] If the aligned sample belongs to the private identifier set corresponding to each user terminal, the identifier record information corresponding to each user terminal is generated according to a pre-stored second generation rule.
[0209] Furthermore, the processing module 402 is further configured to:
[0210] If the aligned sample belongs to the matching identifier set, a pair of first private fragment data with respect to the value 1 is randomly generated.
[0211] Identifier record information corresponding to each of the user terminals is generated according to the alignment sample and the first private segment data.
[0212] In addition, the processing module 402 is further used for:
[0213] If the aligned sample belongs to the private identifier set corresponding to each user terminal, a pair of second private fragment data with respect to the value 0 is randomly generated.
[0214] Identifier record information corresponding to each of the user terminals is generated according to the alignment sample and the second private segment data.
[0215] In addition, the processing module is also used for:
[0216] Determine a target private identifier set having the largest number of private identifiers among the private identifier sets corresponding to the user terminals.
[0217] According to the number of private identifiers in the target private identifier set, other private identifier sets in the private identifier set corresponding to each user terminal except the target private identifier set are supplemented to obtain the supplemented private identifier set corresponding to each user terminal.
[0218] In addition, in another embodiment, the processing module is further used for:
[0219] The identifier record information corresponding to each of the user terminals is converted according to a pre-stored hash function to obtain the converted identifier record information.
[0220] The converted identifier record information is uploaded to a preset blockchain.
[0221] In addition, in another embodiment, the processing module is further used for:
[0222] A data transmission channel between the collaboration party terminal and each user terminal is constructed according to a preset channel construction rule.
[0223] A set of blinded identifiers corresponding to the services to be processed sent by each user terminal after blinding processing is obtained through a pre-built data transmission channel.
[0224] In another embodiment, the present application further provides another heterogeneous data processing device, which is applied to a user end, and the device may include:
[0225] The processing module is used to perform blind processing on the identifier data corresponding to the service to be processed according to the pre-stored blind processing rules to obtain a blinded identifier set.
[0226] In this embodiment, the processing module is further used for:
[0227] The blinding parameters are determined according to the preset blinding parameter processing rules.
[0228] The blinding parameters and the identifier data corresponding to the service to be processed are processed according to a preset hash function to obtain an initial blinding identifier set.
[0229] A preset number of noise identifiers that are not repeated with the initial blinded identifier set are generated according to a preset noise generation rule.
[0230] A blinded identifier set is obtained according to the noise identifier and the initial blinded identifier set.
[0231] Furthermore, the processing module is also used for:
[0232] A first initial blinding parameter is randomly determined, and a second initial blinding parameter sent by another user terminal is received.
[0233] An XOR operation is performed on the first initial blinding parameter and the second initial blinding parameter to obtain a blinding parameter.
[0234] A sending module is used to send the blinded identifier set to the collaborating party end, so that the collaborating party end performs matching processing according to the blinded identifier set sent by each user end to obtain a matching identifier set, and then generates identifier record information corresponding to each user end according to the matching identifier set and each blinded identifier set.
[0235] The processing module is also used to receive a number of identifier record information sent by the collaboration party, and perform heterogeneous data decryption calculations based on the number of identifier record information to obtain the plaintext processing result of the business to be processed.
[0236] In this embodiment, the identifier record information includes the identifier position, and the processing module is further used to:
[0237] For each piece of the identifier record information, it is determined whether the identifier record information is a noise identifier according to the identifier position.
[0238] If the identifier record information is not a noise identifier, the first initial data corresponding to the identifier position is determined according to the identifier position and the identifier data corresponding to the service to be processed.
[0239] The first initial data and the second initial data sent by other user terminals are jointly processed according to a preset joint calculation processing rule to obtain an intermediate result fragment corresponding to the identifier record information.
[0240] Aggregate the intermediate result fragments corresponding to each of the identifier record information to obtain an intermediate result, and decrypt the intermediate result according to a preset secure multi-party computing protocol to obtain a plaintext processing result of the business to be processed.
[0241] Furthermore, the identifier record information includes sub-private shard data generated by the first private shard data or the second private shard data, and the processing module is further used to:
[0242] The first initial data is fragmented according to a preset fragmentation rule to obtain a plurality of first initial sub-data.
[0243] A preset number of first initial sub-data among the plurality of first initial sub-data are sent to other user terminals to obtain first remaining initial sub-data, and a preset number of second outward initial sub-data sent by the other user terminals are received at the same time, wherein the second outward initial sub-data are obtained by sharding the second sub-data in the other user terminals according to a preset sharding rule.
[0244] According to a preset private sharing protocol, the first remaining initial sub-data, the second externally sent initial sub-data, the first sub-private shard data, and the second remaining initial sub-data, the first externally sent initial sub-data, and the second sub-private shard data in the other user terminals are jointly calculated to obtain an intermediate result shard corresponding to the identifier record information, wherein the first sub-private shard data is the sub-private shard data contained in the identifier record information corresponding to the local user terminal, and the second sub-private shard data is the sub-private shard data contained in the identifier record information corresponding to the other user terminal.
[0245] In addition, the processing module is also used for:
[0246] If the identifier record information is a noise identifier, the data corresponding to the identifier position is set to zero.
[0247] In addition, in another embodiment, the processing module is further used for:
[0248] The plaintext processing result of the to-be-processed business is converted according to a pre-stored hash function to obtain a converted plaintext processing result.
[0249] The converted plaintext processing result is uploaded to the preset blockchain.
[0250] The device provided in the embodiment of the present application can realize the above-mentioned Figure 2 The implementation principle and technical effect of the method in the embodiment shown are similar and will not be described in detail here.
[0251] Figure 5 A schematic diagram of the hardware structure of an electronic device provided in an embodiment of the present application is shown in FIG. Figure 5As shown, the device 500 provided in this embodiment includes: a processor 501 and a memory connected to the processor in communication. The processor 501 and the memory 502 are connected via a bus 503 .
[0252] In a specific implementation process, the processor 501 executes the computer execution instructions stored in the memory 502, so that the processor 501 executes the heterogeneous data processing method in the above method embodiment.
[0253] The specific implementation process of the processor 501 can be found in the above method embodiment, and its implementation principle and technical effect are similar, so this embodiment will not be repeated here.
[0254] In the above Figure 5 In the illustrated embodiment, it should be understood that the processor may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), etc. A general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in the invention may be directly implemented as being executed by a hardware processor, or may be executed by a combination of hardware and software modules in the processor.
[0255] The memory may include a high-speed RAM memory, and may also include a non-volatile storage NVM, such as at least one disk storage.
[0256] The bus may be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, the bus in the drawings of the present application is not limited to only one bus or one type of bus.
[0257] An embodiment of the present application also provides a computer-readable storage medium, in which computer-executable instructions are stored. When a processor executes the computer-executable instructions, the heterogeneous data processing method of the above method embodiment is implemented.
[0258] An embodiment of the present application also provides a computer program product, including a computer program, and when the computer program is executed by a processor, the heterogeneous data processing method as described above is implemented.
[0259] The computer-readable storage medium mentioned above can be implemented by any type of volatile or non-volatile storage device or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk. The readable storage medium can be any available medium that can be accessed by a general or special-purpose computer.
[0260] An exemplary readable storage medium is coupled to a processor so that the processor can read information from the readable storage medium and write information to the readable storage medium. Of course, the readable storage medium can also be a component of the processor. The processor and the readable storage medium can be located in an application specific integrated circuit (Application Specific Integrated Circuits, referred to as: ASIC). Of course, the processor and the readable storage medium can also exist in the device as discrete components.
[0261] Those skilled in the art can understand that all or part of the steps of implementing the above-mentioned method embodiments can be completed by hardware related to program instructions. The aforementioned program can be stored in a computer-readable storage medium. When the program is executed, the steps of the above-mentioned method embodiments are executed; and the aforementioned storage medium includes: ROM, RAM, disk or optical disk and other media that can store program codes.
[0262] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit it. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some or all of the technical features therein with equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.
Claims
1. A method for processing heterogeneous data, characterized in that: Applied to the collaborating party, including: Obtaining a set of blinded identifiers corresponding to the pending services sent by each user terminal after blinding processing; Perform matching processing on each blinded identifier set according to a preset matching rule to obtain a matching identifier set; Identifier record information corresponding to each user terminal is generated according to the matching identifier set and the blinded identifier sets, and the identifier record information corresponding to each user terminal is sent to the corresponding user terminal respectively, so that the user terminal performs the following actions: for each identifier record information, determine whether the identifier record information is a noise identifier according to the identifier position; the identifier record information contains the identifier position; if the identifier record information is not a noise identifier, determine the first initial data corresponding to the identifier position according to the identifier position and the identifier data corresponding to the service to be processed; jointly process the first initial data and the second initial data sent by other users according to a preset joint computing processing rule to obtain an intermediate result fragment corresponding to the identifier record information; aggregate the intermediate result fragments corresponding to each identifier record information to obtain an intermediate result, and decrypt the intermediate result according to a preset secure multi-party computing protocol to obtain a plaintext processing result of the service to be processed.
2. The method according to claim 1, characterized in that The matching process is performed on each blinded identifier set according to a preset matching rule to obtain a matching identifier set, including: The blinded identifier sets corresponding to different user terminals are compared and processed to determine the intersection of the blinded identifier sets corresponding to the different user terminals, and obtain a matching identifier set.
3. The method according to claim 2, characterized in that The generating the identifier record information corresponding to each user terminal according to the matching identifier set and each blinded identifier set includes: Deleting the blinded identifiers corresponding to the matching identifier set in each blinded identifier set to obtain a private identifier set corresponding to each user terminal; Completing the private identifier set corresponding to each user terminal according to a preset completion rule to obtain a completed private identifier set corresponding to each user terminal; Mixing the matching identifier set and the private identifier set corresponding to each user terminal after the completion to obtain an alignment sample set; For each alignment sample in the alignment sample set, if the alignment sample belongs to the matching identifier set, generating identifier record information corresponding to each user terminal according to a pre-stored first generation rule; If the aligned sample belongs to the private identifier set corresponding to each user terminal, the identifier record information corresponding to each user terminal is generated according to a pre-stored second generation rule.
4. The method according to claim 3, characterized in that If the aligned sample belongs to the matching identifier set, generating identifier record information corresponding to each user terminal according to a pre-stored first generation rule includes: If the aligned sample belongs to the set of matching identifiers, randomly generate a pair of first private fragment data about the value 1; Identifier record information corresponding to each of the user terminals is generated according to the alignment sample and the first private segment data.
5. The method according to claim 3, characterized in that: If the aligned sample belongs to the private identifier set corresponding to each user terminal, generating identifier record information corresponding to each user terminal according to a pre-stored second generation rule, including: If the aligned sample belongs to the private identifier set corresponding to each of the user terminals, a pair of second private fragment data with respect to a value of 0 is randomly generated; Identifier record information corresponding to each of the user terminals is generated according to the alignment sample and the second private segment data.
6. The method according to claim 3, characterized in that The step of performing a completion process on the private identifier set corresponding to each user terminal according to a preset completion rule to obtain a completed private identifier set corresponding to each user terminal includes: Determine a target private identifier set having the largest number of private identifiers among the private identifier sets corresponding to the user terminals; According to the number of private identifiers in the target private identifier set, other private identifier sets in the private identifier set corresponding to each user terminal except the target private identifier set are supplemented to obtain the supplemented private identifier set corresponding to each user terminal.
7. The method according to any one of claims 1 to 6, characterized in that: After generating the identifier record information corresponding to each user terminal according to the matching identifier set and each blinded identifier set, the method further includes: Performing conversion processing on the identifier record information corresponding to each of the user terminals according to a pre-stored hash function to obtain converted identifier record information; The converted identifier record information is uploaded to a preset blockchain.
8. The method according to any one of claims 1 to 6, characterized in that: Before obtaining the blinded identifier set after blinding processing of the services to be processed sent by each user terminal, the method further includes: Constructing a data transmission channel between the collaboration party terminal and each user terminal according to a preset channel construction rule; Then the step of obtaining a set of blinded identifiers corresponding to the services to be processed sent by each user terminal after blinding processing includes: A set of blinded identifiers corresponding to the services to be processed sent by each user terminal after blinding processing is obtained through a pre-built data transmission channel.
9. A method for processing heterogeneous data, characterized in that: Applied to the user side, including: Perform blinding processing on the identifier data corresponding to the service to be processed according to the pre-stored blinding processing rules to obtain a blinded identifier set; The blinded identifier set is sent to the collaboration party end, so that the collaboration party end performs matching processing according to the blinded identifier set sent by each user end to obtain a matching identifier set, and then generates identifier record information corresponding to each user end according to the matching identifier set and each blinded identifier set; the identifier record information includes an identifier position; Receiving a plurality of identifier record information sent by the collaboration party, and performing heterogeneous data decryption calculation according to the plurality of identifier record information to obtain a plaintext processing result of the service to be processed; The performing of heterogeneous data decryption calculation according to the plurality of identifier record information to obtain the plaintext processing result of the service to be processed includes: For each piece of the identifier record information, judging whether the identifier record information is a noise identifier according to the identifier position; If the identifier record information is not a noise identifier, determining first initial data corresponding to the identifier position according to the identifier position and the identifier data corresponding to the service to be processed; The first initial data and the second initial data sent by other users are jointly processed according to a preset joint calculation processing rule to obtain an intermediate result fragment corresponding to the identifier record information; Aggregate the intermediate result fragments corresponding to each of the identifier record information to obtain an intermediate result, and decrypt the intermediate result according to a preset secure multi-party computing protocol to obtain a plaintext processing result of the business to be processed.
10. The method according to claim 9, characterized in that The step of blinding the identifier data corresponding to the service to be processed according to the pre-stored blinding processing rules to obtain a blinded identifier set includes: Determine the blinding parameter according to a preset blinding parameter processing rule; Processing the blinding parameter and the identifier data corresponding to the service to be processed according to a preset hash function to obtain an initial blinding identifier set; Generate a preset number of noise identifiers according to a preset noise generation rule, which are not repeated with the initial blinded identifier set; A blinded identifier set is obtained according to the noise identifier and the initial blinded identifier set.
11. The method according to claim 10, characterized in that The determining of the blinding parameter according to a preset blinding parameter processing rule includes: Randomly determine a first initial blinding parameter, and simultaneously receive a second initial blinding parameter sent by other user terminals; An XOR operation is performed on the first initial blinding parameter and the second initial blinding parameter to obtain a blinding parameter.
12. The method according to claim 9, characterized in that The identifier record information includes the first private shard data or the sub-private shard data generated by the second private shard data, and the first initial data and the second initial data sent by other users are jointly processed according to the preset joint calculation processing rule to obtain the intermediate result shard corresponding to the identifier record information, including: Slice the first initial data according to a preset slicing rule to obtain a plurality of first initial sub-data; Sending a preset number of first initial sub-data among the plurality of first initial sub-data to other user terminals to obtain first remaining initial sub-data, and simultaneously receiving a preset number of second outgoing initial sub-data sent by the other user terminals, wherein the second outgoing initial sub-data is obtained by slicing the second sub-data in the other user terminals according to a preset slicing rule; According to a preset private sharing protocol, the first remaining initial sub-data, the second externally sent initial sub-data, the first sub-private shard data, and the second remaining initial sub-data, the first externally sent initial sub-data, and the second sub-private shard data in the other user terminals are jointly calculated to obtain an intermediate result shard corresponding to the identifier record information, wherein the first sub-private shard data is the sub-private shard data contained in the identifier record information corresponding to the local user terminal, and the second sub-private shard data is the sub-private shard data contained in the identifier record information corresponding to the other user terminal.
13. The method according to claim 9, characterized in that Also includes: If the identifier record information is a noise identifier, the data corresponding to the identifier position is set to zero.
14. The method according to any one of claims 9 to 13, characterized in that: After obtaining the plain text processing result of the service to be processed, the method further includes: Converting the plaintext processing result of the service to be processed according to a pre-stored hash function to obtain a converted plaintext processing result; The converted plaintext processing result is uploaded to the preset blockchain.
15. A heterogeneous data processing device, characterized in that: Applied to the collaborating party, including: An acquisition module, used for acquiring a set of blinded identifiers corresponding to the services to be processed sent by each user terminal after blinding processing; A processing module, used for performing matching processing on each blinded identifier set according to a preset matching rule to obtain a matching identifier set; The processing module is also used to generate identifier record information corresponding to each user terminal according to the matching identifier set and the blinded identifier sets, and send the identifier record information corresponding to each user terminal to the corresponding user terminal respectively, so that the user terminal performs the following actions: for each of the identifier record information, determine whether the identifier record information is a noise identifier according to the identifier position; the identifier record information contains the identifier position; if the identifier record information is not a noise identifier, determine the first initial data corresponding to the identifier position according to the identifier position and the identifier data corresponding to the service to be processed; jointly process the first initial data and the second initial data sent by other users according to a preset joint computing processing rule to obtain an intermediate result fragment corresponding to the identifier record information; aggregate the intermediate result fragments corresponding to each of the identifier record information to obtain an intermediate result, and decrypt the intermediate result according to a preset secure multi-party computing protocol to obtain a plaintext processing result of the service to be processed.
16. A heterogeneous data processing device, characterized in that: Applied to the user side, including: A processing module, used for performing blind processing on the identifier data corresponding to the service to be processed according to a pre-stored blind processing rule to obtain a blinded identifier set; A sending module, used for sending the blinded identifier set to the collaboration party end, so that the collaboration party end performs matching processing according to the blinded identifier set sent by each user end to obtain a matching identifier set, and then generates identifier record information corresponding to each user end according to the matching identifier set and each blinded identifier set; the identifier record information includes an identifier position; The processing module is further used to receive a plurality of identifier record information sent by the collaboration party, and perform heterogeneous data decryption calculation according to the plurality of identifier record information to obtain a plain text processing result of the service to be processed; The performing of heterogeneous data decryption calculation according to the plurality of identifier record information to obtain the plaintext processing result of the service to be processed includes: For each piece of the identifier record information, judging whether the identifier record information is a noise identifier according to the identifier position; If the identifier record information is not a noise identifier, determining first initial data corresponding to the identifier position according to the identifier position and the identifier data corresponding to the service to be processed; The first initial data and the second initial data sent by other users are jointly processed according to a preset joint calculation processing rule to obtain an intermediate result fragment corresponding to the identifier record information; Aggregate the intermediate result fragments corresponding to each of the identifier record information to obtain an intermediate result, and decrypt the intermediate result according to a preset secure multi-party computing protocol to obtain a plaintext processing result of the business to be processed.
17. An electronic device, characterized in that: include: A processor, and a memory communicatively connected to the processor; The memory stores computer-executable instructions; The processor executes the computer-executable instructions stored in the memory to implement the heterogeneous data processing method as described in any one of claims 1-8 or 9-14.
18. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores computer-executable instructions. When a processor executes the computer-executable instructions, the heterogeneous data processing method as described in any one of claims 1-8 or 9-14 is implemented.
19. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the heterogeneous data processing method according to any one of claims 1 to 8 or 9 to 14 is implemented.
Citation Information
Patent Citations
Data sharing method and device, equipment and system
CN113434888A