# US 10,657,275 B2 · Encryption directed database management system and method

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,657,275 B2
- Document ID: US10657275B2
- Status: Granted
- Kind: B2
- Application number: 15/570,775
- Filed: 2015-06-02
- Published: 2018-05-03
- Granted: 2020-05-19
- Earliest claimed: 2015-06-02
- Assignees: K2View Ltd.
- Applicants: K2View Ltd
- Inventors: Einav Itamar; Achi Rotem
- Web page: https://patentgrep.com/patent/US10657275B2

## CPC

- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- G06F 16/21: Design, administration or maintenance of databases
- G06F 16/2255: {Hash tables}
- G06F 16/2282: {Tablespace storage structures; Management thereof}
- G06F 21/6227: {where protection concerns the structure of data, e.g. records, types, queries}
- H04L 9/0825: {using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates}
- H04L 9/0836: {using tree structure or hierarchical structure}
- H04L 9/088: {Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms (network architectures or network communication protocols for using time-dependent keys in a packet data network H04L63/068)}
- H04L 9/0894: {Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage}
- H04L 9/14: using a plurality of keys or algorithms
- H04L 9/30: Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A granular encryption database management system characterized by hierarchical internal key management using asymmetric encryption of the user's keys, which are stored within a (local) encryption key table. Data is encrypted, decrypted, stored, and accessed from rows within the database (hereinafter ‘instances’). Instances are ordered in categories called Types. Instances are encrypted with Instance keys. All instances of the same type have their Instance keys generated by means of a hash function of their common Type's key, while Type keys are generated from the key of the higher category which is often the Master key of the whole system.

## Claims

### Claim 1

A non-transitory computer-readable medium containing instructions that cause hardware logic to perform operations for controlling a database, comprising, by the hardware logic:
generating a higher category key;
upon creation of a type within the database for administration of individual instances of the database, generating a type key by hashing the higher category key and a type identifier identifying the type; and
upon creation of an instance within the type for data storage, generating an instance key by hashing the type key and an instance identifier identifying the instance,
wherein the instance key is used to encrypt and decrypt data stored in the instance.

### Claim 2 (depends on 1)

The non-transitory computer-readable medium as claimed in claim 1, wherein the higher category key is a master key.

### Claim 3 (depends on 2)

The non-transitory computer-readable medium as claimed in claim 2, wherein the master key is generated upon system installation.

### Claim 4

A non-transitory computer-readable medium containing instructions that cause hardware logic to perform operations for user registration in a database, comprising, by the hardware logic:
storing a password of a user;
storing a public key and an encrypted private key of the user within an encryption key table,
wherein the private key is encrypted by using the password of the user as a key for the encryption; and
if the user has a predetermined authorization, generating a higher category key and storing the higher category key, in encrypted form, in a portion of the encryption key table corresponding to the user,
wherein the higher category key is encrypted with the public key of the user; and
wherein the higher category key enables the user having the predetermined authorization to access the database.

### Claim 5 (depends on 4)

The non-transitory computer-readable medium as claimed in claim 4, wherein the user having the predetermined authorization is a master user, and
wherein the higher category key is a master key.

### Claim 6

A non-transitory computer-readable medium containing instructions that cause hardware logic to perform operations relating to a grantor user granting, to a grantee user, access to a database, comprising, by the hardware logic:
decrypting a private key of the grantor user with a password of the grantor user;
decrypting a higher category key with the decrypted private key of the grantor user;
generating a type key by hashing the decrypted higher category key and a type identifier identifying a type of instances of the database; and
storing the type key, in encrypted form, in a portion of an encryption key table corresponding to the grantee user,
wherein the stored type key is encrypted with a public key of the grantee user.

### Claim 7 (depends on 6)

The non-transitory computer-readable medium as claimed in claim 6, wherein the grantor user is a master user, and
wherein the higher category key is a master key.

### Claim 8 (depends on 6)

The non-transitory computer-readable medium as claimed in the claim 6, wherein the portion of an encryption key table storing the type key comprises a wallet of the grantee user.

### Claim 9

A non-transitory computer-readable medium containing instructions that cause hardware logic to perform operations relating to a grantor user granting access, to a grantee user, to a database, comprising, by the hardware logic:
decrypting a private key of the grantor user with a password of the grantor user;
decrypting a particular key with the private key of the grantor user;
if the particular key is a higher category key:
generating a type key by hashing the decrypted higher category key and a type identifier identifying a type of instances of the database, and
generating an instance key by hashing the type key and an instance identifier identifying a particular instance of the instances of the database;
if the particular key is the type key, generating the instance key by the type key and the instance identifier; and
storing the instance key, in encrypted form, in a portion of an encryption key table corresponding to the grantee user,
wherein the stored instance key is encrypted with a public key of the grantee user.

### Claim 10 (depends on 9)

The non-transitory computer-readable medium as claimed in claim 9, wherein the grantor user is a master user, and
wherein the higher category key is a master key.

### Claim 11 (depends on 9)

The non-transitory computer-readable medium as claimed in claim 9, wherein the portion of an encryption key table storing the instance key comprises a wallet of the grantee user.

### Claim 12

A encryption database management system, comprising:
memory configured to store data in instances of a database, wherein different subsets of the instances are associated with different types based on the data stored in the instances, and wherein each instance has an instance identifier identifying the instance and each type has a type identifier identifying the type; and
hardware logic configured to:
obtain a higher category key,
generate a type key by utilizing the higher category key and a type identifier of a type, wherein the type is for administration of individual instances of the database, and
generate an instance key by utilizing the type key and an instance identifier of an instance, wherein the instance is associated with the type, and
use the instance key to encrypt and decrypt data stored in the instance.

### Claim 13 (depends on 12)

The encryption database management system of claim 12, wherein the type key is generated upon creation of the type.

### Claim 14 (depends on 12)

The encryption database management system of claim 12, wherein the instance key is generated upon creation of the instance.

### Claim 15 (depends on 12)

The encryption database management system of claim 12, wherein the higher category key comprises a master key.

### Claim 16 (depends on 12)

The encryption database management system of claim 12, wherein at least one of the instance key, the type key, and the higher category key is stored in an encryption key table.

### Claim 17 (depends on 16)

The encryption database management system of claim 16, wherein the instance key, the type key, and the higher category key are stored in the encryption key table.

### Claim 18 (depends on 16)

The encryption database management system of claim 16, wherein the hardware logic, memory, and the encryption key table are located within a server.

### Claim 19 (depends on 12)

The encryption database management system of claim 12, wherein the hardware logic comprises at least one processor configured to execute instructions to generate the type key and the instance key.

### Claim 20 (depends on 12)

The encryption database management system of claim 12, wherein the hardware logic is configured to:
generate the type key by hashing the higher category key and the type identifier of the type, and
generate the instance key by hashing the type key and the instance identifier of the instance.

### Claim 21

A encryption database management system, comprising:
memory configured to store data in instances of a database, wherein different subsets of the instances are associated with different types based on the data stored in the instances, and wherein each instance has an instance identifier identifying the instance and each type has a type identifier identifying the type; and
hardware logic configured to:
store a password of a user;
store a public key and an encrypted private key of the user within an encryption key table, wherein the private key is encrypted by using the password of the user as a key for the encryption; and
if the user has a predetermined authorization, generate a higher category key and store the higher category key, in encrypted form, in the encryption key table,
wherein the higher category key is encrypted with the public key of the user, and
wherein the higher category key enables the user having the predetermined authorization to access the database.

### Claim 22 (depends on 21)

The encryption database management system as claimed in claim 21, wherein the public key and the private key are stored in a portion of the encryption key table associated with the user.

### Claim 23 (depends on 21)

The encryption database management system as claimed in claim 21, wherein the public key, private key, and higher category key are stored in a portion of the encryption key table associated with the user.

### Claim 24 (depends on 21)

The encryption database management system as claimed in claim 21, wherein the user having the predetermined authorization is a master user, and
wherein the higher category key is a master key.

### Claim 25 (depends on 21)

The encryption database management system of claim 21, wherein the hardware logic, memory, and the encryption key table are located within a server.

### Claim 26

A encryption database management system, comprising:
memory configured to store data in instances of a database, wherein different subsets of the instances are associated with different types based on the data stored in the instances, and wherein each instance has an instance identifier identifying the instance and each type has a type identifier identifying the type; and
hardware logic configured to:
decrypt a private key of a grantor user of the database with a password of the grantor user;
decrypt a higher category key with the decrypted private key of the grantor user;
generate a type key by utilizing the decrypted higher category key and a type identifier identifying a type of an instance of the database,
store the type key, in encrypted form, in a portion of an encryption key table corresponding to a grantee user, wherein the stored type key is encrypted with a public key of the grantee user.

### Claim 27 (depends on 26)

The encryption database management system of claim 26, wherein generating the type key based on the higher category key and the type identifier comprises generating the type key by hashing the higher category key and the type identifier.

### Claim 28 (depends on 26)

The encryption database management system of claim 26, wherein the grantor user is a master user, and
wherein the higher category key is a master key.

### Claim 29 (depends on 26)

The encryption database management system of claim 26, wherein the hardware logic, memory, and the encryption key table are located within a server.

### Claim 30

A encryption database management system, comprising:
memory configured to store data in instances of a database, wherein different subsets of the instances are associated with different types based on the data stored in the instances, and wherein each instance has an instance identifier identifying the instance and each type has a type identifier identifying the type; and
hardware logic configured to:
decrypt a private key of a grantor user of the database with a password of the grantor user;
decrypt a particular key with the private key of the grantor user;
if the particular key is a higher category key:
generate a type key by utilizing the decrypted higher category key and a type identifier identifying a type of the instances of the database, and
generate an instance key by utilizing the type key and an instance identifier identifying a particular instance of the instances of the database;
if the particular key is the type key, generate the instance key for the particular instance by utilizing the type key and the instance identifier;
store the instance key, in encrypted form, in a portion of an encryption key table corresponding to the grantee user, wherein the stored instance key is encrypted with a public key of the grantee user.

### Claim 31 (depends on 30)

The encryption database management system of claim 30, wherein the type key is generated by hashing the type key from the higher category key and the type identifier, and
wherein the instance key is generated by hashing the instance key from the type key and the instance identifier.

### Claim 32 (depends on 30)

The encryption database management system as claimed in claim 30, wherein the grantor user is a master user, and
wherein the higher category key is a master key.

### Claim 33 (depends on 30)

The encryption database management system of claim 30, wherein the hardware logic, memory, and the encryption key table are located within a server.
