Secure collaborative processing of private inputs
AssigneeCipherMode Labs, Inc.
InventorsMohammad Sadegh Riazi, Ilya Razenshteyn
Life of this patent
Estimating the term…
Abstract
The described technology is generally directed towards secure collaborative processing of private inputs. A secure execution engine can process encrypted data contributed by multiple parties, without revealing the encrypted data to any of the parties. The encrypted data can be processed according to any program written in a high-level programming language, while the secure execution engine handles cryptographic processing.
Claims18
A first computing device configured to cooperate with other computing devices to provide a secure execution engine that securely processes encrypted data, the first computing device comprising:
- a processor;
- and
- a memory that stores executable instructions that, when executed by the processor, facilitate performance of operations, comprising:
- establishing a secure execution engine in cooperation with a group of computing devices, the group of computing devices comprising the first computing device, at least one second computing device, and at least one third computing device;
- wherein the secure execution engine comprises:
- a circuit configured to execute a secure virtual machine, wherein the secure virtual machine is configured for secure execution of a computer program;
- a secure multi-party computation protocol that distributes processing tasks associated with the secure execution of the computer program, wherein the processing tasks are distributed among two or more devices of the group of computing devices;
- and
- a multi-party oblivious random access memory protocol for memory access of encrypted data for processing according to the processing tasks, wherein the multi-party oblivious random access memory protocol is implemented at two or more devices of the group of computing devices.
A method for secure processing of encrypted data, comprising:
- securely processing, by a first computing device comprising a processor, encrypted data by applying a secure execution engine to execute a program that performs processing tasks using the encrypted data;
- wherein the secure execution engine comprises a circuit configured to execute a secure virtual machine, wherein the secure virtual machine is configured for secure execution of the program, and a secure multi-party computation protocol that distributes the processing tasks among two or more computing devices of a group of computing devices, the group of computing devices comprising the first computing device, at least one second computing device, and at least one third computing device;
- wherein the secure execution engine further comprises a multi-party oblivious random access memory protocol for memory access of the encrypted data for processing according to the processing tasks, wherein the multi-party oblivious random access memory protocol is implemented at two or more devices of the group of computing devices;
- and
- supplying, by the first computing device, a first portion of the encrypted data for processing by the program, wherein a second portion of the encrypted data is supplied by a device other than the first computing device.
A non-transitory machine-readable medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations, comprising:
- compiling a program for execution by a secure execution engine, resulting in a compiled program configured for execution by the secure execution engine in order to conduct processing tasks using encrypted data;
- wherein the secure execution engine comprises a circuit configured to execute a secure virtual machine, wherein the secure virtual machine is configured for secure execution of the compiled program, and a secure multi-party computation protocol that distributes the processing tasks associated with executing the compiled program among two or more computing devices of a group of computing devices, the group of computing devices comprising a first computing device, a second computing device, and a third computing device;
- wherein the secure execution engine further comprises a multi-party oblivious random access memory protocol for memory access of the encrypted data for processing according to the processing tasks, wherein the multi-party oblivious random access memory protocol is implemented at two or more devices of the group of computing devices;
- and
- wherein compiling the program for execution by the secure execution engine comprises:
- generating an intermediate representation of the program;
- mapping the intermediate representation to machine code based on an instruction set used by the secure execution engine;
- and
- mapping the machine code to the secure multi-party computation protocol.
Dependencies are inferred from the claim text.