Methods, systems, and devices for finding intersections of multiple privacy sets
The method and system for multi-party privacy set intersection address the limitation of two-party protocols by securely computing the intersection of multiple privacy sets using homomorphic encryption, enhancing data privacy and efficiency in industrial applications.
Patent Information
- Application Number
- CN202210347447.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-04-01
- Publication Date
- 2024-12-10
- Estimated Expiration
- 2042-04-01
AI Technical Summary
Existing Freedman-based private set intersection protocols only support two parties and do not facilitate secure computation among multiple parties without leaking private data.
A method and system for multi-party privacy set intersection involving selecting an initiator and multiple receivers, constructing polynomials, and using homomorphic encryption to determine and align data calculation results across multiple privacy sets, ensuring secure data sharing and intersection without data leakage.
Enables secure computation of the intersection of multiple privacy sets among multiple parties, enhancing data privacy and convenience in industrial applications by improving the diversity and efficiency of privacy set intersection protocols.
Smart Images

Figure CN114726611B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present disclosure relate to the fields of computer technology and Internet technology, specifically to the field of secure computing, and more particularly to a method, system, and device for finding the intersection of multiple privacy sets. Background Art
[0002] Multi-party private intersection refers to a secure computing technology that allows parties holding private data sets to obtain the intersection of their private data sets without leaking the private data they hold. Private set intersection (PSI) is also called private set alignment.
[0003] The Freedman protocol-based private set intersection is based on the core idea of using additive homomorphic encryption to encrypt polynomial coefficients. A polynomial with one party's private set as the root is constructed. Only the sample privacy in the public private part can make the polynomial value 0, and the other values cannot be cracked by the encryption party, thus achieving alignment. However, the existing Freedman-based private set intersection protocol only supports two parties, not multiple parties. Summary of the invention
[0004] The embodiments of the present disclosure provide a multi-party privacy set intersection method, system, device, electronic device and computer-readable medium.
[0005] In a first aspect, an embodiment of the present disclosure provides a method for finding the intersection of multiple privacy sets, the method comprising: selecting an initiator and multiple receivers from multiple clients; sending a polynomial solution request to the initiator, so that the initiator determines a public key and multiple encryption coefficients based on a first privacy set and a polynomial; in response to receiving the public key and multiple encryption coefficients sent by the initiator, sending the public key and multiple encryption coefficients to multiple receivers, so that each receiver obtains a data calculation result based on a second privacy set, the public key and the multiple encryption coefficients; in response to receiving the data calculation results sent by multiple receivers, sending multiple data calculation results to the initiator, so that the initiator decrypts the multiple data calculation results and generates intersection data between the first privacy set and multiple second privacy sets.
[0006] In some embodiments, an initiator and multiple receivers are selected from multiple clients, including: sending alignment requests to the multiple clients so that each client determines the data length of the privacy set; determining a target data length that meets a preset condition in response to receiving the data length sent by the multiple clients; determining the client corresponding to the target data length as the initiator, and determining the other multiple clients as multiple receivers.
[0007] In some embodiments, the method further includes: receiving multiple result indexes sent by the initiator, wherein the result index is determined based on the position information of each element data in the intersection data in the data calculation result; sending the multiple result indexes to the corresponding receiving party so that the receiving party determines the intersection data from the second privacy set according to the result index.
[0008] In the second aspect, an embodiment of the present disclosure provides a method for finding the intersection of multiple privacy sets, the method comprising: in response to receiving a polynomial solution request sent by a control end, constructing a polynomial corresponding to a first privacy set; obtaining a public key, a private key, and multiple encryption coefficients corresponding to the polynomial; sending the public key and the multiple encryption coefficients to the control end, so that the control end sends the public key and the multiple encryption coefficients to multiple recipients; receiving multiple data calculation results sent by the control end, wherein the data calculation results are determined based on the recipient's second privacy set, the public key, and the multiple encryption coefficients; using the private key to decrypt and align each data calculation result respectively, and generate intersection data between the first privacy set and multiple second privacy sets.
[0009] In some embodiments, obtaining a public key, a private key, and multiple encryption coefficients corresponding to a polynomial includes: using each element data in a first privacy set as a solution to the polynomial to calculate multiple polynomial coefficients; and encrypting multiple polynomial coefficients using a homomorphic encryption algorithm to obtain a public key, a private key, and multiple encryption coefficients.
[0010] In some embodiments, the method further includes: determining, based on the intersection data between the first privacy set and multiple second privacy sets, location information corresponding to the intersection data in multiple data calculation results; determining, based on the location information, multiple result indexes corresponding to multiple recipients; and sending the multiple result indexes to the control end so that the control end sends the multiple result indexes to the multiple recipients.
[0011] In some embodiments, the method further includes: in response to receiving an alignment request sent by the control end, obtaining a data length corresponding to the first privacy set; and sending the data length to the control end.
[0012] In some embodiments, in response to receiving an alignment request sent by the control end, obtaining the data length corresponding to the first privacy set includes: generating a first random number in response to receiving the alignment request sent by the control end; obtaining the initial data length of the first privacy set; and obtaining the data length corresponding to the first privacy set based on the first random number and the initial data length.
[0013] In a third aspect, an embodiment of the present disclosure provides a method for finding the intersection of multiple privacy sets, the method comprising: in response to receiving a public key and multiple encryption coefficients sent by a control end, performing data matching calculations under ciphertext based on the public key, multiple encryption coefficients and a second privacy set to obtain a data calculation result corresponding to the second privacy set; sending the data calculation result to the control end so that the control end sends the data calculation result to the initiator; receiving a result index corresponding to the data calculation result sent by the control end, wherein the result index is determined based on the position information of each element data in the intersection data in the data calculation result, and the intersection data is the intersection data between the first privacy set of the initiator and multiple second privacy sets; based on the result index, determining the intersection data between the first privacy set and multiple second privacy sets from the second privacy set.
[0014] In some embodiments, the method further includes: in response to receiving an alignment request sent by the control end, obtaining a data length corresponding to the second privacy set; and sending the data length to the control end.
[0015] In some embodiments, in response to receiving an alignment request sent by the control end, obtaining the data length corresponding to the second privacy set includes: generating a second random number in response to receiving the alignment request sent by the control end; obtaining the initial data length of the second privacy set; and obtaining the data length corresponding to the second privacy set based on the second random number and the initial data length.
[0016] In a fourth aspect, an embodiment of the present disclosure provides a multi-party privacy set intersection system, the system comprising: a control end and multiple clients, wherein the multiple clients include an initiator and multiple receivers; the control end is configured to send an alignment request to the multiple clients; the multiple clients are configured to obtain and send the data length of the privacy set to the control end in response to receiving the alignment request; the control end is configured to select an initiator and multiple receivers from the multiple clients in response to receiving multiple data lengths; and the control end is configured to send a polynomial solution request to the initiator; the initiator is configured to construct a polynomial corresponding to a first privacy set in response to receiving the polynomial solution request; and the initiator is configured to obtain a public key, a private key and multiple encryption coefficients corresponding to the polynomial, and send the public key and the multiple encryption coefficients to the control end; the control end is configured to send the public key and the multiple encryption coefficients to the multiple receivers in response to receiving the public key and the multiple encryption coefficients sent by the initiator. encryption coefficients; multiple receiving parties, configured to perform data matching calculations under ciphertext in response to receiving a public key and multiple encryption coefficients, obtain data calculation results corresponding to the second privacy set, and send the data calculation results to the control end; the control end is configured to send the multiple data calculation results corresponding to the multiple receiving parties to the initiator in response to receiving the multiple data calculation results; the initiator is configured to decrypt and align each data calculation result respectively in response to receiving the multiple data calculation results, and generate intersection data between the first privacy set and the multiple second privacy sets; and the initiator is configured to determine the multiple result indexes corresponding to the multiple receiving parties based on the intersection data, and send the multiple result indexes to the control end; the control end is configured to send the multiple result indexes to the corresponding receiving parties; the multiple receiving parties are configured to determine the intersection data between the first privacy set and the multiple second privacy sets from the second privacy set based on the result indexes.
[0017] In a fifth aspect, an embodiment of the present disclosure provides a multi-party privacy set intersection device, which includes: a selection module, configured to select an initiator and multiple receivers from multiple clients; a sending module, configured to send a polynomial solution request to the initiator, so that the initiator determines a public key and multiple encryption coefficients based on a first privacy set and a polynomial; in response to receiving the public key and multiple encryption coefficients sent by the initiator, sending the public key and multiple encryption coefficients to multiple receivers, so that each receiver obtains a data calculation result based on the second privacy set, the public key and the multiple encryption coefficients; in response to receiving the data calculation results sent by multiple receivers, sending multiple data calculation results to the initiator, so that the initiator decrypts the multiple data calculation results and generates intersection data between the first privacy set and multiple second privacy sets.
[0018] In some embodiments, the selection module is further configured to send alignment requests to multiple clients so that each client determines the data length of the privacy set; in response to receiving the data lengths sent by multiple clients, determine the target data length that meets preset conditions; determine the client corresponding to the target data length as the initiator, and determine the other multiple clients as multiple receivers.
[0019] In some embodiments, the device also includes: a receiving module, configured to receive multiple result indexes sent by the initiator, wherein the result index is determined based on the position information of each element data in the intersection data in the data calculation result; a sending module, configured to send the multiple result indexes to the corresponding receiving party, so that the receiving party determines the intersection data from the second privacy set according to the result index.
[0020] In a sixth aspect, an embodiment of the present disclosure provides a multi-party privacy set intersection device, the device comprising: a construction module, configured to construct a polynomial corresponding to a first privacy set in response to a polynomial solution request received from a control end; an acquisition module, configured to obtain a public key, a private key and multiple encryption coefficients corresponding to the polynomial; a sending module, configured to send a public key and multiple encryption coefficients to the control end, so that the control end sends the public key and the multiple encryption coefficients to multiple recipients; a receiving module, configured to receive multiple data calculation results sent by the control end, wherein the data calculation results are determined based on the second privacy set, the public key and the multiple encryption coefficients of the recipient; a generation module, configured to use the private key to decrypt and align each data calculation result respectively, and generate intersection data between the first privacy set and multiple second privacy sets.
[0021] In some embodiments, the acquisition module is further configured to: use each element data in the first privacy set as a solution to a polynomial to calculate multiple polynomial coefficients; encrypt the multiple polynomial coefficients using a homomorphic encryption algorithm to obtain a public key, a private key and multiple encrypted coefficients.
[0022] In some embodiments, the device also includes: a determination module, configured to determine the location information corresponding to the intersection data in multiple data calculation results based on the intersection data between the first privacy set and multiple second privacy sets; based on the location information, determine multiple result indexes corresponding to multiple recipients; and a sending module, configured to send multiple result indexes to the control end, so that the control end sends the multiple result indexes to multiple recipients.
[0023] In some embodiments, the acquisition module is further configured to: in response to receiving an alignment request sent by the control end, acquire the data length corresponding to the first privacy set; the sending module is further configured to: send the data length to the control end.
[0024] In some embodiments, the acquisition module includes: a generation unit, configured to generate a first random number in response to receiving an alignment request sent by the control end; the acquisition unit is further configured to: obtain the initial data length of the first privacy set; based on the first random number and the initial data length, obtain the data length corresponding to the first privacy set.
[0025] In the seventh aspect, an embodiment of the present disclosure provides a multi-party privacy set intersection device, which includes: a calculation module, configured to respond to receiving a public key and multiple encryption coefficients sent by a control end, and perform data matching calculation under ciphertext based on the public key, multiple encryption coefficients and a second privacy set to obtain a data calculation result corresponding to the second privacy set; a sending module, configured to send the data calculation result to the control end, so that the control end sends the data calculation result to the initiator; a receiving module, configured to receive a result index corresponding to the data calculation result sent by the control end, wherein the result index is determined based on the position information of each element data in the intersection data in the data calculation result, and the intersection data is the intersection data between the first privacy set of the initiator and multiple second privacy sets; a determination module, configured to determine the intersection data between the first privacy set and multiple second privacy sets from the second privacy set based on the result index.
[0026] In some embodiments, the device further includes: an acquisition module configured to acquire the data length corresponding to the second privacy set in response to receiving an alignment request sent by the control end; and a sending module configured to send the data length to the control end.
[0027] In some embodiments, the acquisition module includes: a generation unit, configured to generate a second random number in response to receiving an alignment request sent by the control end; the acquisition unit is further configured to: obtain the initial data length of the second privacy set; based on the second random number and the initial data length, obtain the data length corresponding to the second privacy set.
[0028] In the eighth aspect, an embodiment of the present disclosure provides an electronic device, comprising: one or more processors; a storage device on which one or more programs are stored; when the one or more programs are executed by one or more processors, the one or more processors implement the multi-party privacy set intersection method described in any embodiment of the first aspect, the second aspect and the third aspect.
[0029] In a fourth aspect, an embodiment of the present disclosure provides a computer-readable medium having a computer program stored thereon, which, when executed by a processor, implements the multi-party privacy set intersection method as described in any embodiment of the first aspect, the second aspect, and the third aspect.
[0030] The embodiments of the present disclosure provide a method, system and device for finding the intersection of multiple privacy sets. The execution subject first selects an initiator and multiple receivers from multiple clients, sends a polynomial solution request to the initiator, so that the initiator determines a public key and multiple encryption coefficients according to a first privacy set and a polynomial, and then sends a public key and multiple encryption coefficients to multiple receivers in response to receiving the public key and multiple encryption coefficients sent by the initiator, so that each receiver obtains a data calculation result according to a second privacy set, a public key and multiple encryption coefficients. Finally, in response to receiving the data calculation results sent by multiple receivers, multiple data calculation results are sent to the initiator, so that the initiator decrypts the multiple data calculation results and generates intersection data between the first privacy set and multiple second privacy sets. By selecting an initiator and multiple receivers from multiple clients, and the initiator performing subsequent polynomial solution, each receiver cooperates to realize the intersection of any multiple privacy sets, obtain the intersection data in the multiple privacy sets, improve the diversity and convenience of the intersection of privacy sets, and provide more convenient industrial applications. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Other features, objects and advantages of the present disclosure will become more apparent from the detailed description of non-limiting embodiments made with reference to the following drawings:
[0032] Figure 1 is an exemplary system architecture diagram in which an embodiment of the present disclosure may be applied;
[0033] Figure 2 is a flowchart of an embodiment of a multi-party privacy set intersection method according to the present disclosure;
[0034] Figure 3 is a flow chart of one embodiment of selecting an initiator and multiple recipients according to the present disclosure;
[0035] Figure 4 is a flow chart of another embodiment of the multi-party privacy set intersection method according to the present disclosure;
[0036] Figure 5 is a flowchart of another embodiment of the multi-party privacy set intersection method according to the present disclosure;
[0037] Figure 6 is a flow chart of another embodiment of the multi-party privacy set intersection method according to the present disclosure;
[0038] Figure 7 is a flowchart of an embodiment of a multi-party privacy set intersection method according to the present disclosure;
[0039] Figure 8 is a structural diagram of an embodiment of a multi-party privacy set intersection device according to the present disclosure;
[0040] Fig. 9 is a structural diagram of another embodiment of the multi-party privacy set intersection device according to the present disclosure;
[0041] Fig.10 is a structural diagram of another embodiment of the multi-party privacy set intersection device according to the present disclosure;
[0042] Fig.11 It is a schematic diagram of the structure of an electronic device suitable for implementing the embodiments of the present disclosure. DETAILED DESCRIPTION
[0043] The present disclosure is further described in detail below in conjunction with the accompanying drawings and embodiments. It is to be understood that the specific embodiments described herein are only used to explain the relevant disclosure, rather than to limit the disclosure. It is also necessary to explain that, for ease of description, only the parts related to the relevant disclosure are shown in the accompanying drawings.
[0044] It should be noted that, in the absence of conflict, the embodiments and features in the embodiments of the present disclosure may be combined with each other. The present disclosure will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.
[0045] Figure 1 An exemplary system architecture 100 is shown to which the multi-party privacy set intersection method and multi-party privacy set intersection apparatus according to the embodiments of the present disclosure can be applied.
[0046] like Figure 1 As shown, the system architecture 100 may include terminal devices 104, 105, 106, a network 107, and servers 101, 102, 103. The network 107 is used to provide a medium for communication links between the terminal devices 104, 105, 106 and the servers 101, 102, 103. The network 107 may include various connection types, such as wired, wireless communication links or optical fiber cables, etc.
[0047] Users can interact with servers 101, 102, 103 belonging to the same server cluster through terminal devices 104, 105, 106 via network 107 to receive or send information, etc. Various applications can be installed on terminal devices 104, 105, 106, such as item display applications, data analysis applications, search applications, etc.
[0048] The terminal devices 104, 105, and 106 may be hardware or software. When the terminal device is hardware, it may be various electronic devices having a display screen and supporting communication with the server, including but not limited to smart phones, tablet computers, laptop computers, and desktop computers, etc. When the terminal device is software, it may be installed in the electronic devices listed above. It may be implemented as multiple software or software modules, or as a single software or software module. No specific limitation is made here.
[0049] Terminal devices 104, 105, and 106 can receive a polynomial solution request sent by the control end, construct a polynomial corresponding to the first privacy set, and obtain the public key, private key, and multiple encryption coefficients corresponding to the polynomial, and send the public key and multiple encryption coefficients to the control end, so that the control end sends the public key and multiple encryption coefficients to multiple recipients, and finally receive multiple data calculation results sent by the control end, which are determined based on the recipient's second privacy set, public key, and multiple encryption coefficients, and then use the private key to decrypt and align each data calculation result respectively, and generate intersection data between the first privacy set and multiple second privacy sets.
[0050] Alternatively, the terminal devices 104, 105, and 106 can receive the public key and multiple encryption coefficients sent by the control end, and perform data matching calculations under the ciphertext based on the public key, multiple encryption coefficients, and the second privacy set to obtain the data calculation results corresponding to the second privacy set, and then send the data calculation results to the control end so that the control end sends the data calculation results to the initiator, and receives the result index corresponding to the data calculation results sent by the control end, which is determined based on the position information of each element data in the intersection data in the data calculation result, and the intersection data is the intersection data between the initiator's first privacy set and multiple second privacy sets. Finally, based on the result index, the intersection data between the first privacy set and multiple second privacy sets is determined from the second privacy set.
[0051] Servers 101, 102, and 103 may be servers that provide various services, such as a backend server that receives a request sent by a terminal device that establishes a communication connection with the backend server. The backend server may receive and analyze the request sent by the terminal device and generate a processing result.
[0052] Servers 101, 102, and 103 can select an initiator and multiple receivers from multiple clients, send a polynomial solving request to the initiator, so that the initiator determines the public key and multiple encryption coefficients according to the first privacy set and the polynomial, and then in response to receiving the public key and multiple encryption coefficients sent by the initiator, send the public key and multiple encryption coefficients to multiple receivers, so that each receiver obtains a data calculation result according to the second privacy set, the public key, and the multiple encryption coefficients. Finally, in response to receiving the data calculation results sent by multiple receivers, send multiple data calculation results to the initiator, so that the initiator decrypts the multiple data calculation results and generates intersection data between the first privacy set and the multiple second privacy sets.
[0053] It should be noted that the server can be hardware or software. When the server is hardware, it can be various electronic devices that provide various services to the terminal device. When the server is software, it can be implemented as multiple software or software modules that provide various services to the terminal device, or it can be implemented as a single software or software module that provides various services to the terminal device. No specific limitation is made here.
[0054] It should be noted that the multi-party privacy set intersection method provided in the embodiment of the present disclosure can be executed by the server 101, 102, 103 or the terminal device 104, 105, 106. Accordingly, the multi-party privacy set intersection device is set in the server 101, 102, 103 or the terminal device 104, 105, 106.
[0055] It should be understood that Figure 1 The number of terminal devices, networks and servers in the embodiment is only for illustration. Any number of terminal devices, networks and servers may be provided according to implementation requirements.
[0056] Continue to refer Figure 2 , shows a process 200 of an embodiment of a multi-party privacy set intersection method according to the present disclosure. The multi-party privacy set intersection method includes the following steps:
[0057] Step 210: Select an initiator and multiple receivers from multiple clients.
[0058] In this step, the execution subject (e.g. Figure 1The servers 101, 102, 103 or the terminal devices 104, 105, 106) can communicate with multiple clients through a network connection, and can obtain client identification information corresponding to the multiple clients through the network, and each client identification information can be used to identify a different client. Then the above-mentioned execution subject can randomly select a client as the initiator according to the multiple client identification information, so as to use the client identification information as the initiator identification information, and use the other multiple clients as the multiple receivers, and use the other client identification information as the receiver identification information.
[0059] Alternatively, the above-mentioned execution entity may also sort the multiple client identification information according to the order in which the multiple client identification information is obtained, and use the client identification information ranked first as the initiator identification information, and select the client corresponding to the initiator identification information as the initiator; select the other multiple clients as multiple receivers, and use the other client identification information as the receiver identification information.
[0060] Step 220: Send a polynomial solution request to the initiator, so that the initiator determines the public key and multiple encryption coefficients according to the first privacy set and the polynomial.
[0061] In this step, after the execution subject selects an initiator and multiple receivers, it can send a polynomial solving request to the initiator. The polynomial solving request can represent that the active party solves the polynomial corresponding to the first privacy set in the active party with each element data in the first privacy set as a root.
[0062] After the execution subject sends the polynomial solution request to the initiator, the initiator can solve the multiple coefficients corresponding to the polynomial according to the first privacy set and the polynomial corresponding to the first privacy set, and determine the public key and multiple encryption coefficients corresponding to the polynomial according to the solved multiple coefficients, and the public key is obtained by encrypting the coefficients. After the initiator determines the public key and multiple encryption coefficients corresponding to the polynomial, it sends the public key and multiple encryption coefficients to the execution subject.
[0063] Step 230, in response to receiving the public key and multiple encryption coefficients sent by the initiator, send the public key and multiple encryption coefficients to multiple recipients, so that each recipient obtains the data calculation result according to the second privacy set, the public key and the multiple encryption coefficients.
[0064] In this step, the above-mentioned execution entity can receive the public key and multiple encryption coefficients sent by the initiator, and send the public key and multiple encryption coefficients sent by the initiator to multiple recipients, that is, send the public key and multiple encryption coefficients to each recipient respectively, so that after each recipient receives the public key and multiple encryption coefficients, it can obtain the data calculation result according to the second privacy set, public key and multiple encryption coefficients in the recipient. The data calculation result can correspond to each element data in the second privacy set, can characterize the encryption calculation result of each element data, and be displayed in the form of ciphertext.
[0065] Step 240: in response to receiving data calculation results sent by multiple receivers, send the multiple data calculation results to the initiator, so that the initiator decrypts the multiple data calculation results to generate intersection data between the first privacy set and the multiple second privacy sets.
[0066] In this step, each receiver can obtain the data calculation result according to the second privacy set, the public key and the multiple encryption coefficients, and send the data calculation result to the above-mentioned execution subject. The above-mentioned execution subject can receive the data calculation results sent by multiple receivers, and summarize the data calculation results sent by each receiver, and can sort the data calculation results of each receiver according to the receiver identification information corresponding to each receiver to obtain the sorting result of the data calculation result. The above-mentioned execution subject can send the sorting result of the data calculation result and the corresponding receiver identification information to the initiator.
[0067] Therefore, the initiator can decrypt each data calculation result separately, obtain the plaintext result corresponding to each data calculation result, and then determine multiple initial intersection data based on multiple plaintext results, and align the multiple initial intersection data to generate the intersection data between the first privacy set and multiple second privacy sets.
[0068] The embodiment of the present disclosure provides a method for finding the intersection of multiple privacy sets. The execution subject first selects an initiator and multiple receivers from multiple clients, sends a polynomial solution request to the initiator, so that the initiator determines a public key and multiple encryption coefficients according to a first privacy set and a polynomial, and then sends a public key and multiple encryption coefficients to multiple receivers in response to receiving the public key and multiple encryption coefficients sent by the initiator, so that each receiver obtains a data calculation result according to a second privacy set, a public key and multiple encryption coefficients. Finally, in response to receiving the data calculation results sent by multiple receivers, multiple data calculation results are sent to the initiator, so that the initiator decrypts the multiple data calculation results and generates intersection data between the first privacy set and multiple second privacy sets. By selecting an initiator and multiple receivers from multiple clients, and the initiator performing subsequent polynomial solution, each receiver cooperates to implement arbitrary multi-party privacy set intersection, obtain the intersection data in the multi-party privacy sets, improve the diversity and convenience of privacy set intersection, and provide more convenient industrial applications.
[0069] refer to Figure 3 , Figure 3 A flowchart of an embodiment of selecting an initiator and multiple receivers is shown, that is, the above step 210, selecting an initiator and multiple receivers from multiple clients, may include the following steps:
[0070] Step 310: Send an alignment request to multiple clients so that each client determines the data length of the privacy set.
[0071] In this step, the execution subject may receive intersection trigger requests sent by multiple clients, and the intersection trigger request may be a request generated by the client according to the intersection operation input by the user, which is used to indicate that the private sets need to be intersected between the multiple clients. Then the execution subject may determine the multiple clients corresponding to the intersection trigger request, and send an alignment request to the multiple clients, and the alignment request is used to obtain the data length of the private set in each client.
[0072] Therefore, after multiple clients receive the alignment request sent by the execution entity, each client can determine the privacy set that needs to be intersected locally, and obtain the data length corresponding to the privacy set that needs to be intersected locally. The data length can represent the data size of the privacy set. For example, if the privacy set includes 10,000 element data, the data length of the privacy set is 10,000. Multiple clients can send the obtained data length to the execution entity.
[0073] Step 320: In response to receiving data lengths sent by multiple clients, determine a target data length that meets a preset condition.
[0074] In this step, after receiving the data length sent by each client, the execution subject may sort the multiple data lengths in ascending order or descending order to obtain sorting results corresponding to the multiple data lengths. The execution subject may determine the target data length that meets the preset condition based on the sorting result, and the preset condition may include selecting the data with the smallest length.
[0075] As an example, if the above-mentioned multiple clients include client A, client B, client C, client D and client E, the above-mentioned execution entity receives data length a sent by client A, data length b sent by client B, data length c sent by client C, data length d sent by client D and data length e sent by client E, and sorts data length a, data length b, data length c, data length d and data length e in ascending order, and determines that the sorting results are data length e, data length a, data length c, data length d and data length b, then determines that the minimum data length is data length e, and determines data length e as the target data length.
[0076] Step 330: determine the client corresponding to the target data length as the initiator, and determine the other multiple clients as multiple receivers.
[0077] In this step, after the execution subject determines the target data length, it can determine the corresponding client identification information according to the target data length, and determine the client identification information as the initiator identification information, and determine the client corresponding to the client identification information as the initiator. In addition, the execution subject determines other multiple clients as multiple recipients, and uses the other client identification information as the recipient identification information.
[0078] In this implementation, by judging the data length of each client, the client corresponding to the data length that meets the preset conditions is selected as the initiator. The client with the smallest data length is selected as the initiator, which represents the smallest amount of data in the privacy set of the initiator, facilitates calculation, reduces calculation complexity, speeds up calculation speed, and improves calculation efficiency.
[0079] As an optional implementation method, the above-mentioned multi-party privacy set intersection method may also include the following steps: receiving multiple result indexes sent by the initiator, wherein the result index is determined based on the position information of each element data in the intersection data in the data calculation result; sending the multiple result indexes to the corresponding receiving party, so that the receiving party determines the intersection data from the second privacy set according to the result index.
[0080] Specifically, after the execution subject sends the data calculation results returned by multiple receivers to the initiator, it can receive multiple result indexes sent by the initiator, the result index includes the receiver identification information corresponding to the receiver and the position index of the intersection data in the second privacy set of the receiver, the result index is the position index determined by the initiator according to the position information of each element data in the intersection data in each data calculation result, and each data calculation result includes the corresponding receiver identification information. The execution subject sends different result indexes to the corresponding receiver according to the receiver identification information corresponding to each result index. For example, the receiver identification information corresponding to result index 1 is A, the receiver identification information corresponding to result index 2 is B, and the receiver identification information corresponding to result index 3 is C. Then the execution subject sends result index 1 to the receiver corresponding to A, sends result index 2 to the receiver corresponding to B, and sends result index 3 to the receiver corresponding to C.
[0081] Therefore, after each receiver receives the corresponding result index, it can determine each corresponding element data from the second privacy set according to the received result index, and combine each element data into intersection data, which is the intersection data between the initiator's first privacy set and the second privacy sets of multiple receivers.
[0082] In this implementation, the result index returned by the initiator is sent to the corresponding receiver so that the receiver can determine the intersection data, thereby ensuring data security and enabling each receiver to determine the intersection data according to the corresponding result index.
[0083] refer to Figure 4 , shows a process 400 of another embodiment of the multi-party privacy set intersection method according to the present disclosure. The multi-party privacy set intersection method includes the following steps:
[0084] Step 410: In response to receiving a polynomial solution request sent by the control terminal, construct a polynomial corresponding to the first privacy set.
[0085] In this step, the execution subject may receive a polynomial solution request sent by the control end, and construct a polynomial corresponding to the first privacy set according to the polynomial solution request, wherein the polynomial may be constructed according to technical means in the relevant technology, and the polynomial may be:
[0086]
[0087] Among them, α u are the coefficients of the polynomial, u=0,1,2,3,…c, and x can be any solution of the polynomial.
[0088] Step 420, obtaining a public key, a private key, and multiple encryption coefficients corresponding to the polynomial.
[0089] In this step, after the execution subject constructs the polynomial corresponding to the first privacy set, the polynomial can be solved, that is, the polynomial f(y)=0 is solved to determine the multiple coefficients corresponding to the polynomial, each coefficient corresponds to each element data in the first privacy set, and the number of coefficients is the same as the number of element data in the first privacy set. Then the execution subject uses the encryption algorithm to encrypt the multiple coefficients obtained, so as to obtain the encryption coefficient corresponding to each coefficient, and obtain the public key and private key corresponding to the encryption algorithm, wherein the public key can be transmitted and shared among multiple recipients, and is used to perform encryption calculations on the polynomial and the privacy set to obtain the data calculation results in the encrypted state; the private key is saved by the initiator, and is used to decrypt the data calculation results in the encrypted state of the recipient.
[0090] As an optional implementation, the above step 420, obtaining the public key, private key and multiple encryption coefficients corresponding to the polynomial, may include the following steps:
[0091] In the first step, each element data in the first privacy set is used as a solution to a polynomial to calculate multiple polynomial coefficients.
[0092] Specifically, the execution subject may receive a polynomial solution request sent by the control end, and construct a polynomial corresponding to the first privacy set according to the polynomial solution request, wherein the polynomial may be constructed according to technical means in the relevant technology, and the polynomial may be:
[0093]
[0094] Among them, α u are the coefficients of the polynomial, u=0,1,2,3,…c, and x can be any solution of the polynomial.
[0095] The above-mentioned execution entity can use each element data in the first privacy set as a solution to the above-mentioned polynomial, use the Lagrange interpolation method to solve the above-mentioned polynomial f(y)=0, and determine the polynomial coefficient corresponding to each element data as a solution. Different element data corresponds to different polynomial coefficients, and the above-mentioned execution entity obtains multiple polynomial coefficients.
[0096] The second step is to use the homomorphic encryption algorithm to encrypt multiple polynomial coefficients to obtain the public key, private key and multiple encryption coefficients.
[0097] Specifically, after the execution subject obtains multiple polynomial coefficients, the Paillier homomorphic encryption algorithm can be used to encrypt each polynomial coefficient to obtain a public key, a private key, and multiple encrypted coefficients. Then the execution subject can use the Paillier homomorphic encryption algorithm to first generate a public key and a private key, and then encrypt each polynomial coefficient respectively to obtain multiple encrypted coefficients.
[0098] Among them, the Paillier homomorphic encryption algorithm is a probabilistic public key algorithm, which includes three parts: key generation, encryption and decryption.
[0099] (1) Key generation: First, randomly select two prime numbers p and q, satisfying gcd(pq, (p-1)(q-1))=1, and calculate n=pq and λ=lcm(p-1, q-1), where lcm represents the least common multiple; then randomly select an integer g and calculate
[0100] μ=(L(g λ (mod n 2 ))) -1 (mod n), where Then the public key is determined to be (n, g) and the private key is determined to be (λ, μ).
[0101] (2) Encryption: Encrypt the plaintext m and randomly select a string Calculate the ciphertext c = g m γ n (modn 2 ).
[0102] (3) Decryption: If the ciphertext is c, then calculate m = L(c λ (mod n 2 ))μmod n.
[0103] In this implementation, the polynomial coefficients are obtained by using the Lagrange interpolation method, and each coefficient is encrypted using the Paillier homomorphic encryption algorithm, which can meet the additive homomorphism and improve the correlation and accuracy of the encrypted coefficients.
[0104] Step 430, sending the public key and multiple encryption coefficients to the control end, so that the control end sends the public key and multiple encryption coefficients to multiple recipients.
[0105] In this step, after the execution subject obtains the public key, the private key and the multiple encryption coefficients, it stores the private key locally and sends the public key and the multiple encryption coefficients to the control end. Thus, the control end can send the public key and the multiple encryption coefficients to multiple recipients, and each recipient receives the same public key and multiple encryption coefficients.
[0106] Step 440, receiving multiple data calculation results sent by the control end.
[0107] In this step, after the above-mentioned execution entity sends the public key and multiple encryption coefficients to the control end, it can receive multiple data calculation results sent by the control end, where different data calculation results correspond to different recipients, which may include recipient identification information, and each data calculation result is determined by the recipient based on the recipient's second privacy set, public key and multiple encryption coefficients, that is, after the recipient receives the public key and multiple encryption coefficients, it performs data matching calculation under ciphertext on each element data in the second privacy set, determines the ciphertext result corresponding to each element data, and combines each ciphertext result into a data calculation result.
[0108] Step 450: Decrypt and align each data calculation result using the private key to generate intersection data between the first privacy set and multiple second privacy sets.
[0109] In this step, after receiving the data calculation results from each recipient, the above-mentioned execution entity uses the private key to decrypt the multiple ciphertext results in each data calculation result respectively, and obtains the decryption result corresponding to each ciphertext result. The decryption result may include a decrypted character string and element data. The character string can represent the element data in the corresponding second privacy set that is different from the first privacy set, and can be a garbled character or a numeric character or other expression form different from the element data in the privacy set; the element data obtained after decryption represents the element data in the corresponding second privacy set that is the same as the first privacy set.
[0110] The above-mentioned execution entity obtains multiple decryption results corresponding to each data calculation result through decryption, and determines the initial intersection data between each second privacy set and the first privacy set according to each decryption result, and then aligns the multiple initial intersection data again, and obtains the intersection data between the multiple initial intersection data, thereby generating the intersection data between the first privacy set and the multiple second privacy sets. The intersection data includes the element data commonly included in the privacy sets of the initiator and multiple recipients, and is stored locally.
[0111] As an example, if the first privacy set of the initiator includes element data a, element data b and element data c, and the second privacy set of the receiver A includes element data a, element data b, element data e and element data f, then the data calculation result of the receiver A includes the ciphertext result 1 of element data a, the ciphertext result 2 of element data b, the ciphertext result 3 of element data e and the ciphertext result 4 of element data f; the second privacy set of the receiver B includes element data a, element data b, element data f and element data g, then the data calculation result of the receiver B includes the ciphertext result 5 of element data a, the ciphertext result 6 of element data b, the ciphertext result 7 of element data f and the ciphertext result 8 of element data g; the second privacy set of the receiver C includes element data a, element data b, element data c and element data k, then the data calculation result of the receiver C includes the ciphertext result 9 of element data a, the ciphertext result 10 of element data b, the ciphertext result 11 of element data c and the ciphertext result 12 of element data k. The above-mentioned execution subject can use the private key to decrypt the data calculation result of the receiver A, and obtain the decryption result of the ciphertext result 1 as a, the decryption result of the ciphertext result 2 as b, the decryption result of the ciphertext result 3 as 8888, and the decryption result of the ciphertext result 4 as 9999, so that the above-mentioned execution subject determines that the first initial intersection data between the first privacy set and the second privacy set of the receiver A is (a, b); the above-mentioned execution subject can use the private key to decrypt the data calculation result of the receiver B, and obtain the decryption result of the ciphertext result 5 as a, the decryption result of the ciphertext result 6 as b, and the decryption result of the ciphertext result 7 as 5555, the decryption result of ciphertext result 8 is 6666, so the execution subject determines that the second initial intersection data between the first privacy set and the second privacy set of the receiver B is (a, b); the execution subject can use the private key to decrypt the data calculation result of the receiver C, and obtain the decryption result of ciphertext result 9 as a, the decryption result of ciphertext result 10 as b, the decryption result of ciphertext result 11 as c, and the decryption result of ciphertext result 12 as 4444, so the execution subject determines that the third initial intersection data between the first privacy set and the second privacy set of the receiver C is (a, b, c). Finally, the execution subject can perform data alignment according to the first initial intersection data (a, b), the second initial intersection data (a, b) and the third initial intersection data (a, b, c), obtain the intersection data between the first initial intersection data (a, b), the second initial intersection data (a, b) and the third initial intersection data (a, b, c), and determine that the intersection data is (a, b).
[0112] The embodiment of the present disclosure provides a multi-party privacy set intersection method. The above-mentioned execution subject first responds to the polynomial solution request sent by the control end, constructs a polynomial corresponding to the first privacy set, and obtains the public key, private key and multiple encryption coefficients corresponding to the polynomial, and then sends the public key and multiple encryption coefficients to the control end, so that the control end sends the public key and multiple encryption coefficients to multiple recipients, and receives multiple data calculation results sent by the control end, the data calculation results are determined based on the second privacy set, public key and multiple encryption coefficients of the recipient, and finally uses the private key to decrypt and align each data calculation result respectively, to generate the intersection data between the first privacy set and multiple second privacy sets, and the initiator executes the subsequent polynomial solution, and each recipient cooperates to realize the intersection of any multi-party privacy sets, and obtains the intersection data in the multi-party privacy sets, thereby improving the diversity and convenience of privacy set intersection and providing more convenient industrial applications.
[0113] refer to Figure 5 , Figure 5 A flowchart of another embodiment of a multi-party privacy set intersection method is shown, which may include the following steps:
[0114] Step 510: In response to receiving a polynomial solution request sent by the control terminal, construct a polynomial corresponding to the first privacy set.
[0115] Step 510 of this embodiment can be performed according to Figure 4 Step 410 in the illustrated embodiment is performed in a similar manner and will not be described in detail here.
[0116] Step 520, obtaining a public key, a private key, and multiple encryption coefficients corresponding to the polynomial.
[0117] Step 520 of this embodiment can be performed according to Figure 4 Step 420 in the illustrated embodiment is performed in a similar manner and will not be described in detail here.
[0118] Step 530: Send the public key and multiple encryption coefficients to the control end, so that the control end sends the public key and multiple encryption coefficients to multiple recipients.
[0119] Step 530 of this embodiment can be performed according to Figure 4 Step 430 in the illustrated embodiment is performed in a similar manner and will not be described in detail here.
[0120] Step 540: Decrypt and align each data calculation result using the private key to generate intersection data between the first privacy set and multiple second privacy sets.
[0121] Step 540 of this embodiment can be performed according to Figure 4Step 440 in the illustrated embodiment is performed in a similar manner and will not be described in detail here.
[0122] Step 550: Based on the intersection data between the first privacy set and the plurality of second privacy sets, determine the position information corresponding to the intersection data in the plurality of data calculation results.
[0123] In this step, after the above-mentioned execution entity determines the intersection data between the first privacy set and multiple second privacy sets, since each data calculation result includes multiple ciphertext results and recipient identification information arranged according to the position information of the element data in the second privacy set, the above-mentioned execution entity can determine the position information of each common element data in the data calculation result according to the common element data in the intersection data. The position information can be the arrangement order of the ciphertext results corresponding to the common element data in the data calculation result.
[0124] As an example, the second privacy set in receiver A includes element data a, element data b, element data e and element data f, then the data calculation result of receiver A includes ciphertext result 1 of element data a, ciphertext result 2 of element data b, ciphertext result 3 of element data e and ciphertext result 4 of element data f; the second privacy set in receiver B includes element data a, element data b, element data f and element data g, then the data calculation result of receiver B includes ciphertext result 5 of element data a, ciphertext result 6 of element data b, ciphertext result 7 of element data f and ciphertext result 8 of element data g; the second privacy set in receiver C includes element data a, element data b, element data c and element data k, then the data calculation result of receiver C includes ciphertext result 9 of element data a, ciphertext result 10 of element data b, ciphertext result 11 of element data c and ciphertext result 12 of element data k, and the determined intersection data is (a, b). The above-mentioned execution entity can first determine the position information of the intersection data in the data calculation result of receiver A as position 1 and position 2 based on the intersection data and the data calculation result of receiver A, and then determine the position information of the intersection data in the data calculation result of receiver B as position 1 and position 2 based on the intersection data and the data calculation result of receiver B, and determine the position information of the intersection data in the data calculation result of receiver C as position 1 and position 2 based on the intersection data and the data calculation result of receiver C.
[0125] Step 560: Determine multiple result indexes corresponding to multiple recipients based on the location information.
[0126] In this step, after the above-mentioned execution entity obtains the position information of the intersection data in each data calculation result, it can generate a result index corresponding to each receiver based on the position information. For example, the position information can be directly used as the result index corresponding to each receiver. Each result index can include receiver identification information and position information, thereby obtaining multiple result indexes corresponding to multiple receivers.
[0127] As an example, the above-mentioned execution entity determines that the position information of the intersection data in the data calculation result of the receiver A is position 1 and position 2, and the position 1 and position 2 can be associated with the identification information of the receiver A as the result index corresponding to the receiver A; then determines that the position information of the intersection data in the data calculation result of the receiver B is position 2 and position 3, and the position 2 and position 3 can be associated with the identification information of the receiver B as the result index corresponding to the receiver B; and determines that the position information of the intersection data in the data calculation result of the receiver C is position 1 and position 2, and the position 1 and position 2 can be associated with the identification information of the receiver C as the result index corresponding to the receiver C.
[0128] Step 570: Send multiple result indexes to the control end, so that the control end sends the multiple result indexes to multiple recipients.
[0129] In this step, after the execution subject obtains the result index corresponding to each receiver, it can send multiple result indexes to the control end. Thus, the control end can send different result indexes to the corresponding receiver according to the identification information associated with the result index, so that multiple receivers can receive the corresponding result index.
[0130] In this embodiment, by generating a result index corresponding to the receiver and sending it to the corresponding receiver so that the receiver can determine the intersection data, data security is guaranteed, and each receiver can determine the intersection data according to the corresponding result index.
[0131] As an optional implementation, the above multi-party privacy set intersection method may further include the following steps:
[0132] The first step is to obtain the data length corresponding to the first privacy set in response to receiving the alignment request sent by the control end.
[0133] Specifically, the execution subject may receive a request operation input by a user, generate an intersection trigger request according to the intersection operation, and send the intersection trigger request to the control end. The control end may receive the intersection trigger request and send an alignment request to the execution subject.
[0134] After receiving the alignment request sent by the control end, the above-mentioned execution entity can determine the first privacy set that needs to be intersected locally, and obtain the data length corresponding to the first privacy set that needs to be intersected locally. The data length can represent the data size of the first privacy set. For example, if the first privacy set includes 10,000 element data, then the data length of the first privacy set is 10,000.
[0135] Optionally, the first step may include the following steps: generating a first random number in response to receiving an alignment request sent by the control end; obtaining an initial data length of the first privacy set; and obtaining a data length corresponding to the first privacy set based on the first random number and the initial data length.
[0136] Specifically, after receiving the alignment request sent by the control end, the execution subject can generate a random integer, namely, a first random number. Then, the execution subject can determine the first privacy set that needs to be intersected locally, and determine the initial data length of the first privacy set according to the number of element data in the first privacy set. Finally, the execution subject can obtain the data length corresponding to the first privacy set according to the first random number and the initial data length. For example, the first random number and the initial data length can be added to generate the data length corresponding to the first privacy set.
[0137] In this implementation, the data length corresponding to the first privacy set is generated by using the first random number and the initial data length, which can obscure the actual data length of the first privacy set and improve data security.
[0138] The second step is to send the data length to the control end.
[0139] Specifically, after the execution subject obtains the data length corresponding to the first privacy set, the data length may be sent to the control end, so that the control end selects the initiator and the receiver according to the data length.
[0140] In this implementation, by sending the data length to the control end based on the alignment request so that the control end can select the initiator and the receiver, the amount of private data that needs to be intersected can be fed back to the control end so that subsequent calculations can reduce data calculation complexity and improve calculation efficiency.
[0141] refer to Figure 6 , Figure 6 A flowchart of another embodiment of a multi-party privacy set intersection method is shown, which may include the following steps:
[0142] Step 610, in response to receiving the public key and multiple encryption coefficients sent by the control end, perform data matching calculation under the ciphertext based on the public key, multiple encryption coefficients and the second privacy set to obtain the data calculation result corresponding to the second privacy set.
[0143] In this step, the above-mentioned execution entity receives the public key and multiple encryption coefficients sent by the control end, and can generate a random integer. According to the random integer, the public key, multiple encryption coefficients and each element data in the second privacy set, the data matching calculation under the ciphertext is performed to obtain the ciphertext result corresponding to each element data in the second privacy set.
[0144] That is, after the execution subject generates a random integer r, it can generate a data matching calculation formula: r*f(y i )+y i , where f(y i ) is the polynomial corresponding to the first privacy set in the encrypted state, y i represents each element data in the second privacy set. Then the execution subject can bring each encryption coefficient and each element data into the above data matching calculation formula for calculation to generate the ciphertext result corresponding to each element data. The above data matching calculation formula can represent that if the element data in the second privacy set is the same as the element data in the first privacy set, then r*f(y i ) is 0, so the calculation result of the data matching calculation formula is the element data itself; if the element data in the second privacy set is different from the element data in the first privacy set, then r*f(y i ) is not 0, so the calculation result of the data matching calculation formula can be other data results, not the element data itself.
[0145] Step 620, sending the data calculation result to the control end, so that the control end sends the data calculation result to the initiator.
[0146] In this step, after the execution subject obtains the ciphertext result corresponding to each element data, each ciphertext result can be sorted according to the sorting result of the element data, and the sorting results of multiple ciphertext results can be obtained as the data calculation result, and the data calculation result is associated with the recipient identification information. Then, the associated data calculation result is sent to the control end, so that the control end can send the data calculation result to the initiator.
[0147] Step 630: Receive a result index corresponding to the data calculation result sent by the control terminal.
[0148] In this step, the above-mentioned execution entity can receive the result index sent by the control end, and the result index includes the position information corresponding to the intersection data between the initiator's first privacy set and multiple second privacy sets. The position information is the position information of each element data in the intersection data in the data calculation result, so that the above-mentioned result index is an index generated by the initiator according to the position information of each element data in the intersection data in the data calculation result.
[0149] Step 640: Determine intersection data between the first privacy set and multiple second privacy sets from the second privacy set based on the result index.
[0150] In this step, the execution subject determines the element data in the intersection data in the second privacy set according to the result index, and generates the intersection data between the first privacy set and multiple second privacy sets with these element data, and stores them locally.
[0151] As an example, if the result indexes received by the execution subject are position 1 and position 2, the element data arranged in the first and second positions are determined in the second privacy set, and these two element data are used as the intersection data between the first privacy set and multiple second privacy sets.
[0152] The embodiment of the present disclosure provides a method for finding the intersection of multiple privacy sets. The execution subject first responds to receiving a public key and multiple encryption coefficients sent by a control end, performs data matching calculation under ciphertext based on the public key, multiple encryption coefficients and the second privacy set, obtains a data calculation result corresponding to the second privacy set, and then sends the data calculation result to the control end so that the control end sends the data calculation result to the initiator. Then, the result index corresponding to the data calculation result sent by the control end is received. The result index is determined based on the position information of each element data in the intersection data in the data calculation result. The intersection data is the intersection data between the first privacy set of the initiator and multiple second privacy sets. Finally, based on the result index, the intersection data between the first privacy set and multiple second privacy sets is determined from the second privacy set. The initiator performs subsequent polynomial solution and each receiving party cooperates to perform the solution. Thus, any intersection of multiple privacy sets is realized, and the intersection data in the multiple privacy sets is obtained. This improves the diversity and convenience of the intersection of privacy sets and can provide more convenient industrial applications.
[0153] As an optional implementation, the above multi-party privacy set intersection method may further include the following steps:
[0154] The first step is to obtain the data length corresponding to the second privacy set in response to receiving the alignment request sent by the control end.
[0155] Specifically, the execution subject may receive a request operation input by a user, generate an intersection trigger request according to the intersection operation, and send the intersection trigger request to the control end. The control end may receive the intersection trigger request and send an alignment request to the execution subject.
[0156] After receiving the alignment request sent by the control end, the above-mentioned execution entity can determine the second privacy set that needs to be intersected locally, and obtain the data length corresponding to the second privacy set that needs to be intersected locally. The data length can represent the data size of the second privacy set. For example, if the second privacy set includes 10,000 element data, then the data length of the second privacy set is 10,000.
[0157] Optionally, the first step may include the following steps: generating a second random number in response to receiving an alignment request sent by the control end; obtaining an initial data length of the second privacy set; and obtaining a data length corresponding to the second privacy set based on the second random number and the initial data length.
[0158] Specifically, after receiving the alignment request sent by the control end, the execution subject can generate a random integer, namely, a second random number. Then, the execution subject can determine the second privacy set that needs to be intersected locally, and determine the initial data length of the second privacy set according to the number of element data in the second privacy set. Finally, the execution subject can obtain the data length corresponding to the second privacy set according to the second random number and the initial data length. For example, the second random number and the initial data length can be added to generate the data length corresponding to the second privacy set.
[0159] In this implementation, the data length corresponding to the second privacy set is generated by using the second random number and the initial data length, which can obscure the real data length of the second privacy set and improve data security.
[0160] The second step is to send the data length to the control end.
[0161] Specifically, after the execution subject obtains the data length corresponding to the second privacy set, the data length may be sent to the control end, so that the control end selects the initiator and the receiver according to the data length.
[0162] In this implementation, by sending the data length to the control end based on the alignment request so that the control end can select the initiator and the receiver, the amount of private data that needs to be intersected can be fed back to the control end so that subsequent calculations can reduce data calculation complexity and improve calculation efficiency.
[0163] refer to Figure 7 , Figure 7 The structure of a multi-party privacy set intersection system is shown, wherein the multi-party privacy set intersection system may include: a control end and multiple clients, and the multiple clients may include an initiator and multiple receivers. And, Figure 7 A flowchart of an embodiment of a multi-party privacy set intersection method is shown, which may include the following steps:
[0164] The control side is configured to send alignment requests to multiple clients.
[0165] The plurality of clients are configured to obtain and send the data length of the privacy set to the control end in response to receiving the alignment request.
[0166] The control end is configured to select an initiator and multiple receivers from multiple clients in response to receiving multiple data lengths; and is configured to send a polynomial solution request to the initiator.
[0167] The initiator is configured to construct a polynomial corresponding to the first privacy set in response to receiving a polynomial solution request; and is configured to obtain a public key, a private key and multiple encryption coefficients corresponding to the polynomial, and send the public key and the multiple encryption coefficients to the control end.
[0168] The control end is configured to send the public key and the multiple encryption coefficients to multiple recipients in response to receiving the public key and the multiple encryption coefficients sent by the initiator.
[0169] Multiple receivers are configured to perform data matching calculations under the ciphertext in response to receiving the public key and multiple encryption coefficients, obtain data calculation results corresponding to the second privacy set, and send the data calculation results to the control end.
[0170] The control end is configured to send the multiple data calculation results to the initiator in response to receiving the multiple data calculation results from the multiple receivers.
[0171] The initiator is configured to, in response to receiving multiple data calculation results, decrypt and align each data calculation result respectively, and generate intersection data between a first privacy set and multiple second privacy sets; and is configured to determine multiple result indexes corresponding to multiple recipients based on the intersection data, and send the multiple result indexes to the control end.
[0172] The control end is configured to send multiple result indexes to corresponding receivers.
[0173] The plurality of receivers are configured to determine, from the second privacy set, intersection data between the first privacy set and the plurality of second privacy sets based on the result index.
[0174] The processing steps performed by the control end, the initiator and the multiple receivers are the same as those performed by the control end, the initiator and the multiple receivers. Figure 2-Figure 6 The processing steps in are the same as those in the above. The control end, the initiator and multiple receivers respectively execute the processing steps and interact with each other to realize the intersection of multiple privacy sets, so that the initiator and multiple receivers can obtain the intersection data between the multiple privacy sets.
[0175] Further references Figure 8As an implementation of the methods shown in the above figures, the present disclosure provides an embodiment of a multi-party privacy set intersection device. Figure 2 The method embodiments shown correspond.
[0176] like Figure 8 As shown, the multi-party privacy set intersection device 800 of this embodiment may include: a selection module 810 and a sending module 820.
[0177] The selection module 810 is configured to select an initiator and multiple receivers from multiple clients.
[0178] The sending module 820 is configured to send a polynomial solution request to the initiator so that the initiator determines the public key and multiple encryption coefficients based on the first privacy set and the polynomial; in response to receiving the public key and multiple encryption coefficients sent by the initiator, send the public key and multiple encryption coefficients to multiple recipients so that each recipient obtains a data calculation result based on the second privacy set, the public key and the multiple encryption coefficients; in response to receiving the data calculation results sent by multiple recipients, send multiple data calculation results to the initiator so that the initiator decrypts the multiple data calculation results and generates intersection data between the first privacy set and multiple second privacy sets.
[0179] In some optional implementations of the present embodiment, the selection module is further configured to send alignment requests to multiple clients so that each client determines the data length of the privacy set; determine the target data length that meets preset conditions in response to receiving the data lengths sent by multiple clients; determine the client corresponding to the target data length as the initiator, and determine the other multiple clients as multiple receivers.
[0180] In some optional implementations of the present embodiment, the device also includes: a receiving module, configured to receive multiple result indexes sent by the initiator, wherein the result index is determined based on the position information of each element data in the intersection data in the data calculation result; a sending module, configured to send the multiple result indexes to the corresponding receiving party, so that the receiving party determines the intersection data from the second privacy set according to the result index.
[0181] The above-mentioned embodiment of the present disclosure provides a multi-party privacy set intersection device. The above-mentioned execution subject first selects an initiator and multiple receivers from multiple clients, sends a polynomial solution request to the initiator, so that the initiator determines a public key and multiple encryption coefficients according to a first privacy set and a polynomial, and then responds to receiving the public key and multiple encryption coefficients sent by the initiator, sends the public key and multiple encryption coefficients to multiple receivers, so that each receiver obtains a data calculation result according to a second privacy set, a public key and multiple encryption coefficients. Finally, responds to receiving the data calculation results sent by multiple receivers, sends multiple data calculation results to the initiator, so that the initiator decrypts the multiple data calculation results and generates intersection data between the first privacy set and multiple second privacy sets. By selecting an initiator and multiple receivers from multiple clients, and the initiator performs subsequent polynomial solution, each receiver cooperates to implement arbitrary multi-party privacy set intersection, obtain the intersection data in the multi-party privacy set, improve the diversity and convenience of privacy set intersection, and provide more convenient industrial applications.
[0182] Those skilled in the art will appreciate that the above device also includes some other well-known structures, such as a processor, a memory, etc. In order to unnecessarily obscure the embodiments of the present disclosure, these well-known structures are described in detail. Figure 8 Not shown in FIG.
[0183] Further references Fig. 9 As an implementation of the methods shown in the above figures, the present disclosure provides another embodiment of a multi-party privacy set intersection device. Figure 4 The method embodiments shown correspond.
[0184] like Fig. 9 As shown, the multi-party privacy set intersection device 900 of this embodiment may include: a construction module 910 , an acquisition module 920 , a sending module 930 , a receiving module 940 and a generating module 950 .
[0185] The construction module 910 is configured to construct a polynomial corresponding to the first privacy set in response to receiving a polynomial solution request sent by the control terminal.
[0186] The acquisition module 920 is configured to acquire a public key, a private key and multiple encryption coefficients corresponding to the polynomial.
[0187] The sending module 930 is configured to send the public key and multiple encryption coefficients to the control end, so that the control end sends the public key and multiple encryption coefficients to multiple recipients.
[0188] The receiving module 940 is configured to receive multiple data calculation results sent by the control end, wherein the data calculation results are determined based on the second privacy set, the public key and multiple encryption coefficients of the receiving party.
[0189] The generation module 950 is configured to use the private key to decrypt and align each data calculation result respectively, and generate intersection data between the first privacy set and multiple second privacy sets.
[0190] In some optional implementations of the present embodiment, the acquisition module 920 is further configured to: take each element data in the first privacy set as a solution to a polynomial, and calculate multiple polynomial coefficients; encrypt the multiple polynomial coefficients using a homomorphic encryption algorithm to obtain a public key, a private key, and multiple encrypted coefficients.
[0191] In some optional implementations of the present embodiment, the device also includes: a determination module, configured to determine, based on the intersection data between the first privacy set and multiple second privacy sets, location information corresponding to the intersection data in multiple data calculation results; based on the location information, determine multiple result indexes corresponding to multiple recipients; and a sending module, configured to send multiple result indexes to the control end, so that the control end sends the multiple result indexes to the multiple recipients.
[0192] In some optional implementations of this embodiment, the acquisition module 920 is further configured to: obtain the data length corresponding to the first privacy set in response to receiving an alignment request sent by the control end; the sending module is further configured to: send the data length to the control end.
[0193] In some optional implementations of the present embodiment, the acquisition module 920 includes: a generation unit, configured to generate a first random number in response to receiving an alignment request sent by the control end; the acquisition unit is further configured to: obtain the initial data length of the first privacy set; based on the first random number and the initial data length, obtain the data length corresponding to the first privacy set.
[0194] The above-mentioned embodiment of the present disclosure provides a multi-party privacy set intersection device. The above-mentioned execution subject first responds to the polynomial solution request sent by the control end, constructs a polynomial corresponding to the first privacy set, and obtains the public key, private key and multiple encryption coefficients corresponding to the polynomial, and then sends the public key and multiple encryption coefficients to the control end, so that the control end sends the public key and multiple encryption coefficients to multiple receiving parties, and receives multiple data calculation results sent by the control end, the data calculation results are determined based on the second privacy set, public key and multiple encryption coefficients of the receiving party, and finally uses the private key to decrypt and align each data calculation result respectively, to generate the intersection data between the first privacy set and multiple second privacy sets, and the subsequent polynomial solution is performed by the initiator and the various receiving parties cooperate to realize the intersection of any multi-party privacy sets, and obtain the intersection data in the multi-party privacy sets, thereby improving the diversity and convenience of the privacy set intersection and providing more convenient industrial applications.
[0195] Those skilled in the art will appreciate that the above-mentioned device also includes some other well-known structures, such as a processor, a memory, etc. In order to unnecessarily obscure the embodiments of the present disclosure, these well-known structures are described in detail. Fig. 9 Not shown in FIG.
[0196] Further references Fig.10 As an implementation of the methods shown in the above figures, the present disclosure provides another embodiment of a multi-party privacy set intersection device. Figure 6 The method embodiments shown correspond.
[0197] like Fig.10 As shown, the multi-party privacy set intersection device 1000 of this embodiment may include: a calculation module 1010 , a sending module 1020 , a receiving module 1030 and a determination module 1050 .
[0198] Among them, the calculation module 1010 is configured to respond to the public key and multiple encryption coefficients sent by the control end, perform data matching calculations under the ciphertext based on the public key, multiple encryption coefficients and the second privacy set, and obtain the data calculation results corresponding to the second privacy set.
[0199] The sending module 1020 is configured to send the data calculation result to the control end, so that the control end sends the data calculation result to the initiator.
[0200] The receiving module 1030 is configured to receive a result index corresponding to the data calculation result sent by the control end, wherein the result index is determined based on the position information of each element data in the intersection data in the data calculation result, and the intersection data is the intersection data between the initiator's first privacy set and multiple second privacy sets.
[0201] The determination module 1040 is configured to determine, from the second privacy set, intersection data between the first privacy set and the plurality of second privacy sets based on the result index.
[0202] In some optional implementations of this embodiment, the device also includes: an acquisition module, configured to acquire the data length corresponding to the second privacy set in response to receiving an alignment request sent by the control end; and a sending module, configured to send the data length to the control end.
[0203] In some optional implementations of the present embodiment, the acquisition module includes: a generation unit, configured to generate a second random number in response to receiving an alignment request sent by the control end; the acquisition unit is further configured to: obtain the initial data length of the second privacy set; based on the second random number and the initial data length, obtain the data length corresponding to the second privacy set.
[0204] The above-mentioned embodiment of the present disclosure provides a multi-party privacy set intersection device. The above-mentioned execution subject first responds to receiving a public key and multiple encryption coefficients sent by the control end, and based on the public key, multiple encryption coefficients and the second privacy set, performs data matching calculation under the ciphertext to obtain the data calculation result corresponding to the second privacy set, and then sends the data calculation result to the control end so that the control end sends the data calculation result to the initiator, and then receives the result index corresponding to the data calculation result sent by the control end. The result index is determined based on the position information of each element data in the intersection data in the data calculation result. The intersection data is the intersection data between the first privacy set of the initiator and multiple second privacy sets. Finally, based on the result index, the intersection data between the first privacy set and multiple second privacy sets is determined from the second privacy set. The initiator executes the subsequent polynomial solution and each receiving party cooperates to realize the intersection of any multi-party privacy sets, and obtains the intersection data in the multi-party privacy sets, thereby improving the diversity and convenience of privacy set intersection and providing more convenient industrial applications.
[0205] Those skilled in the art will appreciate that the above-mentioned device also includes some other well-known structures, such as a processor, a memory, etc. In order to unnecessarily obscure the embodiments of the present disclosure, these well-known structures are described in detail. Fig.10 Not shown in FIG.
[0206] Reference below Fig.11 , which shows a schematic diagram of the structure of an electronic device 1100 suitable for implementing an embodiment of the present disclosure. The terminal device in the embodiment of the present disclosure may include but is not limited to mobile terminals such as smart screens, notebook computers, PADs (tablet computers), PMPs (portable multimedia players), vehicle terminals (such as vehicle navigation terminals), etc., and fixed terminals such as digital TVs, desktop computers, etc. Fig.11 The terminal device shown is merely an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.
[0207] like Fig.11 As shown, the electronic device 1100 may include a processing device (e.g., a central processing unit, a graphics processing unit, etc.) 1101, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 1102 or a program loaded from a storage device 1108 to a random access memory (RAM) 1103. In the RAM 1103, various programs and data required for the operation of the electronic device 1100 are also stored. The processing device 1101, the ROM 1102, and the RAM 1103 are connected to each other via a bus 1104. An input / output (I / O) interface 1105 is also connected to the bus 1104.
[0208] Typically, the following devices may be connected to the I / O interface 1105: an input device 1106 including, for example, a touch screen, a touch pad, a keyboard, a mouse, a camera, a microphone, an accelerometer, a gyroscope, etc.; an output device 1107 including, for example, a liquid crystal display (LCD), a speaker, a vibrator, etc.; a storage device 1108 including, for example, a magnetic tape, a hard disk, etc.; and a communication device 1109. The communication device 1109 may allow the electronic device 1100 to communicate with other devices wirelessly or by wire to exchange data. Although Fig.11 The electronic device 1100 is shown with various devices, but it should be understood that it is not required to implement or possess all the devices shown. More or fewer devices may be implemented or possessed instead. Fig.11 Each block shown in the figure may represent one device, or may represent multiple devices as required.
[0209] In particular, according to an embodiment of the present disclosure, the process described above with reference to the flowchart can be implemented as a computer software program. For example, an embodiment of the present disclosure includes a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program includes a program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from the network through a communication device 1109, or installed from a storage device 1108, or installed from a ROM 1102. When the computer program is executed by the processing device 1101, the above functions defined in the method of the embodiment of the present disclosure are executed. It should be noted that the computer-readable medium of the embodiment of the present disclosure can be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium can be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to, an electrical connection with one or more conductors, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In an embodiment of the present disclosure, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in combination with an instruction execution system, an apparatus, or a device. In an embodiment of the present disclosure, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, in which a computer-readable program code is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. A computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium, which may send, propagate, or transmit a program for use by or in combination with an instruction execution system, an apparatus, or a device. The program code embodied on the computer readable medium may be transmitted using any appropriate medium, including but not limited to: wire, optical cable, RF (radio frequency), etc., or any suitable combination of the foregoing.
[0210] Computer program code for performing the operations of the embodiments of the present disclosure may be written in one or more programming languages or a combination thereof, including object-oriented programming languages such as Java, Smalltalk, C++, and conventional procedural programming languages such as "C" language or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., using an Internet service provider to connect via the Internet).
[0211] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present application. In this regard, each square box in the flow chart or block diagram can represent a module, a program segment or a part of a code, and the module, the program segment or a part of the code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two square boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0212] The units involved in the embodiments described in the present application may be implemented by software or hardware. The units described may also be set in a processor, for example, it may be described as: a processor includes a selection module and a sending module; or a processor includes a construction module, an acquisition module, a sending module, a receiving module and a generation module; further, a processor includes a calculation module, a sending module, a receiving module and a determination module, wherein the names of these modules do not constitute a limitation on the modules themselves in some cases.
[0213] As another aspect, the present application also provides a computer-readable medium, which may be included in the electronic device; or may exist independently without being assembled into the electronic device. The computer-readable medium carries one or more programs, and when the one or more programs are executed by the electronic device, the electronic device: selects an initiator and multiple receivers from multiple clients; sends a polynomial solution request to the initiator, so that the initiator determines a public key and multiple encryption coefficients according to a first privacy set and a polynomial; in response to receiving the public key and multiple encryption coefficients sent by the initiator, sends the public key and multiple encryption coefficients to multiple receivers, so that each receiver obtains a data calculation result according to a second privacy set, a public key and multiple encryption coefficients; in response to receiving the data calculation results sent by multiple receivers, sends multiple data calculation results to the initiator, so that the initiator decrypts the multiple data calculation results and generates intersection data between the first privacy set and multiple second privacy sets. Alternatively, the electronic device: in response to receiving a polynomial solution request sent by the control end, constructs a polynomial corresponding to the first privacy set; obtains a public key, a private key and multiple encryption coefficients corresponding to the polynomial; sends the public key and the multiple encryption coefficients to the control end, so that the control end sends the public key and the multiple encryption coefficients to multiple recipients; receives multiple data calculation results sent by the control end, wherein the data calculation results are determined based on the second privacy set, the public key and the multiple encryption coefficients of the recipient; uses the private key to decrypt and align each data calculation result respectively, and generates intersection data between the first privacy set and multiple second privacy sets. Furthermore, the electronic device: in response to receiving a public key and multiple encryption coefficients sent by the control end, performs data matching calculation under the ciphertext based on the public key, multiple encryption coefficients and the second privacy set to obtain a data calculation result corresponding to the second privacy set; sends the data calculation result to the control end so that the control end sends the data calculation result to the initiator; receives a result index corresponding to the data calculation result sent by the control end, wherein the result index is determined based on the position information of each element data in the intersection data in the data calculation result, and the intersection data is the intersection data between the first privacy set of the initiator and multiple second privacy sets; based on the result index, determines the intersection data between the first privacy set and the multiple second privacy sets from the second privacy set.
[0214] The above description is only a preferred embodiment of the present disclosure and an explanation of the technical principles used. Those skilled in the art should understand that the scope of the invention involved in the embodiments of the present disclosure is not limited to the technical solutions formed by a specific combination of the above-mentioned technical features, but should also cover other technical solutions formed by any combination of the above-mentioned technical features or their equivalent features without departing from the above-mentioned inventive concept. For example, the above-mentioned features are replaced with the technical features with similar functions disclosed in the embodiments of the present disclosure (but not limited to) to form a technical solution.
Claims
1. A method for finding intersection of multiple private sets, the method comprising: Selecting an initiator and multiple receivers from the multiple clients based on the data length of the privacy set in the multiple clients; Sending a polynomial solution request to the initiator, so that the initiator determines a public key and a plurality of encryption coefficients according to the first privacy set and the polynomial, wherein the public key is obtained by encrypting a plurality of coefficients in the polynomial; In response to receiving the public key and the multiple encryption coefficients sent by the initiator, sending the public key and the multiple encryption coefficients to the multiple recipients, so that each recipient obtains a data calculation result according to the second privacy set, the public key and the multiple encryption coefficients; In response to receiving the data calculation results sent by the multiple receiving parties, the multiple data calculation results are sent to the initiator, so that the initiator decrypts the multiple data calculation results and generates intersection data between the first privacy set and multiple second privacy sets.
2. The method according to claim 1, wherein: The selecting an initiator and a plurality of receivers from the plurality of clients based on the data length of the privacy set in the plurality of clients comprises: Sending an alignment request to the plurality of clients so that each client determines the data length of the privacy set; In response to receiving the data lengths sent by the plurality of clients, determining a target data length that meets a preset condition; The client corresponding to the target data length is determined as the initiator, and the other multiple clients are determined as the multiple receivers.
3. The method according to claim 1 or 2, further comprising: Receiving multiple result indexes sent by the initiator, wherein the result index is determined based on position information of each element data in the intersection data in the data calculation result; The multiple result indexes are sent to corresponding receivers, so that the receivers determine the intersection data from the second privacy set according to the result indexes.
4. A method for finding intersection of multiple private sets, the method comprising: In response to receiving a polynomial solution request sent by the control end, constructing a polynomial corresponding to the first privacy set; Obtaining a public key, a private key, and multiple encryption coefficients corresponding to the polynomial, wherein the public key is obtained by encrypting multiple coefficients in the polynomial; Sending the public key and the multiple encryption coefficients to the control end, so that the control end sends the public key and the multiple encryption coefficients to multiple recipients, the multiple recipients being selected from multiple clients based on the data length of the privacy set in the multiple clients; Receiving a plurality of data calculation results sent by the control end, wherein the data calculation results are determined based on the second privacy set of the receiving party, the public key and the plurality of encryption coefficients; The private key is used to decrypt and align each data calculation result respectively, so as to generate intersection data between the first privacy set and multiple second privacy sets.
5. The method according to claim 4, wherein: The obtaining of a public key, a private key, and a plurality of encryption coefficients corresponding to the polynomial includes: Taking each element data in the first privacy set as a solution of the polynomial, and calculating to obtain a plurality of polynomial coefficients; The multiple polynomial coefficients are encrypted using a homomorphic encryption algorithm to obtain a public key, a private key and multiple encryption coefficients.
6. The method according to claim 4 or 5, further comprising: Based on the intersection data between the first privacy set and the plurality of second privacy sets, determining the position information corresponding to the intersection data in the plurality of data calculation results; Based on the location information, determining multiple result indexes corresponding to multiple recipients; The multiple result indexes are sent to the control end, so that the control end sends the multiple result indexes to the multiple receiving parties.
7. The method according to claim 4, further comprising: In response to receiving the alignment request sent by the control end, obtaining the data length corresponding to the first privacy set; The data length is sent to the control end.
8. The method according to claim 7, wherein in response to receiving the alignment request sent by the control end, obtaining the data length corresponding to the first privacy set comprises: In response to receiving the alignment request sent by the control end, generating a first random number; Obtaining the initial data length of the first privacy set; Based on the first random number and the initial data length, a data length corresponding to the first privacy set is obtained.
9. A method for finding intersection of multiple privacy sets, the method comprising: In response to receiving a public key and multiple encryption coefficients sent by the control terminal, performing data matching calculation under the ciphertext based on the public key, the multiple encryption coefficients and the second privacy set to obtain a data calculation result corresponding to the second privacy set, wherein the public key is obtained by encrypting multiple coefficients in a polynomial with the first privacy set; Sending the data calculation result to the control end, so that the control end sends the data calculation result to an initiator, the initiator being selected from a plurality of clients based on the data length of the privacy set in the plurality of clients; Receiving a result index corresponding to the data calculation result sent by the control end, wherein the result index is determined based on the position information of each element data in the intersection data in the data calculation result, and the intersection data is the intersection data between the first privacy set of the initiator and multiple second privacy sets; Based on the result index, intersection data between the first privacy set and a plurality of second privacy sets is determined from the second privacy set.
10. The method according to claim 9, further comprising: In response to receiving the alignment request sent by the control end, obtaining the data length corresponding to the second privacy set; The data length is sent to the control end.
11. The method according to claim 10, wherein in response to receiving the alignment request sent by the control end, obtaining the data length corresponding to the second privacy set comprises: In response to receiving the alignment request sent by the control end, generating a second random number; Obtaining the initial data length of the second privacy set; Based on the second random number and the initial data length, a data length corresponding to the second privacy set is obtained.
12. A multi-party privacy set intersection system, the system comprising: A control end and multiple clients, wherein the multiple clients include an initiator and multiple receivers; The control end is configured to send alignment requests to multiple clients; The multiple clients are configured to obtain and send the data length of the privacy set to the control end in response to receiving the alignment request; The control end is configured to select an initiator and a plurality of receivers from the plurality of clients in response to receiving a plurality of data lengths; and The control end is configured to send a polynomial solution request to the initiator; The initiator is configured to construct a polynomial corresponding to the first privacy set in response to receiving the polynomial solution request; and The initiator is configured to obtain a public key, a private key, and a plurality of encryption coefficients corresponding to the polynomial, and send the public key and the plurality of encryption coefficients to the control end, wherein the public key is obtained by encrypting the plurality of coefficients in the polynomial; The control end is configured to send the public key and the multiple encryption coefficients to the multiple recipients in response to receiving the public key and the multiple encryption coefficients sent by the initiator; The multiple receiving parties are configured to perform data matching calculation under the ciphertext in response to receiving the public key and the multiple encryption coefficients, obtain data calculation results corresponding to the second privacy set, and send the data calculation results to the control end; The control end is configured to send the multiple data calculation results to the initiator in response to receiving the multiple data calculation results from the multiple receivers; The initiator is configured to, in response to receiving the multiple data calculation results, decrypt and align each data calculation result respectively, and generate intersection data between the first privacy set and multiple second privacy sets; and The initiator is configured to determine a plurality of result indexes corresponding to the plurality of receivers based on the intersection data, and send the plurality of result indexes to the control end; The control end is configured to send the multiple result indexes to corresponding receiving parties; The multiple receivers are configured to determine, from the second privacy set, intersection data between the first privacy set and multiple second privacy sets based on the result index.
13. A multi-party privacy set intersection device, the device comprising: A selection module is configured to select an initiator and a plurality of receivers from the plurality of clients based on the data length of the privacy set in the plurality of clients; a sending module configured to send a polynomial solution request to the initiator, so that the initiator determines a public key and a plurality of encryption coefficients according to the first privacy set and the polynomial, wherein the public key is obtained by encrypting a plurality of coefficients in the polynomial; In response to receiving the public key and the multiple encryption coefficients sent by the initiator, sending the public key and the multiple encryption coefficients to the multiple recipients, so that each recipient obtains a data calculation result according to the second privacy set, the public key and the multiple encryption coefficients; In response to receiving the data calculation results sent by the multiple receiving parties, the multiple data calculation results are sent to the initiator, so that the initiator decrypts the multiple data calculation results and generates intersection data between the first privacy set and multiple second privacy sets.
14. A multi-party privacy set intersection device, the device comprising: A construction module, configured to construct a polynomial corresponding to the first privacy set in response to receiving a polynomial solution request sent by the control end; An acquisition module is configured to acquire a public key, a private key, and a plurality of encryption coefficients corresponding to the polynomial, wherein the public key is obtained by encrypting a plurality of coefficients in the polynomial; a sending module configured to send the public key and the multiple encryption coefficients to the control end, so that the control end sends the public key and the multiple encryption coefficients to multiple recipients, the multiple recipients being selected from multiple clients based on the data length of the privacy set in the multiple clients; A receiving module, configured to receive a plurality of data calculation results sent by the control end, wherein the data calculation results are determined based on the second privacy set of the receiving party, the public key and the plurality of encryption coefficients; The generation module is configured to use the private key to decrypt and align each data calculation result respectively, and generate intersection data between the first privacy set and multiple second privacy sets.
15. A multi-party privacy set intersection device, the device comprising: a calculation module configured to, in response to receiving a public key and a plurality of encryption coefficients sent by the control terminal, perform data matching calculation under the ciphertext based on the public key, the plurality of encryption coefficients and the second privacy set, and obtain a data calculation result corresponding to the second privacy set, wherein the public key is obtained by encrypting a plurality of coefficients in a polynomial with the first privacy set; a sending module configured to send the data calculation result to the control end, so that the control end sends the data calculation result to an initiator, the initiator being selected from a plurality of clients based on the data length of the privacy set in the plurality of clients; a receiving module configured to receive a result index corresponding to the data calculation result sent by the control end, wherein the result index is determined based on the position information of each element data in the intersection data in the data calculation result, and the intersection data is the intersection data between the first privacy set of the initiator and multiple second privacy sets; The determination module is configured to determine, based on the result index, intersection data between the first privacy set and a plurality of second privacy sets from the second privacy set.
16. An electronic device, comprising: one or more processors; a storage device for storing one or more programs, When the one or more programs are executed by the one or more processors, the one or more processors are enabled to implement the method according to any one of claims 1 to 11.
17. A computer readable medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the method according to any one of claims 1 to 11 is implemented.
Citation Information
Patent Citations
Method for obtaining any derived key with specified length based on multiple shared keys
CN109474425A
A set intersection two-party security calculation method and system for privacy protection
CN109657489A
Method and device for obtaining privacy set intersection, equipment and storage medium
CN111931207A
Data processing method, system and device based on node group and medium
CN111931253A
Entity alignment method based on privacy protection and computer storage medium
CN112929151A
