IP Library Granted Patent US 9,876,636
Granted Patent B2
US 9,876,636 · App. 14/990,028 · Granted Jan 23, 2018

Homomorphic public-key encryption scheme

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,876,636
App. No.
14/990,028
Granted
Jan 23, 2018
Kind
B2
Abstract

Technologies are generally described for providing a fully homomorphic public key encryption scheme. In some examples, a method performed under control of a transmitter may include receiving, from a server, a system parameter; selecting a secret decryption key corresponding to the transmitter; generating a first public encryption key for the transmitter, based at least in part on the secret decryption key corresponding to the transmitter and the system parameter; receiving, from the server, a public encryption key corresponding to a receiver; enciphering a message into a first ciphertext, based at least in part on the public encryption key corresponding to the receiver and the secret decryption key corresponding to the transmitter; and transmitting, to a data processing device, a request to process the message by processing the first ciphertext that corresponds to the message into a second ciphertext without deciphering the first ciphertext.

Claims (68)

1. A method performed under control of a transmitter of a computing device, the method comprising:

receiving, from a server, a system parameter at the computing device;

selecting, by the computing device, a secret decryption key corresponding to the transmitter;

generating a first public encryption key for the transmitter, based at least in part on the secret decryption key corresponding to the transmitter and the system parameter received from the server;

receiving, from the server, a public encryption key corresponding to a receiver of a data processing device, wherein the data processing device is different from the computing device;

enciphering, by the computing device, a message into a first ciphertext, based at least in part on the public encryption key corresponding to the receiver of the data processing device and the secret decryption key corresponding to the transmitter;

transmitting, from the computing device to the data processing device, a request to process the message by processing, at the data processing device, the first ciphertext that corresponds to the message into a second ciphertext without deciphering the first ciphertext; and

deciphering, by the computing device, the second ciphertext received from the data processing device upon completion of the message process request, based on at least the system parameter, the first public encryption key, and the secret decryption key corresponding to the transmitter of the computing device.

2. The method of claim 1 , wherein at least one of: the system parameter, the secret decryption key corresponding to the transmitter, the public encryption key corresponding to the receiver, the message, and the first ciphertext are represented at least in part in a non-associative octonion ring.

3. The method of claim 1 , wherein the system parameter includes at least one of a prime number q greater than 2, or an element B=(b 0 , . . . , b 7 ) in an octonion ring over a finite field such that |B| 2 =0 mod q, B≠0 mod q, and b 0 ≠0 mod q.

4. The method of claim 1 , further comprising:

transmitting, from the computing device to the server, the first public encryption key for the transmitter such that the server publishes the first public encryption key for the transmitter.

5. The method of claim 1 , further comprising:

selecting, by the computing device, a temporary secret decryption key corresponding to the transmitter;

generating, by the computing device, a temporary public encryption key of the transmitter, based at least in part on the temporary secret decryption key corresponding to the transmitter and the system parameter; and

generating, by the computing device, a second public encryption key for the transmitter, based at least in part on the first public encryption key, the temporary secret decryption key corresponding to the transmitter, and the system parameter,

wherein the enciphering is further based on the temporary secret decryption key corresponding to the transmitter.

6. The method of claim 5 , further comprising:

receiving, from the data processing device, the second ciphertext at the computing device; and

deciphering, by the computing device, the second ciphertext, based at least in part on the system parameter, the first public encryption key, and the temporary secret decryption key corresponding to the transmitter,

wherein the deciphering the second ciphertext includes obtaining the processed message.

7. The method of claim 1 , further comprising:

generating, by the computing device, a public encryption key for the transmitter and for the receiver, based at least in part on the public encryption key corresponding to the receiver, the secret decryption key corresponding to the transmitter, and the system parameter; and

transmitting, to the server, the first ciphertext,

wherein the enciphering is further based on the secret decryption key corresponding to the transmitter.

8. A transmitter of a computing device, the transmitter comprising:

a receiving unit of the computing device configured to receive, from a server, a system parameter and a public encryption key corresponding to a receiver of a data processing device, wherein the data processing device is different from the computing device;

a key manager of the computing device configured to select a secret decryption key of the transmitter and to generate a first public encryption key for the transmitter, based at least in part on the secret decryption key corresponding to the transmitter and the system parameter received from the server;

an encipherer of the computing device configured to encipher a message into a first ciphertext, based at least in part on the public encryption key corresponding to the receiver of the data processing device and the secret decryption key corresponding to the transmitter;

a transmitting unit of the computing device configured to transmit, to the data processing device, a request to process the message by processing, at the data processing device, the first ciphertext that corresponds to the message into a second ciphertext without deciphering the first ciphertext; and

a deciphering unit, of the computing device, configured to decipher the second ciphertext received from the data processing device upon completion of the message process request, based on at least the system parameter, the first public encryption key, and the secret decryption key corresponding to the transmitter of the computing device.

9. The transmitter of claim 8 , wherein the transmitting unit is further configured to transmit, to the server, the first public encryption key for the transmitter such that the server publishes the first public encryption key for the transmitter.

10. The transmitter of claim 8 , wherein the system parameter includes at least one of a prime number q greater than 2, or an element B=(b 0 , . . . , b 7 ) in an octonion ring over a finite field such that |B| 2 =0 mod q, B≠0 mod q, and b 0 ≠0 mod q.

11. The transmitter of claim 8 , wherein the key manager is further configured to:

select a temporary secret decryption key for the transmitter;

generate a temporary public encryption key for the transmitter, based at least in part on the temporary secret decryption key corresponding to the transmitter and the system parameter; and

generate a second public encryption key for the transmitter, based at least in part on the first public encryption key, the temporary secret decryption key corresponding to the transmitter, and the system parameter,

wherein the encipherer is configured to encipher the message into the first ciphertext further based on the temporary secret decryption key corresponding to the transmitter.

12. The transmitter of claim 11 , wherein the receiving unit is further configured to receive, from the data processing device, the second ciphertext,

wherein the transmitter further comprises a decipherer configured to decipher the second ciphertext, based at least in part on the system parameter, the first public encryption key, and the temporary secret decryption key corresponding to the transmitter, and

wherein the deciphering of the second ciphertext includes obtaining the processed message.

13. The transmitter of claim 8 , wherein the key manager is further configured to generate a public encryption key for the transmitter and a receiver, based at least in part on the public encryption key corresponding to the receiver, the secret decryption key corresponding to the transmitter, and the system parameter,

wherein the encipherer is configured to encipher the message into the first ciphertext, based at least in part on the public encryption key corresponding to the receiver and the secret decryption key corresponding to the transmitter, and

wherein the transmitting unit is configured to transmit, to the server, the first ciphertext.

14. A non-transitory computer-readable medium having computer-executable instructions stored thereon that, when executed, cause one or more hardware processors to:

receive, from a server, a system parameter at a computing device;

select a secret decryption key corresponding to a transmitter of the computing device;

generate a first public encryption key for the transmitter, based at least in part on the secret decryption key corresponding to the transmitter and the system parameter received from the server;

receive, from the server, a public encryption key corresponding to a receiver of a data processing device, wherein the data processing device is different from the computing device;

encipher a message into a first ciphertext, based at least in part on the public encryption key corresponding to the receiver of the data processing device and the secret decryption key corresponding to the transmitter;

transmit, from the computing device to the data processing device, a request to process the message by processing, at the data processing device, the first ciphertext that corresponds to the message into a second ciphertext without deciphering the first ciphertext; and

decipher, by the computing device, the second ciphertext received from the data processing device upon completion of the message process request, based on at least the system parameter, the first public encryption key, and the secret decryption key corresponding to the transmitter of the computing device.

15. The computer-readable medium of claim 14 , wherein at least one of the system parameter, the secret decryption key corresponding to the transmitter, the public encryption key corresponding to the receiver, the message, and the first ciphertext are represented at least in part in a non-associative octonion ring.

16. The computer-readable medium of claim 14 , wherein the system parameter includes at least one of a prime number q greater than 2, or an element B=(b 0 , . . . , b 7 ) in an octonion ring over a finite field such that |B| 2 =0 mod q, B≠0 mod q, and b 0 ≠0 mod q.

17. The computer-readable medium of claim 14 , further comprising instructions that cause the one or more hardware processors to further:

transmit, from the computing device to the server, the first public encryption key for the transmitter such that the server publishes the first public encryption key for the transmitter.

18. The computer-readable medium of claim 14 , further comprising instructions that cause the one or more hardware processors to further:

select a temporary secret decryption key corresponding to the transmitter;

generate a temporary public encryption key of the transmitter, based at least in part on the temporary secret decryption key corresponding to the transmitter and the system parameter; and

generate a second public encryption key for the transmitter, based at least in part on the first public encryption key, the temporary secret decryption key corresponding to the transmitter, and the system parameter,

wherein the message is enciphered into the first ciphertext based, further, on the temporary secret decryption key corresponding to the transmitter.

19. The computer-readable medium of claim 18 , further comprising instructions that cause the one or more hardware processors to further:

receive, from the data processing device, the second ciphertext; and

decipher the second ciphertext, based at least in part on the system parameter, the first public encryption key, and the temporary secret decryption key corresponding to the transmitter, wherein the second ciphertext is deciphered by obtaining the processed message.

20. The computer-readable medium of claim 14 , further comprising instructions that cause the one or more hardware processors to further:

generate a public encryption key for the transmitter and for the receiver, based at least in part on the public encryption key corresponding to the receiver, the secret decryption key corresponding to the transmitter, and the system parameter; and

transmit, to the server, the first ciphertext,

wherein the message is enciphered into the first ciphertext based, further, on the secret decryption key corresponding to the transmitter.

Assignments (2)
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2016
From: YAGISAWA, MASAHIRO
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 037430/0004 →