IP Library › Granted Patent US 10,541,805
Granted Patent B2
US 10,541,805 · App. 15/633,284 · Granted Jan 21, 2020

Variable relinearization in homomorphic encryption

Inventors: Kim Henry Martin Laine (Seattle, WA); Hao Chen (Seattle, WA); Yuhou Xia (Princeton, NJ)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
H04L9/008H04L9/30H04L9/3006H04L63/0442
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 10,541,805
App. No.
15/633,284
Granted
Jan 21, 2020
Kind
B2
Abstract

In aspects of variable relinearization in homomorphic encryption, a computing device stores homomorphic encrypted data as a dataset, and implements an encryption application that can perform a multiplication operation on a ciphertext in the homomorphic encrypted data, where the multiplication operation contributes to increase a noise component in the ciphertext. The encryption application can determine a relinearization amount by which to relinearize the ciphertext after the multiplication operation, where the determination is effective to optimize a noise increase in the ciphertext based at least in part on projected subsequent multiplication operations on the ciphertext. The encryption application can then relinearize the ciphertext utilizing the determined relinearization amount that optimizes the noise increase in the ciphertext for optimal relinearization performance.

Claims (54)

1. A computing device implemented for variable relinearization in homomorphic encryption, the computing device comprising:

a memory configured to store homomorphic encrypted data as a dataset;

a processor system configured to execute an encryption application that is implemented to:

receive a request containing a query of the homomorphic encrypted data of the dataset from another computing device via a communications network; and

evaluate the homomorphic encrypted data of the dataset based on the query to determine requested data by which the processor system:

performs a multiplication operation on a ciphertext in the homomorphic encrypted data of the dataset responsive to the query, the multiplication operation contributing to increase a noise component in the ciphertext;

determines one or more projected subsequent multiplication operations on the ciphertext;

determines a relinearization amount that sets a noise increase in the ciphertext to a size that satisfies a noise increase performance target based at least in part on the one or more projected subsequent multiplication operations on the ciphertext, wherein the relinearization amount is determined based at least in part on a number of the one or more projected subsequent multiplication operations;

relinearizes the ciphertext utilizing the determined relinearization amount; and

returns the requested data to the other computing device via the communications network.

2. The computing device as recited in claim 1 , wherein the encryption application is implemented to set the noise increase attributable to relinearizing the ciphertext to the size that satisfies the noise increase performance target.

3. The computing device as recited in claim 1 , wherein the encryption application is implemented to:

estimate a noise level in the ciphertext, the noise level estimated based on an initial noise component in the ciphertext and the noise increase to the noise component; and

determine the relinearization amount based on the estimated noise level in the ciphertext.

4. The computing device as recited in claim 2 , wherein the encryption application is implemented to estimate the noise increase of the noise component based on a type of the ciphertext multiplication operation and input parameters of the multiplication operation.

5. The computing device as recited in claim 1 , wherein the encryption application is implemented to determine the relinearization amount not greater than a current noise level in the ciphertext.

6. The computing device as recited in claim 4 , wherein the current noise level in the ciphertext is based on an initial noise component in the ciphertext and the noise increase to the noise component from the multiplication operation.

7. The computing device as recited in claim 1 , wherein the encryption application is implemented to determine the relinearization amount as a size of evaluation keys of an encryption scheme used to generate the homomorphic encrypted data, the size of the evaluation keys determined effective to optimize the noise increase in the ciphertext resulting from the relinearization.

8. A method for variable relinearization in homomorphic encryption, the method comprising:

storing homomorphic encrypted data as a dataset in a memory device; and

at a processor system:

receiving a request containing a query of the homomorphic encrypted data of the dataset from another computing device via a communications network; and

evaluating the homomorphic encrypted data of the dataset based on the query to determine requested data at least in part by:

performing a multiplication operation on a ciphertext in the homomorphic encrypted data of the dataset responsive to the query, the multiplication operation contributing to increase a noise component in the ciphertext;

determining one or more projected subsequent multiplication operations on the ciphertext;

determining a relinearization amount that sets a noise increase in the ciphertext to a size that satisfies a noise increase performance target based at least in part on the one or more projected subsequent multiplication operations on the ciphertext, wherein the relinearization amount is determined based at least in part on a number of the one or more projected subsequent multiplication operations;

relinearizing the ciphertext utilizing the determined relinearization amount; and

returning the requested data to the other computing device via the communications network.

9. The method as recited in claim 8 , further comprising:

setting the noise increase attributable to the relinearizing the ciphertext to the size that satisfies the noise increase performance target.

10. The method as recited in claim 8 , further comprising:

estimating a noise level in the ciphertext, the noise level estimated based on an initial noise component in the ciphertext and the noise increase to the noise component; and

said determining the relinearization amount based on the estimated noise level in the ciphertext.

11. The method as recited in claim 10 , further comprising:

estimating the noise increase of the noise component based on a type of the ciphertext multiplication operation and input parameters of the multiplication operation.

12. The method as recited in claim 8 , wherein the relinearization amount is not greater than a current noise level in the ciphertext.

13. The method as recited in claim 12 , wherein the current noise level in the ciphertext is based on an initial noise component in the ciphertext and the noise increase to the noise component from the multiplication operation.

14. The method as recited in claim 8 , wherein the relinearization amount is determined to be a size of evaluation keys of an encryption scheme used to generate the homomorphic encrypted data.

15. The method as recited in claim 14 , further comprising:

determining the size of the evaluation keys effective to set the noise increase in the ciphertext resulting from the relinearization to the size that satisfies the noise increase performance target.

16. A method for variable relinearization in homomorphic encryption, the method comprising:

storing homomorphic encrypted data as a dataset in a memory device; and

at a processor system:

receiving a request containing a query of the homomorphic encrypted data of the dataset from another computing device via a communications network; and

evaluating the homomorphic encrypted data of the dataset based on the query to determine requested data at least in part by:

performing multiplication operations on a ciphertext in the homomorphic encrypted data of the dataset responsive to the query, the multiplication operations each contributing to increase a noise component in the ciphertext;

estimating a noise level in the ciphertext after each of the multiplication operations, the noise level being estimated based on an initial noise component in the ciphertext and the noise increase to the noise component;

determining a variable relinearization amount that sets a noise increase in the ciphertext to a size that satisfies a noise increase performance target based at least in part on one or more subsequent multiplication operations performed on the ciphertext, wherein the relinearization amount is determined based at least in part on a number of the one or more projected subsequent multiplication operations;

relinearizing the ciphertext utilizing the determined variable relinearization amount; and

returning the requested data to the other computing device via the communications network.

17. The method as recited in claim 16 , further comprising:

setting the noise increase attributable to the relinearizing the ciphertext after one or more of the multiplication operations to the size that satisfies the noise increase performance target.

18. The method as recited in claim 16 , wherein the variable relinearization amount is not greater than a current noise level in the ciphertext.

19. The method as recited in claim 16 , wherein the variable relinearization amount is determined to be a size of evaluation keys of an encryption scheme used to generate the homomorphic encrypted data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2017
From: LAINE, KIM HENRY MARTIN; CHEN, HAO; XIA, YUHOU
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 043035/0568 →
Continuity (1)
Related Publication 20180375640A1 · Dec 27, 2018
Cited By (7)
US 12,362,905 US 12,380,227 US 12,585,444 US 12,587,360 US 12,603,754 US 12,647,246 US 12,652,156