IP Library › Granted Patent US 10,331,913
Granted Patent B2
US 10,331,913 · App. 16/070,679 · Granted Jun 25, 2019

Searchable symmetric encryption with enhanced locality via balanced allocations

Inventors: Gil Segev (Herzlyia, IL); Ido Shahaf (Jerusalem, IL); Gilad Asharov (Holon, IL); Moni Naor (Tel Aviv, IL)
Assignees: Yissum Research Development Company of the Hebrew University of Jerusalem Ltd.; Yeda Research and Development Co. Ltd.
G06F21/79G06F12/1408G06F16/00G06F16/245G06F21/602G06F21/6227H04L9/0861G06F2212/1052
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,331,913
App. No.
16/070,679
Granted
Jun 25, 2019
Kind
B2
Abstract

A method for searchable symmetric encryption. The method includes: accessing a computerized database that comprises keyword lists, each of the keyword lists comprising memory addresses of electronic documents that all contain a respective keyword; binning the memory addresses by performing balanced allocation of the memory addresses into ordered bins, such that at least some of the ordered bins each contains memory addresses of electronic documents that contain different keywords; encrypting each of the memory addresses with an encryption key that is derived from the keyword of the respective memory address; and storing the ordered bins at consecutive locations in a non-transient computer-readable memory, wherein the consecutive locations preserve the order of the ordered bins.

Claims (65)

1. A method for searchable symmetric encryption, the method comprising using at least one hardware processor for:

accessing a computerized database that comprises keyword lists, each of the keyword lists comprising memory addresses of electronic documents that all contain a respective keyword;

binning the memory addresses by performing balanced allocation of the memory addresses into ordered bins, such that at least some of the ordered bins each contains memory addresses of electronic documents that contain different keywords;

encrypting each of the memory addresses with an encryption key that is derived from the keyword of the respective memory address; and

storing the ordered bins at consecutive locations in a non-transient computer-readable memory, wherein the consecutive locations preserve the order of the ordered bins.

2. The method according to claim 1 , wherein the balanced allocation comprises:

distributing the memory addresses of each keyword list along consecutive ones of the ordered bins.

3. The method according to claim 2 , further comprising, following said binning:

padding at least some of the ordered bins such that all the ordered bins are of a same size.

4. The method according to claim 3 , further comprising, following said padding:

uniformly shuffling each of the padded ordered bins.

5. The method according to claim 1 , further comprising:

recovering a requested one of the keyword lists by:

receiving a query, the query comprising a decryption key that corresponds to the encryption key that was derived from the respective keyword of the requested keyword list,

attempting to decrypt encrypted memory addresses in consecutively-located bins, until reaching one of the bins in which none of the encrypted memory addresses is decryptable; and

utilizing those of the memory addresses that were successfully decrypted to access the electronic documents stored at those memory addresses.

6. A computer program product for searchable symmetric encryption, the computer program product comprising a non-transitory computer-readable storage medium having program code embodied therewith, the program code executable by at least one hardware processor to:

access a computerized database that comprises keyword lists, each of the keyword lists comprising memory addresses of electronic documents that all contain a respective keyword;

bin the memory addresses by performing balanced allocation of the memory addresses into ordered bins, such that at least some of the ordered bins each contains memory addresses of electronic documents that contain different keywords;

encrypt each of the memory addresses with an encryption key that is derived from the keyword of the respective memory address; and

store the ordered bins at consecutive locations in a non-transient computer-readable memory, wherein the consecutive locations preserve the order of the ordered bins.

7. The computer program product according to claim 6 , wherein the balanced allocation comprises:

distributing the memory addresses of each keyword list along consecutive ones of the ordered bins.

8. The computer program product according to claim 7 , wherein the program code is further executable, following said binning, to:

pad at least some of the ordered bins such that all the ordered bins are of a same size.

9. The computer program product according to claim 8 , wherein the program code is further executable, following said padding, to:

uniformly shuffling each of the padded ordered bins.

10. The computer program product according to claim 6 , wherein the program code is further executable to:

recover a requested one of the keyword lists by:

receiving a query, the query comprising a decryption key that corresponds to the encryption key that is derived from the respective keyword of the requested keyword list,

attempting to decrypt encrypted memory addresses in consecutively-located bins, until reaching one of the bins in which none of the encrypted memory addresses is decryptable; and

utilize those of the memory addresses that were successfully decrypted to access the electronic documents stored at those memory addresses.

11. A system comprising:

at least one hardware processor; and

a non-transitory computer-readable storage medium having program code embodied therewith, the program code executable by said at least one hardware processor to:

access a computerized database that comprises keyword lists, each of the keyword lists comprising memory addresses of electronic documents that all contain a respective keyword;

bin the memory addresses by performing balanced allocation of the memory addresses into ordered bins, such that at least some of the ordered bins each contains memory addresses of electronic documents that contain different keywords;

encrypt each of the memory addresses with an encryption key that is derived from the keyword of the respective memory address; and

store the ordered bins at consecutive locations in a non-transient computer-readable memory, wherein the consecutive locations preserve the order of the ordered bins.

12. The system according to claim 11 , wherein the balanced allocation comprises:

distributing the memory addresses of each keyword list along consecutive ones of the ordered bins.

13. The system according to claim 12 , wherein the program code is further executable, following said binning, to:

pad at least some of the ordered bins such that all the ordered bins are of a same size.

14. The system according to claim 13 , wherein the program code is further executable, following said padding, to:

uniformly shuffling each of the padded ordered bins.

15. The system according to claim 11 , wherein the program code is further executable to:

recover a requested one of the keyword lists by:

receiving a query, the query comprising a decryption key that corresponds to the encryption key that is derived from the respective keyword of the requested keyword list,

attempting to decrypt encrypted memory addresses in consecutively-located bins, until reaching one of the bins in which none of the encrypted memory addresses is decryptable; and

utilize those of the memory addresses that were successfully decrypted to access the electronic documents stored at those memory addresses.

16. The method according to claim 4 , further comprising:

recovering a requested one of the keyword lists by:

receiving a query, the query comprising a decryption key that corresponds to the encryption key that was derived from the respective keyword of the requested keyword list,

attempting to decrypt encrypted memory addresses in consecutively-located bins, until reaching one of the bins in which none of the encrypted memory addresses is decryptable; and

utilizing those of the memory addresses that were successfully decrypted to access the electronic documents stored at those memory addresses.

17. The computer program product according to claim 9 , wherein the program code is further executable to:

recover a requested one of the keyword lists by:

receiving a query, the query comprising a decryption key that corresponds to the encryption key that was derived from the respective keyword of the requested keyword list,

attempting to decrypt encrypted memory addresses in consecutively-located bins, until reaching one of the bins in which none of the encrypted memory addresses is decryptable; and

utilize those of the memory addresses that were successfully decrypted to access the electronic documents stored at those memory addresses.

18. The system according to claim 14 , wherein the program code is further executable to:

recover a requested one of the keyword lists by:

receiving a query, the query comprising a decryption key that corresponds to the encryption key that was derived from the respective keyword of the requested keyword list,

attempting to decrypt encrypted memory addresses in consecutively-located bins, until reaching one of the bins in which none of the encrypted memory addresses is decryptable; and

utilize those of the memory addresses that were successfully decrypted to access the electronic documents stored at those memory addresses.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2018
From: SEGEV, GIL; SHAHAF, IDO; ASHAROV, GILAD
To: YISSUM RESEARCH DEVELOPMENT COMPANY OF THE HEBREW UNIVERSITY OF JERUSALEM LTD.
Reel/Frame 046388/0020 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2018
From: NAOR, MONI
To: YEDA RESEARCH AND DEVELOPMENT CO. LTD.
Reel/Frame 046373/0254 →
Continuity (2)
Provisional Application 62280200 · Jan 19, 2016
Related Publication 20190026502A1 · Jan 24, 2019