Privacy set intersection methods and systems
By combining dynamic random masking and salt filtering sequences, the computation and communication overhead problems of existing privacy set intersection schemes in high-frequency repeated intersection scenarios are solved, realizing safe and efficient intersection calculation and ensuring privacy protection and result consistency.
Patent Information
- Application Number
- CN202511483203.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-10-17
- Publication Date
- 2026-02-27
- Estimated Expiration
- 2045-10-17
AI Technical Summary
Existing privacy set intersection schemes have high computational and communication overhead in high-frequency, repetitive intersection scenarios, which affects efficiency and poses a risk of privacy leakage.
A dynamic random masking mechanism and a salt-filtering sequence are introduced. The salt-filtering sequence is generated through one-time key negotiation and used for multiple intersection tasks. Combined with salted linear combination and aggregation processing, the data is converted into an irreversible fingerprint and digest representation, ensuring privacy and security while reducing computational and communication overhead.
It improves the security of the interaction process, reduces the communication and computing overhead in high-frequency application scenarios, ensures the consistency of results between the two parties and the reliability of intersection calculation, and achieves privacy protection and accurate acquisition of intersection data.
Smart Images

Figure CN120951392B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the field of privacy computing, and in particular to a method and system for privacy set intersection. BACKGROUND
[0002] With the development of big data and artificial intelligence, the demand for data sharing and collaborative analysis is increasing. For example, in the fields of finance, medical treatment, advertisement recommendation, etc., different institutions often need to jointly calculate the data they master, in order to identify the intersection part and carry out further analysis and modeling. Through intersection calculation, not only the data utilization rate can be improved, but also the accuracy and generalization ability of the model can be enhanced, so it has important value in practical application.
[0003] However, in the intersection process, if the original data is directly exchanged, it is easy to cause the leakage of user privacy and sensitive information. Once the data is leaked, it will bring serious legal and compliance risks. Therefore, the academic and industrial circles have proposed various privacy set intersection technologies to solve this problem,
[0004] The existing privacy intersection scheme has certain limitations in the high-frequency repeated intersection scene, has high initialization overhead, and seriously affects the privacy intersection efficiency. SUMMARY
[0005] To solve the above problems, the present application provides a reusable privacy set intersection method and system. By introducing a dynamic random masking mechanism, the present application realizes one-time negotiation and multiple reuse of the core key, while ensuring privacy security, reducing the calculation and communication overhead of repeated intersection tasks.
[0006] To achieve the above object, the application provides a private set intersection method, which comprises the following steps: generating a salt screening sequence according to a salt sequence of a task initiator and a screening factor sequence of a task participant; wherein the salt sequence, the screening factor sequence and the salt screening sequence are used as relevant parameters for each intersection; obtaining a first data set of the task initiator and a second data set of the task participant at each intersection; the task initiator generates a dynamic random mask and sends the dynamic random mask to the task participant; the task initiator performs salt linear aggregation processing on the first data set according to the salt sequence and the dynamic random mask, obtains a first linear combination salted fingerprint set, and performs hash calculation on the first linear combination salted fingerprint set to obtain a first digest set; the task initiator encodes the first data set after salt aggregation processing to obtain an aggregation vector, and sends the aggregation vector to the task participant; the task participant performs decoding and linear combination processing on the salt screening sequence, the aggregation vector, the second data set and the dynamic random mask to obtain a second linear combination salted fingerprint set, performs hash calculation on the second linear combination salted fingerprint set to obtain a second digest set, and sends the second digest set to the task initiator; the task initiator performs intersection on the first digest set and the second digest set to obtain a private set intersection.
[0007] Further, the task initiator performs salt linear aggregation processing on the first data set according to the salt sequence and the dynamic random mask, which comprises the following steps: combining each data element in the first data set with the dynamic random mask, performing hash operation on the salt parameter in the salt sequence to obtain a corresponding first hash value, weighting and accumulating the first hash value and the salt parameter corresponding index factor, and performing modulo operation on the accumulation result to obtain a plurality of linear combination salted fingerprint fragments; sequentially splicing all linear combination salted fingerprint fragments to obtain a first linear combination salted fingerprint corresponding to each data element; and combining all data element corresponding first linear combination salted fingerprints into a first linear combination salted fingerprint set.
[0008] Further, the task initiator performs salt aggregation processing on the first data set according to the salt sequence and the dynamic random mask, which comprises the following steps: combining each data element in the first data set with the dynamic random mask, performing hash operation on the salt parameter in the salt sequence to obtain a corresponding second hash value, performing accumulation operation on the second hash value, and performing modulo operation on the accumulation result to obtain a plurality of salt aggregation fingerprint fragments; sequentially splicing all salt aggregation fingerprint fragments to obtain a first salt aggregation fingerprint corresponding to each data element; and combining all data element corresponding first salt aggregation fingerprints into a first salt aggregation fingerprint set.
[0009] Further optionally, the task participant performs decoding and linear combination processing according to the salt screening sequence, the aggregation vector, the second data set and the dynamic random mask to obtain a second linear combination salted fingerprint set, including: calculating a correction factor sequence of all data elements in the second data set according to the salt screening sequence and the dynamic random mask; performing decoding according to the second data set and the aggregation vector to obtain a second salted aggregation fingerprint; splitting the second salted aggregation fingerprint to obtain a second salted aggregation fingerprint set; and calculating the second linear combination salted fingerprint set according to the correction factor sequence and the second salted aggregation fingerprint set.
[0010] Further optionally, the salt screening sequence is generated in cooperation with the salt sequence of the task initiator and the screening factor sequence of the task participant, including: the task initiator generates a salt sequence; the task participant generates a screening factor sequence; the task initiator and the task participant call an m out of m-1 careless transmission algorithm to interact, so that the task participant screens the salt sequence according to the screening factor sequence to obtain a salt screening sequence.
[0011] In another aspect, the application also provides a private set intersection system, including: a key negotiation module configured to generate a salt screening sequence in cooperation with a salt sequence of a task initiator and a screening factor sequence of a task participant; wherein the salt sequence, the screening factor sequence and the salt screening sequence are used as relevant parameters for each intersection; a data acquisition module configured to acquire a first data set of the task initiator and a second data set of the task participant at each intersection; a random number generation module configured to generate a dynamic random mask by the task initiator and send the dynamic random mask to the task participant; a first digest set generation module configured to perform salted linear aggregation processing on the first data set by the task initiator according to the salt sequence and the dynamic random mask to obtain a first linear combination salted fingerprint set, and perform hash calculation on the first linear combination salted fingerprint set to obtain a first digest set; an aggregation vector generation module configured to perform salted aggregation processing on the first data set by the task initiator according to the salt sequence and the dynamic random mask, encode the salted aggregation processing result to obtain an aggregation vector, and send the aggregation vector to the task participant; a second digest set generation module configured to perform decoding and linear combination processing on the second data set by the task participant according to the salt screening sequence, the aggregation vector and the dynamic random mask to obtain a second linear combination salted fingerprint set, perform hash calculation on the second linear combination salted fingerprint set to obtain a second digest set, and send the second digest set to the task initiator; and an intersection module configured to perform intersection on the first digest set and the second digest set by the task initiator to obtain a private set intersection.
[0012] Further optionally, the first summary set generation module comprises a first fragment calculation submodule, configured to combine each data element in the first data set with the dynamic random mask, and then perform a hash operation on the salt parameters in the salt sequence to obtain a corresponding first hash value, weight and accumulate the first hash value and the salt parameter corresponding index factor, and perform a modulo operation on the accumulation result to obtain a plurality of linear combination salted fingerprint fragments; a first splicing submodule, configured to splice all linear combination salted fingerprint fragments in sequence to obtain a first linear combination salted fingerprint corresponding to each data element; and a first combination submodule, configured to combine the first linear combination salted fingerprints corresponding to all data elements into a first linear combination salted fingerprint set.
[0013] Further optionally, the aggregation vector generation module comprises: a second fragment calculation submodule, configured to combine each data element in the first data set with the dynamic random mask, and then perform a hash operation on the salt parameters in the salt sequence to obtain a corresponding second hash value, perform an accumulation operation on the second hash value, and perform a modulo operation on the accumulation result to obtain a plurality of salted aggregation fingerprint fragments; a second splicing submodule, configured to splice all salted aggregation fingerprint fragments in sequence to obtain a first salted aggregation fingerprint corresponding to each data element; and a third combination submodule, configured to combine the first salted aggregation fingerprints corresponding to all data elements into a first salted aggregation fingerprint set.
[0014] Further optionally, the second summary set generation module comprises: a correction factor generation submodule, configured to calculate a correction factor sequence of all data elements in the second data set according to the salt screening sequence and the dynamic random mask; a second salted aggregation fingerprint generation submodule, configured to perform decoding according to the second data set and the aggregation vector to obtain a second salted aggregation fingerprint; a second salted aggregation fingerprint set generation submodule, configured to split the second salted aggregation fingerprint to obtain a second salted aggregation fingerprint set; and a second linear combination salted fingerprint set generation submodule, configured to calculate a second linear combination salted fingerprint set according to the correction factor sequence and the second salted aggregation fingerprint set.
[0015] Further optionally, the key negotiation module comprises: a salt sequence generation submodule, configured to generate a salt sequence by a task initiator; a screening factor sequence generation submodule, configured to generate a screening factor sequence by a task participant; and a salt screening sequence generation submodule, configured to interact with the task participant by the task initiator and the task participant calling an m-select-m-1 casual transmission algorithm, so that the task participant screens the salt sequence according to the screening factor sequence to obtain a salt screening sequence.
[0016] The above technical solution has the following beneficial effects: By introducing a generated salt screening sequence between the task initiator and the task participants, the direct exposure of the original parameters is avoided, thus improving the security of the interaction process; by introducing a dynamic random mask, the key negotiation process is transformed into a one-time initialization, reducing the communication and computational overhead in high-frequency application scenarios; by performing salted linear combination and aggregation processing on the dataset, the original data is converted into irreversible fingerprint and digest representations, achieving privacy protection; by combining the aggregation vector for decoding and processing on the task participant side, it can complete the generation of comparable digests without leaking its own data, ensuring the consistency of the results of both parties; finally, the task initiator compares the digests of both parties to find the intersection, which can accurately obtain the intersection data, thereby improving the reliability and practicality of the intersection calculation while ensuring privacy. Attached Figure Description
[0017] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0018] Figure 1 This is a flowchart of the privacy set intersection method provided in the embodiments of the present invention;
[0019] Figure 2 This is a flowchart of the first linear combination salted fingerprint set generation method provided in the embodiments of the present invention;
[0020] Figure 3 This is a flowchart of the first salted polymerized fingerprint set generation method provided in an embodiment of the present invention;
[0021] Figure 4 This is a flowchart of the second linear combination salted fingerprint set generation method provided in the embodiments of the present invention;
[0022] Figure 5 This is a flowchart of the salt screening sequence generation method provided in the embodiments of the present invention;
[0023] Figure 6 This is a schematic diagram of the privacy set intersection system provided in an embodiment of the present invention;
[0024] Figure 7 This is a schematic diagram of the structure of the first summary set generation module provided in an embodiment of the present invention;
[0025] Figure 8 This is a schematic diagram of the structure of the aggregation vector generation module provided in an embodiment of the present invention;
[0026] Figure 9 is a structural schematic diagram of a second abstract set generation module provided by an embodiment of the present application.
[0027] Figure 10 is a structural schematic diagram of a key negotiation module provided by an embodiment of the present application.
[0028] Label: 100 - key negotiation module; 1001 - salt sequence generation submodule; 1002 - screening factor sequence generation submodule; 1003 - salt screening sequence generation submodule; 200 - data acquisition module; 300 - random number generation module; 400 - first abstract set generation module; 4001 - first fragmentation calculation submodule; 4002 - first splicing submodule; 4003 - first combination submodule; 500 - aggregated vector generation module; 5001 - second fragmentation calculation submodule; 5002 - second splicing submodule; 5003 - third combination submodule; 600 - second abstract set generation module; 6001 - correction factor generation submodule; 6002 - second salted aggregated fingerprint generation submodule; 6003 - second salted aggregated fingerprint set generation submodule; 6004 - second linear combination salted fingerprint set generation submodule; 700 - intersection module. DETAILED DESCRIPTION
[0029] The technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by a person of ordinary skill in the art without creative work are within the protection scope of the present application.
[0030] To solve the technical problems of large initialization overhead and difficulty in adapting to high-frequency repeated calculation demand in the existing privacy set intersection scheme, an embodiment of the present application provides a reusable privacy set intersection method. The method includes a one-time initialization stage and a repeatable intersection calculation stage. Figure 1 is a flowchart of a privacy set intersection method provided by an embodiment of the present application, as shown in the figure, the method includes: Figure 1
[0031] (I) One-time initialization stage
[0032] S1, according to the salt sequence of the task initiator and the screening factor sequence of the task participant, a salt screening sequence is generated in cooperation; wherein the salt sequence, the screening factor sequence and the salt screening sequence are used as the relevant parameters for each intersection.
[0033] This step is used to negotiate the core key fixedly used in all subsequent intersection tasks.
[0034] Firstly, the task initiator R and the task participant S generate a key jointly. The task initiator R generates a salt sequence based on a random number generation mechanism , satisfying , for example, k = 64, m = 4 can be taken. The salt sequence is composed of multiple salt parameters, which are used to introduce randomness in subsequent data processing.
[0035] At the same time, the task participant S independently generates a corresponding screening factor sequence . The screening factor is used to indicate the parameter position that needs to be removed from the salt sequence generated by the task initiator. Then, the two parties interact based on their respective sequences. Specifically, the task initiator R generates the jth group of salt sequence and the task participant S generates the jth screening factor (where j = 1, 2,..., k), and jointly calls the m-select m-1 careless transmission algorithm. This enables the task participant S to screen the salt sequence according to the screening factor sequence without leaking its selection to the task initiator R, and finally obtain the salt screening sequence . The task initiator R saves the complete salt sequence it generates, and the task participant S saves the salt screening sequence it obtains. These sequences will be stored by both parties for a long time as fixed security parameters for all subsequent intersection tasks.
[0036] (II) Repeatable intersection calculation phase
[0037] After completing the one-time initialization, the two parties can perform the intersection task of this phase any number of times. Figure 1 is the flowchart of this phase, as Figure 1 shown, each intersection task includes:
[0038] S2, at each intersection, obtain the first data set of the task initiator and the second data set of the task participant.
[0039] The task initiator R holds the first data set X of this task , and the task participant S holds the second data set Y of this task . The first data set X and the second data set Y are independently held by the task initiator R and the task participant S, respectively, and the data between them is kept locally stored, without direct exchange of original data. The ultimate goal is to enable the task initiator R to obtain the intersection .
[0040] S3, the task initiator generates a dynamic random mask and sends it to the task participant.
[0041] The task initiator generating a dynamic random mask for this intersection task and sending the dynamic random mask to the task participants .
[0042] As an optional implementation, the task initiator generates a random number as the dynamic random mask for this intersection task.
[0043] S4, the task initiator performs salted linear aggregation processing on the first data set according to the salt sequence and the dynamic random mask, obtains a first linear combination salted fingerprint set, and performs hash calculation according to the first linear combination salted fingerprint set to obtain a first digest set.
[0044] The task initiator R processes all data elements in the first data set X using the salt sequence generated by one-time negotiation and the dynamic random mask ran of this task , maps each data element to a linear combination fingerprint with randomization characteristics, and forms a first linear combination salted fingerprint set } from it.
[0045] Then, the task initiator R performs hash calculation on each element in the first linear combination salted fingerprint set } to obtain a first digest set corresponding to the first linear combination salted fingerprint set }.
[0046] S5, the task initiator encodes the aggregation vector obtained after performing salted aggregation processing on the first data set according to the salt sequence and the dynamic random mask, obtains an aggregation vector, and sends the aggregation vector to the task participants.
[0047] The task initiator R performs aggregation processing on all data elements in the first data set X based on the dynamic random mask ran of this task and the salt sequence generated by one-time negotiation , combines the salted results of multiple data elements into a unified aggregation representation, and obtains a first salted aggregation fingerprint set }。
[0048] Then, according to the first salted aggregation fingerprint set }, an aggregation vector P is obtained.
[0049] As an optional implementation, the aggregation manner of the aggregation vector includes:
[0050] According to the first salted aggregation fingerprint set } and the first data set X, a first salted aggregation fingerprint pair sequence corresponding to the first data set X is constructed .
[0051] According to the first salted aggregation fingerprint pair sequence , the first salted poly-fingerprint pair sequence T is encoded by using an incautious key-value storage encoding algorithm to obtain a poly-vector .
[0052] Wherein, the encoding process is as follows:
[0053] The encoding process aims to calculate a vector that meets the following relationship according to all key-value pairs .
[0054] Input: key-value pairs ;
[0055] Output: column vector , wherein satisfies:
[0056] ;
[0057] The construction of the mapping vector :
[0058] For any key , its corresponding row vector is spliced in order by two parts:
[0059] ;
[0060] Wherein, is a sparse vector with a length of , which contains three elements with a value of 1, and the rest of the elements are 0. The specific positions of the three 1s are determined by a hash function, and the sparse matrix ;
[0061] is a vector with a length of 40, which contains random 0, 1 elements, and is uniquely determined by a hash function.
[0062] Detailed algorithm:
[0063] 1. Basic hash function: select a hash function to map to a 256-bit random bit string.
[0064] 2. Hash value partition: divide the 256-bit result output by into four 64-bit substrings: .
[0065] 3. Generate : The positions of the three 1s in are determined by the first three hash substrings co-determine.
[0066] The three 64-bit substrings are regarded as unsigned integers, and three coordinate values are generated by modulo operation:
[0067] ;
[0068] ;
[0069] ;
[0070] wherein The value of the parameter q is related to the size N of the data set to be encoded, and is usually set to to ensure the success rate and sparsity of the encoding. Therefore, the value of the parameter can be determined by .
[0071] 4. The value 1 is taken on the first coordinate, and the remaining coordinates are all 0.
[0072] 5. Generate : define the bit vector as the first 40 bits of .
[0073] The aggregate vector P is taken as the compact encoding result, which can not only preserve the overall characteristics of the data set, but also avoid directly exposing the privacy of individual data elements. The task initiator R sends the aggregate vector P to the task participant S, so that the task participant can carry out decoding and subsequent intersection calculation using the aggregate vector without contacting the original data of the task initiator.
[0074] S6, the task participant performs decoding and linear combination processing on the salt screening sequence, the aggregate vector, the second data set, and the dynamic random mask to obtain a second linear combination salted fingerprint set, performs hash calculation on the second linear combination salted fingerprint set to obtain a second digest set, and sends the second digest set to the task initiator.
[0075] The task participant S combines the salt screening sequence, the received aggregate vector P, the second data set Y, and the dynamic random mask of the task to perform decoding operation to recover the salted information associated with the first data set.
[0076] Subsequently, the task participant S performs linear combination processing on the second data set using the salted information to generate a second linear combination salted fingerprint set . In order to avoid leaking the original data, the task participant further performs hash operation on the fingerprint set to obtain a second digest set . Finally, the task participant S sends the second digest set for the subsequent intersection comparison and result generation.
[0077] S7, the task initiator performs intersection operation according to the first abstract set and the second abstract set, and obtains a privacy set intersection.
[0078] According to the first abstract set and the second abstract set , output the intersection:
[0079]
[0080] That is, the task initiator compares the hash values of the fingerprint abstract of itself and the fingerprint abstract of the task participant. If the two are equal, it is determined that the corresponding data elements exist in both data sets at the same time, and then these common elements are collected to form the intersection set Z.
[0081] For example, in the application scenario of a bank, two participants are often required to cooperate to complete the intersection operation. A specific actual application scenario is "bank and alipay cooperation small and micro business credit strategy evaluation", which aims to calculate the customers owned by both parties without revealing the original data plaintext of both parties, so as to perform subsequent joint credit evaluation.
[0082] At this time, the task initiator is the bank, and the customer list to be evaluated constitutes the first data set X, which corresponds to the historical repayment and fund flow-in and flow-out statistical data of the user; the task participant is alipay, and the customer list to be evaluated constitutes the second data set Y, which corresponds to the business flow and order fluctuation statistical data of the user. The intersection of the first data set X and the second data set Y is calculated according to the preset period, so as to start the subsequent joint credit evaluation process for the intersection users.
[0083] To achieve the above intersection goal, both parties first perform a one-time initialization step: the bank R generates a salt sequence, and the alipay S generates a screening factor sequence. Then, both parties interact through the careless transmission protocol, so that the alipay S obtains the salt screening sequence. The salt sequence held by the bank R and the salt screening sequence obtained by the alipay S will be reused as core encryption parameters in the subsequent intersection calculation task, thereby improving the execution efficiency of the periodic task.
[0084] In the intersection calculation stage, the bank party R inputs the first data set X, and the Alipay party S inputs the second data set Y. The bank party R processes the first data set by using the salt sequence thereof, generates a first summary set and an aggregation vector, and sends the aggregation vector to the Alipay party S. The Alipay party S processes the second data set by using the salt screening sequence and the aggregation vector sent by the bank party R, and generates a second summary set. Finally, the Alipay party S sends the second summary set generated thereby to the bank party R, and the bank party R completes the comparison between the first summary set and the second summary set locally, and obtains the final intersection result.
[0085] As an optional implementation, Figure 2 is a flowchart of the salted linear aggregation method provided by the embodiment of the application, as shown in the figure, the task initiator performs salted linear aggregation processing on the first data set according to the salt sequence and the dynamic random mask, including: Figure 2
[0086] S401, for each data element in the first data set, the dynamic random mask is combined, and then the salt parameter in the salt sequence is used for hash operation to obtain the corresponding first hash value, the first hash value is weighted and accumulated with the salt parameter corresponding index factor, and the accumulated result is modulated to obtain a plurality of linear combination salted fingerprint fragments.
[0087] The task initiator R combines (exclusive or operation in this embodiment) the dynamic random mask ran of this task with each data element in the first data set X to obtain the combination result . Then, different salt parameters in the salt sequence, i.e. the jth group of salt sequence , are used for hash operation to obtain the corresponding first hash value . Subsequently, the first hash value is associated with the index position of each salt parameter, and is weighted according to the index factor g. By accumulating the weighted result and performing modulus operation, the data features can be effectively compressed and randomized. The specific calculation formula of the linear combination salted fingerprint fragment is as follows:
[0088] ;
[0089] wherein, .
[0090] Finally, a plurality of linear combination salted fingerprint fragments are generated for each data element, and these fragments collectively constitute the basis for subsequent splicing and fingerprint set generation.
[0091] S402, all linear combination salted fingerprint fragments are spliced in order to obtain the first linear combination salted fingerprint corresponding to each data element.
[0092] for each data element in the first data set , the previously obtained multiple linear combination salted fingerprint fragments are sequentially spliced in a preset order to form a complete first linear combination salted fingerprint representation, and the specific calculation formula is: .
[0093] S403, combine the first linear combination salted fingerprint corresponding to all data elements into a first linear combination salted fingerprint set.
[0094] Combine the first linear combination salted fingerprint corresponding to each single data element . The first linear combination salted fingerprint set is formed , which is the overall salted representation of the first data set.
[0095] As an optional implementation, Figure 3 is the flowchart of the first salted aggregation fingerprint set generation method provided by the embodiment of the application, as shown in Figure 3 , the task initiator performs salted aggregation processing on the first data set according to the salt sequence and the dynamic random mask, including:
[0096] S501, for each data element in the first data set, combine with the dynamic random mask, and then perform hash operation with the salt parameter in the salt sequence to obtain the corresponding second hash value, accumulate the second hash value, and perform modulo operation on the accumulated result to obtain multiple salted aggregation fingerprint fragments.
[0097] The task initiator R combines (exclusive or operation in this embodiment) each data element in the first data set X with the dynamic random mask of this task to obtain the combination result . Then, different salt parameters in the salt sequence, i.e. the jth group of salt sequence , , are used to perform hash operation to obtain the corresponding second hash value . Then, the second hash value is accumulated and further modulo operation is performed to obtain multiple salted aggregation fingerprint fragments. The specific calculation formula of the salted aggregation fingerprint fragment is as follows:
[0098] ;
[0099] wherein, .
[0100] S502, sequentially splice all salted aggregation fingerprint fragments to obtain the first salted aggregation fingerprint corresponding to each data element.
[0101] The plurality of salted aggregation fingerprint fragments previously obtained by accumulation and modulo operation are spliced in a preset order to form a complete salted aggregation fingerprint for each data element in the first data set, and the specific calculation formula is: .
[0102] S503, combine the first salted aggregation fingerprints corresponding to all data elements into a first salted aggregation fingerprint set.
[0103] The task initiator R collects and summarizes the first salted aggregation fingerprints obtained for all data elements in the first data set to form a first salted aggregation fingerprint set .
[0104] As an optional implementation, Figure 4 is a flowchart of a second linear combination salted fingerprint set generation method provided by an embodiment of the application, as shown in Figure 4 , the task participant performs decoding and linear combination processing according to the salt screening sequence, the aggregation vector, the second data set, and the dynamic random mask to obtain a second linear combination salted fingerprint set, including:
[0105] S601, calculate the correction factor sequence of all data elements in the second data set according to the salt screening sequence and the dynamic random mask.
[0106] According to the salt screening sequence and the received dynamic random mask , the correction factor sequence of all elements in the second data set Y is calculated . Wherein, , , .
[0107] S602, perform decoding according to the second data set and the aggregation vector to obtain a second salted aggregation fingerprint.
[0108] According to all elements in the second data set and the index aggregation vector P, the decoding algorithm of the oblivious key-value store is performed to calculate the second salted aggregation fingerprint .
[0109] Wherein, the decoding process is as follows:
[0110] The decoding process uses and the key to restore the value .
[0111] Input: vector and a key ;
[0112] Output: if , output the corresponding value ;
[0113] If , output a random value.
[0114] Process: calculation .
[0115] S603, split the second salted aggregate fingerprint to obtain a second salted aggregate fingerprint set.
[0116] Split the second salted aggregate fingerprint equidistantly , to obtain a second salted aggregate fingerprint set , the first reconstructed key fragment , the second reconstructed key fragment , the kth reconstructed key fragment , that is, satisfies .
[0117] S604, according to the correction factor sequence and the second salted aggregate fingerprint set, calculate the second linear combination salted fingerprint set.
[0118] Based on the correction factor fragment , the second salted aggregate fingerprint set , calculate the second linear combination salted fingerprint set . Wherein , the second linear combination salted fingerprint fragment set , …, , that is,
[0119] The first fragment of the second linear combination salted fingerprint ,
[0120] The second fragment of the second linear combination salted fingerprint ,
[0121] …,
[0122] The kth fragment of the second linear combination salted fingerprint .
[0123] As an optional implementation, Figure 5 is the flow chart of the salt screening sequence generation method provided by the embodiment of the application, as shown in Figure 5 , the salt screening sequence is generated according to the salt sequence of the task initiator and the screening factor sequence of the task participant, including:
[0124] S101, the task initiator generates a salt sequence.
[0125] The task initiator R generates a group of salt sequences based on a random number generation mechanism The salt sequence is composed of multiple salt parameters, which are used to introduce randomness in the subsequent data processing process, so as to avoid direct exposure of the original data characteristics and improve the security of the overall calculation process.
[0126] In S102, the task participant generates a screening factor sequence.
[0127] The task participant S independently generates a screening factor sequence The screening factor is used to indicate the parameter position that needs to be removed from the salt sequence generated by the task initiator. By generating the screening factor sequence locally, the task participant can maintain the independence and privacy of its own selection logic and will not disclose specific screening preferences to the task initiator.
[0128] In S103, the task initiator and the task participant call the m-select-m-1 careless transmission algorithm to interact, so that the task participant screens the salt sequence according to the screening factor sequence to obtain a salt screening sequence.
[0129] The task initiator R removes the salt screening sequence based on the first group and the task participant S removes the salt screening sequence based on the first screening factor , , and jointly calls the k-time algorithm, so that the task participant S obtains the salt screening sequence .
[0130] The embodiment of the application also provides a privacy set intersection system, Figure 6 is a structural schematic diagram of the privacy set intersection system provided by the embodiment of the application, as shown in Figure 6 , the system comprises:
[0131] A key negotiation module 100 is configured to generate a salt screening sequence in cooperation with a salt sequence of a task initiator and a screening factor sequence of a task participant; wherein the salt sequence, the screening factor sequence and the salt screening sequence are used as relevant parameters for each intersection.
[0132] First, the task initiator R and the task participant S cooperatively generate a key. The task initiator R generates a group of salt sequences based on a random number generation mechanism, which satisfies , for example, k=64, m=4. The salt sequence is composed of multiple salt parameters, which are used to introduce randomness in the subsequent data processing process.
[0133] At the same time, the task participant S independently generates a corresponding screening factor sequence The selection factor indicates the positions of parameters that need to be removed from the salt sequence generated by the task initiator. Afterwards, both parties interact collaboratively based on their respective sequences. Specifically, the task initiator R selects the j-th group of the salt sequence... And task participant S based on the j-th screening factor (where j=1, 2, ..., k), the joint call selects m-1 for unintentional transmission ( This algorithm allows task participant S to avoid revealing its choices to R. Under the premise of [specific conditions], the salt sequence is screened based on the screening factor sequence to finally obtain the salt screening sequence. The task initiator R stores the complete salt sequence it generates, while the task participant S stores the salt filtering sequence it obtains. These sequences will be stored by both parties long-term as fixed security parameters for all subsequent intersection tasks. The key negotiation module is used during the one-time initialization phase to negotiate the core key that will be used in all subsequent intersection tasks.
[0134] The task can be executed once or multiple times, and each execution requires calling all of the following modules.
[0135] The data acquisition module 200 is used to acquire the first dataset of the task initiator and the second dataset of the task participants each time an intersection is calculated.
[0136] The task initiator, R, holds the first dataset for this task. Task participant S holds the second dataset for this task. The first dataset X and the second dataset Y are independently held by the task initiator R and the task participant S, respectively. Data between them is stored locally without direct exchange of raw data. The ultimate goal is to achieve an intersection between the task initiator R and the dataset Y. .
[0137] The random number generation module 300 is used by the task initiator to generate a dynamic random mask and send the dynamic random mask to the task participants.
[0138] Task initiator Generate a dynamic random mask specifically for this intersection task. and dynamic random mask Send to task participants .
[0139] As an optional implementation, the task initiator generates a random number as a dynamic random mask for this intersection task.
[0140] The first abstract set generation module 400 is configured to perform salt linear aggregation processing on the first data set according to the salt sequence and the dynamic random mask, to obtain a first linear combination salted fingerprint set, and perform hash calculation on the first linear combination salted fingerprint set to obtain a first abstract set.
[0141] The task initiator R performs processing on all data elements in the first data set X according to the salt sequence generated through one-time negotiation and the dynamic random mask ran of the current task, maps each data element to a linear combination fingerprint with a randomization feature, and forms a first linear combination salted fingerprint set . } from the first linear combination salted fingerprint set.
[0142] Then, the task initiator R performs hash calculation on each element in the first linear combination salted fingerprint set } to obtain a first abstract set corresponding to the first linear combination salted fingerprint set .
[0143] The aggregation vector generation module 500 is configured to perform salt aggregation processing on the first data set according to the salt sequence and the dynamic random mask, to obtain an aggregation vector, and send the aggregation vector to the task participant.
[0144] The task initiator R performs aggregation processing on all data elements in the first data set X according to the salt sequence generated through one-time negotiation and the dynamic random mask ran of the current task, combines salted results of multiple data elements into a unified aggregation representation, to obtain a first salted aggregation fingerprint set . } from the first linear combination salted fingerprint set.
[0145] Then, the aggregation vector P is obtained by encoding the first salted aggregation fingerprint set .
[0146] As an optional implementation, the aggregation manner of the aggregation vector includes:
[0147] According to the first salted aggregation fingerprint set and the first data set X, a first salted aggregation fingerprint pair sequence corresponding to the first data set X is constructed .
[0148] According to the first salted aggregation fingerprint pair sequence , an oblivious key-value storage encoding algorithm is used to encode the first salted aggregation fingerprint pair sequence T to obtain the aggregation vector .
[0149] The encoding process is as follows:
[0150] The encoding process is to encode all key-value pairs , the vector .
[0151] Input: a key-value pair ;
[0152] Output: a column vector where satisfies:
[0153] ;
[0154] The construction of the mapping vector :
[0155] For any key , its corresponding row vector is composed of two parts in order:
[0156] ;
[0157] where is a sparse vector of length , containing three elements with value 1 and the rest of the elements are 0. The specific positions of these three 1s are determined by a hash function, denoted by the sparse matrix ;
[0158] is a vector of length 40, containing random 0, 1 elements, uniquely determined by a hash function.
[0159] Detailed algorithm:
[0160] 1. Basic hash function: select a hash function to map to a 256-bit random bit string.
[0161] 2. Hash value partition: divide the 256-bit result output by into four 64-bit substrings evenly: .
[0162] 3. Generate : The positions of the three 1s in are determined by the first three hash substrings .
[0163] The above three 64-bit substrings are treated as unsigned integers, and three coordinate values are generated by modulo operation:
[0164] ;
[0165] ;
[0166] ;
[0167] wherein The value of parameter q is related to the size N of the data set to be encoded, and is usually set as to ensure the success rate and sparsity of the encoding. Therefore, the value of parameter can be determined by .
[0168] 4. The first coordinate is set to 1, and the remaining coordinates are all 0. 5. Generate
[0169] : define the bit vector as the first 40 bits of .
[0170] The aggregation vector P, as a compact encoding result, can not only preserve the overall characteristics of the data set, but also avoid directly exposing the privacy of individual data elements. The task initiator R sends the aggregation vector P to the task participant S, so that the task participant can use the aggregation vector to carry out decoding and subsequent intersection calculation without contacting the original data of the task initiator.
[0171] The second abstract set generation module 600 is configured to perform decoding and linear combination processing on the salt screening sequence, the aggregation vector, the second data set, and the dynamic random mask by the task participant to obtain a second linear combination salted fingerprint set, perform hash calculation on the second linear combination salted fingerprint set to obtain a second abstract set, and send the second abstract set to the task initiator.
[0172] The task participant S performs decoding operation in combination with the salt screening sequence, the received aggregation vector P, the second data set Y, and the dynamic random mask of the task to recover the salted information associated with the first data set.
[0173] Subsequently, the task participant S performs linear combination processing on the second data set by using the salted information to generate a second linear combination salted fingerprint set . In order to avoid leaking the original data, the task participant further performs hash operation on the fingerprint set to obtain a second abstract set . Finally, the task participant S sends the second abstract set to the task initiator R for subsequent intersection comparison and result generation.
[0174] The intersection module 700 is configured to perform intersection operation on the first abstract set and the second abstract set by the task initiator to obtain a private set intersection.
[0175] According to the first abstract set and the second set of abstracts , output intersection:
[0176]
[0177] That is, the task initiator compares the hash values of the self-fingerprint abstract and the task participant fingerprint abstract, and if they are equal, it is determined that the corresponding data elements exist in both data sets at the same time, and then the common elements are collected to form the intersection set Z.
[0178] For example, in the application scenario of a bank, two participants often need to cooperate to complete the intersection operation. A specific practical application scenario is "bank and alipay cooperation small and micro business credit strategy evaluation", which aims to calculate the customers owned by both parties without revealing the original data plaintext of both parties, so as to perform subsequent joint credit evaluation.
[0179] At this time, the task initiator is the bank, and the customer list to be evaluated constitutes the first data set X, which corresponds to the user's historical repayment and fund inflow and outflow statistical data and other characteristic data. The task participant is alipay, and the customer list to be evaluated constitutes the second data set Y, which corresponds to the user's business flow and order fluctuation statistics and other characteristic data. The intersection of the first data set X and the second data set Y is calculated according to the preset period, so as to start the subsequent joint credit evaluation process for the intersection users.
[0180] To achieve the above intersection goal, both parties first perform a one-time initialization step: the bank R generates a salt sequence, and the alipay S generates a screening factor sequence. Then, both parties interact through the inadvertent transmission protocol, so that the alipay S obtains the salt screening sequence. The salt sequence held by the bank R and the salt screening sequence obtained by the alipay S will be reused as core encryption parameters in the subsequent intersection calculation task, thereby improving the execution efficiency of the periodic task.
[0181] In the intersection calculation stage, the bank R inputs the first data set X, and the alipay S inputs the second data set Y. The bank R processes the first data set using its salt sequence to generate a first abstract set and an aggregation vector, and sends the aggregation vector to the alipay S. The alipay S processes the second data set using the salt screening sequence and the aggregation vector sent by the bank R to generate a second abstract set. Finally, the alipay S sends the second abstract set generated by it to the bank R, and the bank R completes the comparison of the first abstract set and the second abstract set locally and obtains the final intersection result.
[0182] As an optional implementation, the first abstract set generation module 400 includes:
[0183] The first sharding calculation submodule 4001 is used to combine each data element in the first dataset with a dynamic random mask, and then perform a hash operation using the salt parameter in the salt sequence to obtain the corresponding first hash value. The first hash value is then weighted and accumulated with the index factor corresponding to the salt parameter, and the accumulated result is moduloed to obtain multiple linear combination salted fingerprint shards.
[0184] Task initiator R targets each data element in the first dataset X. This is combined with the dynamic random mask ran of this task (in this embodiment, an XOR operation is used) to obtain the combined result. Then, using the different salt parameters in the salt sequence, i.e., the j-th group of the salt sequence... , Perform a hash operation to obtain the corresponding first hash value. Then, the first hash value The salt fingerprint is associated with the index position of each salt parameter and weighted according to the index factor g. By accumulating the weighted results and performing a modulo operation, data features can be effectively compressed and randomized. The specific calculation formula for linear combination salted fingerprint sharding is as follows:
[0185] ;
[0186] in, .
[0187] Finally, several linearly combined salted fingerprint fragments are generated for each data element. These fragments together form the basis for subsequent splicing and fingerprint set generation.
[0188] The first splicing submodule 4002 is used to sequentially splice all linear combination salted fingerprint fragments to obtain the first linear combination salted fingerprint corresponding to each data element.
[0189] For each data element in the first dataset The previously obtained linear combination salted fingerprint fragments are sequentially concatenated in a preset order to form a complete first linear combination salted fingerprint representation. The specific calculation formula is as follows: .
[0190] The first combination submodule 4003 is used to combine the first linear combination salted fingerprints corresponding to all data elements into a first linear combination salted fingerprint set.
[0191] These individual data elements The corresponding first linear combination salted fingerprint Combining them, we form the first linear combination salted fingerprint set { The fingerprint set serves as the overall salted representation of the first dataset.
[0192] As an optional implementation, the aggregation vector generation module 500 includes:
[0193] The second sharding calculation submodule 5001 is used to combine each data element in the first dataset with a dynamic random mask, and then perform a hash operation using the salt parameter in the salt sequence to obtain the corresponding second hash value. The second hash value is then accumulated, and the accumulation result is moduloed to obtain multiple salted aggregated fingerprint shards.
[0194] Task initiator R targets each data element in the first dataset X. This is combined with the dynamic random mask used in this task (in this embodiment, an XOR operation is used) to obtain the combined result. Then, using the different salt parameters in the salt sequence, i.e., the j-th group of the salt sequence... , Perform a hash operation to obtain the corresponding second hash value. Then, the second hash value... The data is accumulated and then modulo operations are performed to obtain multiple salted aggregated fingerprint slices. The specific calculation formula for salted aggregated fingerprint slices is as follows:
[0195] ;
[0196] in, .
[0197] The second splicing submodule 5002 is used to splice all salted aggregate fingerprint fragments in sequence to obtain the first salted aggregate fingerprint corresponding to each data element.
[0198] For each data element in the first dataset, the multiple salted aggregate fingerprint fragments previously obtained by accumulation and modulo are sequentially concatenated in a preset order to form a complete salted aggregate fingerprint. The specific calculation formula is as follows: .
[0199] The third combination submodule 5003 is used to combine the first salted aggregate fingerprints corresponding to all data elements into a first salted aggregate fingerprint set.
[0200] Task initiator R collects and summarizes the first salted aggregated fingerprints obtained from all data elements in the first dataset, forming a holistic first salted aggregated fingerprint set. }
[0201] As an optional implementation, the second summary set generation module 600 includes:
[0202] The correction factor generation submodule 6001 is configured to calculate a correction factor sequence of all data elements in the second data set according to the salt screening sequence and the received dynamic random mask.
[0203] According to the salt screening sequence and the received dynamic random mask , the correction factor sequence of all elements in the second data set Y is calculated as . } Wherein, , , .
[0204] The second salted aggregate fingerprint generation submodule 6002 is configured to perform decoding according to the second data set and the aggregation vector to obtain the second salted aggregate fingerprint.
[0205] According to all elements in the second data set and the index aggregation vector P, the decoding algorithm of the oblivious key-value store is performed to calculate the second salted aggregate fingerprint .
[0206] Wherein, the decoding process is as follows:
[0207] The decoding process uses and the key to recover the value .
[0208] Input: vector and a key ;
[0209] Output: if , output the corresponding value ;
[0210] If , output a random value.
[0211] Process: calculate .
[0212] The second salted aggregate fingerprint set generation submodule 6003 is configured to split the second salted aggregate fingerprint to obtain the second salted aggregate fingerprint set.
[0213] The second salted aggregate fingerprint is split equidistantly , to obtain the second salted aggregate fingerprint set , that is, the first reconstructed key fragment , the second reconstructed key fragment , and the kth reconstructed key fragment , that is, it satisfies .
[0214] The second linear combination salted fingerprint set generation submodule 6004 is configured to calculate a second linear combination salted fingerprint set according to the correction factor sequence and the second salted aggregate fingerprint set.
[0215] Based on the correction factor slice , the second salted aggregate fingerprint set , the second linear combination salted fingerprint set is calculated . Wherein , the second linear combination salted fingerprint slice set , …, That is,
[0216] The first slice of the second linear combination salted fingerprint ,
[0217] The second slice of the second linear combination salted fingerprint ,
[0218] …,
[0219] The kth slice of the second linear combination salted fingerprint .
[0220] As an optional implementation, Figure 10 is a structure diagram of key negotiation provided by the embodiment of the application, as shown in Figure 10 The key negotiation module 100 includes:
[0221] The salt sequence generation submodule 1001 is configured to generate a salt sequence by a task initiator.
[0222] The task initiator R generates a set of salt sequences based on a random number generation mechanism . The salt sequence is composed of multiple salt parameters, which is used to introduce randomness in the subsequent data processing process, so as to avoid the direct exposure of the original data characteristics and improve the security of the overall calculation process.
[0223] The screening factor sequence generation submodule 1002 is configured to generate a screening factor sequence by a task participant.
[0224] The task participant S independently generates a screening factor sequence . The screening factor is used to indicate the parameter position that needs to be removed from the salt sequence generated by the task initiator. By generating a screening factor sequence locally, the task participant can maintain the independence and privacy of its own selection logic and will not leak specific screening preferences to the task initiator.
[0225] The salt screening sequence generation submodule 1003 is configured to enable the task initiator and the task participant to interact by calling an m-select-m-1 careless transmission algorithm, so that the task participant screens the salt sequence according to the screening factor sequence to obtain a salt screening sequence.
[0226] The task initiator R is based on the salt sequence grouping and the task participant S is based on the screening factor , , jointly call k times algorithm, so that the task participant S obtains the salt screening sequence .
[0227] The above technical solution has the following beneficial effects: by introducing the generation of the salt screening sequence between the task initiator and the task participant, the original parameter is avoided to be directly exposed, the security of the interaction process is improved; the dynamic random mask is introduced, the key agreement process is changed to one-time initialization, and the communication and calculation overhead in the high-frequency application scenario is reduced; by performing the salt linear combination and aggregation processing on the data set, the original data is converted into irreversible fingerprint and summary representation, the privacy protection is realized; by decoding and processing the aggregation vector on the task participant side, the task participant can complete the comparable summary generation without leaking its own data, and the consistency of the results of the two parties is guaranteed; finally, the task initiator compares and intersects the summaries of the two parties, and the intersection data can be accurately obtained, so that the reliability and practicability of the intersection calculation are improved while the privacy is protected.
[0228] The specific embodiments of the above invention further illustrate the purposes, technical solutions and beneficial effects of the invention. It should be understood that the above content is only a specific embodiment of the invention, and is not used to limit the protection scope of the invention. Any modification, equivalent replacement, improvement, etc. within the spirit and principles of the invention should be included in the protection scope of the invention.
Claims
1. A method for private set intersection, comprising: The method comprises the following steps: According to the salt sequence of the task initiator and the screening factor sequence of the task participant, a salt screening sequence is generated; wherein the salt sequence, the screening factor sequence and the salt screening sequence are related parameters for each intersection operation; At each intersection operation, a first data set of the task initiator and a second data set of the task participant are obtained; The task initiator generates a dynamic random mask and sends the dynamic random mask to the task participant; The task initiator performs salted linear aggregation processing on the first data set according to the salt sequence and the dynamic random mask to obtain a first linear combination salted fingerprint set, and performs hash calculation on the first linear combination salted fingerprint set to obtain a first digest set; The task initiator encodes the aggregated vector obtained after the salted aggregation processing on the first data set according to the salt sequence and the dynamic random mask to obtain an aggregated vector, and sends the aggregated vector to the task participant; The task participant performs decoding and linear combination processing on the salt screening sequence, the aggregated vector, the second data set and the dynamic random mask to obtain a second linear combination salted fingerprint set, performs hash calculation on the second linear combination salted fingerprint set to obtain a second digest set, and sends the second digest set to the task initiator; The task initiator performs intersection operation on the first digest set and the second digest set to obtain a private set intersection.
2. The method for private set intersection of claim 1, wherein, The task initiator performs salted linear aggregation processing on the first data set according to the salt sequence and the dynamic random mask, comprising: For each data element in the first data set, combine with the dynamic random mask, then perform hash operation with the salt parameter in the salt sequence to obtain the corresponding first hash value, weight and accumulate the first hash value and the salt parameter corresponding index factor, and perform modulo operation on the accumulation result to obtain a plurality of linear combination salted fingerprint fragments; All linear combination salted fingerprint fragments are spliced in order to obtain the first linear combination salted fingerprint corresponding to each data element; All data elements corresponding to the first linear combination salted fingerprint are combined into a first linear combination salted fingerprint set.
3. The method for private set intersection of claim 1, wherein, The task initiator performs salted aggregation processing on the first data set according to the salt sequence and the dynamic random mask, comprising: For each data element in the first data set, combine with the dynamic random mask, then perform hash operation with the salt parameter in the salt sequence to obtain the corresponding second hash value, perform accumulation operation on the second hash value, and perform modulo operation on the accumulation result to obtain a plurality of salted aggregation fingerprint fragments; All salted aggregation fingerprint fragments are spliced in order to obtain the first salted aggregation fingerprint corresponding to each data element; All data elements corresponding to the first salted aggregation fingerprint are combined into a first salted aggregation fingerprint set.
4. The method for private set intersection of claim 1, wherein, The task participant performs decoding and linear combination processing on the salt screening sequence, the aggregated vector, the second data set and the dynamic random mask to obtain a second linear combination salted fingerprint set, comprising: According to the salt screening sequence and the dynamic random mask, the correction factor sequence of all data elements in the second data set is calculated; According to the second data set and the aggregated vector, decoding is performed to obtain a second salted aggregation fingerprint; splitting the second salted poly-fingerprint to obtain a second salted poly-fingerprint set; calculating a second linear combination salted fingerprint set according to the correction factor sequence and the second salted poly-fingerprint set.
5. The method for private set intersection of claim 1, wherein, The salt screening sequence is generated in cooperation according to the salt sequence of the task initiator and the screening factor sequence of the task participant, including: The task initiator generates a salt sequence; The task participant generates a screening factor sequence; The task initiator and the task participant call the m-select-m-1 careless transmission algorithm to interact, so that the task participant screens the salt sequence according to the screening factor sequence to obtain a salt screening sequence.
6. A private set intersection system, comprising: It includes: A key negotiation module is configured to generate a salt screening sequence in cooperation according to a salt sequence of a task initiator and a screening factor sequence of a task participant; wherein the salt sequence, the screening factor sequence and the salt screening sequence are used as relevant parameters for intersection at each time; A data acquisition module is configured to acquire a first data set of the task initiator and a second data set of the task participant at each time of intersection; A random number generation module is configured to generate a dynamic random mask by the task initiator and send the dynamic random mask to the task participant; A first abstract set generation module is configured to perform salt linear aggregation processing on the first data set according to the salt sequence and the dynamic random mask by the task initiator to obtain a first linear combination salted fingerprint set, and perform hash calculation on the first linear combination salted fingerprint set to obtain a first abstract set; An aggregation vector generation module is configured to encode the first data set after salt aggregation processing according to the salt sequence and the dynamic random mask by the task initiator to obtain an aggregation vector, and send the aggregation vector to the task participant; A second abstract set generation module is configured to perform decoding and linear combination processing on the second data set and the dynamic random mask according to the salt screening sequence and the aggregation vector by the task participant to obtain a second linear combination salted fingerprint set, perform hash calculation on the second linear combination salted fingerprint set to obtain a second abstract set, and send the second abstract set to the task initiator; An intersection module is configured to perform intersection on the first abstract set and the second abstract set by the task initiator to obtain a private set intersection.
7. The private set intersection system of claim 6, wherein, The first abstract set generation module includes: A first split calculation submodule is configured to combine each data element in the first data set with the dynamic random mask, and then perform hash operation on the salt parameters in the salt sequence to obtain a corresponding first hash value, weight and accumulate the first hash value and the salt parameter corresponding index factor, and perform modulo operation on the accumulation result to obtain a plurality of linear combination salted fingerprint splits; A first splicing submodule is configured to splice all linear combination salted fingerprint splits in sequence to obtain a first linear combination salted fingerprint corresponding to each data element; A first combination submodule is configured to combine the first linear combination salted fingerprints corresponding to all data elements into a first linear combination salted fingerprint set.
8. The private set intersection system of claim 6, wherein, The aggregation vector generation module includes: The second fragment calculation submodule is configured to combine each data element in the first data set with the dynamic random mask, perform a hash operation on the salt parameter in the salt sequence to obtain a corresponding second hash value, perform an accumulation operation on the second hash value, and perform a modulo operation on the accumulation result to obtain a plurality of salted aggregated fingerprint fragments. The second splicing submodule is configured to splice all the salted aggregated fingerprint fragments in sequence to obtain a first salted aggregated fingerprint corresponding to each data element. The third combination submodule is configured to combine the first salted aggregated fingerprints corresponding to all the data elements into a first salted aggregated fingerprint set.
9. The private set intersection system of claim 6, wherein, The second abstract set generation module includes: The correction factor generation submodule is configured to calculate a correction factor sequence of all the data elements in the second data set according to the salt screening sequence and the dynamic random mask. The second salted aggregated fingerprint generation submodule is configured to perform decoding according to the second data set and the aggregation vector to obtain a second salted aggregated fingerprint. The second salted aggregated fingerprint set generation submodule is configured to split the second salted aggregated fingerprint to obtain a second salted aggregated fingerprint set. The second linear combination salted fingerprint set generation submodule is configured to calculate a second linear combination salted fingerprint set according to the correction factor sequence and the second salted aggregated fingerprint set.
10. The private set intersection system of claim 6, wherein, The key negotiation module includes: The salt sequence generation submodule is configured to generate a salt sequence by a task initiator. The screening factor sequence generation submodule is configured to generate a screening factor sequence by a task participant. The salt screening sequence generation submodule is configured to interact with the task participant by calling an m out of m-1 careless transmission algorithm, so that the task participant screens the salt sequence according to the screening factor sequence to obtain a salt screening sequence.
Citation Information
Patent Citations
Multi-party privacy set intersection method and device supporting retrieval and product
CN116483857A
Privacy intersection system and method capable of dynamically adding and deleting data set
CN116842561A