WO2020034754A1 - 多方安全计算方法及装置、电子设备 - Google Patents

多方安全计算方法及装置、电子设备 Download PDF

Info

Publication number
WO2020034754A1
WO2020034754A1 PCT/CN2019/092266 CN2019092266W WO2020034754A1 WO 2020034754 A1 WO2020034754 A1 WO 2020034754A1 CN 2019092266 W CN2019092266 W CN 2019092266W WO 2020034754 A1 WO2020034754 A1 WO 2020034754A1
Authority
WO
WIPO (PCT)
Prior art keywords
random number
computing
trusted
sent
party secure
Prior art date
Application number
PCT/CN2019/092266
Other languages
English (en)
French (fr)
Inventor
李漓春
殷山
王华忠
林文珍
Original Assignee
阿里巴巴集团控股有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 阿里巴巴集团控股有限公司 filed Critical 阿里巴巴集团控股有限公司
Priority to EP19850449.0A priority Critical patent/EP3779752A4/en
Priority to SG11202010759TA priority patent/SG11202010759TA/en
Publication of WO2020034754A1 publication Critical patent/WO2020034754A1/zh
Priority to US17/086,379 priority patent/US11038679B2/en
Priority to US17/324,691 priority patent/US11290266B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Definitions

  • One or more embodiments of the present specification relate to the field of distributed computing, and in particular, to a multi-party secure computing method and device, and electronic equipment.
  • Multi-party secure computing is a cryptographic technology. Multiple parties participating in the calculation can execute a multi-party secure computing algorithm based on the input data held by them to jointly perform a secure calculation to obtain a calculation result without revealing their holdings to other parties. Some input data.
  • each party can develop its own multi-party secure computing software, and each uses its own multi-party secure computing software to participate in multi-party secure computing.
  • the parties may generally use multi-party secure computing software provided by one provider; therefore, for the provider, it is necessary to prove that the multi-party secure computing software provided by them is trustworthy and does not reveal privacy data.
  • This specification proposes a multi-party secure computing method, which is applied to any computing node deployed in a distributed network; the distributed network deploys multiple computing nodes, and the multiple computing nodes participate together based on their own private data Multi-party secure computing; wherein the computing node is docked with a trusted random source; the method includes:
  • At least the trusted random number is used as a computing parameter to send to other computing nodes participating in multi-party secure computing, and the other computing node performs multi-party security based on the collected computing parameters sent by each computing node participating in multi-party secure computing. Calculation.
  • Optional also includes:
  • An audit log corresponding to the trusted random number sent by the computing node to the other computing nodes is created; wherein, the audit log records descriptive information related to the trusted random number.
  • Optional also includes:
  • Optional also includes:
  • the audit log is sent to a third-party audit node, and the audit node performs a privacy audit on the random number sent by the computing node participating in the multi-party secure computing as a calculation parameter, and confirms that the computing node sends the computing Whether the random number of the parameter poses a risk of privacy leakage.
  • the description information related to the trusted random number includes: a random number generation rule corresponding to the trusted random number;
  • the privacy auditing the random numbers sent by the computing nodes participating in multi-party secure computing as calculation parameters based on the audit log to confirm whether the random numbers sent by the computing nodes as calculation parameters are at risk of privacy leakage including:
  • the obtaining a trusted random number from the trusted random source includes any of the following:
  • This specification also proposes a multi-party secure computing device that is applied to any computing node deployed in a distributed network; the distributed network deploys multiple computing nodes that are collectively based on the privacy data held by each of them Participate in multi-party secure computing; wherein the computing node is docked with a trusted random source; the device includes:
  • An obtaining module obtaining a trusted random number from the trusted random source
  • An operation module which performs operation on the held private data based on the obtained trusted random number to obtain an operation result
  • the sending module sends at least the trusted random number as a computing parameter to other computing nodes participating in multi-party secure computing, and the computing parameters sent by the other computing nodes based on the computing parameters sent by each computing node participating in multi-party secure computing are collected. Perform multiparty secure calculations.
  • Optional also includes:
  • the creating module creates an audit log corresponding to the trusted random number sent by the computing node to the other computing nodes; wherein the audit log records descriptive information related to the trusted random number.
  • Optional also includes:
  • a collection module which collects computing parameters sent by other computing nodes participating in multi-party secure computing; wherein the computing parameters include at least random numbers sent by other computing nodes;
  • Optional also includes:
  • An audit module which performs a privacy audit on the random numbers sent by the computing nodes participating in multi-party secure computing as calculation parameters based on the audit log, and confirms whether the random numbers sent by the computing nodes as calculation parameters are at risk of privacy leakage;
  • the audit log is sent to a third-party audit node, and the audit node performs a privacy audit on the random number sent by the computing node participating in multi-party secure computing as a calculation parameter, and confirms that the computing node sends the calculation as a calculation. Whether the random number of the parameter poses a risk of privacy leakage.
  • the description information related to the trusted random number includes: a random number generation rule corresponding to the trusted random number;
  • the audit module further:
  • the obtaining a trusted random number from the trusted random source includes any of the following:
  • This specification also proposes an electronic device, including:
  • Memory for storing machine-executable instructions
  • the processor is caused to:
  • At least the trusted random number is used as a computing parameter to send to other computing nodes participating in multi-party secure computing, and the other computing node performs multi-party security based on the collected computing parameters sent by each computing node participating in multi-party secure computing. Calculation.
  • each computing node participating in multi-party secure computing can obtain a trusted random number from a docked trusted random source, and based on the trusted random number, perform operation on the held private data to obtain an operation result, and then at least The trusted random number is used as a computing parameter and is sent to other computing nodes participating in the multi-party secure computing to perform multi-party secure computing, so that the computing node can no longer use the locally generated random number of the multi-party secure computing algorithm as the computing parameter, and It uses the trusted random number obtained from the docked trusted random source as the calculation parameter, so as to avoid the malicious multi-party secure calculation algorithm based on the held private data to construct a pseudo-random number as the calculation parameter, resulting in privacy leakage. risks of.
  • FIG. 1 is a flowchart of a multi-party secure computing method according to an exemplary embodiment.
  • FIG. 2 is a schematic structural diagram of an electronic device according to an exemplary embodiment.
  • FIG. 3 is a block diagram of a multi-party secure computing device according to an exemplary embodiment.
  • a malicious multi-party security algorithm may use the private data held by computing nodes participating in multi-party secure computing to construct a pseudo-random number, and then hold the pseudo-random number and hold the pseudo-random number pair based on The calculation results obtained by the operation of the private data are transmitted to other computing nodes participating in multi-party secure computing; further, in this way, other computing nodes can reversely recover the pseudo-random numbers and restore the original structure of the pseudo-random numbers. Privacy data, resulting in privacy leaks;
  • the private data held can be input into a reversible random number generation function to obtain a pseudo-random number; and the receiver can use the inverse function of the random number generation function to reversely calculate and construct a pseudo-random number based on the pseudo-random number Of raw privacy data.
  • the purpose of this specification is to propose a method that uses trusted random numbers from trusted random sources as calculation parameters for multi-party secure calculations to avoid constructing pseudo-random data based on private data held by computing nodes participating in multi-party secure calculations. Number as a technical solution to the privacy leak caused by calculation parameters.
  • the computing nodes in the distributed network can also be docked with a trusted random source; among them, the trusted random source can be provided by each computing node.
  • Random sources developed independently by the operator may also be random sources developed by trusted third parties other than the aforementioned providers.
  • each computing node When each computing node participates in multi-party secure calculations based on the held private data, it can obtain a trusted random number from the docked trusted random source, and perform a budget calculation on the held private data based on the trusted random number. Result; then at least the above-mentioned trusted random number is used as a calculation parameter (in some scenarios, the above-mentioned calculation result may also be used as a calculation parameter), and sent to other computing nodes participating in multi-party secure computing in the distributed network, and other computing The node performs multi-party secure calculation based on the collected computing parameters sent by each computing node participating in the multi-party secure calculation.
  • each computing node participating in multi-party secure computing can obtain a trusted random number from a docked trusted random source, and based on the trusted random number, perform operation on the held private data to obtain an operation result, and then at least The trusted random number is used as a computing parameter and is sent to other computing nodes participating in the multi-party secure computing to perform multi-party secure computing, so that the computing node can no longer use the locally generated random number of the multi-party secure computing algorithm as the computing parameter, and It uses the trusted random number obtained from the docked trusted random source as the calculation parameter, so as to avoid the malicious multi-party secure calculation algorithm based on the held private data to construct a pseudo-random number as the calculation parameter, resulting in privacy leakage. risks of.
  • FIG. 1 is a multi-party secure computing method provided by an embodiment of the present specification, and is applied to any computing node deployed in a distributed network.
  • the distributed network has multiple computing nodes deployed and the multiple computing nodes.
  • the nodes jointly participate in multi-party secure computing based on the private data held by them; wherein each computing node deployed in the distributed network is docked with a trusted random source; the multi-party secure computing method performs the following steps:
  • Step 102 Obtain a trusted random number from the trusted random source.
  • Step 104 Operate the held private data based on the obtained trusted random number to obtain an operation result.
  • Step 106 Send at least the trusted random number as a computing parameter to other computing nodes participating in multi-party secure computing, and use the computing parameters sent by the other computing nodes based on the computing parameters sent by each computing node participating in multi-party secure computing. Perform multiparty secure calculations.
  • the above-mentioned distributed network may include any form of data network capable of supporting multi-party secure computing and adopting a distributed architecture
  • the above-mentioned distributed network may be a multi-party secure computing platform constructed by a device cluster (such as a server cluster) composed of several computing devices;
  • the above-mentioned distributed network may also be a blockchain network composed of several node devices; in this blockchain network, it is possible to deploy private data that requires multiple node devices based on holding Participate in multi-party secure computing together, and need to ensure that the private data held is not disclosed to the online business of other node devices.
  • the specific types of the above online services are not particularly limited in this specification.
  • the computing node may specifically include a node device capable of carrying the multi-party secure computing algorithm in the distributed network.
  • the above-mentioned multi-party secure computing algorithm may specifically include independently developed by each computing node, or a multi-party secure computing algorithm provided by the provider in a unified manner; for example, in practical applications, the above-mentioned multi-party secure computing algorithm may specifically be developed independently by each computing node. , Or multi-party secure computing software provided uniformly by the provider.
  • the above calculation parameters specifically refer to the calculation parameters related to the privacy data held by each calculation node generated by each calculation node participating in the multi-party secure calculation based on the multi-party secure computing algorithm carried; each calculation node requires interaction between the calculation nodes. Messages transmit the calculation parameters generated by each other, and perform multi-party secure calculations based on the calculation parameters generated by each collected computing node.
  • the above-mentioned calculation parameters may generally include: random numbers that need to participate in multi-party secure calculations; and / or, ciphertext data that needs to participate in multi-party secure calculations.
  • the above-mentioned multi-party secure computing algorithms usually include multi-party secure computing algorithms such as secret sharing, homomorphic encryption, and obfuscation circuits.
  • the specific content contained in the above calculation parameters usually depends on the specific algorithm type of the multi-party secure computing algorithm carried by each computing node. When each node device is equipped with the different algorithms listed above, the content included in the above calculation parameters will also have certain differences.
  • the above calculation parameters usually include N random numbers that each computing node splits the private data it holds; where the N random numbers include N-1 independently generated random numbers, and An operation result obtained by calculating the above N-1 random numbers together with the held private data (that is, the Nth random number).
  • the above calculation parameters usually include ciphertext data obtained by encrypting the privacy data based on the held key.
  • the above calculation parameters usually include a random number used to replace the input value of the obfuscation circuit (that is, the input data participating in the calculation) and the output value (also known as the obfuscated value of the input value and the output value).
  • the output value also known as the obfuscated value of the input value and the output value.
  • ciphertext data obtained by encrypting the obfuscated value of the output data with the obfuscated value of the input value as a key.
  • the above-mentioned trusted random source may include a random source independently developed by an operator of each computing node, or may include a random source provided by a trusted third party other than the above-mentioned provider; for example, in practical applications, the above-mentioned trusted random source
  • the source can be a computer program (e.g., a trusted random number generation algorithm, a generation function, etc.) independently developed by the operator of each computing node to generate a trusted random source, or it can be from a provider other than the above A computer program developed by a trusted third party to generate trusted random sources.
  • the above operation results include the operation results obtained by performing an irreversible operation on the trusted random number and the held private data; the inverse operation cannot be performed through the operation results to restore the held private data;
  • the operation result is the Nth random number obtained by performing the operation on the N-1 random numbers together with the held private data.
  • the above operation result is that after the input value of the obfuscated circuit is replaced based on a trusted random number, the obfuscated value corresponding to the input value of the obfuscated circuit is used as a key, and the obfuscated value of the output data is used. Encrypted ciphertext data.
  • multiple computing nodes can be deployed in a distributed network, and each computing node can be a participant in multi-party secure computing.
  • each computing node can be a participant in multi-party secure computing.
  • the private data held by them cannot be leaked.
  • the premise come to participate in multi-party secure computing.
  • each computing node can jointly carry multi-party secure computing software provided by a multi-party secure computing algorithm provider, use the multi-party secure computing software to perform message interactions, and transmit cipher text data that participates in multi-party secure computing between each computing node. Participate in multi-party secure computing.
  • the multi-party secure computing algorithm carried by each computing node specifically refers to supporting ciphertext data obtained by encrypting the private data held based on a key as a calculation parameter, and sending it to other A class of algorithms transmitted by computing nodes participating in multi-party secure computing; for example, multi-party secure computing algorithms such as homomorphic encryption and obfuscation circuits.
  • Each of the computing nodes deployed in the above-mentioned distributed network needs to be equipped with the same multi-party secure computing algorithm, and can also deploy independent trusted random sources, independent data sources, result storage systems, and log storage systems.
  • the trusted random source is used to generate a trusted random number.
  • the above data source is used to store and maintain the private data held by each data node.
  • the above result storage system is used to store and maintain the calculation results finally obtained by each data node participating in multi-party secure calculation.
  • the above-mentioned trusted random source may specifically be a random source provided by a trusted third party other than the provider of the multi-party secure computing algorithm.
  • each computing node It is also possible to no longer deploy a trusted random source locally, but directly connect to a trusted random source of a third party to obtain a trusted random source for performing operations on the held private data.
  • each node device may not need to deploy an independent data source and result storage system.
  • each computing node can directly obtain the data input by the user through the operation interface as a data source, and output the final calculation result of multi-party security calculation to the user through the operation interface.
  • the above-mentioned log storage system is used to store and maintain audit logs related to calculation parameters created by each data node.
  • each computing node does not need to deploy an independent log storage system locally; that is, in the In practical applications, the generating node and the storage node of the audit log may be the same or different, and are not specifically limited in this specification.
  • the private data that needs to participate in multi-party secure computing can first be read from the deployed data source, and from the above available data, A trusted random source to obtain a trusted random number;
  • the read privacy data may be operated to generate a calculation result corresponding to the held privacy data.
  • the target computing node when the target computing node obtains a trusted key from a trusted key source, the target computing node may directly obtain a random number generated by the trusted key source as the trusted key; or, Only obtain the random number used to generate the random number from the trusted key source (that is, the random number seed used to generate the random number), input the random number locally to the key generation function for calculation, and then calculate the random number As a trusted key.
  • the target computing node when it obtains a trusted key from a trusted key source, it may also obtain a random number obtained from the trusted key source and a key based on the piggybacked key. Generate a random number generated locally by the function, and further calculate the result as a trusted key; or, you can also input the random number obtained from the trusted key source into the key generation function to calculate the generated random number, and A locally generated random number based on the built-in random number generation function (that is, a random number calculation is performed using a locally generated random number seed), and the result of the further operation is used as a trusted key.
  • the operation rules used to perform operations on the read private data usually depend on the specific types of multi-party secure computing algorithms carried by the node devices. Different multi-party secure computing algorithms, based on the obtained trusted random numbers, may have differences in the calculation rules used to operate on the read privacy data;
  • the above-mentioned budget rule may specifically correspond to a process of calculating the N-th random number obtained by calculating the above-mentioned N-1 random numbers together with the held private data.
  • the above operation rules may specifically replace the input value of the obfuscation circuit based on a trusted random number, and use the obfuscation value corresponding to the input value of the obfuscation circuit as Key, the process of encrypting the obfuscated value of the output data.
  • the target computing node After the target computing node calculates the read privacy data based on the obtained trusted random number, and generates an operation result corresponding to the held private data, the target computing node may now use the multi-party secure computing algorithm on board.
  • Some message interaction mechanisms are used to construct interactive messages, and at least the above-mentioned trusted random numbers are used as calculation parameters to send to other computing nodes participating in multi-party secure computing.
  • the above-mentioned trusted random number and the above-mentioned operation result may also be used as calculation parameters and sent to other computing nodes participating in multi-party secure calculation;
  • the above operation result is the N-th share obtained by dividing the private data.
  • the computing node can choose to N shares are retained locally, but the remaining N-1 random numbers are sent as calculation parameters to other computing nodes.
  • one of the N-1 random numbers may be retained locally and the Nth The share and the remaining random numbers are sent as calculation parameters to other computing nodes.
  • computing nodes can collect the computing parameters sent by the computing nodes participating in multi-party secure computing through interactive messages, and perform multi-party secure computing based on the collected computing parameters, and then store the calculation results in the above-mentioned result storage system deployed locally. For storage.
  • the above-mentioned target computing node may also collect the computing parameters sent by each computing node participating in multi-party secure computing through interactive messages, and perform multi-party secure computing based on the collected computing parameters, and then deploy the calculation results locally.
  • the results are stored in a storage system.
  • each computing node participating in multi-party secure computing based on the collected computing parameters to perform multi-party secure computing usually depends on the specific algorithm type of the multi-party secure computing algorithm carried by each computing node. There are usually some differences in the calculation processes involved in the types of multi-party secure computing algorithms.
  • the multi-party secure computing algorithm carried by each computing node is used as a secret sharing algorithm and an obfuscation circuit algorithm as examples to briefly describe the algorithm logic of the various algorithms listed above.
  • Secret sharing algorithm is also called secret segmentation algorithm and secret sharing algorithm. Its basic principle is to split a secret (such as a key) into multiple shares (shares) and give them to different people for safekeeping. Only when the number of collected shares exceeds the threshold number can the secret be recovered; and if the number of collected shares is less than the threshold number, then no information can be recovered based on the share.
  • the above threshold number is usually the same as the number of computing nodes deployed in the distributed network that need to participate in multi-party computing.
  • each computing node When the secret sharing algorithm is used for multi-party secure computing, each computing node will split the input data into shares and exchange the shares with each other; then, each computing node will separately operate on multiple shares collected locally to obtain multi-party The secure share corresponding to the final calculation result (that is, a fragment of the final calculation result); finally, all the computing nodes' combined shares corresponding to the final calculation result are combined to obtain the final calculation result and complete multi-party secure calculation.
  • each computing node deployed in the above-mentioned distributed network is equipped with a multi-party secure computing algorithm that is a secret sharing algorithm
  • the target computing node reads the private data S that needs to participate in multi-party secure computing from the deployed data source, first
  • the above private data can be divided into d shares (random numbers) according to a secret sharing algorithm.
  • the existing calculation logic based on the secret sharing algorithm is usually based on the secret sharing algorithm.
  • random extraction is used to generate d-1 independent random numbers as the first d- One share, denoted as S 1 , S 2 , S 3 , ... S d-1 .
  • the privacy data S is a 64-bit integer data
  • P 2 64
  • the resulting d-1 independent random numbers are all randomly selected from the value space of [0, 2 64 -1] An extracted value.
  • the above first d-1 shares can no longer be generated by the secret sharing algorithm, but can be generated by a trusted random source deployed locally by the computing node.
  • the target computing node may obtain the first d-1 trusted random numbers from the trusted random source, and then may calculate the d-1 random numbers together with the privacy data S, and obtain the operation.
  • the result of the operation is denoted as S d as the d-th share.
  • an operation rule for performing the above d-1 random numbers together with the privacy data S generally depends on a specific secret sharing algorithm
  • % is a modulo operator.
  • the target computing node can retain a share locally, and then build an interactive message based on the existing message interaction mechanism of the secret sharing algorithm, and divide the remaining shares separately. Send to other computing nodes participating in multi-party secure computing.
  • the target computing node may retain the Nth share locally or any one of the first d-1 shares; that is, when the target computing node retains the Nth share locally, only the The randomness of the first d-1 shares is used as the calculation parameter; if any one of the first d-1 shares is retained locally, it will eventually be the remaining randomness of the first d-1 shares and the above-mentioned N-1 randomness.
  • the budget result of the number and privacy data S is used as a calculation parameter.
  • other computing nodes can collect the shares sent by each computing node, calculate the collected shares according to the computing logic agreed upon by each computing node, obtain a share corresponding to the final calculation result, and send the calculation result to Other computing nodes broadcast;
  • the target computing node can collect the calculation results broadcasted by other computing nodes, and then calculate the collected calculation results again according to the agreed operation logic to obtain the privacy held by each computing node.
  • the final calculation result of the multi-party secure calculation of the data, and then the above-mentioned final calculation result is stored in a locally deployed result storage system;
  • the above-mentioned target computing node may also collect the shares sent by other computing nodes, and calculate the collected shares according to the agreed operation logic to obtain a share corresponding to the final calculation result, and send the calculation result to Each other computing node broadcasts; and the other computing results can collect the computing results broadcasted by each computing node, and then recalculate the collected computing results in accordance with the agreed operating logic to obtain multi-party security for the private data S held The final result of the calculation;
  • the computing logic agreed upon by each computing node usually depends on the actual multi-party secure computing requirements, and is not specifically limited in this specification.
  • the obfuscation circuit algorithm works by using a computer to simulate ASIC integrated circuits to achieve multi-party secure computing.
  • Any multi-party secure computing task can be implemented with ASIC integrated circuits designed for it. That is, according to the operation logic corresponding to multi-party secure computing tasks, multiple operation gates (basic operation gates such as AND gate, XOR gate, etc.) are connected to simulate the gate circuit corresponding to the above operation logic, and then the gate circuit is used to perform the operation. .
  • basic operation gates such as AND gate, XOR gate, etc.
  • the operation logic corresponding to the multi-party secure computing task is usually expressed as a gate circuit, and each operation line of the gate circuit is encrypted.
  • the encrypted gate circuit is called an obfuscation circuit.
  • a computer is used to perform the calculation of the obfuscated circuit to achieve multi-party secure computing.
  • the computing nodes participating in the multi-party secure calculation are usually divided into two roles: the obfuscator generator and the obfuscator executive.
  • K-1 computing nodes are usually used as circuit generators to generate obfuscated circuits, and the remaining one is used as the obfuscator's executer. To perform the operation of the obfuscation circuit to obtain the final calculation result.
  • the operation logic corresponding to the multi-party secure computing task may first be expressed as a gate circuit
  • the operation logic needs to be shared by multiple computing nodes based on the private data held by them, for each computing node, it may only be able to correspond to one or a few of the above-mentioned gate circuits.
  • Some privacy data may only be used as input data for one or several of the above-mentioned gates.
  • the target computing node reads the private data S that needs to participate in multi-party secure computing from the deployed data source
  • the read private data S can be used as the target computing node's corresponding in the gate circuit.
  • the input value of the operation gate is calculated in the operation gate to obtain the output value of the operation gate.
  • truth table to represent and execute A truth table is used to record the output value obtained by the output line when the input line of the operation gate takes any input value. Each row in the truth table corresponds to an input value combination of the input lines. In order to hide the true value of each operation line in the operation gate in the operation of the gate circuit:
  • the target computing node can usually generate a random number locally based on the random function carried by the obfuscation circuit algorithm.
  • the input value and output value in the truth table of the operation gate are respectively Make a replacement; where the random number after the replacement is called the obfuscated value.
  • the random numbers used to replace the input values and output values in the truth table of the operation gate can be generated locally by the random function carried by the obfuscation circuit algorithm, but locally by the computing node. Deploy a trusted random source to generate.
  • the target computing node may obtain a random number from the trusted random source, and replace the input value and output value in the truth table based on the obtained random number.
  • the target computing node may also use the obfuscated value corresponding to the input value of the arithmetic gate as a key, and perform asymmetric encryption on the obfuscated value of the output value in the truth table of the arithmetic gate to obtain ciphertext data. Based on the ciphertext data, the obfuscated values of the output values in the original truth table are replaced to obtain a confounded truth table. Only the ciphertext data is included in the value table).
  • the target computing node may also disrupt the order of each row in the confusion truth table.
  • the obfuscation circuit is generated at this time, and the target computing node may be based on the existing message interaction mechanism of the obfuscation circuit.
  • the obfuscated value corresponding to the input value of the operation gate corresponding to the target computing node in the gate circuit and using the obfuscated value corresponding to the input value of the operation gate as a key to the truth value of the operation gate
  • the ciphertext data obtained by performing asymmetric encryption on the obfuscated values of the output values in the table is used as a calculation parameter and is sent to the computing node that is the execution side of the obfuscation circuit.
  • the obfuscated circuit algorithm is usually combined with an inadvertent transmission technology.
  • the above-mentioned target computing node is sending computation parameters to the computing node that acts as the obfuscator's executing party.
  • the obfuscated truth table can usually be sent in plain text directly to the computing node that is the executor of the obfuscated circuit; on the other hand, inadvertent transmission technology can be used to place the target computing node in the gate.
  • the obfuscated value corresponding to the input value of the corresponding operation gate in the circuit is sent to the computing node that is the obfuscating circuit executer through the fuzzy transmission method;
  • the computing node which is the execution side of the obfuscation circuit, can receive the calculation parameters sent by each computing node, and can calculate the confusion value corresponding to the input value of the corresponding operation gate of each computing node in the gate circuit.
  • the ciphertext data recorded in the obfuscated truth table of the corresponding operation gate in the above gate circuit is decrypted to obtain the obfuscated value of the output value of the operation gate corresponding to each calculation node in the above gate circuit.
  • the operations can be performed step by step to obtain the obfuscation corresponding to the final output value of the gate circuit. Value, and then use the obfuscated value as the final calculation result to send to other computing nodes.
  • the above target calculation calculates that after receiving the obfuscated value corresponding to the final output value of the gate circuit, it can query the truth table and obtain the output value corresponding to the obfuscated value based on the correspondence between the obfuscated value and the real output value.
  • the output value is used as the original value of the final calculation result of the multi-party security calculation, and stored in a locally deployed result storage system.
  • the calculation results stored in the above-mentioned result storage system can also be visually output to the management users of the computing nodes.
  • the target node device when the target node device is based on an existing message interaction mechanism based on a multi-party secure computing algorithm, by constructing an interactive message, the obtained trusted random number and the above-mentioned operation result are used as calculation parameters.
  • an audit log related to the random number sent can also be created locally, and the created audit log will be stored in a locally deployed log storage system.
  • the above audit log may be specifically used to record description information related to the random number sent to each computing node participating in multi-party secure computing;
  • the computing parameters that the computing node needs to send to other computing nodes participating in multi-party secure computing are usually carried in the message field in the interactive message constructed by the computing node, so they can be included in the audit log. It records the specific meaning of each field in the interactive message constructed by the computing node, and the descriptive information related to each field for auditing purposes.
  • the target node device when the above-mentioned target node device receives a random number that is at least included as a calculation parameter and is sent by the interactive message constructed by other computing nodes, it can also locally create an audit related to the random number sent by other computing nodes. Logs and the created audit logs are stored in a locally deployed log storage system.
  • the interactive messages constructed by each computing node usually follow the same message format; therefore, the target computing node is receiving
  • the interactive messages can be parsed according to the standard message format to generate a corresponding audit log, and the specific meaning of each field in the interactive message is recorded in the audit log.
  • the description information related to the random number recorded in the audit log may cover any form of description information that can prove that the random number is a trusted random number from the trusted random source. It is not particularly limited.
  • the description information related to the random number recorded in the audit log may specifically include a random number generation rule corresponding to the random number
  • the above-mentioned random number generation rule may specifically include any form of description information related to the above-mentioned random number generation method
  • the above random number is a trusted random number obtained from a trusted random source, a random number obtained based on a further operation of the trusted random number obtained from a trusted random source and a locally generated random number, and based on a trusted random number.
  • the random number seed obtained by the random source is input to the random number generated by the random number generation function, and the random number generated based on the random number seed obtained from the trusted random source is input to the random number generation function. Random numbers obtained by operations, etc., are not enumerated one by one in this specification.
  • the multi-party security algorithm provided by the provider of the multi-party secure computing algorithm may be commonly used, although the multi-party security algorithm itself is an algorithm used to protect private data , But incorrect or even malicious algorithm implementation, there may still be a risk of privacy data leakage.
  • a malicious multi-party secure computing algorithm may use a user's knowledge to construct a pseudo-random number based on the privacy data held by the computing node, and then use the pseudo-random number to send to other computing nodes. Privacy data.
  • a multi-party security algorithm for each computing node is provided. Perform a privacy audit (you can also perform a privacy audit only on the multi-party security algorithm carried by this node, or the multi-party security algorithm carried by a specified computing node in each computing node) to determine the random numbers sent by each computing node and whether there is a privacy leak risks of.
  • the privacy audit of the multi-party security algorithms carried by each computing node can also be completed by a third-party audit node; in this case, each computing node deployed in the above-mentioned distributed network can use
  • the audit log in the log storage system is sent to the audit node (for example, the audit log can be sent actively, or the audit node can actively call the audit log), and the third-party audit node checks the audit log based on the received audit log.
  • the multi-party security algorithm carried by each computing node performs a privacy audit to determine whether the computing parameters sent by each computing node are at risk of privacy leakage.
  • each computing node is equipped with a multi-party secure computing algorithm provided by a provider, and the operator of each computing node independently deploys an audit node to perform multi-party secure computing algorithms provided by the provider. Privacy audit.
  • the audit logic for performing a privacy audit on the multi-party security algorithms carried by each computing node depends on the specific content of the random number-related description information recorded in the audit log;
  • the description information related to the ciphertext data recorded in the audit log may specifically include a random number generation rule corresponding to the ciphertext data.
  • the computing node can read the audit log corresponding to the random number sent by each computing node participating in multi-party secure computing as a calculation parameter from the locally deployed log storage system, and based on the read audit log A recorded random number generation rule corresponding to the random number to check whether the random number is a trusted random number from the trusted random source;
  • the specific verification rules usually completely correspond to the above-mentioned random number generation rules
  • the above random number generation rule is: a trusted random number obtained from a trusted random source; when a trusted key source generates a random number as a trusted key, it is usually In the preset random number value space, a random extraction method is used to randomly select a random number as a trusted key; therefore, the above verification rule may specifically: confirm whether the value of the random number is in the random Within the value range of the number value space; if yes, it indicates that the random number is a random number extracted from the value range of the above random number value space. At this time, the random number is from a trusted key source. On the contrary, it indicates that the random number is not a random number extracted from the value range of the above random number value space. At this time, the random number may not be a valid number from a trusted key source. Letter key.
  • the above random number generation rule is: input a random number seed trusted random number obtained from a trusted random source into a random number generated by a random number generation function; then the above verification The rule may specifically be: whether the above-mentioned random number seed is a legitimate data source of a trusted random source.
  • the random number used as a calculation parameter does not have privacy. Risk of leakage; conversely, if the verification confirms that the above random number is not a trusted random number from a trusted random source, or the data source that generates the above random number is not a legitimate data source from a trusted random source, at this time
  • the random number may be a pseudo-random number constructed based on the private data held by the computing node, and the random number as a calculation parameter has a risk of privacy leakage.
  • the computing node can easily verify whether the random number used as the computing parameter is a trusted random number from a trusted random source by performing a simple audit of the audit log in the locally deployed log storage system, so that it can be timely Discover the risks of privacy breaches.
  • each computing node participating in multi-party secure computing can obtain a trusted random number from a docked trusted random source, and based on the trusted random number, perform operation on the held private data to obtain an operation result, and then at least The trusted random number and operation result are used as calculation parameters and sent to other computing nodes participating in the multi-party secure calculation to perform multi-party secure calculation, so that the computing node can no longer use the locally generated random number of the multi-party secure computing algorithm as the calculation.
  • Parameters but instead use trusted random numbers obtained from docked trusted random sources as calculation parameters, which can prevent malicious multi-party secure computing algorithms from constructing pseudo-random numbers as calculation parameters based on the private data they hold. Risk of privacy leaks.
  • this specification also provides an embodiment of a multi-party secure computing device.
  • the embodiments of the multi-party secure computing device of this specification can be applied to electronic devices.
  • the device embodiments may be implemented by software, or by hardware or a combination of software and hardware. Taking software implementation as an example, as a device in a logical sense, it is formed by reading the corresponding computer program instructions in the non-volatile memory into the memory through the processor of the electronic device in which it is located.
  • FIG. 2 it is a hardware structure diagram of the electronic device in which the multi-party secure computing device of this specification is located, except for the processor, memory, network interface, and non-volatile memory shown in FIG. 2.
  • the electronic device in which the device is located in the embodiment may generally include other hardware according to the actual function of the electronic device, and details are not described herein again.
  • Fig. 3 is a block diagram of a multi-party secure computing device according to an exemplary embodiment of the present specification.
  • the multi-party secure computing device 30 may be applied to the aforementioned electronic device shown in FIG. 1 and includes: an obtaining module 301, an operation module 302, and a sending module 303.
  • An obtaining module 301 obtaining a trusted random number from the trusted random source
  • the operation module 302 performs an operation on the held private data based on the obtained trusted random number to obtain an operation result
  • the sending module 303 sends at least the trusted random number as a calculation parameter to other computing nodes participating in multi-party secure computing, and the calculation is sent by the other computing nodes based on the calculations sent by the computing nodes participating in multi-party secure computing. Parameters perform multi-party secure calculations.
  • the apparatus 30 further includes:
  • the creating module 304 (not shown in FIG. 3) creates an audit log corresponding to the trusted random number sent by the computing node to the other computing nodes; wherein the audit log records the trusted random number Number of related descriptive information.
  • the apparatus 30 further includes:
  • the collecting module 305 (not shown in FIG. 3) collects computing parameters sent by other computing nodes participating in multi-party secure computing; wherein the computing parameters include at least random numbers sent by other computing nodes;
  • the apparatus 30 further includes:
  • An audit module 306 (not shown in FIG. 3), based on the audit log, performs a privacy audit on a random number sent by a computing node participating in multi-party secure computing as a computing parameter, and confirms the random number sent by the computing node as a computing parameter. Whether there is a risk of privacy breaches;
  • the audit log is sent to a third-party audit node, and the audit node performs a privacy audit on the random number sent by the computing node participating in the multi-party secure computing as a calculation parameter, and confirms that the computing node sends the computing Whether the random number of the parameter poses a risk of privacy leakage.
  • the description information related to the trusted random number includes: a random number generation rule corresponding to the trusted random number;
  • the auditing module 306 further:
  • the obtaining a trusted random number from the trusted random source includes any of the following:
  • the relevant part may refer to the description of the method embodiment.
  • the device embodiments described above are only schematic, and the modules described as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical modules, which may be located in One place, or can be distributed to multiple network modules. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution in this specification. Those of ordinary skill in the art can understand and implement without creative efforts.
  • the system, device, module, or module described in the foregoing embodiments may be specifically implemented by a computer chip or entity, or may be implemented by a product having a certain function.
  • a typical implementation device is a computer, and the specific form of the computer may be a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email sending and receiving device, and a game control Desk, tablet computer, wearable device, or a combination of any of these devices.
  • the electronic device includes a processor and a memory for storing machine-executable instructions; wherein the processor and the memory are usually connected to each other through an internal bus.
  • the device may further include an external interface to enable communication with other devices or components.
  • the processor by reading and executing machine-executable instructions corresponding to control logic of multi-party secure computing stored in the memory, the processor is caused to:
  • At least the trusted random number is used as a computing parameter to send to other computing nodes participating in multi-party secure computing, and the other computing node performs multi-party security based on the collected computing parameters sent by each computing node participating in multi-party secure computing. Calculation.
  • the processor by reading and executing machine-executable instructions corresponding to control logic of multi-party secure computing stored in the memory, the processor is caused to:
  • An audit log corresponding to the trusted random number sent by the computing node to the other computing nodes is created; wherein the audit log records descriptive information related to the trusted random number.
  • the processor by reading and executing machine-executable instructions corresponding to control logic of multi-party secure computing stored in the memory, the processor is caused to:
  • the processor by reading and executing machine-executable instructions corresponding to control logic of multi-party secure computing stored in the memory, the processor is caused to:
  • the audit log is sent to a third-party audit node, and the audit node performs a privacy audit on the random number sent by the computing node participating in the multi-party secure computing as a calculation parameter, and confirms that the computing node sends the computing Whether the random number of the parameter poses a risk of privacy leakage.
  • the description information related to the trusted random number includes: a random number generation rule corresponding to the trusted random number;
  • the processor By reading and executing machine-executable instructions corresponding to control logic of multi-party secure computing stored in the memory, the processor is caused to:

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

一种多方安全计算方法,应用于分布式网络中部署的任一计算节点;所述分布式网络部署了多个计算节点,所述多个计算节点基于各自持有的隐私数据共同参与多方安全计算;其中,所述计算节点对接了可信随机源;所述方法包括:从所述可信随机源获取可信随机数;基于获取到的可信随机数对持有的隐私数据进行运算得到运算结果;至少将所述可信随机数作为计算参数,发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算。

Description

多方安全计算方法及装置、电子设备 技术领域
本说明书一个或多个实施例涉及分布式计算领域,尤其涉及一种多方安全计算方法及装置、电子设备。
背景技术
多方安全计算是一种密码学技术,参与计算的多方可以通过执行一个多方安全计算算法,基于各自持有的输入数据来共同进行安全计算,得到出一个计算结果,而不向其它各方泄露持有的输入数据。
多方安全计算算法,虽然能保护隐私数据,但不正确甚至恶意的算法实现,仍然可能会泄露隐私数据。最理想情况下,各方可以自行开发自己的多方安全计算软件,并各自利用各自开发的多方安全计算软件来参与多方安全计算。然而,在实际应用中,各方通常使用的可能是一个提供商提供的多方安全计算软件;因此,对于提供商而言,则需要证明其提供的多方安全计算软件是可信的,没有泄露隐私数据。
发明内容
本说明书提出一种多方安全计算方法,应用于分布式网络中部署的任一计算节点;所述分布式网络部署了多个计算节点,所述多个计算节点基于各自持有的隐私数据共同参与多方安全计算;其中,所述计算节点对接了可信随机源;所述方法包括:
从所述可信随机源获取可信随机数;
基于获取到的可信随机数对持有的隐私数据进行运算得到运算结果;
至少将所述可信随机数作为计算参数,发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算。
可选的,还包括:
创建与本计算节点发送至所述其它计算节点的所述可信随机数对应的审计日志;其 中,所述审计日志记录了与所述可信随机数相关的描述信息。
可选的,还包括:
收集参与多方安全计算的其它各计算节点发送的计算参数;其中,该计算参数至少包括由其它各计算节点发送的随机数;
基于收集到的计算参数执行多方安全计算;以及,
创建与所述其它各计算节点发送的随机数对应的审计日志;其中,所述审计日志包括与所述随机数相关的描述信息。
可选的,还包括:
基于所述审计日志对参与多方安全计算的计算节点发送的作为计算参数的随机数进行隐私审计,确认所述计算节点发送的作为计算参数的随机数是否存在隐私泄露风险;
或者,将所述审计日志发送至第三方的审计节点,以由所述审计节点对参与多方安全计算的计算节点发送的作为计算参数的随机数进行隐私审计,确认所述计算节点发送的作为计算参数的随机数是否存在隐私泄露风险。
可选的,与所述可信随机数相关的描述信息,包括:与所述可信随机数对应的随机数生成规则;
所述基于所述审计日志对参与多方安全计算的计算节点发送的作为计算参数的随机数进行隐私审计,确认所述计算节点发送的作为计算参数的随机数是否存在隐私泄露风险,包括:
基于所述审计日志中记录的,与参与多方安全计算的计算节点发送的随机数对应的随机数生成规则,校验所述随机数是否匹配来自所述可信随机源的可信随机数;
如果是,确认所述计算节点发送的作为计算参数的随机数存在隐私泄露风险;
如果否,确认所述计算节点发送的作为计算参数的随机数不存在隐私泄露风险。
可选的,所述从所述可信随机源获取可信随机数,包括以下中的任一:
获取由所述可信随机源生成的随机数作为所述可信随机数;
获取由所述可信随机源生成的随机数,将由所述可信随机源生成的随机数,与本计算节点生成的随机数进一步进行运算得到的结果,作为所述可信随机数;
获取由所述可信随机源生成的随机数,将所述随机数输入密钥生成函数计算得到的 随机数作为所述可信随机数;
获取由所述可信随机源生成的随机数,将所述随机数输入密钥生成函数计算得到的随机数,与本计算节点生成的随机数进一步进行运算得到的结果,作为所述可信随机数。
本说明书还提出一种多方安全计算装置,应用于分布式网络中部署的任一计算节点;所述分布式网络部署了多个计算节点,所述多个计算节点基于各自持有的隐私数据共同参与多方安全计算;其中,所述计算节点对接了可信随机源;所述装置包括:
获取模块,从所述可信随机源获取可信随机数;
运算模块,基于获取到的可信随机数对持有的隐私数据进行运算得到运算结果;
发送模块,至少将所述可信随机数作为计算参数,发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算。
可选的,还包括:
创建模块,创建与本计算节点发送至所述其它计算节点的所述可信随机数对应的审计日志;其中,所述审计日志记录了与所述可信随机数相关的描述信息。
可选的,还包括:
收集模块,收集参与多方安全计算的其它各计算节点发送的计算参数;其中,该计算参数至少包括由其它各计算节点发送的随机数;
基于收集到的计算参数执行多方安全计算;以及,
创建与所述其它各计算节点发送的随机数对应的审计日志;其中,所述审计日志包括与所述随机数相关的描述信息。
可选的,还包括:
审计模块,基于所述审计日志对参与多方安全计算的计算节点发送的作为计算参数的随机数进行隐私审计,确认所述计算节点发送的作为计算参数的随机数是否存在隐私泄露风险;
或者,将所述审计日志发送至第三方的审计节点,以由所述审计节点对参与多方安全计算的计算节点发送的作为计算参数的随机数进行隐私审计,确认所述计算节点发送的作为计算参数的随机数是否存在隐私泄露风险。
可选的,与所述可信随机数相关的描述信息,包括:与所述可信随机数对应的随机数生成规则;
所述审计模块进一步:
基于所述审计日志中记录的,与参与多方安全计算的计算节点发送的随机数对应的随机数生成规则,校验所述随机数是否匹配来自所述可信随机源的可信随机数;
如果是,确认所述计算节点发送的作为计算参数的随机数存在隐私泄露风险;
如果否,确认所述计算节点发送的作为计算参数的随机数不存在隐私泄露风险。
可选的,所述从所述可信随机源获取可信随机数,包括以下中的任一:
获取由所述可信随机源生成的随机数作为所述可信随机数;
获取由所述可信随机源生成的随机数,将由所述可信随机源生成的随机数,与本计算节点生成的随机数进一步进行运算得到的结果,作为所述可信随机数;
获取由所述可信随机源生成的随机数,将所述随机数输入密钥生成函数计算得到的随机数作为所述可信随机数;
获取由所述可信随机源生成的随机数,将所述随机数输入密钥生成函数计算得到的随机数,与本计算节点生成的随机数进一步进行运算得到的结果,作为所述可信随机数。
本说明书还提出一种电子设备,包括:
处理器;
用于存储机器可执行指令的存储器;
其中,通过读取并执行所述存储器存储的与多方安全计算的控制逻辑对应的机器可执行指令,所述处理器被促使:
从所述可信随机源获取可信随机数;
基于获取到的可信随机数对持有的隐私数据进行运算得到运算结果;
至少将所述可信随机数作为计算参数,发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算。
通过以上技术方案,由于参与多方安全计算的各计算节点,可以从对接的可信随机源获取可信随机数,并基于该可信随机数对持有的隐私数据进行运算得到运算结果,然 后至少将该可信随机数作为计算参数,发送给参与多方安全计算的其它计算节点来执行多方安全计算,使得计算节点可以不再使用搭载的多方安全计算算法在本地生成的随机数作为计算参数,而是使用从对接的可信随机源获取到的可信随机数来作为计算参数,从而可以避免恶意的多方安全计算算法基于持有的隐私数据来构造假随机数作为计算参数,而造成的隐私泄露的风险。
附图说明
图1是一示例性实施例提供的一种多方安全计算方法的流程图。
图2是一示例性实施例提供的一种电子设备的结构示意图。
图3是一示例性实施例提供的一种多方安全计算装置的框图。
具体实施方式
对于搭载诸如秘密分享、混淆电路等多方安全计算算法的计算节点而言,通常会基于搭载的随机算法生成一个或者多个随机数,并使用生成的随机数对持有的隐私数据进行运算得到预算结果,然后将生成的随机数以及上述运算结果作为计算参数,传输给参与多方安全计算的其它计算节点。
而在实际应用中,恶意的多方安全算法,可能会使用参与多方安全计算的计算节点持有的隐私数据,来构造假随机数,然后将该假随机数,以及基于该假随机数对持有的隐私数据进行运算得到的运算结果,传输给参与多方安全计算的其它计算节点;进而,通过这种方式,其它计算节点就可以对假随机数进行逆向恢复,还原出构造假随机数的原始的隐私数据,从而造成隐私泄露;
例如,可以将持有的隐私数据输入到可逆的随机数生成函数,得到一个假随机数;而接收方可以通过随机数生成函数的逆函数,基于假随机数反向计算恢复出构造假随机数的原始的隐私数据。
基于此,本说明书中则旨在提出一种,将来自可信随机源的可信随机数作为多方安全计算的计算参数,以避免基于参与多方安全计算的计算节点持有的隐私数据构造假随机数作为计算参数而造成的隐私泄露的技术方案。
在实现时,分布式网络中的计算节点,除了可以搭载由提供商提供的多方安全计算算法以外,还可以分别对接一个可信随机源;其中,上述可信随机源可以是由各计算节 点的运营方独立开发的随机源,也可以是由上述提供商以外的可信第三方开发的随机源。
各计算节点在基于持有的隐私数据参与多方安全计算时,可以从对接的可信随机源中,获取一个可信随机数,并基于该可信随机数对持有的隐私数据进行预算得到运算结果;然后至少将上述可信随机数作为计算参数(一些场景下,也可以将上述运算结果一并作为计算参数),发送至分布式网络中参与多方安全计算的其它各计算节点,由其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数来执行多方安全计算。
通过以上技术方案,由于参与多方安全计算的各计算节点,可以从对接的可信随机源获取可信随机数,并基于该可信随机数对持有的隐私数据进行运算得到运算结果,然后至少将该可信随机数作为计算参数,发送给参与多方安全计算的其它计算节点来执行多方安全计算,使得计算节点可以不再使用搭载的多方安全计算算法在本地生成的随机数作为计算参数,而是使用从对接的可信随机源获取到的可信随机数来作为计算参数,从而可以避免恶意的多方安全计算算法基于持有的隐私数据来构造假随机数作为计算参数,而造成的隐私泄露的风险。
下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
请参考图1,图1是本说明书一实施例提供的一种多方安全计算方法,应用于分布式网络中部署的任一计算节点;上述分布式网络部署了多个计算节点,上述多个计算节点基于各自持有的隐私数据共同参与多方安全计算;其中,所述分布式网络中部署的各计算节点分别对接了可信随机源;所述多方安全计算方法执行以下步骤:
步骤102,从所述可信随机源获取可信随机数;
步骤104,基于获取到的可信随机数对持有的隐私数据进行运算得到运算结果;
步骤106,至少将所述可信随机数作为计算参数,发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算。
上述分布式网络,可以包括能够支撑多方安全计算,且采用了分布式架构的任意形态的数据网络;
例如,在一种场景下,上述分布式网络可以是由若干台计算设备组成的设备集群(比如服务器集群)搭建的多方安全计算平台;
又如,在另一种场景下,上述分布式网络也可以是由若干台节点设备组成的区块链网络;在该区块链网络中可以部署需要由多台节点设备基于持有的隐私数据共同参与多方安全计算,且需要保证持有的隐私数据不公开给其它节点设备的在线业务。其中,上述在线业务的具体类型,在本说明书中不进行特别限定。
上述计算节点,具体可以包括上述分布式网络中,能够搭载上述多方安全计算算法的节点设备。
上述多方安全计算算法,具体可以包括由各计算节点独立开发,或者由提供方统一提供的多方安全计算算法;比如,在实际应用中,上述多方安全计算算法,具体可以对应由各计算节点独立开发,或者由提供方统一提供的多方安全计算软件。
上述计算参数,具体是指由参与多方安全计算的各计算节点,基于搭载的多方安全计算算法生成的,与各计算节点持有的隐私数据相关计算参数;各计算节点需要计算节点之间通过交互消息互相传输生成的计算参数,并基于收集到的各计算节点生成的计算参数来执行多方安全计算。
在实际应用中,上述计算参数通常可以包括:需要参与多方安全计算的随机数;和/或,需要参与多方安全计算的密文数据。
其中,需要说明的是,在实际应用中,上述多方安全计算算法,通常包括诸如秘密分享、同态加密、混淆电路等多方安全计算算法。而上述计算参数所包含的具体内容,通常取决于各计算节点所搭载的多方安全计算算法的具体算法类型。当各节点设备搭载以上列举出的不同算法时,上述计算参数所包含的内容,也会存在一定的差异。
例如,基于秘密分享算法,上述计算参数,通常包括各计算节点将持有的隐私数据拆分出的N个随机数;其中,上述N个随机数包括N-1个独立生成的随机数、和将上述N-1个随机数与持有的隐私数据一起进行运算得到的运算结果(即第N个随机数)。
基于同态加密算法,上述计算参数,通常包括基于持有的密钥对隐私数据进行加密后得到的密文数据。
基于混淆电路算法,上述计算参数,通常包括用于对混淆电路的输入值(即参与计算的输入数据)和输出值分别进行替换的随机数(也称之为输入值和输出值的混淆值),以及将输入值的混淆值作为密钥,对输出数据的混淆值进行加密后得到的密文数据。
上述可信随机源,可以包括由各计算节点的运营方独立开发的随机源,也可以包括由上述提供商以外的可信第三方提供的随机源;例如,在实际应用中,上述可信随机源 具体可以是一个由各计算节点的运营方独立开发的用于生成可信随机源的计算机程序(比如,可信随机数生成算法、生成函数,等等),也可以是由上述提供商以外的可信第三方开发的用于生成可信随机源的计算机程序。
上述运算结果,包括针对可信随机数与持有的隐私数据进行不可逆运算得到的运算结果;通过该运算结果无法进行反向逆运算还原出持有的隐私数据;
例如,以秘密分享算法为例,上述运算结果即为将上述N-1个随机数与持有的隐私数据一起进行运算得到的第N个随机数。
又如,以混淆电路算法为例,上述运算结果即为基于可信随机数对混淆电路的输入值进行替换后,将混淆电路的输入值对应的混淆值作为密钥,对输出数据的混淆值进行加密后得到的密文数据。
在本说明书中,可以在分布式网络中,部署多个计算节点,各个计算节点作为多方安全计算的参与方,可以通过共同搭载同一种多方安全计算算法,在不泄露各自持有的隐私数据的前提下,来参与多方安全计算。
例如,各个计算节点可以共同搭载由多方安全计算算法的提供商提供的多方安全计算软件,通过该多方安全计算软件进行消息交互,在各个计算节点之间传输参与多方安全计算的密文数据,来参与多方安全计算。
其中,需要说明的是,在本说明书中,各计算节点所搭载的多方安全计算算法具体是指,支持将基于密钥对持有的隐私数据进行加密得到的密文数据作为计算参数,向其它参与多方安全计算的计算节点进行传输的一类算法;例如,同态加密、混淆电路等多方安全计算算法。
上述分布式网络中部署的各个计算节点,除了需要共同搭载上同一种多方安全计算算法以外,还可以分别部署独立的可信随机源、独立的数据源,结果存储系统、以及日志存储系统。
其中,上述可信随机源,用于生成可信的随机数。
上述数据源,用于存储和维护各个数据节点持有的隐私数据。
上述结果存储系统,用于存储和维护各个数据节点参与多方安全计算最终得到的计算结果。
需要说明的是,在实际应用中,上述可信随机源,具体也可以是除了上述多方安全 计算算法的提供商以外的可信第三方提供的随机源,在这种情况下,各个计算节点,也可以不再本地部署可信随机源,而是直接对接第三方的可信随机源,来获取用于对持有的隐私数据进行运算的可信随机源。
另外,在一些仅有少量数据参与的安全多方计算中,各个节点设备也可以不需要部署独立的数据源和结果存储系统。在这种情况下,各个计算节点,可以直接获取用户通过操作界面输入的数据作为数据源,并将最终的多方安全计算的计算结果,通过该操作界面向用户输出即可。
上述日志存储系统,用于存储和维护由各个数据节点创建的与计算参数相关的审计日志。
需要说明的是,对于创建的审计日志,也可以存储在第三方的存储设备或者存储系统中,在这种情况下,各个计算节点本地则可以不需要部署独立的日志存储系统;也即,在实际应用中,审计日志的生成节点和存储节点,可以相同也可以不同,在本说明书中不进行特别限定。
对于参与多方安全计算的任一目标计算节点而言,在与其它各计算节点共同完成多方安全计算时,首先可以从部署的数据源中读取需要参与多方安全计算的隐私数据,并从上述可信随机源获取一个可信随机数;
然后,可以基于获取到的可信随机数,对读取到的隐私数据进行运算,生成与持有的隐私数据对应的运算结果。
在示出的一种实施方式中,上述目标计算节点在从可信密钥源获取可信密钥时,可以直接获取可信密钥源生成的随机数作为可信密钥;或者,也可以仅从可信密钥源获取用于生成随机数的随机数(即用于生成随机数的随机数种子),在本地将该随机数输入密钥生成函数进行计算,然后将计算得到的随机数作为可信密钥。
在示出的另一种实施方式中,上述目标计算节点在从可信密钥源获取可信密钥时,也可以将从可信密钥源获取到的随机数,与基于搭载的密钥生成函数在本地生成的随机数,进一步进行运算得到的结果,作为可信密钥;或者,也可以将从可信密钥源获取到的随机数输入密钥生成函数计算生成的随机数,与基于搭载的随机数生成函数在本地生成的随机数(即采用本地生成的随机数种子进行随机数计算),进一步进行运算得到的结果,作为可信密钥。
其中,基于获取到的可信随机数,对读取到的隐私数据进行运算所采用的运算 规则,通常取决于节点设备搭载的多方安全计算算法的具体类型。不同的多方安全计算算法,基于获取到的可信随机数,对读取到的隐私数据进行运算所采用的运算规则,可能存在差异;
例如,如果节点设备搭载的多方安全计算算法为秘密分享算法,上述预算规则,具体可以对应将上述N-1个随机数与持有的隐私数据一起进行运算得到的第N个随机数的过程。
又如,如果节点设备搭载的多方安全计算算法为混淆电路算法,上述运算规则,具体可以对应基于可信随机数对混淆电路的输入值进行替换后,将混淆电路的输入值对应的混淆值作为密钥,对输出数据的混淆值进行加密运算的过程。
当上述目标计算节点基于获取到的可信随机数,对读取到的隐私数据进行运算,生成与持有的隐私数据对应的运算结果之后,上述目标计算节点可以基于搭载的多方安全计算算法现有的消息交互机制,来构建交互消息,至少将上述可信随机数作为计算参数,发送至参与多方安全计算的其它计算节点。
其中,需要说明的是,在实际应用中,也可以将上述可信随机数以及上述运算结果一起作为计算参数,发送给参与多方安全计算的其它计算节点;
例如,以计算节点搭载的多方安全计算算法为秘密分享算法为例,基于秘密分享算法,上述运算结果为对隐私数据分割得到的第N个share,在这种情况下,计算节点可以选择将第N个share在本地保留,而是将剩余的N-1个随机数作为计算参数发送给其它计算节点,也可以选择在本地保留上述N-1个随机数中的其中一个,而将上述第N个share和剩余的随机数作为计算参数发送给其它计算节点。
而其它计算节点可以收集由参与多方安全计算的各计算节点通过交互消息发送的计算参数,并基于收集到的计算参数,来执行多方安全计算,然后将计算结果在本地部署的上述结果存储系统中进行存储。
相应的,上述目标计算节点也可以收集由参与多方安全计算的各计算节点,通过交互消息发送的计算参数,并基于收集到的计算参数,来执行多方安全计算,然后将计算结果在本地部署的上述结果存储系统中进行存储。
其中,需要说明的是,参与多方安全计算的各计算节点,在基于收集到的计算参数执行多方安全计算的计算过程,通常取决于各计算节点所搭载的多方安全计算算法的具体算法类型,不同类型的多方安全计算算法所涉及的计算过程通常会存在一定的差 异。
以下分别以各计算节点搭载的多方安全计算算法为秘密分享算法、混淆电路算法为例,对以上列举出的各种算法的算法逻辑进行简要描述。
1)秘密分享(secret sharing)算法
秘密分享(secret sharing)算法也称为秘密分割算法、秘密共享算法。它的基本原理是将秘密(比如密钥)拆分成多个分片(share),分别交给不同人保管。只有收集到的share的数量超过门限数量时,才能恢复秘密;而如果收集到的share的数量少于门限数量,则基于share无法恢复秘密的任何信息。其中,秘密分享算法应用在多方安全计算中时,上述门限数量通常与分布式网络中部署的需要参与多方计算的计算节点的数量相同。
当秘密分享算法用于多方安全计算时,各计算节点会将输入数据分别拆分成share,并互相交换share;然后,各计算节点会分别对本地收集到的多个share进行运算,得到与多方安全计算最终的计算结果对应的share(即最终运算结果的一个分片);最后,各计算节点合并生成的所有与最终的计算结果对应的share,得到最终的计算结果,完成多方安全计算。
如果上述分布式网络中部署的各计算节点,所搭载的多方安全计算算法为秘密分享算法,上述目标计算节点在从部署的数据源中读取到需要参与多方安全计算的隐私数据S之后,首先可以按照秘密分享算法,将上述隐私数据分割为d个share(随机数)。
其中,基于秘密分享算法现有的计算逻辑,通常会基于秘密分享算法,在预设的随机数取值空间P中,采用随机抽取的方式,生成d-1个独立的随机数作为前d-1个share,记为S 1,S 2,S 3,…S d-1
例如,若隐私数据S是一个64bit的整型数据,则P=2 64;最终生成的d-1个独立的随机数,则均为从[0,2 64-1]的取值空间中随机抽取的一个取值。
而在本说明书中,上述前d-1个share,可以不再由秘密分享算法生成,而是由计算节点本地部署的可信随机源来生成。
进一步的,上述目标计算节点,可以从上述可信随机源,来获取前d-1个可信随机数,然后可以将上述d-1个随机数与隐私数据S一起进行运算,并将运算得到的运算结果,作为第d个share,记为S d
其中,将上述d-1个随机数与隐私数据S一起进行运算的运算规则,通常取决于具体的秘密分享算法;
例如,以秘密分享算法中最常用的trivial additive secret sharing算法为例,通常要求对隐私数据分割得到的d个share要满足以下表达时:
S=S 1+S 2+S 3+…+S d%P
其中,%为取模运算符。
基于以上表达式,S d=S-(S 1+S 2+S 3+…+S d-1)%P。在这种算法下,可以通过将隐私数据S,与前d-1个share的和与取值空间P的取模计算结果进行相减得到S d
当基于秘密分享算法完成对隐私数据S的数据分割后,上述目标计算节点可以在本地保留一个share,然后基于秘密分享算法现有的消息交互机制,来构建交互消息,将剩下的share,分别发送给其它参与多方安全计算的各计算节点。
其中,上述目标计算节点可以在本地保留第N个share,也可以保留前d-1个share中的任意一个;也即,当上述目标计算节点在本地保留第N个share时,最终仅会将作为前d-1个share的随机作为计算参数;而如果在本地保留前d-1个share中的任意一个,最终会将作为前d-1个share的剩余随机,和上述N-1个随机数与隐私数据S的预算结果作为计算参数。
一方面,其它各计算节点,可以收集各计算节点发送的share,按照各计算节点约定好的运算逻辑对收集到的share进行计算,得到一个与最终的计算结果对应的share,并将计算结果向其它各计算节点进行广播;而上述目标计算节点可以收集其它各计算节点广播的计算结果,再按照约定好的运算逻辑对收集到的计算结果再次进行计算,得到对各个计算节点各自持有的隐私数据进行多方安全计算的最终计算结果,然后将上述最终计算结果在本地部署的结果存储系统中进行存储;
另一方面,上述目标计算节点,也可以收集其它各计算节点发送的share,按照约定好的运算逻辑对收集到的share进行计算,得到一个与最终的计算结果对应的share,并将计算结果向其它各计算节点进行广播;而其它各计算结果可以收集各计算节点广播的计算结果,再按照约定好的运算逻辑对收集到的计算结果再次进行计算,得到对持有的隐私数据S进行多方安全计算的最终结果;
其中,各计算节点约定好的运算逻辑,通常取决于实际的多方安全计算需求,在本说明书中不进行特别限定。
2)混淆电路算法
混淆电路算法,原理是通过用计算机模拟ASIC集成电路,来实现多方安全计算。任何多方安全计算任务,都可以用为其设计的ASIC集成电路来实现。即可以按照多方安全计算任务对应的运算逻辑,利用多个运算门(与门、异或门等基础运算门)连接起来,模拟出与上述运算逻辑对应的门电路,然后使用门电路来进行运算。
基于混淆电路算法,通常将多方安全计算任务对应的运算逻辑表示为门电路,并对上述门电路的每条运算线路进行加密,加密后的上述门电路称为混淆电路。最终通过用计算机来执行混淆电路的运算,来实现多方安全计算。
在基于混淆电路算法来实现多方安全计算时,参与多方安全计算的计算节点,通常会被划分为混淆电路生成方,和混淆电路的执行方两种角色。
例如,在一个由K个计算节点参与的多方安全计算中,通常会由其中的K-1个计算节点作为电路生成方,来生成混淆电路,而剩余的一个计算节点作为混淆电路的执行方,来执行混淆电路的运算,来得到最终的计算结果。
如果上述分布式网络中部署的各计算节点,所搭载的多方安全计算算法为混淆电路算法,首先可以将与多方安全计算任务对应的运算逻辑,表示为门电路;
其中,由于该运算逻辑需要由多个计算节点基于各自持有的隐私数据来共同参数,对于每一个计算节点而言,可能仅能够对应上述门电路中的一个或者其中几个运算门,其持有的隐私数据可能仅能够作为上述门电路中的一个或者其中几个运算门的输入数据。
进一步的,上述目标计算节点在从部署的数据源中读取到需要参与多方安全计算的隐私数据S之后,可以将读取到的隐私数据S,作为该目标计算节点在上述门电路中对应的运算门的输入值,在上述运算门中进行运算,得到上述运算门的输出值。
其中,在实际应用中,上述门电路中每个运算门的运算逻辑,都可以用
真值表来表示和执行。一张真值表用于记录该运算门的输入线路取任何输入值时,输出线路得到的输出值。真值表中的每一行对应输入线路的一种输入值组合。而为了在门电路的运算中隐藏该运算门中各运算线路的真实值:
一方面,基于混淆电路算法现有的计算逻辑,上述目标计算节点,通常可以基于混淆电路算法搭载的随机函数在本地生成随机数,对上述运算门的真值表中的输入值 和输出值分别进行替换;其中,替换后的随机数称之为混淆值。
而在本说明书中,上述用于对运算门的真值表中的输入值和输出值进行替换的随机数,可以不再由混淆电路算法搭载的随机函数在本地生成,而是由计算节点本地部署的可信随机源来生成。
在这种情况下,上述目标计算节点,可以从上述可信随机源来获取随机数,并基于获取到的随机数对上述真值表中的输入值和输出值进行替换。
另一方面,上述目标计算节点,还可以将上述运算门的输入值对应的混淆值作为密钥,对上述运算门的真值表中的输出值的混淆值进行非对称加密得到密文数据,并基于该密文数据对原来真值表中的输出值的混淆值进行替换,得到一张混淆真值表;或者,也可以基于该密文数据单独创建一张混淆真值表(即混淆真值表中仅包括该密文数据)。
第三方面,上述目标计算节点,还可以打乱上述混淆真值表中的每一行的顺序。
当上述目标计算节点完成以上三方面的针对上述门电路中对应的运算门的真值表的混淆替换后,此时上述混淆电路生成完毕,上述目标计算节点可以基于混淆电路现有的消息交互机制,来构建交互消息,上述目标计算节点在上述门电路中对应的运算门的输入值对应的混淆值,以及将上述运算门的输入值对应的混淆值作为密钥,对上述运算门的真值表中的输出值的混淆值进行非对称加密得到的密文数据作为计算参数,发送给作为混淆电路执行方的计算节点。
例如,在实际应用中,在基于混淆电路算法来实现多方安全计算时,通常会将混淆电路算法与不经意传输技术进行结合,上述目标计算节点在向作为作为混淆电路执行方的计算节点发送计算参数时,一方面,可以通常可以将上述混淆真值表采用明文发送的形式,直接发送给作为混淆电路执行方的计算节点;另一方面,可以采用不经意传输技术,将上述目标计算节点在上述门电路中对应的运算门的输入值对应的混淆值,通过模糊化的传送方式,发送给作为混淆电路执行方的计算节点;
其中,基于不经意传输技术向作为混淆电路执行方的计算节点传输数据的具体实施过程,在本说明书中不再进行详述,本领域技术人员在将本说明书的技术方案付诸实现时,可以参考相关技术中的记载。
而作为混淆电路执行方的计算节点,在收到各计算节点发送的计算参数后,可以根据各计算节点在上述门电路中对应的运算门的输入值对应的混淆值,对与各计算节 点在上述门电路中对应的运算门的混淆真值表中记录的密文数据进行解密,得到各计算节点在上述门电路中对应的运算门的输出值的混淆值。
最后,作为混淆电路执行方的计算节点,可以基于最终解密出的上述门电路中的各个运算门的输出值的混淆值后,可以逐级进行运算,得到上述门电路最终的输出值对应的混淆值,然后可以将该混淆值作为最终的计算结果,发送给其它的各计算节点。
上述目标计算计算在收到与门电路最终的输出值对应的混淆值后,可以查询真值表,基于混淆值与真正的输出值之间的对应关系,得到与该混淆值对应的输出值,并将该输出值作为多方安全计算的最终计算结果的原始值,在本地部署的结果存储系统中进行存储。
对于上述分布式网络中部署的各计算节点而言,当完成了以上示出的多方安全计算过程,还可以将存储在上述结果存储系统中的计算结果,向计算节点的管理用户进行可视化输出。
在本说明书中,对于搭载诸如秘密分享、混淆电路等多方安全计算算法的计算节点之间,通常传输携带大量的随机数的交互消息,而即便对于多方安全计算算法的使用者而言,通常也很难理解以上交互消息中携带的随机的具体含义
基于此,在本说明书中,当上述目标节点设备在基于搭载的多方安全计算算法的现有的消息交互机制,通过构建交互消息,将获取到的可信随机数、以及上述运算结果作为计算参数发送给参与多方安全计算的各计算节点时,还可以在本地创建与发送的随机数相关的审计日志,并将创建的审计日志,在本地部署的日志存储系统中进行存储。
其中,上述审计日志,具体可以用于记录向参与多方安全计算的各计算节点发送的随机数相关的描述信息;
在示出的一种实施方式中,计算节点需要向其它参与多方安全计算的计算节点发送的计算参数,通常是携带在该计算节点所构建的交互消息中的消息字段中,因此可以在审计日志中记录计算节点所构建的交互消息中,每一个字段的具体含义,以及与每一个字段相关的描述信息,以供审计使用。
相应的,当上述目标节点设备在接收到由其它各计算节点通过构建的交互消息发送的至少包括作为计算参数的随机数时,也可以在本地创建与其它各计算节点发送的随机数相关的审计日志,并将创建的审计日志,在本地部署的日志存储系统中进行存储。
例如,对于部署在上述分布式网络中的各计算节点而言,通常搭载了同一多方 安全计算算法,因此各计算节点构建的交互消息通常遵循相同的消息格式;因此,上述目标计算节点在收到其它各计算节点发送的交互消息后,可以按照标准的消息格式对该交互消息进行解析,生成相应的审计日志,并在审计日志中记录该交互消息中的每一个字段的具体含义。
在本说明书中,上述审计日志中记录的与上述随机数相关的描述信息,可以涵盖任意形式的,能够证明该随机数为来自上述可信随机源的可信随机数的描述信息,在本说明书中不进行特别限定。
在示出的一种实施方式中,上述审计日志中记录的与上述随机数相关的描述信息,具体可以包括与上述随机数对应的随机数生成规则;
其中,上述随机数生成规则,具体可以涵盖与上述随机数的生成方式相关的任意形式的描述信息;
例如,上述随机数为从可信随机源获取到的可信随机数、基于从可信随机源获取到的可信随机数与本地生成的随机数进行进一步运算得到的随机数、基于从可信随机源获取到的随机数种子输入至随机数生成函数生成的随机数、基于从可信随机源获取到的随机数种子输入至随机数生成函数生成的随机数,与本地生成的随机数进行进一步运算得到的随机数,等等,在本说明书中不再进行一一列举。
在本说明书中,对于上述分布式网络中部署的各计算节点而言,可能共同使用由多方安全计算算法的提供方所提供的多方安全算法,虽然多方安全算法本身是用于保护隐私数据的算法,但不正确甚至恶意的算法实现,仍然可能会存在隐私数据泄露的风险。
例如,在一种场景下,恶意的多方安全计算算法,可能会在使用用户不知情的情况下,基于计算节点持有的隐私数据来构造假随机数,然后利用假随机数向其它计算节点发送隐私数据。
在本说明书中,对于上述分布式网络中部署的各计算节点而言,可以基于上述日志存储系统中存储的审计日志中记录的与随机数相关的描述信息,对各计算节点搭载的多方安全算法进行隐私审计(也可以仅对本节点搭载的多方安全算法,或者各计算节点中某一指定的计算节点搭载的多方安全算法进行隐私审计),来确定各计算节点发送的随机数,是否存在隐私泄露的风险。
当然,在实际应用中,对各计算节点搭载的多方安全算法进行隐私审计,也可 以由第三方的审计节点来完成;在这种情况下,上述分布式网络中部署的各计算节点,可以将上述日志存储系统中所述审计日志,发送给上述审计节点(比如可以主动发送审计日志,也可以由审计节点来主动调用审计日志),由上述第三方的审计节点基于接收到的审计日志,对各计算节点搭载的多方安全算法进行隐私审计,来确定各计算节点发送的计算参数,是否存在隐私泄露的风险。
例如,在一种场景下,各计算节点搭载由提供商提供的多方安全计算算法,并由各计算节点的运营方,来独立的部署审计节点,用于对提供商提供的多方安全计算算法进行隐私审计。
其中,对各计算节点搭载的多方安全算法进行隐私审计的审计逻辑,取决于上述审计日志中记录的与随机数相关的描述信息的具体内容;
在示出的一种实施方式中,上述审计日志中记录的与上述密文数据相关的描述信息,具体可以包括与上述密文数据对应的随机数生成规则。
在这种场景下,计算节点可以从本地部署的日志存储系统中,读取参与多方安全计算的各计算节点发送的作为计算参数的随机数对应的审计日志,并基于读取到的审计日志中记录的,与上述随机数对应的随机数生成规则,来校验该随机数是否为来自上述可信随机源的可信随机数;
其中,具体的校验规则,通常与上述随机数生成规则完全对应;
例如,在一种实现方式中,如果上述随机数生成规则为:从可信随机源获取到的可信随机数;由于可信密钥源在生成作为可信密钥的随机数时,通常是在预设的随机数取值空间中,采用随机抽取的方式,随机抽取一个随机数作为可信密钥;因此,上述校验规则具体可以是:确认上述随机数的取值,是否在上述随机数取值空间的取值范围之内;如果是,表明该随机数,是从上述随机数取值空间的取值范围内,抽取的随机数,此时该随机数为来自可信密钥源的可信密钥;反之,则表明该随机数,并不是从上述随机数取值空间的取值范围内,抽取的随机数,此时该随机数可能并不是来自可信密钥源的可信密钥。
相应的,在另一种实现方式中,如果上述随机数生成规则为:将从可信随机源获取到的随机数种子可信随机数输入至随机数生成函数生成的随机数;那么上述校验规则具体可以是:上述随机数种子是否为来源可信随机源的合法数据源。
如果经过校验确认,上述随机数为来自可信随机源的可信随机数,或者生成上 述随机数的数据源为来自可信随机源的合法数据源,作为计算参数的该随机数不存在隐私泄露的风险;反之,如果经过校验确认,上述随机数并不是来自可信随机源的可信随机数,或者生成上述随机数的数据源并不是来自可信随机源的合法数据源,此时该随机数可能是基于计算节点持有的隐私数据构建的假随机数,作为计算参数的该随机数则存在隐私泄露的风险。
通过这种方式,使得计算节点通过对本地部署的日志存储系统中的审计日志进行简易的审计,就可以确认作为计算参数的随机数是否为来自可信随机源的可信随机数,从而可以及时发现隐私泄露的风险。
通过以上技术方案,由于参与多方安全计算的各计算节点,可以从对接的可信随机源获取可信随机数,并基于该可信随机数对持有的隐私数据进行运算得到运算结果,然后至少将该可信随机数和运算结果作为计算参数,发送给参与多方安全计算的其它计算节点来执行多方安全计算,使得计算节点可以不再使用搭载的多方安全计算算法在本地生成的随机数作为计算参数,而是使用从对接的可信随机源获取到的可信随机数来作为计算参数,从而可以避免恶意的多方安全计算算法基于持有的隐私数据来构造假随机数作为计算参数,而造成的隐私泄露的风险。
与上述方法实施例相对应,本说明书还提供了一种多方安全计算装置的实施例。本说明书的多方安全计算装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本说明书的多方安全计算装置所在电子设备的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
图3是本说明书一示例性实施例示出的一种多方安全计算装置的框图。
请参考图3,所述多方安全计算装置30可以应用在前述图1所示的电子设备中,包括有:获取模块301、运算模块302、和发送模块303。
获取模块301,从所述可信随机源获取可信随机数;
运算模块302,基于获取到的可信随机数对持有的隐私数据进行运算得到运算结果;
发送模块303,至少将所述可信随机数作为计算参数,发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算。
在本实施例中,所述装置30还包括:
创建模块304(图3中未示出),创建与本计算节点发送至所述其它计算节点的所述可信随机数对应的审计日志;其中,所述审计日志记录了与所述可信随机数相关的描述信息。
在本实施例中,所述装置30还包括:
收集模块305(图3中未示出),收集参与多方安全计算的其它各计算节点发送的计算参数;其中,该计算参数至少包括由其它各计算节点发送的随机数;
基于收集到的计算参数执行多方安全计算;以及,
创建与所述其它各计算节点发送的随机数对应的审计日志;其中,所述审计日志包括与所述随机数相关的描述信息。
在本实施例中,所述装置30还包括:
审计模块306(图3中未示出),基于所述审计日志对参与多方安全计算的计算节点发送的作为计算参数的随机数进行隐私审计,确认所述计算节点发送的作为计算参数的随机数是否存在隐私泄露风险;
或者,将所述审计日志发送至第三方的审计节点,以由所述审计节点对参与多方安全计算的计算节点发送的作为计算参数的随机数进行隐私审计,确认所述计算节点发送的作为计算参数的随机数是否存在隐私泄露风险。
在本实施例中,与所述可信随机数相关的描述信息,包括:与所述可信随机数对应的随机数生成规则;
所述审计模块306进一步:
基于所述审计日志中记录的,与参与多方安全计算的计算节点发送的随机数对应的随机数生成规则,校验所述随机数是否匹配来自所述可信随机源的可信随机数;
如果是,确认所述计算节点发送的作为计算参数的随机数存在隐私泄露风险;
如果否,确认所述计算节点发送的作为计算参数的随机数不存在隐私泄露风险。
在本实施例中,所述从所述可信随机源获取可信随机数,包括以下中的任一:
获取由所述可信随机源生成的随机数作为所述可信随机数;
获取由所述可信随机源生成的随机数,将由所述可信随机源生成的随机数,与本计算节点生成的随机数进一步进行运算得到的结果,作为所述可信随机数;
获取由所述可信随机源生成的随机数,将所述随机数输入密钥生成函数计算得到的随机数作为所述可信随机数;
获取由所述可信随机源生成的随机数,将所述随机数输入密钥生成函数计算得到的随机数,与本计算节点生成的随机数进一步进行运算得到的结果,作为所述可信随机数.
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
与上述方法实施例相对应,本说明书还提供了一种电子设备的实施例。该电子设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。
在本实施例中,通过读取并执行所述存储器存储的与多方安全计算的控制逻辑对应的机器可执行指令,所述处理器被促使:
从所述可信随机源获取可信随机数;
基于获取到的可信随机数对持有的隐私数据进行运算得到运算结果;
至少将所述可信随机数作为计算参数,发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算。
在本实施例中,通过读取并执行所述存储器存储的与多方安全计算的控制逻辑对应的机器可执行指令,所述处理器被促使:
创建与本计算节点发送至所述其它计算节点的所述可信随机数对应的审计日志;其中,所述审计日志记录了与所述可信随机数相关的描述信息。
在本实施例中,通过读取并执行所述存储器存储的与多方安全计算的控制逻辑对应的机器可执行指令,所述处理器被促使:
收集参与多方安全计算的其它各计算节点发送的计算参数;其中,该计算参数至少包括由其它各计算节点发送的随机数;
基于收集到的计算参数执行多方安全计算;以及,
创建与所述其它各计算节点发送的随机数对应的审计日志,并存储所述审计日志;其中,所述审计日志包括与所述随机数相关的描述信息。
在本实施例中,通过读取并执行所述存储器存储的与多方安全计算的控制逻辑对应的机器可执行指令,所述处理器被促使:
基于所述审计日志对参与多方安全计算的计算节点发送的作为计算参数的随机数进行隐私审计,确认所述计算节点发送的作为计算参数的随机数是否存在隐私泄露风险;
或者,将所述审计日志发送至第三方的审计节点,以由所述审计节点对参与多方安全计算的计算节点发送的作为计算参数的随机数进行隐私审计,确认所述计算节点发送的作为计算参数的随机数是否存在隐私泄露风险。
在本实施例中,与所述可信随机数相关的描述信息,包括:与所述可信随机数对应的随机数生成规则;
通过读取并执行所述存储器存储的与多方安全计算的控制逻辑对应的机器可执行指令,所述处理器被促使:
基于所述审计日志中记录的,与参与多方安全计算的计算节点发送的随机数对应的随机数生成规则,校验所述随机数是否匹配来自所述可信随机源的可信随机数;
如果是,确认所述计算节点发送的作为计算参数的随机数存在隐私泄露风险;
如果否,确认所述计算节点发送的作为计算参数的随机数不存在隐私泄露风险。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (13)

  1. 一种多方安全计算方法,应用于分布式网络中部署的任一计算节点;所述分布式网络部署了多个计算节点,所述多个计算节点基于各自持有的隐私数据共同参与多方安全计算;其中,所述计算节点对接了可信随机源;所述方法包括:
    从所述可信随机源获取可信随机数;
    基于获取到的可信随机数对持有的隐私数据进行运算得到运算结果;
    至少将所述可信随机数作为计算参数,发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算。
  2. 根据权利要求1所述的方法,还包括:
    创建与本计算节点发送至所述其它计算节点的所述可信随机数对应的审计日志;其中,所述审计日志记录了与所述可信随机数相关的描述信息。
  3. 根据权利要求2所述的方法,还包括:
    收集参与多方安全计算的其它各计算节点发送的计算参数;其中,该计算参数至少包括由其它各计算节点发送的随机数;
    基于收集到的计算参数执行多方安全计算;以及,
    创建与所述其它各计算节点发送的随机数对应的审计日志;其中,所述审计日志包括与所述随机数相关的描述信息。
  4. 根据权利要求2或3所述的方法,还包括:
    基于所述审计日志对参与多方安全计算的计算节点发送的作为计算参数的随机数进行隐私审计,确认所述计算节点发送的作为计算参数的随机数是否存在隐私泄露风险;
    或者,将所述审计日志发送至第三方的审计节点,以由所述审计节点对参与多方安全计算的计算节点发送的作为计算参数的随机数进行隐私审计,确认所述计算节点发送的作为计算参数的随机数是否存在隐私泄露风险。
  5. 根据权利要求4所述的方法,与所述可信随机数相关的描述信息,包括:与所述可信随机数对应的随机数生成规则;
    所述基于所述审计日志对参与多方安全计算的计算节点发送的作为计算参数的随机数进行隐私审计,确认所述计算节点发送的作为计算参数的随机数是否存在隐私泄露风险,包括:
    基于所述审计日志中记录的,与参与多方安全计算的计算节点发送的随机数对应的随机数生成规则,校验所述随机数是否匹配来自所述可信随机源的可信随机数;
    如果是,确认所述计算节点发送的作为计算参数的随机数存在隐私泄露风险;
    如果否,确认所述计算节点发送的作为计算参数的随机数不存在隐私泄露风险。
  6. 根据权利要求1所述的方法,所述从所述可信随机源获取可信随机数,包括以下中的任一:
    获取由所述可信随机源生成的随机数作为所述可信随机数;
    获取由所述可信随机源生成的随机数,将由所述可信随机源生成的随机数,与本计算节点生成的随机数进一步进行运算得到的结果,作为所述可信随机数;
    获取由所述可信随机源生成的随机数,将所述随机数输入密钥生成函数计算得到的随机数作为所述可信随机数;
    获取由所述可信随机源生成的随机数,将所述随机数输入密钥生成函数计算得到的随机数,与本计算节点生成的随机数进一步进行运算得到的结果,作为所述可信随机数。
  7. 一种多方安全计算装置,应用于分布式网络中部署的任一计算节点;所述分布式网络部署了多个计算节点,所述多个计算节点基于各自持有的隐私数据共同参与多方安全计算;其中,所述计算节点对接了可信随机源;所述装置包括:
    获取模块,从所述可信随机源获取可信随机数;
    运算模块,基于获取到的可信随机数对持有的隐私数据进行运算得到运算结果;
    发送模块,至少将所述可信随机数作为计算参数,发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算。
  8. 根据权利要求7所述的装置,还包括:
    创建模块,创建与本计算节点发送至所述其它计算节点的所述可信随机数对应的审计日志;其中,所述审计日志记录了与所述可信随机数相关的描述信息。
  9. 根据权利要求8所述的方法,还包括:
    收集模块,收集参与多方安全计算的其它各计算节点发送的计算参数;其中,该计算参数至少包括由其它各计算节点发送的随机数;
    基于收集到的计算参数执行多方安全计算;以及,
    创建与所述其它各计算节点发送的随机数对应的审计日志;其中,所述审计日志包括与所述随机数相关的描述信息。
  10. 根据权利要求8或9所述的装置,还包括:
    审计模块,基于所述审计日志对参与多方安全计算的计算节点发送的作为计算参数的随机数进行隐私审计,确认所述计算节点发送的作为计算参数的随机数是否存在隐私 泄露风险;
    或者,将所述审计日志发送至第三方的审计节点,以由所述审计节点对参与多方安全计算的计算节点发送的作为计算参数的随机数进行隐私审计,确认所述计算节点发送的作为计算参数的随机数是否存在隐私泄露风险。
  11. 根据权利要求10所述的装置,与所述可信随机数相关的描述信息,包括:与所述可信随机数对应的随机数生成规则;
    所述审计模块进一步:
    基于所述审计日志中记录的,与参与多方安全计算的计算节点发送的随机数对应的随机数生成规则,校验所述随机数是否匹配来自所述可信随机源的可信随机数;
    如果是,确认所述计算节点发送的作为计算参数的随机数存在隐私泄露风险;
    如果否,确认所述计算节点发送的作为计算参数的随机数不存在隐私泄露风险。
  12. 根据权利要求7所述的装置,所述从所述可信随机源获取可信随机数,包括以下中的任一:
    获取由所述可信随机源生成的随机数作为所述可信随机数;
    获取由所述可信随机源生成的随机数,将由所述可信随机源生成的随机数,与本计算节点生成的随机数进一步进行运算得到的结果,作为所述可信随机数;
    获取由所述可信随机源生成的随机数,将所述随机数输入密钥生成函数计算得到的随机数作为所述可信随机数;
    获取由所述可信随机源生成的随机数,将所述随机数输入密钥生成函数计算得到的随机数,与本计算节点生成的随机数进一步进行运算得到的结果,作为所述可信随机数。
  13. 一种电子设备,包括:
    处理器;
    用于存储机器可执行指令的存储器;
    其中,通过读取并执行所述存储器存储的与多方安全计算的控制逻辑对应的机器可执行指令,所述处理器被促使:
    从所述可信随机源获取可信随机数;
    基于获取到的可信随机数对持有的隐私数据进行运算得到运算结果;
    至少将所述可信随机数作为计算参数,发送至参与多方安全计算的其它计算节点,以由所述其它计算节点基于收集到的由参与多方安全计算的各计算节点发送的计算参数执行多方安全计算。
PCT/CN2019/092266 2018-08-14 2019-06-21 多方安全计算方法及装置、电子设备 WO2020034754A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP19850449.0A EP3779752A4 (en) 2018-08-14 2019-06-21 SECURE MULTI-PART COMPUTING PROCESS AND APPARATUS, AND ELECTRONIC DEVICE
SG11202010759TA SG11202010759TA (en) 2018-08-14 2019-06-21 Secure multi-party computation method and apparatus, and electronic device
US17/086,379 US11038679B2 (en) 2018-08-14 2020-10-31 Secure multi-party computation method and apparatus, and electronic device
US17/324,691 US11290266B2 (en) 2018-08-14 2021-05-19 Secure multi-party computation method and apparatus, and electronic device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810924482.8A CN109255247B (zh) 2018-08-14 2018-08-14 多方安全计算方法及装置、电子设备
CN201810924482.8 2018-08-14

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/086,379 Continuation US11038679B2 (en) 2018-08-14 2020-10-31 Secure multi-party computation method and apparatus, and electronic device

Publications (1)

Publication Number Publication Date
WO2020034754A1 true WO2020034754A1 (zh) 2020-02-20

Family

ID=65049423

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/092266 WO2020034754A1 (zh) 2018-08-14 2019-06-21 多方安全计算方法及装置、电子设备

Country Status (6)

Country Link
US (2) US11038679B2 (zh)
EP (1) EP3779752A4 (zh)
CN (1) CN109255247B (zh)
SG (1) SG11202010759TA (zh)
TW (1) TWI706279B (zh)
WO (1) WO2020034754A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115550070A (zh) * 2022-11-29 2022-12-30 粤港澳大湾区数字经济研究院(福田) 一种多方协作方法及相关装置
CN116055049A (zh) * 2023-04-03 2023-05-02 富算科技(上海)有限公司 多方安全计算方法、装置、系统、电子设备和存储介质

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019111318A1 (ja) * 2017-12-05 2019-06-13 日本電気株式会社 サーバ装置、秘密等号判定システム、秘密等号判定方法および秘密等号判定プログラム記録媒体
US11290456B2 (en) * 2017-12-05 2022-03-29 Nec Corporation Secret equality determination system, secret equality determination method and secret equality determination program recording medium
CN109359470B (zh) 2018-08-14 2020-09-01 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN109241016B (zh) * 2018-08-14 2020-07-07 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN109255247B (zh) 2018-08-14 2020-08-14 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
EP3616356B1 (en) * 2019-03-18 2021-03-10 Advanced New Technologies Co., Ltd. Preventing misrepresentation of input data by participants in a secure multi-party computation
CN111753324B (zh) * 2019-03-29 2024-02-09 华控清交信息科技(北京)有限公司 私有数据的处理方法、计算方法及所适用的设备
CN111753315B (zh) * 2019-03-29 2023-10-13 华控清交信息科技(北京)有限公司 输入数据的计算方法、计算引擎及存储介质
WO2020211075A1 (zh) * 2019-04-19 2020-10-22 云图有限公司 去中心化多方安全数据处理方法、装置及存储介质
CN110162551B (zh) * 2019-04-19 2020-08-14 阿里巴巴集团控股有限公司 数据处理方法、装置和电子设备
US10936605B2 (en) 2019-04-19 2021-03-02 Advanced New Technologies Co., Ltd. Providing oblivious data transfer between computing devices
CN110061829A (zh) * 2019-04-26 2019-07-26 上海点融信息科技有限责任公司 基于区块链网络的安全多方计算方法、装置及存储介质
CN110166446B (zh) * 2019-05-13 2021-10-22 矩阵元技术(深圳)有限公司 一种基于安全多方计算的地理加权平均中心的实现方法
US11222129B2 (en) * 2019-06-24 2022-01-11 International Business Machines Corporation Entity resolution between multiple private data sources
US10735189B2 (en) 2019-07-01 2020-08-04 Alibaba Group Holding Limited Data exchange for multi-party computation
CN110460435B (zh) * 2019-07-01 2021-01-01 创新先进技术有限公司 数据交互方法、装置、服务器和电子设备
CN112183757B (zh) * 2019-07-04 2023-10-27 创新先进技术有限公司 模型训练方法、装置及系统
US20220261507A1 (en) * 2019-07-24 2022-08-18 Nec Corporation Secure computation server, trail management method, and program
CN110472439B (zh) * 2019-08-09 2023-08-22 创新先进技术有限公司 模型参数确定方法、装置和电子设备
CN111008256B (zh) * 2019-10-29 2022-03-15 矩阵元技术(深圳)有限公司 一种基于安全多方计算的空间数据分布模式分析方法
CN110752924B (zh) * 2019-10-30 2021-03-16 四川长虹电器股份有限公司 一种基于安全多方计算的密钥安全管理方法
CN110781502B (zh) * 2019-11-06 2021-08-10 广州信安数据有限公司 一种多方可信计算平台及计算方法
CN111064579A (zh) * 2019-12-11 2020-04-24 北京金汤科技有限公司 基于区块链的安全多方计算方法、系统、及存储介质
CN111046425B (zh) * 2019-12-12 2021-07-13 支付宝(杭州)信息技术有限公司 多方联合进行风险识别的方法和装置
CN111026359B (zh) * 2019-12-17 2021-10-15 支付宝(杭州)信息技术有限公司 多方联合判定隐私数据的数值范围的方法和装置
CN111143894B (zh) * 2019-12-24 2022-01-28 支付宝(杭州)信息技术有限公司 一种提升安全多方计算效率的方法及系统
CN111586142B (zh) * 2020-04-30 2023-09-12 王伟 一种安全多方计算方法及系统
CN111563261A (zh) * 2020-05-15 2020-08-21 支付宝(杭州)信息技术有限公司 一种基于可信执行环境的隐私保护多方计算方法和系统
CN111813544A (zh) * 2020-06-19 2020-10-23 华控清交信息科技(北京)有限公司 计算任务的处理方法、装置、调度及管理系统和介质
CN111539026B (zh) * 2020-06-19 2020-09-29 支付宝(杭州)信息技术有限公司 针对隐私数据进行安全运算的方法和装置
CN111931211B (zh) * 2020-08-19 2024-05-17 杭州甘道智能科技有限公司 安全多方计算方法、装置及系统
CN112464174B (zh) * 2020-10-27 2023-09-29 华控清交信息科技(北京)有限公司 验证多方安全计算软件的方法、装置和用于验证的装置
CN112765616B (zh) * 2020-12-18 2024-02-02 百度在线网络技术(北京)有限公司 多方安全计算方法、装置、电子设备和存储介质
CN112685793A (zh) * 2020-12-25 2021-04-20 联想(北京)有限公司 基于区块链的数据处理方法、装置和系统
CN112685752A (zh) * 2020-12-25 2021-04-20 联想(北京)有限公司 基于区块链的数据处理方法、装置、电子设备及区块链
US20220247548A1 (en) * 2021-02-01 2022-08-04 Sap Se Efficient distributed privacy-preserving computations
CN112989420B (zh) * 2021-03-31 2022-05-10 支付宝(杭州)信息技术有限公司 一种保护数据隐私的相关系数确定方法和系统
CN112800479B (zh) * 2021-04-07 2021-07-06 支付宝(杭州)信息技术有限公司 利用可信第三方的多方联合数据处理方法及装置
CN115277031B (zh) * 2021-04-13 2024-05-10 华为技术有限公司 一种数据处理的方法和装置
CN113032833B (zh) * 2021-04-14 2023-02-17 同盾控股有限公司 用户查询方法和装置、存储介质、电子设备
CN113051177B (zh) * 2021-04-20 2022-10-04 支付宝(杭州)信息技术有限公司 测试方法和装置
CN113326525B (zh) * 2021-06-22 2024-01-16 深圳前海微众银行股份有限公司 一种基于智能合约的数据处理方法及装置
CN113377625B (zh) * 2021-07-22 2022-05-17 支付宝(杭州)信息技术有限公司 针对多方联合业务预测进行数据监控的方法及装置
CN113343283B (zh) * 2021-07-30 2021-10-15 深圳前海微众银行股份有限公司 一种数据处理方法
CN115708095A (zh) * 2021-08-20 2023-02-21 华为技术有限公司 一种数据安全处理方法和装置
CN113472538B (zh) * 2021-09-02 2021-12-10 富算科技(上海)有限公司 多方安全计算的结果隐私性检测方法、装置、设备及介质
CN114022093B (zh) * 2021-09-22 2023-03-24 医渡云(北京)技术有限公司 一种基于多方安全的数据协同计算方法、装置及设备
CN114647662B (zh) * 2022-05-13 2022-08-23 富算科技(上海)有限公司 数据检索方法、装置、电子设备、存储介质
CN115001672B (zh) * 2022-05-27 2024-05-17 建信金融科技有限责任公司 一种安全多方计算方法、装置、系统、设备及存储介质
CN114692207B (zh) * 2022-05-31 2022-09-20 蓝象智联(杭州)科技有限公司 一种隐私保护的数据处理方法、装置及存储介质
CN114697030B (zh) * 2022-05-31 2022-09-20 蓝象智联(杭州)科技有限公司 多方安全计算参与方的数据验证方法
CN115906182A (zh) * 2023-01-05 2023-04-04 中国联合网络通信集团有限公司 数据比对处理方法、装置、设备及存储介质
CN116108473B (zh) * 2023-04-10 2023-06-27 极术(杭州)科技有限公司 多方安全计算中的数据处理方法及装置
CN117254911B (zh) * 2023-11-17 2024-02-13 北京安华金和科技有限公司 一种基于秘密分享的多方安全计算处理方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064931A (zh) * 2012-12-21 2013-04-24 清华大学 可验证的隐私数据比较与排名查询方法
CN109255247A (zh) * 2018-08-14 2019-01-22 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6099408A (en) * 1996-12-31 2000-08-08 Walker Digital, Llc Method and apparatus for securing electronic games
US20030095663A1 (en) 2001-11-21 2003-05-22 Nelson David B. System and method to provide enhanced security in a wireless local area network system
US8056124B2 (en) 2005-07-15 2011-11-08 Microsoft Corporation Automatically generating rules for connection security
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US20090093300A1 (en) * 2007-10-05 2009-04-09 Lutnick Howard W Game of chance processing apparatus
US8345879B2 (en) * 2008-04-25 2013-01-01 International Business Machines Corporation Securing wireless body sensor networks using physiological data
US8744077B2 (en) 2008-10-28 2014-06-03 International Business Machines Corporation Cryptographic encoding and decoding of secret data
US9552191B2 (en) * 2008-11-12 2017-01-24 Igt Canada Solutions Ulc Secure random number generation
US8862879B2 (en) * 2009-10-13 2014-10-14 Sergio Demian LERNER Method and apparatus for efficient and secure creating, transferring, and revealing of messages over a network
US20120002811A1 (en) * 2010-06-30 2012-01-05 The University Of Bristol Secure outsourced computation
GB201020424D0 (en) 2010-12-02 2011-01-19 Qinetiq Ltd Quantum key distribution
JP2012169753A (ja) * 2011-02-10 2012-09-06 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム
US9569771B2 (en) 2011-04-29 2017-02-14 Stephen Lesavich Method and system for storage and retrieval of blockchain blocks using galois fields
US9252942B2 (en) * 2012-04-17 2016-02-02 Futurewei Technologies, Inc. Method and system for secure multiparty cloud computation
JP6016948B2 (ja) * 2013-01-17 2016-10-26 日本電信電話株式会社 秘匿計算システム、演算装置、秘匿計算方法、およびプログラム
US9992190B2 (en) * 2013-08-22 2018-06-05 Nippon Telegraph And Telephone Corporation Multi-party secure authentication system, authentication server, intermediate server, multi-party secure authentication method, and program
WO2015057854A1 (en) * 2013-10-15 2015-04-23 University Of Florida Research Foundation, Inc. Privacy-preserving data collection, publication, and analysis
CN103888262B (zh) * 2014-03-31 2017-04-26 公安部第三研究所 用于云数据审计的密钥变化和签名更新的方法
US9503432B2 (en) * 2014-04-04 2016-11-22 Privacy Analytics Inc. Secure linkage of databases
JP6850530B2 (ja) * 2014-10-20 2021-03-31 タタ コンサルタンシー サービシズ リミテッドTATA Consultancy Services Limited セキュアセッションの確立と暗号化データ交換のためのコンピュータ利用システム及びコンピュータ利用方法
US11277390B2 (en) 2015-01-26 2022-03-15 Listat Ltd. Decentralized cybersecure privacy network for cloud communication, computing and global e-commerce
CN106295257A (zh) * 2015-06-29 2017-01-04 中兴通讯股份有限公司 一种被加固软件的认证方法及装置
US10805393B2 (en) 2015-12-02 2020-10-13 Olea Networks, Inc. System and method for data management structure using auditable delta records in a distributed environment
WO2017127564A1 (en) 2016-01-19 2017-07-27 Priv8Pay, Inc. Network node authentication
WO2017147696A1 (en) * 2016-02-29 2017-09-08 Troy Jacob Ronda Systems and methods for distributed identity verification
US11128446B2 (en) * 2016-04-14 2021-09-21 B.G. Negev Technologies And Applications Ltd., At Ben-Gurion University Self-stabilizing secure and heterogeneous systems
US11829998B2 (en) 2016-06-07 2023-11-28 Cornell University Authenticated data feed for blockchains
CN106255038B (zh) * 2016-08-04 2019-10-08 南京邮电大学 一种无线传感器网络安全数据融合方法
CN106506156B (zh) * 2016-12-15 2018-08-03 北京三未信安科技发展有限公司 一种基于椭圆曲线的分布式门限签名方法
US11294633B2 (en) * 2017-01-20 2022-04-05 Nippon Telegraph And Telephone Corporation Secure computation system, secure computation device, secure computation method, and program
JP6629466B2 (ja) * 2017-01-20 2020-01-15 日本電信電話株式会社 秘密計算システム、秘密計算装置、秘密計算方法、プログラム
US20180247191A1 (en) 2017-02-03 2018-08-30 Milestone Entertainment Llc Architectures, systems and methods for program defined entertainment state system, decentralized cryptocurrency system and system with segregated secure functions and public functions
US10521604B2 (en) 2017-03-17 2019-12-31 Labyrinth Research Llc Unified control of privacy-impacting devices
US10404471B1 (en) 2017-04-26 2019-09-03 Wells Fargo Bank, N.A. Secure ledger assurance tokenization
US11368311B2 (en) * 2017-05-04 2022-06-21 Koninklijke Philips N.V. Batch-wise distributed preprocessing information verification
WO2019045741A1 (en) * 2017-08-31 2019-03-07 Visa International Service Association MULTIPARTITE ENCRYPTION ON SINGLE NODE
CN111133719B (zh) * 2017-09-29 2024-01-26 罗伯特·博世有限公司 用于利用spdz的更快速的安全多方内积计算的方法
EP3718069B1 (en) 2017-11-30 2024-04-17 Visa International Service Association Blockchain system for confidential and anonymous smart contracts
US11977924B2 (en) * 2017-12-26 2024-05-07 Akamai Technologies, Inc. High performance distributed system of record with distributed random oracle
WO2019133052A1 (en) 2017-12-28 2019-07-04 Yang Shao Wen Visual fog
CN108364223B (zh) 2017-12-29 2021-01-26 创新先进技术有限公司 一种数据审计的方法及装置
US10956075B2 (en) 2018-02-02 2021-03-23 Bank Of America Corporation Blockchain architecture for optimizing system performance and data storage
CN108322306B (zh) * 2018-03-17 2020-11-27 北京工业大学 一种基于可信第三方的面向隐私保护的云平台可信日志审计方法
US11218324B2 (en) * 2018-04-05 2022-01-04 Ares Technologies, Inc. Systems and methods authenticating a digitally signed assertion using verified evaluators
EP3570575A1 (en) * 2018-05-16 2019-11-20 INESC TEC - Instituto de Engenharia de Sistemas e Computadores, Tecnologia e Ciência Internet of things security with multi-party computation (mpc)
US11775479B2 (en) * 2018-05-24 2023-10-03 Luther Systems Us Incorporated System and method for efficient and secure private similarity detection for large private document repositories
US11038672B2 (en) * 2018-06-01 2021-06-15 Duality Technologies, Inc. Secure and distributed management of a proxy re-encryption key ledger
KR102086228B1 (ko) 2018-06-11 2020-03-06 고하준 기밀보장 블록체인 중개서버를 통하여 블록체인 클라이언트들이 블록체인 서비스를 이용하는 방법.
US10887081B2 (en) 2018-06-28 2021-01-05 International Business Machines Corporation Audit trail configuration in a blockchain
US11050762B2 (en) * 2018-07-06 2021-06-29 Nec Corporation Of America High throughput secure multi-party computation with identifiable abort
US11251959B2 (en) * 2018-07-09 2022-02-15 Ares Technologies, Inc. Method of manufacturing a secure computing hardware apparatus
CN109101822B (zh) * 2018-07-10 2021-01-29 西安交通大学 一种解决多方计算中数据隐私泄露问题的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103064931A (zh) * 2012-12-21 2013-04-24 清华大学 可验证的隐私数据比较与排名查询方法
CN109255247A (zh) * 2018-08-14 2019-01-22 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANONYM: "Random Number Prediction in Ethereum Smart Contract", FREEBUF INTERNET SECURITY NEW MEDIA PLATFORM, 30 July 2018 (2018-07-30), pages 6 - 7, XP055685682, Retrieved from the Internet <URL:https://www.freebuf.com/vuls/179173.html> *
KOLHAR, MANJUR: "Cloud Data Auditing Techniques with a Focus on Privacy and Security", INFOQ, vol. 15, no. 1, 5 September 2017 (2017-09-05), pages 1 - 2, XP011641350, DOI: 10.1109/MSP.2017.16 *
TANG, JIANHONG ET AL.: "Research on Solving Sales Problem of Secure Multi-Party Computation", MICROCOMPUTER & ITS APPLICATIONS, vol. 31, no. 20, 25 October 2012 (2012-10-25), XP055685678, DOI: 10.19358/j.issn.1674-7720.2012.20.026 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115550070A (zh) * 2022-11-29 2022-12-30 粤港澳大湾区数字经济研究院(福田) 一种多方协作方法及相关装置
CN116055049A (zh) * 2023-04-03 2023-05-02 富算科技(上海)有限公司 多方安全计算方法、装置、系统、电子设备和存储介质

Also Published As

Publication number Publication date
EP3779752A4 (en) 2021-09-15
CN109255247B (zh) 2020-08-14
SG11202010759TA (en) 2020-11-27
US11038679B2 (en) 2021-06-15
TWI706279B (zh) 2020-10-01
US20210273798A1 (en) 2021-09-02
TW202009776A (zh) 2020-03-01
EP3779752A1 (en) 2021-02-17
US11290266B2 (en) 2022-03-29
US20210051007A1 (en) 2021-02-18
CN109255247A (zh) 2019-01-22

Similar Documents

Publication Publication Date Title
WO2020034754A1 (zh) 多方安全计算方法及装置、电子设备
TWI712301B (zh) 多方安全計算方法及裝置、電子設備
US11206132B2 (en) Multiparty secure computing method, device, and electronic device
Bonawitz et al. Practical secure aggregation for privacy-preserving machine learning
US9158925B2 (en) Server-aided private set intersection (PSI) with data transfer
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
JP2010220212A (ja) 第1のユーザによって第2のユーザに送信される通信の安全化
US10826694B2 (en) Method for leakage-resilient distributed function evaluation with CPU-enclaves
US11741247B2 (en) Smart privacy and controlled exposure on blockchains
CN111046408A (zh) 判断结果处理方法、查询方法、装置、电子设备和系统
Pulls Preserving privacy in transparency logging
Santos Cryptography for pragmatic distributed trust and the role of blockchain
van Kempen et al. LISA: LIghtweight single-server Secure Aggregation with a public source of randomness
Magoma et al. Towards a CIA compliant RSA hybrid built on an Artificial Neural Network
CN117708881A (zh) 基于可重用混淆电路的跨机构黑名单共享方法及系统
De Keyser Implementation of a verifiable mix network based on the trade-off between resilience, scalability, and performance
CN117494150A (zh) 一种数据处理方法、装置、电子设备及存储介质
Zhao Protecting Identity and Location Privacy in Online Environment
Li Efficient cryptographic primitives: Secure comparison, binary decomposition and proxy re-encryption

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19850449

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019850449

Country of ref document: EP

Effective date: 20201030

NENP Non-entry into the national phase

Ref country code: DE