Back to results
US 10,652,216 B2Granted
Systems and processes for executing private programs on untrusted computers
AssigneeBaffle, Inc.
InventorsAshmeet Sidana, Priyadarshan Kolte, Calvin Lin
Life of this patent
Estimating the term…
Abstract
The present invention provides methods for executing a private computer program on untrusted computers. The present invention also provides for products produced by the methods of the present invention and for apparatuses used to perform the methods of the present invention.
Claims50
A method for executing an executable computer program, the computer program residing on a trusted computer, the trusted computer being connected to at least one other computer, the method comprising:
- dividing an executable computer program into a series of operations, the operations comprising circuit gate operations or computer arithmetic operations, and the operations each comprising an operator, a first operand, and a second operand;
- obfuscating each operation of the series of operations by obfuscating the first operand with a first random value and obfuscating the second operand with a second random value;
- sending, for remote execution of the executable computer program, the obfuscated operations with accompanying instructions to the at least one other computer, the accompanying instructions operative to:
- compute a respective result of each of the obfuscated operations;
- and
- forward an obfuscated computed outcome of the executable computer program to the trusted computer;
- the method further comprising:
- receiving, at the trusted computer, the obfuscated computed outcome of the executable computer program;
- and
- unobfuscating the received obfuscated computed outcome of the executable computer program.
7 more elements
A system comprising:
- at least one trusted computer communicatively connected to at least one other computer, a first trusted computer of the at least one trusted computer having stored thereon computer instructions that during execution cause the system to perform operations comprising:
- dividing an executable computer program into a series of operations, the operations comprising circuit gate operations or computer arithmetic operations, the operations each comprising an operator, a first operand, and a second operand, and the executable computer program being on the first trusted computer;
- obfuscating each operation of the series of operations by obfuscating the first operand with a first random value and obfuscating the second operand with a second random value;
- sending, for remote execution of the executable computer program, the obfuscated operations with accompanying instructions to the at least one other computer, the accompanying instructions operative to:
- compute a respective result of each of the obfuscated operations;
- and
- forward an obfuscated computed outcome of the executable computer program to the first trusted computer;
- receiving, at the first trusted computer, the obfuscated computed outcome of the executable computer program;
- and
- unobfuscating the received obfuscated computed outcome of the executable computer program.
7 more elements
Dependencies are inferred from the claim text.