IP Library › Granted Patent US 10,153,894
Granted Patent B2
US 10,153,894 · App. 14/934,048 · Granted Dec 11, 2018

Homomorphic encryption with optimized encoding

Inventors: Kim Laine (San Mateo, CA); Nathan Dowlin (Chelsea, VT); Ran Gilad-Bachrach (Bellevue, WA); Michael Naehrig (Sammamish, WA); John Wernsing (Redmond, WA); Kristin E. Lauter (La Jolla, CA)
Assignee: Microsoft Technology Licensing, LLC
H04L9/008G06F7/483G09C1/00H04L2209/125
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,153,894
App. No.
14/934,048
Granted
Dec 11, 2018
Kind
B2
Abstract

The techniques and/or systems described herein are directed to improvements in homomorphic encryption to improve processing speed and storage requirements. For example, the techniques and/or systems can be used on a client device to encode data to be sent to a remote server, to be operated on while maintaining confidentiality of data. For example, data including a real number can be encoded as a polynomial, with the fractional part of the real number encoded as high-order coefficients in the polynomial. Further, real numbers can be approximated and encoded in a polynomial using a fractional base, and/or the encoding can include slot encoding. Thus, the optimized encodings disclosed herein provide an optimized homomorphic encryption scheme.

Claims (36)

1. A computing device comprising:

one or more hardware processors; and

memory storing modules that, when executed by the one or more hardware processors, cause the computing device to perform operations comprising:

receiving a data set including a real number, the real number including an integer portion and a fractional portion; and

encoding the integer portion and the fractional portion in a polynomial, the encoding comprising:

encoding the fractional portion of the real number by setting, for each coefficient of a term of the polynomial with a negative exponent, e, a coefficient of a term of the polynomial with an exponent equal to n+e to the coefficient of the term of the polynomial with the negative exponent, removing all terms with a negative exponent, and keeping the remaining coefficients of all other terms of the polynomial the same, where n is the size of the polynomial; and

encrypting the polynomial as ciphertext; and

transmitting the ciphertext via a network to a server.

2. A computer-implemented method for performing encoding for homomorphic encryption by at least one hardware processor, the method comprising:

receiving, by the hardware processor, a data set including a real number, the real number including an integer portion and a fractional portion; and

encoding, by the hardware processor, the integer portion and the fractional portion in a polynomial, the encoding comprising:

encoding, by the hardware processor, the fractional portion of the real number by setting, for each coefficient of a term of the polynomial with a negative exponent, e, a coefficient of a term of the polynomial with an exponent equal to n+e to the coefficient of the term of the polynomial with the negative exponent, removing all terms with a negative exponent, and keeping the remaining coefficients of all other terms of the polynomial the same, where n is the size of the polynomial; and

encrypting the polynomial as ciphertext; and

transmitting the ciphertext via a network to a server.

3. The method of claim 2 , further comprising:

receiving, from the server, a result of a performance of the at least one homomorphic operation on the ciphertext.

4. The method of claim 2 , wherein the at least one homomorphic operation includes at least one of addition, subtraction, multiplication, or division.

5. The method of claim 2 , further comprising:

determining that the real number can be approximated as an approximate real number; and

determining a fractional base to encode the polynomial, the fractional base based at least partly on the approximate real number.

6. The method of claim 2 , further comprising applying a slot encoding to the polynomial to generate a slot-encoded polynomial to increase a number of homomorphic operations that can be performed on the slot-encoded polynomial.

7. The method of claim 2 , further comprising receiving at least one encoding parameter via a network from a server, wherein the encoding the integer portion and the fractional portion is based at least in part on the at least one encoding parameter.

8. A system comprising:

one or more hardware processors; and

memory storing modules that, when executed by the one or more hardware processors, cause the system to perform operations comprising:

receiving a data set including a real number, the real umber including an integer portion and a fractional portion;

encoding the integer portion and the fractional portion in a polynomial, the encoding comprising:

encoding the fractional portion of the real number by setting, for each coefficient of a term of the polynomial with a negative exponent, e, a coefficient of a term of the polynomial with an exponent equal to n+e to the coefficient of the term of the polynomial with the negative exponent, removing all terms with a negative exponent and keeping the remaining coefficients of all other terms of the polynomial the same, where n is the size of the polynomial; and

encrypting the polynomial as a ciphertext;

transmitting the ciphertext via a network to a server; and

receiving, from the server, a result of a performance of the at least one homomorphic operation on the ciphertext.

9. The system of claim 8 , wherein the real number is encoded in the polynomial as a single polynomial without converting the real number to an integer.

10. The system of claim 8 , wherein the at least one homomorphic operation includes at least one of addition, subtraction, multiplication, or division.

11. The system of claim 8 , further comprising:

determining that the real number can be approximated as an approximate real number; and

determining a fractional base to encode the polynomial, the fractional base based at least partly on the approximate real number.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2015
From: LAINE, KIM; DOWLIN, NATHAN; GILAD-BACHRACH, RAN; NAEHRIG, MICHAEL; WERNSING, JOHN; LAUTER, KRISTIN E.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 037147/0570 →
Continuity (1)
Related Publication 20170134157A1 · May 11, 2017
Cited By (1)
US 12,206,757