Secure multi-party computation method and device

The MPC agent replaces the computing participants to perform secure multi-party calculations, which solves the problem of trusted third parties distributing random numbers and multiple interactions in the existing technology, and achieves more efficient, flexible and secure multi-party calculations.

WO2025130307A1PCT designated stage expired Publication Date: 2025-06-26HUAWEI TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/125768
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-21
Filing Date
2024-10-18
Publication Date
2025-06-26

AI Technical Summary

Technical Problem

The existing secure multi-party computing solution requires trusted third parties to distribute random numbers, and each calculation requires multiple interactions, resulting in large consumption of communication resources, long transaction time and low computing efficiency.

Method used

The MPC agent replaces the computing participants to perform secure multi-party calculations. The MPC agent module can prove its innocence and meets the security assumptions of cryptography MPC. The computing resources of the MPC agent can be dynamically configured to achieve more flexible secure multi-party calculations.

Benefits of technology

It improves the efficiency of secure multi-party computing, reduces the consumption of communication resources, shortens transaction time, and improves the flexibility and security of computing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024125768_26062025_PF_FP_ABST
    Figure CN2024125768_26062025_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to the field of computation, and provides a secure multi-party computation (MPC) method and device, for use in replacing computation participants with MPC agents to carry out secure MPC, thereby implementing secure MPC more flexibly, and improving the efficiency of secure MPC. The method comprises: a first MPC agent receives a first password from a first CVM, and the first MPC agent derives a first Seed on the basis of the password; the first MPC agent generates a first random number sequence on the basis of the first Seed; the first MPC agent receives first user data from the first CVM and second user data from a second CVM; the first MPC agent performs secure MPC with a second MPC agent on the basis of the first random number sequence, the first user data, the second user data and a computation task expression, wherein a second random number sequence of the second MPC agent is the same as the first random number sequence, a second Seed of the second MPC agent is the same as the first Seed, and a second password received by the second MPC agent from the second CVM is the same as the first password.
Need to check novelty before this filing date? Find Prior Art

Description

A secure multi-party computing method and device

[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on December 21, 2023, with application number 202311775456.0 and invention name “A secure multi-party computing method and device”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The embodiments of the present application relate to the field of computing, and in particular to a secure multi-party computing method and apparatus. Background Art

[0003] In existing secure multi-party computation schemes, the secure multi-party computation (MPC) protocol can be directly deployed in a trusted execution environment (TEE) to prevent the MPC execution program from being maliciously tampered with.

[0004] The trusted third party and the two transaction parties exchanging data are all in the network software guard extensions (SGX) environment. The random number splitting module of the trusted third party distributes random numbers to both transaction parties and loads the computing programs related to secure multi-party computing into the trusted execution environment; based on the trusted execution environment, the integrity of each other's computing programs related to secure multi-party computing is verified with other participants; if the integrity verification of the computing program is successful, the computing program is executed in the trusted execution environment and the computing results are exchanged with other participants to complete the secure multi-party computing.

[0005] Existing secure multi-party computing schemes require a trusted third party to distribute random numbers, and each calculation requires multiple interactions, which consumes a lot of communication resources, takes a long time for transactions, and has low computing efficiency.

[0006] Summary of the Invention

[0007] The embodiments of the present application provide a secure multi-party computing method and device, which can perform secure multi-party computing by replacing computing participants with an MPC agent, thereby realizing secure multi-party computing more flexibly and improving the efficiency of secure multi-party computing.

[0008] In a first aspect, an embodiment of the present application provides a method for signal synchronization, the method comprising: a first secure multi-party computing (MPC) agent receives a first password from a first user cloud server (CVM), and the first MPC agent derives a first Seed based on the password; the first MPC agent generates a first random number sequence based on the first Seed; the first MPC agent receives first user data from the first CVM and second user data from the second CVM; the first MPC agent performs secure multi-party computing with the second MPC agent based on the first random number sequence, the first user data, the second user data, and the computational task expression, the second random number sequence of the second MPC agent is the same as the first random number sequence, the second Seed of the second MPC agent is the same as the first Seed, and the second password from the second CVM received by the second MPC agent is the same as the first password.

[0009] In this possible implementation, secure multi-party computation is performed using an MPC agent on behalf of the computational participants. The MPC agent module can self-certify, further satisfying the security assumptions of cryptographic MPC. Furthermore, the MPC agent's computing resources can be configured based on the needs of the computational participants, and computing resources can be dynamically configured, allowing for more flexible secure multi-party computation. Furthermore, through a password-based key distribution function, seed synchronization does not require interaction between MPC agents. In scenarios with multiple computational participants, MPC agent synchronization can be achieved more efficiently, improving the efficiency of secure multi-party computation.

[0010] In one possible implementation, before the first MPC agent receives the first password from the first user cloud server CVM, the method also includes: the first MPC agent receives a verification request from the first CVM, the verification request indicating verification of whether the MPC protocol program of the first MPC agent has been tampered with; the first MPC agent sends verification information to the first CVM, the verification information indicating that the MPC protocol program of the first MPC agent has not been tampered with.

[0011] In this possible implementation, by verifying the MPC agent, it is determined that the MPC protocol program of the MPC agent has not been tampered with.

[0012] In a second aspect, an embodiment of the present application provides a method for signal synchronization, the method comprising: a first user cloud server CVM sends a first password to a first secure multi-party computing MPC agent, the first password being used for the first MPC agent to perform secure multi-party computing with a second MPC agent; the first CVM sends first user data to the first MPC agent, and sends third user data to the second MPC agent, the first user data and the third user data being used for the first MPC agent and the second MPC agent to perform secure multi-party computing.

[0013] In this possible implementation, secure multi-party computation is performed using an MPC agent on behalf of the computational participants. The MPC agent module can self-certify, further satisfying the security assumptions of cryptographic MPC. Furthermore, the MPC agent's computing resources can be configured based on the needs of the computational participants, and computing resources can be dynamically configured, allowing for more flexible secure multi-party computation. Furthermore, through a password-based key distribution function, seed synchronization does not require interaction between MPC agents. This allows for more efficient synchronization between MPC agents in scenarios with multiple computational participants, improving the efficiency of secure multi-party computation.

[0014] In a possible implementation, before the first CVM sends the first command to the first MPC agent, the method further includes: the first CVM configuring computing resources of the first MPC agent; and the first CVM launching the first MPC agent.

[0015] In one possible implementation, before the first CVM sends the first password to the first MPC agent, after the first CVM pulls up the first MPC agent, the method also includes: the first CVM sends a verification request to the first MPC agent, the verification request indicating verification of whether the MPC protocol program of the first MPC agent has been tampered with; the first CVM receives verification information from the first MPC agent, the verification information indicating that the MPC protocol program of the first MPC agent has not been tampered with.

[0016] In this possible implementation, by verifying the MPC agent, it is determined that the MPC protocol program of the MPC agent has not been tampered with.

[0017] In a third aspect, an embodiment of the present application provides a secure multi-party computing MPC agent device, the MPC agent device is used to implement any method of the first aspect, the MPC agent device includes: a seed derivation module, a random number generation module, and an MPC execution module, wherein: the seed derivation module is used to derive a first Seed based on a first password, and the first Seed comes from a first user cloud server CVM; the random number generation module is used to generate a first random number sequence based on the first Seed; the MPC execution module is used to perform secure multi-party computing with a second MPC agent based on the first random number sequence, first user data, second user data and a computing task expression, the second random number sequence of the second MPC agent is the same as the first random number sequence, the second Seed of the second MPC agent is the same as the first Seed, and the second password received by the second MPC agent from the second CVM is the same as the first password.

[0018] In one possible implementation, the MPC agent device also includes a transceiver module, which is used to: receive a verification request from the first CVM, the verification request indicating whether the MPC protocol program of the first MPC agent has been tampered with; and send verification information to the first CVM, the verification information indicating that the MPC protocol program of the first MPC agent has not been tampered with.

[0019] In a fourth aspect, an embodiment of the present application provides a user cloud server CVM, the CVM including a transceiver module and a user data output module, wherein: the transceiver module is used to send a first password to a first secure multi-party computing MPC agent, and the first password is used for the first MPC agent and the second MPC agent to perform secure multi-party computing; the user data output module is used to send first user data to the first MPC agent and send third user data to the second MPC agent, and the first user data and the third user data are used for the first MPC agent and the second MPC agent to perform secure multi-party computing.

[0020] In a possible implementation, the transceiver module is further configured to: configure computing resources of the first MPC agent; and start the first MPC agent.

[0021] In one possible implementation, the transceiver module is further configured to: send a verification request to the first MPC agent, the verification request indicating verification of whether the MPC protocol program of the first MPC agent has been tampered with; and receive verification information from the first MPC agent, the verification information indicating that the MPC protocol program of the first MPC agent has not been tampered with.

[0022] In a fifth aspect, an embodiment of the present application provides a secure multi-party computing MPC agent device, the MPC agent device including: a first receiving module for receiving a first password from a first user cloud server CVM, a derivation module for deriving a first Seed based on the password; a generation module for generating a first random number sequence based on the first Seed; a second receiving module for receiving first user data from the first CVM and second user data from the second CVM; a computing module for performing secure multi-party computing with a second MPC agent based on the first random number sequence, the first user data, the second user data and the computing task expression, the second random number sequence of the second MPC agent is the same as the first random number sequence, the second Seed of the second MPC agent is the same as the first Seed, and the second password from the second CVM received by the second MPC agent is the same as the first password.

[0023] In one possible implementation, the MPC agent device also includes: a third receiving module, used to receive a verification request from the first CVM, the verification request indicating whether the MPC protocol program of the first MPC agent has been tampered with; and a sending module, used to send verification information to the first CVM, the verification information indicating that the MPC protocol program of the first MPC agent has not been tampered with.

[0024] In the sixth aspect, an embodiment of the present application provides a user cloud server, and the user cloud server CVM includes: a first sending module, used to send a first password to a first secure multi-party computing MPC agent, and the first password is used for the first MPC agent and the second MPC agent to perform secure multi-party computing; a second sending module, used to send first user data to the first MPC agent, and to send third user data to the second MPC agent, and the first user data and the third user data are used for the first MPC agent and the second MPC agent to perform secure multi-party computing.

[0025] In a possible implementation, the CVM further includes: a configuration module, configured to configure computing resources of the first MPC agent; and a startup module, configured to startup the first MPC agent.

[0026] In one possible implementation, the CVM further includes: a third sending module, configured to send a verification request to the first MPC agent, the verification request indicating verification of whether the MPC protocol program of the first MPC agent has been tampered with; and a receiving module, configured to receive verification information from the first MPC agent, the verification information indicating that the MPC protocol program of the first MPC agent has not been tampered with.

[0027] In a seventh aspect, embodiments of the present application provide a secure multi-party computing (MPC) agent device, comprising: a processor and a memory. The processor is coupled to the memory; the memory is configured to store computer instructions, which are loaded and executed by the processor to cause the MPC agent device to implement any of the methods provided in the first aspect.

[0028] In an eighth aspect, an embodiment of the present application provides a user cloud server, comprising: a processor and a memory. The processor is coupled to the memory; the memory is configured to store computer instructions, which are loaded and executed by the processor to enable the user cloud server to implement any one of the methods provided in the second aspect.

[0029] In the ninth aspect, an embodiment of the present application provides a chip comprising: a processor and an interface circuit; the interface circuit is used to receive code instructions and transmit them to the processor; and the processor is used to run the code instructions to execute any one of the methods provided in the first aspect.

[0030] In the tenth aspect, an embodiment of the present application provides a chip, which includes: a processor and an interface circuit; the interface circuit is used to receive code instructions and transmit them to the processor; the processor is used to run the code instructions to execute any one of the methods provided in the second aspect.

[0031] In the eleventh aspect, an embodiment of the present application provides a computer-readable storage medium, which stores at least one computer program instruction, and the computer program instruction is loaded and executed by a processor to implement any one of the methods provided in the first aspect above.

[0032] In the twelfth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores at least one computer program instruction, and the computer program instruction is loaded and executed by a processor to implement any one of the methods provided in the second aspect above.

[0033] In a thirteenth aspect, an embodiment of the present application provides a computer program product, comprising computer execution instructions, which, when the computer execution instructions are run on a computer, enable the computer to execute any one of the methods provided in the first aspect.

[0034] In a fourteenth aspect, an embodiment of the present application provides a computer program product, comprising computer execution instructions, which, when the computer execution instructions are run on a computer, enable the computer to execute any one of the methods provided in the second aspect.

[0035] The technical effects brought about by any implementation method in the third aspect to the fourteenth aspect can be referred to the technical effects brought about by the corresponding implementation method in the first aspect or the second aspect, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0036] FIG1 is a schematic diagram of a scenario of a secure multi-party computing method;

[0037] FIG2 is a schematic diagram of the architecture of a secure multi-party computing method provided in an embodiment of the present application;

[0038] FIG3 is a flow chart of a secure multi-party computing method provided in an embodiment of the present application;

[0039] FIG4 is a schematic diagram of a scenario of a secure multi-party computing method provided in an embodiment of the present application;

[0040] FIG5 is a schematic diagram of the structure of an MPC agent device provided in an embodiment of the present application;

[0041] FIG6 is a schematic diagram of the structure of a user cloud server provided in an embodiment of the present application;

[0042] FIG7 is a schematic diagram of the structure of another MPC agent device provided in an embodiment of the present application;

[0043] FIG8 is a schematic diagram of the structure of another user cloud server provided in an embodiment of the present application;

[0044] FIG9 is a schematic diagram of the structure of a secure multi-party computing system provided in an embodiment of the present application. DETAILED DESCRIPTION

[0045] In the description of this application, unless otherwise specified, " / " indicates that the objects associated before and after are in an "or" relationship, for example, A / B can represent A or B; "and / or" in this application is merely a description of the association relationship of associated objects, indicating that three relationships may exist, for example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural.

[0046] In the description of this application, unless otherwise specified, "plurality" means two or more than two. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or plural.

[0047] In addition, to facilitate the clear description of the technical solutions of the embodiments of the present application, in the embodiments of the present application, the words "first" and "second" are used to distinguish between identical or similar items with substantially the same functions and effects. Those skilled in the art will understand that the words "first" and "second" do not limit the quantity or execution order, and the words "first" and "second" do not necessarily mean different.

[0048] In the embodiments of this application, words such as "exemplary" or "for example" are used to indicate examples, illustrations, or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of this application should not be construed as being preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner to facilitate understanding.

[0049] It will be understood that the “embodiment” mentioned throughout the specification means that the specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, the various embodiments throughout the specification do not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It will be understood that in the various embodiments of the present application, the size of the sequence number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application.

[0050] It is understood that some optional features in the embodiments of the present application may, in certain scenarios, be implemented independently of other features, such as the solution on which they are currently based, to solve corresponding technical problems and achieve corresponding effects. They may also be combined with other features in certain scenarios as needed. Accordingly, the devices provided in the embodiments of the present application may also implement these features or functions accordingly, which will not be described in detail here.

[0051] In this application, unless otherwise specified, the same or similar parts between the various embodiments can be referenced to each other. In this application, unless otherwise specified and there is no logical conflict between the various embodiments, the terms and / or descriptions between different embodiments are consistent and can be referenced to each other. Different embodiments can be combined to form new embodiments based on their inherent logical relationships. The following implementation methods of this application do not constitute a limitation on the scope of protection of this application.

[0052] Data can only maximize its value through exchange and sharing. However, privacy leaks have a significant negative impact on the value of data resources. The key challenge in realizing data value is how to safely and efficiently analyze and utilize decentralized, multi-owner data resources while ensuring data security. Secure multi-party computation is a key technology for achieving secure data circulation. It enables a group of independent data owners, without mutual trust, to compute a function using their own data as input, without exposing the input data.

[0053] In the existing secure multi-party computing scheme, the secure multi-party computation (MPC) protocol can be directly deployed in the trusted execution environment (TEE) to prevent the MPC execution program from being maliciously tampered with, and upgrade the secure multi-party computing suitable for the semi-honest attack model to the secure multi-party computing suitable for the malicious attack model.

[0054] As shown in Figure 1, the trusted third party and the two transaction parties conducting data exchange are all in the network software guard extensions (SGX) environment. The random number splitting module of the trusted third party distributes random numbers to the transaction parties and loads the computing program related to secure multi-party computing into the trusted execution environment; based on the trusted execution environment, the integrity of each other's computing program related to secure multi-party computing is verified with other participants; if the integrity verification of the computing program is successful, the computing program is executed in the trusted execution environment and the computing results are exchanged with other participants to complete the secure multi-party computing.

[0055] Existing secure multi-party computing schemes require a trusted third party to distribute random numbers, and each calculation requires multiple interactions, which consumes a lot of communication resources and takes a long time for transactions.

[0056] Based on this, an embodiment of the present application provides a secure multi-party computing method, which includes: a first secure multi-party computing MPC agent receives a first password from a first user cloud server CVM, and the first MPC agent derives a first Seed based on the password; the first MPC agent generates a first random number sequence based on the first Seed; the first MPC agent receives first user data from the first CVM and second user data from the second CVM; the first MPC agent performs secure multi-party computing with the second MPC agent based on the first random number sequence, the first user data, the second user data and the computing task expression, the second random number sequence of the second MPC agent is the same as the first random number sequence, the second Seed of the second MPC agent is the same as the first Seed, and the second password received by the second MPC agent from the second CVM is the same as the first password.

[0057] The secure multi-party computing method provided in the embodiments of the present application can be applied to the communication system shown in Figure 2. The exception levels (EL) 0 and EL1 of the communication system include virtual machines (VM) 0 and VM1, user cloud virtual machine (CVM) 0, secure multi-party computing agent MPC agent 0, user CVM1, and MPC agent 0. Among them, the MPC agent corresponds one-to-one with the user CVM. The MPC agent is part of the confidential computing architecture (CCA) software stack. The function of the MPC agent is fixed, similar to the migration agent of secure encrypted virtualization (SEV) or the Quoting Enclave of the software protection extension SGX. The MPC agent can only execute MPC, and the code is open source and can be remotely verified.

[0058] The communication system's EL2 includes the TMM and the host kernel. The host kernel's kernel-based virtual machine, KVM-virtCCA, includes a trusted zone management interface (TMI) and a secure multi-party computing agent manager (MPC agent manager). Computing participants can use the MPC agent manager to configure MPC agent node resources based on their computing needs.

[0059] The EL3 of the communication system includes a secure monitor, which includes a single program multiple data (SPMD) dispatcher.

[0060] In the embodiment of the present application, an MPC agent module and an MPC agent manager module are newly added to the communication system to implement the agent of secure multi-party computing, thereby achieving secure interaction more efficiently.

[0061] It is understood that in the embodiments of the present application, the execution subject may perform some or all of the steps in the embodiments of the present application. These steps or operations are merely examples, and the embodiments of the present application may also perform other operations or variations of various operations. In addition, the various steps may be performed in a different order than those presented in the embodiments of the present application, and it is possible that not all operations in the embodiments of the present application need to be performed.

[0062] It should be noted that the message names between the devices or the names of the parameters in the messages in the following embodiments of the present application are only examples. Other names may be used in specific implementations, and the embodiments of the present application do not specifically limit this.

[0063] As shown in FIG3 , a secure interaction method provided in an embodiment of the present application includes the following steps:

[0064] In the offline phase, the secure interaction method provided in the embodiment of the present application may perform the following steps:

[0065] 301. Configure computing resources for the MPC agent.

[0066] Each computing participant configures the computing resources of the MPC agent through the MPC agent Manager and deploys the MPC program.

[0067] In the embodiment of the present application, the MPC agent manager can configure the resources of the MPC agent computing nodes according to the computing needs. Therefore, user Alice can configure the computing resources of MPC agent0 through the MPC agent manager, and user Bob can configure the computing resources of MPC agent1 through the MPC agent manager.

[0068] 302. Pull up the MPC agent.

[0069] Each computing participant pulls up the MPC agent through the corresponding CVM, and each MPC agent corresponds one-to-one to the CVM.

[0070] Specifically, for example, user Alice starts MPC agent0 through CVM0, and user Bob starts MPC agent0 through CVM1.

[0071] 303. Remotely verify the MPC agent.

[0072] Each computing participant remotely verifies the corresponding MPC agent to ensure that the MPC protocol program in the MPC agent has not been tampered with.

[0073] Specifically, for example, MPC agent0 receives a verification request from CVM0, which indicates verification of whether the MPC protocol program of MPC agent0 has been tampered with; after verification, MPC agent0 confirms that the MPC protocol program has not been tampered with, and MPC agent0 sends verification information to CVM0, which indicates that the MPC protocol program of MPC agent0 has not been tampered with.

[0074] 304. Enter a password to the MPC agent.

[0075] Each participant enters the same password to the corresponding MPC agent through the password input module in the CVM.

[0076] Specifically, as shown in FIG4 , user Alice inputs a first password to the corresponding MPC agent0 through the password input module of CVM1; user Bob inputs a second password to the corresponding MPC agent1 through the password input module of CVM2. The first password and the second password are the same.

[0077] In the embodiments of the present application, the password can be in the form of a string, a number, a verification code, or other password types, such as corpus information, and is not specifically limited herein. It is understood that the password sent by the CVM to the MPC agent in the embodiments of the present application is information used to derive a Seed. Therefore, any information that can be used to derive a Seed can be used as the password in the embodiments of the present application, and is not specifically limited herein.

[0078] 305. Derive Seed based on the password.

[0079] After receiving the command from the corresponding CVM, each MPC agent can derive the corresponding Seed through its Seed derivation module. Since each MPC agent receives the same command and uses the same derivation algorithm, the seeds derived by each MPC agent are also the same.

[0080] Specifically, for example, as shown in FIG4 , after MPC agent 0 receives the password from CVM 1, the Seed derivation module of MPC agent 0 can derive Seed 1 based on the received password and timestamp using a derivation algorithm. After MPC agent 1 receives the password from CVM 2, the Seed derivation module of MPC agent 1 can derive Seed 2 based on the received password and timestamp using a derivation algorithm. Since the passwords received by MPC agent 0 and MPC agent 1 are the same, and the derivation algorithms used by MPC agent 0 and MPC agent 1 are also the same, the Seed 1 and Seed 2 derived by MPC agent 0 and MPC agent 1 are also the same.

[0081] In the embodiment of the present application, through the password-based key distribution function, the synchronization of Seed does not require interaction between MPC agents. In the scenario of multiple computing participants, the synchronization between MPC agents can be achieved more efficiently, thereby increasing the efficiency of secure multi-party computing.

[0082] 306. Generate a random number sequence.

[0083] After each MPC agent derives a Seed, its random number generation module generates a random number sequence based on the derived Seed. Since the Seeds derived by each MPC agent are the same, the generated random number sequences are also the same.

[0084] Specifically, for example, the random number generation module of MPC agent0 generates a first random number sequence based on the derived Seed1, and the random number generation module of MPC agent1 generates a second random number sequence based on the derived Seed2, and the generated first random number sequence and second random number sequence are the same.

[0085] 307. Perform secret data sharding.

[0086] Each computing participant secretly shards its data and sends it to the MPC Agent.

[0087] Specifically, for example, CVM0 can encrypt the data x to generate secret data x0 and x1, send the secret data x0 to MPC agent0, and send the secret data x1 to MPC agent1; CVM1 can encrypt the data y to generate secret data y0 and y1, send the secret data y0 to MPC agent0, and send the secret data y1 to MPC agent1.

[0088] It can be understood that each CVM in the embodiment of the present application can encrypt the data and send it to each MPC agent in the system. For example, if there are three MPC agents, MPC agent0, MPC agent1, and MPC agent2 in the system, CVM0 can send secret data x0 to MPC agent0, send secret data x1 to MPC agent1, and send secret data x2 to MPC agent2.

[0089] 308. Execute the MPC protocol.

[0090] The MPC execution modules of each MPC agent jointly execute the MPC protocol based on the random number sequence, user secret shard data and computational task expressions.

[0091] Specifically, the MPC execution module of MPC agent0 performs secure multi-party computing based on the first random number sequence, user secret shard data and computing task expression, and the MPC execution module of MPC agent1 performs secure multi-party computing based on the second random number sequence, user secret shard data and computing task expression.

[0092] In the embodiments of the present application, through a password-based key delivery function, seed synchronization does not require interaction between MPC agents. This allows for more efficient synchronization between MPC agents in scenarios with multiple computational participants, increasing the efficiency of secure multi-party computation. Furthermore, by using MPC agents to perform secure multi-party computation on behalf of computational participants, the MPC agent module can self-certify, further satisfying the security assumptions of cryptographic MPC. Furthermore, the MPC agent's computing resources can be configured based on the needs of the computational participants, allowing for dynamic configuration and more flexible implementation of secure multi-party computation.

[0093] The present application provides an MPC agent device 500. In this embodiment, the MPC agent device 500 can be divided into functional modules according to the above-described method example. For example, each functional module can be divided into corresponding functional modules, or two or more functions can be integrated into a single processing module. The integrated modules can be implemented in the form of hardware or software functional modules. It should be noted that the module division in the embodiment of the present invention is illustrative and is merely a logical functional division. In actual implementation, other division methods may be used.

[0094] In the case of dividing each functional module into corresponding functional modules, FIG5 shows a possible structural diagram of the MPC agent device 500 involved in the above embodiment. As shown in FIG5 , the MPC agent device 500 includes:

[0095] The third receiving module 501 is configured to receive a verification request from the first CVM, where the verification request indicates verifying whether the MPC protocol program of the first MPC agent has been tampered with; for example, step 303 , remotely verifying the MPC agent.

[0096] The sending module 502 is configured to send verification information to the first CVM, where the verification information indicates that the MPC protocol program of the first MPC agent has not been tampered with. For example, in step 303, the MPC agent is remotely verified.

[0097] The first receiving module 503 is configured to receive a first password from the first user cloud server CVM, such as step 304, inputting a password to the MPC agent.

[0098] The derivation module 504 is used to derive a first Seed according to the password; for example, step 305, deriving a Seed according to the password.

[0099] The generating module 505 is configured to generate a first random number sequence according to the first Seed; for example, step 306, generating the first random number sequence.

[0100] The second receiving module 506 is configured to receive the first user data from the first CVM and the second user data from the second CVM; for example, step 307 , performing secret data sharding.

[0101] The computing module 507 is configured to perform a secure multi-party computation with the second MPC agent based on the first random number sequence, the first user data, the second user data, and the computation task expression. The second random number sequence of the second MPC agent is the same as the first random number sequence, the second seed of the second MPC agent is the same as the first seed, and the second password received by the second MPC agent from the second CVM is the same as the first password. For example, in step 308, the MPC protocol is executed.

[0102] Each module of the above nonlinear compensation device can also be used to perform other actions in the above method embodiment. All relevant contents of each step involved in the above method embodiment can be referred to the functional description of the corresponding functional module and will not be repeated here.

[0103] In an embodiment of the present application, a user cloud server CVM600 is provided. In an embodiment of the present application, the CVM600 can be divided into functional modules according to the above method example. For example, each functional module can be divided corresponding to each function, or two or more functions can be integrated into one processing module. The above-mentioned integrated module can be implemented in the form of hardware or in the form of a software functional module. It should be noted that the division of modules in the embodiment of the present invention is schematic and is only a logical functional division. There may be other division methods in actual implementation.

[0104] In the case of dividing each functional module into corresponding functional modules, FIG6 shows a possible structural diagram of the CVM 600 involved in the above embodiment. As shown in FIG6 , the CVM 600 includes:

[0105] Configuration module 601 is used to configure computing resources for the first MPC agent; for example, step 301, configuring computing resources for the MPC agent.

[0106] The pull-up module 602 is configured to pull up the first MPC agent, for example, step 302, pull up the MPC agent.

[0107] The third sending module 603 is configured to send a verification request to the first MPC agent, where the verification request indicates verification of whether the MPC protocol program of the first MPC agent has been tampered with; for example, step 303, remote verification of the MPC agent.

[0108] The receiving module 604 is configured to receive verification information from the first MPC agent, where the verification information indicates that the MPC protocol program of the first MPC agent has not been tampered with. For example, in step 303, the MPC agent is remotely verified.

[0109] The first sending module 605 is used to send a first password to the first secure multi-party computing MPC agent, and the first password is used for the first MPC agent to perform secure multi-party computing with the second MPC agent; for example, step 305, inputting a password to the MPC agent.

[0110] The second sending module 606 is configured to send the first user data to the first MPC agent and the third user data to the second MPC agent. The first user data and the third user data are used by the first MPC agent and the second MPC agent to perform secure multi-party computing. For example, step 307 involves performing secret data sharding.

[0111] Each module of the above nonlinear compensation device can also be used to perform other actions in the above method embodiment. All relevant contents of each step involved in the above method embodiment can be referred to the functional description of the corresponding functional module and will not be repeated here.

[0112] FIG7 is a schematic diagram of the structure of an MPC agent device provided in an embodiment of the present application. The MPC agent device 700 may include one or more central processing units (CPUs) 701 and a memory 705 . The memory 705 stores one or more application programs or data.

[0113] Memory 705 can be volatile or persistent storage. The program stored in memory 705 can include one or more modules, each of which can include a series of instruction operations on the MPC agent. Furthermore, central processing unit 701 can be configured to communicate with memory 705 and execute the series of instruction operations in memory 705 on MPC agent 700.

[0114] The central processing unit 701 is configured to execute a computer program in the memory 705, so that the MPC agent device 700 is configured to perform the following steps: a first secure multi-party computing MPC agent receives a first password from a first user cloud server CVM, and the first MPC agent derives a first Seed based on the password; the first MPC agent generates a first random number sequence based on the first Seed; the first MPC agent receives first user data from the first CVM and second user data from the second CVM; the first MPC agent performs secure multi-party computing with the second MPC agent based on the first random number sequence, the first user data, the second user data, and the computational task expression, wherein the second random number sequence of the second MPC agent is the same as the first random number sequence, the second Seed of the second MPC agent is the same as the first Seed, and the second password received by the second MPC agent from the second CVM is the same as the first password. For specific implementation methods, please refer to steps 301-308 in the embodiment shown in FIG3 , which will not be described in detail here.

[0115] The MPC agent device 700 may further include one or more power supplies 702, one or more wired or wireless network interfaces 703, one or more input and output interfaces 704, and / or one or more operating systems, such as Windows Server™, Mac OS X™, Unix™, Linux™, FreeBSD™, etc.

[0116] The MPC agent device 700 can execute the operations executed by the MPC agent device in the embodiment shown in FIG. 3 , and the details are not repeated here.

[0117] FIG8 is a schematic diagram of a CVM structure provided in an embodiment of the present application. The CVM 800 may include one or more central processing units (CPUs) 801 and a memory 805 . The memory 805 may store one or more applications or data.

[0118] Memory 805 can be volatile or persistent storage. The program stored in memory 805 can include one or more modules, each of which can include a series of instruction operations on the CVM. Furthermore, the central processing unit 801 can be configured to communicate with memory 805 and execute the series of instruction operations in memory 805 on the CVM 800.

[0119] The central processing unit 801 is configured to execute the computer program in the memory 805, so that the CVM 800 is configured to: send a first password to a first secure multi-party computing (MPC) agent; the first password is used by the first MPC agent to perform secure multi-party computing with a second MPC agent; and send first user data to the first MPC agent and third user data to the second MPC agent; the first user data and the third user data are used by the first MPC agent and the second MPC agent to perform secure multi-party computing. For specific implementation methods, please refer to steps 301-308 in the embodiment shown in FIG. 3 , which will not be described in detail here.

[0120] CVM800 may also include one or more power supplies 802, one or more wired or wireless network interfaces 803, one or more input and output interfaces 804, and / or one or more operating systems, such as Windows Server™, Mac OS X™, Unix™, Linux™, FreeBSD™, etc.

[0121] The CVM800 can execute the operations executed by the CVM in the embodiment shown in FIG3 , and the details are not repeated here.

[0122] The present application also provides a computer program product including instructions. The computer program product may be software or a program product including instructions that can be run on a plug-in result reuse device or stored on any available medium. When the computer program product is run on the plug-in result reuse device, it causes the MPC agent to execute the secure multi-party computation method described in the embodiment shown in FIG. 3 .

[0123] The present application also provides a computer program product containing instructions. The computer program product can be software or a program product containing instructions that can be run on a plug-in result reuse device or stored on any available medium. When the computer program product is run on the plug-in result reuse device, it causes the CVM to execute the secure multi-party computation method implemented in the embodiment shown in Figure 3.

[0124] The present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by a cache server, or a data storage device such as a data center that includes one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive). The computer-readable storage medium includes instructions that instruct the MPC agent to execute the secure multi-party computation method implemented in the embodiment shown in FIG. 3 .

[0125] The present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by the cache server or a data storage device such as a data center that contains one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive). The computer-readable storage medium includes instructions that instruct the CVM to execute the secure multi-party computing method executed in the embodiment shown in FIG. 3 .

[0126] As shown in Figure 9, an embodiment of the present application provides a secure multi-party computing system 900, which includes a secure multi-party computing MPC agent device 901 and a user cloud server 902. The MPC agent device 901 can implement the secure multi-party computing method performed in the embodiment shown in Figure 3, and the user cloud server 902 can implement the secure multi-party computing method performed in the embodiment shown in Figure 3.

[0127] In the above embodiments, all or part of the embodiments may be implemented by software, hardware, firmware, or any combination thereof. When implemented using a software program, all or part of the embodiments may be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes (or functions) of the embodiments of the present application are implemented. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more media integrated therein. Available media may be magnetic media (eg, floppy disk, hard disk, tape), optical media (eg, DVD), or semiconductor media (eg, solid state disk (SSD)), etc. In the embodiment of the present application, the computer may include the aforementioned device.

[0128] Although the present application is described herein in conjunction with various embodiments, in the process of implementing the claimed application, those skilled in the art may understand and implement other variations of the disclosed embodiments by reviewing the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other components or steps, and "a" or "an" does not exclude multiple situations. A single processor or other unit may implement several functions listed in the claims. Certain measures are recorded in different dependent claims, but this does not mean that these measures cannot be combined to produce good results.

Claims

1. A secure multi-party computing method, characterized in that: The method comprises: The first secure multi-party computing MPC agent receives a first password from the first user cloud server CVM; The first MPC agent derives a first Seed according to the first password; The first MPC agent generates a first random number sequence according to the first Seed; The first MPC agent receives first user data from a first CVM and second user data from a second CVM; The first MPC agent performs secure multi-party computing with the second MPC agent according to the first random number sequence, the first user data, the second user data and the computing task expression, the second random number sequence of the second MPC agent is the same as the first random number sequence, the second Seed of the second MPC agent is the same as the first Seed, and the second password received by the second MPC agent from the second CVM is the same as the first password.

2. The method according to claim 1, characterized in that: Before the first MPC agent receives the first password from the first user cloud server CVM, the method further includes: The first MPC agent receives a verification request from the first CVM, the verification request indicating verification of whether an MPC protocol program of the first MPC agent has been tampered with; The first MPC agent sends verification information to the first CVM, where the verification information indicates that the MPC protocol program of the first MPC agent has not been tampered with.

3. A secure multi-party computing method, characterized in that: The method comprises: The first user cloud server CVM sends a first password to the first secure multi-party computing MPC agent, where the first password is used for the first MPC agent to perform secure multi-party computing with the second MPC agent; The first CVM sends first user data to the first MPC agent and sends third user data to the second MPC agent, and the first user data and the third user data are used by the first MPC agent and the second MPC agent to perform secure multi-party computing.

4. The method according to claim 3, characterized in that Before the first CVM sends the first password to the first MPC agent, the method further includes: The first CVM configures computing resources of the first MPC agent; The first CVM pulls up the first MPC agent.

5. The method according to claim 4, characterized in that Before the first CVM sends the first password to the first MPC agent, after the first CVM pulls up the first MPC agent, the method further includes: The first CVM sends a verification request to the first MPC agent, the verification request indicating verification of whether the MPC protocol program of the first MPC agent has been tampered with; The first CVM receives verification information from the first MPC agent, the verification information indicating that an MPC protocol program of the first MPC agent has not been tampered with.

6. A secure multi-party computing (MPC) agent device, characterized in that: The MPC agent device is used to implement the method described in any one of claims 1-2, and the MPC agent device includes: a seed derivation module, a random number generation module, and an MPC execution module, wherein: The seed derivation module is used to derive a first Seed according to the first password, wherein the first Seed comes from the first user cloud server CVM; The random number generation module is used to generate a first random number sequence according to the first Seed; The MPC execution module is used to perform secure multi-party computing with a second MPC agent according to the first random number sequence, the first user data, the second user data and a computing task expression, the second random number sequence of the second MPC agent is the same as the first random number sequence, the second Seed of the second MPC agent is the same as the first Seed, and the second password received by the second MPC agent from the second CVM is the same as the first password.

7. The MPC agent device according to claim 6, characterized in that: The MPC agent device further includes a transceiver module, and the transceiver module is used to: receiving a verification request from the first CVM, the verification request indicating verification of whether an MPC protocol program of the first MPC agent has been tampered with; Verification information is sent to the first CVM, the verification information indicating that the MPC protocol program of the first MPC agent has not been tampered with.

8. A user cloud server CVM, characterized in that: The CVM includes a transceiver module and a user data output module, wherein: A transceiver module, configured to send a first password to a first secure multi-party computing (MPC) agent, wherein the first password is used for the first MPC agent to perform secure multi-party computing with a second MPC agent; The user data output module is used to send first user data to the first MPC agent and send third user data to the second MPC agent, wherein the first user data and the third user data are used by the first MPC agent and the second MPC agent to perform secure multi-party computing.

9. The CVM according to claim 8, characterized in that: The transceiver module is also used for: configuring computing resources of the first MPC agent; Pull up the first MPC agent.

10. The CVM according to claim 9, characterized in that: The transceiver module is also used for: Sending a verification request to the first MPC agent, the verification request indicating verification of whether an MPC protocol program of the first MPC agent has been tampered with; Verification information is received from the first MPC agent, the verification information indicating that an MPC protocol program of the first MPC agent has not been tampered with.

11. A secure multi-party computing (MPC) proxy device, characterized in that: The MPC agent device comprises: A first receiving module, used to receive a first password from a first user cloud server CVM; A derivation module, used for deriving a first Seed according to the password; A generating module, configured to generate a first random number sequence according to the first Seed; A second receiving module, configured to receive first user data from the first CVM and second user data from the second CVM; A computing module is used to perform secure multi-party computing with a second MPC agent according to the first random number sequence, the first user data, the second user data and a computing task expression, wherein a second random number sequence of the second MPC agent is the same as the first random number sequence, a second Seed of the second MPC agent is the same as the first Seed, and a second password received by the second MPC agent from a second CVM is the same as the first password.

12. The MPC agent device according to claim 11, characterized in that: The MPC agent device also includes: A third receiving module, configured to receive a verification request from the first CVM, wherein the verification request indicates verifying whether the MPC protocol program of the first MPC agent has been tampered with; A sending module is used to send verification information to the first CVM, where the verification information indicates that the MPC protocol program of the first MPC agent has not been tampered with.

13. A user cloud server, characterized in that: The user cloud server CVM includes: A first sending module, configured to send a first password to a first secure multi-party computing MPC agent, wherein the first password is used for the first MPC agent to perform secure multi-party computing with a second MPC agent; The second sending module is used to send first user data to the first MPC agent and send third user data to the second MPC agent, wherein the first user data and the third user data are used for the first MPC agent and the second MPC agent to perform secure multi-party computing.

14. The server according to claim 13, characterized in that: The CVM also includes: A configuration module, configured to configure computing resources of the first MPC agent; A pull-up module is used to pull up the first MPC agent.

15. The server according to claim 14, characterized in that: The CVM also includes: A third sending module, configured to send a verification request to the first MPC agent, wherein the verification request indicates verification of whether the MPC protocol program of the first MPC agent has been tampered with; The receiving module is configured to receive verification information from the first MPC agent, wherein the verification information indicates that the MPC protocol program of the first MPC agent has not been tampered with.

16. A secure multi-party computing (MPC) agent device, characterized in that: The MPC agent device comprises a processor and a memory; the processor is coupled to the memory; the memory is used to store computer instructions, and the computer instructions are loaded and executed by the processor to enable the MPC agent device to implement the method according to claim 1 or 2.

17. A user cloud server, characterized in that: The user cloud server includes a processor and a memory; the processor is coupled to the memory; the memory is used to store computer instructions, and the computer instructions are loaded and executed by the processor to enable the user cloud server to implement the method described in any one of claims 3-5.

18. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores at least one computer program instruction, and the computer program instruction is loaded and executed by a processor to implement the method according to claim 1 or 2.

19. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores at least one computer program instruction, and the computer program instruction is loaded and executed by a processor to implement the method according to any one of claims 3 to 5.

20. A computer program product, characterized in that The computer program product comprises computer-executable instructions. When the computer-executable instructions are executed on a computer, the computer is configured to implement the method according to claim 1 or 2.

21. A computer program product, characterized in that The computer program product comprises computer-executable instructions. When the computer-executable instructions are executed on a computer, the computer is used to implement the method according to any one of claims 3 to 5.

22. A secure multi-party computing system, characterized in that: The secure multi-party computing system includes a secure multi-party computing MPC agent device and a user cloud server. The MPC agent device can implement the method as described in claim 1 or 2, and the user cloud server can implement the method as described in any one of claims 3-5.

Citation Information

Patent Citations

  • Secure multi-party computing method and device

    CN120200766A

  • A secure multi-party calculation implementation method and device, a computer device and a storage medium

    CN110175461A

  • Secure multi-party calculation method and system based on trusted execution environment

    CN111049825A

  • Secure multi-party computing method and device for one-way communication, and participating equipment

    CN116668014A

  • Data processing method and apparatus, and electronic device and storage medium

    WO2022183644A1