IP Library Granted Patent US 9,847,871
Granted Patent B2
US 9,847,871 · App. 15/381,449 · Granted Dec 19, 2017

Systems and methods for a multiple value packing scheme for homomorphic encryption

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,847,871
App. No.
15/381,449
Granted
Dec 19, 2017
Kind
B2
Abstract

Systems and methods for a multiple value packing scheme for homomorphic encryption are described, including at a server, generating a plurality of encrypted payloads, each having a plurality of data values; and at a client, receiving each of the encrypted payloads having the plurality of data values; and multiplying one or more of the data values of one of the encrypted payloads by one or more other data values in one or more of the other encrypted payloads, to generate a product that represents the summation of data values corresponding to the multiplied one or more data values of the encrypted payloads and the one or more of the other data values in the one or more other encrypted payloads.

Claims (20)

1. A computer-implemented method of performing homomorphic encryption to generate a summation, the method comprising:

at a server,

the server generating a plurality of encrypted payloads, each having a plurality of data values,

the server positioning the data values of each of the encrypted payloads at a lower half of each of the encrypted payloads,

the server maintaining an upper half of each of the encrypted payloads as empty, and providing a plurality of first keys associated with a first type of value and each of the encrypted payloads having the plurality of data values, each of the first keys being associated with a corresponding one of the data values within each of the encrypted payloads, and the plurality of first keys being configured to be matched with the first type of value that is associated with a plurality of second keys associated with a second type of value, to define an intersect, and

based on a request, the server decrypting a blinded product that is associated with the intersect between the plurality of first keys and the plurality of second keys, the blinded product comprising a product of one or more data values of one of the encrypted payloads included in the intersect multiplied by one or more other data values in one or more of the other encrypted payloads included in the intersect.

2. The computer-implemented method of claim 1 , wherein the product is generated by multiplying the one or more of the data values of each of the encrypted payloads that is included in the intersect by the one or more other data values in the one or more of the other encrypted payloads that are included in the intersect.

3. The computer-implemented method of claim 1 , the generating comprising, at the server, packing in the data values prior to encryption of each of the encrypted payloads, such that the data values do not cover the most significant bits of each of the encrypted payloads.

4. The computer-implemented method of claim 1 , wherein the data values of each of the encrypted payloads are packed in prior to encryption of each of the encrypted payloads, such that the data values do not cover the most significant bits of each of the encrypted payloads.

5. A non-transitory computer-readable medium having executable instructions for performing homomorphic encryption to generate a summation, the non-transitory computer-readable medium including a processor and a storage, the instructions comprising:

generating a plurality of encrypted payloads, each having a plurality of data values, wherein the data values of each of the encrypted payloads are positioned at a lower half of each of the encrypted payloads, and an upper half of each of the encrypted payloads is empty,

providing a plurality of first keys associated with a first type of value and each of the encrypted payloads having the plurality of data values, each of the first keys being associated with a corresponding one of the data values within each of the encrypted payloads, and the plurality of first keys being configured to be matched with the first type of value that is associated with a plurality of second keys associated with a second type of value, to define an intersect, and

based on a request, decrypting a blinded product that is associated with the intersect between the plurality of first keys and the plurality of second keys, the blinded product comprising a product of one or more data values of one of the encrypted payloads included in the intersect multiplied by one or more other data values in one or more of the other encrypted payloads included in the intersect.

6. The non-transitory computer-readable of claim 5 , wherein the product is generated by multiplying the one or more of the data values of each of the encrypted payloads that is included in the intersect by the one or more other data values in the one or more of the other encrypted payloads that are included in the intersect.

7. The non-transitory computer-readable of claim 5 , wherein, the generating comprising, at the server, packing in the data values prior to encryption of each of the encrypted payloads, such that the data values do not cover the most significant bits of each of the encrypted payloads.

8. The non-transitory computer-readable of claim 5 , wherein the data values of each of the encrypted payloads are packed in prior to encryption of each of the encrypted payloads, such that the data values do not cover the most significant bits of each of the encrypted payloads.

9. A computer-implemented method of performing homomorphic encryption to generate a summation, the method comprising:

at a server,

the server generating a plurality of encrypted payloads, each having a plurality of data values, wherein the data values of each of the encrypted payloads are packed in prior to encryption of each of the encrypted payloads, such that the data values do not cover the most significant bits of each of the encrypted payloads, and are positioned at a lower half of each of the encrypted payloads, and an upper half of each of the encrypted payloads is empty, wherein the server provides a plurality of first keys associated with a first type of value and each of the encrypted payloads having the plurality of data values, each of the first keys being associated with a corresponding one of the data values within each of the encrypted payloads, and the plurality of first keys is configured to be matched with the first type of value that is associated with a plurality of second keys associated with a second type of value, to define an intersect, and

based on a request, the serer decrypting a blinded product that is associated with the intersect, the blinded product comprising a product of one or more data values of one of the encrypted payloads included in the intersect multiplied by one or more other data values in one or more of the other encrypted payloads included in the intersect, wherein the product is generated by multiplying comprises multiplying the one or more of the data values of each of the encrypted payload that is included in the intersect by the one or more other data values in the one or more of the other encrypted payloads that are included in the intersect.

Assignments (2)
CHANGE OF NAME Recorded Dec 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044695/0115 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2016
From: PATEL, SARVAR; YUNG, MARCEL M.M.
To: GOOGLE INC.
Reel/Frame 040642/0507 →