Multi-Party Joint Sorting Method and Data Processing Method under Privacy Protection

Through the multi-party joint sorting method under privacy protection, the problem that different data parties have difficulty in achieving joint sorting in transaction risk detection is solved, and the secure joint sorting of data and accurate detection of transaction risks is achieved.

CN114255037BActive Publication Date: 2025-06-24SHANGHAI MATRIXELEMENTS TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202111580164.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-12-22
Publication Date
2025-06-24
Estimated Expiration
2041-12-22

AI Technical Summary

Technical Problem

In transaction risk detection scenarios, different data parties hold different characteristic values ​​of the same characteristic data, and it is difficult to achieve joint sorting on the premise of protecting data privacy, resulting in possible leakage of data information and affecting data security.

Method used

The multi-party joint sorting method under privacy protection is adopted. By obtaining target transaction data, calling target model to process data, using preset protocol rules and encryption processing, joint sorting of data is achieved, and a rich and orderly target sequence group is generated to avoid data leakage.

Benefits of technology

On the premise of protecting data privacy, the data of multiple data parties are sorted together to obtain the required target sequence group, enhance data security, and accurately detect transaction risks through the target model.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114255037B_ABST
    Figure CN114255037B_ABST
Patent Text Reader

Abstract

This specification provides a multi-party joint sorting method and a data processing method under privacy protection. Based on the above methods, the computing node can, without revealing the first data and the second data respectively held by the first data party and the second data party, according to the preset protocol rules, first perform joint sorting by horizontally jointly using the ciphertext data of the first data group containing the ciphertext data of the first data and the ciphertext data of the second data group containing the ciphertext data of the second data, to obtain a target sequence group containing the ciphertext data of the first data and the ciphertext data of the second data arranged according to the preset sorting rules. Then, by using the above rich and ordered target sequence group, a target model with better effects that simultaneously integrates the data features of the first data and the second data is trained. Furthermore, the above target model can be used to accurately detect and determine whether there are transaction risks in the target transaction data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This specification belongs to the field of Internet technologies, and particularly relates to a multi-party joint sorting method and a data processing method under privacy protection. Background Art

[0002] In a transaction risk detection scenario, different data parties may respectively hold the eigenvalue of the same characteristic data of different transaction data. For example, Bank A holds the transfer amount of the first batch of transfer data, and Bank B holds the transfer amount of the second batch of transfer data. Currently, Bank A and Bank B expect to be able to jointly use the data they hold respectively to cooperate in joint sorting, obtain a sequence group that combines the data of both parties and is arranged in descending order of the transfer amount value; at the same time, Bank A and Bank B also require that during the process of cooperating in joint sorting, they should avoid disclosing the data they hold to the other party or other third parties.

[0003] Therefore, there is an urgent need for a method that can realize the joint sorting of data using the data of multiple data parties while protecting the data privacy of the data parties. Summary of the Invention

[0004] This specification provides a multi-party joint sorting method and a data processing method under privacy protection, which can realize the horizontal joint use of the data held by multiple data parties to complete the joint sorting of data under the premise of protecting the data privacy of the data parties, obtain the required rich and ordered target sequence group, avoid the leakage of data information during the joint sorting process, and effectively protect the data security of the data parties.

[0005] An embodiment of this specification provides a data processing method, including:

[0006] Obtain target transaction data;

[0007] Call a target model to process the target transaction data to obtain a corresponding target processing result; wherein, the target model is trained using a target sequence group; the target sequence group includes ciphertext data of first data and ciphertext data of second data arranged according to a preset sorting rule; the target sequence group is obtained by the first data party holding the first data and the second data party holding the second data through joint sorting according to a preset protocol rule.

[0008] Determine whether there is a transaction risk in the target transaction data according to the target processing result.

[0009] An embodiment of this specification also provides a multi-party joint sorting method under privacy protection, which is applied to a computing node and includes:

[0010] Determine the ciphertext data of the current first selection vector and the ciphertext data of the current second selection vector based on the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector;

[0011] Determine the ciphertext data of the current first data from the ciphertext data of the first data group using the ciphertext data of the current first selection vector; Determine the ciphertext data of the current second data from the ciphertext data of the second data group using the ciphertext data of the current second selection vector;

[0012] According to the preset protocol rules, call the preset comparison function to process the ciphertext data of the current first data and the ciphertext data of the current second data to obtain the ciphertext data of the current comparison result;

[0013] According to the ciphertext data of the current comparison result, save one of the ciphertext data of the current first data and the ciphertext data of the current second data in the target data group to obtain a target sequence group containing the ciphertext data of the first data and the ciphertext data of the second data arranged according to the preset sorting rules.

[0014] In some embodiments, before determining the ciphertext data of the current first selection vector and the ciphertext data of the current second selection vector based on the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector, the method further includes:

[0015] Receive the ciphertext data of the first data group and the ciphertext data of the second data group; wherein, the ciphertext data of the first data group is obtained by the first data party arranging the first data held according to the preset sorting rules and performing encryption processing according to the preset protocol rules; the ciphertext data of the second data group is obtained by the second data party arranging the second data held according to the preset sorting rules and performing encryption processing according to the preset protocol rules.

[0016] In some embodiments, after receiving the ciphertext data of the first data group and the ciphertext data of the second data group, the method further includes:

[0017] Respond to the joint sorting request to generate the ciphertext data of the initialized first selection vector and the ciphertext data of the initialized second selection vector;

[0018] Determine the ciphertext data of the current first data from the ciphertext data of the first data group using the ciphertext data of the initialized first selection vector; Determine the ciphertext data of the current second data from the ciphertext data of the second data group using the ciphertext data of the initialized second selection vector;

[0019] According to the preset protocol rules, call the preset comparison function to process the ciphertext data of the first data in the current instance and the ciphertext data of the second data in the current instance, and obtain the ciphertext data of the comparison result in the current instance.

[0020] In some embodiments, before determining the ciphertext data of the first selection vector in the current instance and the ciphertext data of the second selection vector in the current instance according to the ciphertext data of the comparison result in the previous instance, the ciphertext data of the first selection vector in the previous instance, and the ciphertext data of the second selection vector in the previous instance, the method further includes:

[0021] Detect whether the current length of the target data group is less than the preset length threshold;

[0022] In the case where it is determined that the current length of the target data group is less than the preset length threshold, obtain the ciphertext data of the comparison result in the previous instance, the ciphertext data of the first selection vector in the previous instance, and the ciphertext data of the second selection vector in the previous instance.

[0023] In some embodiments, determining the ciphertext data of the first selection vector in the current instance and the ciphertext data of the second selection vector in the current instance according to the ciphertext data of the comparison result in the previous instance, the ciphertext data of the first selection vector in the previous instance, and the ciphertext data of the second selection vector in the previous instance includes:

[0024] Based on the preset protocol rules, generate the ciphertext data of the candidate first selection vector in the current instance according to the ciphertext data of the first selection vector in the previous instance; generate the ciphertext data of the candidate second selection vector in the current instance according to the ciphertext data of the second selection vector in the previous instance;

[0025] Call the preset first selection function to determine the ciphertext data of the first selection vector in the current instance from the ciphertext data of the first selection vector in the previous instance and the ciphertext data of the candidate first selection vector in the current instance by processing the ciphertext data of the comparison result in the previous instance; call the preset second selection function to determine the ciphertext data of the second selection vector in the current instance from the ciphertext data of the second selection vector in the previous instance and the ciphertext data of the candidate second selection vector in the current instance by processing the ciphertext data of the comparison result in the previous instance.

[0026] In some embodiments, generating the ciphertext data of the candidate first selection vector in the current instance according to the ciphertext data of the first selection vector in the previous instance based on the preset protocol rules includes:

[0027] Based on the preset protocol rules, shift the elements included in the ciphertext data of the first selection vector in the previous instance by one element position along the preset direction to obtain the ciphertext data of the candidate first selection vector in the current instance.

[0028] In some embodiments, the method further includes:

[0029] Obtain the first length information of the ciphertext data of the first data group provided by the first data party, and the second length information of the ciphertext data of the second data group provided by the second data party;

[0030] Determine a preset length threshold according to the first length information and the second length information.

[0031] In some embodiments, after receiving the ciphertext data of the first data group and the ciphertext data of the second data group, the method further includes:

[0032] Concatenate two padding data bits at the end of the ciphertext data of the first data group, and fill the two padding data bits with the maximum floating-point number to obtain the expanded ciphertext data of the first data group; concatenate two padding data bits at the end of the ciphertext data of the second data group, and fill the two padding data bits with the maximum floating-point number to obtain the expanded ciphertext data of the second data group.

[0033] In some embodiments, when it is determined that the current length of the target data group is equal to the preset length threshold, the method further includes:

[0034] Determine the current target data group as the target sequence group;

[0035] Send the target sequence group to the requester according to the preset protocol rules; wherein, the requester trains a target model according to the target sequence group.

[0036] In some embodiments, the first data includes the transaction characteristics of the first transaction data held by the first data party, and the second data includes the transaction characteristics of the second transaction data held by the second data party;

[0037] Correspondingly, the target model includes a transaction risk detection model.

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

[0039] An embodiment of this specification also provides a multi-party joint sorting method under privacy protection, which is applied to an intermediate computing node and includes:

[0040] Receive the ciphertext data of the first data for the current time provided by the first computing node, and the ciphertext data of the second data for the current time provided by the second computing node; wherein, the first computing node is deployed at the first data party; the first computing node determines the ciphertext data of the first data for the current time according to the ciphertext data of the comparison result of the previous time, the ciphertext data of the first selection vector of the previous time, and the ciphertext data of the first data group held; the second computing node is deployed at the second data party; the second computing node determines the ciphertext data of the second data for the current time according to the ciphertext data of the comparison result of the previous time, the ciphertext data of the second selection vector of the previous time, and the ciphertext data of the second data group held;

[0041] According to the preset protocol rules, call the preset comparison function to process the ciphertext data of the first data for the current time and the ciphertext data of the second data for the current time, and obtain the ciphertext data of the comparison result for the current time; and send the ciphertext data of the comparison result for the current time to the first computing node and the second computing node respectively;

[0042] According to the ciphertext data of the comparison result for the current time, save one of the ciphertext data of the first data for the current time and the ciphertext data of the second data for the current time in the target data group, so as to obtain a target sequence group containing the ciphertext data of the first data and the ciphertext data of the second data arranged according to the preset sorting rules.

[0043] An embodiment of this specification also provides a multi-party joint sorting method under privacy protection, which is applied to a computing node and includes:

[0044] Receive the ciphertext data of multiple data groups provided by multiple data parties;

[0045] Divide the ciphertext data of multiple data groups into multiple groups; wherein, each group in the multiple groups respectively contains the ciphertext data of two data groups;

[0046] According to the preset protocol rules, use the ciphertext data of the data groups included in the group to obtain multiple sequence groups respectively corresponding to the multiple groups; wherein, the sequence group contains the ciphertext data of the data in the corresponding group, and the ciphertext data of the data is arranged according to the preset sorting rules in the sequence group;

[0047] Based on a recursive algorithm, generate a target sequence group according to the multiple sequence groups; wherein, the target sequence group contains the ciphertext data of the data in the ciphertext data of multiple data groups arranged according to the preset sorting rules.

[0048] An embodiment of this specification also provides a data processing device, including:

[0049] An acquisition module, configured to acquire target transaction data;

[0050] A calling module, configured to call a target model to process the target transaction data and obtain a corresponding target processing result; wherein, the target model is trained using a target sequence group; the target sequence group includes ciphertext data of first data and ciphertext data of second data arranged according to a preset sorting rule; the target sequence group is jointly sorted by a first data party holding the first data and a second data party holding the second data according to a preset protocol rule.

[0051] A determining module, configured to determine whether there is a transaction risk for the target transaction data according to the target processing result.

[0052] An embodiment of this specification further provides a multi-party joint sorting device under privacy protection, which is applied to a computing node and includes:

[0053] A first determining module, configured to determine the ciphertext data of the current first selection vector and the ciphertext data of the current second selection vector according to the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector.

[0054] A second determining module, configured to determine the ciphertext data of the current first data from the ciphertext data of the first data group using the ciphertext data of the current first selection vector; and determine the ciphertext data of the current second data from the ciphertext data of the second data group using the ciphertext data of the current second selection vector.

[0055] A calling module, configured to call a preset comparison function to process the ciphertext data of the current first data and the ciphertext data of the current second data according to a preset protocol rule, and obtain the ciphertext data of the current comparison result.

[0056] A saving module, configured to save one of the ciphertext data of the current first data and the ciphertext data of the current second data in a target data group according to the ciphertext data of the current comparison result, so as to obtain a target sequence group including ciphertext data of first data and ciphertext data of second data arranged according to a preset sorting rule.

[0057] An embodiment of this specification further provides a server, including a processor and a memory for storing processor-executable instructions, and when the processor executes the instructions, the steps of the data processing method or the multi-party joint sorting method under privacy protection are implemented.

[0058] An embodiment of this specification further provides a computer-readable storage medium, on which computer instructions are stored, and when the instructions are executed, the steps of the data processing method or the multi-party joint sorting method under privacy protection are implemented.

[0059] Based on the multi-party joint sorting method and data processing method provided in this specification under privacy protection, the computing node can, without disclosing the first data and the second data held by the first data party and the second data party respectively, according to the preset protocol rules, first horizontally jointly use the ciphertext data of the first data group containing the ciphertext data of the first data and the ciphertext data of the second data group containing the ciphertext data of the second data, and through joint sorting, obtain a target sequence group containing the ciphertext data of the first data and the ciphertext data of the second data arranged according to the preset sorting rules. Then, by using the above rich and ordered target sequence group, train a target model with good effects that simultaneously integrates the data features of the first data and the second data. Furthermore, the above target model can be used to accurately detect and determine whether there is a transaction risk in the target transaction data. Thus, it is possible to achieve horizontal joint use of the data of multiple data parties to complete the joint sorting of data, obtain the required rich and ordered target sequence group, avoid the leakage of data information during the sorting process, and effectively protect the data security of the data parties. Further, it is also possible to use the above target sequence group that integrates the data of multiple data parties and is arranged according to the preset sorting rules to train a target model with good effects and high accuracy. Furthermore, the target model can be used for more accurate data processing to reduce data processing errors. BRIEF DESCRIPTION OF THE DRAWINGS

[0060] 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 those of ordinary skill in the art, without creative efforts, other drawings can also be obtained based on these drawings.

[0061] Figure 1 is a flowchart of the data processing method provided by an embodiment of this specification;

[0062] Figure 2 is a flowchart of the multi-party joint sorting method under privacy protection provided by an embodiment of this specification;

[0063] Figure 3 is a schematic diagram of an embodiment of applying the multi-party joint sorting method under privacy protection provided by an embodiment of this specification in a scenario example;

[0064] Figure 4 is a schematic diagram of an embodiment of applying the multi-party joint sorting method under privacy protection provided by an embodiment of this specification in a scenario example;

[0065] Figure 5It is a schematic diagram of an embodiment of applying the multi-party joint sorting method under privacy protection provided by the embodiments of this specification in a scenario example;

[0066] Figure 6 It is a schematic diagram of an embodiment of applying the multi-party joint sorting method under privacy protection provided by the embodiments of this specification in a scenario example;

[0067] Figure 7 It is a flowchart of the multi-party joint sorting method under privacy protection provided by an embodiment of this specification;

[0068] Figure 8 It is a schematic diagram of an embodiment of applying the multi-party joint sorting method under privacy protection provided by the embodiments of this specification in a scenario example;

[0069] Figure 9 It is a flowchart of the multi-party joint sorting method under privacy protection provided by an embodiment of this specification;

[0070] Figure 10 It is a schematic diagram of an embodiment of applying the multi-party joint sorting method under privacy protection provided by the embodiments of this specification in a scenario example;

[0071] Figure 11 It is a schematic diagram of an embodiment of applying the multi-party joint sorting method under privacy protection provided by the embodiments of this specification in a scenario example;

[0072] Figure 12 It is a schematic diagram of the structural composition of a server provided by an embodiment of this specification;

[0073] Figure 13 It is a schematic diagram of the structural composition of a data processing device provided by an embodiment of this specification;

[0074] Figure 14 It is a schematic diagram of the structural composition of a multi-party joint sorting device under privacy protection provided by an embodiment of this specification. Detailed implementation manners

[0075] In order to enable those skilled in the art to better understand the technical solutions in this specification, the following will clearly and completely describe the technical solutions in the embodiments of this specification in conjunction with the accompanying drawings in the embodiments of this specification. Obviously, the described embodiments are only a part of the embodiments of this specification, rather than all the embodiments. Based on the embodiments in this specification, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the scope of protection of this specification.

[0076] Refer to Figure 1As shown in the figure, an embodiment of this specification provides a data processing method. Specifically, this method is applied to the server side. Specifically, when implemented, this method may include the following:

[0077] S101: Obtain target transaction data;

[0078] S102: Invoke a target model to process the target transaction data to obtain a corresponding target processing result; where the target model is trained using a target sequence group; the target sequence group includes ciphertext data of first data and ciphertext data of second data arranged according to a preset sorting rule; the target sequence group is jointly sorted by a first data party holding the first data and a second data party holding the second data according to a preset protocol rule;

[0079] S103: Determine whether there is a transaction risk in the target transaction data according to the target processing result.

[0080] In this embodiment, the above server may specifically include a background server applied to the business platform (for example, a transaction risk monitoring platform) side, which can implement functions such as data transmission and data processing. Specifically, the server may be, for example, an electronic device with data operation, storage, and network interaction functions. Or, the server may also be a software program running in the electronic device that provides support for data processing, storage, and network interaction. In this embodiment, the number of the servers is not specifically limited. The server may specifically be one server, or several servers, or a server cluster formed by several servers.

[0081] In some embodiments, the above target transaction data may specifically be understood as transaction data to be detected for transaction risk. Among them, the above target transaction data may specifically be transfer data, or order data, or payment data, etc. Of course, the above-listed target transaction data is only an illustrative description. Specifically, when implemented, according to the specific application scenario and processing requirements, the above target transaction data may also include other types of transaction data. Regarding this, this specification does not make a limitation.

[0082] In some implementation examples, the above target model may specifically be a transaction risk detection model. Correspondingly, the above target model may specifically be understood as a neural network model that can predict whether there is a transaction risk in the input transaction data based on the data characteristics of the transaction data.

[0083] Among them, the above target model may specifically be pre-trained using a target sequence group. Among them, the above target sequence group may specifically include ciphertext data of first data and ciphertext data of second data arranged according to a preset sorting rule.

[0084] It should be noted that the above first data may specifically be the transaction characteristics (such as transaction amount, etc.) of the first transaction data held by the first data party (for example, Bank A). The above second data may specifically be the same type of transaction characteristic (such as also the transaction amount) of different transaction data (such as the second transaction data) held by the second data party (for example, Bank B).

[0085] The above transaction characteristics may specifically be a numerical feature data. Specifically, for example, the above transaction characteristics may be the transaction amount, may also be the transaction time, or may also be the transaction frequency, the number of transactions, and so on.

[0086] The above preset sorting rules may specifically include: a sorting rule of arranging in ascending order according to the data value of the transaction characteristics, or a sorting rule of arranging in descending order according to the data value of the transaction characteristics, etc.

[0087] The above target sequence group can be understood as a data group that simultaneously integrates the first data held by the first data party and the second data held by the second data party, and is arranged according to the preset sorting rules, that is, a rich and ordered data group.

[0088] Correspondingly, when training the model using the above target sequence group, the data characteristics of the first data and the second data can be learned simultaneously, effectively expanding the learning samples, so that the finally trained target model can have relatively higher model accuracy and better generalization performance.

[0089] In some embodiments, the above target sequence group may specifically be obtained by applying the multi-party joint sorting method under privacy protection provided by the embodiments of this specification, and based on the preset protocol rules, through horizontally jointly using the data of the two data parties for joint sorting on the premise of protecting the data privacy of the first data party and the second data party. The specific process of joint sorting will be described separately later.

[0090] In some embodiments, during specific implementation, the server may use the target transaction data as the model input and input it into the target model, and run the target model. The target model can output the corresponding target processing result by processing the target data. Correspondingly, the server can determine whether there is a transaction risk for the target transaction data according to the target result.

[0091] Furthermore, when the server determines that there is a transaction risk for the target transaction data, it can set a risk label on the target transaction data and continuously monitor the transaction data with the risk label set.

[0092] Through the above embodiments, on the premise of protecting the data privacy of the data provider in advance, a target model with high accuracy and good generalization can be trained by using a target sequence group that comprehensively combines the data held by different data providers and is arranged according to a preset sorting rule; furthermore, the target model can be used to accurately detect and determine whether there is a transaction risk in the target transaction data.

[0093] Referring to Figure 2 As shown, the embodiments of the present specification also provide a multi-party joint sorting method under privacy protection, where the method is specifically applied to the computing node side. Specifically, the method may include the following:

[0094] S201: Determine the ciphertext data of the current first selection vector and the ciphertext data of the current second selection vector according to the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector;

[0095] S202: Use the ciphertext data of the current first selection vector to determine the ciphertext data of the current first data from the ciphertext data of the first data group; use the ciphertext data of the current second selection vector to determine the ciphertext data of the current second data from the ciphertext data of the second data group;

[0096] S203: According to the preset protocol rules, call the preset comparison function to process the ciphertext data of the current first data and the ciphertext data of the current second data to obtain the ciphertext data of the current comparison result;

[0097] S204: According to the ciphertext data of the current comparison result, save one of the ciphertext data of the current first data and the ciphertext data of the current second data in the target data group to obtain a target sequence group containing the ciphertext data of the first data and the ciphertext data of the second data arranged according to the preset sorting rule.

[0098] In some embodiments, the above computing node can be specifically understood as a secure computing node configured with preset protocol rules, a first selection function, a second selection function, and a preset comparison function. Among them, the above computing node can be specifically understood as an entity device or functional module with certain data processing capabilities. Specifically, the above computing node can be a server, a computer, a smart phone, a computing chip, etc., or a computing unit, an operation module, a processing system, etc. The above computing node can specifically include one or more computing nodes.

[0099] In some embodiments, the above preset protocol rules may specifically include protocol rules based on secure multi-party computation (MPC) and secret sharing.

[0100] Among them, the above-mentioned Secret Sharing (SS), also known as secret sharing, can specifically refer to a multi-party security protocol. Based on secret sharing, a secret can be split in an appropriate way. Each split share (denoted 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 cooperate together can the secret message be recovered.

[0101] The above-mentioned Secure Muti-Party Computation (MPC) can specifically refer to an algorithm for protecting data privacy and security. Multi-party secure computation enables multiple data parties to perform collaborative computations without revealing their own data.

[0102] 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, both communication parties cannot know the specific data input by the other party, enabling the two communication parties to transmit data information in a way of selective obfuscation.

[0103] Correspondingly, the above-mentioned first selection function, second selection function, and preset comparison function can specifically be encrypted functions for protecting data privacy constructed based on the above-mentioned preset protocol rules. In this way, during the process of the computing node performing corresponding function operations using the above-mentioned first selection function, second selection function, and preset comparison function, it is also impossible to know the true plaintext value of the operation result, thereby being able to better protect the data privacy of the data parties.

[0104] In some embodiments, specifically, reference can be made to Figure 3 As shown, the above-mentioned computing node can be respectively connected to the first data party and the second data party. Among them, the first data party holds the first data, and the second data party holds the second data. The above-mentioned first data and second data can specifically be the same type of attribute characteristics of different data objects. Specifically, the above-mentioned first data and second data belong to numerical feature data.

[0105] Specifically, for example, the above-mentioned first data party may be Shopping Website A, and the above-mentioned second data party may be Shopping Website B. Correspondingly, the above-mentioned first data may be the transaction characteristics of the first transaction data (for example, the shopping order data of Shopping Website A in the most recent week) (such as the payment amount in the order), and the above-mentioned second data may be the same type of transaction characteristics of the second transaction data (for example, the shopping order data of Shopping Website B in the most recent week) (such as also the payment amount in the order). It should be noted that the collection and use of the above-mentioned first data and second data have been pre-approved and authorized by the user, and the leakage of the user's privacy information will not be involved during the process of collecting and using the above-mentioned data.

[0106] In some embodiments, the above-mentioned preset sorting rule may specifically be a sorting rule based on the numerical value of the data. For example, a sorting rule from small to large based on the numerical value of the data, or a sorting rule from large to small based on the numerical value of the data.

[0107] Currently, the first data party and the second data party expect to cooperate, respectively utilize the data they hold, interact with the computing node, and obtain a target sequence group that simultaneously includes the first data and the second data and the data included is arranged according to the preset sorting rule through joint sorting; at the same time, it is also required that during the process of joint sorting, the data privacy of both parties should be protected to avoid leaking the data held by oneself to the other party or other third parties.

[0108] In some embodiments, during specific implementation, any one of the first data party, the second data party, and the computing node may initiate a joint sorting request first.

[0109] In some embodiments, referring to Figure 4 As shown, the first data party may respond to the joint sorting request, first sort the held first data according to the preset sorting rule according to the preset protocol rule to obtain the corresponding first data group; then encrypt each first data in the first data column according to the preset protocol rule to obtain the ciphertext data of the corresponding first data group. Among them, the ciphertext data of the first data group includes the ciphertext data of the first data arranged according to the preset sorting rule. Then, the first data party may send the above-mentioned ciphertext data of the first data group to the computing node.

[0110] Similarly, the second data party may respond to the joint sorting request, generate the ciphertext data of the second data group by using the held second data; and send the ciphertext data of the second data group to the computing node. Among them, the ciphertext data of the second data group includes the ciphertext data of the second data arranged according to the preset sorting rule.

[0111] Among them, the ciphertext data of the first data group (which can be denoted as A[i]) and the ciphertext data of the second data group (which can be denoted as B[j]) can specifically be ciphertext data in vector form.

[0112] Since the first data party and the second data party send the ciphertext data of the first data group and the ciphertext data of the second data group to the computing node, and the computing node does not have the corresponding decryption key. Therefore, the computing node also cannot know the plaintext data of the real first data and the plaintext data of the real second data. This can effectively avoid leaking the data held by the first data party and the second data party to the computing node. At the same time, since the transmitted data is ciphertext data, it can also prevent other third parties from intercepting the data midway, resulting in the leakage of the data held by the first data party and the second data party.

[0113] In some embodiments, for the computing node, before determining the ciphertext data of the current first selection vector and the ciphertext data of the current second selection vector according to the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector, when the method is specifically implemented, it may further include the following: receiving the ciphertext data of the first data group and the ciphertext data of the second data group; among them, the ciphertext data of the first data group is obtained by the first data party arranging the first data held according to a preset sorting rule and encrypting it according to a preset protocol rule; the ciphertext data of the second data group is obtained by the second data party arranging the second data held according to a preset sorting rule and encrypting it according to a preset protocol rule.

[0114] In some embodiments, for the computing node, refer to Figure 4 As shown, after receiving the ciphertext data of the first data group and the ciphertext data of the second data group, when the method is specifically implemented, the first comparison can also be performed in the following manner:

[0115] S1: Respond to the joint sorting request, and generate the ciphertext data of the initialized first selection vector and the ciphertext data of the initialized second selection vector;

[0116] S2: Use the ciphertext data of the initialized first selection vector to determine the ciphertext data of the current first data from the ciphertext data of the first data group; use the ciphertext data of the initialized second selection vector to determine the ciphertext data of the current second data from the ciphertext data of the second data group;

[0117] S3: According to the preset protocol rule, call the preset comparison function to process the ciphertext data of the current first data and the ciphertext data of the current second data, and obtain the ciphertext data of the current comparison result.

[0118] In some embodiments, when performing the first comparison, the computing node may use one-hot vectors as the initialized first selection vector and the initialized second selection vector. Then, the computing node may encrypt the initialized first selection vector and the initialized second selection vector according to preset protocol rules to obtain the ciphertext data of the initialized first selection vector and the ciphertext data of the initialized second selection vector, which are used as the ciphertext data of the current first selection vector and the ciphertext data of the current second selection vector used in the first comparison.

[0119] In some embodiments, the ciphertext data of the first data group sent by the first data direction computing node may also carry first length information. Wherein, the first length information is used to represent the number of first data included in the first data group. Similarly, the ciphertext data of the second data group sent by the second data direction computing node may also carry second length information.

[0120] Correspondingly, the computing node may generate an initialized first selection vector according to the first length information. For example, the computing node determines that the number of first data included in the first data group is N according to the obtained first length information; and then may generate a one-hot vector [1, 0, 0 ……, 0] with N elements, where only the first element is 1 and the other elements are 0 as the initialized first selection vector (which can be denoted as A_index(1)). Similarly, the computing node may generate an initialized second selection vector (which can be denoted as B_index(1)) according to the second length information.

[0121] In some embodiments, when performing the first comparison, the computing node may perform a dot product calculation on the ciphertext data of the initialized first selection vector and the ciphertext data of the first data group, and use the calculated result as the ciphertext data of the current first data, so as to select the ciphertext data of the first data in the first comparison (which can be denoted as a1) from the ciphertext data of the first data group. Refer to Figure 4 as shown.

[0122] Similarly, the computing node may select the ciphertext data of the second data in the first comparison (which can be denoted as b1) from the ciphertext data of the second data group by performing a dot product calculation on the ciphertext data of the initialized second selection vector and the ciphertext data of the second data group.

[0123] In some embodiments, when performing the first comparison, the computing node may input the ciphertext data a1 of the first data participating in the first comparison and the ciphertext b1 of the second data into a preset comparison function according to the preset protocol rules, and calculate the ciphertext data of the comparison result of the current time (i.e., the ciphertext data of the comparison result of the first comparison, which can be denoted as c(1)), which can be specifically expressed in the following form: c(1) = private_compare(a1, b1).

[0124] Among them, c1 is also ciphertext data, which is used to represent the comparison result determined after numerically comparing the input a1 and b1 under the premise of privacy protection based on the preset comparison function (private_compare).

[0125] For example, according to the preset protocol rules, when a1 is less than or equal to b1, c(1) may be ciphertext data with a plaintext string of "1". Among them, the plaintext string "1" indicates that the ciphertext data of the first data in the current comparison is less than or equal to the ciphertext data of the second data. On the contrary, when a1 is greater than b1, c(1) may be ciphertext data with a plaintext string of "0". Among them, the plaintext string "0" indicates that the ciphertext data of the first data in the current comparison is greater than the ciphertext data of the second data.

[0126] In some embodiments, the computing node is further configured with a third selection function. Among them, the third selection function can specifically be an encrypted function for protecting data privacy constructed based on the preset protocol rules.

[0127] When performing the first comparison, the computing node may input the ciphertext data a1 of the first data of the current time, the ciphertext data b1 of the second data of the current time, and the ciphertext data c(1) of the comparison result of the current time into the third selection function together. The third selection function can select the ciphertext data with a relatively smaller numerical value of a plaintext data from a1 and b1 according to c(1), and save it in the target data group in order.

[0128] Specifically, for example, when c(1) is ciphertext data with a plaintext string of "1", by running the third selection function, a1 can be selected from a1 and b1 according to c(1), and only a1 is saved in the target sequence group. Since the current time is the first comparison, a1 will be saved in the first position in the target sequence group in order. It is also possible to save a1 in the target sequence group and set a data label "1" indicating the first comparison on a1. Thus, the first comparison is completed.

[0129] In the above processing process, since the input a1 and b1 of the function, as well as the output c(1) of the function, are all ciphertext data, and the function used is also a function encrypted based on a preset protocol rule. Therefore, on the one hand, the computing node (including other data parties) cannot know what data is selected from the ciphertext data of the first data group and the ciphertext data of the second data group to participate in the current comparison; on the other hand, it cannot know the specific comparison result, that is, it cannot know which data group's data is specifically retained in the target sequence group after the current comparison. Thus, it can better protect the data privacy of the data parties and avoid the disclosure of the data held by the data parties (such as the first data and the second data) and related information (such as which data party's data has a relatively larger value, which data party's data is retained in the current time, etc.), effectively protecting the data security of the data parties.

[0130] After completing the first comparison in the above manner, the next comparison (such as the second comparison, the third comparison, etc.) can be continued. Taking a certain current comparison (such as the p-th comparison) after the first comparison as an example, a specific description is given below.

[0131] In some embodiments, refer to Figure 5 As shown, the computing node can first obtain the ciphertext data of the comparison result of the previous time (the (p - 1)-th time) (such as c(p - 1)), the ciphertext data of the first selection vector of the previous time (such as A_index(p - 1)), and the ciphertext data of the second selection vector of the previous time (such as B_index(p - 1)); and determine the ciphertext data of the first selection vector of the current time (such as it can be denoted as A_index(p)) and the ciphertext data of the second selection vector of the current time (such as it can be denoted as B_index(p)) according to the ciphertext data of the comparison result of the previous time, the ciphertext data of the first selection vector of the previous time, and the ciphertext data of the second selection vector of the previous time.

[0132] In some embodiments, the above determination of the ciphertext data of the first selection vector of the current time and the ciphertext data of the second selection vector of the current time according to the ciphertext data of the comparison result of the previous time, the ciphertext data of the first selection vector of the previous time, and the ciphertext data of the second selection vector of the previous time may specifically include the following content:

[0133] S1: Based on a preset protocol rule, generate the ciphertext data of the candidate first selection vector of the current time (such as it can be denoted as A_index(p)’) according to the ciphertext data of the first selection vector of the previous time; generate the ciphertext data of the candidate second selection vector of the current time (such as it can be denoted as B_index(p)’) according to the ciphertext data of the second selection vector of the previous time;

[0134] S2: Call the preset first selection function (for example, it can be denoted as private_select1) to determine the ciphertext data of the current first selection vector from the ciphertext data of the previous first selection vector and the ciphertext data of the current candidate first selection vector by processing the ciphertext data of the previous comparison result; call the preset second selection function (for example, it can be denoted as private_select2) to determine the ciphertext data of the current second selection vector from the ciphertext data of the previous second selection vector and the ciphertext data of the current candidate second selection vector by processing the ciphertext data of the previous comparison result.

[0135] In some embodiments, taking the case of determining the ciphertext data of the current first selection vector as an example, based on the preset protocol rules, the ciphertext data of the current candidate first selection vector is generated according to the ciphertext data of the previous first selection vector. Specifically, it may include the following content: Based on the preset protocol rules, the elements included in the ciphertext data of the previous first selection vector are translated by one element position along the preset direction to obtain the ciphertext data of the current candidate first selection vector. Among them, the above preset direction may specifically be to the right or to the left.

[0136] Specifically, for example, the ciphertext data of the previous first selection vector (A_index(p - 1)) is [g1, g2, g3, g4, g5]. Among them, the elements g1, g2, g3, g4, g5 included in the ciphertext data of the previous first selection vector are encrypted data respectively. Specifically, according to the preset protocol rules, the elements in [g1, g2, g3, g4, g5] can be translated by one data position along the left direction to obtain the translated ciphertext vector [g2, g3, g4, g5, g1], and this ciphertext vector can be determined as the ciphertext data of the current candidate first selection vector, that is, A_index(p).

[0137] After obtaining the ciphertext data of the current candidate first selection vector in the above manner, the ciphertext data of the previous first selection vector, the ciphertext data of the current candidate first selection vector, and the ciphertext data of the previous comparison result can be respectively proxied to the first selection function in the following manner, and the ciphertext data of the current first selection vector is obtained by running this first selection function: A_index(p) = private_select1(A_index(p - 1), A_index(p)', c(p - 1)).

[0138] When specifically running the above first selection function, the first selection function can select a ciphertext vector from A_index(p - 1) and A_index(p)' according to the specific value of c(p - 1) as the output. For example, when the first selection function recognizes that the value of c(p - 1) is the ciphertext data of the plaintext string "1", it selects and outputs A_index(p)' as the ciphertext data of the first selection vector for the current time. On the contrary, when the first selection function recognizes that the value of c(p - 1) is the ciphertext data of the plaintext string "0", it selects and outputs A_index(p - 1) as the ciphertext data of the first selection vector for the current time.

[0139] The process of determining the ciphertext data of the second selection vector for the current time is similar to the process of determining the ciphertext data of the first selection vector for the current time above. The ciphertext data of the second selection vector for the current time is obtained by running the second selection function: B_index(p) = private_select2(B_index(p - 1), B_index(p)', c(p - 1)).

[0140] When specifically running the above second selection function, the second selection function can select a ciphertext vector from B_index(p - 1) and B_index(p)' according to the specific value of c(p - 1) as the output. For example, when the second selection function recognizes that the value of c(p - 1) is the ciphertext data of the plaintext string "1", it selects and outputs B_index(p - 1) as the ciphertext data of the second selection vector for the current time. On the contrary, when the second selection function recognizes that the value of c(p - 1) is the ciphertext data of the plaintext string "0", it selects and outputs B_index(p)' as the ciphertext data of the second selection vector for the current time.

[0141] After calculating the ciphertext data of the first selection vector for the current time and the ciphertext data of the second selection vector for the current time in the above manner, the computing node can use the ciphertext data of the first selection vector for the current time to perform a dot product calculation with the ciphertext data of the first data group, and use the calculated result as the ciphertext data of the first data for the current time, so as to select the ciphertext data of the first data participating in the current comparison from the ciphertext data of the first data group (which can be denoted as ap). Similarly, the ciphertext data of the second selection vector for the current time can be used to perform a dot product calculation with the ciphertext data of the second data group, and the calculated result can be used as the ciphertext data of the second data for the current time, so as to select the ciphertext data of the second data participating in the current comparison from the ciphertext data of the second data group (which can be denoted as bp).

[0142] Next, the computing node can call a preset comparison function according to the preset protocol rules in the following manner to obtain the ciphertext data of the current comparison result: c(p) = private_compare(ap, bp). Refer to Figure 5 as shown.

[0143] Furthermore, based on the ciphertext data of the current comparison result, the ciphertext data with a relatively smaller plaintext data value can be selected from the ciphertext data ap of the current first data and the ciphertext data bp of the current second data, and it can be stored in the target data group in sequence next to the ciphertext data stored during the previous comparison. Alternatively, the ciphertext data can be directly saved in the target data group, and a data label "p" indicating the current comparison can be set on the ciphertext data. Thus, the current comparison is completed.

[0144] In some embodiments, before specific implementation, it is also possible to first determine whether to trigger the execution of the current comparison.

[0145] In some embodiments, before determining the ciphertext data of the current first selection vector and the ciphertext data of the current second selection vector based on the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector, when the method is specifically implemented, it may further include the following content:

[0146] S1: Detect whether the current length of the target data group is less than a preset length threshold;

[0147] S2: When it is determined that the current length of the target data group is less than the preset length threshold, obtain the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector.

[0148] Among them, the above-mentioned preset length threshold can be calculated based on the first length information and the second length information. Specifically, the sum of the first length information and the second length information can be used as the preset length threshold.

[0149] When specifically implemented, when it is detected that the current length of the target data group is less than the preset length threshold, the execution of the above-mentioned current comparison can be triggered. On the contrary, when it is detected that the current length of the target data group is greater than or equal to the preset length threshold, the execution of the current comparison is no longer triggered, and the current data group is determined as the target sequence group that has been jointly sorted.

[0150] Specifically, based on a recursive algorithm, multiple comparisons can be performed in the above manner until it is detected that the current length of the target data group is greater than or equal to the preset length threshold, and the joint sorting is completed to obtain the target sequence group.

[0151] In some embodiments, when the method is specifically implemented, the following may further be included: obtaining first length information of ciphertext data of a first data group provided by a first data party, and second length information of ciphertext data of a second data group provided by a second data party; and determining a preset length threshold according to the first length information and the second length information.

[0152] In some embodiments, further, considering that the following situation may occur, after multiple comparisons, the ciphertext data of all the data included in the ciphertext data of a certain data group have been saved into the target data group, while there are still ciphertext data of multiple data remaining in the ciphertext data of another data group and have not been saved into the target data group. In this case, continuing the above comparison is likely to disclose the association information that the data included in the ciphertext data of a certain data group is relatively less than that of the ciphertext data of another data group. To avoid the disclosure of the above association information and better protect the data privacy of the data party, refer to Figure 6 As shown, the ciphertext data of the first data group and the ciphertext data of the second data group may also be respectively subjected to an expansion process.

[0153] In some embodiments, after receiving the ciphertext data of the first data group and the ciphertext data of the second data group, when the method is specifically implemented, the following may further be included: concatenating two expansion data bits at the end of the ciphertext data of the first data group, and filling the two expansion data bits with the maximum floating-point number (for example, it can be denoted as max) to obtain the expanded ciphertext data of the first data group; concatenating two expansion data bits at the end of the ciphertext data of the second data group, and filling the two expansion data bits with the maximum floating-point number to obtain the expanded ciphertext data of the second data group.

[0154] After obtaining the above-expanded ciphertext data of the first data group and the expanded ciphertext data of the second data group, the expanded ciphertext data of the first data group and the expanded ciphertext data of the second data group may be used to participate in subsequent comparisons instead of the original ciphertext data of the first data group and the ciphertext data of the second data group, so as to more effectively protect the data privacy of the data party and avoid the disclosure of association information.

[0155] In some embodiments, when specifically performing the expansion process, a preset number of data bits may also be concatenated at the end of the ciphertext data of the first data group and the ciphertext data of the second data group respectively. Wherein, the preset number is an integer greater than or equal to 2.

[0156] In some embodiments, when it is determined that the current length of the target data group is equal to a preset length threshold, the specific implementation of the method may further include the following: determining the current target data group as the target sequence group; sending the target sequence group to the demanding party according to the preset protocol rules; wherein, the demanding party trains a target model according to the target sequence group.

[0157] Among them, the above-mentioned demanding party may specifically be the first data party, or the second data party, or other third data parties who have the right to use the target sequence group according to the preset cooperation agreement.

[0158] In some embodiments, after obtaining the target sequence group, the demanding party may first perform data binning processing on the target sequence group to obtain multiple ordered data groups; then use the multiple ordered data groups for model training to obtain a target model that meets the requirements. After obtaining the target model, specific data processing may be performed using the target model. For example, transaction risk prediction, graphic and text information recognition, etc. may be performed using the target model.

[0159] In some embodiments, the first data may specifically include the transaction characteristics of the first transaction data held by the first data party, and the second data may specifically include the transaction characteristics of the second transaction data held by the second data party; correspondingly, the target model may specifically include a transaction risk detection model. Among them, the above-mentioned transaction characteristics may specifically be attribute characteristics including numerical types. For example, transaction amount, transaction frequency, transaction quantity, etc.

[0160] Of course, the above-listed first data, second data, and target model are only illustrative. In specific implementation, according to the specific application scenario and processing requirements, the above first data, second data, and target model may also include other types of feature data and models. Regarding this, this specification does not make any limitations.

[0161] As can be seen from the above, based on the multi-party joint sorting method under privacy protection provided by the embodiments of this specification, the computing node can, without disclosing the first data and the second data respectively held by the first data party and the second data party, according to the preset protocol rules, horizontally jointly use the ciphertext data of the first data group containing the ciphertext data of the first data and the ciphertext data of the second data group containing the ciphertext data of the second data to obtain a target sequence group containing the ciphertext data of the first data and the ciphertext data of the second data arranged according to the preset sorting rules, avoiding disclosing the data and associated information held by itself to the other party or other data parties during the joint sorting process, thereby being able to better protect the data security of the data parties.

[0162] Refer to Figure 7As shown in the figure, the embodiment of the present specification also provides another multi-party joint sorting method under privacy protection. This method can be specifically applied to an intermediate computing node. When this method is specifically implemented, it may include the following content.

[0163] S701: Receive the ciphertext data of the first data of the current time provided by the first computing node, and the ciphertext data of the second data of the current time provided by the second computing node; wherein, the first computing node is arranged at the first data party; the first computing node determines the ciphertext data of the first data of the current time according to the ciphertext data of the comparison result of the previous time, the ciphertext data of the first selection vector of the previous time, and the ciphertext data of the first data group held; the second computing node is arranged at the second data party; the second computing node determines the ciphertext data of the second data of the current time according to the ciphertext data of the comparison result of the previous time, the ciphertext data of the second selection vector of the previous time, and the ciphertext data of the second data group held;

[0164] S702: According to the preset protocol rules, call the preset comparison function to process the ciphertext data of the first data of the current time and the ciphertext data of the second data of the current time, and obtain the ciphertext data of the comparison result of the current time; and send the ciphertext data of the comparison result of the current time to the first computing node and the second computing node respectively;

[0165] S703: According to the ciphertext data of the comparison result of the current time, save one of the ciphertext data of the first data of the current time and the ciphertext data of the second data of the current time in the target data group, so as to obtain a target sequence group containing the ciphertext data of the first data and the ciphertext data of the second data arranged according to the preset sorting rules.

[0166] In some embodiments, reference may be made to Figure 8 As shown in the figure, the system at least includes a first computing node, a second computing node, and an intermediate computing node. Among them, the first computing node is arranged at the first data party, and the second computing node is arranged at the second data party. The first computing node is at least configured with preset protocol rules and a first selection function. The second computing node is at least configured with preset protocol rules and a second selection function. The intermediate computing node is at least configured with preset protocol rules and a preset comparison function. The above intermediate computing node may specifically include one or more computing nodes.

[0167] In some embodiments, when performing the current comparison, the first computing node may determine the ciphertext data of the first data of the current time locally according to the preset protocol rules, the ciphertext data of the comparison result of the previous time, and the first selection function; and send the ciphertext data of the first data of the current time to the intermediate computing node.

[0168] Similarly, the second computing node can locally determine the ciphertext data of the second data for the current time according to the preset protocol rules, the ciphertext data of the previous comparison result, and the second selection function; and send the ciphertext data of the second data for the current time to the intermediate computing node.

[0169] In some embodiments, after completing the current comparison, when the intermediate node saves one of the ciphertext data of the first data for the current time and the ciphertext data of the second data for the current time in the target data group, it can also detect whether the current length of the target data group is equal to the preset length threshold. According to the detection result, when it is determined that the current length of the target data group is less than the preset length threshold, the intermediate computing node can send the ciphertext data of the current comparison result to the first computing node and the second computing node respectively to trigger the next comparison. On the contrary, according to the detection result, when it is determined that the current length of the target data group is equal to the preset length threshold, the intermediate computing node can determine that the joint sorting is over and determine the current target data group as the target sequence group.

[0170] Through the above embodiments, it is possible to prevent the first data group from leaving the first data party and the second data group from leaving the second data party, and more securely and reliably realize obtaining the required target sequence group by horizontally jointly using the ciphertext data of the first data group containing the ciphertext data of the first data and the ciphertext data of the second data group containing the ciphertext data of the second data according to the preset protocol rules without revealing the first data and the second data respectively held by the first data party and the second data party, further protecting the data security of the data parties participating in the joint sorting.

[0171] Refer to Figure 9 As shown, the embodiments of this specification also provide a multi-party joint sorting method under privacy protection involving multiple data parties. This method is specifically applied to computing nodes and may specifically include the following contents in implementation.

[0172] S901: Receive the ciphertext data of multiple data groups provided by multiple data parties;

[0173] S902: Divide the ciphertext data of multiple data groups into multiple groups; where each of the multiple groups contains the ciphertext data of two data groups;

[0174] S903: According to the preset protocol rules, use the ciphertext data of the data groups included in the groups to obtain multiple sequence groups respectively corresponding to the multiple groups; where the sequence group contains the ciphertext data of the data in the corresponding group, and the ciphertext data of the data is arranged in the sequence group according to the preset sorting rules;

[0175] S904: Based on a recursive algorithm, generate a target sequence group according to the multiple sequence groups; wherein, the target sequence group includes ciphertext data of data in multiple data groups arranged according to a preset sorting rule.

[0176] In some embodiments, the above-mentioned multiple data parties may specifically be 3 data parties, 4 data parties, or a greater number of data parties. Among them, each data party holds numerical feature data of the same type for different data objects.

[0177] In some embodiments, specifically, taking the example of processing multiple data parties including 4 data parties: a first data party, a second data party, a third data party, and a fourth data party, refer to Figure 10 as shown. After the computing node receives the ciphertext data of the first data group, the ciphertext data of the second data group, the ciphertext data of the third data group, and the ciphertext data of the fourth data group provided by the first data party, the second data party, the third data party, and the fourth data party, it can first divide the ciphertext data of the above 4 data groups into two groups according to a preset grouping rule or by using a random grouping method. For example, grouping 1 includes the ciphertext data of the first data group and the ciphertext data of the second data group, and grouping 2 includes the ciphertext data of the third data group and the ciphertext data of the fourth data group. Then, according to the preset protocol rule, perform a joint sorting on the above two groups respectively to obtain two sequence groups: sequence group 1 corresponding to grouping 1 and sequence group 2 corresponding to grouping 2. Among them, the above-mentioned sequence group 1 includes the ciphertext data of the first data and the ciphertext data of the second data arranged according to a preset sorting rule. The above-mentioned sequence group 2 includes the ciphertext data of the third data and the ciphertext data of the fourth data arranged according to a preset sorting rule. Then, according to the preset protocol rule, use the above sequence group 1 and sequence group 2 for joint sorting to obtain a target sequence group that combines sequence group 1 and sequence group 2. Among them, this target sequence group includes the ciphertext data of the first data, the ciphertext data of the second data, the ciphertext data of the third data, and the ciphertext data of the fourth data arranged according to a preset sorting rule.

[0178] In some embodiments, specifically, taking the example of processing multiple data parties including 3 data parties: a first data party, a second data party, and a third data party, refer to Figure 11As shown. After receiving the ciphertext data of the first data group, the ciphertext data of the second data group, and the ciphertext data of the third data group provided by the first data party, the second data party, and the third data party respectively, the computing node may first divide the ciphertext data of the above three data groups into two groups according to a preset grouping rule or by using a random grouping method. For example, grouping 1 containing the ciphertext data of the first data group and the ciphertext data of the second data group, and grouping 2 containing only the ciphertext data of the third data group. Then, according to the preset protocol rule, a joint sorting is performed on grouping 1 to obtain the corresponding sequence group 1. Among them, the above sequence group 1 contains the ciphertext data of the first data and the ciphertext data of the second data arranged according to the preset sorting rule. Next, according to the preset protocol rule, the above sequence group 1 and the ciphertext data of the third data group can be used for joint sorting to obtain a target sequence group that combines the sequence group 1 and the ciphertext data of the third data group. Among them, the target sequence group contains the ciphertext data of the first data, the ciphertext data of the second data, and the ciphertext data of the third data arranged according to the preset sorting rule.

[0179] In some embodiments, for a more complex situation involving more data parties, the above method can be referred to. First, pairwise grouping is performed, and then according to the preset protocol rule, joint sorting is performed to determine the sequence group for each group. Then, the obtained sequence groups are pairwise grouped again. By analogy, based on the recursive algorithm, grouping and joint sorting can be continuously performed until finally a sequence group is obtained, which is the target sequence group containing the ciphertext data of the data of multiple data parties arranged according to the preset sorting rule.

[0180] Through the above embodiments, in a relatively complex data processing scenario involving multiple data parties, on the premise of protecting the data privacy of the data parties, it is possible to realize the horizontal joint use of the data of multiple data parties to complete the joint sorting of the data, obtain the required rich and ordered target sequence group, avoid data leakage during the sorting process, and thus effectively protect the data security of the data parties.

[0181] The embodiments of this specification also provide a server, including a processor and a memory for storing processor-executable instructions. When specifically implemented, the processor may execute the following steps according to the instructions: obtaining target transaction data; calling a target model to process the target transaction data to obtain a corresponding target processing result; where the target model is trained using a target sequence group; the target sequence group contains the ciphertext data of the first data and the ciphertext data of the second data arranged according to a preset sorting rule; the target sequence group is obtained by the first data party holding the first data and the second data party holding the second data through joint sorting according to the preset protocol rule; determining whether there is a transaction risk in the target transaction data according to the target processing result.

[0182] To more accurately complete the above instructions, refer to Figure 12 As shown, the embodiment of the present specification also provides another specific server. Among them, the server includes a network communication port 1201, a processor 1202, and a memory 1203. The above structures are connected by internal cables so that each structure can perform specific data interactions.

[0183] Among them, the network communication port 1201 can specifically be used to obtain target transaction data.

[0184] The processor 1202 can specifically be used to call a target model to process the target transaction data to obtain a corresponding target processing result; among them, the target model is trained using a target sequence group; the target sequence group includes ciphertext data of first data and ciphertext data of second data arranged according to a preset sorting rule; the target sequence group is jointly sorted by a first data party holding the first data and a second data party holding the second data according to a preset protocol rule; according to the target processing result, determine whether there is a transaction risk in the target transaction data.

[0185] The memory 1203 can specifically be used to store corresponding instruction programs.

[0186] In this embodiment, the network communication port 1201 can be bound to different communication protocols, so as to send or receive different data virtual ports. For example, the network communication port can be a port responsible for web data communication, can also be a port responsible for FTP data communication, and can also be a port responsible for mail 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.

[0187] In this embodiment, the processor 1202 can be implemented in any suitable manner. For example, the processor can take the form of, for example, a microprocessor or a processor and a computer-readable medium storing computer-readable program code (such as software or firmware) executable by the (micro)processor, logic gates, switches, application specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers, etc. The present specification does not make any limitations.

[0188] 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 without a 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 module, a TF card, etc.

[0189] This embodiment of the specification also provides a server, including a processor and a memory for storing processor-executable instructions. When specifically implemented, the processor may execute the following steps according to the instructions: determine the ciphertext data of the current first selection vector and the ciphertext data of the current second selection vector according to the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector; use the ciphertext data of the current first selection vector to determine the ciphertext data of the current first data from the ciphertext data of the first data group; use the ciphertext data of the current second selection vector to determine the ciphertext data of the current second data from the ciphertext data of the second data group; according to a preset protocol rule, call a preset comparison function to process the ciphertext data of the current first data and the ciphertext data of the current second data to obtain the ciphertext data of the current comparison result; according to the ciphertext data of the current comparison result, save one of the ciphertext data of the current first data and the ciphertext data of the current second data in a target data group to obtain a target sequence group containing the ciphertext data of the first data and the ciphertext data of the second data arranged according to a preset sorting rule.

[0190] This embodiment of the specification also provides a computer storage medium based on the above data processing method. The computer storage medium stores computer program instructions, and when the computer program instructions are executed, it realizes: 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 target sequence group; the target sequence group contains the ciphertext data of the first data and the ciphertext data of the second data arranged according to a preset sorting rule; the target sequence group is jointly sorted by a first data party holding the first data and a second data party holding the second data according to a preset protocol rule; determining whether there is a transaction risk in the target transaction data according to the target processing result.

[0191] The embodiment of this specification also provides a computer storage medium for a multi-party joint sorting method under the above privacy protection. The computer storage medium stores computer program instructions, which, when executed, implement the following steps: determining the ciphertext data of the current first selection vector and the ciphertext data of the current second selection vector according to the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector; determining the ciphertext data of the current first data from the ciphertext data of the first data group by using the ciphertext data of the current first selection vector; determining the ciphertext data of the current second data from the ciphertext data of the second data group by using the ciphertext data of the current second selection vector; calling a preset comparison function to process the ciphertext data of the current first data and the ciphertext data of the current second data according to the preset protocol rules to obtain the ciphertext data of the current comparison result; and saving one of the ciphertext data of the current first data and the ciphertext data of the current second data in a target data group according to the ciphertext data of the current comparison result, so as to obtain a target sequence group containing the ciphertext data of the first data and the ciphertext data of the second data arranged according to the preset sorting rules.

[0192] In this embodiment, the above storage medium includes, but is not limited to, a random access memory (RAM), a read-only memory (ROM), a cache, a hard disk drive (HDD), or a memory card. The memory can be used to store computer program instructions. The network communication unit can be set according to the standards specified by the communication protocol and is used for the interface of network connection communication.

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

[0194] Refer to Figure 13 As shown, at the software level, the embodiment of this specification also provides a data processing device, which specifically may include the following structural modules:

[0195] An acquisition module 1301, which specifically can be used to acquire target transaction data;

[0196] The calling module 1302 can be specifically used to call a target model to process the target transaction data and obtain a corresponding target processing result. Among them, the target model is trained using a target sequence group, and the target sequence group includes ciphertext data of first data and ciphertext data of second data arranged according to a preset sorting rule. The target sequence group is jointly sorted by a first data party holding the first data and a second data party holding the second data according to a preset protocol rule.

[0197] The determination module 1303 can be specifically used to determine whether there is a transaction risk in the target transaction data according to the target processing result.

[0198] Refer to Figure 14 As shown, an embodiment of this specification further provides a multi-party joint sorting device under privacy protection, which may specifically include the following structural modules:

[0199] The first determination module 1401 can be specifically used to determine the ciphertext data of the current first selection vector and the ciphertext data of the current second selection vector according to the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector.

[0200] The second determination module 1402 can be specifically used to determine the ciphertext data of the current first data from the ciphertext data of the first data group using the ciphertext data of the current first selection vector, and determine the ciphertext data of the current second data from the ciphertext data of the second data group using the ciphertext data of the current second selection vector.

[0201] The calling module 1403 can be specifically used to call a preset comparison function to process the ciphertext data of the current first data and the ciphertext data of the current second data according to a preset protocol rule, and obtain the ciphertext data of the current comparison result.

[0202] The saving module 1404 can be specifically used to save one of the ciphertext data of the current first data and the ciphertext data of the current second data in a target data group according to the ciphertext data of the current comparison result, so as to obtain a target sequence group including ciphertext data of first data and ciphertext data of second data arranged according to a preset sorting rule.

[0203] It should be noted that the units, devices, modules, etc. illustrated in the above embodiments can be specifically implemented by computer chips or entities, or by products with certain functions. For the convenience of description, when describing the above devices, they are divided into various modules according to functions and described separately. Of course, when implementing this specification, the functions of each module can be implemented in the same or multiple software and / or hardware, or the modules implementing the same function can be realized by a combination of multiple sub-modules or sub-units, etc. The device embodiments described above are only illustrative. For example, the division of the units is only a logical function division, and there may be other division methods in actual implementation. For example, 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 displayed or discussed coupling or direct coupling or communication connection to each other can be through some interfaces. The indirect coupling or communication connection of the devices or units can be in electrical, mechanical or other forms.

[0204] As can be seen from the above, based on the multi-party joint sorting device under privacy protection provided by the embodiments of this specification, it is possible to realize the horizontal joint use of data from multiple data parties to complete the joint sorting of data and obtain the required rich and ordered target sequence group while protecting the data privacy of the data parties, avoiding data leakage during the sorting process, and effectively protecting the data security of the data parties.

[0205] Although this specification provides method operation steps as described in the embodiments or flowcharts, more or fewer operation steps may be included based on conventional or non-creative means. The step order listed in the embodiments is only one of the execution orders of numerous steps and does not represent the only execution order. When the actual device or client product executes, it can be executed in the order shown in the embodiments or the drawings or executed in parallel (for example, in a parallel processor or multi-threaded processing environment, or even in a distributed data processing environment). The term "comprising", "including" or any other variant thereof is intended to cover non-exclusive inclusion, so that a process, method, product or device comprising a series of elements includes not only those elements but also other elements not expressly listed, or also includes elements inherent to such process, method, product or device. Without further limitation, there is no exclusion of the presence of additional identical or equivalent elements in the process, method, product or device comprising the said elements. The terms "first", "second", etc. are used to denote names and do not denote any particular order.

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

[0207] This specification can 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 can also be practiced in a distributed computing environment, where tasks are performed by remote processing devices connected through a communication network. In a distributed computing environment, program modules can be located in local and remote computer storage media including storage devices.

[0208] From the description of the above embodiments, those skilled in the art can clearly understand that this specification can be implemented by means of software plus a necessary general hardware platform. Based on such an understanding, the technical solutions of this specification can essentially be embodied in the form of a software product, which can be stored in a storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions for causing a computer device (which can be a personal computer, mobile terminal, server, or network device, etc.) to execute the methods described in various embodiments or some parts of the embodiments of this specification.

[0209] The various embodiments in this specification are described in a progressive manner. For the same or similar parts between the various embodiments, reference can be made to each other. Each embodiment focuses on the differences from other embodiments. This specification can be used in numerous general or special computer system environments or configurations. For example: personal computers, server computers, handheld 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.

[0210] Although this specification is depicted through embodiments, those of ordinary skill in the art know that this specification has many variations and changes without departing from the spirit of this specification, and it is hoped that the appended claims will cover these variations and changes without departing from the spirit of this specification.

Claims

1. A multi-party joint sorting method under privacy protection, characterized in that Applied to a computing node, including: Determine the ciphertext data of the current first selection vector and the ciphertext data of the current second selection vector based on the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector; Determine the ciphertext data of the current first data from the ciphertext data of the first data group by using the ciphertext data of the current first selection vector; determine the ciphertext data of the current second data from the ciphertext data of the second data group by using the ciphertext data of the current second selection vector; According to the preset protocol rules, call the preset comparison function to process the ciphertext data of the current first data and the ciphertext data of the current second data to obtain the ciphertext data of the current comparison result; According to the ciphertext data of the current comparison result, save one of the ciphertext data of the current first data and the ciphertext data of the current second data in the target data group to obtain a target sequence group containing the ciphertext data of the first data and the ciphertext data of the second data arranged according to the preset sorting rules.

2. The method according to claim 1, wherein Before determining the ciphertext data of the current first selection vector and the ciphertext data of the current second selection vector based on the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector, the method further includes: Receive the ciphertext data of the first data group and the ciphertext data of the second data group; wherein, the ciphertext data of the first data group is the first data held by the first data party arranged according to the preset sorting rules and encrypted according to the preset protocol rules; the ciphertext data of the second data group is the second data held by the second data party arranged according to the preset sorting rules and encrypted according to the preset protocol rules.

3. The method according to claim 2, wherein After receiving the ciphertext data of the first data group and the ciphertext data of the second data group, the method further includes: Respond to the joint sorting request and generate the ciphertext data of the initialized first selection vector and the ciphertext data of the initialized second selection vector; Determine the ciphertext data of the current first data from the ciphertext data of the first data group by using the ciphertext data of the initialized first selection vector; determine the ciphertext data of the current second data from the ciphertext data of the second data group by using the ciphertext data of the initialized second selection vector; According to the preset protocol rules, call the preset comparison function to process the ciphertext data of the current first data and the ciphertext data of the current second data to obtain the ciphertext data of the current comparison result.

4. The method according to claim 2, wherein Before determining the ciphertext data of the current first selection vector and the ciphertext data of the current second selection vector based on the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector, the method further includes: Detect whether the current length of the target data group is less than the preset length threshold; When it is determined that the current length of the target data group is less than the preset length threshold, obtain the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector.

5. The method according to claim 2, characterized in that, Determine the ciphertext data of the current first selection vector and the ciphertext data of the current second selection vector according to the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector, including: Based on the preset protocol rules, generate the ciphertext data of the current candidate first selection vector according to the ciphertext data of the previous first selection vector; generate the ciphertext data of the current candidate second selection vector according to the ciphertext data of the previous second selection vector; Call the preset first selection function to determine the ciphertext data of the current first selection vector from the ciphertext data of the previous first selection vector and the ciphertext data of the current candidate first selection vector by processing the ciphertext data of the previous comparison result; call the preset second selection function to determine the ciphertext data of the current second selection vector from the ciphertext data of the previous second selection vector and the ciphertext data of the current candidate second selection vector by processing the ciphertext data of the previous comparison result.

6. The method according to claim 5, wherein Based on the preset protocol rules, generate the ciphertext data of the current candidate first selection vector according to the ciphertext data of the previous first selection vector, including: Based on the preset protocol rules, shift the elements included in the ciphertext data of the previous first selection vector by one element position along the preset direction to obtain the ciphertext data of the current candidate first selection vector.

7. The method according to claim 2, wherein The method further includes: Obtain the first length information of the ciphertext data of the first data group provided by the first data party, and the second length information of the ciphertext data of the second data group provided by the second data party; Determine the preset length threshold according to the first length information and the second length information.

8. The method according to claim 2, wherein After receiving the ciphertext data of the first data group and the ciphertext data of the second data group, the method further includes: Concatenate two extended data bits at the end of the ciphertext data of the first data group, and fill the two extended data bits with the maximum floating point number to obtain the extended ciphertext data of the first data group; concatenate two extended data bits at the end of the ciphertext data of the second data group, and fill the two extended data bits with the maximum floating point number to obtain the extended ciphertext data of the second data group.

9. The method according to claim 4, wherein When it is determined that the current length of the target data group is equal to the preset length threshold, the method further includes: Determine the current target data group as the target sequence group; Send the target sequence group to the requester according to the preset protocol rules; wherein, the requester trains the target model according to the target sequence group.

10. The method according to claim 9, characterized in that, The first data includes the transaction characteristics of the first transaction data held by the first data party, and the second data includes the transaction characteristics of the second transaction data held by the second data party; Correspondingly, the target model includes a transaction risk detection model.

11. The method according to claim 1, wherein The preset protocol rules include protocol rules based on secure multi-party computation and secret sharing.

12. A multi-party joint sorting device under privacy protection, characterized in that, Applied to a computing node, including: A first determination module, configured to determine the ciphertext data of the first selection vector and the ciphertext data of the second selection vector for the current time according to the ciphertext data of the previous comparison result, the ciphertext data of the previous first selection vector, and the ciphertext data of the previous second selection vector; A second determination module, configured to determine the ciphertext data of the first data for the current time from the ciphertext data of the first data group by using the ciphertext data of the first selection vector for the current time; and determine the ciphertext data of the second data for the current time from the ciphertext data of the second data group by using the ciphertext data of the second selection vector for the current time; An invocation module, configured to invoke a preset comparison function to process the ciphertext data of the first data for the current time and the ciphertext data of the second data for the current time according to a preset protocol rule, so as to obtain the ciphertext data of the comparison result for the current time; A storage module, configured to save one of the ciphertext data of the first data for the current time and the ciphertext data of the second data for the current time in a target data group according to the ciphertext data of the comparison result for the current time, so as to obtain a target sequence group including the ciphertext data of the first data and the ciphertext data of the second data arranged according to a preset sorting rule.

13. A server, characterized in that, It includes a processor and a memory for storing processor-executable instructions, and when the processor executes the instructions, the steps of the method according to any one of claims 1 to 11 are implemented.

14. A computer-readable storage medium, characterized in that, Computer instructions are stored thereon, and when the instructions are executed, the steps of the method according to any one of claims 1 to 11 are implemented.

Citation Information

Patent Citations

  • Data processing method and device, and device for data processing

    CN112685747A