IP Library › Granted Patent US 10,380,370
Granted Patent B2
US 10,380,370 · App. 15/053,250 · Granted Aug 13, 2019

Column wise encryption for lightweight DB engine

Inventors: Abdul Syed-Ebrahim (Mountain View, CA); Peng Ning (Mountain View, CA); Ken Chen (Mountain View, CA)
Assignee: Samsung Electronics Co., Ltd.
G06F21/6227G06F16/245G06F2221/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,380,370
App. No.
15/053,250
Granted
Aug 13, 2019
Kind
B2
Abstract

An apparatus and method for operating a relational database (DB) are provided. The method includes determining a sensitivity classification for a column of a table in the DB, performing encryption, using a data encryption key (DEK), of sensitive data when writing the sensitive data to the column determined to be sensitive, performing decryption, using the DEK, of the encrypted sensitive data when reading the sensitive data from the column determined to be sensitive, and performing writing to the column and reading from the column of unencrypted non-sensitive data when the column is determined to be non-sensitive.

Claims (56)

1. A method of securely storing and retrieving sensitive and non-sensitive data in a same relational database (DB), the method comprising:

determining a sensitivity classification for each column of a table in the DB;

determining a different data encryption key (DEK) corresponding to each cell of a column in the DB, wherein the sensitivity classification of the column is determined to be sensitive;

encrypting sensitive data using the DEK of a corresponding cell in the column and writing the encrypted sensitive data to the corresponding cell;

decrypting, using the DEK, the encrypted sensitive data when reading the sensitive data from the corresponding cell in the column; and

performing writing to and reading from another column of unencrypted non-sensitive data in the DB, wherein the sensitivity classification of the other column is determined to be non-sensitive;

prefixing an encoder type and related headers to the sensitive data; and

wherein performing intercepting, parsing, the encrypting, and the decrypting of the data is configured to occur at a record processing layer,

wherein the encoder type indicates an encryption used to encrypt the sensitive data.

2. The method of claim 1 , further comprising using a master key to encrypt and decrypt all DEKs in a device.

3. The method of claim 2 , wherein, in the absence of the master key, a read operation returns raw encrypted data of the column.

4. The method of claim 2 , wherein, in the absence of the master key, a write to the column is disallowed.

5. The method of claim 1 , wherein, if a write operation of the sensitive data to a cell in the column is requested, the sensitive data is encrypted using the DEK corresponding to the cell in the column.

6. The method of claim 1 , wherein the table comprises the column and the other column.

7. The method of claim 1 , further comprising enhancing records mediated through the record processing layer to interpret and identify sensitive columns in the DB.

8. The method of claim 1 , wherein the DB is accessed by an SQLite database engine.

9. The method of claim 1 , further comprising caching decrypted sensitive columns in the DB until a transaction reaches a commit state.

10. The method of claim 1 , wherein a plurality of sensitive columns in the DB are encrypted using a plurality of different encoding types.

11. An apparatus configured to securely store and retrieve sensitive and non-sensitive data in a same relational database (DB), the apparatus comprising:

a storage configured to store the DB;

a cache; and

at least one processor comprising an engine configured to read from and write to the DB,

wherein the engine comprises:

a structured query language (SQL) statement processing layer;

a byte code processing layer;

a record processing layer; and

a page processing layer,

wherein the controller is configured to:

determine a sensitivity classification for each column of a table in the DB,

determine a different data encryption key (DEK) corresponding to each cell of a column in the DB, wherein the sensitivity classification of the column is determined to be sensitive,

encrypt sensitive data using the DEK of a corresponding cell in the column and write the encrypted sensitive data to the corresponding cell,

decrypt, using the DEK, the encrypted sensitive data when reading the sensitive data from the corresponding cell in the column, and

perform writing to and reading from another column of unencrypted non-sensitive data in the DB,

wherein the sensitivity classification of the other column is determined to be non-sensitive,

wherein an encoder type and related headers are prefixed to the sensitive data,

wherein the encoder type indicates an encryption used to encrypt the sensitive data, and

wherein the record processing layer is configured to perform intercepting, parsing, the encrypting, and the decrypting of data.

12. The apparatus of claim 11 , wherein a master key is used to encrypt and decrypt all DEKs in the apparatus.

13. The apparatus of claim 12 , wherein, in the absence of the master key, a read operation returns raw encrypted data of the column.

14. The apparatus of claim 12 , wherein, in the absence of the master key, a write operation to the column is disallowed.

15. The apparatus of claim 11 , wherein, if a write operation of the sensitive data to a cell in the column is requested, the sensitive data is encrypted using the DEK corresponding to the cell in the column.

16. The apparatus of claim 11 , wherein the table comprises the column and the other column.

17. The apparatus of claim 11 , wherein records mediated through the record processing layer are enhanced to interpret and identify sensitive columns in the DB.

18. The apparatus of claim 11 , wherein the engine comprises an SQLite database engine.

19. The apparatus of claim 11 , wherein decrypted sensitive columns in the DB are cached in the cache until a transaction reaches a commit state.

20. The apparatus of claim 11 , wherein a plurality of sensitive columns in the DB are encrypted using a plurality of different encoding types.

21. The apparatus of claim 11 , wherein the apparatus is a mobile terminal.

22. A non-transitory computer readable storage medium encoded with instructions, executable by a processor, to perform a method comprising:

determining a sensitivity classification for a column of a table in a relational database (DB), wherein the table includes both a column of sensitive data and another column of non-sensitive data;

determining a different data encryption key (DEK) corresponding to each cell of the column in the DB, wherein the sensitivity classification of the column is determined to be sensitive;

encrypting sensitive data using the DEK of a corresponding cell in the column and writing the encrypted sensitive data to the corresponding cell;

decrypting, using the DEK, the encrypted sensitive data when reading the sensitive data from the corresponding cell in the column;

performing writing to and reading from the other column of unencrypted non-sensitive data in the DB, wherein the sensitivity classification of the other column is determined to be non-sensitive;

prefixing an encoder type and related headers to the sensitive data, and

wherein performing intercepting, parsing, the encrypting, and the decrypting of data is configured to occur at a record processing layer,

wherein the encoder type indicates an encryption used to encrypt the sensitive data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2016
From: SYED-EBRAHIM, ABDUL; NING, PENG; CHEN, KEN
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 037828/0836 →
Continuity (3)
Provisional Application 62126091 · Feb 27, 2015
Provisional Application 62126058 · Feb 27, 2015
Related Publication 20170083604A1 · Mar 23, 2017