IP Library › Granted Patent US 10,089,487
Granted Patent B2
US 10,089,487 · App. 15/476,058 · Granted Oct 2, 2018

Masking query data access pattern in encrypted data

Inventors: Charles D. Cash (Highland Park, NJ); Stanislaw Jarecki (Irvine, CA); Charanjit S. Jutla (Elmsford, NY); Hugo M. Krawczyk (Tarrytown, NY); Marcel C. Rosu (Ossining, NY); Michael Steiner (New York, NY)
Assignee: International Business Machines Corporation
G06F21/6218G06F21/602G06F17/30864
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,089,487
App. No.
15/476,058
Granted
Oct 2, 2018
Kind
B2
Abstract

A method for searching in an encrypted database includes the following steps. A search is formulated as a conjunct of two or more atomic search queries. One of the conjuncts is selected as a primary atomic search query. Search capabilities are generated for a secondary atomic search query using the primary atomic search query and the secondary atomic search query.

Claims (75)

1. A method for searching in an encrypted database, comprising:

formulating a search as a conjunct of two or more atomic search queries;

selecting one of the conjuncts as a primary atomic search query; and

generating search capabilities for a secondary atomic search query using the primary atomic search query and the secondary atomic search query;

wherein the encrypted database comprises a first data structure associated with the primary atomic search query and a second data structure associated with the secondary atomic search query;

wherein the first data structure and the second data structure are generated from a raw database comprising a plurality of records, and wherein each record of the plurality of records comprises a corresponding record index value and a plurality of attribute values;

wherein the first data structure is generated from the raw database by:

computing a first entry for each attribute value of the plurality of attribute values;

wherein the first entry comprises an encrypted tuple list and a search tag, the search tag being obtained by applying a pseudorandom function to the attribute value of the first entry;

wherein the encrypted tuple list comprises a plurality of tuple list values obtained based on a randomized index value the randomized index value being obtained by applying a random permutation to the record index value; and

wherein the plurality of tuple list values comprises a first tuple value obtained by encrypted the randomized index value with a key;

wherein the plurality of tuple list values further comprises a second tuple value obtained by:

applying a first pseudorandom function to the randomized index value to create a first intermediate tuple value, wherein the first pseudorandom function takes a first key;

applying a second pseudorandom function to the attribute value and a current count associated with the attribute value to create a second intermediate tuple value, wherein the second pseudorandom function takes a second key; and

dividing the first intermediate tuple value by the second intermediate tuple value; and

wherein the formulating, selecting and generating steps are performed in accordance with one or more processing devices.

2. The method of claim 1 , wherein generating the search capabilities for the secondary atomic search query comprises performing a multiplication in algebraic groups.

3. The method of claim 1 , wherein generating the search capabilities for the secondary atomic search query comprises performing an exponentiation in algebraic groups.

4. The method of claim 1 , wherein generating the search capabilities for the secondary atomic search query comprises using a cryptographic hash function.

5. The method of claim 1 wherein the second data structure is generated from the raw database by computing a second entry for each attribute value of the plurality of attribute values based in part on the encrypted randomized index value.

6. A method for searching in an encrypted database, comprising:

formulating a search as a conjunct of two or more atomic search queries;

selecting one of the conjuncts as a primary atomic search query; and

generating search capabilities for a secondary atomic search query using the primary atomic search query and the secondary atomic search query;

wherein the encrypted database comprises a first data structure associated with the primary atomic search query and a second data structure associated with the secondary atomic search query;

wherein the first data structure and the second data structure are generated from a raw database comprising a plurality of records, and wherein each record of the plurality of records comprises a corresponding record index value and a plurality of attribute values;

wherein the first data structure is generated from the raw database by:

computing a first entry for each attribute value of the plurality of attribute values;

wherein the first entry comprises an encrypted tuple list and a search tag, the search tag being obtained by applying a pseudorandom function to the attribute value of the first entry;

wherein the encrypted tuple list comprises a plurality of tuple list values obtained based on a randomized index value the randomized index value being obtained by applying a random permutation to the record index value; and

wherein the plurality of tuple list values comprises a first tuple value obtained by encrypted the randomized index value with a key;

wherein the second data structure is generated from the raw database by computing a second entry for each attribute value of the plurality of attribute values based in part on the encrypted randomized index value;

wherein the second entry is computed by applying a pseudorandom function to the attribute value to obtain an intermediate value, multiplying the intermediate value with the encrypted randomized index value to obtain a product, and performing an exponentiation of the product in an algebraic group; and

wherein the formulating, selecting and generating steps are performed in accordance with one or more processing devices.

7. A non-transitory computer program product comprising a processor-readable storage medium having encoded therein executable code of one or more software programs, wherein the one or more software programs when executed by the one or more processing devices implement the steps of:

formulating a search in an encrypted database as a conjunct of two or more atomic search queries;

selecting one of the conjuncts as a primary atomic search query; and

generating search capabilities for a secondary atomic search query using the primary atomic search query and the secondary atomic search query;

wherein the encrypted database comprises a first data structure associated with the primary atomic search query and a second data structure associated with the secondary atomic search query;

wherein the first data structure and the second data structure are generated from a raw database comprising a plurality of records, and wherein each record of the plurality of records comprises a corresponding record index value and a plurality of attribute values;

wherein the first data structure is generated from the raw database by:

computing a first entry for each attribute value of the plurality of attribute values;

wherein the first entry comprises an encrypted tuple list and a search tag, the search tag being obtained by applying a pseudorandom function to the attribute value of the first entry;

wherein the encrypted tuple list comprises a plurality of tuple list values obtained based on a randomized index value the randomized index value being obtained by applying a random permutation to the record index value; and

wherein the plurality of tuple list values comprises a first tuple value obtained by encrypted the randomized index value with a key;

wherein the second data structure is generated from the raw database by computing a second entry for each attribute value of the plurality of attribute values based in part on the encrypted randomized index value; and

wherein the second entry is computed by applying a pseudorandom function to the attribute value to obtain an intermediate value, multiplying the intermediate value with the encrypted randomized index value to obtain a product, and performing an exponentiation of the product in an algebraic group.

8. An apparatus for searching in an encrypted database, comprising:

a memory; and

a processor operatively coupled to the memory and configured to: formulate a search as a conjunct of two or more atomic search queries; select one of the conjuncts as a primary atomic search query so as to generate search capabilities for a secondary atomic search query using the primary atomic search query and the secondary atomic search query;

wherein the encrypted database comprises a first data structure associated with the primary atomic search query and a second data structure associated with the secondary atomic search query;

wherein the first data structure and the second data structure are generated from a raw database comprising a plurality of records, and wherein each record of the plurality of records comprises a corresponding record index value and a plurality of attribute values;

wherein the first data structure is generated from the raw database by:

computing a first entry for each attribute value of the plurality of attribute values;

wherein the first entry comprises an encrypted tuple list and a search tag, the search tag being obtained by applying a pseudorandom function to the attribute value of the first entry;

wherein the encrypted tuple list comprises a plurality of tuple list values obtained based on a randomized index value the randomized index value being obtained by applying a random permutation to the record index value; and

wherein the plurality of tuple list values comprises a first tuple value obtained by encrypted the randomized index value with a key; and

wherein the plurality of tuple list values further comprises a second tuple value obtained by:

applying a first pseudorandom function to the randomized index value to create a first intermediate tuple value, wherein the first pseudorandom function takes a first key;

applying a second pseudorandom function to the attribute value and a current count associated with the attribute value to create a second intermediate tuple value, wherein the second pseudorandom function takes a second key; and

dividing the first intermediate tuple value by the second intermediate tuple value.

9. The apparatus of claim 8 , wherein the generation of the search capabilities for the secondary atomic search query comprises a performance of a multiplication in algebraic groups.

10. The apparatus of claim 8 , wherein the generation of the search capabilities for the secondary atomic search query comprises a performance of an exponentiation in algebraic groups.

11. The apparatus of claim 8 , wherein the generation of the search capabilities for the secondary atomic search query comprises a use of a cryptographic hash function.

12. An apparatus for searching in an encrypted database, comprising:

a memory; and

a processor operatively coupled to the memory and configured to: formulate a search as a conjunct of two or more atomic search queries; select one of the conjuncts as a primary atomic search query so as to generate search capabilities for a secondary atomic search query using the primary atomic search query and the secondary atomic search query;

wherein the encrypted database comprises a first data structure associated with the primary atomic search query and a second data structure associated with the secondary atomic search query;

wherein the first data structure and the second data structure are generated from a raw database comprising a plurality of records, and wherein each record of the plurality of records comprises a corresponding record index value and a plurality of attribute values;

wherein the first data structure is generated from the raw database by:

computing a first entry for each attribute value of the plurality of attribute values;

wherein the first entry comprises an encrypted tuple list and a search tag, the search tag being obtained by applying a pseudorandom function to the attribute value of the first entry;

wherein the encrypted tuple list comprises a plurality of tuple list values obtained based on a randomized index value the randomized index value being obtained by applying a random permutation to the record index value; and

wherein the plurality of tuple list values comprises a first tuple value obtained by encrypted the randomized index value with a key; and

wherein the second data structure is generated from the raw database by computing a second entry for each attribute value of the plurality of attribute values based in part on the encrypted randomized index value, and wherein the second entry is computed by applying a pseudorandom function to the attribute value to obtain an intermediate value, multiplying the intermediate value with the encrypted randomized index value to obtain a product, and performing an exponentiation of the product in an algebraic group.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 31, 2017
From: CASH, CHARLES D.; JUTLA, CHARANJIT S.; KRAWCZYK, HUGO M.; ROSU, MARCEL C.; STEINER, MICHAEL
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041813/0315 →
Continuity (2)
Division 13958730 · Aug 5, 2013
Related Publication 20170242924A1 · Aug 24, 2017
Cited By (1)
US 12,287,900