Method, device, equipment and storage medium for multi-party privacy intersection
By selecting the main client as the proactive party in the multi-party privacy request process, the number of encryption operations of the client is reduced, the problem of inefficiency in the existing technology is solved, and efficient multi-party privacy request is achieved.
Patent Information
- Application Number
- CN202210372810.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-04-11
- Publication Date
- 2025-04-15
- Estimated Expiration
- 2042-04-11
AI Technical Summary
In the process of multi-party privacy submission, the existing technology requires each client to perform n encryption operations before solving the privacy set, resulting in inefficiency.
By selecting an active party (main client) to send encrypted data sets from the control side to the main client, and encrypting operations between the main client and the slave client, the number of encryption operations on the client is reduced.
Reducing the original n encryption operations to only 2 encryption operations improves the efficiency of multi-party privacy requests and allows each client to obtain a public data set without leaking information.
Smart Images

Figure CN114745179B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, specifically to the field of encryption technology, and in particular to a method, device, equipment and storage medium for multi-party privacy exchange. Background Art
[0002] DH (Diffie-Hellman) algorithm is a protocol used for key exchange. The DH algorithm can be used to perform privacy set intersection. When performing multi-party privacy set intersection, for each of the multiple parties, the public key of the party is used for the first encryption; then the party sends the encrypted data set to the other n-1 parties (that is, the parties other than the party in the multiple parties), and the n-1 parties perform n-1 encryptions respectively to obtain a public data set. Summary of the invention
[0003] The embodiments of the present application provide a method, apparatus, device and storage medium for multi-party privacy intersection.
[0004] In a first aspect, an embodiment of the present application provides a method for multi-party privacy intersection, the method comprising: receiving a first encrypted data set sent by a master client, wherein the first encrypted data set is a data set generated by encrypting a first business data set stored on the master client by the master client using a first public key stored on the master client; sending the first encrypted data set to each of a plurality of slave clients; receiving a second encrypted data set and a third encrypted data set sent by each slave client, wherein the second encrypted data set is a data set generated by encrypting the first encrypted data set by each slave client using a second public key stored on each slave client, and the third encrypted data set is a data set generated by encrypting a second business data set stored on each slave client by each slave client using the second public key; sending the second encrypted data set and the third encrypted data set to the master client so that the master client encrypts the third encrypted data set using the first public key to generate a fourth encrypted data set, and determining a public data set based on the second encrypted data set and the fourth encrypted data set.
[0005] In some embodiments, before receiving the first encrypted data set sent by the master client, the method also includes: obtaining encryption parameters; sending the encryption parameters to the master client, wherein the first public key is generated for the master client based on the encryption parameters; sending the first encrypted data set to each of a plurality of slave clients, including: sending the first encrypted data set and encryption parameters to each of the plurality of slave clients, wherein the second public key is generated for each slave client based on the encryption parameters.
[0006] In some embodiments, the encryption parameters include large prime numbers and primitive roots.
[0007] In some embodiments, the method further includes: receiving the public data set and the fourth encrypted data set sent by the master client; and sending the public data set and the fourth encrypted data set to each slave client.
[0008] In a second aspect, an embodiment of the present application provides a method for multi-party privacy intersection, the method comprising: receiving a first encrypted data set sent by a control end, wherein the first encrypted data set is a data set generated by encrypting a first business data set stored on a master client using a first public key stored on the master client; encrypting the first encrypted data set using a second public key to generate a second encrypted data set; and encrypting the second business data set using the second public key to generate a third encrypted data set; sending the second encrypted data set and the third encrypted data set to the master client via the control end, so that the master client encrypts the third encrypted data set using the first public key to generate a fourth encrypted data set, and determining a public data set based on the second encrypted data set and the fourth encrypted data set.
[0009] In some embodiments, receiving a first encrypted data set sent by a control terminal includes: receiving the first encrypted data set and encryption parameters sent by the control terminal, wherein the second public key is generated according to the encryption parameters.
[0010] In some embodiments, the encryption parameters include large prime numbers and primitive roots.
[0011] In some embodiments, the method further includes: receiving a public data set and a fourth encrypted data set sent by the control terminal.
[0012] In a third aspect, an embodiment of the present application provides a method for multi-party privacy intersection, the method comprising: encrypting a first business data set using a first public key to generate a first encrypted data set; sending the first encrypted data set to a control end; receiving a second encrypted data set and a third encrypted data set sent by the control end, wherein the second encrypted data set is a data set generated by encrypting the first encrypted data set by each of a plurality of slave clients using a second public key stored on each slave client, and the third encrypted data set is a data set generated by each slave client using the second public key to encrypt the second business data set stored on each slave client; encrypting the third encrypted data set using the first public key to generate a fourth encrypted data set; and determining a public data set based on the second encrypted data set and the fourth encrypted data set.
[0013] In some embodiments, determining a common data set based on the second encrypted data set and the fourth encrypted data set includes: determining an initial common data set corresponding to each slave client based on an intersection between the second encrypted data set and the fourth encrypted data set corresponding to each slave client; determining a common data set based on an intersection between the initial common data sets corresponding to each slave client.
[0014] In some embodiments, the method further includes: receiving encryption parameters sent by the control terminal; and generating a first public key according to the encryption parameters.
[0015] In some embodiments, the encryption parameters include large prime numbers and primitive roots.
[0016] In some embodiments, the method further includes: sending a fourth encrypted data set to the control end, so that the control end sends the public data set and the fourth encrypted data set to each slave client.
[0017] In a fourth aspect, an embodiment of the present application provides a device for multi-party privacy exchange, the device comprising: a first receiving module, configured to receive a first encrypted data set sent by a master client, wherein the first encrypted data set is a data set generated by encrypting a first business data set stored on the master client by the master client using a first public key stored on the master client; a first sending module, configured to send the first encrypted data set to each of a plurality of slave clients; a second receiving module, configured to receive a second encrypted data set and a third encrypted data set sent by each slave client, wherein the second encrypted data set is a data set generated by encrypting the first encrypted data set by each slave client using a second public key stored on each slave client, and the third encrypted data set is a data set generated by encrypting a second business data set stored on each slave client by each slave client using the second public key; the second sending module, configured to send the second encrypted data set and the third encrypted data set to the master client, so that the master client encrypts the third encrypted data set using the first public key to generate a fourth encrypted data set, and determines a public data set based on the second encrypted data set and the fourth encrypted data set.
[0018] In some embodiments, before receiving the first encrypted data set sent by the master client, the device also includes: a parameter acquisition module, configured to acquire encryption parameters; a third sending module, configured to send the encryption parameters to the master client, wherein the first public key is generated for the master client based on the encryption parameters; the first sending module is further configured to: send the first encrypted data set and encryption parameters to each of a plurality of slave clients, wherein the second public key is generated for each slave client based on the encryption parameters.
[0019] In some embodiments, the encryption parameters include large prime numbers and primitive roots.
[0020] In some embodiments, the apparatus further includes: a third receiving module configured to receive the public data set and the fourth encrypted data set sent by the master client; and a fourth sending module configured to send the public data set and the fourth encrypted data set to each slave client.
[0021] In a fifth aspect, an embodiment of the present application provides a device for multi-party privacy exchange, the device comprising: a first receiving module, configured to receive a first encrypted data set sent by a control end, wherein the first encrypted data set is a data set generated by encrypting a first business data set stored on the master client by a master client using a first public key stored on the master client; a first generating module, configured to encrypt the first encrypted data set using a second public key to generate a second encrypted data set; and a second generating module, configured to encrypt the second business data set using the second public key to generate a third encrypted data set; a first sending module, configured to send the second encrypted data set and the third encrypted data set to the master client via the control end, so that the master client encrypts the third encrypted data set using the first public key to generate a fourth encrypted data set, and determines a public data set based on the second encrypted data set and the fourth encrypted data set.
[0022] In some embodiments, the first receiving module is further configured to: receive a first encrypted data set and encryption parameters sent by the control terminal, wherein the second public key is generated according to the encryption parameters.
[0023] In some embodiments, the encryption parameters include large prime numbers and primitive roots.
[0024] In some embodiments, the apparatus further includes: a second receiving module configured to receive the public data set and the fourth encrypted data set sent by the control end.
[0025] In a sixth aspect, an embodiment of the present application provides a device for multi-party privacy exchange, the device comprising: a data set generation module, configured to encrypt a first business data set using a first public key to generate a first encrypted data set; a first sending module, configured to send the first encrypted data set to a control end; a first receiving module, configured to receive a second encrypted data set and a third encrypted data set sent by the control end, wherein the second encrypted data set is a data set generated by encrypting the first encrypted data set by each of a plurality of slave clients using a second public key stored on each slave client, and the third encrypted data set is a data set generated by each slave client using the second public key to encrypt the second business data set stored on each slave client; a data encryption module, configured to encrypt the third encrypted data set using the first public key to generate a fourth encrypted data set; and a data set determination module, configured to determine a public data set based on the second encrypted data set and the fourth encrypted data set.
[0026] In some embodiments, the data set determination module is further configured to: determine the initial public data set corresponding to each slave client based on the intersection between the second encrypted data set and the fourth encrypted data set corresponding to each slave client; determine the public data set based on the intersection between the initial public data sets corresponding to each slave client.
[0027] In some embodiments, the device further includes: a second receiving module configured to receive encryption parameters sent by the control terminal; and a key generating module configured to generate a first public key according to the encryption parameters.
[0028] In some embodiments, the encryption parameters include large prime numbers and primitive roots.
[0029] In some embodiments, the apparatus further includes: a second sending module configured to send the fourth encrypted data set to the control end, so that the control end sends the public data set and the fourth encrypted data set to each slave client.
[0030] In a seventh aspect, an embodiment of the present application provides a system for multi-party privacy exchange, the system comprising: a master client, multiple slave clients and a control end; wherein the master client is configured to encrypt a first business data set using a first public key to generate a first encrypted data set; the master client is configured to send the first encrypted data set to the control end; the control end is configured to send the first encrypted data set to each of the multiple slave clients; each slave client is configured to encrypt the first encrypted data set using a second public key to generate a second encrypted data set; and each slave client is configured to encrypt the second business data set using the second public key to generate a third encrypted data set; and each slave client is configured to send the second encrypted data set and the third encrypted data set to the control end; the control end is configured to send the second encrypted data set and the third encrypted data set to the master client; the master client is configured to encrypt the third encrypted data set using the first public key to generate a fourth encrypted data set; and the master client determines a public data set based on the second encrypted data set and the fourth encrypted data set.
[0031] In an eighth aspect, an embodiment of the present application provides an electronic device comprising at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the method described in the first aspect, the second aspect or the third aspect.
[0032] In the ninth aspect, an embodiment of the present application provides a non-transitory computer-readable storage medium storing computer instructions, characterized in that the computer instructions are used to enable a computer to execute the method described in the first aspect, the second aspect or the third aspect.
[0033] The embodiments of the present application provide a method, apparatus, device and storage medium for multi-party privacy intersection, which first receives a first encrypted data set sent by a master client, wherein the first encrypted data set is a data set generated by encrypting a first business data set stored on the master client by the master client using a first public key stored on the master client; then sends the first encrypted data set to each of a plurality of slave clients; then receives a second encrypted data set and a third encrypted data set sent by each slave client, wherein the second encrypted data set is a data set generated by encrypting the first encrypted data set by each slave client using a second public key stored on each slave client, and the third encrypted data set is a data set generated by encrypting a second business data set stored on each slave client by each slave client using the second public key; then sends the second encrypted data set and the third encrypted data set to the master client, so that the master client encrypts the third encrypted data set using the first public key to generate a fourth encrypted data set, and determines a public data set based on the second encrypted data set and the fourth encrypted data set. Therefore, when determining the common data set among multiple clients, it is no longer necessary to perform n (where n is the number of clients) encryption operations on each client and then solve the privacy set. Instead, the control end selects an active party (i.e., the master client) and then performs only two encryption operations on each client (once for the master client and once for each of the multiple slave clients). Then, an alignment index is obtained based on the two encryption results so that each client can obtain the common data set without leaking information; thus, the n encryption operations can be successfully reduced to 2 encryption operations. BRIEF DESCRIPTION OF THE DRAWINGS
[0034] Other features, objects and advantages of the present application will become more apparent by reading the detailed description of non-limiting embodiments made with reference to the following drawings:
[0035] Figure 1 is an exemplary system architecture diagram to which the present application may be applied;
[0036] Figure 2 is a flow chart of an embodiment of a method for multi-party privacy intersection according to the present application;
[0037] Figure 3 is a flow chart of an embodiment of a method for multi-party privacy intersection according to the present application;
[0038] Figure 4 is a flow chart of an embodiment of a method for multi-party privacy intersection according to the present application;
[0039] Figure 5is a flow chart of an embodiment of a method for multi-party privacy intersection according to the present application;
[0040] Figure 6 is a schematic diagram of an application scenario of the multi-party privacy intersection method according to the present application;
[0041] Figure 7 is a schematic diagram of the structure of an embodiment of a device for multi-party privacy intersection according to the present application;
[0042] Figure 8 is a schematic diagram of the structure of an embodiment of a device for multi-party privacy intersection according to the present application;
[0043] Fig. 9 is a schematic diagram of the structure of an embodiment of a device for multi-party privacy intersection according to the present application;
[0044] Fig.10 It is a schematic diagram of the structure of an electronic device suitable for implementing the embodiments of the present application. DETAILED DESCRIPTION
[0045] The present application will be 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 invention, rather than to limit the invention. It should also be noted that, for ease of description, only the parts related to the relevant invention are shown in the accompanying drawings.
[0046] It should be noted that, in the absence of conflict, the embodiments and features in the embodiments of the present application can be combined with each other. The present application will be described in detail below with reference to the accompanying drawings and in combination with the embodiments.
[0047] Figure 1 An exemplary system architecture 100 is shown to which an embodiment of the method or apparatus for multi-party privacy intersection of the present application can be applied.
[0048] like Figure 1 As shown, the system architecture 100 may include a master client 101, slave clients 102 and 103, a network 104, and a control terminal 105. The network 104 is used to provide a medium for communication links between the master client 101, the slave clients 102 and 103, and the control terminal 105. The network 104 may include various connection types, such as wired, wireless communication links, or optical fiber cables, etc.
[0049] The user can use the master client 101 to interact with the control terminal 105 through the network 104 from the clients 102 and 103, for example to encrypt data sets.
[0050] The master client 101, the slave clients 102 and 103 may be clients on electronic products that perform human-computer interaction with a user through one or more methods such as a keyboard, a touch pad, a touch screen, a remote controller, voice interaction or a handwriting device, such as clients on a PC (Personal Computer), a mobile phone, a smart phone, a PDA (Personal Digital Assistant), a wearable device, a PPC (Pocket PC), a tablet computer, a smart car machine, a smart TV, a smart speaker, a tablet computer, a laptop portable computer and a desktop computer, etc. No specific limitation is made here.
[0051] The control terminal 105 can provide various services. For example, the control terminal 105 can receive a first encrypted data set sent by a master client, wherein the first encrypted data set is a data set generated by the master client using a first public key stored on the master client to encrypt a first business data set stored on the master client; send the first encrypted data set to each of a plurality of slave clients; receive a second encrypted data set and a third encrypted data set sent by each slave client, wherein the second encrypted data set is a data set generated by each slave client using a second public key stored on each slave client to encrypt the first encrypted data set, and the third encrypted data set is a data set generated by each slave client using a second public key to encrypt a second business data set stored on each slave client; send the second encrypted data set and the third encrypted data set to the master client so that the master client encrypts the third encrypted data set using the first public key to generate a fourth encrypted data set, and determine a public data set based on the second encrypted data set and the fourth encrypted data set.
[0052] It should be noted that the control terminal 105 can be implemented as a distributed server cluster consisting of multiple servers, or as a single server or a single client, without any specific limitation.
[0053] It should be noted that the method for multi-party privacy intersection provided in the embodiment of the present application is generally executed by the control terminal 105 , and accordingly, the device for multi-party privacy intersection is generally disposed in the control terminal 105 .
[0054] It should be understood that Figure 1 The number of master clients, slave clients, networks and control terminals in the embodiment is only for illustration. Any number of slave clients, networks and control terminals may be provided as required.
[0055] Continue to refer Figure 2 , which shows a flowchart 200 of an embodiment of a method for multi-party privacy intersection according to the present application. The method for multi-party privacy intersection may include the following steps:
[0056] Step 201: receiving a first encrypted data set sent by a master client, wherein the first encrypted data set is a data set generated by the master client encrypting a first business data set stored on the master client using a first public key stored on the master client.
[0057] In this embodiment, the execution subject of the multi-party privacy intersection method (for example, Figure 1 The control terminal 105 shown in the figure) can be connected through a network (eg Figure 1 The network 104 shown receives a first encrypted data set sent by the master client, the first encrypted data set being a data set generated by the master client encrypting a first business data set using a first public key stored on the master client. The first business data set may be a business data set stored on the master client, and the first public key may be a key stored on the master client.
[0058] Here, the first encrypted data set may be a data set obtained by a master client (eg Figure 1 The master client 101 shown in FIG. 101 encrypts the first service data set using the first public key stored on the master client. The master client may be a control terminal (eg Figure 1 The control terminal 105 shown in the figure) randomly selects a client from multiple clients, and the clients other than the master client among the multiple clients can be slave clients (for example Figure 1 The slave clients 102 and 103 shown in the figure); or the control end selects the client with the least number of IDs (Identity documents) as the master client.
[0059] Correspondingly, in this example, encrypting the first business data set stored on the master client by using the first public key stored on the master client to generate a first encrypted data set can include: multiplying each business data in the first business data set with the first public key to obtain the first encrypted data set; or using other existing or future encryption algorithms to encrypt the first business data set to generate a first encrypted data set.
[0060] Here, the multiplication operation may be an element-wise multiplication. The first business data set may be a data set related to the business and stored in the master client.
[0061] Step 202: Send a first encrypted data set to each of a plurality of slave clients.
[0062] In this embodiment, the execution subject can be connected via a network (for example Figure 1The network 104 shown sends a first encrypted data set to each of the multiple slave clients.
[0063] Correspondingly, in this example, the slave client may be a control terminal (eg Figure 1 The control end 105 shown) randomly selects clients other than the clients from multiple clients; or the control end selects the client with the least number of IDs as the master client, and the clients other than the master client are slave clients.
[0064] Step 203, receiving a second encrypted data set and a third encrypted data set sent by each slave client, wherein the second encrypted data set is a data set generated by each slave client encrypting the first encrypted data set using a second public key stored on each slave client, and the third encrypted data set is a data set generated by each slave client encrypting the second business data set stored on each slave client using the second public key.
[0065] In this embodiment, the execution subject can be connected via a network (eg Figure 1 The network 104 shown in FIG. 104 receives each Figure 1 The second encrypted data set and the third encrypted data set are shown as sent from the client 102 or 103).
[0066] In one example, the second encrypted data set may be a data set generated by each slave client encrypting the first encrypted data set using a second public key stored on the slave client, and the third encrypted data set may be a data set generated by each slave client encrypting the second business data set stored on the slave client using the second public key. The second public key may be a key stored in each slave client and related to encryption. The second business data set may be a data set stored in each slave client and related to business.
[0067] Step 204, sending the second encrypted data set and the third encrypted data set to the master client, so that the master client encrypts the third encrypted data set using the first public key to generate a fourth encrypted data set, and determines the public data set based on the second encrypted data set and the fourth encrypted data set.
[0068] In this embodiment, the execution subject can be connected via a network (eg Figure 1 network 104) to a primary client (eg Figure 1The master client 101 shown sends a second encrypted data set and a third encrypted data set; after the master client receives the second encrypted data set and the third encrypted data set, the master client encrypts the third encrypted data set using the first public key to generate a fourth encrypted data set; then, the master client determines a common data set between the master client and multiple slave clients through the second encrypted data set and the fourth encrypted data set. The common data set may be an intersection data set between the master client and multiple slave clients.
[0069] In some application scenarios where business services are jointly provided by a master client and multiple slave clients, the master client and multiple slave clients need to determine a common data set and use the determined common data set to perform subsequent business processing. For example, the master client and multiple slave clients need to determine common customer data and then use the determined common customer data to perform joint business. However, in addition to the common data set, the remaining business data of the master client and multiple slave clients (i.e., data outside the common data set) belongs to the privacy data of the master client and multiple slave clients and cannot be disclosed to each other.
[0070] The method for multi-party privacy intersection provided in this embodiment first receives a first encrypted data set sent by a master client, wherein the first encrypted data set is a data set generated by encrypting a first business data set stored by the master client using a first public key stored on the master client; then sends the first encrypted data set to each of a plurality of slave clients; then receives a second encrypted data set and a third encrypted data set sent by each slave client, wherein the second encrypted data set is a data set generated by encrypting the first encrypted data set by each slave client using a second public key stored on each slave client, and the third encrypted data set is a data set generated by encrypting a second business data set stored on each slave client using the second public key by each slave client; then sends the second encrypted data set and the third encrypted data set to the master client, so that the master client encrypts the third encrypted data set using the first public key to generate a fourth encrypted data set, and determines a public data set based on the second encrypted data set and the fourth encrypted data set. Therefore, when determining the common data set among multiple clients, it is no longer necessary to perform n (where n is the number of clients) encryption operations on each client and then solve the privacy set. Instead, the control end selects an active party (i.e., the master client) and then performs only two encryption operations on each client (once for the master client and once for each of the multiple slave clients). Then, an alignment index is obtained based on the two encryption results so that each client can obtain the common data set without leaking information; thus, the n encryption operations can be successfully reduced to 2 encryption operations.
[0071] In some optional implementations of this embodiment, before receiving the first encrypted data set sent by the master client, the multi-party privacy intersection method also includes: obtaining encryption parameters; sending the encryption parameters to the master client, wherein the first public key is generated for the master client based on the encryption parameters; sending the first encrypted data set to each of a plurality of slave clients, including: sending the first encrypted data set and encryption parameters to each of the plurality of slave clients, wherein the second public key is generated for each slave client based on the encryption parameters.
[0072] In this implementation, the execution subject may first obtain encryption parameters; and then send the encryption parameters to the master client, wherein the first public key is generated by the master client according to the encryption parameters.
[0073] In one example, the first public key is determined by the master client according to the encryption parameters and the private key stored on the master client, wherein the first public key is as follows:
[0074] g^a mod p
[0075] Among them, a is the private key of the primary client, and p is the encryption parameter.
[0076] Correspondingly, in this example, sending the first encrypted data set to each of the multiple slave clients may include: sending the first encrypted data set and encryption parameters to each of the multiple slave clients, wherein the second public key is generated for each slave client according to the encryption parameters.
[0077] In one example, the second public key is generated for each slave client according to the encryption parameters, wherein the second public key is as follows:
[0078] g^p(n)mod p
[0079] Among them, p(n) is the private key of the nth slave client, and p is the encryption parameter.
[0080] In some optional implementations of this embodiment, the encryption parameters include large prime numbers and primitive roots.
[0081] In some optional implementations of this embodiment, the multi-party privacy intersection method further includes: receiving a public data set and a fourth encrypted data set sent by the master client; and sending the public data set and the fourth encrypted data set to each slave client.
[0082] In this implementation, the execution subject may first receive the public data set and the fourth encrypted data set sent by the master client; and then send the public data set and the fourth encrypted data set to each slave client.
[0083] Continue to refer Figure 3 , which shows a flowchart 300 of an embodiment of a method for multi-party privacy intersection according to the present application. The method for multi-party privacy intersection may include the following steps:
[0084] Step 301: receiving a first encrypted data set sent by a control terminal, wherein the first encrypted data set is a data set generated by encrypting a first business data set stored on the master client by a master client using a first public key stored on the master client.
[0085] In this embodiment, the execution subject of the multi-party privacy intersection method (for example Figure 1 The slave clients 102 and 103 shown) can be accessed through a network (e.g. Figure 1 The network 104 shown receives a first encrypted data set.
[0086] In one example, the first encrypted data set may be a data set obtained by a master client (eg Figure 1 The client 101 shown uses the first public key stored on the master client to encrypt the first business data set stored on the master client to generate a data set, which specifically includes: multiplying each business data in the first business data set with the first public key to obtain a first encrypted data set.
[0087] Here, the multiplication operation may be an element-wise multiplication. The first business data set may be a data set related to the business and stored in the master client.
[0088] It should be noted that the master client 101 and the slave clients 102 and 103 are provided by a control terminal (eg Figure 1 The control terminal 105 shown in the figure is randomly selected. Or the client with the least number of IDs is used as the master client, and the others are used as slave clients.
[0089] Step 302: Encrypt the first encrypted data set using the second public key to generate a second encrypted data set.
[0090] In this embodiment, the execution entity may use the second public key to encrypt the first encrypted data set to generate a second encrypted data set.
[0091] Specifically, the first encrypted data set is obtained by multiplying each service data in the first encrypted data set with the second public key. The second public key may be determined by the execution subject using the encryption parameter and the private key stored on the execution subject.
[0092] Here, the multiplication operation may be element-wise multiplication.
[0093] Step 303: Encrypt the second service data set using the second public key to generate a third encrypted data set.
[0094] In this embodiment, the execution entity may use the second public key to encrypt the second service data set to generate a second encrypted data set.
[0095] Specifically, each item of business data in the second business data set is multiplied by the second public key to obtain the second business data set.
[0096] Here, the multiplication operation may be an element-wise multiplication. The second business data set may be a data set related to the business and stored in the master client.
[0097] Step 304, sending the second encrypted data set and the third encrypted data set to the master client via the control terminal, so that the master client encrypts the third encrypted data set using the first public key to generate a fourth encrypted data set, and determines the public data set based on the second encrypted data set and the fourth encrypted data set.
[0098] In this embodiment, the execution subject may first send the second encrypted data set and the third encrypted data set to the control end (eg Figure 1 Afterwards, the control terminal 105 sends the second encrypted data set and the third encrypted data set to the main client (eg Figure 1 The master client 101 shown in the figure); after the master client receives the second encrypted data set and the third encrypted data set, the master client uses the first public key to encrypt the third encrypted data set to generate a fourth encrypted data set; then, the master client determines the common data set between the master client and the multiple slave clients through the second encrypted data set and the fourth encrypted data set. The above common data set can be the intersection data set between the master client and the multiple slave clients.
[0099] It should be noted that step 302 and step 303 may be performed simultaneously, or step 302 may be performed first and then step 303, or step 303 may be performed first and then step 302.
[0100] The method for multi-party privacy intersection provided in this embodiment first receives a first encrypted data set sent by a control end, wherein the first encrypted data set is a data set generated by encrypting a first business data set stored on the master client by a master client using a first public key stored on the master client; then the first encrypted data set is encrypted by a second public key to generate a second encrypted data set; and the second business data set is encrypted by a second public key to generate a third encrypted data set; then the second encrypted data set and the third encrypted data set are sent to the master client via the control end, so that the master client encrypts the third encrypted data set by using the first public key to generate a fourth encrypted data set, and a public data set is determined based on the second encrypted data set and the fourth encrypted data set. Therefore, when determining the common data set among multiple clients, it is no longer necessary to perform n (where n is the number of clients) encryption operations on each client and then solve the privacy set. Instead, the control end selects an active party (i.e., the master client) and then performs only two encryption operations on each client (once for the master client and once for each of the multiple slave clients). Then, an alignment index is obtained based on the two encryption results so that each client can obtain the common data set without leaking information; thus, the n encryption operations can be successfully reduced to 2 encryption operations.
[0101] In some optional implementations of this embodiment, receiving the first encrypted data set sent by the control end includes: receiving the first encrypted data set and encryption parameters sent by the control end, wherein the second public key is generated according to the encryption parameters.
[0102] In this implementation, the execution subject receives the first encrypted data set and encryption parameters sent by the control terminal at the same time. The encryption parameters can be used to generate the second public key.
[0103] In one example, the second public key is generated for each slave client according to the encryption parameters, wherein the second public key is as follows:
[0104] g^p(n)mod p
[0105] Among them, p(n) is the private key of the nth slave client, and p is the encryption parameter.
[0106] In some optional implementations of this embodiment, the encryption parameters include large prime numbers and primitive roots.
[0107] In some optional implementations of this embodiment, the multi-party privacy intersection method further includes: receiving a public data set and a fourth encrypted data set sent by the control terminal.
[0108] In this implementation, the execution subject may receive the public data set and the fourth encrypted data set sent by the control terminal, and cache them locally after decryption.
[0109] Continue to refer Figure 4 , which shows a flowchart 400 of an embodiment of a method for multi-party privacy intersection according to the present application. The method for multi-party privacy intersection may include the following steps:
[0110] Step 401: encrypt a first service data set using a first public key to generate a first encrypted data set.
[0111] In this embodiment, the execution subject of the multi-party privacy intersection method (for example Figure 1 The main client 101 shown can use the first public key to encrypt the first business data set to generate a first encrypted data set.
[0112] Here, the main client uses the first public key to encrypt the first business data set to generate a first encrypted data set, which may include: multiplying the business data in the first business data set with the first public key to obtain the first encrypted data set; or using other existing or future encryption algorithms to encrypt the first business data set to generate a first encrypted data set.
[0113] Here, the multiplication operation may be an element-wise multiplication. The first business data set may be a data set related to the business and stored in the master client.
[0114] Step 402: Send a first encrypted data set to a control terminal.
[0115] In this embodiment, the execution subject can be connected via a network (eg Figure 1 The network 104 shown) to the control end (eg Figure 1 The control terminal 105 shown sends a first encrypted data set.
[0116] Step 403, the receiving control end sends a second encrypted data set and a third encrypted data set, wherein the second encrypted data set is a data set generated by each of a plurality of slave clients using a second public key stored on each slave client to encrypt the first encrypted data set, and the third encrypted data set is a data set generated by each slave client using the second public key to a second business data set stored on each slave client.
[0117] In this embodiment, the execution subject can be connected via a network (eg Figure 1 The network 104 shown receives the second encrypted data set and the third encrypted data set sent by the control terminal.
[0118] In one example, the second encrypted data set may be a plurality of slave clients (eg Figure 1 Each of the slave clients 102 and 103) shown in the figure performs a multiplication operation on each business data in the first encrypted data set and the second public key to obtain the first encrypted data set.
[0119] Here, the multiplication operation may be element-wise multiplication.
[0120] In one example, the third encrypted data set may be for each slave client (eg Figure 1 As shown, the slave client 102 or 103) performs a multiplication operation on each business data in the second business data set and the second public key to obtain the second business data set.
[0121] Here, the multiplication operation may be an element-wise multiplication. The second business data set may be a data set related to the business and stored in the master client.
[0122] Step 404: Encrypt the third encrypted data set using the first public key to generate a fourth encrypted data set.
[0123] In this embodiment, the execution entity may use the first public key to encrypt the third encrypted data set to generate a fourth encrypted data set.
[0124] Step 405: Determine a public data set according to the second encrypted data set and the fourth encrypted data set.
[0125] In this embodiment, the execution entity can determine the master client (for example, Figure 1 The master client 101 shown) and multiple slave clients (eg Figure 1 The public data set may be an intersection of data sets of a master client and multiple slave clients.
[0126] In one example, determining the common data set according to the second encrypted data set and the fourth encrypted data set may include: matching the second encrypted data set and the fourth encrypted data set to determine an intersection of the second encrypted data set and the fourth encrypted data set, thereby determining the common data set.
[0127] The method for multi-party privacy intersection provided in this embodiment first encrypts a first business data set using a first public key to generate a first encrypted data set; then sends the first encrypted data set to a control end; then receives a second encrypted data set and a third encrypted data set sent by the control end, wherein the second encrypted data set is a data set generated by encrypting the first encrypted data set by each of a plurality of slave clients using a second public key stored on each slave client, and the third encrypted data set is a data set generated by each slave client using the second public key to encrypt the second business data set stored on each slave client; then encrypts the third encrypted data set using the first public key to generate a fourth encrypted data set; then determines a public data set based on the second encrypted data set and the fourth encrypted data set. Therefore, when determining the common data set among multiple clients, it is no longer necessary to perform n (where n is the number of clients) encryption operations on each client and then solve the privacy set. Instead, the control end selects an active party (i.e., the master client) and then performs only two encryption operations on each client (once for the master client and once for each of the multiple slave clients). Then, an alignment index is obtained based on the two encryption results so that each client can obtain the common data set without leaking information; thus, the n encryption operations can be successfully reduced to 2 encryption operations.
[0128] In some optional implementations of the present embodiment, a public data set is determined based on the second encrypted data set and the fourth encrypted data set, including: determining an initial public data set corresponding to each slave client based on an intersection between the second encrypted data set and the fourth encrypted data set corresponding to each slave client; determining a public data set based on an intersection between the initial public data sets corresponding to each slave client.
[0129] In this implementation, the above-mentioned execution entity can determine the initial public data set corresponding to each slave client based on the intersection between the second encrypted data set and the fourth encrypted data set corresponding to each slave client; then, determine the public data set based on the intersection between the initial public data sets corresponding to each slave client.
[0130] In one example, for each slave client P_i, EncPi(EncA(IDA)) (i.e., the second encrypted data set) and EncA(EncPi(IDPi)) (i.e., the third encrypted data set) are matched, and after finding the intersection between the master client and each slave client (i.e., the initial public data set corresponding to each slave client), these intersections (i.e., the initial public data set corresponding to each slave client) are intersected again to obtain the public data set.
[0131] In this implementation, when determining a common data set between multiple clients, it is no longer necessary to perform n (where n is the number of clients) encryption operations on each client and then solve the privacy set. Instead, the control end selects an active party (i.e., a master client) and then performs only two encryption operations on each client (once for the master client and once for each of the multiple slave clients). Then, an alignment index is obtained based on the two encryption results so that each client can obtain the common data set without leaking information; thereby successfully reducing n encryption operations to 2 encryption operations.
[0132] In some optional implementations of this embodiment, the multi-party privacy intersection method further includes: receiving encryption parameters sent by the control terminal; and generating a first public key according to the encryption parameters.
[0133] In this implementation, the execution subject can be connected via a network (e.g. Figure 1 The encryption parameters sent by the network 104 shown in FIG. 10A ) are then used to generate the first public key according to the encryption parameters. The encryption parameters are used to generate the first public key.
[0134] In one example, the first public key is determined by the master client according to the encryption parameters and the private key stored on the master client, wherein the first public key is as follows:
[0135] g^a mod p
[0136] Among them, a is the private key of the primary client, and p is the encryption parameter.
[0137] In some optional implementations of this embodiment, the encryption parameters include large prime numbers and primitive roots.
[0138] In some optional implementations of this embodiment, the multi-party privacy intersection method further includes: sending a fourth encrypted data set to the control end, so that the control end sends the public data set and the fourth encrypted data set to each slave client.
[0139] In this implementation, the execution subject may first send the fourth encrypted data set to the control end; then, the control end sends the public data set and the fourth encrypted data set to each slave client.
[0140] Continue to refer Figure 5 , which shows a flowchart 500 of an embodiment of a method for multi-party privacy intersection according to the present application. The method for multi-party privacy intersection may include the following steps:
[0141] Step 501: The control end generates encryption parameters, selects a master client and multiple slave clients from multiple clients, and sends the encryption parameters to the master client.
[0142] In this embodiment, during the initialization phase, the control end (Coordinator) generates encryption parameters, such as g and p, for use in the subsequent encryption process of the client (client). The control end randomly selects a client as the master client (A) and transmits the encryption parameters to the master client.
[0143] Step 502: The master client generates a first public key according to the encryption parameters, encrypts the first service data set according to the first public key to generate first encrypted data, and sends the first encrypted data set to the control terminal.
[0144] In this embodiment, after receiving g and p, the master client calculates g^a mod p (the first public key), and uses g^a mod p to encrypt the master client set (i.e., the first service data set) to obtain EncA(IDA) (i.e., the first encrypted data set) and sends it to the control end, where EncA(IDA) is a multiplication operation of each item of the set and g^a mod p. Wherein, a is the private key of the master client.
[0145] Step 503: The control end sends the first encrypted data and the encryption parameter to each of the multiple slave clients.
[0146] Step 504, each slave client encrypts the first encrypted data set using the second public key to generate a second encrypted data set; and encrypts the second business data set using the second public key to generate a third encrypted data set; and sends the second encrypted data set and the third encrypted data set to the control end.
[0147] In this embodiment, after receiving g and p from each client, g^p(n) mod p (the second public key) is calculated, and g^p(n) mod p is used to encrypt the second service data set of the slave client to generate EncPi(IDPi) (i.e., the third encrypted data set), and g^p(n) mod p is used to encrypt the first encrypted data set to generate EncPi(EncA(IDA)) (i.e., the second encrypted data set). The private keys corresponding to each slave client are p_1, p_2, ..., p_(n-1), respectively, and n is a positive integer greater than or equal to 2.
[0148] Step 505: The control end sends the second encrypted data set and the third encrypted data set to the master client.
[0149] Step 506: the master client encrypts the third encrypted data set using the first public key to generate a fourth encrypted data set; determines a public data set based on the second encrypted data set and the fourth encrypted data set; and sends the fourth encrypted data set and the public data set to the control terminal.
[0150] In this embodiment, the master client re-encrypts EncA(EncPi(IDPi)) of each slave client to generate EncA(EncPi(IDPi)) (i.e., the fourth encrypted data set); then EncPi(EncA(IDA))) and EncA(EncPi(IDPi)) are matched to determine the public data set.
[0151] Step 507: The control end sends the fourth encrypted data set and the public data set to each slave client respectively.
[0152] In this embodiment, the control end sends EncA (EncPi (IDPi)) and the public data set to each slave client, and each slave client stores the public data set and EncA (EncPi (IDPi)) locally.
[0153] In this application, a multi-party privacy-enabling system may include a master client (e.g. Figure 1 The master client 101 shown), multiple slave clients (eg Figure 1 From the client 102 and 103) and the control end (eg Figure 1 The control terminal 105 shown); the following is combined Figure 6 Describe the page rendering system. Figure 6 , which shows a flow chart of an embodiment of a page rendering method according to the present application.
[0154] The master client is configured to encrypt a first business data set using a first public key to generate a first encrypted data set; the master client is configured to send the first encrypted data set to a control terminal; the control terminal is configured to send the first encrypted data set to each of a plurality of slave clients; each slave client is configured to encrypt the first encrypted data set using a second public key to generate a second encrypted data set; and each slave client is configured to encrypt the second business data set using a second public key to generate a third encrypted data set; and each slave client is configured to send the second encrypted data set and the third encrypted data set to the control terminal; the control terminal is configured to send the second encrypted data set and the third encrypted data set to the master client; the master client is configured to encrypt the third encrypted data set using the first public key to generate a fourth encrypted data set; and the master client determines a public data set based on the second encrypted data set and the fourth encrypted data set.
[0155] In the multi-party privacy intersection method provided in this embodiment, when it is necessary to determine the common data set among multiple clients, it is no longer necessary to perform n (where n is the number of clients) encryption operations on each client and then solve the privacy set. Instead, the control end selects an active party (i.e., the master client) and then performs only two encryption operations on each client (once for the master client and once for each of the multiple slave clients). Then, an alignment index is obtained based on the two encryption results so that each client can obtain the common data set without leaking information; thereby successfully reducing n encryption operations to 2 encryption operations.
[0156] Further references Figure 7 As an implementation of the methods shown in the above figures, the present application discloses an embodiment of a device for multi-party privacy intersection. Figure 2 Corresponding to the method embodiment shown, the device can be specifically applied to various electronic devices.
[0157] like Figure 7 As shown, an embodiment of the present application provides a multi-party privacy intersection device 700, which includes: a first receiving module 701, a first sending module 702, a second receiving module 703 and a second sending module 704. Among them, the first receiving module 701 is configured to receive a first encrypted data set sent by the master client, wherein the first encrypted data set is a data set generated by the master client using a first public key stored on the master client to encrypt a first business data set stored on the master client; the first sending module 702 is configured to send the first encrypted data set to each of the multiple slave clients; the second receiving module 703 is configured to receive a second encrypted data set and a third encrypted data set sent by each slave client, wherein the second encrypted data set is a data set generated by each slave client using a second public key stored on each slave client to encrypt the first encrypted data set, and the third encrypted data set is a data set generated by each slave client using the second public key to encrypt a second business data set stored on each slave client; the second sending module 704 is configured to send the second encrypted data set and the third encrypted data set to the master client, so that the master client uses the first public key to encrypt the third encrypted data set to generate a fourth encrypted data set, and determines the public data set based on the second encrypted data set and the fourth encrypted data set.
[0158] In the device 700 for multi-party privacy intersection, the specific processing of the first receiving module 701, the first sending module 702, the second receiving module 703 and the second sending module 704 and the technical effects thereof can be referred to in Figure 2 This corresponds to steps 201 to 204 in the embodiment.
[0159] In some embodiments, before receiving the first encrypted data set sent by the master client, the device further includes: a parameter acquisition module configured to acquire encryption parameters; a third sending module configured to send the encryption parameters to the master client, wherein the first public key is generated by the master client according to the encryption parameters;
[0160] The first sending module 702 is further configured to send the first encrypted data set and encryption parameters to each of the multiple slave clients, wherein the second public key is generated for each slave client according to the encryption parameters.
[0161] In some embodiments, the encryption parameters include large prime numbers and primitive roots.
[0162] In some embodiments, the apparatus further includes: a third receiving module configured to receive the public data set and the fourth encrypted data set sent by the master client; and a fourth sending module configured to send the public data set and the fourth encrypted data set to each slave client.
[0163] Further references Figure 8 As an implementation of the methods shown in the above figures, the present application discloses an embodiment of a device for multi-party privacy intersection. Figure 3 Corresponding to the method embodiment shown, the device can be specifically applied to various electronic devices.
[0164] like Figure 8 As shown, the embodiment of the present application provides a multi-party privacy exchange device 800, which includes: a first receiving module 801, a first generating module 802, a second generating module 803 and a first sending module 804. The first receiving module 801 is configured to receive a first encrypted data set sent by a control terminal, wherein the first encrypted data set is a data set generated by encrypting a first business data set stored on the master client by a master client using a first public key stored on the master client; the first generating module 802 is configured to encrypt the first encrypted data set by using a second public key to generate a second encrypted data set; and the second generating module 803 is configured to encrypt the second business data set by using a second public key to generate a third encrypted data set; the first sending module 804 is configured to send the second encrypted data set and the third encrypted data set to the master client via the control terminal, so that the master client encrypts the third encrypted data set by using the first public key to generate a fourth encrypted data set, and determines the public data set according to the second encrypted data set and the fourth encrypted data set.
[0165] In the multi-party privacy intersection device 800, the specific processing of the first receiving module 801, the first generating module 802, the second generating module 803 and the first sending module 804 and the technical effects thereof can be referred to respectively. Figure 3 This corresponds to steps 301 to 304 in the embodiment.
[0166] In some embodiments, the first receiving module 801 is further configured to: receive a first encrypted data set and encryption parameters sent by the control end, wherein the second public key is generated according to the encryption parameters.
[0167] In some embodiments, the encryption parameters include large prime numbers and primitive roots.
[0168] In some embodiments, the apparatus further includes: a second receiving module configured to receive the public data set and the fourth encrypted data set sent by the control end.
[0169] Further references Fig. 9 As an implementation of the methods shown in the above figures, the present application discloses an embodiment of a device for multi-party privacy intersection. Figure 4 Corresponding to the method embodiment shown, the device can be specifically applied to various electronic devices.
[0170] like Fig. 9 As shown, the embodiment of the present application provides a multi-party privacy exchange device 900, which includes: a data set generation module 901, a first sending module 902, a first receiving module 903, a data encryption module 904 and a data set determination module 905. The data set generation module 901 is configured to encrypt the first business data set using the first public key to generate a first encrypted data set; the first sending module 902 is configured to send the first encrypted data set to the control end; the first receiving module 903 is configured to receive the second encrypted data set and the third encrypted data set sent by the control end, wherein the second encrypted data set is a data set generated by each of the multiple slave clients using the second public key stored on each slave client to encrypt the first encrypted data set, and the third encrypted data set is a data set generated by each slave client using the second public key to encrypt the second business data set stored on each slave client; the data encryption module 904 is configured to encrypt the third encrypted data set using the first public key to generate a fourth encrypted data set; the data set determination module 905 is configured to determine the public data set according to the second encrypted data set and the fourth encrypted data set.
[0171] In the present embodiment, in the apparatus 900 for multi-party privacy intersection, the specific processing of the data set generation module 901, the first sending module 902, the first receiving module 903, the data encryption module 904 and the data set determination module 905 and the technical effects thereof can be referred to respectively. Figure 4 This corresponds to steps 401 to 405 in the embodiment.
[0172] In some embodiments, the data set determination module 905 is further configured to: determine the initial public data set corresponding to each slave client based on the intersection between the second encrypted data set and the fourth encrypted data set corresponding to each slave client; determine the public data set based on the intersection between the initial public data sets corresponding to each slave client.
[0173] In some embodiments, the device further includes: a second receiving module configured to receive encryption parameters sent by the control terminal; and a key generating module configured to generate a first public key according to the encryption parameters.
[0174] In some embodiments, the encryption parameters include large prime numbers and primitive roots.
[0175] In some embodiments, the apparatus further includes: a second sending module configured to send the fourth encrypted data set to the control end, so that the control end sends the public data set and the fourth encrypted data set to each slave client.
[0176] like Fig.10 , is a block diagram of an electronic device according to a method for multi-party privacy intersection according to an embodiment of the present application. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processing, cellular phones, smart phones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely examples and are not intended to limit the implementation of the present application described and / or required herein.
[0177] like Fig.10As shown, the electronic device includes: one or more processors 1001, a memory 1002, and interfaces for connecting various components, including high-speed interfaces and low-speed interfaces. The various components are interconnected using different buses and can be installed on a common mainboard or installed in other ways as needed. The processor can process instructions executed in the electronic device, including instructions stored in or on the memory to display the graphical information of the GUI on an external input / output device (such as a display device coupled to the interface). In other embodiments, if necessary, multiple processors and / or multiple buses can be used together with multiple memories and multiple memories. Similarly, multiple electronic devices can be connected, and each device provides some necessary operations (for example, as a server array, a group of blade servers, or a multi-processor system). Fig.10 A processor 1001 is taken as an example.
[0178] The memory 1002 is a non-transitory computer-readable storage medium provided in the present application. The memory stores instructions executable by at least one processor to enable at least one processor to perform the multi-party privacy intersection method provided in the present application. The non-transitory computer-readable storage medium of the present application stores computer instructions, which are used to enable a computer to perform the multi-party privacy intersection method provided in the present application.
[0179] The memory 1002 is a non-transient computer-readable storage medium that can be used to store non-transient software programs, non-transient computer executable programs and modules, such as the program instructions / modules corresponding to the multi-party privacy intersection method in the embodiment of the present application (for example, the attached Figure 7 The first receiving module 701, the first sending module 702, the second receiving module 703 and the second sending module 704 shown; or Figure 8 The first receiving module 801, the first generating module 802, the second generating module 803 and the first sending module 804 shown; or Fig. 9 The processor 1001 executes various functional applications and data processing of the server by running the non-transient software programs, instructions and modules stored in the memory 1002, that is, the multi-party privacy intersection method in the above method embodiment is implemented.
[0180] The memory 1002 may include a program storage area and a data storage area, wherein the program storage area may store an operating system, an application required for at least one function; the data storage area may store data created according to the use of the blockchain-based information processing electronic device, etc. In addition, the memory 1002 may include a high-speed random access memory, and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some embodiments, the memory 1002 may optionally include a memory remotely arranged relative to the processor 1001, and these remote memories may be connected to the blockchain-based information processing electronic device via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
[0181] The electronic device of the multi-party privacy intersection method may further include: an input device 1003 and an output device 1004. The processor 1001, the memory 1002, the input device 1003 and the output device 1004 may be connected via a bus or other means. Fig.10 The example of connecting through bus is taken in the following.
[0182] The input device 1003 can receive input digital or character information, and generate key signal input related to user settings and function control of blockchain-based information processing electronic devices, such as touch screens, keypads, mice, trackpads, touchpads, indicator rods, one or more mouse buttons, trackballs, joysticks and other input devices. The output device 1004 may include a display device, an auxiliary lighting device (e.g., LED) and a tactile feedback device (e.g., a vibration motor), etc. The display device may include, but is not limited to, a liquid crystal display (LCD), a light emitting diode (LED) display and a plasma display. In some embodiments, the display device may be a touch screen.
[0183] Various implementations of the systems and techniques described herein can be realized in digital electronic circuit systems, integrated circuit systems, dedicated ASICs (application specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations can include: being implemented in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.
[0184] These computer programs (also referred to as programs, software, software applications, or code) include machine instructions for programmable processors and can be implemented using high-level procedural and / or object-oriented programming languages, and / or assembly / machine languages. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, device, and / or means (e.g., disk, optical disk, memory, programmable logic device (PLD)) for providing machine instructions and / or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal for providing machine instructions and / or data to a programmable processor.
[0185] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).
[0186] The systems and techniques described herein may be implemented in a computing system that includes back-end components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes front-end components (e.g., a user computer with a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such back-end components, middleware components, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), and the Internet.
[0187] A computer system may include clients and servers. Clients and servers are generally remote from each other and usually interact through a communication network. The relationship of client and server is generated by computer programs running on respective computers and having a client-server relationship to each other.
[0188] It should be understood that the various forms of processes shown above can be used to reorder, add or delete steps. For example, the steps recorded in this application can be executed in parallel, sequentially or in different orders, as long as the expected results of the technical solution disclosed in this application can be achieved, and this document is not limited here.
[0189] The above specific implementations do not constitute a limitation on the protection scope of this application. It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions and improvements made within the spirit and principles of this application should be included in the protection scope of this application.
Claims
1. A multi-party privacy intersection method, applied to a control end, comprising: Receive a first encrypted data set sent by a master client, wherein the first encrypted data set is a data set generated by the master client using a first public key stored on the master client to encrypt a first business data set stored on the master client, and the first public key is generated by the master client according to encryption parameters and a private key stored on the master client; sending a first encrypted data set to each slave client of a plurality of slave clients; Receive a second encrypted data set and a third encrypted data set sent by each slave client, wherein the second encrypted data set is a data set generated by each slave client encrypting the first encrypted data set using a second public key stored on each slave client, and the third encrypted data set is a data set generated by each slave client encrypting a second business data set stored on each slave client using the second public key, and the second public key is generated by each slave client according to the encryption parameter and a private key stored on the slave client; The second encrypted data set and the third encrypted data set are sent to the master client so that the master client uses the first public key to encrypt the third encrypted data set to generate a fourth encrypted data set, and a public data set is determined according to the second encrypted data set and the fourth encrypted data set corresponding to each slave client.
2. The method according to claim 1, wherein: Before receiving the first encrypted data set sent by the master client, the method further includes: Get encryption parameters; Sending the encryption parameters to the master client; Sending a first encrypted data set to each of a plurality of slave clients includes: A first encrypted data set and the encryption parameters are sent to each slave client of a plurality of slave clients.
3. The method according to claim 1 or 2, wherein: The encryption parameters include large prime numbers and primitive roots.
4. The method according to claim 1 or 2, further comprising: receiving the public data set and the fourth encrypted data set sent by the master client; The public data set and the fourth encrypted data set are sent to each slave client.
5. A method for multi-party privacy intersection, applied to a slave client, comprising: Receive a first encrypted data set sent by the control terminal, wherein the first encrypted data set is a data set generated by encrypting a first service data set stored on the master client by a master client using a first public key stored on the master client, and the first public key is generated by the master client according to encryption parameters and a private key stored on the master client; encrypting the first encrypted data set using a second public key to generate a second encrypted data set, wherein the second public key is generated for each slave client according to the encryption parameter and a private key stored on the slave client; and encrypting the second service data set using the second public key to generate a third encrypted data set; The second encrypted data set and the third encrypted data set are sent to the master client via the control end, so that the master client uses the first public key to encrypt the third encrypted data set to generate a fourth encrypted data set, and determines a public data set based on the second encrypted data set and the fourth encrypted data set corresponding to each slave client.
6. The method according to claim 5, wherein: The receiving of the first encrypted data set sent by the control terminal includes: Receive a first encrypted data set and encryption parameters sent by the control end.
7. The method according to claim 6, wherein: The encryption parameters include large prime numbers and primitive roots.
8. The method according to any one of claims 5 to 7, further comprising: The public data set and the fourth encrypted data set sent by the control end are received.
9. A method for multi-party privacy intersection, applied to a master client, comprising: Encrypting a first service data set using a first public key to generate a first encrypted data set, wherein the first public key is generated by the master client according to encryption parameters and a private key stored on the master client; Sending a first encrypted data set to a control terminal; receiving a second encrypted data set and a third encrypted data set sent by the control end, wherein the second encrypted data set is a data set generated by each of a plurality of slave clients encrypting the first encrypted data set using a second public key stored on each slave client, and the third encrypted data set is a data set generated by each slave client using the second public key to encrypt a second business data set stored on each slave client, and the second public key is generated by each slave client according to the encryption parameter and a private key stored on the slave client; encrypting the third encrypted data set using the first public key to generate a fourth encrypted data set; A public data set is determined according to the second encrypted data set and the fourth encrypted data set corresponding to each slave client.
10. The method according to claim 9, wherein: The determining the public data set according to the second encrypted data set and the fourth encrypted data set comprises: determining an initial public data set corresponding to each slave client according to an intersection between the second encrypted data set and a fourth encrypted data set corresponding to each slave client; The public data set is determined according to the intersection between the initial public data sets corresponding to each slave client.
11. The method according to claim 9 or 10, further comprising: Receive encryption parameters sent by the control end; A first public key is generated according to the encryption parameters.
12. The method according to claim 11, wherein: The encryption parameters include large prime numbers and primitive roots.
13. The method according to claim 9 or 10, further comprising: The fourth encrypted data set is sent to the control end, so that the control end sends the public data set and the fourth encrypted data set to each slave client.
14. A device for multi-party privacy intersection, comprising: A first receiving module is configured to receive a first encrypted data set sent by a master client, wherein the first encrypted data set is a data set generated by the master client encrypting a first business data set stored on the master client using a first public key stored on the master client, and the first public key is generated by the master client according to encryption parameters and a private key stored on the master client; A first sending module is configured to send a first encrypted data set to each of a plurality of slave clients; A second receiving module is configured to receive a second encrypted data set and a third encrypted data set sent by each slave client, wherein the second encrypted data set is a data set generated by each slave client encrypting the first encrypted data set using a second public key stored on each slave client, and the third encrypted data set is a data set generated by each slave client encrypting a second business data set stored on each slave client using the second public key, and the second public key is generated by each slave client according to the encryption parameter and a private key stored on the slave client; The second sending module is configured to send the second encrypted data set and the third encrypted data set to the master client, so that the master client uses the first public key to encrypt the third encrypted data set to generate a fourth encrypted data set, and determine a public data set based on the second encrypted data set and the fourth encrypted data set corresponding to each slave client.
15. The device according to claim 14, wherein: Before receiving the first encrypted data set sent by the master client, the apparatus further includes: A parameter acquisition module, configured to acquire encryption parameters; A third sending module is configured to send the encryption parameter to the master client; The first sending module is further configured to send the first encrypted data set and the encryption parameter to each of the plurality of slave clients.
16. A device for multi-party privacy intersection, comprising: A first receiving module is configured to receive a first encrypted data set sent by the control terminal, wherein the first encrypted data set is a data set generated by encrypting a first service data set stored on the master client by a master client using a first public key stored on the master client, and the first public key is generated by the master client according to encryption parameters and a private key stored on the master client; a first generating module configured to encrypt the first encrypted data set using a second public key to generate a second encrypted data set, wherein the second public key is generated for each of the devices according to the encryption parameters and a private key stored on the device; and A second generating module is configured to encrypt the second service data set using the second public key to generate a third encrypted data set; The first sending module is configured to send the second encrypted data set and the third encrypted data set to the main client via the control end, so that the main client uses the first public key to encrypt the third encrypted data set to generate a fourth encrypted data set, and determine a public data set based on the second encrypted data set and the fourth encrypted data set corresponding to each of the devices.
17. The device according to claim 16, wherein: The first receiving module is further configured to: Receive a first encrypted data set and encryption parameters sent by the control end.
18. A device for multi-party privacy intersection, comprising: a data set generating module, configured to encrypt the first service data set using a first public key to generate a first encrypted data set, wherein the first public key is generated by the device according to encryption parameters and a private key stored on the device; A first sending module is configured to send a first encrypted data set to the control terminal; A first receiving module is configured to receive a second encrypted data set and a third encrypted data set sent by the control terminal, wherein the second encrypted data set is a data set generated by each of a plurality of slave clients using a second public key stored on each slave client to encrypt the first encrypted data set, and the third encrypted data set is a data set generated by each slave client using the second public key to encrypt a second business data set stored on each slave client, and the second public key is generated by each slave client according to the encryption parameter and a private key stored on the slave client; a data encryption module, configured to encrypt the third encrypted data set using the first public key to generate a fourth encrypted data set; The data set determining module is configured to determine a public data set according to the second encrypted data set and the fourth encrypted data set corresponding to each slave client.
19. The device according to claim 18, wherein: The data set determination module is further configured to: determining an initial public data set corresponding to each slave client according to an intersection between the second encrypted data set and a fourth encrypted data set corresponding to each slave client; The public data set is determined according to the intersection between the initial public data sets corresponding to each slave client.
20. A system for multi-party privacy intersection, comprising: A master client, multiple slave clients and a control terminal; wherein, The master client is configured to encrypt the first service data set using a first public key to generate a first encrypted data set, wherein the first public key is generated by the master client according to encryption parameters and a private key stored on the master client; The master client is configured to send the first encrypted data set to the control terminal; The control end is configured to send the first encrypted data set to each of a plurality of slave clients; Each of the slave clients is configured to encrypt the first encrypted data set using a second public key to generate a second encrypted data set, wherein the second public key is generated by each of the slave clients according to the encryption parameters and a private key stored on the slave client; and Each slave client is configured to encrypt the second service data set stored on each slave client using the second public key to generate a third encrypted data set; and Each of the slave clients is configured to send the second encrypted data set and the third encrypted data set to the control end; The control end is configured to send the second encrypted data set and the third encrypted data set to the master client; The master client is configured to encrypt the third encrypted data set using the first public key to generate a fourth encrypted data set; and The master client determines a public data set according to the second encrypted data set and the fourth encrypted data set corresponding to each slave client.
21. An electronic device, comprising: one or more processors; a storage device having one or more programs stored thereon; When the one or more programs are executed by the one or more processors, the one or more processors implement the method according to any one of claims 1 to 13.
22. A non-transitory computer-readable storage medium storing computer instructions, the computer instructions being used to cause the computer to execute the method according to any one of claims 1 to 13.
Citation Information
Patent Citations
Data collision method and device, storage medium and electronic equipment
CN111555880A
Secure data interaction method and interaction system based on key exchange
CN113114627A
Safe acquisition method and device for three-party intersection data
CN114172746A