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

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

Info

Publication number
WO2020034755A1
WO2020034755A1 PCT/CN2019/092340 CN2019092340W WO2020034755A1 WO 2020034755 A1 WO2020034755 A1 WO 2020034755A1 CN 2019092340 W CN2019092340 W CN 2019092340W WO 2020034755 A1 WO2020034755 A1 WO 2020034755A1
Authority
WO
WIPO (PCT)
Prior art keywords
computing
ciphertext data
trusted key
party secure
node
Prior art date
Application number
PCT/CN2019/092340
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 EP19850637.0A priority Critical patent/EP3779717B1/en
Priority to SG11202010756PA priority patent/SG11202010756PA/en
Publication of WO2020034755A1 publication Critical patent/WO2020034755A1/zh
Priority to US17/086,382 priority patent/US11206132B2/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • 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
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • 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

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 key source; the method includes:
  • At least the ciphertext data is sent as a computing parameter to other computing nodes participating in multi-party secure computing, and the other computing node performs multi-party secure computing based on the collected computing parameters sent by each computing node participating in multi-party secure computing.
  • Optional also includes:
  • 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 ciphertext data sent by the computing node participating in the multi-party secure computing as the calculation parameter, and confirms that the computing node sends the Calculate whether the ciphertext data of the parameter poses a risk of privacy leakage.
  • the description information related to the ciphertext data includes: an encryption key corresponding to the ciphertext data;
  • Performing a privacy audit on the ciphertext data sent by the computing nodes participating in multi-party secure computing based on the audit log to confirm whether the ciphertext data sent by the computing node as a calculation parameter has a risk of privacy leakage includes:
  • a decryption key corresponding to the ciphertext data and a plaintext corresponding to the ciphertext data are also recorded.
  • the method further includes:
  • the trusted key is a random number
  • Obtaining a trusted key from the trusted key source including 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 key source; the method includes:
  • An obtaining module obtaining a trusted key from the trusted key source
  • An encryption module that encrypts the held private data based on the obtained trusted key to obtain ciphertext data
  • a sending module sends at least the ciphertext data as a calculation parameter to other computing nodes participating in multi-party secure computing, and executes the multi-party based on the computing parameters sent by each computing node participating in multi-party secure computing collected by the other computing nodes. Safe computing.
  • Optional also includes:
  • the creating module creates an audit log corresponding to the ciphertext data sent by the computing node to other computing nodes; wherein the audit log records descriptive information related to the ciphertext data.
  • Optional also includes:
  • a collecting module collects computing parameters sent by other computing nodes participating in multi-party secure computing; wherein the computing parameters include at least ciphertext data obtained by encrypting the private data held by other computing nodes;
  • a calculation module that performs multi-party safety calculations based on the collected calculation parameters
  • the creation module further:
  • Optional also includes:
  • An audit module which performs a privacy audit on the ciphertext data sent by the computing nodes participating in multi-party secure computing based on the audit log, and confirms whether the ciphertext data sent by the computing node as a calculation parameter has a 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 ciphertext data sent by the computing nodes participating in multi-party secure computing as the calculation parameters, and confirms Calculate whether the ciphertext data of the parameter poses a risk of privacy leakage.
  • the description information related to the ciphertext data includes: an encryption key corresponding to the ciphertext data;
  • the audit module further:
  • a decryption key corresponding to the ciphertext data and a plaintext corresponding to the ciphertext data are also recorded.
  • the audit module further:
  • the trusted key is a random number
  • This specification also proposes an electronic device, including:
  • Memory for storing machine-executable instructions
  • the processor is caused to:
  • At least the ciphertext data is sent as a computing parameter to other computing nodes participating in multi-party secure computing, and the other computing node performs multi-party secure computing based on the collected computing parameters sent by each computing node participating in multi-party secure computing.
  • each computing node participating in multi-party secure computing can obtain a trusted key from a docked trusted key source, and encrypt the held private data based on the trusted key to obtain ciphertext data
  • the ciphertext data is then used as a computing parameter to send to other computing nodes participating in multi-party secure computing to perform multi-party secure computing, so that the computing node can no longer use the multi-party secure computing when it performs encrypted calculations on the held private data.
  • the algorithm generates the key locally, but uses the trusted key obtained from the docked trusted key source, thereby avoiding the malicious multi-party secure computing algorithm to construct the key based on the held private data. Risk of privacy breach due to encryption.
  • 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 known keys held by other computing nodes participating in multi-party secure computing to encrypt the held private data; further, in this way, the ciphertext is encrypted.
  • other computing nodes can decrypt the ciphertext data based on the known key held by them, and obtain the private data held by other computing nodes, resulting in privacy Give way.
  • the purpose of this specification is to propose a method to encrypt the held private data based on a trusted key from a trusted key source to avoid the known secrets held by computing nodes participating in multi-party secure computing.
  • the technical solution of privacy leakage caused by the encryption of private data by the key is to propose a method to encrypt the held private data based on a trusted key from a trusted key source to avoid the known secrets held by computing nodes participating in multi-party secure computing.
  • the computing nodes in the distributed network can also be docked with a trusted key source; among them, the above-mentioned trusted key source can be calculated by each computing node.
  • the key source developed independently by the operator of the node may also be a key source developed by a trusted third party other than the above-mentioned provider.
  • computing nodes When computing nodes participate in multi-party secure calculations based on the held private data, they can obtain a trusted key from the docked trusted key source and encrypt the held private data based on the trusted key. The ciphertext data, and then at least use the ciphertext data as a computing parameter to send to other computing nodes participating in multi-party secure computing in the distributed network. Calculate parameters to perform multiparty security calculations.
  • each computing node participating in multi-party secure computing can obtain a trusted key from a docked trusted key source, and encrypt the held private data based on the trusted key to obtain ciphertext data
  • the ciphertext data is then used as a computing parameter to send to other computing nodes participating in multi-party secure computing to perform multi-party secure computing, so that the computing node can no longer use the multi-party secure computing when it performs encrypted calculations on the held private data.
  • the algorithm generates the key locally, but uses the trusted key obtained from the docked trusted key source, thereby avoiding the malicious multi-party secure computing algorithm to construct the key based on the held private data. Risk of privacy breach due to encryption.
  • 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 each node; wherein each computing node deployed in the distributed network is docked with a trusted key source; the multi-party secure computing method performs the following steps:
  • Step 102 Obtain a trusted key from the trusted key source.
  • Step 104 Encrypt the private data held based on the obtained trusted key to obtain ciphertext data.
  • Step 106 Send at least the ciphertext data as a calculation parameter to other computing nodes participating in multi-party secure computing, and execute the multi-party based on the computing parameters sent by the computing nodes participating in multi-party secure computing collected by the other computing nodes. Safe computing.
  • 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 key source may include a key source independently developed by an operator of each computing node, or may include a key source provided by a trusted third party other than the above-mentioned provider; for example, in practical applications, the above-mentioned
  • the trusted key source may specifically be a computer program (for example, a trusted key generation algorithm, a generation function, etc.) independently developed by the operator of each computing node to generate a trusted key source, or it may be A computer program developed by a trusted third party other than the aforementioned provider to generate a trusted key source.
  • 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 key sources, independent data sources, result storage systems, and log storage systems.
  • the above data source is used to store and maintain the private data held by each data node.
  • the above-mentioned trusted key source may specifically be a key source provided by a trusted third party other than the above-mentioned multi-party secure calculation algorithm provider.
  • each calculation A node may also no longer deploy a trusted key source locally, but directly connect to a trusted key source of a third party to obtain a trusted key source used to encrypt 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 key source to obtain a trusted key;
  • the read private data can be encrypted and calculated to generate ciphertext data corresponding to the held private data.
  • the trusted key generated by the trusted key source is usually a random number generated based on the key function.
  • 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 target computing node After the target computing node performs encryption calculation on the read privacy data based on the obtained trusted key, and generates ciphertext data corresponding to the held private data, the target computing node may perform multi-party secure computing based on An existing message interaction mechanism is calculated to construct an interactive message, and at least the generated ciphertext data is used as a computing parameter to send to other computing nodes participating in multi-party secure computing.
  • 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 taken as a homomorphic encryption algorithm and an obfuscation circuit algorithm as examples to briefly describe the algorithm logic of the various algorithms listed above.
  • Homomorphic encryption is a type of encryption algorithm that can perform data operations in the ciphertext state. Without decryption and without using the decryption key, the ciphertext is calculated, and the ciphertext of the calculation result obtained by the calculation based on the plaintext can also be obtained.
  • the homomorphic ciphertext E (a) of a and the homomorphic ciphertext E (b) of b can be calculated to obtain the ciphertext E (a + b) of a + b. Leaking a, b, or a + b without decrypting the ciphertext using the decrypted key.
  • each of the computing nodes deployed in the distributed network is equipped with a multi-party secure computing algorithm that is a homomorphic encryption algorithm
  • the target computing node reads the private data S that needs to participate in multi-party secure computing from the deployed data source, Based on the existing calculation logic of the homomorphic encryption algorithm, a pair of homomorphic encryption keys PK and decryption keys SK is usually generated based on the homomorphic encryption algorithm.
  • the aforementioned encryption key PK and decryption key SK may no longer be generated by a homomorphic encryption algorithm, but may be generated by a trusted key source locally deployed by a computing node.
  • the target computing node may obtain the encryption key PK and the decryption key SK as trusted keys from a locally deployed trusted key source, and perform the privacy data based on the encryption key PK. Encryption generates ciphertext data, and then builds an interactive message based on the existing message interaction mechanism of the homomorphic encryption algorithm, and sends the generated ciphertext data to other computing nodes participating in multi-party secure computing respectively.
  • other computing nodes can also use the same method to obtain a pair of homomorphically encrypted encryption keys PK and decryption keys SK from the deployed trusted key source, based on the encryption key PK.
  • Encrypt the private data read from the locally deployed data source to obtain the ciphertext data, and collect the ciphertext data sent by each computing node to encrypt the private data held by them, and then collect the collected data by other
  • the ciphertext data sent by each computing node is calculated together with the locally generated ciphertext data in accordance with the agreed operating logic to obtain the ciphertext data corresponding to the final calculation result of the multi-party secure calculation of the privacy data held by each computing node. (The other computing nodes mentioned above cannot decrypt the ciphertext data locally).
  • each other computing node may broadcast the ciphertext data corresponding to the final calculation result to each node device.
  • the target computing node can decrypt the ciphertext data corresponding to the final calculation result based on the decryption key SK to obtain the plaintext data of the final calculation result. , And then store the plaintext data of the final calculation result in a locally deployed result storage system.
  • the above-mentioned target computing node may also collect the ciphertext data obtained by encrypting the privacy data held by other computing nodes, and then collect the ciphertext data sent by other computing nodes.
  • the calculation is performed with the locally generated ciphertext data according to the agreed operation logic, and the ciphertext data corresponding to the final calculation result of the multi-party secure calculation of the private data held by each computing node is obtained (the above target computing node cannot be located locally Decrypt the ciphertext data).
  • the target computing node may broadcast the ciphertext data corresponding to the final calculation result to other computing nodes.
  • each other computing node After each other computing node receives the ciphertext data corresponding to the final calculation result, it can decrypt the ciphertext data corresponding to the final calculation result based on the decryption key SK to obtain the plaintext data of the final calculation result. , And then store the plaintext data of the final calculation result in a locally deployed result storage system.
  • any operation logic can be decomposed into basic operations such as addition homomorphic encryption and multiplicative homomorphic encryption.
  • 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 key source to generate.
  • the target computing node may obtain a random number from the trusted key 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, encrypt the obfuscated value of the output value in the truth table of the arithmetic gate to obtain ciphertext data, and based on The ciphertext data replaces the obfuscated value of the output value in the original truth table to obtain a confounded truth table; or, based on the ciphertext data, a confounded truth table (that is, a confounded truth table) can be created separately. Only the ciphertext data is included).
  • the target computing node may also disrupt the order of each row in the confusion truth table.
  • 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 encrypting 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 obfuscating circuit execution 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 specific implementation process will not be described in detail in this specification, and those skilled in the art may refer to the description in related technologies when implementing the technical solutions of this specification.
  • 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 generated cipher text data is sent to the participating multi-party secure computing as calculation parameters. For each compute node, you can also create an audit log related to the sent ciphertext data locally, and store the created audit log in a locally deployed log storage system.
  • the above audit log may be specifically used to record description information related to cipher text data 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 the calculation parameters including at least the ciphertext data obtained by encrypting the private data held by the interactive message constructed by each other computing node, it can also create a local and other Audit logs related to ciphertext data sent by each computing node, 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 descriptive information related to the ciphertext data recorded in the audit log may cover any form of encryption key that can prove that the ciphertext data corresponds to the encryption key from the trusted key source.
  • the description information of the encryption key is not particularly limited in this specification.
  • the description information related to the ciphertext data recorded in the audit log may specifically include an encryption key corresponding to the ciphertext data; therefore, the log-based storage system stores Audit log: When privacy auditing the ciphertext data sent by each computing node, you can directly audit whether the encryption key corresponding to the ciphertext data recorded in the audit log is trusted from the above-mentioned trusted key source. Key to confirm whether the ciphertext data is at risk of privacy leakage.
  • the audit log may also carry a decryption key that decrypts the ciphertext data; even, it may carry plaintext data of the ciphertext data.
  • the input data used by each computing node usually needs to be kept strictly confidential to other computing nodes participating in multi-party secure computing; therefore, in the audit log created by a computing node and related to the ciphertext data sent by its computing nodes, It is possible to record only the encryption key related to the ciphertext data. In the audit log created by the computing node and related to the computing parameters sent to other computing nodes locally, in addition to the encryption key of the ciphertext data, it can also record the decryption key of the ciphertext data, and the Plaintext data for ciphertext data.
  • the management user of the computing node can further decrypt the decrypted plaintext data based on the decryption key recorded in the audit log, after decrypting the ciphertext data generated by the computing node as the computing parameter locally.
  • the plain text data of the calculation parameters recorded in the audit log is used to audit the multi-party secure computing algorithm carried by the compute node. Whether the privacy data is maliciously added to the transmitted cipher text data without the user's knowledge, This improves the auditability of the algorithm.
  • 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 choose to use a key known to other participants to encrypt private data that needs to be transmitted to other computing nodes without the user's knowledge, so that The receiver can use the known key to decrypt the data and obtain the private data held by other computing nodes;
  • a privacy audit can be performed on the multi-party security algorithms carried by each computing node.
  • Multi-party security algorithm or a multi-party security algorithm carried by a specified computing node in each computing node for privacy auditing) to determine whether the ciphertext data sent by each computing node is at risk of privacy leakage.
  • 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.
  • the description information related to the ciphertext data recorded in the audit log may specifically include an encryption key corresponding to the ciphertext data.
  • the compute node can read the audit log corresponding to the ciphertext data sent by the compute nodes participating in multi-party secure computing as the calculation parameter from the locally deployed log storage system, and based on the read audit log The encryption key corresponding to the ciphertext data recorded in the above to verify whether the encryption key matches the trusted key from the trusted key source deployed;
  • a trusted key source when a trusted key source generates a random number as a trusted key, it usually uses a random extraction method in a preset random number value space to randomly extract a random number as a valid number. Therefore, when verifying whether the encryption key corresponding to the ciphertext data recorded in the audit log matches the trusted key from the deployed trusted key source, it can be specifically used as the encryption key. Match the random number value with the above random number value space to determine whether the random number value of the encryption key is within the value range of the random number value space; if it is, it indicates that the encryption key is The random number value of the key is a random number extracted from the value range of the random number value space.
  • the encryption key is a trusted key from a trusted key source; otherwise, it indicates that the The random number value of the encryption key is not a random number extracted from the value range of the random number value space. At this time, the encryption key may not be a trusted key from a trusted key source.
  • the encryption key corresponding to the ciphertext data is not a known key held by other computing nodes At this time, there is no risk of privacy leakage of the ciphertext data; on the contrary, if the encryption key corresponding to the ciphertext data does not come from a trusted key of a trusted key source after verification and verification, the ciphertext
  • the encryption key corresponding to the data may be a known key held by other computing nodes. At this time, the above-mentioned ciphertext data has a risk of privacy leakage.
  • the computing node can confirm whether the key corresponding to the ciphertext data as a calculation parameter is a valid key from a trusted key source by performing a simple audit on the audit log in the locally deployed log storage system. Trust key, so you can discover the risk of privacy leaks in time.
  • the audit log also carries the decryption key for decrypting the ciphertext data, and the plaintext data of the ciphertext data
  • the computing node can also Based on the decryption key corresponding to the ciphertext data recorded in the read audit log, and the plaintext data of the ciphertext data, further security check is performed on the ciphertext data to confirm whether the ciphertext data has been Equipped with multi-party secure computing algorithms, maliciously added private data;
  • the ciphertext data generated by the computing node as the calculation parameter can be decrypted to further verify whether the plaintext data of the decrypted calculation parameter is Is it consistent with the plaintext data of the calculation parameters recorded in the audit log to audit the multi-party secure computing algorithm carried by the computing node, and whether the privacy is maliciously added to the ciphertext data transmitted as the calculation parameters without the user's knowledge Data; if they match, it indicates that the implementation logic of the multi-party secure computing algorithm provided by the provider is consistent with the design of the multi-party secure computing algorithm, and there is no risk of privacy leakage for the ciphertext data; if they are not consistent, it indicates that the calculation
  • the multi-party secure computing algorithm provided by the algorithm provider provided by the node may maliciously add privacy data to the calculation parameters transmitted without the user's knowledge. At this time, the ciphertext data is at risk of privacy leakage.
  • the computing node can simply check the audit log in the locally deployed log storage system to confirm whether the ciphertext data used as the computing parameter is maliciously added with private data by the multi-party security algorithm.
  • the risk of privacy breaches can thus be identified in a timely manner.
  • each computing node participating in multi-party secure computing can obtain a trusted key from a docked trusted key source, and encrypt the held private data based on the trusted key to obtain ciphertext data
  • the ciphertext data is then used as a computing parameter to send to other computing nodes participating in multi-party secure computing to perform multi-party secure computing, so that the computing node can no longer use the multi-party secure computing when it performs encrypted calculations on the held private data.
  • the algorithm generates the key locally, but uses the trusted key obtained from the docked trusted key source, thereby avoiding the malicious multi-party secure computing algorithm to construct the key based on the held private data. Risk of privacy breach due to encryption.
  • 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 electronic device shown in FIG. 2 and includes an obtaining module 301, an encryption module 302, and a sending module 303.
  • An obtaining module 301 obtaining a trusted key from the trusted key source
  • the encryption module 302 encrypts the held private data based on the obtained trusted key to obtain ciphertext data
  • the sending module 303 sends at least the ciphertext data as calculation parameters to other computing nodes participating in multi-party secure computing, and executes by the other computing nodes based on the collected computing parameters sent by each computing node participating in multi-party secure computing. Multi-party secure computing.
  • the apparatus 30 further includes:
  • the creating module 304 (not shown in FIG. 3) creates an audit log corresponding to ciphertext data sent by the computing node to other computing nodes; wherein the audit log records descriptive information related to the ciphertext data.
  • the apparatus 30 further includes:
  • a collecting module 305 collects computing parameters sent by other computing nodes participating in multi-party secure computing; wherein the computing parameters include at least secrets obtained by encrypting the private data held by other computing nodes.
  • a calculation module 306 (not shown in FIG. 3), performing multi-party security calculations based on the collected calculation parameters;
  • the creation module 304 further:
  • the apparatus 30 further includes:
  • the audit module 307 performs a privacy audit on the ciphertext data sent by the computing nodes participating in multi-party secure computing based on the audit log, and confirms whether the ciphertext data sent by the computing node as a calculation parameter has a 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 ciphertext data sent by the computing node participating in the multi-party secure computing as the calculation parameter, and confirms that the computing node sends the Calculate whether the ciphertext data of the parameter poses a risk of privacy leakage.
  • the description information related to the ciphertext data includes: an encryption key corresponding to the ciphertext data;
  • the audit module 307 further:
  • the audit module 307 further:
  • the trusted key is a random number
  • Obtaining a trusted key from the trusted key source including 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 ciphertext data is sent as a computing parameter to other computing nodes participating in multi-party secure computing, and the other computing node performs multi-party secure computing based on the collected computing parameters sent by each computing node participating in multi-party secure computing.
  • 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 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:
  • a privacy audit is performed on the ciphertext data sent by the computing nodes participating in multi-party secure computing, and it is confirmed whether the ciphertext data sent by the computing node as a calculation parameter has a risk of privacy leakage.
  • the description information related to the ciphertext data includes: an encryption key corresponding to the ciphertext data;
  • 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:

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Storage Device Security (AREA)

Abstract

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

Description

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

Claims (15)

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

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP19850637.0A EP3779717B1 (en) 2018-08-14 2019-06-21 Multiparty secure computing method, device, and electronic device
SG11202010756PA SG11202010756PA (en) 2018-08-14 2019-06-21 Multiparty secure computing method, device, and electronic device
US17/086,382 US11206132B2 (en) 2018-08-14 2020-10-31 Multiparty secure computing method, device, and electronic device

Applications Claiming Priority (2)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/086,382 Continuation US11206132B2 (en) 2018-08-14 2020-10-31 Multiparty secure computing method, device, and electronic device

Publications (1)

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

Family

ID=65069606

Family Applications (1)

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

Country Status (6)

Country Link
US (1) US11206132B2 (zh)
EP (1) EP3779717B1 (zh)
CN (1) CN109241016B (zh)
SG (1) SG11202010756PA (zh)
TW (1) TWI733125B (zh)
WO (1) WO2020034755A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111753318A (zh) * 2020-06-04 2020-10-09 支付宝(杭州)信息技术有限公司 私有数据的多方安全计算方法、装置及系统
CN112182644A (zh) * 2020-09-11 2021-01-05 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和电子设备
CN112463332A (zh) * 2020-12-01 2021-03-09 华控清交信息科技(北京)有限公司 一种数据处理方法、密文计算系统和用于数据处理的装置
CN112765649A (zh) * 2020-12-31 2021-05-07 平安资产管理有限责任公司 基于区块链的多方数据分析方法、装置、设备和存储介质
CN112769786A (zh) * 2020-12-29 2021-05-07 杭州趣链科技有限公司 基于不经意传输规则的数据传输方法、装置和计算机设备
CN114124347A (zh) * 2021-11-15 2022-03-01 浪潮云信息技术股份公司 一种基于区块链的安全多方计算方法及系统
CN115587897A (zh) * 2022-11-25 2023-01-10 杭州煋辰数智科技有限公司 一种基于隐私计算的警税联合分析方法

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109359470B (zh) 2018-08-14 2020-09-01 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN109241016B (zh) 2018-08-14 2020-07-07 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN109981592B (zh) * 2019-02-28 2021-07-16 矩阵元技术(深圳)有限公司 多客户端多服务器联合生成密钥的方法和电子设备
CN109886687B (zh) * 2019-02-28 2023-12-05 矩阵元技术(深圳)有限公司 一种基于区块链实现安全多方计算的结果验证方法及系统
CN110800252B (zh) * 2019-03-18 2023-06-27 创新先进技术有限公司 防止安全多方计算中错误表示输入数据的方法和系统
CN111723384B (zh) * 2019-03-22 2024-04-02 阿里巴巴集团控股有限公司 数据处理方法、系统及设备
CN111753315B (zh) * 2019-03-29 2023-10-13 华控清交信息科技(北京)有限公司 输入数据的计算方法、计算引擎及存储介质
WO2020211075A1 (zh) * 2019-04-19 2020-10-22 云图有限公司 去中心化多方安全数据处理方法、装置及存储介质
US11295014B2 (en) * 2019-05-08 2022-04-05 Baidu Usa Llc TPM-based secure multiparty computing system using a non-bypassable gateway
CN112000979B (zh) * 2019-06-21 2023-07-04 华控清交信息科技(北京)有限公司 隐私数据的数据库操作方法、系统及存储介质
CN110266484B (zh) * 2019-06-28 2021-07-06 深圳前海微众银行股份有限公司 一种数据加密方法、装置、设备及介质
CN110289945B (zh) * 2019-06-28 2023-02-07 深圳前海微众银行股份有限公司 一种数据加密方法、装置、设备及介质
CN112307056B (zh) * 2019-07-31 2024-02-06 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN110472439B (zh) * 2019-08-09 2023-08-22 创新先进技术有限公司 模型参数确定方法、装置和电子设备
CN112565314B (zh) * 2019-09-10 2023-01-13 华控清交信息科技(北京)有限公司 一种计算集群和计算集群中的计算节点
CN114641772A (zh) * 2019-09-23 2022-06-17 维萨国际服务协会 用于安全密钥管理的系统、方法和计算机程序产品
CN112583764B (zh) * 2019-09-27 2022-12-20 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN112580064B (zh) * 2019-09-27 2023-01-13 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN110992032A (zh) * 2019-12-04 2020-04-10 支付宝(杭州)信息技术有限公司 多方联合进行可信用户评估的方法及装置
CN111027981B (zh) * 2019-12-13 2021-04-27 支付宝(杭州)信息技术有限公司 多方联合训练针对IoT机具的风险评估模型的方法及装置
CN111062058B (zh) * 2019-12-26 2022-04-15 深圳天玑数据有限公司 基于区块链的密钥对处理方法、装置、终端及可读存储介质
CN111222165B (zh) * 2020-01-10 2022-09-23 北京百度网讯科技有限公司 基于区块链的多方计算方法、装置、设备和介质
CN111368320B (zh) * 2020-03-06 2022-05-13 同盾控股有限公司 基于同态加密的安全多方计算的方法及装置
CN113452649B (zh) * 2020-03-24 2023-09-12 阿里巴巴集团控股有限公司 一种安全多方计算方法、设备、系统及存储介质
CN113553602A (zh) * 2020-04-26 2021-10-26 华为技术有限公司 一种数据处理方法、装置、系统、设备及介质
CN111611614B (zh) * 2020-04-29 2023-09-08 南京财经大学 基于区块链的抗恶意审计者的云存储公开审计方法及系统
CN111597567B (zh) * 2020-05-14 2022-03-04 腾讯科技(深圳)有限公司 数据处理方法、装置、节点设备及存储介质
CN111832044B (zh) * 2020-06-30 2023-01-03 中国船舶集团有限公司第七一六研究所 一种安全的协同计算处理方法及系统
CN111611623B (zh) * 2020-07-03 2020-10-30 腾讯科技(深圳)有限公司 一种隐私数据处理方法和装置
CN111552716A (zh) * 2020-07-10 2020-08-18 支付宝(杭州)信息技术有限公司 保护隐私的公共子串确定方法及装置
CN111737011B (zh) * 2020-07-31 2021-01-29 支付宝(杭州)信息技术有限公司 安全多方计算的实现方法和装置
CN112055021B (zh) * 2020-09-08 2021-07-23 苏州同济区块链研究院有限公司 一种基于椭圆曲线的茫然传输方法及装置
CN112347517B (zh) * 2021-01-07 2021-03-26 南京区盟链信息科技有限公司 一种基于多方安全计算的kyc合规监管的系统
CN113055155A (zh) * 2021-02-21 2021-06-29 上海帕科信息科技有限公司 一种基于大数据平台的数据安全存储方法
CN113098682B (zh) * 2021-03-08 2022-07-12 河北航天信息技术有限公司 基于区块链平台的多方安全计算方法、装置及电子设备
CN113193948B (zh) * 2021-03-24 2022-03-15 西安电子科技大学 多参与方联合隐私数据统计分析方法、信息数据处理终端
CN112926051B (zh) * 2021-03-25 2022-05-06 支付宝(杭州)信息技术有限公司 多方安全计算方法和装置
CN113206832B (zh) * 2021-03-31 2022-12-06 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN113807537B (zh) * 2021-04-06 2023-12-05 京东科技控股股份有限公司 多源数据的数据处理方法、装置及电子设备、存储介质
CN113541963B (zh) * 2021-07-16 2024-05-24 北京数牍科技有限公司 一种基于tee可扩展的安全多方计算方法及系统
CN113343283B (zh) * 2021-07-30 2021-10-15 深圳前海微众银行股份有限公司 一种数据处理方法
CN113660085B (zh) * 2021-08-13 2023-06-06 北方工业大学 一种基于量子同态加密的量子安全多方计算方法
CN113449325B (zh) * 2021-08-30 2021-11-23 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN113489752B (zh) * 2021-09-07 2021-11-19 华控清交信息科技(北京)有限公司 明密文混合计算方法、装置、电子设备及存储介质
CN113541946B (zh) * 2021-09-08 2022-01-04 华控清交信息科技(北京)有限公司 一种多方安全计算方法、装置及电子设备
CN113517977B (zh) * 2021-09-09 2021-11-30 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN113992359A (zh) * 2021-09-30 2022-01-28 上海数禾信息科技有限公司 用户信息的加密控制方法、装置、计算机设备和存储介质
CN114091057B (zh) * 2021-11-08 2022-04-26 深圳致星科技有限公司 基于模型模拟的联邦学习安全审计方法及装置
CN114301715A (zh) * 2022-01-29 2022-04-08 杭州趣链科技有限公司 联盟链数据安全审计方法、装置、计算机设备及存储介质
CN114301594B (zh) * 2022-03-01 2022-05-17 华控清交信息科技(北京)有限公司 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置
CN114726611A (zh) * 2022-04-01 2022-07-08 网银在线(北京)科技有限公司 多方隐私集合求交方法、系统和装置
CN114647662B (zh) * 2022-05-13 2022-08-23 富算科技(上海)有限公司 数据检索方法、装置、电子设备、存储介质
CN114679270B (zh) * 2022-05-25 2022-09-06 南湖实验室 一种基于隐私计算的数据跨域加解密方法
CN114692207B (zh) * 2022-05-31 2022-09-20 蓝象智联(杭州)科技有限公司 一种隐私保护的数据处理方法、装置及存储介质
CN115134135A (zh) * 2022-06-23 2022-09-30 广州物联网研究院 一种数据的隐私计算方法、存储介质及计算机设备
CN115270162B (zh) * 2022-09-26 2022-12-02 国网浙江省电力有限公司金华供电公司 基于多方计算的审计审价异构数据在线整合方法及系统
CN116248255B (zh) * 2023-05-12 2023-08-01 杭州大鱼网络科技有限公司 一种基于网络安全的隐私保护方法及系统
CN116611094A (zh) * 2023-06-13 2023-08-18 上海零数众合信息科技有限公司 基于安全多方计算的充电网络数据获取方法及系统
CN117235801B (zh) * 2023-11-10 2024-02-09 北京天润基业科技发展股份有限公司 隐私数据的统计方法、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104521178A (zh) * 2012-04-17 2015-04-15 华为技术有限公司 安全的多方云计算的方法和系统
WO2016135738A1 (en) * 2015-02-27 2016-09-01 Dyadic Security Ltd Asystem and methods for protecting keys using garbled circuits
CN108183791A (zh) * 2017-12-11 2018-06-19 北京航空航天大学 应用于云环境下的智能终端数据安全处理方法及系统
CN109241016A (zh) * 2018-08-14 2019-01-18 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN109255247A (zh) * 2018-08-14 2019-01-22 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN109359470A (zh) * 2018-08-14 2019-02-19 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7086086B2 (en) 1999-02-27 2006-08-01 Alonzo Ellis System and method for maintaining N number of simultaneous cryptographic sessions using a distributed computing environment
US7131004B1 (en) * 2001-08-31 2006-10-31 Silicon Image, Inc. Method and apparatus for encrypting data transmitted over a serial link
US20060182283A1 (en) 2005-02-14 2006-08-17 Tricipher, Inc. Architecture for asymmetric crypto-key storage
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
GB201020424D0 (en) 2010-12-02 2011-01-19 Qinetiq Ltd Quantum key distribution
JP5885840B2 (ja) * 2012-07-05 2016-03-16 日本電信電話株式会社 秘密分散システム、データ分散装置、分散データ変換装置、秘密分散方法、およびプログラム
CN102984156B (zh) * 2012-11-30 2016-01-20 无锡赛思汇智科技有限公司 一种可验证的分布式隐私数据比较与排序方法及装置
CN103248478A (zh) * 2013-05-08 2013-08-14 天津大学 基于多方安全协议的密封式电子拍卖方案与验证方法
CN103888262B (zh) * 2014-03-31 2017-04-26 公安部第三研究所 用于云数据审计的密钥变化和签名更新的方法
CN104320262B (zh) * 2014-11-05 2017-07-21 中国科学院合肥物质科学研究院 基于加密数字货币公开账本技术的用户公钥地址绑定、检索和校验的方法及系统
CN105245502A (zh) * 2015-09-06 2016-01-13 江苏马上游科技股份有限公司 一种云计算数据安全解决方法
US10581812B2 (en) * 2015-12-01 2020-03-03 Duality Technologies, Inc. Device, system and method for fast and secure proxy re-encryption
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
US9774578B1 (en) * 2016-05-23 2017-09-26 Accenture Global Solutions Limited Distributed key secret for rewritable blockchain
US11829998B2 (en) 2016-06-07 2023-11-28 Cornell University Authenticated data feed for blockchains
US10432400B2 (en) * 2016-10-25 2019-10-01 Southern Methodist University Method and system for privacy preserving disclosure of a shared, identity linked secret
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
CN106789041B (zh) * 2017-02-15 2019-07-12 江苏信源久安信息科技有限公司 一种去中心化证书可信区块链方法
CN106972931B (zh) * 2017-02-22 2020-05-15 中国科学院数据与通信保护研究教育中心 一种pki中证书透明化的方法
US10521604B2 (en) 2017-03-17 2019-12-31 Labyrinth Research Llc Unified control of privacy-impacting devices
US11107048B2 (en) 2017-04-17 2021-08-31 International Business Machines Corporation Providing out-of-band verification for blockchain transactions
US10404471B1 (en) 2017-04-26 2019-09-03 Wells Fargo Bank, N.A. Secure ledger assurance tokenization
CN107104977B (zh) * 2017-05-23 2020-07-31 北京天德科技有限公司 一种基于sctp协议的区块链数据安全传输方法
GB201709760D0 (en) * 2017-06-19 2017-08-02 Nchain Holdings Ltd Computer-Implemented system and method
WO2019025415A1 (en) * 2017-07-31 2019-02-07 Koninklijke Philips N.V. DISTRIBUTION OF A CALCULATION OUTPUT
CN107483198B (zh) * 2017-09-25 2019-11-12 中国科学院信息工程研究所 一种可监管的区块链系统及方法
US10833861B2 (en) 2017-11-28 2020-11-10 International Business Machines Corporation Protection of confidentiality, privacy and ownership assurance in a blockchain based decentralized identity management system
WO2019109003A1 (en) 2017-11-30 2019-06-06 Visa International Service Association Blockchain system for confidential and anonymous smart contracts
US10778412B2 (en) 2017-12-28 2020-09-15 Intel Corporation Multi-domain convolutional neural network
CN108364223B (zh) * 2017-12-29 2021-01-26 创新先进技术有限公司 一种数据审计的方法及装置
US10887085B2 (en) * 2018-01-15 2021-01-05 Unbound Tech Ltd. System and method for controlling usage of cryptographic keys
US10956075B2 (en) 2018-02-02 2021-03-23 Bank Of America Corporation Blockchain architecture for optimizing system performance and data storage
US11218324B2 (en) * 2018-04-05 2022-01-04 Ares Technologies, Inc. Systems and methods authenticating a digitally signed assertion using verified evaluators
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
WO2019072262A2 (en) * 2018-11-07 2019-04-18 Alibaba Group Holding Limited RECOVERING CHILLED TRANSACTION INFORMATION IN CONFIDENTIAL BLOCK CHAIN TRANSACTIONS

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104521178A (zh) * 2012-04-17 2015-04-15 华为技术有限公司 安全的多方云计算的方法和系统
WO2016135738A1 (en) * 2015-02-27 2016-09-01 Dyadic Security Ltd Asystem and methods for protecting keys using garbled circuits
CN108183791A (zh) * 2017-12-11 2018-06-19 北京航空航天大学 应用于云环境下的智能终端数据安全处理方法及系统
CN109241016A (zh) * 2018-08-14 2019-01-18 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN109255247A (zh) * 2018-08-14 2019-01-22 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN109359470A (zh) * 2018-08-14 2019-02-19 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3779717A4 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111753318A (zh) * 2020-06-04 2020-10-09 支付宝(杭州)信息技术有限公司 私有数据的多方安全计算方法、装置及系统
CN111753318B (zh) * 2020-06-04 2024-04-26 上海蚂蚁创将信息技术有限公司 私有数据的多方安全计算方法、装置及系统
CN112182644A (zh) * 2020-09-11 2021-01-05 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和电子设备
CN112182644B (zh) * 2020-09-11 2023-05-12 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和电子设备
CN112463332A (zh) * 2020-12-01 2021-03-09 华控清交信息科技(北京)有限公司 一种数据处理方法、密文计算系统和用于数据处理的装置
CN112769786A (zh) * 2020-12-29 2021-05-07 杭州趣链科技有限公司 基于不经意传输规则的数据传输方法、装置和计算机设备
CN112765649A (zh) * 2020-12-31 2021-05-07 平安资产管理有限责任公司 基于区块链的多方数据分析方法、装置、设备和存储介质
CN114124347A (zh) * 2021-11-15 2022-03-01 浪潮云信息技术股份公司 一种基于区块链的安全多方计算方法及系统
CN115587897A (zh) * 2022-11-25 2023-01-10 杭州煋辰数智科技有限公司 一种基于隐私计算的警税联合分析方法

Also Published As

Publication number Publication date
TWI733125B (zh) 2021-07-11
CN109241016B (zh) 2020-07-07
US11206132B2 (en) 2021-12-21
US20210051001A1 (en) 2021-02-18
EP3779717A1 (en) 2021-02-17
EP3779717B1 (en) 2022-08-03
CN109241016A (zh) 2019-01-18
TW202009777A (zh) 2020-03-01
EP3779717A4 (en) 2021-06-02
SG11202010756PA (en) 2020-11-27

Similar Documents

Publication Publication Date Title
WO2020034755A1 (zh) 多方安全计算方法及装置、电子设备
TWI712301B (zh) 多方安全計算方法及裝置、電子設備
TWI706279B (zh) 多方安全計算方法及裝置、電子設備
CN110138802B (zh) 用户特征信息获取方法、装置,区块链节点、网络,及存储介质
Ali et al. SeDaSC: secure data sharing in clouds
US11233659B2 (en) Method of RSA signature or decryption protected using a homomorphic encryption
JP5562687B2 (ja) 第1のユーザによって第2のユーザに送信される通信の安全化
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
US20220337428A1 (en) Anonymous broadcast method, key exchange method, anonymous broadcast system, key exchange system, communication device, and program
US11575501B2 (en) Preserving aggregation using homomorphic encryption and trusted execution environment, secure against malicious aggregator
US20200220708A1 (en) United countermeasure against side-channel attacks
van Kempen et al. LISA: LIghtweight single-server Secure Aggregation with a public source of randomness
Vieitez Parra The Impact of Attestation on Deniable Communications
CN117708881A (zh) 基于可重用混淆电路的跨机构黑名单共享方法及系统
CN114936380A (zh) 基于变色龙哈希的区块链隐私数据共享方法及系统
Zhao Protecting Identity and Location Privacy in Online Environment
Cheng et al. AN ENCRYPTION KEY DISTRIBUTION STRATEGY FOR SECURE SHARING OF SENSITIVE INFORMATION USING BLOCKCHAIN IN CONSTRUCTION PROJECTS

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: 19850637

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019850637

Country of ref document: EP

Effective date: 20201030

NENP Non-entry into the national phase

Ref country code: DE