Privacy set intersection method and apparatus, storage medium, and electronic device

CN115795503BActive Publication Date: 2026-09-15HANGZHOU BODUN XIYAN TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202211459670.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-11-21
Publication Date
2026-09-15
Estimated Expiration
2042-11-21

AI Technical Summary

Technical Problem

[0003]本公开提供一种隐私集合求交方法、隐私集合求交装置、存储介质与电子设备,以在一定程度上解决数据膨胀导致计算资源不足的问题

Benefits of technology

[0022] In this scheme, the resource configuration of the sending end is obtained; the sending end includes n sending end worker nodes, where n is a positive integer; according to the resource configuration of the sending end, the intersection task is split into multiple subtasks, and the subtasks are assigned to the sending end worker nodes for execution; the intersection task is used to find the intersection of the first dataset of the sending end and the second dataset of the receiving end. Because the intersection task is split into multiple subtasks and assigned to the sending end worker nodes for execution, i.e., data is processed in a distributed manner; therefore, even if the data expands during the data processing process, there are sufficient computing resources to continue processing the expanded data. Thus, it can solve the problem of insufficient computing resources caused by data expansion to a certain extent.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115795503B_ABST
    Figure CN115795503B_ABST
Patent Text Reader

Abstract

The present disclosure provides a privacy set intersection method, device, storage medium and electronic equipment, and relates to the technical field of data processing. The privacy set intersection method comprises: acquiring resource configuration of a sending end; the sending end comprises n sending end working nodes, and n is a positive integer; according to the resource configuration of the sending end, a to-be-intersected task is split into multiple sub-tasks, and the sub-tasks are distributed to the sending end working nodes for execution; the to-be-intersected task is a task for intersecting a first data set of the sending end and a second data set of a receiving end. The present disclosure can solve the problem of insufficient computing resources caused by data expansion to a certain extent.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of data processing technology, and in particular to a method, apparatus, storage medium and electronic device for finding intersections of privacy sets. Background Technology

[0002] Asymmetric Private Set Intersection (PSI) is a special scenario in the field of private set intersection, characterized by a significant difference in the size of the data on both sides of the intersection, such as a thousandfold or even tens of thousands of times. Currently, the industry generally uses homomorphic encryption-based PSI schemes for privacy data intersection in asymmetric scenarios. These schemes require relatively little communication to obtain the intersection result. However, a problem arises when the sending end needs to perform cuckoo hashing and calculate polynomial coefficients, causing the data to rapidly expand, sometimes reaching hundreds of millions of records. Processing hundreds of millions of records requires extremely high memory consumption, leading to insufficient computing resources and significantly limiting the use of this algorithm. Summary of the Invention

[0003] This disclosure provides a method, apparatus, storage medium, and electronic device for finding intersections of privacy sets, in order to address, to some extent, the problem of insufficient computing resources caused by data expansion.

[0004] According to a first aspect of this disclosure, a method for finding the intersection of privacy sets is provided, the method comprising:

[0005] Obtain the resource configuration of the sending end; the sending end includes n sending end worker nodes, where n is a positive integer; according to the resource configuration of the sending end, the task to be intersected is divided into multiple subtasks, and the subtasks are assigned to the sending end worker nodes for execution; the task to be intersected is a task used to find the intersection of the first dataset of the sending end and the second dataset of the receiving end.

[0006] In one implementation, the step of splitting the task to be intersected into multiple subtasks according to the resource configuration of the sending end, and assigning the subtasks to the sending end worker nodes for execution, includes: when n is greater than 1 and the resource configuration of each sending end worker node meets preset conditions, obtaining n second data subsets split from the second dataset, sending each second data subset to the corresponding sending end worker node, so that each sending end worker node performs intersection calculation on the configured first dataset and the second data subset to obtain the intersection result; receiving the intersection result fed back by each sending end worker node, and summarizing it into a full intersection result.

[0007] In one implementation, the step of splitting the task to be intersected into multiple subtasks according to the resource configuration of the sending end, and assigning the subtasks to the sending end worker nodes for execution, includes: when n is greater than 1 and the resource configuration of each sending end worker node does not meet the preset conditions, sending the second dataset to each sending end worker node respectively, so that each sending end worker node performs an intersection calculation on the configured first data subset and the second dataset to obtain an intersection result; the first data subset is m subsets pre-splitted from the first dataset; m is a positive integer greater than 1; receiving the intersection results fed back by each sending end worker node and summarizing them into a full intersection result.

[0008] In one implementation, the step of splitting the task to be intersected into multiple subtasks according to the resource configuration of the sending end, and assigning the subtasks to the sending end worker nodes for execution, includes: when n equals 1 and the resource configuration of the sending end worker nodes does not meet preset conditions, obtaining a second dataset, and causing the sending end worker nodes to sequentially intersect the configured first data subset with the second dataset to obtain an intersection result; the first data subset is n subsets pre-split from the first dataset; receiving the intersection results sequentially fed back by the sending end worker nodes, and summarizing them into a full intersection result.

[0009] In one embodiment, the method further includes: the sending end splits the first dataset according to a preset rule, and then converts the split first dataset into a polynomial to obtain the coefficient vector of the polynomial.

[0010] In one embodiment, the method further includes: receiving an encrypted second dataset sent by the receiving end.

[0011] In one implementation, after the step of splitting the task to be intersected into multiple subtasks according to the resource configuration of the sending end and assigning the subtasks to the sending end's working nodes for execution, the method further includes: sending the full intersection result to the receiving end so that the receiving end can decrypt the full intersection result to obtain the actual intersection result.

[0012] According to a second aspect of this disclosure, a privacy set intersection apparatus is provided, the apparatus comprising: an acquisition module configured to acquire resource configuration of a sending end; the sending end including n sending end worker nodes, where n is a positive integer; and a processing module configured to, according to the resource configuration of the sending end, split the intersection task into multiple subtasks, and assign the subtasks to the sending end worker nodes for execution; the intersection task is a task for finding the intersection of a first dataset of the sending end and a second dataset of the receiving end.

[0013] In one implementation, the above processing module is configured to: when n is greater than 1 and the resource configuration of each sending end working node meets the preset conditions, obtain n second data subsets split from the second dataset, send each second data subset to the corresponding sending end working node, so that each sending end working node performs intersection calculation on the configured first dataset and the second data subset to obtain the intersection result; receive the intersection result fed back by each sending end working node and summarize it into a full intersection result.

[0014] In one implementation, the above processing module is configured to: when n is greater than 1 and the resource configuration of each sending end working node does not meet the preset conditions, split the first dataset into n first data subsets, configure each first data subset on the corresponding sending end working node, and make each sending end working node perform intersection calculation on the first data subset and the second dataset to obtain the intersection result; receive the intersection result fed back by each sending end working node and summarize it into a full intersection result.

[0015] In one implementation, the above processing module is configured to: split the first dataset into m first data subsets when n equals 1 and the resource configuration of the sending end working node does not meet the preset conditions, and make the sending end working node sequentially intersect the first data subsets with the second dataset to obtain the intersection result; m is a positive integer greater than n; receive the intersection results sequentially fed back by the sending end working node and summarize them into a full intersection result.

[0016] In one embodiment, the above-mentioned privacy set intersection device further includes a receiving module, configured to: the sending end splits the first dataset according to a preset rule, and then converts the split first dataset into a polynomial to obtain the coefficient vector of the polynomial.

[0017] In one embodiment, the aforementioned privacy set intersection device further includes a preprocessing module configured to receive an encrypted second dataset sent by the receiving end.

[0018] In one embodiment, the above-mentioned privacy set intersection device further includes a decryption module configured to send the full intersection result to the receiving end so that the receiving end decrypts the full intersection result to obtain the true intersection result.

[0019] According to a third aspect of this disclosure, a computer-readable storage medium is provided, on which a computer program is stored, wherein when the computer program is executed by a processor, it implements the privacy set intersection method of the first aspect described above and its possible implementations.

[0020] According to a fourth aspect of this disclosure, an electronic device is provided, comprising: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to execute the privacy set intersection method of the first aspect and its possible implementations by executing the executable instructions.

[0021] The technical solution disclosed herein has the following beneficial effects:

[0022] In this scheme, the resource configuration of the sending end is obtained; the sending end includes n sending end worker nodes, where n is a positive integer; according to the resource configuration of the sending end, the intersection task is split into multiple subtasks, and the subtasks are assigned to the sending end worker nodes for execution; the intersection task is used to find the intersection of the first dataset of the sending end and the second dataset of the receiving end. Because the intersection task is split into multiple subtasks and assigned to the sending end worker nodes for execution, i.e., data is processed in a distributed manner; therefore, even if the data expands during the data processing process, there are sufficient computing resources to continue processing the expanded data. Thus, it can solve the problem of insufficient computing resources caused by data expansion to a certain extent. Attached Figure Description

[0023] Figure 1 A schematic diagram of a system architecture provided for an embodiment of this disclosure;

[0024] Figure 2 A schematic diagram illustrating the implementation process of a privacy set intersection method provided in this embodiment of the disclosure;

[0025] Figure 3 This is a schematic diagram illustrating the implementation process of a privacy set intersection method provided in this embodiment of the disclosure when the sending end working node n is greater than 1 and the resource configuration of the sending end working node meets preset conditions;

[0026] Figure 4 An implementation provided for embodiments of this disclosure Figure 3 Example diagram of the structure of the sending end of the method;

[0027] Figure 5 This is a schematic diagram illustrating the implementation process of a privacy set intersection method provided in this embodiment of the disclosure when the sending end working node n is greater than 1 and the resource configuration of the sending end working node does not meet the preset conditions;

[0028] Figure 6 An implementation provided for embodiments of this disclosure Figure 5 Example diagram of the structure of the sending end of the method;

[0029] Figure 7This is a schematic diagram illustrating the implementation process of a privacy set intersection method provided in this embodiment of the disclosure when the sending end working node n equals 1 and the resource configuration of the sending end working node does not meet the preset conditions;

[0030] Figure 8 This is a schematic diagram of the structure of a privacy set intersection device provided in an embodiment of the present disclosure;

[0031] Figure 9 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this disclosure. Detailed Implementation

[0032] Exemplary embodiments of this disclosure will be described more fully below with reference to the accompanying drawings.

[0033] The accompanying drawings are schematic illustrations of this disclosure and are not necessarily drawn to scale. Some block diagrams shown in the drawings may be functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities may be implemented in software, in hardware modules or integrated circuits, or in networks, processors, or microcontrollers. Implementations can be carried out in various forms and should not be construed as limited to the examples set forth herein. The features, structures, or characteristics described in this disclosure can be combined in any suitable manner in one or more embodiments. Numerous specific details are provided in the following description to give a thorough description of embodiments of this disclosure. However, those skilled in the art will recognize that one or more specific details may be omitted when implementing the technical solutions of this disclosure, or other methods, components, apparatuses, steps, etc., may be used to replace one or more specific details.

[0034] Fully multi-party computation allows multiple parties to jointly run a protocol that performs certain operations on secret data input by each party, while maintaining both privacy and correctness. The former means that the protocol execution does not reveal any information other than the actual output, while the latter requires all parties to honestly obtain the correct output.

[0035] The Private Set Intersection (PSI) problem is a fundamental function in secure multi-party computation and has been extensively studied over the past decade. The problem involves a group of parties, P1 and P2, each possessing datasets X1 and X2 of size m1 and m2 respectively, and the goal is to securely find the intersection X1∩X2 of all datasets.

[0036] Asymmetric PSI is a special scenario in the field of privacy set intersection, characterized by a significant difference in the data volume between the two parties involved in the intersection, such as a thousandfold or even ten thousandfold. Currently, the industry generally uses homomorphic encryption-based PSI schemes for asymmetric privacy set intersection. These schemes require only a small amount of communication to obtain the intersection result. However, a problem arises when the sending end needs to perform cuckoo hashing and calculate polynomial coefficients, causing the data to rapidly expand, sometimes reaching hundreds of millions of records. Processing hundreds of millions of records requires extremely high memory consumption, leading to insufficient computing resources and significantly limiting the use of this algorithm.

[0037] The following is combined with Figure 1 The system architecture and application scenarios of one operating environment for the above-mentioned privacy set intersection method are illustrated by example.

[0038] Figure 1 A schematic diagram of the system architecture is shown. The system architecture 100 may include a transmitter 110 and a receiver 120. The transmitter 110 and receiver 120 may be devices with computing capabilities, such as servers. The transmitter 110 is used to find the intersection of the first dataset and the second dataset to obtain the intersection result.

[0039] In one implementation, the sending end performs cuckoo hashing on the first dataset, then converts it into a polynomial to obtain a transformation coefficient vector; the receiving end encrypts the second dataset and sends the encrypted second dataset to the sending end; the sending end performs a secret-state dot product on the encrypted second dataset and the transformation coefficient vector to obtain an encrypted intersection result; and then sends the encrypted intersection result to the receiving end so that the receiving end can decrypt the encrypted intersection result to obtain the real intersection result.

[0040] Figure 2 This is a schematic diagram illustrating the implementation process of a privacy set intersection method provided in an embodiment of this disclosure, as shown below. Figure 2 As shown, the method includes the following steps S210 and S220:

[0041] Step S210: Obtain the resource configuration of the sending end.

[0042] The sending end includes n sending end working nodes, where n is a positive integer.

[0043] The resource configuration of the sending end refers to the configuration of the computing resources of the sending end, such as the number of sending end worker nodes and the computing resource configuration of each sending end worker node; the sending end worker nodes can be devices with computing functions such as servers; that is, the sending end can include one server or multiple servers, which is not limited here.

[0044] When the sending end includes multiple servers, one server can be designated as the master server, and the rest as slave servers. Furthermore, the master server can be used to manage and maintain the server cluster and data forwarding, while the slave servers can process the data forwarded by the master server. Of course, the master server can also be used for both managing and maintaining the server cluster and data forwarding, as well as for data processing; this is not a limitation here.

[0045] Step S220: Based on the resource configuration of the sending end, the task to be delivered is divided into multiple subtasks, and the subtasks are assigned to the sending end worker nodes for execution.

[0046] The task to be intersected is used to find the intersection between the first dataset of the sender and the second dataset of the receiver.

[0047] The first dataset is the dataset held by the sender, and the second dataset is the dataset held by the receiver. For example, if the participant P1 with a larger data volume is the sender, its dataset is Y and the data volume is m1; and the participant P2 with a smaller data volume is the receiver, its dataset is X and the data volume is m2; then the above dataset Y is the first dataset, and the above dataset X is the second dataset, and m1 >> m2.

[0048] The task to be submitted can be split based on the number of sending worker nodes. When the master server manages and maintains the server cluster and handles data forwarding, and the slave servers process the data forwarded by the master server, the task can be split according to the number of slave servers. For example, if there are 10 sending worker nodes, with one as the master and the rest as slaves, the task can be split into 9 subtasks. Similarly, if the master server manages and maintains the server cluster and handles both data forwarding and processing, the task can be split according to the number of sending worker nodes. For example, if there are 10 sending worker nodes, with one as the master and the rest as slaves, the task can be split into 10 subtasks. Here, the splitting can be done using out-of-order fragmentation.

[0049] This embodiment splits the task to be intersected according to the resource configuration of the sending end, and performs the intersecting task in a distributed manner. In this way, even if the data expands during the data processing, there are enough computing resources to continue processing the expanded data. Therefore, it can improve the computing speed and save computing time.

[0050] In one implementation, the resource configuration of the aforementioned transmitter includes the case where n is greater than 1 and the resource configuration of each transmitter worker node meets preset conditions. Figure 3 This is a schematic diagram illustrating the implementation process of a privacy set intersection method provided in an embodiment of this disclosure, as shown below. Figure 3 As shown, step S220 above includes the following steps S310 and S320:

[0051] Step S310: When n is greater than 1 and the resource configuration of each sending end working node meets the preset conditions, obtain n second data subsets split from the second dataset, and send each second data subset to the corresponding sending end working node, so that each sending end working node finds the intersection of the configured first dataset and the second data subset to obtain the intersection result.

[0052] The preset conditions are used to measure whether the computing resources of each sending end working node are sufficient. Here, a computing resource threshold can be determined based on the computing resources required for historical calculations, and the relationship between the computing resources and the computing resource threshold can be used as the preset conditions, such as: computing resources are greater than or equal to the computing resource threshold. Furthermore, when the computing resources are greater than or equal to the computing resource threshold, it is determined that the resource configuration of the sending end working node meets the preset conditions. For example, Figure 4 As shown, since the resource configuration of each sending end working node meets the preset conditions, the first dataset does not need to be split, and only the second dataset needs to be split; that is, each sending end working node uses the first dataset and the corresponding second data subset to find the intersection.

[0053] To ensure full utilization of each sending node, the master server in this step is used for both managing and maintaining the server cluster and data forwarding, as well as for data processing. Furthermore, the second dataset is split according to the number of sending nodes. That is, when there are n sending nodes, the second dataset is split into n second data subsets. Then, these n second data subsets are sent to the corresponding sending nodes, that is, one second data subset is sent to each sending node.

[0054] Step S320: Receive the intersection results fed back by each sending end working node and summarize them into a full intersection result.

[0055] Since each sending node performs an intersection calculation on the first dataset and the second subset of data, each sending node obtains a partial intersection result. By summarizing the partial intersection results of each sending node, the full intersection result can be obtained.

[0056] In one implementation, the resource configuration of the aforementioned transmitter includes the case where n is greater than 1, and the resource configuration of each transmitter worker node does not meet the preset conditions. Figure 5This is a schematic diagram illustrating the implementation process of a privacy set intersection method provided in an embodiment of this disclosure, as shown below. Figure 5 As shown, step S220 above includes the following steps S510 and S520:

[0057] Step S510: When n is greater than 1 and the resource configuration of each sending end working node does not meet the preset conditions, the second dataset is sent to each sending end working node respectively, so that each sending end working node finds the intersection of the configured first data subset and the second dataset to obtain the intersection result.

[0058] The first data subset is n subsets that are pre-split from the first dataset.

[0059] Because the resource configuration of the sending end worker node does not meet the preset conditions, here, for example... Figure 6 As shown, when there are n sending end worker nodes, the first dataset is split according to the number of sending end worker nodes, and the second dataset is copied. That is, the first dataset is split into n first data subsets, and the second dataset is copied into n copies. Then, these n second datasets are sent to the corresponding sending end worker nodes, so that each sending end worker node can find the intersection of the first data subset and the second dataset of the sending end worker node.

[0060] Step S520: Receive the intersection results fed back by each sending end working node and summarize them into a full intersection result.

[0061] Since each sending node performs intersection calculations on its corresponding first data subset and second dataset, each sending node obtains a partial intersection result. Therefore, by summing up the intersection results of each sending node, the full intersection result can be obtained.

[0062] In one implementation, the resource configuration of the aforementioned transmitter includes the case where n equals 1 and the resource configuration of each transmitter worker node does not meet the preset conditions. Figure 7 This is a schematic diagram illustrating the implementation process of a privacy set intersection method provided in an embodiment of this disclosure, as shown below. Figure 7 As shown, step S220 above includes steps S710 and S720:

[0063] Step S710: When n equals 1 and the resource configuration of the sending end working node does not meet the preset conditions, obtain the second dataset, and make the sending end working node sequentially intersect the configured first data subset and the second dataset to obtain the intersection result; the first data subset is m subsets pre-split from the first dataset, where m is a positive integer greater than 1.

[0064] In this step, since n equals 1 and the resource configuration of the sending end working node does not meet the preset conditions, the first dataset is split into m first data subsets, the second dataset is not processed, and then the second dataset is sent to the sending end working node so that the sending end working node sequentially finds the intersection of the first data subset of the sending end working node with the second dataset.

[0065] Step S720: Receive the intersection results sequentially fed back by the sending end working nodes and summarize them into a full intersection result.

[0066] Since the sending end worker node sequentially performs intersection calculations on the corresponding first data subset and the second dataset, the sending end worker node outputs a partial intersection result each time. Therefore, by summing up the partial intersection results output by the sending end worker node each time, the full intersection result can be obtained.

[0067] In one implementation, the first dataset can be processed, and then the processed first dataset can be split; that is, the method further includes the following steps:

[0068] The sending end splits the first dataset according to a preset rule, and then converts the split first dataset into a polynomial to obtain the coefficient vector of the polynomial.

[0069] One approach is to use the Cuckoo Hash bucketing method to split the first dataset. Then, polynomial coefficients are calculated for the split data. For example, if P1, a participant with a larger dataset, is the sender, and its dataset is Y (the first dataset) with a data size of m1, the sender first performs Cuckoo Hash bucketing on the first dataset. Assuming that the maximum number of data items in each bucket after bucketing is k, and the data in each bucket is in the form Y = (y1, y2, ..., yk), this can be converted to the polynomial F(y) = (y-y1)(y-y2)...(yyk). k ) = a k y k +....+a1y+a0, we get the transformation coefficient vector A=(a0,a1,.....a k For example, as shown in Table 1, the first dataset of the sending end is divided into buckets by cuckoo hash and polynomials, and the results in Table 2 are obtained.

[0070]

[0071]

[0072] Table 1

[0073] 1 (x-12345678)(x-12345679) <![CDATA[(a0,a1,a2)]]> 2 (x-12345680)(x-12345681) <![CDATA[(a0,a1,a2)]]> 3 (x-12345682)(x-12345683) <![CDATA[(a0,a1,a2)]]>

[0074] Table 2

[0075] In one implementation, the second dataset can be processed, and then the processed second dataset can be split. After the above steps, the method includes the following steps:

[0076] Receive the encrypted second dataset sent by the receiving end.

[0077] The second dataset is obtained by encrypting the initial data received by the receiving end. For example, if the participant P2 with a smaller data volume is the receiving end, its dataset is X (the second dataset) with a data volume of m2. The receiving end can select public and private keys for (homomorphic) encryption. For each piece of data x in m2, it is encrypted using the public key, q = Enc(pk, x), and the encrypted second dataset is sent to the sending end. Furthermore, (homomorphic) multiplication is used to calculate q to the power of k, V = (q, q 2 ,.....,q k The receiver sends V to the sender. Here, k is determined based on the amount of data in each bucket after the sender has divided the first dataset into buckets. For example, if the amount of data in each bucket is 10, then k is 10. For example, as shown in Table 3, the receiver generates a key pair for homomorphic encryption, namely a public key and a private key. It uses the public key to encrypt each piece of second data in the second dataset, and simultaneously calculates the power of k for each encrypted piece of second data. The first dataset includes 6 pieces of first data (see Table 1), which are divided into 3 buckets, each containing 2 pieces of second data. Therefore, k is 2.

[0078] 0 12345678 63537 <![CDATA[63537 2 ]]> 1 23456789 23837 <![CDATA[23837 2 ]]> 2 34567890 73847 <![CDATA[73847 2 ]]>

[0079] Table 3

[0080] In one implementation, to obtain the final true intersection result, the intersection result also needs to be decrypted. That is, after step S220 above, the method includes the following steps:

[0081] Send the full intersection result to the receiving end so that the receiving end can decrypt the full intersection result and obtain the true intersection result.

[0082] The receiving end uses its private key to decrypt the full intersection result to obtain the actual intersection result. For example, as shown in Table 4, if the result of the corresponding ID is 0 after decrypting the full intersection result with the private key, it means that the data is in the intersection result, and the data with ID 0 is stored at the sending end.

[0083] 0 6337238 0 1 56326372 6326372382 2 8462 2612516

[0084] Table 4

[0085] The privacy set intersection method provided in this disclosure has significant application potential in dating services, data mining, and recommendation systems. For example, an airline wants to compare its passenger list with a list of people prohibited from leaving the country. The airline has more passengers than people prohibited from leaving the country. Therefore, the airline acts as the sender (sender), and the provider of the list of people prohibited from leaving the country acts as the receiver (receiver). Assume the airline's passenger list constitutes dataset M (first dataset) with a data size of n1; the list of people prohibited from leaving the country constitutes dataset Q (second dataset) with a data size of n2. The passenger names in both the passenger list and the list of people prohibited from leaving the country are converted into vectors, and then the intersection is found according to the privacy set intersection method provided in this disclosure. That is:

[0086] The first step is for the airline to perform cuckoo hashing on the first dataset. Assuming each bucket contains a maximum of w data entries, and the data within each bucket is in the form M = (m1, m2, ..., mw), this is converted to the polynomial F(m) = (m - m1)(m - m2) ... (mw). w )=b w m w +....+b1m+b0, we get the transformation coefficient vector B=(b0,b1,.....b w );

[0087] The second step involves the provider of the list of individuals prohibited from leaving the country selecting public and private keys for (homomorphic) encryption. For each piece of data q in Q, the public key is used to encrypt it, z = Enc(pw, q), and the encrypted second dataset is sent to the sender. Further, (homomorphic) multiplication is used to calculate z raised to the power of w, U = (z, z...). 2 ,.....,z w The data is then sent to the sender, and U is sent to the sender. Here, w is determined based on the amount of data in each bucket after the sender has divided the first dataset into buckets. For example, if the amount of data in each bucket is 10, then w is 10. Simultaneously, the power of w is calculated for each encrypted second data item.

[0088] The third step is for the sending end to perform a dense-state dot product on each piece of data from the receiving end, that is, to multiply the transformation coefficient vector and the calculation result of the power of w by a dot product, and then send the dot product result to the receiving end.

[0089] Fourth step: The receiving end uses the private key from the public-private key to decrypt the dot product result. If the decryption result is 0, it means that the data is the intersection of the two. By summing up all the data with a decryption result of 0, the list of people who are not allowed to leave the country in the airline's passenger list is obtained.

[0090] For distributed systems with different resource configurations, the corresponding strategy can be adopted to split the data in the first or second step above.

[0091] Exemplary embodiments of this disclosure also provide a privacy set intersection apparatus 800. (See reference...) Figure 8 As shown, the privacy set intersection device 800 may include:

[0092] The acquisition module 810 is configured to acquire the resource configuration of the sending end; the sending end includes n sending end worker nodes, where n is a positive integer;

[0093] The processing module 820 is configured to split the intersection task into multiple subtasks according to the resource configuration of the sender, and assign the subtasks to the sender's worker nodes for execution; the intersection task is used to find the intersection of the first dataset of the sender and the second dataset of the receiver.

[0094] In one implementation, the processing module 820 is configured to: when n is greater than 1 and the resource configuration of each sending end working node meets the preset conditions, obtain n second data subsets split from the second dataset, send each second data subset to the corresponding sending end working node, so that each sending end working node performs intersection calculation on the configured first dataset and the second data subset to obtain the intersection result; receive the intersection result fed back by each sending end working node and summarize it into a full intersection result.

[0095] In one implementation, the processing module 820 is configured to: when n is greater than 1 and the resource configuration of each sending end working node does not meet the preset conditions, send the second dataset to each sending end working node respectively, so that each sending end working node performs an intersection calculation on the configured first data subset and the second dataset to obtain an intersection result; the first data subset is n subsets pre-split from the first dataset; receive the intersection results fed back by each sending end working node and summarize them into a full intersection result.

[0096] In one implementation, the processing module 820 is configured to: when n equals 1 and the resource configuration of the sending end working node does not meet the preset conditions, obtain the second dataset, and make the sending end working node sequentially perform intersection calculations on the configured first data subset and the second dataset to obtain the intersection result; the first data subset is n subsets pre-split from the first dataset; receive the intersection results sequentially fed back by the sending end working node and summarize them into a full intersection result.

[0097] In one embodiment, the task processing device 800 further includes a receiving module 830, configured to: split the first dataset according to a preset rule, and then convert the split first dataset into a polynomial to obtain the coefficient vector of the polynomial.

[0098] In one embodiment, the task processing device 800 further includes a preprocessing module 840 configured to receive an encrypted second dataset sent by the receiving end.

[0099] In one embodiment, the task processing device 800 further includes a decryption module 850, configured to send the full intersection result to the receiving end so that the receiving end can decrypt the full intersection result and obtain the true intersection result.

[0100] Exemplary embodiments of this disclosure also provide a computer-readable storage medium that can be implemented as a program product including program code, which, when run on an electronic device, causes the electronic device to perform the steps described in the "Exemplary Methods" section of this specification according to various exemplary embodiments of this disclosure. In an alternative embodiment, the program product can be implemented as a portable compact disc read-only memory (CD-ROM) including program code and can run on an electronic device, such as a personal computer. However, the program product of this disclosure is not limited thereto. In this document, the readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.

[0101] The program product may employ any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples (a non-exhaustive list) of readable storage media include: electrical connections having one or more wires, portable disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.

[0102] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A readable signal medium may also be any readable medium other than a readable storage medium, capable of sending, propagating, or transmitting programs for use by or in conjunction with an instruction execution system, apparatus, or device.

[0103] The program code contained on the readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination thereof.

[0104] Program code for performing the operations of this disclosure can be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java and C++, and conventional procedural programming languages ​​such as C or similar languages. The program code can execute entirely on the user's computing device, partially on the user's computing device, as a standalone software package, partially on the user's computing device and partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing devices can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computing device (e.g., via the Internet using an Internet service provider).

[0105] Exemplary embodiments of this disclosure also provide an electronic device, such as the PON management and monitoring system 101 and OLT 102 described above. The electronic device may include a processor and a memory. The memory stores executable instructions for the processor, such as program code. The processor executes these executable instructions to perform the privacy set intersection method in this exemplary embodiment, such as... Figure 2 The method and steps.

[0106] The following is for reference. Figure 9 The electronic device is illustrated by way of a general-purpose computing device. It should be understood that... Figure 9 The electronic device 900 shown is merely an example and should not be construed as limiting the functionality and scope of use of the embodiments disclosed herein.

[0107] like Figure 9 As shown, the electronic device 900 may include: a processor 910, a memory 920, a bus 930, an I / O (input / output) interface 940, and a network adapter 950.

[0108] The memory 920 may include volatile memory, such as RAM 921 and cache unit 922, and may also include non-volatile memory, such as ROM 923. The memory 920 may also include one or more program modules 924, including but not limited to: an operating system, one or more application programs, other program modules, and program data. Each or some combination of these examples may include an implementation of a network environment. For example, program module 924 may include the modules in the privacy set intersection device 700 described above.

[0109] Bus 930 is used to connect different components of electronic device 900, and may include data bus, address bus and control bus.

[0110] Electronic device 900 can communicate with one or more external devices 1000 (such as keyboard, mouse, external controller, etc.) through I / O interface 940.

[0111] Electronic device 900 can communicate with one or more networks via network adapter 950. For example, network adapter 950 can provide mobile communication solutions such as 3G / 4G / 5G, or wireless communication solutions such as wireless LAN, Bluetooth, and near-field communication. Network adapter 950 can communicate with other modules of electronic device 900 via bus 930.

[0112] although Figure 9 Other hardware and / or software modules, including but not limited to: displays, microcode, device drivers, redundant processors, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, may also be configured in electronic device 900.

[0113] It should be noted that although several modules or units for the device used to perform actions have been mentioned in the detailed description above, this division is not mandatory. In fact, according to exemplary embodiments of this disclosure, the features and functions of two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided into multiple modules or units.

[0114] Those skilled in the art will understand that various aspects of this disclosure can be implemented as systems, methods, or program products. Therefore, various aspects of this disclosure can be embodied in entirely hardware implementations, entirely software implementations (including firmware, microcode, etc.), or implementations combining hardware and software aspects, collectively referred to herein as “circuit,” “module,” or “system.” Other embodiments of this disclosure will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of this disclosure that follow the general principles of this disclosure and include common knowledge or customary techniques in the art not disclosed herein. The specification and embodiments are to be considered exemplary only, and the true scope and spirit of this disclosure are indicated by the claims.

[0115] It should be understood that this disclosure is not limited to the precise structures described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of this disclosure is defined only by the appended claims.

Claims

1. A method for finding the intersection of privacy sets, characterized in that, include: Obtain the resource configuration of the sending end; the sending end includes n sending end working nodes, where n is a positive integer; Based on the resource configuration of the sending end, the task to be submitted is divided into multiple sub-tasks, and the sub-tasks are assigned to the sending end working nodes for execution. The intersection task is used to find the intersection of the first dataset of the sending end and the second dataset of the receiving end. Specifically, based on the resource configuration of the sending end, the task to be submitted is divided into multiple subtasks, and the subtasks are assigned to the sending end's worker nodes for execution, including: When n is greater than 1 and the resource configuration of each sending end worker node meets the preset conditions, obtain n second data subsets split from the second dataset, and send each second data subset to the corresponding sending end worker node, so that each sending end worker node performs intersection calculation on the configured first dataset and the second data subset to obtain the intersection result; receive the intersection results fed back by each sending end worker node and summarize them into the full intersection result; When n is greater than 1 and the resource configuration of each sending end worker node does not meet the preset conditions, the second dataset is sent to each sending end worker node respectively, so that each sending end worker node performs an intersection calculation on the configured first data subset and the second dataset to obtain the intersection result; the first data subset is n subsets pre-split from the first dataset; the intersection results fed back by each sending end worker node are received and summarized into a full intersection result; When n equals 1 and the resource configuration of the sending end work nodes does not meet the preset conditions, a second dataset is obtained, and the sending end work nodes sequentially perform intersection calculations on the configured first data subset and the second dataset to obtain the intersection results; the first data subset is m subsets pre-split from the first dataset; m is a positive integer greater than 1; the intersection results sequentially fed back by the sending end work nodes are received and summarized into a full intersection result; The method further includes: The sending end splits the first dataset according to a preset rule, and then converts the split first dataset into a polynomial to obtain the coefficient vector of the polynomial.

2. The privacy set intersection method according to claim 1, characterized in that, The method further includes: Receive the encrypted second dataset sent by the receiving end.

3. The method for finding the intersection of privacy sets according to claim 1, characterized in that, After splitting the task to be submitted into multiple subtasks according to the resource configuration of the sending end, and assigning the subtasks to the sending end worker nodes for execution, the method further includes: Send the full intersection result to the receiving end so that the receiving end can decrypt the full intersection result and obtain the true intersection result.

4. A privacy set intersection device, characterized in that, The device includes: The acquisition module is configured to acquire the resource configuration of the sending end; the sending end includes n sending end working nodes, where n is a positive integer; The processing module is configured to split the intersection task into multiple subtasks according to the resource configuration of the sending end, and assign the subtasks to the sending end worker nodes for execution; the intersection task is a task used to find the intersection of the first dataset of the sending end and the second dataset of the receiving end. The receiving module is configured to split the first dataset according to a preset rule, and then convert the split first dataset into a polynomial to obtain the coefficient vector of the polynomial. Specifically, based on the resource configuration of the sending end, the task to be submitted is divided into multiple subtasks, and the subtasks are assigned to the sending end's worker nodes for execution, including: When n is greater than 1 and the resource configuration of each sending end worker node meets the preset conditions, obtain n second data subsets split from the second dataset, and send each second data subset to the corresponding sending end worker node, so that each sending end worker node performs intersection calculation on the configured first dataset and the second data subset to obtain the intersection result; receive the intersection results fed back by each sending end worker node and summarize them into the full intersection result; When n is greater than 1 and the resource configuration of each sending end worker node does not meet the preset conditions, the second dataset is sent to each sending end worker node respectively, so that each sending end worker node performs an intersection calculation on the configured first data subset and the second dataset to obtain the intersection result; the first data subset is n subsets pre-split from the first dataset; the intersection results fed back by each sending end worker node are received and summarized into a full intersection result; When n equals 1 and the resource configuration of the sending end working node does not meet the preset conditions, the second dataset is obtained, and the sending end working node sequentially performs intersection calculations on the configured first data subset and the second dataset to obtain the intersection results; the first data subset is m subsets pre-split from the first dataset; m is a positive integer greater than 1; the intersection results sequentially fed back by the sending end working node are received and summarized into a full intersection result.

5. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the method described in any one of claims 1 to 3.

6. An electronic device, characterized in that, include: processor; as well as Memory for storing the executable instructions of the processor; The processor is configured to execute the method of any one of claims 1 to 3 by executing the executable instructions.

Citation Information

Patent Citations

  • Method and device for obtaining privacy set intersection, equipment and storage medium

    CN111931207A

  • Data processing method, device and system

    CN114329578A

  • Multi-party safe intersection solving method and system

    CN114386070A