A privacy data intersection method based on asymmetric encryption algorithm
By proposing a privacy-preserving data intersection method based on asymmetric encryption algorithms, the hash collision problem in the intersection of massive data is solved, and a secure intersection of privacy-preserving data is achieved. This method is suitable for secure multi-party computation scenarios and improves both security and flexibility.
Patent Information
- Application Number
- CN202310049026.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-02-01
- Publication Date
- 2026-01-27
- Estimated Expiration
- 2043-02-01
AI Technical Summary
Existing privacy-preserving data intersection algorithms are prone to hash collisions when processing massive amounts of data, and cannot achieve data sharing and risk control without leaking privacy data.
A privacy data intersection method based on asymmetric encryption algorithm is adopted. By generating a random public key seed to assemble parameters, negotiating an asymmetric encryption public key, encrypting the data, and calculating the ciphertext intersection, the privacy data is ensured to remain invisible during the data intersection process.
It avoids the hash collision problem, enables data intersection without leaking private data, is suitable for secure multi-party computation scenarios, and improves security, flexibility, and adaptability.
Smart Images

Figure BDA0004056892990000051 
Figure BDA0004056892990000071 
Figure BDA0004056892990000081
Abstract
Description
Technical Field
[0001] This invention mainly relates to the field of encryption technology, specifically a method for finding the intersection of privacy data based on an asymmetric encryption algorithm. Background Technology
[0002] With the development of financial services and compliance requirements of laws, regulations, and industry rules, different institutions are prohibited from arbitrarily exchanging or using unauthorized personal data of customers. This significantly restricts data sharing, business collaboration, and risk control among institutions. Even within a group, the group headquarters and its financial subsidiaries are prohibited from exchanging or using unauthorized customer privacy data. In many cases, the same customer may exist across different financial subsidiaries. If the group headquarters cannot ascertain whether a customer is represented across different subsidiaries, data sharing, business collaboration, and risk control within the company become impossible.
[0003] For example, when a group headquarters invites numerous clients to a meeting, it may sometimes encounter situations where different financial subsidiaries repeatedly invite the same client. It is therefore crucial to ensure that headquarters can promptly identify these duplicate invitations without exposing client privacy data, and to take necessary measures to avoid this unprofessional and embarrassing situation.
[0004] For example, when the group headquarters assesses the overall risk situation of the group, it needs to summarize the risk data of each customer in each financial subsidiary. However, the headquarters does not have a summary list of customers from each subsidiary, and the customer identity information of the financial subsidiaries, including the customer list, cannot be directly given to the group headquarters, making risk assessment impossible.
[0005] In this context, obtaining data intersection without allowing private data to leave their respective data centers has become a major pain point in the industry. Private Set Intersection (PSI) allows multiple data holders to calculate the intersection of matching elements from their data sets without revealing mismatched elements to other parties. While PSI can address this pain point, most current PSI algorithms are based on hash algorithms, which encounter hash collisions when performing intersections on massive datasets. Summary of the Invention
[0006] This invention provides a method for finding the intersection of privacy data based on an asymmetric encryption algorithm, which solves the problem of hash collisions that occur when using hash algorithms to find the intersection of massive amounts of data.
[0007] The technical solution adopted by the present invention to solve the above-mentioned technical problems is as follows:
[0008] A method for finding the intersection of privacy data based on an asymmetric encryption algorithm, comprising the following steps: Step 1: Generating the asymmetric encryption algorithm public key for the task.
[0009] The initiator determines the random public key seed concatenation parameters, sends the determined random public key seed concatenation parameters to each data provider, and requests the data provider to provide the seed fragment byte string;
[0010] Each data provider receives and saves the piecing parameters, and then randomly generates its own seed fragment byte string according to the length of the fragment byte string in its own fragment parameters, and sends it to the computation initiator.
[0011] Once the initiator receives all the seed fragment byte strings, it combines all the fragments into a random public key seed byte string according to the seed fragment position index specified in the splicing parameters.
[0012] The initiator generates the corresponding public key byte string based on the random public key seed byte string and verifies whether the difference between the seed and the public key is within the allowed range;
[0013] The computation initiator sends the public key seed byte string and the verified public key byte string to each data provider;
[0014] Each data provider checks the received random public key seed byte string against the previously received fragment parameters and its own generated seed fragment byte string. It checks whether the byte string at the corresponding position in the random public key seed byte string is consistent with its own seed fragment byte string and verifies whether the difference between the seed and the public key is within the allowed range.
[0015] If the data provider broadcasts the verification result and the verification passes, it will notify all computing participants that it recognizes the public key as the public key for this task. If the verification fails, it will notify all computing participants that it does not recognize the public key as the public key for this task and explain the reason.
[0016] The initiator of the calculation receives confirmations from each data provider;
[0017] If verification fails, repeat step one until a valid public key is generated;
[0018] If all verifications are successful, proceed to step two;
[0019] Step 2: Encrypt privacy data
[0020] The computation initiator sends a request to all data providers, demanding the ciphertext of all privacy-related data that needs to be intersected;
[0021] The data provider uses the public key generated in step one to encrypt each piece of private data, obtaining ciphertext;
[0022] The privacy data provided by the data provider has a uniform format to ensure that the same privacy data yields consistent results when calculated using the same asymmetric encryption algorithm and public key.
[0023] The data provider completes and saves the mapping between privacy data and corresponding ciphertext, which is used to determine the intersection of its actual privacy data;
[0024] The data provider sends all private data in encrypted form to the computation initiator.
[0025] Step 3: Calculate the intersection of ciphertexts
[0026] The computation initiator receives encrypted private data from all data providers;
[0027] The initiator generates an intersection table of encrypted private data. The intersection table is a key-value mapping table between encrypted private data and a list of data provider names. The key is the string of the encrypted private data, and the value is a list of strings used to store the names of the data providers who own the encrypted private data.
[0028] The initiator iterates through all the private data ciphertexts submitted by each data provider and checks if the ciphertext exists as a key in the mapping table. If it does not exist, a new key-value pair is added to the mapping table, where the key is the ciphertext and the value is a list of strings, which contains only one string, namely the name of the data provider. If the ciphertext exists, the name of the data provider is added to the list of value strings corresponding to the ciphertext as the key.
[0029] After the traversal is complete, the key-value pair mapping table is the intersection table of the complete private data ciphertexts;
[0030] Step 4: Send the encrypted intersection
[0031] The computation initiator sends all or part of the encrypted intersection to each data provider, helping each data provider to know which parts of their private data belong to the private data intersection.
[0032] Preferably, in step three, based on the complete intersection table, different intersection tables can be generated as needed, including: proper intersection table, complete intersection table, and complete intersection table;
[0033] A true intersection table is one in which all ciphertexts are owned by at least two data providers.
[0034] A complete intersection table is one in which all ciphertext in the intersection table is owned by each data provider.
[0035] The specific data provider intersection table is one in which all ciphertexts are owned by the designated data provider.
[0036] Compared with the prior art, the beneficial effects of the present invention are as follows:
[0037] First, this invention avoids the problem of hash collisions that occur when using hash algorithms to find intersections of massive amounts of data for privacy data.
[0038] Second, this invention achieves compliance by ensuring that privacy data is "usable but not visible" during the process of finding the intersection of privacy data.
[0039] Third, the public key in each task is generated through negotiation among the various data providers, making it highly suitable for secure multi-party computation scenarios.
[0040] Fourth, ciphertext obtained by encryption using asymmetric encryption public key is extremely difficult to decrypt without the private key, given the current level of cryptography, and thus has extremely high security.
[0041] Fifth, a new intersection calculation method is proposed in the intersection calculation of multi-party privacy data, which bypasses the limitations of hash algorithms.
[0042] Sixth, different asymmetric encryption algorithms can be selected, and if new and more secure asymmetric encryption algorithms emerge in the future, they can also be applied, further improving the security, flexibility, compatibility, and adaptability of the method. The invention will be explained in detail below with reference to specific embodiments. Detailed Implementation
[0043] To facilitate understanding of the present invention, a more comprehensive description of the present invention will be provided below, along with several embodiments of the present invention. However, the present invention can be implemented in different forms and is not limited to the embodiments described in the text. Rather, these embodiments are provided to make the disclosure of the present invention more thorough and complete.
[0044] Generally, asymmetric encryption algorithms always use a pair of keys: a public key and a private key. The public key can be derived from the private key, but the private key cannot be derived from the public key. When the public key encrypts private data, the plaintext can only be obtained by decrypting it using the corresponding private key. However, if the asymmetric encryption algorithm only contains the public key, the ciphertext obtained by encrypting the private data with the public key is undecryptable. Like a hash value calculated using a hash algorithm, it is irreversible (it cannot be reversed to the original value). Furthermore, since there is no limit to the length of ciphertext in asymmetric encryption, hash collisions and similar problems do not occur.
[0045] This invention utilizes an asymmetric encryption public key that does not contain a private key to encrypt the private data of multiple parties, and then uses a method of matching the ciphertexts to find the intersection to realize the intersection calculation of the private data among multiple parties.
[0046] Example
[0047] This invention provides a method for finding the intersection of privacy data based on an asymmetric encryption algorithm, the method comprising the following steps:
[0048] Step 1: Generate the public key for the asymmetric encryption algorithm used in this task.
[0049] (1) Calculate the parameters for constructing the random public key seed determined by the initiator.
[0050] The random public key seed is composed of random byte string fragments provided by various data providers. The initiator determines the seed byte string length, the number of fragments, and the length of each fragment based on the number of data providers. The number of fragments is generally the same as the number of data providers.
[0051]
[0052] Table 1. Data structure for random public key seed byte string concatenation parameters
[0053] Specifically, as shown in Table 1, there are currently 5 data providers: A, B, C, D, and E. The concatenation parameters can be: the number of fragments is 5, the length of each fragment is 8 bytes, and the length of the random public key seed byte string is 40 bytes; or the number of fragments is 5, the fragment length of the four data providers (A, B, C, and D) is 7 bytes, the fragment length of E is 5 bytes, and the length of the random public key seed byte string is 33 bytes.
[0054] (2) The initiator sends the determined random public key seed concatenation parameters to each data provider and requests them to provide the seed fragment byte string.
[0055] ① Each data provider receives and saves the splicing parameters, and then randomly generates its own seed fragment byte string according to the length of the fragment byte string in its own fragment parameters, and sends it to the computation initiator.
[0056] ② The initiator calculates all the seed fragment byte strings received and combines all the fragments into a random public key seed byte string according to the seed fragment position index specified in the splicing parameters.
[0057] ③ The initiator calculates by obtaining an asymmetric encryption public key that does not contain a private key, generating a corresponding public key byte string based on a random public key seed byte string, and verifying whether the difference between the seed and the public key is within an allowed range. For example, if using the Chinese national cryptographic algorithm SM2, this can be achieved by solving equation y. P 2 =(x P 3 +ax PThe public key is calculated using +b)modp. The difference between the obtained public key and the seed is less than or equal to 30 to verify whether the public key meets the requirements.
[0058] ④ The initiator sends the public key seed byte string and the verified public key byte string to each data provider.
[0059] ⑤ Each data provider performs the following check to verify that the private key corresponding to the public key does not exist.
[0060] 1) Based on the fragment parameters received earlier and the seed fragment byte string you generated, check the received random public key seed byte string and verify whether the byte string at the corresponding position in the random public key seed byte string is consistent with your own seed fragment byte string.
[0061] 2) Verify whether the difference between the seed and the public key is within the allowed range.
[0062] 3) Optional, try solving equation y P 2 =(x P 3 +ax P +b)mod p yields an integer solution y. P .
[0063] ⑥ The data provider broadcasts the verification results.
[0064] 1) If the verification is successful, notify all computing participants that the public key is recognized as the public key for this task.
[0065] 2) If the verification fails, notify all computing participants that this party does not recognize the public key as the public key for this task and state the reason.
[0066] ⑦ The initiator of the calculation receives confirmation from each data provider.
[0067] 1) If a verification fails, restart from step (1) until a valid public key is generated.
[0068] 2) If all verifications are successful, proceed to step two.
[0069] Step 2: Encrypt privacy data
[0070] (1) The initiator sends a request to all data providers, asking them to provide the ciphertext of all privacy data that needs to be intersected.
[0071] (2) The data provider uses the public key generated in step one to encrypt each piece of private data to obtain ciphertext.
[0072] ① The privacy data of each data provider has a unified format, ensuring that the same privacy data yields consistent results when calculated using the same asymmetric encryption algorithm and public key.
[0073] ②Since there is no private key, the ciphertext of the privacy data cannot be decrypted to obtain the real privacy data, thus preventing the leakage of customers' privacy data.
[0074] ③ Note that the padding string in the asymmetric encryption algorithm must remain unchanged in each task to ensure that the ciphertext obtained from encrypting the same private data in the same task is consistent. Generally, the padding string in asymmetric encryption algorithms can be a random number (such as the Chinese national standard SM2 algorithm) to ensure that the ciphertext calculated each time is different, thus improving security. However, since the public key used for encryption in this invention is randomly generated for each task, it already serves a similar purpose to a random padding string. Therefore, not using a random number for the padding string in a single task will not significantly reduce the security of the algorithm.
[0075] (3) The data provider completes and saves the mapping between privacy data and corresponding ciphertext for use when determining the intersection of its actual privacy data.
[0076] (4) The data provider sends all private data in ciphertext to the computation initiator. Since the public key used in each task is randomly generated and different, the computation initiator cannot infer the data provider's private data by comparing the ciphertexts obtained from multiple tasks that calculate the intersection of private data.
[0077] Step 3: Calculate the intersection of ciphertexts
[0078] (1) The initiator receives the private data ciphertext from all data providers.
[0079] (2) Calculate the intersection table of the encrypted private data generated by the initiator. The intersection table is a key-value mapping table (map) between the encrypted private data and the list of data provider names. The key is the string of the encrypted private data, and the value is a list of strings used to store the names of the data providers who own the encrypted private data. The data structure is shown in Table 2 below:
[0080]
[0081] Table 2 Key-value pair mapping table of encrypted privacy data and list of data provider names
[0082] (3) The initiator calculates all the private data ciphertexts submitted by each data provider and performs the following operations:
[0083] ① If the ciphertext as the key does not exist in the mapping table, then a new key-value pair is added to the mapping table. The key is the ciphertext, and the value is a list of strings, each containing only one character.
[0084] The string is the name of the data provider;
[0085] ② If the ciphertext exists as a key in the mapping table, then add the name of the data provider to the list of value strings corresponding to the ciphertext as a key.
[0086] (4) After the traversal is complete, the key-value pair mapping table is the intersection table of the complete private data ciphertext.
[0087] (5) Based on the complete intersection table, different intersection tables can be generated as needed, for example:
[0088] ① Proper intersection table: In this intersection table, all ciphertexts are owned by at least two data providers;
[0089] ② Complete intersection table: All ciphertext in this intersection table is owned by each data provider;
[0090] ③ Intersection table of specific data providers: All ciphertext in this intersection table is owned by a few specified data providers.
[0091] Step 4: Send the encrypted intersection
[0092] The computation initiator sometimes needs to send all or part of the ciphertext intersection to each data provider to help them know which parts of their private data belong to the private data intersection.
[0093] To illustrate this more clearly, let's take an example:
[0094] For example, if different subsidiaries within a group repeatedly invite the same customer, it's necessary to ensure that the customer receives only one invitation. In this case, we simply iterate through each key (ciphertext) in the complete intersection table, select one subsidiary from the corresponding value (a list of data provider names), and send the ciphertext only to that subsidiary. The subsidiary receiving the ciphertext matches the real customer using the mapping between the ciphertext and the real customer identifier, and then sends the invitation, thus avoiding duplicate invitations.
[0095] For example, when assessing overall group risk, the group headquarters needs to iterate through the true intersection table, compiling the ciphertexts present in the table according to different subsidiaries to form a list of intersection ciphertexts for each subsidiary, as shown in Table 3. Then, the intersection ciphertext list for each subsidiary is sent to each subsidiary, laying the foundation for subsequent summation calculations of customer risk data.
[0096]
[0097]
[0098]
[0099] Table 3: List of Intersecting Ciphertexts of Subsidiaries
[0100] The present invention has been described by way of example above. Obviously, the specific implementation of the present invention is not limited to the above-described manner. Any non-substantial improvement made by adopting the inventive concept and technical solution of the present invention, or the direct application of the inventive concept and technical solution of the present invention to other occasions without modification, shall be within the protection scope of the present invention.
Claims
1. A method for finding the intersection of privacy data based on an asymmetric encryption algorithm, characterized in that... The method includes the following steps: Step 1: Generate the public key for the asymmetric encryption algorithm of the task. The initiator determines the random public key seed concatenation parameters, sends the determined random public key seed concatenation parameters to each data provider, and requests the data provider to provide the seed fragment byte string; Each data provider receives and saves the piecing parameters, and then randomly generates its own seed fragment byte string according to the length of the fragment byte string in its own fragment parameters, and sends it to the computation initiator. Once the initiator receives all the seed fragment byte strings, it combines all the fragments into a random public key seed byte string according to the seed fragment position index specified in the splicing parameters. The initiator generates the corresponding public key byte string based on the random public key seed byte string and verifies whether the difference between the seed and the public key is within the allowed range; The computation initiator sends the public key seed byte string and the verified public key byte string to each data provider; Each data provider checks the received random public key seed byte string against the previously received fragment parameters and its own generated seed fragment byte string. It checks whether the byte string at the corresponding position in the random public key seed byte string is consistent with its own seed fragment byte string and verifies whether the difference between the seed and the public key is within the allowed range. If the data provider broadcasts the verification result and the verification passes, it will notify all computing participants that it recognizes the public key as the public key for this task. If the verification fails, it will notify all computing participants that it does not recognize the public key as the public key for this task and explain the reason. The initiator of the calculation receives confirmations from each data provider; If verification fails, repeat step one until a valid public key is generated. If all verifications are successful, proceed to step two; Step 2: Encrypt privacy data The computation initiator sends a request to all data providers, demanding the ciphertext of all privacy-related data that needs to be intersected; The data provider uses the public key generated in step one to encrypt each piece of private data, obtaining ciphertext; The privacy data provided by the data provider has a uniform format to ensure that the same privacy data yields consistent results when calculated using the same asymmetric encryption algorithm and public key. The data provider completes and saves the mapping between privacy data and corresponding ciphertext, which is used to determine the intersection of its actual privacy data; The data provider sends all private data in encrypted form to the computation initiator; Step 3: Calculate the intersection of ciphertexts The computation initiator receives encrypted private data from all data providers. The initiator generates an intersection table of encrypted private data. This table is a key-value mapping between encrypted private data and a list of data provider names. The key is the string representing the encrypted private data, and the value is a list of strings storing the names of the data providers who possess the encrypted private data. The initiator iterates through all the private data ciphertexts submitted by each data provider and checks if the ciphertext exists as a key in the mapping table. If it does not exist, a new key-value pair is added to the mapping table. The key is the ciphertext, and the value is a list of strings. The list of strings contains only one string, which is the name of the data provider. If it exists, add the name of the data provider to the list of value strings corresponding to the ciphertext as the key; After the traversal is complete, the key-value pair mapping table is the intersection table of the complete private data ciphertexts; Step 4: Send the encrypted intersection The computation initiator sends all or part of the encrypted intersection to each data provider, helping each data provider to know which parts of their private data belong to the private data intersection.
2. The method for finding the intersection of privacy data based on an asymmetric encryption algorithm according to claim 1, characterized in that, In step three, based on the complete intersection table, different intersection tables can be generated as needed, including: proper intersection table, complete intersection table, and complete intersection table; A true intersection table is one in which all ciphertexts are owned by at least two data providers. A complete intersection table is one in which all ciphertext in the intersection table is owned by each data provider. The specific data provider intersection table is one in which all ciphertexts are owned by the designated data provider.
Citation Information
Patent Citations
Data sharing method and device, equipment and system
CN113434888A
Privacy protection method and device based on multi-party security computing
CN115378725A