IP Library › Granted Patent US 9,742,556
Granted Patent B2
US 9,742,556 · App. 14/834,485 · Granted Aug 22, 2017

Comparison and search operations of encrypted data

Inventors: David F. Bacon (Sleepy Hollow, NY); Graham A. Bent (Hursley, GB); Flavio A. Bergamaschi (Southampton, GB)
Assignee: International Business Machines Corporation
H04L9/008
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,742,556
App. No.
14/834,485
Granted
Aug 22, 2017
Kind
B2
Abstract

Searching for desired data within an encrypted set of data (using a fully homomorphic encryption) without decrypting the set of data. A lookup key is compared against a set of encrypted data, employing characteristics of the fully homomorphic encryption, to locate and return desired data correlated to the lookup key.

Claims (62)

1. A computer-implemented method comprising:

receiving a lookup key from a user;

comparing the lookup key to a first subset of a set of encrypted data using a bitwise equality to create a first result;

performing a multiplication operation on the first result, as a first factor, and a second subset of the set of encrypted data, as a second factor, to create a lookup product;

performing an addition operation on the lookup product to create a second result in a consolidated format; and

returning to the second result to the user;

wherein:

the lookup key, the set of encrypted data, the first result, the lookup product, and the second result are encrypted using a fully homomorphic encryption.

2. The computer-implemented method of claim 1 , wherein receiving a lookup key further includes:

receiving an unencrypted lookup key;

receiving a public encryption key; and

encrypting the unencrypted lookup key based, at least in part, on the public encryption key;

wherein:

the public encryption key is related to the fully homomorphic encryption.

3. The computer-implemented method of claim 1 , wherein the multiplication operation is a binary tree structure.

4. The computer-implemented method of claim 1 , wherein the lookup key and the first subset of the set of encrypted data are in a binary format.

5. The computer-implemented method of claim 1 , wherein the set of encrypted data is stored in a batched format.

6. The computer-implemented method of claim 1 , wherein the set of encrypted data is stored on a cloud computing node.

7. The computer-implemented method of claim 1 , wherein a first datum in the first subset of the set of encrypted data correlates to a second datum in the second subset of the set of encrypted data.

8. A computer program product comprising:

a computer readable storage memory having stored thereon:

first instructions executable by a device to cause the device to receive a lookup key from a user;

second instructions executable by a device to cause the device to compare the lookup key to a first subset of a set of encrypted data using a bitwise equality to create a first result;

third instructions executable by a device to cause the device to perform a multiplication operation on the first result, as a first factor, and a second subset of the set of encrypted data, as a second factor, to create a lookup product;

fourth instructions executable by a device to cause the device to perform an addition operation on the lookup product to create a second result in a consolidated format; and

fifth instructions executable by a device to cause the device to return the second result to the user;

wherein:

the lookup key, the set of encrypted data, the first result, the lookup product, and the second result are encrypted using a fully homomorphic encryption.

9. The computer program product of claim 8 , wherein first instructions to receive a lookup key further includes:

sixth instructions executable by a device to cause the device to receive an unencrypted lookup key;

seventh instructions executable by a device to cause the device to receive a public encryption key; and

eighth instructions executable by a device to cause the device to encrypt the unencrypted lookup key based, at least in part, on the public encryption key;

wherein:

the public encryption key is related to the fully homomorphic encryption.

10. The computer program product of claim 8 , wherein the multiplication operation is a binary tree structure.

11. The computer program product of claim 8 , wherein the lookup key and the first subset of the set of encrypted data are in a binary format.

12. The computer program product of claim 8 , wherein the set of encrypted data is stored in a batched format.

13. The computer program product of claim 8 , wherein the set of encrypted data is stored on a cloud computing node.

14. The computer program product of claim 8 , wherein a first datum in the first subset of the set of encrypted data correlates to a second datum in the second subset of the set of encrypted data.

15. A computer system comprising:

a hardware processor set; and

a computer readable storage memory;

wherein:

the processor set is structured, located, connected, and/or programmed to run program instructions stored on the computer readable storage memory; and

the program instructions include:

first instructions executable by a device to cause the device to receive a lookup key from a user;

second instructions executable by a device to cause the device to compare the lookup key to a first subset of a set of encrypted data using a bitwise equality to create a first result;

third instructions executable by a device to cause the device to perform a multiplication operation on the first result, as a first factor, and a second subset of the set of encrypted data, as a second factor, to create a lookup product;

fourth instructions executable by a device to cause the device to perform an addition operation on the lookup product to create a second result in a consolidated format; and

fifth instructions executable by a device to cause the device to return the second result to the user;

wherein:

the lookup key, the set of encrypted data, the first result, the lookup product, and the second result are encrypted using a fully homomorphic encryption.

16. The computer system of claim 15 , wherein first instructions to receive a lookup key further includes:

sixth instructions executable by a device to cause the device to receive an unencrypted lookup key;

seventh instructions executable by a device to cause the device to receive a public encryption key; and

eighth instructions executable by a device to cause the device to encrypt the unencrypted lookup key based, at least in part, on the public encryption key;

wherein:

the public encryption key is related to the fully homomorphic encryption.

17. The computer system of claim 15 , wherein the multiplication operation is a binary tree structure.

18. The computer system of claim 15 , wherein the lookup key and the first subset of the set of encrypted data are in a binary format.

19. The computer system of claim 15 , wherein the set of encrypted data is stored in a batched format.

20. The computer system of claim 15 , wherein the set of encrypted data is stored on a cloud computing node.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2015
From: BACON, DAVID F.; BENT, GRAHAM A.; BERGAMASCHI, FLAVIO A.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 036407/0555 →
Continuity (1)
Related Publication 20170063525A1 · Mar 2, 2017