Data processing method, device and server based on privacy protection

By splicing and processing multiple subdata groups, and building data structures and auxiliary structures, the problem of data parties in joint data processing while protecting privacy is solved, and secure data processing and protection is achieved.

CN114254357BActive Publication Date: 2025-04-29SHANGHAI MATRIXELEMENTS TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202111580175.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-12-22
Publication Date
2025-04-29
Estimated Expiration
2041-12-22

AI Technical Summary

Technical Problem

In data processing scenarios, multiple data parties each hold different characteristic data groups and need to be used together while protecting data privacy to avoid data leakage.

Method used

By acquiring multiple sub-data groups, splicing them to form a first data group, and building an initial data structure and an auxiliary structure according to preset protocol rules, a second data group that meets the requirements is obtained through multiple data processing.

Benefits of technology

It realizes that while protecting data privacy, it is possible to safely use multiple sub-data groups to complete data processing, effectively protecting the data security of the data party.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114254357B_ABST
    Figure CN114254357B_ABST
Patent Text Reader

Abstract

This specification provides a data processing method, device and server based on privacy protection. After obtaining multiple sub-data groups, the computing node can splice the multiple sub-data groups as a whole to obtain a first data group; at the same time, according to the preset protocol rules, use the multiple sub-data groups to construct an initial data structure belonging to the preset data structure; and according to the initial data structure and the first data group, construct an initial auxiliary structure corresponding to the initial data structure; then based on the initial data structure, the initial auxiliary structure and the first data group, according to the preset protocol rules, by performing multiple preset data processing, the ciphertext data of the target data of the multiple sub-data groups is obtained, and the second data group is arranged according to the preset sorting rules. Thereby, under the premise of protecting data privacy, multiple sub-data groups can be safely used in combination to complete the corresponding data processing.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This specification belongs to the field of Internet technology, and in particular, relates to a data processing method, device and server based on privacy protection. Background Art

[0002] In some data processing scenarios, it is often the case that multiple different data parties each hold different sets of feature data.

[0003] Sometimes, due to business needs, it is necessary to horizontally jointly use the feature data groups held by multiple data parties to jointly complete data processing such as joint statistics and joint modeling; and in the process of jointly performing the above data processing, it is also required to protect the data privacy of the data party to avoid the leakage of the feature data groups held by the data parties, or information related to the feature data groups.

[0004] Therefore, there is an urgent need for a method that can jointly utilize multiple data groups held by multiple data parties to complete corresponding data processing while protecting data privacy. Summary of the invention

[0005] This specification provides a data processing method, device and server based on privacy protection, which can safely and jointly utilize multiple sub-data groups to complete corresponding data processing while protecting data privacy and avoiding data information leakage.

[0006] The embodiment of this specification provides a data processing method based on privacy protection, which is applied to a computing node, including:

[0007] Acquire multiple sub-data groups, and concatenate the multiple sub-data groups to obtain a first data group; wherein each of the multiple sub-data groups contains ciphertext data of multiple target data arranged according to a preset sorting rule;

[0008] According to a preset protocol rule, using the multiple sub-data groups, construct an initial data structure; wherein the data structure belongs to a preset data structure;

[0009] According to the initial data structure and the first data group, an initial auxiliary structure corresponding to the initial data structure is constructed; wherein the structural shape of the initial auxiliary structure is the same as that of the initial data structure, and the auxiliary vectors of the nodes in the initial auxiliary structure correspond to the sub-data group to which the ciphertext data of the target data of the same node in the initial data structure belongs;

[0010] Based on the initial data structure, the initial auxiliary structure and the first data group, according to the preset protocol rules, multiple preset data processings are performed to obtain a second data group that meets the requirements.

[0011] In some embodiments, the preset data structure includes a minimum heap structure.

[0012] In some embodiments, constructing an initial data structure using the multiple sub-data groups includes:

[0013] Extracting the ciphertext data of the target data located at the first data position in the sub-data group respectively to obtain the ciphertext data of the multiple target data;

[0014] An initial data structure is constructed based on the ciphertext data of multiple target data by performing a heap sort operation; wherein the initial data structure includes multiple structure layers, each structure layer contains the ciphertext data of the target data of at least one node, and the number of nodes contained in the initial data structure is equal to the number of groups of multiple sub-data groups.

[0015] In some embodiments, constructing an initial auxiliary structure corresponding to the initial data structure according to the initial data structure and the first data group includes:

[0016] Determining auxiliary vectors corresponding to the respective sub-data groups according to the splicing order of the sub-data groups in the first data group;

[0017] The ciphertext data of the target data of each node in the initial data structure is replaced with an auxiliary vector corresponding to the sub-data group to which the ciphertext data of the target data of the node belongs, so as to obtain an initial auxiliary structure.

[0018] In some embodiments, based on the initial data structure, the initial auxiliary structure and the first data group, according to the preset protocol rules, multiple preset data processing is performed to obtain a second data group that meets the requirements, including:

[0019] The current preset data processing is performed as follows:

[0020] Take out the ciphertext data of the target data of the root node in the previous data structure and store it in the second data group;

[0021] Obtain the last state vector; and obtain the ciphertext data of the target data to be inserted currently by processing the first data group using the last state vector and the last auxiliary structure;

[0022] Assign the ciphertext data of the target data to be inserted at the current time to the root node of the previous data structure; and perform a heap sort operation on the previous data structure after insertion to obtain the current data structure;

[0023] According to the current data structure, the current auxiliary structure is obtained; and according to the previous state vector, the current state vector is generated.

[0024] In some embodiments, the ciphertext data of the target data to be inserted at the current time is obtained by processing the first data group using the previous state vector and the previous auxiliary structure, including:

[0025] Extract the auxiliary vector of the root node from the previous auxiliary structure as the current auxiliary vector;

[0026] According to a preset expansion processing rule, the current auxiliary vector is expanded to obtain an expanded current auxiliary vector;

[0027] The last selection vector is calculated based on the expanded current auxiliary vector and the last state vector;

[0028] According to the preset translation rule, the last selected vector is translated to obtain the current selected vector;

[0029] The first data group is subjected to a dot multiplication process using the current selection vector, so as to extract the ciphertext data of the current target data to be inserted from the first data.

[0030] In some embodiments, obtaining the current auxiliary structure according to the current data structure includes:

[0031] The ciphertext data of the target data of each node in the current data structure is replaced with the auxiliary vector corresponding to the sub-data group to which the ciphertext data of the target data of the node belongs, so as to obtain the current auxiliary structure.

[0032] In some embodiments, generating a current state vector according to a previous state vector includes:

[0033] The current state vector is obtained by subtracting the previous selection vector from the vector sum of the previous state vector and the current selection vector.

[0034] In some embodiments, before performing the current preset data processing, the method further includes:

[0035] Detecting whether the amount of ciphertext data of the target data in the current second data group is equal to a preset amount threshold; wherein the preset amount threshold is determined according to the length information of the plurality of sub-data groups;

[0036] When it is detected that the amount of ciphertext data of the target data in the current second data group is equal to a preset amount threshold, the current second data group is determined as a second data group that meets the requirements.

[0037] In some embodiments, based on the initial data structure, the initial auxiliary structure and the first data group, according to the preset protocol rules, by performing multiple preset data processing to obtain a second data group that meets the requirements, it also includes:

[0038] The first preset data processing is performed as follows:

[0039] Taking out the ciphertext data of the target data of the root node in the initial data structure and storing it in the second data group;

[0040] Acquire an initial state vector; and obtain ciphertext data of target data to be inserted for the first time by processing the first data group using the initial state vector and the initial auxiliary structure;

[0041] Assign the ciphertext data of the target data to be inserted for the first time to the root node in the initial data structure; and perform a heap sort operation on the inserted initial data structure to obtain the first data structure;

[0042] According to the first data structure, a first auxiliary structure is obtained; and according to the first auxiliary structure, a first state vector is generated.

[0043] In some embodiments, obtaining an initial state vector includes:

[0044] Generate multiple sub-state vectors; wherein each sub-state vector in the multiple sub-state vectors corresponds to a sub-data group; the number of elements contained in the sub-state vector is the same as the number of ciphertext data of the target data contained in the corresponding sub-data group; the element of the first data bit in the sub-state vector is a preset data value;

[0045] According to the splicing order of the sub-data groups in the first data group, a plurality of sub-state vectors are spliced ​​to obtain an initial state vector.

[0046] In some embodiments, after acquiring the plurality of sub-data sets, the method further comprises:

[0047] At least one extended data bit is spliced ​​at the end of the sub-data group; and a maximum floating point number is filled in the extended data bit to obtain a plurality of processed sub-data groups;

[0048] Correspondingly, a plurality of processed sub-data groups are spliced ​​together to obtain a processed first data group.

[0049] In some embodiments, the preset protocol rules include protocol rules based on secure multi-party computing and secret sharing.

[0050] In some embodiments, obtaining a plurality of sub-data sets includes:

[0051] Receiving multiple sub-data groups sent by multiple data parties; wherein each of the multiple data parties holds multiple target data; the data party responds to the joint data processing request, performs corresponding encryption processing and sorting processing on the multiple target data held according to preset protocol rules, and obtains corresponding sub-data groups.

[0052] In some embodiments, the target data includes numerical feature data.

[0053] In some embodiments, after obtaining the second data set that meets the requirements, the method further includes:

[0054] The target model is obtained by training the second data set that meets the requirements; wherein the target model is used for target data processing.

[0055] The embodiment of this specification also provides a data processing device based on privacy protection, including:

[0056] An acquisition module, used to acquire a plurality of sub-data groups, and to concatenate the plurality of sub-data groups to obtain a first data group; wherein each of the plurality of sub-data groups respectively contains ciphertext data of a plurality of target data arranged according to a preset sorting rule;

[0057] A first construction module is used to construct an initial data structure using the multiple sub-data groups according to a preset protocol rule; wherein the data structure belongs to a preset data structure;

[0058] A second construction module is used to construct an initial auxiliary structure corresponding to the initial data structure according to the initial data structure and the first data group; wherein the structural shape of the initial auxiliary structure is the same as that of the initial data structure, and the auxiliary vectors of the nodes in the initial auxiliary structure correspond to the sub-data group to which the ciphertext data of the target data of the same node in the initial data structure belongs;

[0059] The processing module is used to obtain a second data group that meets the requirements by performing multiple preset data processings based on the initial data structure, the initial auxiliary structure and the first data group according to preset protocol rules.

[0060] An embodiment of the present specification also provides a server, including a processor and a memory for storing processor executable instructions, wherein the processor implements the steps of the data processing method based on privacy protection when executing the instructions.

[0061] The embodiments of this specification also provide a computer-readable storage medium on which computer instructions are stored. When the instructions are executed by a processor, the steps of the data processing method based on privacy protection are implemented.

[0062] Based on the privacy-protected data processing method, device and server provided in the embodiments of this specification, after obtaining multiple sub-data groups provided by multiple data parties, the computing node can firstly splice the multiple sub-data groups as a whole to obtain a first data group; at the same time, according to the preset protocol rules, the multiple sub-data groups are used to construct an initial data structure belonging to the preset data structure (for example, the minimum heap structure); and according to the initial data structure and the first data group, an initial auxiliary structure corresponding to the initial data structure is constructed; and then based on the initial data structure, the initial auxiliary structure and the first data group, according to the preset protocol rules, by performing multiple preset data processing including operations such as number acquisition, insertion, and heap sorting, the ciphertext data of the target data integrating multiple sub-data groups can be obtained, and the second data group arranged according to the preset sorting rules. Therefore, under the premise of protecting data privacy and avoiding data information leakage, the corresponding data processing can be completed by safely and jointly utilizing the multiple sub-data groups held by multiple data parties, effectively protecting the data security of the data parties. BRIEF DESCRIPTION OF THE DRAWINGS

[0063] In order to more clearly illustrate the embodiments of this specification, the drawings required for use in the embodiments will be briefly introduced below. The drawings described below are only some embodiments recorded in this specification. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.

[0064] Figure 1 is a flowchart of a data processing method based on privacy protection provided by an embodiment of this specification;

[0065] Figure 2 It is a schematic diagram of an embodiment of a data processing method based on privacy protection provided by an embodiment of this specification, in a scenario example;

[0066] Figure 3 It is a schematic diagram of an embodiment of a data processing method based on privacy protection provided by an embodiment of this specification, in a scenario example;

[0067] Figure 4 It is a schematic diagram of an embodiment of a data processing method based on privacy protection provided by an embodiment of this specification, in a scenario example;

[0068] Figure 5 It is a schematic diagram of an embodiment of a data processing method based on privacy protection provided by an embodiment of this specification, in a scenario example;

[0069] Figure 6It is a schematic diagram of an embodiment of a data processing method based on privacy protection provided by an embodiment of this specification, in a scenario example;

[0070] Figure 7 It is a schematic diagram of an embodiment of a data processing method based on privacy protection provided by an embodiment of this specification, in a scenario example;

[0071] Figure 8 It is a schematic diagram of an embodiment of a data processing method based on privacy protection provided by an embodiment of this specification, in a scenario example;

[0072] Fig. 9 It is a schematic diagram of an embodiment of a data processing method based on privacy protection provided by an embodiment of this specification, in a scenario example;

[0073] Fig.10 It is a schematic diagram of an embodiment of a data processing method based on privacy protection provided by an embodiment of this specification, in a scenario example;

[0074] Fig.11 It is a schematic diagram of an embodiment of a data processing method based on privacy protection provided by an embodiment of this specification, in a scenario example;

[0075] Fig.12 It is a schematic diagram of the structure of a server provided by an embodiment of this specification;

[0076] Fig.13 It is a schematic diagram of the structural composition of a data processing device based on privacy protection provided by an embodiment of this specification. DETAILED DESCRIPTION

[0077] In order to enable those skilled in the art to better understand the technical solutions in this specification, the technical solutions in the embodiments of this specification will be clearly and completely described below in conjunction with the drawings in the embodiments of this specification. Obviously, the described embodiments are only part of the embodiments of this specification, not all of the embodiments. Based on the embodiments in this specification, all other embodiments obtained by ordinary technicians in this field without creative work should fall within the scope of protection of this specification.

[0078] See also Figure 1 As shown, the embodiment of this specification provides a data processing method based on privacy protection. Among them, the method is specifically applied to the computing node side. When implemented specifically, the method may include the following contents.

[0079] S101: Acquire multiple sub-data groups, and concatenate the multiple sub-data groups to obtain a first data group; wherein each of the multiple sub-data groups contains ciphertext data of multiple target data arranged according to a preset sorting rule.

[0080] S102: constructing an initial data structure using the multiple sub-data groups according to a preset protocol rule; wherein the data structure belongs to a preset data structure.

[0081] S103: Construct an initial auxiliary structure corresponding to the initial data structure according to the initial data structure and the first data group; wherein the structural shape of the initial auxiliary structure is the same as the initial data structure, and the auxiliary vectors of the nodes in the initial auxiliary structure correspond to the sub-data group to which the ciphertext data of the target data of the same node in the initial data structure belongs.

[0082] S104: Based on the initial data structure, the initial auxiliary structure and the first data group, according to preset protocol rules, multiple preset data processings are performed to obtain a second data group that meets the requirements.

[0083] In some embodiments, the computing node can be specifically understood as a secure computing node configured with preset protocol rules, preset comparison functions, and preset selection functions. Among them, the computing node can be specifically understood as a physical device or virtual computing module with a certain data processing function. Specifically, for example, the computing node can be a server, a computer, a smart phone, a computing chip, etc., or a computing unit, a computing module, a processing system, etc. The computing node can specifically include one or more computing nodes.

[0084] In some embodiments, the above-mentioned preset protocol rules may specifically include protocol rules based on secure multi-party computing and secret sharing.

[0085] The above-mentioned secret sharing (SS) is also called secret sharing, which can specifically refer to a multi-party security protocol. Based on secret sharing, the secret can be split in an appropriate way, and each share after the split (referred to as a share) can be held and managed by different participants, and a single participant cannot recover the secret information based on a single share. Only when several participants work together can the secret message be recovered.

[0086] The above-mentioned secure multi-party computing (MPC) may specifically refer to an algorithm for protecting data privacy and security. Multi-party secure computing allows multiple data parties to perform collaborative computing without leaking their own data.

[0087] Furthermore, the above-mentioned preset protocol rules can also be protocol rules combined with oblivious transfer. Among them, the above-mentioned oblivious transfer (OT) can specifically refer to a communication protocol that can protect the data privacy of both parties. Based on this protocol, the communicating parties cannot know the specific data input by the other party, so that the communicating parties can transmit data information in a selectively obfuscated manner.

[0088] In some embodiments, the preset comparison function may specifically include an encrypted comparison function that is constructed based on preset protocol rules and is capable of protecting data privacy, which may be expressed as: private_compare(·). The preset selection function may specifically include an encrypted selection function that is constructed based on preset protocol rules and is capable of protecting data privacy, which may be expressed as: private_select(·). In this way, the computing node will not be able to know the actual plaintext data values ​​of the function input and function output when performing corresponding function operations using the above preset comparison function and preset selection function, thereby better protecting the data privacy of the data party.

[0089] In some embodiments, the above-mentioned sub-data group can be specifically understood as a data group containing ciphertext data of one or more target data, and the ciphertext data of the contained target data are arranged according to a preset sorting rule.

[0090] Among them, the preset sorting rules may specifically include: a sorting rule based on arranging the data values ​​of the target data from small to large, or a sorting rule based on arranging the data values ​​of the target data from large to small. In this specification, the sorting rule based on arranging the data values ​​of the target data from small to large is used as an example for specific description. The situation of using the sorting rule based on arranging the data values ​​of the target data from large to small as the preset sorting rule can refer to the relevant embodiments of using the sorting rule based on arranging the data values ​​of the target data from large to small as the preset sorting rule in this specification. This specification does not elaborate on it.

[0091] In some embodiments, the target data may specifically include numerical feature data.

[0092] Specifically, for example, the target data may be any one of the following attribute data: bid amount, resource quantity, height parameter, yield data, tree coverage rate, etc.

[0093] Of course, it should be noted that the target data listed above is only a schematic illustration. In specific implementation, according to specific application scenarios and processing requirements, the target data may also include other types of attribute data. This specification does not limit this.

[0094] In some embodiments, see Figure 2 As shown, the computing node can be connected to multiple data cubes by wire or wireless means. For example, the computing node is connected to 6 different data cubes, namely, data cube 1, data cube 2, ..., data cube 6. Each data cube holds a sub-data group; each sub-data group contains ciphertext data of one or more target data arranged according to a preset sorting rule. Preset protocol rules can also be arranged on the side of each data cube.

[0095] For example, see Figure 3 As shown, data party 1 holds sub-data group A, which contains ciphertext data of 3 target data and has a length of 3. Similarly, data party 2 holds sub-data group B, which contains ciphertext data of 4 target data and has a length of 4. Data party 3 holds sub-data group C, which contains ciphertext data of 4 target data and has a length of 4, and so on.

[0096] In addition, the ciphertext data of the target data contained in each sub-data group is arranged according to a preset sorting rule (for example, a sorting rule based on the data value of the target data being arranged from small to large). For example, the character "5" in the first data position in sub-data group A can represent the ciphertext data of the target data with the smallest real data value in sub-data group A. It should be noted that Figure 3 The displayed characters "5", "8", "4", "7", "9", and "6" represent the ciphertext data of the target data located at the first data bit in each sub-data group, and do not represent the actual data value of the target data.

[0097] In some embodiments, the above-mentioned acquisition of multiple sub-data groups, when implemented specifically, may include the following: receiving multiple sub-data groups sent by multiple data parties; wherein each of the multiple data parties holds multiple target data; the data party responds to the joint data processing request, and performs corresponding encryption processing and sorting processing on the multiple target data held according to preset protocol rules to obtain corresponding sub-data groups.

[0098] In some embodiments, see Figure 4 As shown, when joint data processing is required, any one of the multiple data parties or the computing node can initiate a joint data processing request.

[0099] Each data party can receive and respond to the joint data processing request, first arrange multiple target data according to the data value of the target data held by each party according to the preset sorting rules, and perform sorting processing to obtain an ordered data column; then encrypt the target data in the ordered data column according to the preset protocol rules to obtain a sub-data group containing the ciphertext data of the target data; then send the above sub-data group to the computing node via wired or wireless means. Correspondingly, the computing node can obtain multiple sub-data groups.

[0100] In some embodiments, after receiving multiple sub-data groups, the computing node may concatenate the multiple sub-data groups as a whole to obtain a first data group. The first data group includes the ciphertext data of the target data of the multiple sub-data groups. However, the first data group is no longer an ordered data group in which the ciphertext data of the target data is arranged according to a preset sorting rule. For example, see Figure 5 As shown, in the first data group, the character "4" with a smaller real data value is arranged in front of the character "8" with a larger real data value.

[0101] In some embodiments, when performing splicing, the computing node may splice multiple sub-data groups in order according to the reception time of the received sub-data groups to obtain the corresponding first data group. The computing node may also splice multiple sub-data groups in order according to the name or number of the data entity corresponding to the sub-data group to obtain the corresponding first data group, etc.

[0102] For example, see Figure 5 As shown, the computing node can sequentially splice sub-data group A, sub-data group B, sub-data group C, sub-data group D, sub-data group E, and sub-data group F according to the numbers of the data cubes of the sub-data groups to obtain the first data group. The computing node can also record the splicing order of the sub-data groups in the first data group.

[0103] In some embodiments, during specific implementation, the sub-data group sent by the data source to the computing node may also carry the length information of the sub-data group. The length of the sub-data group may be specifically understood as the number of ciphertext data of the target data contained in the sub-data group. Accordingly, the computing node may also obtain the length information of each sub-data group, and add the lengths of multiple sub-data groups to obtain a sum as a preset quantity threshold.

[0104] In some embodiments, the initial data structure may be a data body composed of ciphertext data of multiple target data and belonging to a preset data structure, wherein the number of ciphertext data of the target data constituting the data body is equal to the number of sub-data groups, and the ciphertext data of the multiple target data contained in the data body corresponds one-to-one to the multiple sub-data groups.

[0105] In some embodiments, the above-mentioned preset data structure may specifically include a minimum heap structure. In addition, according to specific circumstances and processing requirements, a suitable data structure such as a maximum heap structure may also be used as a preset data structure. In this specification, the minimum heap structure is mainly used as an example for specific description. The use of other data structures as preset data structures can refer to the embodiments using the minimum heap structure, and this specification does not repeat them.

[0106] The above minimum heap structure can be specifically understood as a sorted complete binary tree structure, and the structure also satisfies the following numerical relationship: the data value of the parent node is not greater than the data value of the connected left child node and the data value of the connected right child node.

[0107] In some embodiments, the initial data structure constructed by using the multiple sub-data groups may include the following contents during specific implementation:

[0108] S1: extract the ciphertext data of the target data located at the first data position in the sub-data group respectively to obtain the ciphertext data of multiple target data;

[0109] S2: Based on the ciphertext data of multiple target data, an initial data structure is constructed by performing a heap sort operation; wherein the initial data structure includes multiple structure layers, each structure layer contains the ciphertext data of the target data of at least one node, and the number of nodes contained in the initial data structure is equal to the number of groups of multiple sub-data groups.

[0110] In some embodiments, during specific implementation, the computing node can respectively extract the ciphertext data of the target data located at the first data bit from multiple sub-data groups to obtain the ciphertext data of multiple target data; then combine the ciphertext data of the multiple target data to obtain an initial data group; and then according to the preset protocol rules, by calling the preset comparison function and the preset selection function, perform a heap sort operation on the initial data group to obtain the corresponding initial data structure.

[0111] In some embodiments, the ciphertext data of the target data retrieved by the computing node may further specifically carry a group identifier of the sub-data group to which the ciphertext data of the target data belongs.

[0112] In some embodiments, see Figure 6As shown, the initial data structure belongs to the minimum heap structure, which may specifically include multiple structure layers (for example, structure layer 0, structure layer 1 and structure layer 2), each structure layer contains the ciphertext data of the target data of at least one node; and the data value of the ciphertext data of the target data of the parent node in two adjacent structure layers is less than or equal to the data value of the ciphertext data of the target data of the connected child node. Among them, the parent node can be connected to one child node, or it can be connected to two child nodes at the same time (for example, the first child node and the second child node). The above-mentioned parent node (for example, the node with the ciphertext data of the target data being "7") can be specifically understood as a node in a structure layer located at a relatively upper position in two adjacent structure layers, and the child node can be specifically understood as a child node located in a structure layer located at a relatively lower position in two adjacent structure layers and connected to the parent node. Further, the first child node can specifically be a child node located at a left position among the child nodes connected to the parent node (for example, a node with the ciphertext data of the target data being "8"), and the second child node can specifically be a child node located at a right position among the child nodes connected to the parent node (for example, a node with the ciphertext data of the target data being "9").

[0113] In addition, the vertices in the initial data structure can be recorded as root nodes. Usually, the data value of the ciphertext data of the target data of the root node is not greater than the data value of the ciphertext data of the target data of other nodes in the initial data structure. In the lowest structural layer in the initial data structure, the nodes without connected child nodes can be recorded as leaf nodes. Among them, the leaf node located on the far right of the leaf nodes can be recorded as the last leaf node.

[0114] For example, see Figure 6 As shown, the ciphertext data of the target data of the first data bit can be extracted from sub-data group A, sub-data group B...sub-data group F respectively, and the ciphertext data of 6 target data of "5", "8", "4", "7", "9", and "6" can be obtained. Then, the ciphertext data of the above 6 target data are combined according to the sub-data groups in the first data group to obtain the initial data group (which can be recorded as arr, [5,8,4,7,9,6]). Then, according to the preset protocol rules, the initial data group can be subjected to a heap sort operation to obtain the corresponding initial data structure.

[0115] In some embodiments, the initial data structure can be obtained by performing a heap sort operation directly based on the initial data group. For details, see Figure 6The operation flow is shown below. The computing node can sequentially take out one ciphertext data of the target data from the initial data group for operation according to the order of the ciphertext data of the target data in the initial data group. For example, the ciphertext data "5" of the target data sorted in the first data position in the initial data group is taken out for the first time, and the ciphertext data "4" of the target data sorted in the second data position in the initial data group is taken out for the second time, and so on. In each specific operation, the computing node can first connect the ciphertext data of the newly taken out target data with the ciphertext data of the target data connected last time based on the structural rule of the complete binary tree to obtain the ciphertext data of the target data connected currently. Then, the computing node can adjust the connection relationship between the ciphertext data of the target data by processing the ciphertext data of the target data connected currently according to the preset protocol rules, calling the preset comparison function and the preset selection function, so that the adjusted ciphertext data of the target data connected currently satisfies the numerical relationship of the minimum heap, that is, the data value of the parent node is not greater than the data value of the connected left child node and the data value of the connected right child node. After obtaining the ciphertext data of the currently connected target data that satisfies the numerical relationship of the minimum heap, the ciphertext data of the next target data is taken out from the initial data group for operation. Based on the recursive algorithm, the above operation is repeated until the ciphertext data of all the target data in the initial data group is taken out. Then, the ciphertext data of the currently connected target data obtained last can be used as the initial data structure as a whole. Thus, the initial data structure corresponding to the initial data group can be obtained more efficiently.

[0116] In some embodiments, when generating an initial data structure based on an initial data group, other methods may be used to obtain a corresponding initial data structure by performing a heap sort operation.

[0117] Specifically, the computing node can construct a sorted first data structure by successively taking out ciphertext data of target data from the initial data group according to preset protocol rules, and using a preset comparison function and a preset selection function to process the ciphertext data of the target data taken out this time.

[0118] In specific implementation, the computing node may first perform the first processing, extract and use the ciphertext data of the first target data from the initial data group, and construct the first data structure after the first sorting. Then perform the second processing, extract and use the ciphertext data of the second target data from the initial data group, combine with the first data structure after the first sorting, and perform the preset data processing by calling the preset comparison function and the preset selection function to obtain the first data structure after the second sorting. And so on.

[0119] According to the above method, multiple processing can be performed in sequence according to the preset protocol rules until the last time (recorded as the Mth time), the ciphertext data of the last target data (recorded as the ciphertext data of the Mth target data) is taken out from the initial data group and used, combined with the first data structure after the M-1th sorting, and the preset data processing is performed on the ciphertext data of the target data that has been taken out this time by calling the preset comparison function and the preset selection function, so as to construct the first data structure after the last sorting (recorded as the first data structure after the Mth sorting).

[0120] Furthermore, the first data structure after the M-th sorting may be determined as the initial data structure.

[0121] In some embodiments, the sorted first data structure constructed each time and the final initial data structure may specifically be a data structure based on a minimum heap structure or a maximum heap structure.

[0122] The following mainly takes the minimum heap structure as an example for specific explanation.

[0123] The above minimum heap structure can be specifically understood as a sorted complete binary tree structure, and the structure also satisfies the following numerical relationship: the data value of the parent node is not greater than the data value of the connected left child node and the data value of the connected right child node.

[0124] In some embodiments, the computing node can construct an initial data structure by performing multiple processes one after another according to preset protocol rules. Among them, each data processing can obtain a sorted first data structure. In each data processing, a ciphertext data of a target data is taken out in order from the initial data group, and the ciphertext data of the target data is connected to the sorted first data structure obtained after the previous processing to obtain the first data structure of this time. Since the first data structure of this time is obtained by directly connecting the ciphertext data of the target data to the sorted first data structure obtained after the previous processing without sorting, the first data structure of this time may not satisfy the following numerical relationship: the data value of the parent node is not greater than the data value of the connected left child node and the data value of the connected right child node. Therefore, in each processing, the first data structure obtained by directly connecting the ciphertext data of the target data may not belong to the minimum heap structure. It is also necessary to call the preset comparison function and the preset selection function to perform preset data processing on the ciphertext data of the target data of the parent node, the first child node and the second child node connected in two adjacent structural layers in the first data structure layer by layer, so as to obtain the first data structure after this sorting that belongs to the minimum heap structure.

[0125] In some embodiments, during specific implementation, the computing node may sequentially take out ciphertext data of a target data from the initial data group according to the serial number, and connect it to the first data structure after the previous sorting to obtain the first data structure of this time.

[0126] Specifically, during each processing, the computing node can connect the newly retrieved target data into the first data structure after the last sorting. According to the complete binary tree structure rule, a new last leaf node can be first inserted into the first data structure after the last sorting; and the ciphertext data of the newly retrieved target data can be assigned to the new last leaf node to obtain the first data structure of this time.

[0127] In some embodiments, the first data structure may include multiple structure layers, wherein each structure layer includes one or more nodes, and each node is assigned a ciphertext data of target data. The first data structure includes the ciphertext data of the target data that has been taken out from the initial data group.

[0128] Furthermore, in two adjacent structural layers, a node in the structural layer located slightly above can be connected to one or two nodes in the structural layer located slightly below. In this case, the node in the structural layer located slightly above can be recorded as a parent node, the node on the left side connected to the parent node in the structural layer located slightly below can be recorded as a left child node, and the node on the right side connected to the parent node in the structural layer located slightly below can be recorded as a right child node. The vertex in the data structure (for example, the node in the structural layer marked as 0) can be recorded as a root node. The nodes in the lowest structural layer that have no connected child nodes can be recorded as leaf nodes. Among them, the leaf node located on the far right of the leaf nodes can be recorded as the last leaf node.

[0129] Specifically, for example, when the initial data group A[i] is processed for the fifth time, a first data structure is generated. In the first data structure, the ciphertext data a(0) of the target data is located in the structural layer marked as 0, and is respectively connected to the ciphertext data a(1) and a(2) of the target data in the adjacent structural layer marked as 1 below. Among them, the node where the ciphertext data a(0) of the target data is located can be recorded as the parent node, the node on the relatively left side where the ciphertext data a(1) of the target data is located can be recorded as the left child node (or the first child node) of the parent node, and the node on the relatively right side where the ciphertext data a(2) of the target data is located can be recorded as the right child node (or the second child node) of the parent node.

[0130] In some embodiments, the above-mentioned method of constructing a sorted first data structure by successively taking out ciphertext data of a target data from the initial data group according to a preset protocol rule, and processing the taken out ciphertext data of the target data using a preset comparison function and a preset selection function, may include performing a current processing in a plurality of processings in the following manner to obtain a first data structure after the current sorting:

[0131] S1: Take out the ciphertext data of a target data from the initial data group in order as the ciphertext data of the current target data; obtain the first data structure after the previous sorting;

[0132] S2: Connect the ciphertext data of the current target data to the first data structure after the previous sorting to obtain the first data structure of the current time;

[0133] S3: According to the preset protocol rules, taking the structural layer where the ciphertext data of the current target data is located as the starting structural layer, according to the preset processing order, by calling the preset comparison function and the preset selection function, the ciphertext data of the target data of the parent node, the first child node and the second child node connected in two adjacent structural layers in the current first data structure are subjected to the preset data processing layer by layer to obtain the first data structure after the current sorting.

[0134] After connecting the ciphertext data of the current target data to the first data structure after the previous sorting to obtain the current first data structure, the computing node can further, according to the preset protocol rules, take the structure layer where the ciphertext data of the current target data is located as the starting structure layer, and in accordance with the preset processing order, perform preset data processing on the ciphertext data of the target data of the parent node, the first child node and the second child node connected in two adjacent structure layers in the current first data structure layer by layer by calling the preset comparison function and the preset selection function to obtain the first data structure after the current sorting.

[0135] In some embodiments, the above-mentioned preset processing order may specifically include: a processing order from a structural layer located below to a structural layer located above.

[0136] In some embodiments, the parent node may be specifically understood as a node in a structural layer located at a relatively upper position; the first child node and the second child node may be specifically understood as nodes located in a structural layer located at a relatively lower position and connected to the parent node. The first child node may specifically include a left child node located at the left side, and the second child node may specifically include a right child node located at the right side. In some cases, the parent node may also be connected to only one child node, namely the first child node.

[0137] In some embodiments, the above-mentioned preset data processing is performed on the ciphertext data of the target data of the parent node, the first child node and the second child node connected in two adjacent structural layers in the current first data structure layer by layer by calling the preset comparison function and the preset selection function according to the preset processing order. When implemented specifically, the following contents may be included: the ciphertext data of the target data of the current parent node, the current first child node and the current second child node connected in the adjacent first structural layer and the second structural layer in the current first data structure is performed with the preset data processing in the following manner:

[0138] S1: according to the preset protocol rules, take out the ciphertext data of the target data of the current parent node, the ciphertext data of the target data of the current first child node, and the ciphertext data of the target data of the current second child node;

[0139] S2: calling a preset comparison function to process the ciphertext data of the target data of the current parent node and the ciphertext data of the target data of the current first child node, and obtaining the ciphertext data of the corresponding current first comparison result;

[0140] S3: calling a preset selection function to update the ciphertext data of the target data of the current parent node and the current first child node according to the ciphertext data of the current first comparison result, to obtain the ciphertext data of the first updated target data of the current parent node and the ciphertext data of the updated target data of the current first child node;

[0141] S4: calling a preset comparison function to process the ciphertext data of the updated target data of the current parent node and the ciphertext data of the target data of the current second child node, to obtain the ciphertext data of the corresponding current second comparison result;

[0142] S5: Call the preset selection function to update the ciphertext data of the updated target data of the current parent node and the ciphertext data of the target data of the current second child node according to the ciphertext data of the current second comparison result, and obtain the ciphertext data of the second updated target data of the current parent node and the ciphertext data of the updated target data of the current second child node.

[0143] According to the above method, the computing node can complete the heap sorting of the current first data structure by performing multiple preset data processing on the current first data structure in a preset processing order, and obtain the current sorted first data structure belonging to the minimum heap structure.

[0144] In some embodiments, the preset data processing can be understood as a heap sorting process (which can be recorded as heapify). The first structural layer can be specifically understood as the structural layer located relatively above the two adjacent structural layers processed this time, and the second structural layer can be specifically understood as the structural layer located relatively below the two adjacent structural layers processed this time. The parent node is a node in the first structural layer, and the first child node and the second child node are nodes connected to the parent node in the second structural layer. In some cases, the parent node can also be connected to only one child node.

[0145] In some embodiments, when performing the first processing, the ciphertext data a(0) of the first target data can be taken out from the initial data group in order according to the sequence number, and the ciphertext data a(0) of the target data can be directly filled into the complete binary tree structure to obtain the first data structure for the first time. Since the first data structure for the first time only contains the ciphertext data of one target data, it does not need to be sorted separately. Therefore, the first data structure for the first time can be directly determined as the first data structure after the first sorting to complete the first processing.

[0146] After the first processing is completed, the second processing can be performed. Specifically, the ciphertext data a(1) of the second target data can be taken out from the initial data group in order according to the sequence number, and according to the rule of the complete binary tree structure, the ciphertext data a(1) of the target data can be connected to the first data structure after the first sorting to obtain the first data structure of the second time. The first data structure of the second time includes two adjacent structure layers: the 0 structure layer located above and the 1 structure layer located below, wherein the a(1) newly taken out for the second time is located in the 1 structure layer, and the a(0) taken out for the first time is located in the 0 structure layer. Among them, a(0) is connected to a(1). Since a(0) is located in a relatively upper structure layer relative to a(1), a(0) can be recorded as the parent node of a(1), and a(1) can be recorded as the first child node of a(0).

[0147] Since the first data structure of the second time contains the ciphertext data of two target data, it needs to be sorted again. The 1 structure layer where a(1) is located can be recorded as the second structure layer, and the 0 structure layer where a(0) is located can be recorded as the first structure layer. The ciphertext data a(0) of the target data of the parent node and the ciphertext data a(1) of the target data of the first child node connected to the parent node can be taken out; and the preset comparison function and the preset selection function can be called to perform preset data processing on a(0) and a(1). Specifically, the preset comparison function can be called to process a(0) and a(1) to obtain the ciphertext data corresponding to the first comparison result of the second processing: c(2)1-1: c(2)1-1=private_compare(a(0),a(1)). Then call the preset selection function to process c(2)1-1, a(0) and a(1) in the following manner: private_select(c(2)1-1,a(0),a(1)), so as to select the ciphertext data of the target data with the smaller data value from a(0) and a(1) according to c(2)1-1 and assign it to the parent node, so as to obtain the ciphertext data of the first updated target data of the parent node, recorded as a(0)'; assign the ciphertext data of the remaining other target data to the first child node, so as to obtain the ciphertext data of the updated target data of the first child node, recorded as a(1)'.

[0148] Specifically, for example, if the data value of a(1) is less than or equal to a(0), the ciphertext data of the parent node's target data is changed to a(1) as the first updated ciphertext data of the parent node's target data (a(0)'); and the ciphertext data of the first child node is changed to a(0) as the first updated ciphertext data of the target data of the child node (a(1)').

[0149] On the contrary, if the data value of a(1) is greater than a(0), the ciphertext data of the parent node's target data is kept as the original a(0) as the ciphertext data of the first updated target data of the parent node; the ciphertext data of the first child node is kept as the original a(1) as the ciphertext data of the updated target data of the first child node.

[0150] The first data structure after the preset data processing satisfies the numerical relationship of the minimum heap structure, that is, the first data structure after the first sorting.

[0151] Then, when performing any current processing in the subsequent multiple processings, according to the preset protocol rules, the structural layer where the ciphertext data of the current target data is located is taken as the starting structural layer, and according to the preset processing order, that is, the processing order from the structural layer located below to the structural layer located above, the preset data processing is performed layer by layer on the ciphertext data of the target data of the parent node, the first child node and the second child node connected in two adjacent structural layers in the current first data structure by calling the preset comparison function and the preset selection function, so as to complete the sorting of the current first data structure and obtain the first data structure after the current sorting.

[0152] Specifically, take the fifth processing as an example. First, according to the sequence number, the ciphertext data a(4) of the fifth target data is taken out from the initial data group in order, and according to the rule of the complete binary tree structure, the ciphertext data a(4) of the target data is connected to the first data structure after the fourth sorting, so as to obtain the first data structure of the fifth sorting.

[0153] Next, the 2nd structural layer where a(4) is located can be used as the starting structural layer, and the preset comparison function and the preset selection function can be called in sequence from the 2nd structural layer upward to perform preset data processing on the ciphertext data of the target data of the parent node, the first child node and the second child node connected in two adjacent structural layers.

[0154] Specifically, in the fifth processing, when the first preset data processing is performed, the 1st structure layer and the 2nd structure layer can be used as two adjacent structure layers to be currently processed by the preset data. The current parent node can be determined to be the node where a(1) in the 1st structure layer is located, the current first child node can be determined to be the node where a(3) in the 2nd structure layer is located, and the current second child node can be determined to be the node where a(4) in the 2nd structure layer is located. According to the preset protocol rules, the ciphertext data a(1) of the target data of the current parent node, the ciphertext data a(3) of the target data of the current first child node, and the ciphertext data a(4) of the target data of the current second child node can be first taken out; then the preset comparison function is called to process the ciphertext data a(1) of the target data of the current parent node and the ciphertext data a(3) of the target data of the current first child node to obtain the corresponding ciphertext data c(5)1-1 of the current first comparison result; then the preset selection function is called to update the ciphertext data of the target data of the current parent node and the current first child node according to the ciphertext data c(5)1-1 of the current first comparison result to obtain the ciphertext data of the first updated target data of the current parent node and the ciphertext data of the updated target data of the current first child node. Next, the preset comparison function is called again to process the ciphertext data of the updated target data of the current parent node and the ciphertext data of the target data of the current second child node, and the corresponding ciphertext data of the current second comparison result c(5)1-2 is obtained; the preset selection function is called again to update the ciphertext data of the updated target data of the current parent node and the ciphertext data of the target data of the current second child node according to the ciphertext data of the current second comparison result, and the ciphertext data of the second updated target data of the current parent node and the ciphertext data of the updated target data of the current second child node are obtained. Thus, the first preset data processing in the fifth processing is completed.

[0155] Next, the second preset data processing in the fifth processing can be performed. Specifically, according to the preset processing order, the 0 structure layer and the 1 structure layer can be used as the two adjacent structure layers to be currently subjected to the preset data processing. It can be determined that the current parent node is the node where a(0) is located in the 0 structure layer, the current first child node is the node where a(1) is located in the 1 structure layer, and the current second child node is the node where a(2) is located in the 1 structure layer. According to the preset protocol rules, the ciphertext data a(0) of the target data of the current parent node, the ciphertext data a(1) of the target data of the current first child node, and the ciphertext data a(2) of the target data of the current second child node can be first taken out; then the preset comparison function is called to process the ciphertext data a(0) of the target data of the current parent node and the ciphertext data a(1) of the target data of the current first child node to obtain the corresponding ciphertext data c(5)2-1 of the current first comparison result; then the preset selection function is called to update the ciphertext data of the target data of the current parent node and the current first child node according to the ciphertext data c(5)2-1 of the current first comparison result to obtain the ciphertext data of the first updated target data of the current parent node and the ciphertext data of the updated target data of the current first child node. Next, the preset comparison function is called again to process the ciphertext data of the updated target data of the current parent node and the ciphertext data of the target data of the current second child node, and the corresponding ciphertext data of the current second comparison result c(5)2-2 is obtained; the preset selection function is called again to update the ciphertext data of the updated target data of the current parent node and the ciphertext data of the target data of the current second child node according to the ciphertext data of the current second comparison result, and the ciphertext data of the second updated target data of the current parent node and the ciphertext data of the updated target data of the current second child node are obtained. Thus, the second preset data processing in the fifth processing is completed.

[0156] According to the preset processing order, after performing two preset data processing on the fifth first data structure, the fifth first data structure is sorted, and the fifth sorted first data structure based on the minimum heap structure is obtained, thereby completing the fifth data processing.

[0157] Based on the recursive algorithm, after multiple processings are performed in the above manner, until the last time (for example, the Mth time), the ciphertext data of the last target data is taken out from the initial data group, and the ciphertext data of the target data is connected to the first data structure after the last (M-1th) sorting, to obtain the first data structure after the last sorting. Then, according to the preset protocol rules, the structure layer where the ciphertext data of the target data taken out for the last time is located is used as the starting structure layer, and according to the preset processing order, the ciphertext data of the target data of the parent node, the first child node and the second child node connected in two adjacent structure layers in the first data structure for the last time are processed layer by layer by calling the preset comparison function and the preset selection function, to obtain the first data structure after the last sorting. Then, the first data structure after the last sorting obtained by the above-mentioned last processing can be used as the initial data structure that meets the preset sorting requirements.

[0158] In some embodiments, when performing preset data processing, the node number of the current parent node, the node number of the current first child node, and the node number of the current second child node can be determined first; then, based on the node number of the current parent node, the node number of the current first child node, and the node number of the current second child node, the ciphertext data of the target data of the current parent node, the ciphertext data of the target data of the current first child node, and the ciphertext data of the target data of the current second child node are taken out.

[0159] Specifically determining the node number of the current parent node, the node number of the current first child node, and the node number of the current second child node may include the following:

[0160] S1: Determine the node number of the current parent node;

[0161] S2: According to a preset numbering rule, using the node number of the current parent node, calculate the node number of the current first child node and the node number of the current second child node;

[0162] Specifically, for example, the node number of the parent node in the last preset data processing is i-1, and the node number of the parent node in the last preset data processing is added by 1 to obtain the node number i of the current parent node. Then, according to the node number of the current parent node and the preset numbering rules, the node number of the current first child node and the node number of the current second child node are calculated respectively.

[0163] The preset numbering rule may specifically include a first numbering relation: No1=2i+1; and a second numbering relation: No2=2i+2. The first numbering relation is used to calculate the node number of the first child node connected to the parent node, and the second numbering relation is used to calculate the node number of the second child node connected to the parent node, where i is the node number of the parent node.

[0164] In specific implementation, the node number of the current first child node can be calculated as 2i+1 according to the first numbering relationship; and the node number of the current second child node can be calculated as 2i+2 according to the second numbering relationship.

[0165] Furthermore, the initial data group can be queried based on the node number of the current parent node, the node number of the current first child node, and the node number of the current second child node to find the ciphertext data of the target data with the same serial number, thereby retrieving the ciphertext data of the target data of the current parent node, the ciphertext data of the target data of the current first child node, and the ciphertext data of the target data of the current second child node, which can be respectively recorded as: a(i), a(2i+1), and a(2i+2).

[0166] In some embodiments, during specific implementation, a heap sort operation may be directly performed based on the initial data group to obtain an initial data structure that meets preset sorting requirements.

[0167] In some embodiments, the initial auxiliary structure corresponding to the initial data structure is constructed according to the initial data structure and the first data group. When implemented specifically, the following contents may be included:

[0168] S1: According to the splicing order of the sub-data groups in the first data group, determine the auxiliary vectors corresponding to the sub-data groups.

[0169] S2: Replace the ciphertext data of the target data of each node in the initial data structure with the auxiliary vector corresponding to the sub-data group to which the ciphertext data of the target data of the node belongs, to obtain an initial auxiliary structure.

[0170] Specifically, the corresponding one-hot vector can be used as the auxiliary vector corresponding to the sub-data group according to the splicing order of the sub-data groups in the first data group. The number of elements contained in the auxiliary vector is equal to the number of groups of the multiple sub-data groups. It should be noted that the auxiliary vector actually used can be a vector encrypted based on a preset protocol rule, and the elements in the vector are all ciphertext data.

[0171] For example, see Figure 8As shown, in the first data group, sub-data group A is the first spliced ​​sub-data group, and accordingly, the auxiliary vector corresponding to sub-data group A can be expressed as: (1, 0, 0, 0, 0, 0). And in the first data group, sub-data group C is the third spliced ​​sub-data group, and accordingly, the auxiliary vector corresponding to sub-data group C can be expressed as: (0, 0, 1, 0, 0, 0). Similarly, the auxiliary vector corresponding to sub-data group B can be expressed as: (0, 1, 0, 0, 0, 0). The auxiliary vector corresponding to sub-data group D can be expressed as: (0, 0, 0, 1, 0, 0). The auxiliary vector corresponding to sub-data group E can be expressed as: (0, 0, 0, 0, 1, 0). The auxiliary vector corresponding to sub-data group F can be expressed as: (0, 0, 0, 0, 0, 1).

[0172] Furthermore, the computing node can determine the sub-data group to which the ciphertext data of the target data of each node in the initial data structure belongs based on the group identifier carried by the ciphertext data of the target data of each node in the initial data structure; and then replace the ciphertext data of the target data of each node in the initial data structure with an auxiliary vector corresponding to the sub-data group to which the ciphertext data of the target data of the node belongs, so as to obtain an initial auxiliary structure corresponding to the initial data structure.

[0173] For example, see Figure 8 As shown, the ciphertext data "4" of the target data of the root node in the initial data structure belongs to the sub-data group C. Therefore, the ciphertext data of the target data of the root node can be replaced with the auxiliary vector (0,0,1,0,0,0) corresponding to the sub-data group C. Similarly, the ciphertext data "6" of the target data of the last leaf node in the initial data structure belongs to the sub-data group F. Therefore, the ciphertext data of the target data of the last leaf node can be replaced with the auxiliary vector (0,0,0,0,0,1) corresponding to the sub-data group F. Through the above operations, the initial auxiliary structure can be obtained.

[0174] In some embodiments, see Figure 4 and Fig.10 As shown, the first preset data processing can be performed in the following manner:

[0175] S1: Take out the ciphertext data of the target data of the root node in the initial data structure (for example, y(1)) and store it in the second data group;

[0176] S2: obtaining an initial state vector (which may be recorded as curr0); and using the initial state vector and the initial auxiliary structure to process the first data group, obtaining the ciphertext data of the target data to be inserted for the first time (which may be recorded as x(1));

[0177] S3: assign the ciphertext data of the target data to be inserted for the first time to the root node in the initial data structure; and perform a heap sort operation on the inserted initial data structure to obtain the first data structure;

[0178] S4: According to the first data structure, obtain the first auxiliary structure; and according to the first auxiliary structure, generate the first state vector (which can be recorded as curr1).

[0179] In some embodiments, the above-mentioned preset data processing at least includes a data retrieval operation, an insertion operation, a heap sort operation and an update operation performed in sequence.

[0180] In some embodiments, when performing the first preset data processing, the ciphertext data of the retrieved target data may be stored in the first data bit of the second data group. It is also possible to set a corresponding label on the ciphertext data of the target data while storing the ciphertext data of the target data in the second data group; wherein the label is used to indicate the first preset data processing.

[0181] In some embodiments, the state vector may be specifically understood as a ciphertext vector that can reflect relevant conditions of ciphertext data of the target data currently retrieved from the first data group.

[0182] In some embodiments, the above-mentioned acquisition of the initial state vector may include the following contents when implemented specifically.

[0183] S1: Generate multiple sub-state vectors; wherein each sub-state vector in the multiple sub-state vectors corresponds to a sub-data group; the number of elements contained in the sub-state vector is the same as the number of ciphertext data of the target data contained in the corresponding sub-data group; the element of the first data bit in the sub-state vector is a preset data value. Specifically, the above sub-state vector can be a vector encrypted based on a preset protocol rule.

[0184] S2: According to the splicing order of the sub-data groups in the first data group, splice multiple sub-state vectors to obtain an initial state vector.

[0185] Specifically, the preset data value may be 1. Fig. 9 As shown, the sub-state vector a corresponding to sub-data group A can be expressed as (1,0,0). Similarly, the sub-state vector b corresponding to sub-data group B can be expressed as (1,0,0,0). The sub-state vector c corresponding to sub-data group C can be expressed as (1,0,0,0). The sub-state vector d corresponding to sub-data group D can be expressed as (1,0,0,0). The sub-state vector e corresponding to sub-data group E can be expressed as (1,0,0,0,0). The sub-state vector f corresponding to sub-data group F can be expressed as (1,0,0).

[0186] See also Fig. 9 As shown, sub-state vector a, sub-state vector b, sub-state vector c, sub-state vector d, sub-state vector e, and sub-state vector f are sequentially spliced ​​in the order of splicing sub-data groups in the first data group, and the initial state vector (denoted as curr0) can be expressed as: (1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0). It should be noted that the state vectors actually used are all encrypted vectors based on the preset protocol rules, and the elements contained in the vectors are all ciphertext data.

[0187] In some embodiments, see Fig. 9 As shown, in a specific implementation, the initial state vector and the initial auxiliary structure can be used in the following manner to obtain the ciphertext data of the target data to be inserted for the first time by processing the first data group:

[0188] S1: Extract the auxiliary vector of the root node (for example, (0,0,1,0,0,0)) from the initial auxiliary structure as the first auxiliary vector (which can be recorded as temp1);

[0189] S2: Performing vector expansion processing on the first auxiliary vector according to a preset expansion processing rule to obtain the expanded first auxiliary vector (which can be recorded as temp1');

[0190] S3: Calculate the initial selection vector (which can be recorded as select0) based on the expanded first auxiliary vector and the initial state vector;

[0191] S4: According to a preset translation rule, the initial selection vector is translated to obtain the first selection vector (which can be recorded as select1);

[0192] S5: Performing a dot multiplication process on the first data group using the first selection vector to extract the ciphertext data of the target data to be inserted for the first time from the first data group (for example, see Fig. 9 As shown, the ciphertext data "11" of the target data to be inserted is extracted from the first data group).

[0193] In some embodiments, when the first auxiliary vector is expanded according to a preset expansion processing rule, the sub-data group corresponding to each element in the first auxiliary vector can be determined according to the splicing order of the sub-data groups in the first data group; the data value of each element in the first auxiliary vector is copied to obtain an element group containing the same number of elements as the length of the corresponding sub-data group; finally, the multiple element groups are spliced ​​in turn according to the splicing order to obtain the expanded first auxiliary vector.

[0194] For example, see Figure 8 As shown, the first auxiliary vector is (0,0,1,0,0,0). Among them, the first data bit "0" corresponds to sub-data group A, and can be copied to obtain the element group: "0,0,0"; the second data bit "0" corresponds to sub-data group B, and can be copied to obtain the element group: "0,0,0,0"; the third data bit "1" corresponds to sub-data group C, and can be copied to obtain the element group: "1,1,1,1"; the fourth data bit "0" corresponds to sub-data group D, and can be copied to obtain the element group: "0,0,0,0"; the fifth data bit "0" corresponds to sub-data group E, and can be copied to obtain the element group: "0,0,0,0,0"; the sixth data bit "0" corresponds to sub-data group F, and can be copied to obtain the element group: "0,0,0". The above five element groups are then spliced ​​in sequence according to the splicing order of the corresponding sub-data groups to obtain the first auxiliary vector after expansion: (0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0), thereby realizing the vector expansion processing (Expand temp) of the first auxiliary vector.

[0195] In some embodiments, see Fig. 9 As shown, in the specific implementation, the elements with the same data bits in the expanded first auxiliary vector and the initial state vector can be multiplied (i.e., element wise product operation, which can be represented by the symbol *) to obtain a result vector as the initial selection vector, i.e., (0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0).

[0196] Then, according to the preset translation rule, the initial selection vector is translated by translating all elements in the initial selection vector by one data bit along the preset translation direction (for example, to the right), and the element located at the last data bit in the original initial selection vector is translated to the first data bit, so as to obtain the corresponding first selection vector, which is expressed in the following form: (0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0).

[0197] Next, the first selected vector may be used to perform a dot multiplication process with the first data group, and the obtained calculation result may be used as the ciphertext data of the target data to be inserted for the first time.

[0198] In some embodiments, the ciphertext data of the target data to be inserted for the first time can be assigned to the root node after the data access operation to obtain the initial data structure after insertion. The initial data structure after insertion is not a true minimum heap structure, and the initial data structure after insertion does not satisfy the following numerical relationship of the minimum heap: the data value of the parent node is not greater than the data value of the connected left child node and the data value of the connected right child node.

[0199] Further, according to the preset protocol rules, the preset comparison function and the preset selection function can be called, and the initial data structure after insertion is subjected to a heap sort operation as a whole (or, in a processing order opposite to the preset processing order, the preset comparison function and the preset selection function are called to perform preset data processing layer by layer on the ciphertext data of the target data of the parent node, the first child node, and the second child node connected in two adjacent structural layers in the initial data structure after insertion), so as to obtain the first data structure belonging to the minimum heap structure. The specific heap sorting process can refer to the embodiment of heap sorting the first data structure, the difference being that the heap sorting operation on the initial data structure after insertion is performed in a processing order opposite to the preset processing order. Among them, the processing order opposite to the preset processing order can specifically include: the processing order from the structural layer located above to the structural layer located below.

[0200] In some embodiments, after obtaining the first data structure, a corresponding first auxiliary structure can be generated according to the first data structure. The specific process of generating the first auxiliary structure according to the first data structure can refer to the embodiment of generating the initial auxiliary structure according to the initial data structure. This specification does not limit this.

[0201] In some embodiments, while obtaining the first data structure, the initial state vector may also be updated to generate a corresponding first state vector.

[0202] Specifically, when generating the first state vector, refer to Fig.10 As shown, the initial state vector (curr0) and the first selection vector (select1) can be added first; then the initial selection vector (select0) is subtracted from the vector sum obtained by the addition to obtain the first state vector (which can be recorded as curr1).

[0203] In some embodiments, see Figure 7 As shown, based on the initial data structure, the initial auxiliary structure and the first data group, according to the preset protocol rules, multiple preset data processing is performed to obtain a second data group that meets the requirements. In specific implementation, the current (for example, the i-th) preset data processing can be performed in the following manner:

[0204] S1: Take out the ciphertext data of the target data of the root node in the previous data structure (for example, y(i)) and store it in the second data group;

[0205] S2: Obtain the last state vector (e.g., curri-1); and use the last state vector and the last auxiliary structure to obtain the ciphertext data of the target data to be inserted currently (e.g., x(i)) by processing the first data group;

[0206] S3: assign the ciphertext data of the target data to be inserted at the current time to the root node of the previous data structure; and perform a heap sort operation on the inserted previous data structure to obtain the current data structure;

[0207] S4: Obtain the current auxiliary structure according to the current data structure; and generate the current state vector (eg, curri) according to the previous state vector.

[0208] In some embodiments, when performing the current preset data processing, the ciphertext data of the target data of the root node taken out can be stored in the second data group next to the ciphertext data of the target data stored most recently. It is also possible to set a corresponding label on the ciphertext data of the target data while storing the ciphertext data of the target data in the second data group; wherein the label is used to indicate the current preset data processing.

[0209] In some embodiments, the above-mentioned use of the previous state vector and the previous auxiliary structure to obtain the ciphertext data of the target data to be inserted at the current time by processing the first data group may include the following contents during specific implementation:

[0210] S1: Extract the auxiliary vector of the root node from the previous auxiliary structure as the current auxiliary vector (e.g., tempi);

[0211] S2: Performing vector expansion processing on the current auxiliary vector according to a preset expansion processing rule to obtain an expanded current auxiliary vector (eg, tempi');

[0212] S3: Calculate the last selection vector (e.g., selecti-1) based on the expanded current auxiliary vector and the last state vector;

[0213] S4: According to a preset translation rule, a translation operation is performed on the last selection vector to obtain a current selection vector (eg, selecti);

[0214] S5: Performing a dot multiplication process on the first data group using the current selection vector to extract the ciphertext data (eg, x(i)) of the target data to be inserted currently from the first data.

[0215] For the specific process of extracting the ciphertext data of the target data to be inserted in the current preset data processing, please refer to the embodiment of extracting the ciphertext data of the target data to be inserted for the first time in the first preset data processing. This specification will not elaborate on this.

[0216] In some embodiments, the above-mentioned auxiliary structure of the current time is obtained based on the current data structure. When implemented specifically, it may include the following contents: the ciphertext data of the target data of each node in the current data structure is replaced by the auxiliary vector corresponding to the sub-data group to which the ciphertext data of the target data of the node belongs, to obtain the auxiliary structure of the current time.

[0217] In some embodiments, the above-mentioned generation of the current state vector based on the previous state vector may include the following contents during specific implementation: subtracting the previous selection vector from the vector sum of the previous state vector and the current selection vector to obtain the current state vector (e.g., curri).

[0218] According to the above method, by performing multiple preset data processing according to the recursive algorithm, the ciphertext data of all the target data contained in the first data group can be taken out and stored in order into the second data group, so as to obtain the ciphertext data of the target data of all sub-data groups, and the ciphertext data of the target data are arranged in an ordered second data group according to the preset sorting rules, that is, a second data group that meets the requirements is obtained.

[0219] In some embodiments, before performing each preset data processing, it may be determined whether to trigger the current preset data processing.

[0220] In some embodiments, before performing the current preset data processing, the method may further include the following when implemented:

[0221] S1: Detect whether the amount of ciphertext data of the target data in the current second data group is equal to a preset amount threshold; wherein the preset amount threshold is determined according to the lengths of the plurality of sub-data groups;

[0222] S2: When it is detected that the amount of ciphertext data of the target data in the current second data group is equal to a preset amount threshold, the current second data group is determined as a second data group that meets the requirements.

[0223] When it is detected that the number of ciphertext data of the target data in the current second data group is equal to the preset number threshold, it can be determined that all the ciphertext data of the target data in the first data group has been taken out, and all the ciphertext data of the target data are stored in the second data group in order. It can then be determined that the current second data group has met the requirements, and the current preset data processing is no longer triggered to obtain the second data group.

[0224] On the contrary, when it is detected that the amount of ciphertext data of the target data in the current second data group is less than the preset amount threshold, it can be determined that the ciphertext data of the target data in the first data group has not been obtained yet. It can then be determined that the current second data group does not meet the requirements, triggering the current preset data processing.

[0225] In some embodiments, after obtaining multiple sub-data groups, the method may also include the following when implemented: splicing at least one extended data bit at the end of the sub-data group; and filling the extended data bit with a maximum floating point number to obtain multiple processed sub-data groups; accordingly, splicing multiple processed sub-data groups to obtain a processed first data group.

[0226] For details, please refer to Fig.11 As shown, an extended data bit can be added to the end of each of the sub-data group A, sub-data group B, sub-data group C, sub-data group D, sub-data group E, and sub-data group F, and the maximum floating point number MAX can be filled in the extended data bit to obtain multiple processed sub-data groups. Accordingly, the above-mentioned multiple processed sub-data groups can be spliced ​​to obtain the corresponding processed first data group. Furthermore, the processed first data group can be used to replace the original first data group to participate in subsequent data processing to obtain a second data group that meets the requirements.

[0227] It should be noted that, compared with the original first data group, the processed first data group is expanded by at least 6 data bits, so the state vector, the expanded auxiliary vector, the selection vector, etc. used in the subsequent data processing process will correspondingly increase at least 6 elements. However, the preset quantity threshold used is still the preset quantity threshold corresponding to the original first data group.

[0228] Since the first data group after the above processing is used to replace the original first data group to participate in subsequent data processing, it can effectively avoid that the ciphertext data of the target data contained in a sub-data group spliced ​​in the first data group is completely retrieved in advance, resulting in the leakage of data information related to the ciphertext data of the target data, thereby better protecting the data privacy and data security of the data party.

[0229] In some embodiments, after obtaining a second data group that meets the requirements, the method may also include the following when implemented: obtaining a target model by training using the second data group that meets the requirements; wherein the target model is used for target data processing.

[0230] In some embodiments, after obtaining a second data group that meets the requirements, the method may also include the following contents when implemented: sending the first data group to the demander according to preset protocol rules; wherein the demander trains the target model according to the target sequence group.

[0231] The demander may specifically be one or several data parties involved in generating the second data group, or may be other third data parties that have the right to use the second data group according to a preset cooperation agreement.

[0232] In some embodiments, after obtaining the second data group, the demander may first perform data binning on the second data group to obtain multiple ordered data groups; and then use the multiple ordered data groups to perform model training to obtain a target model that meets the requirements. After obtaining the target model, the target model may be used to perform specific target data processing. For example, the target model may be used to perform transaction risk prediction, image and text information recognition, and the like.

[0233] In some embodiments, target data processing may specifically include the following contents: including: obtaining target transaction data; calling a target model to process the target transaction data to obtain a corresponding target processing result; wherein the target model is trained using a second data group; the second data group is generated according to preset protocol rules using multiple sub-data groups provided by multiple data parties, by constructing and utilizing an initial data structure, an initial auxiliary structure and a first data group, and performing multiple preset data processing; the sub-data group contains ciphertext data of multiple target data arranged according to preset sorting rules; and according to the target processing result, determining whether the target transaction data has a transaction risk.

[0234] As can be seen from the above, based on the data processing method based on privacy protection provided by the embodiment of this specification, after obtaining multiple sub-data groups provided by multiple data parties, the computing node can firstly splice the multiple sub-data groups as a whole to obtain a first data group; at the same time, according to the preset protocol rules, use the multiple sub-data groups to construct an initial data structure belonging to the preset data structure (for example, the minimum heap structure); and according to the initial data structure and the first data group, construct an initial auxiliary structure corresponding to the initial data structure; then based on the initial data structure and the initial auxiliary structure, according to the preset protocol rules, by performing multiple preset data processing including operations such as number acquisition, insertion, and heap sorting, the ciphertext data of the target data that integrates multiple sub-data groups is obtained, and the second data group arranged according to the preset sorting rules. Therefore, under the premise of protecting data privacy and avoiding data information leakage, multiple sub-data groups can be safely used together to complete the corresponding data processing, effectively protecting the data security of the data party.

[0235] The embodiment of the present specification also provides a server, including a processor and a memory for storing processor executable instructions, wherein the processor can perform the following steps according to the instructions when implemented: obtaining multiple sub-data groups, and splicing the multiple sub-data groups to obtain a first data group; wherein each of the multiple sub-data groups respectively contains ciphertext data of multiple target data arranged according to a preset sorting rule; according to a preset protocol rule, using the multiple sub-data groups, constructing an initial data structure; wherein the data structure belongs to a preset data structure; according to the initial data structure and the first data group, constructing an initial auxiliary structure corresponding to the initial data structure; wherein the structural shape of the initial auxiliary structure is the same as that of the initial data structure, and the auxiliary vector of the node in the initial auxiliary structure corresponds to the sub-data group to which the ciphertext data of the target data of the same node in the initial data structure belongs; based on the initial data structure, the initial auxiliary structure and the first data group, according to the preset protocol rule, by performing multiple preset data processing, a second data group that meets the requirements is obtained.

[0236] In order to complete the above instructions more accurately, refer to Fig.12 As shown, the embodiment of this specification also provides another specific server, wherein the server includes a network communication port 1201, a processor 1202 and a memory 1203, and the above structures are connected through internal cables so that each structure can perform specific data interaction.

[0237] The network communication port 1201 can be specifically used to obtain multiple sub-data groups and concatenate the multiple sub-data groups to obtain a first data group; wherein each of the multiple sub-data groups contains ciphertext data of multiple target data arranged according to a preset sorting rule.

[0238] The processor 1202 can be specifically used to construct an initial data structure using the multiple sub-data groups according to preset protocol rules; wherein the data structure belongs to a preset data structure; construct an initial auxiliary structure corresponding to the initial data structure according to the initial data structure and the first data group; wherein the structural shape of the initial auxiliary structure is the same as the initial data structure, and the auxiliary vectors of the nodes in the initial auxiliary structure correspond to the sub-data group to which the ciphertext data of the target data of the same node in the initial data structure belongs; based on the initial data structure, the initial auxiliary structure and the first data group, according to the preset protocol rules, multiple preset data processings are performed to obtain a second data group that meets the requirements.

[0239] The memory 1203 may be specifically used to store corresponding instruction programs.

[0240] In this embodiment, the network communication port 1201 can be a virtual port that is bound to different communication protocols so that different data can be sent or received. For example, the network communication port can be a port responsible for web data communication, a port responsible for FTP data communication, or a port responsible for email data communication. In addition, the network communication port can also be a physical communication interface or communication chip. For example, it can be a wireless mobile network communication chip, such as GSM, CDMA, etc.; it can also be a Wifi chip; it can also be a Bluetooth chip.

[0241] In this embodiment, the processor 1202 may be implemented in any appropriate manner. For example, the processor may take the form of a microprocessor or processor and a computer-readable medium storing a computer-readable program code (such as software or firmware) executable by the (micro)processor, a logic gate, a switch, an application specific integrated circuit (ASIC), a programmable logic controller, and an embedded microcontroller, etc. This specification does not limit this.

[0242] In this embodiment, the memory 1203 may include multiple levels. In a digital system, anything that can store binary data can be a memory; in an integrated circuit, a circuit with a storage function that has no physical form is also called a memory, such as RAM, FIFO, etc.; in a system, a storage device with a physical form is also called a memory, such as a memory stick, TF card, etc.

[0243] The embodiment of the present specification also provides a computer storage medium based on the above-mentioned privacy protection-based data processing method, wherein the computer storage medium stores computer program instructions, which, when executed, implement the following: obtaining multiple sub-data groups, and concatenating the multiple sub-data groups to obtain a first data group; wherein each of the multiple sub-data groups respectively contains ciphertext data of multiple target data arranged according to a preset sorting rule; constructing an initial data structure according to a preset protocol rule using the multiple sub-data groups; wherein the data structure belongs to a preset data structure; constructing an initial auxiliary structure corresponding to the initial data structure according to the initial data structure and the first data group; wherein the structural shape of the initial auxiliary structure is the same as that of the initial data structure, and the auxiliary vector of the node in the initial auxiliary structure corresponds to the sub-data group to which the ciphertext data of the target data of the same node in the initial data structure belongs; based on the initial data structure, the initial auxiliary structure and the first data group, according to the preset protocol rule, performing multiple preset data processing to obtain a second data group that meets the requirements.

[0244] In this embodiment, the storage medium includes, but is not limited to, a random access memory (RAM), a read-only memory (ROM), a cache, a hard disk (HDD), or a memory card. The memory may be used to store computer program instructions. The network communication unit may be an interface for network connection communication set in accordance with the standard specified by the communication protocol.

[0245] In this embodiment, the functions and effects specifically implemented by the program instructions stored in the computer storage medium can be explained in comparison with other implementations and will not be described in detail here.

[0246] See also Fig.13 As shown, at the software level, the embodiment of this specification also provides a data processing device based on privacy protection, which may specifically include the following structural modules:

[0247] The acquisition module 1301 may be specifically used to acquire multiple sub-data groups and concatenate the multiple sub-data groups to obtain a first data group; wherein each of the multiple sub-data groups includes ciphertext data of multiple target data arranged according to a preset sorting rule;

[0248] The first construction module 1302 may be specifically configured to construct an initial data structure using the plurality of sub-data groups according to a preset protocol rule; wherein the data structure belongs to a preset data structure;

[0249] The second construction module 1303 may be specifically used to construct an initial auxiliary structure corresponding to the initial data structure according to the initial data structure and the first data group; wherein the structural shape of the initial auxiliary structure is the same as that of the initial data structure, and the auxiliary vectors of the nodes in the initial auxiliary structure correspond to the sub-data group to which the ciphertext data of the target data of the same node in the initial data structure belongs;

[0250] The processing module 1304 may be specifically used to obtain a second data group that meets the requirements by performing multiple preset data processings based on the initial data structure, the initial auxiliary structure and the first data group according to preset protocol rules.

[0251] In some embodiments, the preset data structure may specifically include a minimum heap structure, etc.

[0252] In some embodiments, the first construction module 1302 can specifically use the multiple sub-data groups to construct an initial data structure in the following manner: respectively extract the ciphertext data of the target data located at the first data position in the sub-data group to obtain the ciphertext data of multiple target data; construct an initial data structure by performing a heap sort operation based on the ciphertext data of the multiple target data; wherein the initial data structure includes multiple structure layers, each structure layer contains the ciphertext data of the target data of at least one node, and the number of nodes contained in the initial data structure is equal to the number of groups of the multiple sub-data groups.

[0253] In some embodiments, when the second construction module 1302 is implemented, an initial auxiliary structure corresponding to the initial data structure can be constructed according to the initial data structure and the first data group in the following manner: according to the splicing order of the sub-data groups in the first data group, the auxiliary vectors corresponding to the sub-data groups are determined; the ciphertext data of the target data of each node in the initial data structure is replaced with the auxiliary vector corresponding to the sub-data group to which the ciphertext data of the target data of the node belongs, so as to obtain the initial auxiliary structure.

[0254] In some embodiments, when the processing module 1304 is implemented, the preset data processing for the current time can be performed in the following manner: the ciphertext data of the target data of the root node in the previous data structure is taken out and stored in the second data group; the previous state vector is obtained; and the ciphertext data of the target data to be inserted for the current time is obtained by processing the first data group using the previous state vector and the previous auxiliary structure; the ciphertext data of the target data to be inserted for the current time is assigned to the root node in the previous data structure; and a heap sort operation is performed on the inserted previous data structure to obtain the current data structure; based on the current data structure, the current auxiliary structure is obtained; and based on the previous state vector, the current state vector is generated.

[0255] In some embodiments, when the processing module 1304 is implemented, the auxiliary vector of the root node can be extracted from the previous auxiliary structure as the current auxiliary vector; according to the preset expansion processing rule, the current auxiliary vector is subjected to vector expansion processing to obtain the expanded current auxiliary vector; according to the expanded current auxiliary vector and the previous state vector, the previous selection vector is calculated to obtain the current selection vector; according to the preset translation rule, the previous selection vector is translated to obtain the current selection vector; and the current selection vector is used to perform dot multiplication processing on the first data group to extract the ciphertext data of the target data to be inserted currently from the first data.

[0256] In some embodiments, when the processing module 1304 is implemented, the ciphertext data of the target data of each node in the current data structure can be replaced with an auxiliary vector corresponding to the sub-data group to which the ciphertext data of the target data of the node belongs, to obtain the current auxiliary structure.

[0257] In some embodiments, when the processing module 1304 is implemented, the current state vector may be obtained by subtracting the previous selection vector from the vector sum of the previous state vector and the current selection vector.

[0258] In some embodiments, when the processing module 1304 is implemented, before performing the current preset data processing, it can first detect whether the number of ciphertext data of the target data in the current second data group is equal to a preset number threshold; wherein the preset number threshold is determined according to the length of multiple sub-data groups; when it is detected that the number of ciphertext data of the target data in the current second data group is equal to the preset number threshold, the current second data group is determined as a second data group that meets the requirements.

[0259] In some embodiments, when the processing module 1304 is implemented, the first preset data processing can be performed in the following manner: the ciphertext data of the target data of the root node in the initial data structure is taken out and stored in the second data group; the initial state vector is obtained; and the ciphertext data of the target data to be inserted for the first time is obtained by processing the first data group using the initial state vector and the initial auxiliary structure; the ciphertext data of the target data to be inserted for the first time is assigned to the root node in the initial data structure; and a heap sort operation is performed on the inserted initial data structure to obtain the first data structure; based on the first data structure, a first auxiliary structure is obtained; and based on the first auxiliary structure, a first state vector is generated.

[0260] In some embodiments, when the acquisition module 1301 is implemented, multiple sub-state vectors can be generated first; wherein each sub-state vector in the multiple sub-state vectors corresponds to a sub-data group; the number of elements contained in the sub-state vector is the same as the number of ciphertext data of the target data contained in the corresponding sub-data group; the element of the first data bit in the sub-state vector is a preset data value; and then according to the splicing order of the sub-data groups in the first data group, multiple sub-state vectors are spliced ​​to obtain an initial state vector.

[0261] In some embodiments, the device also includes an extended processing module, which can be specifically used to splice at least one extended data bit at the end of the sub-data group; and fill the extended data bit with a maximum floating point number to obtain multiple processed sub-data groups; accordingly, the acquisition module 1301 can splice multiple processed sub-data groups to obtain a processed first data group to replace the original first data group.

[0262] In some embodiments, the preset protocol rules include protocol rules based on secure multi-party computing and secret sharing.

[0263] In some embodiments, when the acquisition module 1301 is implemented, it can receive multiple sub-data groups sent by multiple data parties; wherein each of the multiple data parties holds multiple target data; the data party responds to the joint data processing request, performs corresponding encryption processing and sorting processing on the multiple target data held according to preset protocol rules, and obtains corresponding sub-data groups.

[0264] In some embodiments, the target data includes numerical feature data.

[0265] In some embodiments, the device further includes an application module, which can be specifically used to train a target model using the second data group that meets the requirements; wherein the target model is used for target data processing.

[0266] It should be noted that the units, devices or modules described in the above embodiments can be implemented by computer chips or entities, or by products with certain functions. For the convenience of description, the above devices are described separately by functions divided into various modules. Of course, when implementing this specification, the functions of each module can be implemented in the same or more software and / or hardware, or the modules that implement the same function can be implemented by a combination of multiple sub-modules or sub-units. The device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0267] As can be seen from the above, the data processing device based on privacy protection provided by the embodiment of this specification, by constructing and using the initial data structure and the initial auxiliary structure, according to the preset protocol rules, by performing multiple preset data processing including data acquisition, insertion, and heap sorting, the ciphertext data of the target data of multiple sub-data groups is obtained, and the second data group is arranged according to the preset sorting rules. Therefore, it is possible to safely and jointly use multiple sub-data groups to complete the corresponding data processing under the premise of protecting data privacy and avoiding data information leakage.

[0268] Although the present specification provides method operation steps as described in the embodiments or flow charts, more or less operation steps may be included based on conventional or non-creative means. The order of steps listed in the embodiments is only one way of executing the order of many steps, and does not represent a unique execution order. When the device or client product in practice is executed, it can be executed in sequence or in parallel according to the method shown in the embodiments or the drawings (for example, a parallel processor or a multi-threaded processing environment, or even a distributed data processing environment). The term "include", "include" or any other variant thereof is intended to cover non-exclusive inclusion, so that the process, method, product or device including a series of elements includes not only those elements, but also includes other elements that are not explicitly listed, or also includes elements inherent to such a process, method, product or device. In the absence of more restrictions, it is not excluded that there are other identical or equivalent elements in the process, method, product or device including the elements. The first, second, etc. words are used to represent the name, and do not represent any particular order.

[0269] Those skilled in the art also know that, in addition to implementing the controller in a purely computer-readable program code, the controller can be made to implement the same function in the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded microcontrollers by logically programming the method steps. Therefore, such a controller can be considered as a hardware component, and the devices for implementing various functions included therein can also be considered as structures within the hardware component. Or even, the devices for implementing various functions can be considered as both software modules for implementing the method and structures within the hardware component.

[0270] This specification may be described in the general context of computer-executable instructions executed by a computer, such as program modules. Generally, program modules include routines, programs, objects, components, data structures, classes, etc. that perform specific tasks or implement specific abstract data types. This specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices connected through a communication network. In a distributed computing environment, program modules may be located in local and remote computer storage media including storage devices.

[0271] Through the description of the above embodiments, it can be known that those skilled in the art can clearly understand that the present specification can be implemented by means of software plus a necessary general hardware platform. Based on such an understanding, the technical solution of the present specification can essentially be embodied in the form of a software product, which can be stored in a storage medium such as ROM / RAM, a disk, an optical disk, etc., and includes a number of instructions for enabling a computer device (which can be a personal computer, a mobile terminal, a server, or a network device, etc.) to execute the methods described in each embodiment of the present specification or some parts of the embodiments.

[0272] The various embodiments in this specification are described in a progressive manner, and the same or similar parts between the various embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. This specification can be used in many general or special computer system environments or configurations. For example: personal computers, server computers, handheld devices or portable devices, tablet devices, multi-processor systems, microprocessor-based systems, set-top boxes, programmable electronic devices, network PCs, minicomputers, mainframe computers, distributed computing environments including any of the above systems or devices, etc.

[0273] Although the present specification is described through embodiments, those skilled in the art will appreciate that there are many modifications and changes to the present specification without departing from the spirit of the present specification, and it is intended that the appended claims include these modifications and changes without departing from the spirit of the present specification.

Claims

1. A data processing method based on privacy protection, characterized in that: Applied to compute nodes, including: Acquire multiple sub-data groups, and concatenate the multiple sub-data groups to obtain a first data group; wherein each of the multiple sub-data groups contains ciphertext data of multiple target data arranged according to a preset sorting rule; According to a preset protocol rule, using the multiple sub-data groups, construct an initial data structure; wherein the data structure belongs to a preset data structure; According to the initial data structure and the first data group, an initial auxiliary structure corresponding to the initial data structure is constructed; wherein the structural shape of the initial auxiliary structure is the same as that of the initial data structure, and the auxiliary vectors of the nodes in the initial auxiliary structure correspond to the sub-data group to which the ciphertext data of the target data of the same node in the initial data structure belongs; Based on the initial data structure, the initial auxiliary structure and the first data group, according to the preset protocol rules, a plurality of preset data processings are performed to obtain a second data group that meets the requirements; Wherein, using the multiple sub-data groups to construct an initial data structure, including: respectively extracting the ciphertext data of the target data located at the first data position in the sub-data group to obtain the ciphertext data of multiple target data; constructing the initial data structure by performing a heap sort operation based on the ciphertext data of the multiple target data; wherein the initial data structure includes multiple structure layers, the structure layer contains the ciphertext data of the target data of at least one node, and the number of nodes contained in the initial data structure is equal to the number of groups of the multiple sub-data groups.

2. The method according to claim 1, characterized in that The preset data structure includes a minimum heap structure.

3. The method according to claim 1, characterized in that According to the initial data structure and the first data group, an initial auxiliary structure corresponding to the initial data structure is constructed, including: Determining auxiliary vectors corresponding to the respective sub-data groups according to the splicing order of the sub-data groups in the first data group; The ciphertext data of the target data of each node in the initial data structure is replaced with an auxiliary vector corresponding to the sub-data group to which the ciphertext data of the target data of the node belongs, so as to obtain an initial auxiliary structure.

4. The method according to claim 1, characterized in that: Based on the initial data structure, the initial auxiliary structure and the first data group, according to the preset protocol rules, by performing multiple preset data processing to obtain a second data group that meets the requirements, including: The current preset data processing is performed as follows: Take out the ciphertext data of the target data of the root node in the previous data structure and store it in the second data group; Obtain the last state vector; and obtain the ciphertext data of the target data to be inserted currently by processing the first data group using the last state vector and the last auxiliary structure; Assign the ciphertext data of the target data to be inserted at the current time to the root node of the previous data structure; and perform a heap sort operation on the previous data structure after insertion to obtain the current data structure; According to the current data structure, the current auxiliary structure is obtained; and according to the previous state vector, the current state vector is generated.

5. The method according to claim 4, characterized in that The ciphertext data of the target data to be inserted at the current time is obtained by processing the first data group using the previous state vector and the previous auxiliary structure, including: Extract the auxiliary vector of the root node from the previous auxiliary structure as the current auxiliary vector; According to a preset expansion processing rule, the current auxiliary vector is expanded to obtain an expanded current auxiliary vector; The last selection vector is calculated based on the expanded current auxiliary vector and the last state vector; According to the preset translation rule, the last selected vector is translated to obtain the current selected vector; The first data group is subjected to a dot multiplication process using the current selection vector, so as to extract the ciphertext data of the current target data to be inserted from the first data.

6. The method according to claim 4, characterized in that According to the current data structure, get the current auxiliary structure, including: The ciphertext data of the target data of each node in the current data structure is replaced with the auxiliary vector corresponding to the sub-data group to which the ciphertext data of the target data of the node belongs, so as to obtain the current auxiliary structure.

7. The method according to claim 5, characterized in that Generate the current state vector based on the previous state vector, including: The current state vector is obtained by subtracting the previous selection vector from the vector sum of the previous state vector and the current selection vector.

8. The method according to claim 4, characterized in that Before performing the current preset data processing, the method further includes: Detecting whether the amount of ciphertext data of the target data in the current second data group is equal to a preset amount threshold; wherein the preset amount threshold is determined according to the lengths of the plurality of sub-data groups; When it is detected that the amount of ciphertext data of the target data in the current second data group is equal to a preset amount threshold, the current second data group is determined as a second data group that meets the requirements.

9. The method according to claim 4, characterized in that Based on the initial data structure, the initial auxiliary structure and the first data group, according to the preset protocol rules, by performing multiple preset data processing to obtain a second data group that meets the requirements, it also includes: The first preset data processing is performed as follows: Taking out the ciphertext data of the target data of the root node in the initial data structure and storing it in the second data group; Acquire an initial state vector; and obtain ciphertext data of target data to be inserted for the first time by processing the first data group using the initial state vector and the initial auxiliary structure; Assign the ciphertext data of the target data to be inserted for the first time to the root node in the initial data structure; and perform a heap sort operation on the inserted initial data structure to obtain the first data structure; According to the first data structure, a first auxiliary structure is obtained; and according to the first auxiliary structure, a first state vector is generated.

10. The method according to claim 9, characterized in that Get the initial state vector, including: Generate multiple sub-state vectors; wherein each sub-state vector in the multiple sub-state vectors corresponds to a sub-data group; the number of elements contained in the sub-state vector is the same as the number of ciphertext data of the target data contained in the corresponding sub-data group; the element of the first data bit in the sub-state vector is a preset data value; According to the splicing order of the sub-data groups in the first data group, a plurality of sub-state vectors are spliced ​​to obtain an initial state vector.

11. The method according to claim 1, characterized in that: After acquiring the plurality of sub-data groups, the method further comprises: At least one extended data bit is spliced ​​at the end of the sub-data group; and a maximum floating point number is filled in the extended data bit to obtain a plurality of processed sub-data groups; Correspondingly, a plurality of processed sub-data groups are spliced ​​together to obtain a processed first data group.

12. The method according to claim 1, characterized in that The preset protocol rules include protocol rules based on secure multi-party computing and secret sharing.

13. The method according to claim 1, characterized in that Get multiple sub-data groups, including: Receiving multiple sub-data groups sent by multiple data parties; wherein each of the multiple data parties holds multiple target data; the data party responds to the joint data processing request, performs corresponding encryption processing and sorting processing on the multiple target data held according to preset protocol rules, and obtains corresponding sub-data groups.

14. The method according to claim 13, characterized in that The target data includes numerical feature data.

15. The method according to claim 14, characterized in that After obtaining the second data set that meets the requirements, the method further includes: The target model is obtained by training the second data set that meets the requirements; wherein the target model is used for target data processing.

16. A data processing device based on privacy protection, characterized in that: include: An acquisition module, used to acquire a plurality of sub-data groups, and to concatenate the plurality of sub-data groups to obtain a first data group; wherein each of the plurality of sub-data groups respectively contains ciphertext data of a plurality of target data arranged according to a preset sorting rule; A first construction module is used to construct an initial data structure using the multiple sub-data groups according to a preset protocol rule; wherein the data structure belongs to a preset data structure; A second construction module is used to construct an initial auxiliary structure corresponding to the initial data structure according to the initial data structure and the first data group; wherein the structural shape of the initial auxiliary structure is the same as that of the initial data structure, and the auxiliary vectors of the nodes in the initial auxiliary structure correspond to the sub-data group to which the ciphertext data of the target data of the same node in the initial data structure belongs; A processing module, configured to obtain a second data group that meets the requirements by performing multiple preset data processings based on the initial data structure, the initial auxiliary structure and the first data group according to preset protocol rules; Among them, the first construction module is specifically used to extract the ciphertext data of the target data located at the first data position in the sub-data group respectively, and obtain the ciphertext data of multiple target data; according to the ciphertext data of the multiple target data, an initial data structure is constructed by performing a heap sort operation; wherein, the initial data structure includes multiple structure layers, and the structure layer contains the ciphertext data of the target data of at least one node, and the number of nodes contained in the initial data structure is equal to the number of groups of multiple sub-data groups.

17. A server, characterized in that: The method comprises a processor and a memory for storing processor-executable instructions, wherein the processor implements the steps of the method according to any one of claims 1 to 15 when executing the instructions.

18. A computer-readable storage medium, characterized in that: Computer instructions are stored thereon, and when the instructions are executed by a processor, the steps of the method according to any one of claims 1 to 15 are implemented.

Citation Information

Patent Citations

  • Primary and secondary data structure-based CPU-GPU cooperative computing method

    CN101894051A

  • Data processing method and device and related product

    CN110659290A

  • Data processing method, ciphertext computing platform and plaintext and ciphertext hybrid computing system

    CN113824550A