Method and apparatus for proxy node election in secure multi-party computation

By using random number interaction and function computation in multiple rounds of election, the problem of unfair proxy node election when the number of data providers is large is solved, and the computational performance and fairness of secure multi-party computation are improved.

CN115622695BActive Publication Date: 2026-07-24ALIPAY (HANGZHOU) INFORMATION TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
ALIPAY (HANGZHOU) INFORMATION TECH CO LTD
Filing Date
2022-09-26
Publication Date
2026-07-24

AI Technical Summary

Technical Problem

In existing technologies, the problem of how to fairly elect proxy nodes to reduce communication between computing parties in secure multi-party computation and improve computing performance when there are a large number of data providers remains unsolved.

Method used

Through a multi-round election process, each round of election includes generating random numbers for encrypted data exchange, key exchange, and function computation, ensuring that each data provider has a fair chance to be elected as a proxy node. The proxy node is determined by using random number interaction and function computation.

Benefits of technology

This ensures fair and equal opportunities for elections for each data provider, improves computational performance, reduces the risk of collusive malicious behavior, and guarantees the fairness and security of the elections.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115622695B_ABST
    Figure CN115622695B_ABST
Patent Text Reader

Abstract

The embodiment of the specification provides a method and device for proxy node election in secure multi-party computation, the method comprising: any data provider performing multi-round election, each round of election comprising: in a first stage, generating a random number of the party, sending encrypted data of the random number to each of other data providers, and receiving encrypted data of random numbers of each of other parties from each of other data providers; after obtaining m pieces of encrypted data, performing a second stage, sending a key of the party to each of other data providers, and receiving keys of each of other parties from each of other data providers; respectively decrypting the encrypted data of the random numbers of each of other parties by using the keys of each of other parties to obtain the random numbers of each of other parties; performing a first function operation according to an agreement by using the random number of the party and the random numbers of each of other parties to obtain a first function value; and taking a data provider corresponding to the first function value as an elected proxy node in the round. The fairness of the election can be ensured.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This specification relates to one or more embodiments in the field of computers, and more particularly to a method and apparatus for proxy node election in secure multi-party computation. Background Technology

[0002] Secure multi-party computation (MPC), also known as secure multi-party computation, involves multiple parties collaboratively computing a function without disclosing their input data. The result is then made public to one or more of the parties. The input data of these parties is typically private and cannot be shared.

[0003] Currently, secure multi-party computation (MPC) operates in two modes: non-proxy mode and outsourcing mode. In non-proxy mode, the data providers are also the computational parties participating in the MPC. The number of data providers is the same as the number of computational parties. When the number of data providers is large, the number of computational parties participating in the MPC is high, leading to low computational performance due to communication between them. In outsourcing mode, when the number of data providers (m) is large, n proxy nodes can be elected from these m data providers. The non-proxy nodes delegate data to these n proxy nodes, which then act as the computational parties in the MPC. Since n is less than m, communication between the computational parties is reduced, which helps improve computational performance.

[0004] Current technologies do not provide a solution for how to fairly elect proxy nodes. Summary of the Invention

[0005] This specification describes one or more embodiments of a proxy node election method and apparatus in secure multi-party computation that can ensure the fairness of the election.

[0006] Firstly, a method for electing a proxy node in a secure multi-party computation is provided, wherein the secure multi-party computation involves m data providers, and the method is executed by any one of the m data providers. The method includes: performing multiple rounds of election, wherein each round of election includes:

[0007] In the first phase, the user generates a random number, sends its encrypted data to the other data providers, and receives encrypted data of the random numbers from the other data providers.

[0008] After obtaining m copies of encrypted data, the second phase is executed, in which the party sends its key to each data provider and receives the keys of the other parties from each of the other data providers.

[0009] By using the keys of the other parties to decrypt the encrypted data of the random numbers of the other parties, the random numbers of the other parties can be obtained;

[0010] Using our own random number and the random numbers from the other parties, perform the agreed-upon first function operation to obtain the first function value;

[0011] The data provider corresponding to the first function value will be selected as the proxy node in this round.

[0012] In one possible implementation, the agreed first function operation includes:

[0013] Using the random numbers from our side and the random numbers from the other side, perform a summation operation to obtain the first summation result;

[0014] The first function value is obtained by taking the modulo of the first summation result with m.

[0015] In one possible implementation, before selecting the data provider corresponding to the first function value as the proxy node elected in this round, the method further includes:

[0016] Receive the second function values ​​obtained from the first function operation by each of the other data providers;

[0017] It is determined that the first function value is the same as each of the second function values.

[0018] In one possible implementation, before selecting the data provider corresponding to the first function value as the proxy node elected in this round, the method further includes:

[0019] Send the random number set consisting of the random number of the party itself and the random numbers of the other parties obtained by decryption to the other data providers, and receive the random number sets of each party from the other data providers;

[0020] It was determined that all data providers held the same set of random numbers.

[0021] In one possible implementation, the method further includes:

[0022] If the number of proxy nodes elected in each round is less than the pre-set number n of proxy nodes to be elected, then the next round of election is executed; where n is less than m.

[0023] In one possible implementation, the method further includes:

[0024] If the proxy node elected in this round already exists in the proxy nodes elected in previous rounds, then the proxy node elected in this round will not be recorded, and the next round of election will be executed.

[0025] In one possible implementation, the method further includes, after performing multiple rounds of elections:

[0026] The node identifies itself as a proxy node and receives the first fragment of the data that it needs to participate in secure multi-party computation from the non-proxy nodes among the m data providers; the other fragments of this data are provided to the other proxy nodes.

[0027] Perform secure multi-party computation in conjunction with other proxy nodes.

[0028] In one possible implementation, the method further includes, after performing multiple rounds of elections:

[0029] Once it identifies itself as a non-proxy node, it splits the data that it needs to participate in secure multi-party computation into multiple shards; these shards are then provided to various proxy nodes, which jointly perform secure multi-party computation.

[0030] Secondly, a proxy node election device is provided for secure multi-party computation involving m data providers. The device is located at any of the m data providers and is used to perform multiple rounds of election, including the following units for performing each round of election:

[0031] The first interaction unit is used in the first stage to generate its own random number, send its encrypted data to other data providers, and receive encrypted data of random numbers from other data providers.

[0032] The second interaction unit is used to execute the second stage after the first interaction unit obtains m pieces of encrypted data. In the second stage, the unit sends its own key to each data provider and receives the keys of other parties from each other data provider.

[0033] The decryption unit is used to decrypt the encrypted data of the random numbers of the other parties using the keys obtained from the second interaction unit, so as to obtain the random numbers of the other parties.

[0034] The operation unit is used to perform a first function operation using the random number obtained by the first interaction unit and the random numbers obtained by the other parties by the decryption unit, to obtain a first function value;

[0035] The determining unit is used to select the data provider corresponding to the first function value obtained by the operation unit as the proxy node elected in this round.

[0036] Thirdly, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed in a computer, causes the computer to perform the method of the first aspect.

[0037] Fourthly, a computing device is provided, including a memory and a processor, wherein the memory stores executable code, and the processor executes the executable code to implement the method of the first aspect.

[0038] The secure multi-party computation method and apparatus provided in the embodiments of this specification involve m data providers. The method is executed by any one of the m data providers and includes: performing multiple rounds of election, wherein each round of election includes: firstly, in a first stage, generating a random number of one's own party, sending its encrypted data to each of the other data providers, and receiving encrypted data of the random numbers of the other parties from each of the other data providers; then, after obtaining m copies of encrypted data, performing a second stage, in which one's own party's key is sent to each of the other data providers, and receiving the keys of the other parties from each of the other data providers; then, using the keys of the other parties, decrypting the encrypted data of the random numbers of the other parties to obtain the random numbers of the other parties; then, using the random numbers of one's own party and the random numbers of the other parties, performing a first function operation according to an agreement to obtain a first function value; finally, using the first function value as the data provider corresponding to the first function value as the proxy node elected in this round. As can be seen from the above, in the embodiments of this specification, in the first stage of each round of election, the parties exchange encrypted data of their random numbers, preventing each party from modifying its own random number based on the random numbers of other parties, thus affecting the election results. After each party obtains m copies of encrypted data, the second stage is executed, revealing the random numbers of each party. It can be understood that in the second stage, the random numbers of each party are determined and cannot be modified. Subsequently, the elected proxy node can be determined based on the random numbers of each party according to the agreed function. This election method ensures that each data provider has a fair opportunity to be elected as a proxy node and participate in secure multi-party computation as a computing party, thus ensuring the fairness of the election. Attached Figure Description

[0039] To more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings used in the following description of the embodiments will be briefly introduced. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0040] Figure 1 This is a schematic diagram illustrating an implementation scenario of one embodiment disclosed in this specification;

[0041] Figure 2 This diagram illustrates a flowchart of a proxy node election method in secure multi-party computation according to one embodiment.

[0042] Figure 3A schematic block diagram of an agent node election device in secure multi-party computation according to an embodiment is shown. Detailed implementation manners

[0043] The solution provided in this specification will be described below with reference to the accompanying drawings.

[0044] Figure 1 It is a schematic diagram of an implementation scenario of an embodiment disclosed in this specification. This implementation scenario relates to the election of agent nodes in secure multi-party computation. Referring to Figure 1 , assuming that secure multi-party computation involves a total of 6 data providers, and depends on the data respectively owned by each data provider to complete secure multi-party computation. Each circle in the figure represents a data provider, numbered as node 0, 1,..., 5 respectively. If secure multi-party computation is executed in a non-agent mode, the data providers are the computing parties. During the secure multi-party computation process, a large amount of interaction is required between the data providers, resulting in low computing performance. In the embodiment of this specification, secure multi-party computation is executed in an agent mode. During the secure multi-party computation process, the elected agent nodes are used as the computing parties. Since the number of computing parties is less than the number of data providers, the interaction between the computing parties can be reduced compared to the non-agent mode, thus improving the computing performance.

[0045] Taking Figure 1 as an example, assuming that the data providers do not trust each other, 3 data providers are elected from 6 data providers as agent nodes, and the remaining data providers are non-agent nodes. For example, Figure 1 nodes 0, 2, and 3 in are the elected agent nodes, and nodes 1, 4, and 5 are non-agent nodes. After the agent nodes are elected, the non-agent nodes will proxy the data they own to the agent nodes. Subsequently, the agent nodes will be used as the computing parties for secure multi-party computation to perform proxy computing. That is to say, secure multi-party computation is executed in an agent mode.

[0046] In the embodiment of this specification, since the data owned by the non-agent nodes may be private data and cannot be directly provided to the agent nodes, the non-agent nodes can process their private data before providing it to the agent nodes. For example, the above processing can be homomorphic encryption, or the private data is split into several shards, and the shards of the private data are provided to the agent nodes.

[0047] The election problem in the embodiment of this specification can be abstracted as follows: For m data providers, denoted as Pi {i = 0,..., m - 1}, n agent nodes need to be elected, where n < m, and the agent nodes are used as the computing parties for secure multi-party computation. Each data provider has an equal opportunity to be selected as an agent node.

[0048] It should be noted that the data provider or computing provider mentioned in the embodiments of this specification may physically consist of a module, a computing device, or a computing cluster.

[0049] Figure 2 This diagram illustrates a flowchart of a proxy node election method in a secure multi-party computation according to one embodiment. The secure multi-party computation involves m data providers, and the method is executed by any one of the m data providers. This method can be based on... Figure 1 The implementation scenario is shown. For example... Figure 2 As shown, the proxy node election method in secure multi-party computation in this embodiment includes performing multiple rounds of election, each round of election including the following steps: Step 21, in the first stage, generate a random number of the party, send its encrypted data to each of the other data providers, and receive encrypted data of the random numbers of the other parties from each of the other data providers; Step 22, after obtaining m copies of encrypted data, execute the second stage, in which the party's key is sent to each of the data providers, and the keys of the other parties are received from each of the other data providers; Step 23, use the keys of the other parties to decrypt the encrypted data of the random numbers of the other parties respectively, to obtain the random numbers of the other parties; Step 24, use the random numbers of the party and the random numbers of the other parties to perform a first function operation according to an agreement, to obtain a first function value; Step 25, select the data provider corresponding to the first function value as the proxy node elected in this round. The specific execution method of each of the above steps is described below.

[0050] First, in step 21, the first stage, a provider generates its own random number, sends its encrypted data to the other data providers, and receives encrypted data of random numbers from the other data providers. It's understood that in this first stage, each data provider generates random numbers and exchanges encrypted data of these random numbers. However, the data provider receives encrypted data of the random numbers from the other providers, not the random numbers themselves. Therefore, it cannot modify its own random number based on the random numbers from the other providers, and thus cannot affect the subsequent election results of the proxy nodes obtained based on the random numbers from each provider, ensuring high fairness.

[0051] In one example, each data provider Pi locally generates a temporary private key STi and a random number Ri. Each data provider Pi encrypts Ri using STi, obtaining... <ri>Each data provider Pi will <ri>It is sent to other data providers.

[0052] Understandably, the aforementioned temporary private key Ski can also be called the key. In the first phase of each election round, the temporary private key Ski is known only to the data provider Pi who generated it, and not to other data providers. The temporary private key Ski must be regenerated in the first phase of each election round. That is, for a data provider, the temporary private key generated in the first phase of different election rounds is usually different.

[0053] Taking data provider P0 as an example, it locally generates a temporary private key SK0 and a random number R0, and encrypts R0 with SK0 to obtain... <r0>,Will <r0>Send data to data providers P1, ..., Pm-1, and receive data from data providers P1, ..., Pm-1 respectively. <r1> 、…、 <rm-1>.

[0054] Then, in step 22, after obtaining m copies of encrypted data, the second stage is executed. In this second stage, the party sends its own key to each data provider and receives keys from the other data providers. It is understood that in the aforementioned first stage, each party uses its own key to encrypt its own random number to obtain its own encrypted data.

[0055] In the embodiments described in this specification, the second stage can be executed after confirming that each data provider has obtained m copies of encrypted data; or, the second stage can be executed immediately after confirming that the party has obtained m copies of encrypted data.

[0056] In one example, each data provider Pi sends its local temporary private key STi to the other data providers.

[0057] Taking data provider P0 as an example, it sends the local temporary private key SK0 to data providers P1, ..., Pm-1, and receives SK1, ..., SKm-1 from data providers P1, ..., Pm-1 respectively.

[0058] Next, in step 23, the encrypted random numbers from each of the other parties are decrypted using their keys to obtain their respective random numbers. It is understandable that in the first stage, encrypted random numbers from the other parties were received, and in the second stage, their keys were received, thus enabling the aforementioned decryption.

[0059] In one example, each data provider Pi decrypts the other party's SKI using the SKI it obtains from the other party. <ri>, thus obtaining Ri from the other party.

[0060] Taking data provider P0 as an example, in the first stage, it obtained data from data providers P1, ..., Pm-1 respectively. <r1> 、…、 <rm-1>In the second stage, it obtained SK1, ..., SKm-1 from data providers P1, ..., Pm-1 respectively, and therefore could use SK1 to decrypt. <r1>R1 is obtained, ... and decryption is performed using SKm-1. <rm-1>We get Rm-1.

[0061] In step 24, using the random numbers generated by this party and those generated by the other parties, a pre-agreed first function operation is performed to obtain the first function value. It is understood that, theoretically, the first function value calculated by each party should be the same.

[0062] In one example, the first function operation according to the agreement includes:

[0063] Using the random numbers from our side and the random numbers from the other side, perform a summation operation to obtain the first summation result;

[0064] The first function value is obtained by taking the modulo of the first summation result with m.

[0065] In this example, the number of possible values ​​for the first function value is m. Since it is obtained based on random number calculation, the probability of it taking any value among 0, ..., m-1 is the same, which facilitates the fairness of electing agent nodes.

[0066] For example, if m is 6, and a data provider has its own random number and the random numbers from other parties are 1, 2, 3, 1, 2, 3 respectively, summing them together yields a first sum of 12. Taking 12 modulo 6 gives a first function value of 0. It's important to understand that the above random numbers are just examples; in reality, they can be any value, such as 100, 1000, 99, etc.

[0067] Finally, in step 25, the data provider corresponding to the first function value is selected as the proxy node in this round. It can be understood that there is a one-to-one mapping between the first function value and the data provider; a data provider can be uniquely identified based on the first function value. The value of the first function value is not limited to 0, ..., m-1, as long as it ensures that the first function value can be mapped to m data providers with equal probability.

[0068] In one example, before selecting the data provider corresponding to the first function value as the proxy node elected in this round, the method further includes:

[0069] Receive the second function values ​​obtained from the first function operation by each of the other data providers;

[0070] It is determined that the first function value is the same as each of the second function values.

[0071] It is understandable that each data provider will publish the function value obtained from the first function operation. At this time, all data providers should have the same function value, so that the data provider corresponding to the function value is elected as the proxy node in this round. If the function values ​​published by each data provider are not equal, then there is a data provider that does not comply with the protocol, and this round of election fails.

[0072] In one example, before selecting the data provider corresponding to the first function value as the proxy node elected in this round, the method further includes:

[0073] Send the random number set consisting of the random number of the party itself and the random numbers of the other parties obtained by decryption to the other data providers, and receive the random number sets of each party from the other data providers;

[0074] It was determined that all data providers held the same set of random numbers.

[0075] It is understandable that each data provider publishes its set of random numbers. At this point, all data providers should have the same set of random numbers. If the random number sets published by each data provider are different, then there is a possibility that the data provider is not complying with the agreement. By comparing the random number sets of each party, it can be verified which data provider has not followed the agreement.

[0076] In one example, the method further includes:

[0077] If the number of proxy nodes elected in each round is less than the pre-set number n of proxy nodes to be elected, then the next round of election is executed; where n is less than m.

[0078] It is understandable that each election round can only elect one proxy node, and different rounds of election may result in duplicate election results. For example, in both the first and third rounds of election, the data provider corresponding to node 1 may be elected as a proxy node. In this embodiment, to address the possibility of duplicate election results, the number of election rounds is not limited. Instead, after each round, it is determined whether the number of proxy nodes elected in the current round is less than the pre-set number n of proxy nodes to be elected. If the determination result is yes, the next round of election is executed; otherwise, it means that n proxy nodes have been elected, and the multi-round election can be terminated.

[0079] In one example, the method further includes:

[0080] If the proxy node elected in this round already exists in the proxy nodes elected in previous rounds, then the proxy node elected in this round will not be recorded, and the next round of election will be executed.

[0081] Understandably, after each round of elections, the proxy nodes elected in this round can be recorded. If duplicate election results occur, it is not necessary to record them again, and the next round of elections needs to be executed.

[0082] In one example, the method further includes, after performing multiple rounds of elections:

[0083] The node identifies itself as a proxy node and receives the first fragment of the data that it needs to participate in secure multi-party computation from the non-proxy nodes among the m data providers; the other fragments of this data are provided to the other proxy nodes.

[0084] Perform secure multi-party computation in conjunction with other proxy nodes.

[0085] It is understandable that proxy nodes obtain data shards from non-proxy nodes and perform secure multi-party computations in conjunction with other proxy nodes. This approach is beneficial for protecting the privacy data of non-proxy nodes.

[0086] In one example, the method further includes, after performing multiple rounds of elections:

[0087] Once it identifies itself as a non-proxy node, it splits the data that it needs to participate in secure multi-party computation into multiple shards; these shards are then provided to various proxy nodes, which jointly perform secure multi-party computation.

[0088] Understandably, non-proxy nodes split their data into shards and provide them to proxy nodes. This approach helps protect the privacy of non-proxy nodes. There are several ways to split the data into shards. For example, the number of shards may be the same as the number of proxy nodes, with each proxy node receiving one shard; or the number of shards may be less than the number of proxy nodes, meaning only some proxy nodes receive one shard.

[0089] The secure multi-party computation method provided in the embodiments of this specification involves m data providers. The method is executed by any one of the m data providers and includes: performing multiple rounds of election, wherein each round of election includes: firstly, in a first stage, generating a random number of one's own party, sending its encrypted data to each of the other data providers, and receiving encrypted data of the random numbers of the other parties from each of the other data providers; then, after obtaining m copies of encrypted data, performing a second stage, in which one's own party's key is sent to each of the other data providers, and receiving the keys of the other parties from each of the other data providers; next, using the keys of the other parties to decrypt the encrypted data of the random numbers of the other parties respectively, obtaining the random numbers of the other parties; then, using the random numbers of one's own party and the random numbers of the other parties, performing a first function operation according to an agreement, obtaining a first function value; finally, the data provider corresponding to the first function value is selected as the proxy node in this round of election. As can be seen from the above, in the embodiments of this specification, in the first stage of each round of election, the parties exchange encrypted data of their random numbers, preventing each party from modifying its own random number based on the random numbers of other parties, thus affecting the election results. After each party obtains m copies of encrypted data, the second stage is executed, revealing the random numbers of each party. It can be understood that in the second stage, the random numbers of each party are determined and cannot be modified. Subsequently, the elected proxy node can be determined based on the random numbers of each party according to the agreed function. This election method ensures that each data provider has a fair opportunity to be elected as a proxy node and participate in secure multi-party computation as a computing party, thus ensuring the fairness of the election.

[0090] The embodiments described in this specification, compared to the non-proxy mode where all data providers participate in the computation, retain all the advantages of the proxy mode, resulting in fewer computational parties and higher efficiency. Furthermore, compared to a fixed-selection proxy node, the embodiments described in this specification ensure that each data provider has a fair chance to be elected as a proxy node, thereby reducing the risk of coordinated malicious activity.

[0091] According to another embodiment, a proxy node election device in a secure multi-party computation is also provided, wherein the secure multi-party computation involves m data providers, and the device is disposed at any of the m data providers, the device being used to perform the method provided in the embodiments of this specification. Figure 3 A schematic block diagram of a proxy node election apparatus in secure multi-party computation according to one embodiment is shown. Figure 3 As shown, the device 300 is used to perform multiple rounds of elections, including the following units for performing each round of elections:

[0092] The first interaction unit 31 is used in the first stage to generate its own random number, send its encrypted data to other data providers, and receive encrypted data of random numbers from other data providers.

[0093] The second interaction unit 32 is used to perform a second stage after the first interaction unit 31 obtains m encrypted data. In the second stage, the user sends its own key to each data provider and receives the keys of other parties from each other data provider.

[0094] The decryption unit 33 is used to decrypt the encrypted data of the random numbers of the other parties using the keys of the other parties obtained by the second interaction unit 32, so as to obtain the random numbers of the other parties.

[0095] The operation unit 34 is used to perform a first function operation using the random number obtained by the first interaction unit 31 and the random numbers obtained by the other parties by the decryption unit 33, to obtain a first function value.

[0096] The determining unit 35 is used to select the data provider corresponding to the first function value obtained by the operation unit 34 as the proxy node elected in this round.

[0097] Optionally, as an embodiment, the arithmetic unit 34 includes:

[0098] The summation subunit is used to perform a summation operation using the random numbers of its own side and the random numbers of the other sides to obtain the first summation result;

[0099] The modulo subunit is used to take the first summation result obtained from the summation subunit modulo m to obtain the first function value.

[0100] Optionally, as an embodiment, the apparatus further includes:

[0101] The receiving unit is configured to receive, before the determining unit 35 designates the data provider corresponding to the first function value as the proxy node elected in this round, the second function value obtained by each party performing the first function operation from the other data providers;

[0102] The first consensus unit is used to determine that the first function value is the same as each of the second function values ​​received by the receiving unit.

[0103] Optionally, as an embodiment, the apparatus further includes:

[0104] The interaction unit is used to send a set of random numbers consisting of its own random number and the decrypted random numbers of the other parties to each other data provider before the determining unit 35 selects the data provider corresponding to the first function value as the proxy node elected in this round, and to receive the random number sets of each party from each other data provider.

[0105] The second consensus unit is used to determine that all data providers hold the same set of random numbers.

[0106] Optionally, as an embodiment, the apparatus further includes:

[0107] An iterative unit is used to execute the next round of election if the number of proxy nodes elected in the current round is less than the pre-set number of proxy nodes to be elected, n; where n is less than m.

[0108] Optionally, as an embodiment, the apparatus further includes:

[0109] The statistics unit is used to not record the agent node elected in this round if the agent node already exists in the agent nodes elected in previous rounds, and to execute the next round of election.

[0110] Optionally, as an embodiment, the apparatus further includes:

[0111] The receiving unit is configured to determine itself as a proxy node after performing multiple rounds of elections, and receive the first fragment of the data that it needs to participate in secure multi-party computation from the non-proxy nodes among the m data providers; the other fragments of the data are provided to other proxy nodes.

[0112] The joint computation unit is used to perform secure multi-party computation in conjunction with other agent nodes.

[0113] Optionally, as an embodiment, the apparatus further includes:

[0114] The sending unit is used to determine itself as a non-proxy node after performing multiple rounds of elections, and to split the data that it needs to participate in secure multi-party computation into multiple fragments; these multiple fragments are provided to each proxy node, and the proxy nodes jointly perform secure multi-party computation.

[0115] The apparatus provided in the embodiments of this specification enables secure multi-party computation involving m data providers. The apparatus is installed at any of the m data providers and is used to perform multiple rounds of election. In each round of election, firstly, in the first stage, the first interaction unit 31 generates its own random number, sends its encrypted data to each of the other data providers, and receives encrypted data of the random numbers from each of the other data providers. Then, after obtaining m encrypted data, the second interaction unit 32 executes the second stage, in which it sends its own key to each of the data providers and receives the keys from each of the other data providers. Next, the decryption unit 33 uses the keys of each of the other parties to decrypt the encrypted data of the random numbers of each of the other parties, obtaining the random numbers of each of the other parties. Then, the calculation unit 34 uses its own random number and the random numbers of the other parties to perform a first function operation according to an agreement, obtaining a first function value. Finally, the determination unit 35 selects the data provider corresponding to the first function value as the proxy node elected in this round. As can be seen from the above, in the embodiments of this specification, in the first stage of each round of election, the parties exchange encrypted data of their random numbers, preventing each party from modifying its own random number based on the random numbers of other parties, thus affecting the election results. After each party obtains m copies of encrypted data, the second stage is executed, revealing the random numbers of each party. It can be understood that in the second stage, the random numbers of each party are determined and cannot be modified. Subsequently, the elected proxy node can be determined based on the random numbers of each party according to the agreed function. This election method ensures that each data provider has a fair opportunity to be elected as a proxy node and participate in secure multi-party computation as a computing party, thus ensuring the fairness of the election.

[0116] According to another embodiment, a computer-readable storage medium is also provided, on which a computer program is stored, which, when executed in a computer, causes the computer to perform a combination Figure 2 The method described.

[0117] According to another embodiment, a computing device is also provided, including a memory and a processor, wherein executable code is stored in the memory, and when the processor executes the executable code, it implements a combination... Figure 2 The method described.

[0118] Those skilled in the art will recognize that, in one or more of the examples above, the functions described in this invention can be implemented using hardware, software, firmware, or any combination thereof. When implemented in software, these functions can be stored in a computer-readable medium or transmitted as one or more instructions or code on a computer-readable medium.

[0119] The specific embodiments described above further illustrate the purpose, technical solution, and beneficial effects of the present invention. It should be understood that the above description is only a specific embodiment of the present invention and is not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc., made on the basis of the technical solution of the present invention should be included within the scope of protection of the present invention. < / r1> < / ri> < / r1> < / ri> < / ri>

Claims

1. A proxy node election method in secure multi-party computation, wherein the secure multi-party computation involves m data providers, and the method is executed by any one of the m data providers, the method comprising: Multiple rounds of elections are conducted, each round of which includes: In the first stage, the party generates its own random number, encrypts the random number with its own key to obtain encrypted data, sends it to other data providers, and receives encrypted data from other data providers by encrypting the random numbers of other parties with their own keys. After obtaining m copies of encrypted data, the second phase is executed, in which the party sends its key to each data provider and receives the keys of the other parties from each of the other data providers. By using the keys of the other parties to decrypt the encrypted data of the random numbers of the other parties, the random numbers of the other parties can be obtained; Using the random numbers of this party and the random numbers of other parties, a first function operation is performed according to an agreement to obtain a first function value. The first function value can be mapped to m data providers with equal probability. The data provider corresponding to the first function value will be selected as the proxy node in this round.

2. The method as described in claim 1, wherein, The first function operation as agreed upon includes: Using the random numbers from our side and the random numbers from the other side, perform a summation operation to obtain the first summation result; The first function value is obtained by taking the modulo of the first summation result with m.

3. The method as described in claim 1, wherein, Before designating the data provider corresponding to the first function value as the proxy node elected in this round, the method further includes: Receive the second function values ​​obtained from the first function operation by each of the other data providers; It is determined that the first function value is the same as each of the second function values.

4. The method of claim 1, wherein, Before designating the data provider corresponding to the first function value as the proxy node elected in this round, the method further includes: Send the random number set consisting of the random number of the party itself and the random numbers of the other parties obtained by decryption to the other data providers, and receive the random number sets of each party from the other data providers; It was determined that all data providers held the same set of random numbers.

5. The method of claim 1, wherein, The method further includes: If the number of proxy nodes elected in each round is less than the pre-set number n of proxy nodes to be elected, then the next round of election is executed; where n is less than m.

6. The method of claim 1, wherein, The method further includes: If the proxy node elected in this round already exists in the proxy nodes elected in previous rounds, then the proxy node elected in this round will not be recorded, and the next round of election will be executed.

7. The method of claim 1, wherein, The method also includes, after performing multiple rounds of elections: The node identifies itself as a proxy node and receives the first fragment of the data that it needs to participate in secure multi-party computation from the non-proxy nodes among the m data providers; the other fragments of this data are provided to the other proxy nodes. Perform secure multi-party computation in conjunction with other proxy nodes.

8. The method of claim 1, wherein, The method also includes, after performing multiple rounds of elections: Once it identifies itself as a non-proxy node, it splits the data that it needs to participate in secure multi-party computation into multiple shards; these shards are then provided to various proxy nodes, which jointly perform secure multi-party computation.

9. A proxy node election device in a secure multi-party computation, wherein the secure multi-party computation involves m data providers, the device is located at any of the m data providers, and the device is used to perform multiple rounds of election, including the following units for performing each round of election: The first interaction unit is used in the first stage to generate its own random number, encrypt the random number obtained by encrypting it with its own key, send the encrypted data to other data providers, and receive the encrypted data obtained by encrypting the random numbers of other parties with their keys from other data providers. The second interaction unit is used to execute the second stage after the first interaction unit obtains m pieces of encrypted data. In the second stage, the unit sends its own key to each data provider and receives the keys of other parties from each other data provider. The decryption unit is used to decrypt the encrypted data of the random numbers of the other parties using the keys obtained from the second interaction unit, so as to obtain the random numbers of the other parties. The operation unit is used to perform a first function operation using the random number obtained by the first interaction unit and the random numbers obtained by the other parties by the decryption unit, to obtain a first function value, which can be mapped to m data providers with equal probability. The determining unit is used to select the data provider corresponding to the first function value obtained by the operation unit as the proxy node elected in this round.

10. A computer-readable storage medium having a computer program stored thereon, which, when executed in a computer, causes the computer to perform the method of any one of claims 1-8.

11. A computing device comprising a memory and a processor, wherein the memory stores executable code, and the processor, when executing the executable code, implements the method of any one of claims 1-8.

Citation Information

Patent Citations

  • CN113111373A