Methods, systems, and computer program products for performing homomorphic encryption and decryption on individual operations
First Claim
1. A method of processing data, comprising:
- receiving a request for an operand from a second processor at a first processor;
randomly generating a non-zero integer;
determining prime factors of the operand;
randomly selecting a divisor of the prime factors of the operand;
encrypting the operand that has been requested using the first processor responsive to receiving the request for the operand;
sending the operand that has been encrypted from the first processor to the second processor;
receiving a result from the second processor at the first processor, the result generated from a single homomorphic operation being performed using the operand sent to the second processor;
decrypting the result received from the second processor at the first processor;
storing the result that has been decrypted in a data store; and
receiving a request for the result that has been decrypted from the second processor at the first processor;
wherein encrypting the operand comprises encrypting the operand using a pad that comprises a fraction whose numerator is the non-zero integer and whose denominator is the divisor of the prime factors of the operand.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of processing data includes receiving a request for an operand from a second processor at a first processor, encrypting the operand that has been requested using the first processor responsive to receiving the request for the operand, sending the operand that has been encrypted from the first processor to the second processor, receiving a result from the second processor at the first processor, the result generated from a single homomorphic operation being performed using the operand sent to the second processor, decrypting the result received from the second processor at the first processor, and receiving a request for the result that has been decrypted from the second processor at the first processor.
70 Citations
20 Claims
-
1. A method of processing data, comprising:
-
receiving a request for an operand from a second processor at a first processor; randomly generating a non-zero integer; determining prime factors of the operand; randomly selecting a divisor of the prime factors of the operand; encrypting the operand that has been requested using the first processor responsive to receiving the request for the operand; sending the operand that has been encrypted from the first processor to the second processor; receiving a result from the second processor at the first processor, the result generated from a single homomorphic operation being performed using the operand sent to the second processor; decrypting the result received from the second processor at the first processor; storing the result that has been decrypted in a data store; and receiving a request for the result that has been decrypted from the second processor at the first processor; wherein encrypting the operand comprises encrypting the operand using a pad that comprises a fraction whose numerator is the non-zero integer and whose denominator is the divisor of the prime factors of the operand. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A data processing system, comprising:
-
a memory comprising computer readable program code; and a first processor that is coupled to the memory and is to execute the computer readable program code so as to cause the data processing system to perform operations comprising; receiving a request for an operand from a second processor at the first processor; randomly generating a non-zero integer; determining prime factors of the operand; randomly selecting a divisor of the prime factors of the operand; encrypting the operand that has been requested using the first processor responsive to receiving the request for the operand; sending the operand that has been encrypted from the first processor to the second processor; receiving a result from the second processor at the first processor, the result generated from a single homomorphic operation being performed using the operand sent to the second processor; decrypting the result received from the second processor at the first processor; storing the result that has been decrypted in a data store; and receiving a request for the result that has been decrypted from the second processor at the first processor; wherein encrypting the operand comprises encrypting the operand using a pad that comprises a fraction whose numerator is the non-zero integer and whose denominator is the divisor of the prime factors of the operand. - View Dependent Claims (14, 15, 16)
-
-
17. An article of manufacture, comprising:
-
a non-transitory computer readable storage medium having computer readable program code embodied therein, the computer readable program code when executed by a first processor causing the first processor to perform operations comprising; receiving a request for an operand from a second processor at a first processor; randomly generating a non-zero integer; determining prime factors of the operand; randomly selecting a divisor of the prime factors of the operand; encrypting the operand that has been requested using the first processor responsive to receiving the request for the operand; sending the operand that has been encrypted from the first processor to the second processor; receiving a result from the second processor at the first processor, the result generated from a single homomorphic operation being performed using the operand sent to the second processor; decrypting the result received from the second processor at the first processor; storing the result that has been decrypted in a data store; and receiving a request for the result that has been decrypted from the second processor at the first processor; wherein encrypting the operand comprises encrypting the operand using a pad that comprises a fraction whose numerator is the non-zero integer and whose denominator is the divisor of the prime factors of the operand. - View Dependent Claims (18, 19, 20)
-
Specification