US11621834B2 - Systems and methods for preserving data integrity when integrating secure multiparty computation and blockchain technology - Google Patents
Systems and methods for preserving data integrity when integrating secure multiparty computation and blockchain technology Download PDFInfo
- Publication number
- US11621834B2 US11621834B2 US16/901,343 US202016901343A US11621834B2 US 11621834 B2 US11621834 B2 US 11621834B2 US 202016901343 A US202016901343 A US 202016901343A US 11621834 B2 US11621834 B2 US 11621834B2
- Authority
- US
- United States
- Prior art keywords
- mac
- data
- smpc
- secret
- secret share
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active, expires
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000004044 response Effects 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000000654 additive Substances 0.000 description 2
- 230000000996 additive effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- RGNPBRKPHBKNKX-UHFFFAOYSA-N hexaflumuron Chemical compound C1=C(Cl)C(OC(F)(F)C(F)F)=C(Cl)C=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F RGNPBRKPHBKNKX-UHFFFAOYSA-N 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Definitions
- the present disclosure relates to the field of secure multiparty computation (SMPC), and, more specifically, to systems and methods for preserving data integrity when integrating SMPC and blockchain technology.
- SMPC secure multiparty computation
- a blockchain is a decentralized, distributed digital ledger that is used to record transactions across many nodes (e.g., servers) such that any record cannot be altered retroactively (e.g., tampering), without the alteration of all subsequent blocks on the majority of nodes.
- nodes e.g., servers
- blockchains prevent stored records from being changed, storing information on a blockchain or in any database-like system does not keep the data private or secured. For example, the information on a blockchain is not private from the parties/nodes participating in the blockchain.
- Blockchains only protect the integrity of data, while database-like systems simply store data. In this case, data integrity is the guaranteeing that data has not been tampered with (e.g., if a client publishes the value 10, it should not be able to be changed without detection).
- the integrity of the data should remain intact. Furthermore, the data should remain private.
- An approach to keeping data private is encryption. However, encrypting data raises issues around key management and functionality, where traditional encrypted values cannot be computed over until they are decrypted. If decryption actually occurs, the data meant to be private is ultimately revealed. Whereas if private data is processed without being revealed, data integrity still needs to be preserved, even once off-chain or retrieved from a database-like system.
- aspects of the present disclosure describe methods and systems for preserving data integrity and privacy when integrating secure multiparty computation (SMPC) and blockchain technology.
- SMPC secure multiparty computation
- a method may split, via a data publisher, data into a plurality of data secret shares using a SMPC protocol, wherein each secret share of the plurality of data secret shares is assigned to an SMPC compute node of a plurality of SMPC compute nodes and wherein the plurality of SMPC compute nodes may be members of a blockchain network.
- the method may determine parameters of a message authentication code (MAC) condition based on the data, may generate secret shares of the MAC condition parameters, and may include a plurality of MAC secret shares with the plurality of data secret shares.
- MAC message authentication code
- each secret share assigned to a respective SMPC compute node comprises a secret share of the data and a secret share of the MAC condition parameters.
- the method may identify, from the plurality of SMPC compute nodes, a respective SMPC compute node assigned to the respective secret share (comprising the data secret share and the MAC secret share).
- the method may retrieve a respective public key of the respective SMPC compute node.
- the method may encrypt the respective secret share using the respective public key and publish the encrypted respective secret share on a blockchain or into a database system.
- the plurality of encrypted secret shares may be published to a single blockchain or database system.
- the method may identify, from the plurality of SMPC compute nodes, a respective blockchain or database system assigned to the respective secret share.
- the method may push the respective secret share onto the respective blockchain or database system.
- the respective blockchains may each be comprised of separate parties participating in the network; thus, no single party receives secret shares for multiple SMPC compute nodes of the plurality of SMPC compute nodes.
- the respective database systems too may each be on separate parties; thus, no single party receives secret shares for multiple SMPC compute nodes of the plurality of SMPC compute nodes.
- the method may send a respective secret share (comprising both the data secret share and the corresponding MAC secret share) to a respective database system of a plurality of database systems.
- the method may further send a receipt/digital signature of the respective secret share to the blockchain.
- the method may further generate, via the data publisher, a random number (R) within a public mod value (M), where M is known by the plurality of SMPC compute nodes and R is not known.
- the method may compute V ⁇ R ⁇ MAC key2 to determine MAC v2 mod M, wherein V is the data, MAC key2 is a public message authentication code key known by the plurality of SMPC compute nodes and MAC v2 is a message authentication code.
- the method may determine R ⁇ 1 , wherein R ⁇ 1 is an inverse of R in mod M.
- the method may then include additional secret shares of R ⁇ 1 and MAC v2 in the plurality of secret shares for storing (e.g., encrypted and published on a blockchain), wherein each respective secret share of R ⁇ 1 and MAC v2 is matched with a corresponding secret share of the data in the plurality of data secret shares.
- the method may retrieve, via a data querier, the encrypted respective secret share from the blockchain or database system.
- the method may send the encrypted respective secret share to the assigned respective SMPC compute node and an indication of a secure function to perform.
- the respective SMPC compute node may be configured to decrypt the encrypted respective secret share using a private key of the respective SMPC compute node, execute the secure function on the decrypted respective secret share in response to verifying data integrity of the decrypted respective secret share, publish, on the blockchain, a digital signature of a result of the execution, and transmit the result to the data querier.
- the method may request, via a data querier, a secure function to be performed.
- the respective SMPC compute node may be configured to retrieve the required secret shares from the blockchain or database system, decrypt the encrypted respective secret share using a private key of the respective SMPC compute node, execute the secure function on the decrypted respective secret share in response to verifying data integrity of the decrypted respective secret share, publish, on the blockchain, a digital signature of a result of the execution, and transmit the result to the data querier.
- each respective SMPC compute node of the plurality of SMPC compute nodes may be configured to convert the MAC for a respective secret share from using the publicly known MAC key (i.e., MAC key2 ), to a secret MAC key (MAC key1 ) which is unknown to any of the SMPC compute nodes.
- the plurality of SMPC compute nodes may jointly compute, for each secret share, MAC v2 ⁇ F ⁇ R ⁇ 1 within mod M to give MAC v1 , where V ⁇ MAC key1 is equivalent to the value MAC v1 .
- the plurality of SMPC compute nodes may use the secret MAC key for any secure computation, thus maintaining data integrity.
- the plurality of SMPC compute nodes may convert results, which may still be in a secret share format, from the secret MAC key to the public MAC key.
- the plurality of SMPC compute nodes may jointly compute MAC v1 R ⁇ F ⁇ 1 giving MAC v2 , where R is a secret randomly generated value, and F ⁇ 1 is the inverse of the secret value F within mod M.
- the plurality of SMPC compute nodes may return the secret shares of the result value V, R ⁇ 1 , and MAC v2 . Furthermore, the share may be pushed back into the blockchain or database system, or returned back to the data querier.
- the plurality of SMPC compute nodes may return encrypted secret shares of the result value V, R ⁇ 1 , and MAC v2 using a provided public key, or using each respective public key for each respective SMPC compute node. Furthermore, the encrypted share may be pushed back into the blockchain or database system, or returned back to the data querier.
- the method may receive, via the data querier, a respective result from each of the plurality of SMPC compute nodes and the plurality of secret shares.
- the method may join each of the plurality of secret shares received from the plurality of SMPC compute nodes to determine V, R ⁇ 1 and MAC v2 .
- the method may then verify the data integrity by determining whether V ⁇ R ⁇ MAC key2 equals MAC v2 mod M.
- the method may determine that the respective results are authentic.
- the digital signature may be generated using a hash function (e.g., MD5, SHA1, etc.) comprising information including but not limited to source code of the secure function, input data, and/or the result.
- a signature for each SMPC compute node may be generated individually, or the hash function itself may be defined as a SMPC function, thus, inputs of the hash function are in secret shares.
- the method may verify the result via an auditor that is configured to request the decrypted secret share and the secure function, perform the secure function on the decrypted secret share to determine a second result, and compare the result of the respective SMPC compute node with the second result.
- the method may verify the result via an auditor that is configured to transfer the plurality of data secret shares into a different secure environment, perform the secure function within the different secure environment to determine a second result, and compare the result of the respective SMPC compute node with the second result.
- an auditor that is configured to transfer the plurality of data secret shares into a different secure environment
- compare the result of the respective SMPC compute node with the second result For example, Intel SGX or homomorphic encryption may be used to perform the verification.
- a data querier transmits assignment information to each of the plurality of SMPC compute nodes indicating which respective encrypted secret share to retrieve from the blockchain or database system, and wherein each respective SMPC compute node directly retrieves the assigned respective secret share from the blockchain or database system.
- a respective SMPC compute node of the plurality of SMPC compute nodes detects the publishing of new data into a blockchain and automatically retrieves and decrypts the encrypted respective secret share.
- the methods described above may be implemented in a system comprising a hardware processor. Alternatively, the methods may be implemented using computer executable instructions of a non-transitory computer readable medium.
- FIG. 1 is a block diagram illustrating a system for integrating SMPC into blockchain technology, in accordance with aspects of the present disclosure.
- FIG. 2 illustrates a flow diagram of a method for publishing encrypted secret shares generated using a SMPC protocol on a blockchain, in accordance with aspects of the present disclosure.
- FIG. 3 illustrates a flow diagram of a method for determining arguments of a MAC condition, in accordance with aspects of the present disclosure.
- FIG. 4 illustrates a flow diagram of a method for authenticating a result by verifying the MAC condition, in accordance with aspects of the present disclosure.
- FIG. 5 presents an example of a general-purpose computer system on which aspects of the present disclosure can be implemented.
- Secret sharing refers to distributing a secret amongst a group of participants, where each participant is allocated a share of the secret. Individual shares are of no use on their own, as the secret can only be reconstructed when a number of shares are combined together.
- SMPC frameworks allow multiple parties to jointly compute a function, such that their inputs remain private, using secret sharing. More specifically, data is protected by being split into secret shares, where each party receives a subset of these shares. Therefore each party cannot see the real data. For example, the secret “10” can be split into secret shares “3,” “2,” and “5,” whose sum (i.e., 3+2+5) gives 10.
- MACs Message Authentication Codes
- the MAC key is not known by any single party, making it improbable that one SMPC node can change a secret share of V, and make a corresponding change to the secret share of MAC V .
- the integration of SMPC and blockchain technology thus utilizes two MACs: (1) the traditional MAC used in the SMPC compute nodes, and (2) a MAC used to keep the data protected during storage and while the data is being uploaded and converted into the traditional MAC on the compute nodes.
- FIG. 1 is a block diagram illustrating system 100 for integrating SMPC into blockchain technology, in accordance with aspects of the present disclosure.
- System 100 comprises data 102 , which may be a dataset holding information that is confidential.
- Data publisher 104 may be a node (e.g., a computer, server, etc.) that stores information in a database or on blockchain 110 .
- Blockchain 110 is a distributed ledger comprising a plurality of records 112 .
- Blockchain 110 may be managed by nodes 116 of blockchain network 114 . Nodes 116 may each comprise a copy of blockchain 110 .
- data publisher 104 is a member of blockchain network 114 .
- blockchain 110 in the traditional sense does not keep the information of data 102 confidential as each node 116 of blockchain network 114 may be able to view the contents of data 102 .
- Data querier 118 may be a node that wants to run a query over data 102 , but should not have access to the information contained in data 102 .
- blockchain network 114 is made up of computers belonging to employees of a company, such that each node 116 represents a respective employee's computer.
- Data publisher 104 may be a computer belonging to a human resources coordinator.
- Blockchain 110 may comprise company information that all employees can access to prevent tampering by an outside malicious entity (e.g., a hacker attempting to alter salary information).
- data 102 may comprise the salary information for a group of ten new employees that have been hired by the company.
- Data querier 118 may be a legacy employee that would like to know the average salary of the new hires.
- data 102 should be stored in a manner on blockchain 110 such that data querier 118 cannot directly see the salary information.
- data querier 118 or any node 116 handling the query may need to decrypt data 102 and will thus see the information.
- data publisher 104 utilizes an SMPC protocol such as additive secret sharing to split data 102 into a plurality of secret shares. These secret shares are listed as split data 106 A-Z in FIG. 1 .
- the number of splits depends on the number of compute nodes 116 that may handle the query.
- blockchain network 114 may allocate, from the plurality of nodes 116 , a group of worker nodes that perform computations, a group of verification nodes that verify the results of computations, and a group of storage nodes that store records comprising data and results.
- data publisher 104 may split data 102 a number of times equal to the number of worker nodes in blockchain network 114 (e.g., if there are 10 worker nodes, there will be 10 instances of split data 106 ).
- the group of worker nodes may be a subset of the plurality of nodes in the blockchain network; furthermore, the group of worker nodes may consist of nodes that are not members of the blockchain network.
- the public modular value M may be specified or generated.
- they can jointly and securely generate the values: MAC key1 , MAC key2 , F and F ⁇ 1 .
- These values are initially in secret shares, before MAC key2 is revealed and made public.
- the public values M and MAC key2 may be published onto blockchain 110 . For example, first generate M and MAC key2 in plaintext, then F can be securely generated using some random number generator function, such that no SMPC party has knowledge of it. Once MAC key2 and F exist, then MAC key1 must exist. With mod M and the unknown value F, F ⁇ 1 can be securely calculated.
- data 102 comprises 10 salaries of the new hires in a 1 ⁇ 10 array.
- Data publisher 104 may create, from data 102 , ten separate datasets that, when combined, equal the original respective dataset. For example, in data 102 , the first element may be $90 k. The first element of each of split data 106 may be: $10 k, $5 k, $1 k, $9 k, $5 k, $50 k, $0, $5 k, $5 k, and $0. These then values add up to $90 k. However, when considered individually, one cannot determine the original value.
- Each of split data 106 may be assigned to a worker node of blockchain network 114 . In the present disclosure, these worker nodes are known as SMPC compute nodes. One skilled in the art would appreciate that the splitting is more advanced in practice (e.g., may use multiplicative secret sharing, or use a polynomial equation to split the values).
- data publisher 104 retrieves the public key of the respective SMPC compute node from blockchain 110 and encrypts the split data 106 using the public key.
- the encrypted split data 106 may thus only be decrypted by the assigned SMPC compute node with a private key that only the assigned SMPC compute node knows.
- each SMPC compute node has a different public key, and does not have knowledge of the other compute nodes private keys. For a blockchain approach, these public keys can be added to blockchain 110 for verification and integrity, where they may be retrieved by data publisher 104 .
- the encrypted secret shares (e.g., split data 106 A-Z) are then be pushed onto blockchain 110 , or stored in a database.
- the respective databases can either be separate or integrated into the SMPC compute nodes 116 A-Z.
- the secret shares are stored on a blockchain that is distributed across blockchain network 114 , the data is tamper-resistant.
- data querier 118 may retrieve the required data (e.g., the encrypted secret shares) from blockchain 110 or the database, and send the shares to the assigned SMPC compute nodes 116 A-Z. In some aspects, data querier 118 simply sends the data requirements to the assigned SMPC compute nodes (e.g., sends SMPC compute note 116 A information about a record 112 comprising its assigned encrypted secret share). The plurality of SMPC compute notes may then directly read the respective data from blockchain 110 (either locally or remotely), or from their own respective databases.
- required data e.g., the encrypted secret shares
- data querier 118 simply sends the data requirements to the assigned SMPC compute nodes (e.g., sends SMPC compute note 116 A information about a record 112 comprising its assigned encrypted secret share).
- the plurality of SMPC compute notes may then directly read the respective data from blockchain 110 (either locally or remotely), or from their own respective databases.
- the SMPC compute nodes 116 A-Z may then decrypt their respective assigned split data 106 .
- SMPC compute node 116 A may decrypt split data 106 A using its private key.
- SMPC compute node 116 A may execute its secure function, and store a signature of the result back onto blockchain 110 , before securely sending the results back to data querier 118 .
- the signature can include program source code of the secure function, the input values in their secret share format, and the result share for verification later, thus, each SMPC compute node publishes a signature.
- SMPC compute node 116 A may receive a 1 ⁇ 10 array that comprises secret shares salary information.
- the secure function may involve adding each element of the 1 ⁇ 10 array.
- the sum of the elements determined by SMPC compute node 116 A is not the average.
- each sum from the remaining 9 SMPC compute nodes 116 B-Z may be added with the sum determined by node 116 A and divided by 10. This computation does not reveal the individual salaries of the 10 new hires, and successfully provides the average salary.
- each SMPC compute node may provide their sums to data querier 118 , which may perform the final computations to obtain the average.
- data querier 118 may perform the final computations to obtain the average.
- MAC conditions may be used.
- This process needs to apply a MAC during the upload process (i.e., when split data 106 which is written onto blockchain 110 as a record 112 is transmitted to an SMPC compute node).
- a respective SMPC compute node can make any changes to V because if MAC key1 is known by any member of the blockchain network 114 , then it is assumed to be public knowledge, breaking the above requirement that assumes MAC key1 is not known.
- Data publisher 104 generates and applies random value R, where the inverse of R in modulo M, R ⁇ 1 , is also encrypted (e.g., split into secret shares) and stored with the tuple (V,_MAC v2 ), giving (V,_MAC v2 ,_R ⁇ 1 ) and is used to protect the data when the data is being converted from MAC key2 to MAC key1 .
- the three values in the tuple are split into secret shares before encryption.
- R ⁇ 1 is also split into multiple values (i.e., R ⁇ 1 108 A-Z) using an SMPC protocol and MAC v2 is split into multiple values (i.e., MAC v2 107 A-Z).
- the values split data 106 A, MAC v2 107 A, and R ⁇ 1 108 A are assigned to SMPC compute node 116 A.
- the three values are collectively encrypted using SMPC compute node 116 A's public key. This also applies to the remaining tuples and their respective compute nodes.
- the respective SMPC compute node converts the secret shares back to the public MAC key (i.e., MAC key2 ). This is accomplished by the compute node multiplying MAC v1 by some random number R in mod M and then F ⁇ 1 in mod M, giving MAC v2 . It should be noted that R is generated within the SMPC environment, so is not known by any of the SMPC compute nodes. The respective SMPC compute node then returns back the result V, R ⁇ 1 , and MAC v2 to data querier 118 , where R ⁇ 1 is the inverse of R in mod M.
- the order of operations is important in protecting the integrity of data 102 . If R ⁇ 1 were to be applied first, a SMPC compute node (e.g., 116 A) could make a modification to V (e.g., by changing split data 106 when performing a secure function). However, because all SMPC compute nodes perform the same operation at the same time, and communicate with each other during said operations, by applying F first, then R ⁇ 1 , for a compute node to maliciously change V (or more specifically a secret share of V), then R ⁇ 1 would need to be known, which is only known by data publisher 104 whom pushed this data. The individual compute nodes only receive a portion of R ⁇ 1 and do not know the original value. Therefore, the data integrity is maintained throughout the data flow, including being pushed onto blockchain 110 , being uploaded to the SMPC compute nodes 116 A-Z, and being executed using the two MAC process.
- the opposite function can be applied to return results back to data querier 118 and possibly back onto blockchain 110 (where each share would be encrypted again).
- the resulting MAC v1 can be multiplied by some random R value (the plaintext R is unknown to the SMPC compute nodes at the time of execution) and F ⁇ 1 .
- This converts the MAC key back to MAC key2 which is publicly known, and can be used to verify the results (only once all the shares are received and combined can the result be modified, as R needs to be known).
- SMPC compute nodes 116 A-Z manage their own keys.
- the keys may be managed by another SMPC compute network, or by multiple third-parties whom are responsible for one of the X shares, where X is the number of SMPC compute nodes.
- SMPC compute nodes 116 A-Z may request for the decryption of their shares (where each share could use a different encryption key), either by the other party decrypting it, or by being provided with the decryption key for that share.
- data publisher 104 may store the data in a database system (e.g., databases 120 A-Z).
- data publisher 104 may utilize a combination of blockchain 110 and databases 120 .
- data publisher 104 may send a respective secret share (comprising both the data secret share and the corresponding MAC secret share) to a respective database system of a plurality of database systems (e.g., secret share A to database 120 A, secret share B to database 120 B, etc.).
- Data publisher 104 may further send a receipt/digital signature of the respective secret share to blockchain 110 .
- each respective secret share is encrypted with the public key of the respective SMPC compute node, a single database 120 could be used to store all the encrypted shares.
- FIG. 2 illustrates a flow diagram of method 200 for publishing encrypted secret shares generated using a SMPC protocol on a blockchain, in accordance with aspects of the present disclosure.
- data publisher 104 splits data (e.g., data 102 ) into a plurality of data secret shares (e.g., split data 106 A-Z) using a SMPC protocol such as additive secret sharing.
- data publisher 104 further determines parameters of a MAC condition (e.g., R ⁇ 1 and MAC v2 ) based on the data, generates secret shares of the MAC condition parameters, and includes the secret shares in a plurality of MAC secret shares.
- the combination of the plurality of data secret shares and the plurality of MAC secret shares is referred to as the plurality of secret shares. This is further discussed in FIG. 3 .
- data publisher 104 identifies, from the plurality of SMPC compute nodes (e.g., nodes 116 A-Z), a respective SMPC compute node assigned to the respective data secret share. For example, split data 106 A may be assigned to SMPC compute node 116 A.
- data publisher 104 retrieves a respective public key of the respective SMPC compute node.
- data publisher 104 encrypts the respective data secret share using the respective public key.
- data publisher 104 publishes the encrypted respective secret share on a blockchain (e.g., blockchain 110 ) of the blockchain network (e.g., network 114 ).
- FIG. 3 illustrates a flow diagram of method 300 for determining arguments of a MAC condition, in accordance with aspects of the present disclosure.
- Method 300 may be executed after 202 and before 204 of method 200 .
- data publisher 104 generates a random number (R) within a public mod value (M), where M is known by the plurality of SMPC compute nodes.
- data publisher 104 computes V ⁇ R ⁇ MAC key2 to determine MAC v2 mod M, wherein V is the data, MAC key2 is a message authentication code key known by the plurality of SMPC compute nodes and MAC v2 is the message authentication code.
- data publisher 104 determines wherein R ⁇ 1 is an inverse of R in mod M.
- each respective secret share assigned to a respective SMPC compute node comprises a portion of the data (e.g., split data 106 A) and a secret share of the MAC condition parameters (e.g., MAC v2 107 A and R ⁇ 1 108 A).
- FIG. 4 illustrates a flow diagram of a method for authenticating a result by verifying the MAC condition, in accordance with aspects of the present disclosure.
- data querier 118 receives a respective result from each of the plurality of SMPC compute nodes (e.g., nodes 116 A-Z) and the plurality of secret shares.
- data querier 118 joins each of the plurality of MAC secret shares received from the plurality of SMPC compute nodes to determine V, R ⁇ 1 and MAC v2 .
- data querier 118 determines whether data integrity is preserved for the data (V), by verifying if the MAC condition is satisfied.
- data querier 118 determines whether V ⁇ R ⁇ MAC key2 equals MAC v2 mod M. In response to determining that the MAC condition is satisfied, method 400 advances to 408 , where data querier 118 determines that the respective results are authentic (because the inputs have not been tampered with). In response to determining that the MAC condition is not satisfied, method 400 advances to 410 , where data querier 118 determines that the respective results are inauthentic. This is an indication that one of the split data 106 has been altered while the data was stored on blockchain 110 , during the uploading process to one or more of the SMPC compute nodes, or while the results were being calculated (e.g., one of the nodes is malicious).
- FIG. 5 is a block diagram illustrating a computer system 20 on which aspects of systems and methods for preserving data integrity when integrating SMPC into blockchain technology may be implemented in accordance with an exemplary aspect.
- the computer system 20 can be in the form of multiple computing devices, or in the form of a single computing device, for example, a desktop computer, a notebook computer, a laptop computer, a mobile computing device, a smart phone, a tablet computer, a server, a mainframe, an embedded device, and other forms of computing devices.
- the computer system 20 includes a central processing unit (CPU) 21 , a system memory 22 , and a system bus 23 connecting the various system components, including the memory associated with the central processing unit 21 .
- the system bus 23 may comprise a bus memory or bus memory controller, a peripheral bus, and a local bus that is able to interact with any other bus architecture. Examples of the buses may include PCI, ISA, PCI-Express, HyperTransportTM, InfiniBandTM, Serial ATA, I 2 C, and other suitable interconnects.
- the central processing unit 21 (also referred to as a processor) can include a single or multiple sets of processors having single or multiple cores.
- the processor 21 may execute one or more computer-executable code implementing the techniques of the present disclosure.
- the system memory 22 may be any memory for storing data used herein and/or computer programs that are executable by the processor 21 .
- the system memory 22 may include volatile memory such as a random access memory (RAM) 25 and non-volatile memory such as a read only memory (ROM) 24 , flash memory, etc., or any combination thereof.
- the basic input/output system (BIOS) 26 may store the basic procedures for transfer of information between elements of the computer system 20 , such as those at the time of loading the operating system with the use of the ROM 24 .
- the computer system 20 may include one or more storage devices such as one or more removable storage devices 27 , one or more non-removable storage devices 28 , or a combination thereof.
- the one or more removable storage devices 27 and non-removable storage devices 28 are connected to the system bus 23 via a storage interface 32 .
- the storage devices and the corresponding computer-readable storage media are power-independent modules for the storage of computer instructions, data structures, program modules, and other data of the computer system 20 .
- the system memory 22 , removable storage devices 27 , and non-removable storage devices 28 may use a variety of computer-readable storage media.
- Examples of computer-readable storage media include machine memory such as cache, SRAM, DRAM, zero capacitor RAM, twin transistor RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM; flash memory or other memory technology such as in solid state drives (SSDs) or flash drives; magnetic cassettes, magnetic tape, and magnetic disk storage such as in hard disk drives or floppy disks; optical storage such as in compact disks (CD-ROM) or digital versatile disks (DVDs); and any other medium which may be used to store the desired data and which can be accessed by the computer system 20 .
- machine memory such as cache, SRAM, DRAM, zero capacitor RAM, twin transistor RAM, eDRAM, EDO RAM, DDR RAM, EEPROM, NRAM, RRAM, SONOS, PRAM
- flash memory or other memory technology such as in solid state drives (SSDs) or flash drives
- magnetic cassettes, magnetic tape, and magnetic disk storage such as in hard disk drives or floppy disks
- optical storage
- the system memory 22 , removable storage devices 27 , and non-removable storage devices 28 of the computer system 20 may be used to store an operating system 35 , additional program applications 37 , other program modules 38 , and program data 39 .
- the computer system 20 may include a peripheral interface 46 for communicating data from input devices 40 , such as a keyboard, mouse, stylus, game controller, voice input device, touch input device, or other peripheral devices, such as a printer or scanner via one or more I/O ports, such as a serial port, a parallel port, a universal serial bus (USB), or other peripheral interface.
- a display device 47 such as one or more monitors, projectors, or integrated display, may also be connected to the system bus 23 across an output interface 48 , such as a video adapter.
- the computer system 20 may be equipped with other peripheral output devices (not shown), such as loudspeakers and other audiovisual devices.
- the computer system 20 may operate in a network environment, using a network connection to one or more remote computers 49 .
- the remote computer (or computers) 49 may be local computer workstations or servers comprising most or all of the aforementioned elements in describing the nature of a computer system 20 .
- Other devices may also be present in the computer network, such as, but not limited to, routers, network stations, peer devices or other network nodes.
- the computer system 20 may include one or more network interfaces 51 or network adapters for communicating with the remote computers 49 via one or more networks such as a local-area computer network (LAN) 50 , a wide-area computer network (WAN), an intranet, and the Internet.
- Examples of the network interface 51 may include an Ethernet interface, a Frame Relay interface, SONET interface, and wireless interfaces.
- aspects of the present disclosure may be a system, a method, and/or a computer program product.
- the computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosure.
- the computer readable storage medium can be a tangible device that can retain and store program code in the form of instructions or data structures that can be accessed by a processor of a computing device, such as the computing system 20 .
- the computer readable storage medium may be an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof.
- such computer-readable storage medium can comprise a random access memory (RAM), a read-only memory (ROM), EEPROM, a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), flash memory, a hard disk, a portable computer diskette, a memory stick, a floppy disk, or even a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon.
- a computer readable storage medium is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or transmission media, or electrical signals transmitted through a wire.
- Computer readable program instructions described herein can be downloaded to respective computing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network.
- the network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.
- a network interface in each computing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing device.
- Computer readable program instructions for carrying out operations of the present disclosure may be assembly instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language, and conventional procedural programming languages.
- the computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the user's computer through any type of network, including a LAN or WAN, or the connection may be made to an external computer (for example, through the Internet).
- electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.
- FPGA field-programmable gate arrays
- PLA programmable logic arrays
- module refers to a real-world device, component, or arrangement of components implemented using hardware, such as by an application specific integrated circuit (ASIC) or FPGA, for example, or as a combination of hardware and software, such as by a microprocessor system and a set of instructions to implement the module's functionality, which (while being executed) transform the microprocessor system into a special-purpose device.
- a module may also be implemented as a combination of the two, with certain functions facilitated by hardware alone, and other functions facilitated by a combination of hardware and software.
- each module may be executed on the processor of a computer system. Accordingly, each module may be realized in a variety of suitable configurations, and should not be limited to any particular implementation exemplified herein.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims (21)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/901,343 US11621834B2 (en) | 2020-06-15 | 2020-06-15 | Systems and methods for preserving data integrity when integrating secure multiparty computation and blockchain technology |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/901,343 US11621834B2 (en) | 2020-06-15 | 2020-06-15 | Systems and methods for preserving data integrity when integrating secure multiparty computation and blockchain technology |
Publications (2)
Publication Number | Publication Date |
---|---|
US20210391983A1 US20210391983A1 (en) | 2021-12-16 |
US11621834B2 true US11621834B2 (en) | 2023-04-04 |
Family
ID=78826147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/901,343 Active 2040-09-30 US11621834B2 (en) | 2020-06-15 | 2020-06-15 | Systems and methods for preserving data integrity when integrating secure multiparty computation and blockchain technology |
Country Status (1)
Country | Link |
---|---|
US (1) | US11621834B2 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035863B (en) * | 2020-07-20 | 2024-05-03 | 傲为有限公司 | Electronic contract evidence obtaining method and system based on intelligent contract mode |
US11394698B2 (en) * | 2020-07-29 | 2022-07-19 | Nec Corporation Of America | Multi-party computation (MPC) based authorization |
CN114647662B (en) * | 2022-05-13 | 2022-08-23 | 富算科技(上海)有限公司 | Data retrieval method, data retrieval device, electronic equipment and storage medium |
CN115811399A (en) * | 2022-11-23 | 2023-03-17 | 中国工商银行股份有限公司 | Blacklist obfuscation method, device and judgment system based on secret sharing network |
CN115801253B (en) * | 2023-02-03 | 2023-04-18 | 蓝象智联(杭州)科技有限公司 | Multi-party secret sharing method for secure multi-party calculation and electronic equipment |
US20240405976A1 (en) * | 2023-06-01 | 2024-12-05 | Nasdaq, Inc. | Systems and methods to dynamically provision multi-party computation (mpc) nodes |
CN117422058B (en) * | 2023-12-18 | 2024-03-12 | 佳瑛科技有限公司 | Visual graphic report generation method |
CN117729040B (en) * | 2023-12-22 | 2024-06-21 | 中国人民解放军国防科技大学 | A verifiable skyline security query method and system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160261409A1 (en) * | 2014-05-02 | 2016-09-08 | Barclays Bank Plc | Cryptographic apparatus |
EP3439233A1 (en) * | 2017-07-31 | 2019-02-06 | Koninklijke Philips N.V. | Distributing a computation output |
US20200213099A1 (en) * | 2017-08-15 | 2020-07-02 | nChain Holdings Limited | Computer-implemented method of generating a threshold vault |
US20200366462A1 (en) * | 2019-05-14 | 2020-11-19 | Baffle Inc. | System and method for performing equality and less than operations on encrypted data with quasigroup operations |
-
2020
- 2020-06-15 US US16/901,343 patent/US11621834B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160261409A1 (en) * | 2014-05-02 | 2016-09-08 | Barclays Bank Plc | Cryptographic apparatus |
EP3439233A1 (en) * | 2017-07-31 | 2019-02-06 | Koninklijke Philips N.V. | Distributing a computation output |
US20200213099A1 (en) * | 2017-08-15 | 2020-07-02 | nChain Holdings Limited | Computer-implemented method of generating a threshold vault |
US20200366462A1 (en) * | 2019-05-14 | 2020-11-19 | Baffle Inc. | System and method for performing equality and less than operations on encrypted data with quasigroup operations |
Non-Patent Citations (2)
Title |
---|
Bendlin et al. "Semi-homomorphic Encryption and Multiparty Computation" [online], IACR, May 2011 [retrieved Feb. 23, 2022], Retrieved from the Internet: URL: https://eprint.iacr.org/2010/514.pdf (Year: 2011). * |
Zyskind, Guy "Efficient Secure Computation Enabled by Blockchain Technology" [online], MIT, Jun. 2016 [retrieved Feb. 23, 2022], Retrieved from the Internet: URL: https://dspace.mit.edu/bitstream/handle/1721.1/105933/964695278-MIT.pdf (Year: 2016). * |
Also Published As
Publication number | Publication date |
---|---|
US20210391983A1 (en) | 2021-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11621834B2 (en) | Systems and methods for preserving data integrity when integrating secure multiparty computation and blockchain technology | |
US10839070B1 (en) | Securely executing smart contract operations in a trusted execution environment | |
US10903976B2 (en) | End-to-end secure operations using a query matrix | |
US12309127B2 (en) | End-to-end secure operations using a query vector | |
US9537918B2 (en) | File sharing with client side encryption | |
US10063372B1 (en) | Generating pre-encrypted keys | |
US9219722B2 (en) | Unclonable ID based chip-to-chip communication | |
EP2396922B1 (en) | Trusted cloud computing and services framework | |
US10963593B1 (en) | Secure data storage using multiple factors | |
US9020149B1 (en) | Protected storage for cryptographic materials | |
US9602280B2 (en) | System and method for content encryption in a key/value store | |
US11755499B2 (en) | Locally-stored remote block data integrity | |
JP2013524352A (en) | System and method for securing data in motion | |
US20190266334A1 (en) | System and Method for User Managed Encryption Recovery Using Blockchain for Data at Rest | |
US20190089529A1 (en) | Cryptographic services utilizing commodity hardware | |
CN113886418B (en) | Data processing method, device, electronic equipment and machine-readable storage medium | |
US10462113B1 (en) | Systems and methods for securing push authentications | |
Yoosuf et al. | Lightweight fog‐centric auditing scheme to verify integrity of IoT healthcare data in the cloud environment | |
US20240048361A1 (en) | Key Management for Cryptography-as-a-service and Data Governance Systems | |
US20210143983A1 (en) | Hybrid Content Protection Architecture | |
US11522691B2 (en) | Techniques for virtual cryptographic key ceremonies | |
US10848312B2 (en) | Zero-knowledge architecture between multiple systems | |
US20210194694A1 (en) | Data processing system | |
US12289403B2 (en) | Extensible quantum random number generation | |
CN118839359A (en) | Data storage management method of solid state disk |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
AS | Assignment |
Owner name: MIDCAP FINANCIAL TRUST, MARYLAND Free format text: REAFFIRMATION AGREEMENT;ASSIGNORS:ACRONIS AG;ACRONIS INTERNATIONAL GMBH;ACRONIS SCS, INC.;AND OTHERS;REEL/FRAME:061330/0818 Effective date: 20220427 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
AS | Assignment |
Owner name: ACRONIS INTERNATIONAL GMBH, SWITZERLAND Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WILL, MARK A;SOLANKI, SANJEEV;SIVANESAN, KAILASH;REEL/FRAME:062891/0313 Effective date: 20230306 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |