US 12,244,711 B2
Secure massively parallel computation for dishonest majority
Rex Fernando, Pittsburgh, PA (US); Ilan Komargodski, Tel Aviv (IL); and Runting Shi, Pittsburgh, PA (US)
Assigned to NTT Research, Inc., Sunnyvale, CA (US); and Cornell University, Ithaca, NY (US)
Appl. No. 18/040,033
Filed by NTT Research, Inc., Sunnyvale, CA (US)
PCT Filed Jul. 29, 2021, PCT No. PCT/US2021/043770
§ 371(c)(1), (2) Date Jan. 31, 2023,
PCT Pub. No. WO2022/026755, PCT Pub. Date Feb. 3, 2022.
Claims priority of provisional application 63/059,962, filed on Jul. 31, 2020.
Prior Publication US 2023/0344628 A1, Oct. 26, 2023
Int. Cl. H04L 9/30 (2006.01); H04L 9/00 (2022.01)
CPC H04L 9/30 (2013.01) [H04L 9/008 (2013.01)] 14 Claims
OG exemplary drawing
 
1. A method for executing a secure algorithm for computing on a plurality of machines in a cluster, the method comprising:
establishing a public key infrastructure, the public key infrastructure further comprising a public key and a plurality of secret keys for a homomorphic encryption scheme, each of the secret keys associated with one of the plurality of machines, wherein the machines each comprise at least one computer processor unit and memory storage unit;
transmitting the secret keys to the machines with which they are associated;
receiving a large input message for operation in the plurality of machines and dividing the large input message into a plurality of initial input messages capable of being stored within the memory storage unit of each of the machines;
transmitting the initial input messages to each machine;
computing an encryption of an initial state at each machine and the initial input message using the public key;
evaluating a cluster computing circuit using the homomorphic encryption scheme;
in a decryption phase, at each machine:
receiving the ciphertext output from another one of the machines in the cluster as a ciphertext input;
computing a partial homomorphic decryption of the ciphertext output using the secret key associated with the machine;
at each machine except for a selected first machine, transmitting the partial decryption to the selected first machine in a tree-like fashion to combine the partial decryptions;
at the first machine receiving the combined partial decryption; and
decrypting the combined partial decryptions and storing the combined output on a storage media;
wherein the cluster computing circuit further comprises a protocol for execution on a plurality of machines and the protocol is configured for computing a pre-defined functionality, and
wherein the pre-defined functionality is an output having a size that fits within the memory storage unit of the machine.