IP Library Granted Patent US 10,255,454
Granted Patent B2
US 10,255,454 · App. 15/045,251 · Granted Apr 9, 2019

Controlling security in relational databases

Inventors: Seny Kamara (Seattle, WA); Tarik Moataz (Paris, FR)
Assignee: Microsoft Technology Licensing, LLC
G06F21/6227G06F17/30595G06F21/6218H04L9/008H04L9/0894H04L63/0807G06F2221/2107
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,255,454
App. No.
15/045,251
Filed
Feb 17, 2016
Granted
Apr 9, 2019
Kind
B2
Examiner
NGUY, CHI D
Art Unit
2435
USPC
713/159
Abstract

A security controller controls secure processing of queries in an encrypted relational database. A query controller receives, from a client device, a secure query in a format of an encrypted token generated using a structured query language (SQL) query in a conjunctive query form, and sends an encrypted response to the secure query to the client device. A search engine generates the encrypted response to the secure query by initiating a search on the encrypted relational database, without decrypting the secure query and without decrypting the encrypted multi-maps. The encrypted relational database includes encrypted multi-maps corresponding to a relational database hosted at the client device, and an encrypted dictionary, based on structured encryption, using structured encryption, in lieu of using property-preserving encryption (PPE), and in lieu of using fully homomorphic encryption (FHE).

Claims (69)

1. A system comprising:

at least one hardware device processor; and

a computer-readable storage medium storing executable instructions that, when executed, cause one or more of the at least one hardware device processor to:

control secure processing of queries in a relational database by:

generating a secure query based on generating an encrypted token using a structured query language (SQL) query in a conjunctive query form, using structured encryption, in lieu of using property-preserving encryption (PPE), the encrypted token including an arity value indicating a cardinality of tables included in a cross product portion of the query and a dimension value indicating dimensions of the tables included in the cross product; and

submitting the secure query to a device that hosts an encrypted database that comprises encrypted multi-maps corresponding to the relational database, and an encrypted dictionary based on structured encryption; and

receiving an encrypted response to the secure query.

2. The system of claim 1 , wherein:

controlling the secure processing of queries in the relational database includes:

generating the encrypted database at a client device by generating the encrypted multi-maps corresponding to the relational database and the encrypted dictionary using structured encryption, in lieu of using property-preserving encryption (PPE), the encrypted multi-maps including a row-wise multi-map storing an encrypted row-wise representation of the relational database, and a column-wise multi-map storing an encrypted column-wise representation of the relational database; and

transmitting the encrypted database from the client device to the device that hosts the encrypted database.

3. The system of claim 2 , wherein:

the encrypted multi-maps include a value-wise multi-map storing an encrypted mapping of a plurality of values of cells to respective tokens for respective rows of the relational database that respectively store the same respective values.

4. The system of claim 1 , wherein:

controlling the secure processing of queries in the relational database includes:

generating the encrypted database at a client device by generating a dictionary that identifies correspondences between labels and respective values corresponding to the respective labels; and

transmitting an encrypted version of the dictionary from the client device to the device that hosts the encrypted database.

5. The system of claim 1 , wherein:

controlling the secure processing of queries in the relational database includes:

generating the encrypted database at a client device by generating the encrypted multi-maps corresponding to the relational database and the encrypted dictionary using structured encryption, in lieu of using property-preserving encryption (PPE), wherein the encrypted multi-maps include one or more inverted indexes; and

transmitting the encrypted database from the client device to a server that is included in the device that hosts the encrypted database.

6. The system of claim 1 , wherein:

controlling the secure processing of queries in the relational database includes:

generating the encrypted database at a client device by generating the encrypted multi-maps corresponding to the relational database and the encrypted dictionary using structured encryption, in lieu of using property-preserving encryption (PPE), wherein the encrypted multi-maps include a value-wise multi-map that stores a value-wise representation of the relational database in encrypted form, the value-wise representation representing mappings of values of cells to rows in the relational database that store respective values in common with the respective cells; and

transmitting the encrypted database from the client device to a server that is included in the device that hosts the encrypted database.

7. The system of claim 1 , wherein:

controlling the secure processing of queries in the relational database includes:

generating the secure query based on generating the encrypted token using a structured query language (SQL) query in selection, projection, and Cartesian product (SPC) normal form, using structured encryption, in lieu of using property-preserving encryption (PPE), and in lieu of using fully homomorphic encryption (FHE), and in lieu of using trusted hardware.

8. The system of claim 1 , wherein:

controlling the secure processing of queries in the relational database includes:

obtaining the SQL query from an application that is hosted on a client device;

decrypting the received encrypted response to the SQL query; and

providing the decrypted received response to the application.

9. The system of claim 1 , wherein:

receiving the encrypted response to the SQL query includes receiving an encrypted table, wherein controlling the secure processing of queries in the relational database includes:

decrypting respective cells in the received encrypted table to generate a decrypted query result.

10. A method comprising:

controlling secure processing of queries in a relational database by:

receiving, from a client device, a secure query in a format of an encrypted token generated using a structured query language (SQL) query in a conjunctive query form, the encrypted token including an arity value indicating a cardinality of tables included in a cross product portion of the query and a dimension value indicating dimensions of the tables included in the cross product;

generating an encrypted response to the secure query using an encrypted database that comprises encrypted multi-maps corresponding to the relational database and an encrypted dictionary based on structured encryption, using structured encryption, in lieu of using property-preserving encryption (PPE), and in lieu of using fully homomorphic encryption (FHE); and

sending the encrypted response to the client device.

11. The method of claim 10 , further comprising:

receiving, at a server device, the encrypted database, from the client device.

12. The method of claim 10 , wherein:

sending the encrypted response to the client device includes sending an encrypted table to the client device.

13. The method of claim 10 , wherein:

generating the encrypted response to the secure query includes generating the encrypted response without decrypting the secure query and without decrypting the encrypted database.

14. The method of claim 10 , wherein:

the encrypted multi-maps include a row-wise multi-map that stores a row-wise representation of the relational database in encrypted form.

15. The method of claim 10 , wherein:

the encrypted multi-maps include a column-wise multi-map that stores a column-wise representation of the relational database in encrypted form.

16. The method of claim 10 , wherein:

the encrypted multi-maps include a value-wise multi-map that stores a value-wise representation of the relational database in encrypted form, the value-wise representation representing mappings of values of cells to rows in the relational database that store respective values in common with the respective cells.

17. The method of claim 10 , further comprising:

based at least on the arity value and the dimension value, instantiating a matrix,

wherein generating the encrypted response includes placing ciphertexts in specific locations in the matrix.

18. A system comprising:

at least one server that includes:

at least one hardware device processor;

an encrypted relational database that includes encrypted multi-maps corresponding to a relational database hosted at a client device, and an encrypted dictionary, the encrypted multimaps and the encrypted dictionary being encrypted using structured encryption in lieu of using property-preserving encryption (PPE) and in lieu of using fully homomorphic encryption (FHE); and

a security controller that includes a computer-readable storage medium storing executable instructions that, when executed, cause one or more of the at least one hardware device processor to control secure processing of queries in the encrypted relational database, the security controller including:

a query controller that receives, from the client device, a secure query in a format of an encrypted token generated using a structured query language (SQL) query in a conjunctive query form, and sends an encrypted response to the secure query to the client device, the query controller including:

a search engine that generates the encrypted response to the secure query by initiating a search on the encrypted relational database, without decrypting the secure query and without decrypting the encrypted multi-maps.

19. The system of claim 18 , wherein:

the encrypted multi-maps include a value-wise multi-map that stores a value-wise representation of the relational database in encrypted form, the value-wise representation representing mappings of values of cells to rows in the relational database that store respective values in common with the respective cells.

20. The system of claim 18 , wherein:

the encrypted multi-maps include a value-wise multi-map storing an encrypted mapping of a plurality of values of cells to respective tokens for respective rows of the relational database that respectively store the same respective values.

21. The system of claim 18 , wherein:

the received secure query includes the encrypted token generated using a structured query language (SQL) query in selection, projection, and Cartesian product (SPC) normal form, using structured encryption, in lieu of using property-preserving encryption (PPE), and in lieu of using fully homomorphic encryption (FHE).

Assignments (2)
CONFIRMATORY LICENSE Recorded Nov 18, 2019
From: WILDCAT DISCOVERY TECHNOLOGIES, INC.
To: UNITED STATES DEPARTMENT OF ENERGY
Reel/Frame 051047/0068 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2016
From: KAMARA, SENY; MOATAZ, TARIK
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 037746/0551 →
Continuity (1)
Related Publication 20170235969A1 · Aug 17, 2017
Cited By (5)
US 12,223,075 US 12,244,723 US 12,309,127 US 12,346,440 US 12,639,470