IP Library Granted Patent US 10,095,776
Granted Patent B2
US 10,095,776 · App. 15/586,483 · Granted Oct 9, 2018

Method and system for searching encrypted data

Inventors: Payman Mohassel (San Jose, CA); Ian Miers (Baltimore, MD)
Assignee: OATH INC.
G06F17/30628G06F12/1408G06F17/30696G06F21/602G06F2212/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,095,776
App. No.
15/586,483
Granted
Oct 9, 2018
Kind
B2
Abstract

The present teaching relates to searching encrypted data. In one example, a search request is received for encrypted documents. An encrypted query is generated based on the search request. The encrypted query is sent to a server that stores a first encrypted index and a second encrypted index. The first encrypted index maps encrypted keywords to full blocks each of which has a same size and is fully filled with encrypted document identities (IDs). The second encrypted index maps encrypted keywords to partial blocks each of which has the same size and is partially filled with encrypted document IDs. Based on the encrypted query, one or more encrypted document IDs are determined by searching against both the first encrypted index and the second encrypted index. A search result is generated based on the one or more encrypted document IDs. The search result is provided in response to the search request.

Claims (84)

1. A method, implemented on a machine having at least one processor, storage, and a communication platform connected to a network for searching encrypted data, the method comprising:

receiving a search request for encrypted documents at a client device;

generating an encrypted query based on the search request;

sending the encrypted query to a server that stores a first encrypted index and a second encrypted index, wherein the first encrypted index maps encrypted keywords to full blocks each of which has a same size and is fully filled with encrypted document identifiers (IDs), and the second encrypted index maps encrypted keywords to partial blocks each of which has the same size and is partially filled with encrypted document IDs;

receiving one or more encrypted document IDs from the server, determined based on the encrypted query being searched against both the first encrypted index and the second encrypted index;

searching against a non-encrypted index based on the search request to determine one or more non-encrypted document IDs, wherein the non-encrypted index is stored locally at the client device;

generating a search result based on the one or more encrypted document IDs and the one or more non-encrypted document IDs; and

providing the search result in response to the search request.

2. The method of claim 1 , further comprising:

receiving a new document;

extracting keywords from the new document;

updating a partial block in the non-encrypted index for each of the keywords;

when a full block is generated in the non-encrypted index for a keyword after the updating, encrypting and providing the full block to be inserted to the first encrypted index at the server; and

generating a new partial block in the non-encrypted index for the keyword.

3. The method of claim 1 , wherein the one or more encrypted document IDs are determined by searching, at the server, against both the first encrypted index and the second encrypted index such that:

an index location inside a path of the second encrypted index is determined;

a partial block is read directly from the index location; and

the path is added to a list of paths that are to be updated with a new mapping.

4. The method of claim 3 , further comprising:

receiving a new document;

determining an encrypted keyword based on the new document;

updating a partial block inside a path of the second encrypted index based on the encrypted keyword;

re-mapping partial blocks in the path and partial blocks in each of the list of paths;

padding each of the re-mapped partial blocks with dummy document IDs; and

encrypting and providing the re-mapped partial blocks to be inserted to the second encrypted index at the server.

5. The method of claim 1 , wherein the first encrypted index is built based on an append-only encrypted hash table and the second encrypted index is built based on an encrypted oblivious Random-Access Memory (RAM).

6. A method, implemented on a machine having at least one processor, storage, and a communication platform connected to a network for searching encrypted data, the method comprising:

receiving an encrypted query for encrypted documents;

determining, based on the encrypted query, one or more index locations in a first encrypted index and a second encrypted index, wherein the first encrypted index maps encrypted keywords to full blocks each of which has a same size and is fully filled with encrypted document IDs, and the second encrypted index maps encrypted keywords to partial blocks each of which has the same size and is partially filled with encrypted document IDs, and wherein the first encrypted index is built based on an append-only encrypted hash table and the second encrypted index is built based on an encrypted oblivious RAM;

identifying one or more encrypted document IDs from the one or more index locations; and

providing the one or more encrypted document IDs as a response to the encrypted query.

7. The method of claim 6 , further comprising:

receiving an encrypted full block associated with a user;

obtaining index location information from a device of the user; and

updating the first encrypted index with the encrypted full block based on the index location information.

8. The method of claim 6 , further comprising:

obtaining a path of the second encrypted index;

providing partial blocks in the path to be updated with a new value;

providing partial blocks in each of a list of paths to be updated with a new mapping; and

receiving encrypted partial blocks that have been re-mapped in their paths and padded with dummy document IDs;

updating the second encrypted index with the encrypted partial blocks.

9. A machine-readable tangible and non-transitory medium having information for searching encrypted data, wherein the information, when read by the machine, causes the machine to perform the following:

receiving a search request for encrypted documents at a client device;

generating an encrypted query based on the search request;

sending the encrypted query to a server that stores a first encrypted index and a second encrypted index, wherein the first encrypted index maps encrypted keywords to full blocks each of which has a same size and is fully filled with encrypted document IDs, and the second encrypted index maps encrypted keywords to partial blocks each of which has the same size and is partially filled with encrypted document IDs;

receiving one or more encrypted document IDs from the server, determined based on the encrypted query being searched against both the first encrypted index and the second encrypted index;

searching against a non-encrypted index based on the search request to determine one or more non-encrypted document IDs, wherein the non-encrypted index is stored locally at the client device;

generating a search result based on the one or more encrypted document IDs and the one or more non-encrypted document IDs; and

providing the search result in response to the search request.

10. The medium of claim 9 , wherein the information, when read by the machine, causes the machine to further perform the following:

receiving a new document;

extracting keywords from the new document;

updating a partial block in the non-encrypted index for each of the keywords;

when a full block is generated in the non-encrypted index for a keyword after the updating, encrypting and providing the full block to be inserted to the first encrypted index at the server; and

generating a new partial block in the non-encrypted index for the keyword.

11. The medium of claim 9 , wherein the one or more encrypted document IDs are determined by searching, at the server, against both the first encrypted index and the second encrypted index such that:

an index location inside a path of the second encrypted index is determined;

a partial block is read directly from the index location; and

the path is added to a list of paths that are to be updated with a new mapping.

12. The medium of claim 11 , wherein the information, when read by the machine, causes the machine to further perform the following:

receiving a new document;

determining an encrypted keyword based on the new document;

updating a partial block inside a path of the second encrypted index based on the encrypted keyword;

re-mapping partial blocks in the path and partial blocks in each of the list of paths;

padding each of the re-mapped partial blocks with dummy document IDs; and

encrypting and providing the re-mapped partial blocks to be inserted to the second encrypted index at the server.

13. The medium of claim 9 , wherein the first encrypted index is built based on an append-only encrypted hash table and the second encrypted index is built based on an encrypted oblivious RAM.

14. A machine-readable tangible and non-transitory medium having information for searching encrypted data, wherein the information, when read by the machine, causes the machine to perform the following:

receiving an encrypted query for encrypted documents;

determining, based on the encrypted query, one or more index locations in a first encrypted index and a second encrypted index, wherein the first encrypted index maps encrypted keywords to full blocks each of which has a same size and is fully filled with encrypted document IDs, and the second encrypted index maps encrypted keywords to partial blocks each of which has the same size and is partially filled with encrypted document IDs, and wherein the first encrypted index is built based on an append-only encrypted hash table and the second encrypted index is built based on an encrypted oblivious RAM;

identifying one or more encrypted document IDs from the one or more index locations; and

providing the one or more encrypted document IDs as a response to the encrypted query.

15. The medium of claim 14 , wherein the information, when read by the machine, causes the machine to further perform the following:

receiving an encrypted full block associated with a user;

obtaining index location information from a device of the user; and

updating the first encrypted index with the encrypted full block based on the index location information.

16. The medium of claim 14 , wherein the information, when read by the machine, causes the machine to further perform the following:

obtaining a path of the second encrypted index;

providing partial blocks in the path to be updated with a new value;

providing partial blocks in each of a list of paths to be updated with a new mapping; and

receiving encrypted partial blocks that have been re-mapped in their paths and padded with dummy document IDs;

updating the second encrypted index with the encrypted partial blocks.

17. The method of claim 1 , wherein the encrypted document IDs correspond to encrypted email IDs.

18. The method of claim 1 , wherein the first encrypted index is an append-only index.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2021
From: VERIZON MEDIA INC.
To: VERIZON PATENT AND LICENSING INC.
Reel/Frame 057453/0431 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2020
From: OATH INC.
To: VERIZON MEDIA INC.
Reel/Frame 054258/0635 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2018
From: YAHOO HOLDINGS, INC.
To: OATH INC.
Reel/Frame 045240/0310 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2017
From: YAHOO! INC.
To: YAHOO HOLDINGS, INC.
Reel/Frame 042963/0211 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 4, 2017
From: MOHASSEL, PAYMAN; MIERS, IAN
To: YAHOO! INC.
Reel/Frame 042237/0896 →
Continuity (2)
Continuation 15047003 · Feb 18, 2016
Related Publication 20170242912A1 · Aug 24, 2017