# US 12,120,097 B2 · Authenticating key-value data pairs for protecting node related data

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

- Number: US 12,120,097 B2
- Document ID: US12120097B2
- Status: Granted
- Kind: B2
- Application number: 17/889,782
- Filed: 2022-08-17
- Published: 2024-02-22
- Granted: 2024-10-15
- Earliest claimed: 2022-08-17
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Martin Schmatz; Navaneeth Rameshan; Patricia M. Sagmeister
- Web page: https://patentgrep.com/patent/US12120097B2

## CPC

- H04L 63/0435: {wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption (cryptographic mechanisms or cryptographic arrangements for symmetric key encryption H04L9/06)}
- H04L 9/0631: {Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms}
- H04L 9/0637: {Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]}
- H04L 9/0822: {using key encryption key}
- H04L 9/083: {involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]}
- H04L 9/0894: {Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage}
- H04L 9/321: {involving a third party or a trusted authority}
- H04L 9/3271: {using challenge-response}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A computer-implemented method according to one embodiment includes using a first symmetric key to encrypt a second symmetric key. The first symmetric key is securely loaded inside a hardware security module (HSM) by a key management service before the encryption of the second symmetric key, and a cloud provider only has access to encrypted bits of the first symmetric key. Key data of a key-value-pair of the second symmetric key is used as additional authenticated data (AAD) for the encryption of the second symmetric key. The second symmetric key is used to encrypt value data of the key-value-pair. The method further includes storing the encrypted second symmetric key, the AAD used in the encryption of the second symmetric key, and tag bits created during the encryption of the second symmetric key, to thereafter use for verifying node related data.

## Claims

### Claim 1

A computer-implemented method, comprising:
using a first symmetric key to encrypt a second symmetric key,
wherein the first symmetric key is securely loaded inside a hardware security module (HSM) by a key management service before the encryption of the second symmetric key,
wherein a cloud provider only has access to encrypted bits of the first symmetric key;
wherein key data of a key-value-pair of the second symmetric key is used as additional authenticated data (AAD) for the encryption of the second symmetric key;
using the second symmetric key to encrypt value data of the key-value-pair; and
storing the encrypted second symmetric key, the AAD used in the encryption of the second symmetric key, and tag bits created during the encryption of the second symmetric key, to thereafter use for verifying node related data.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, comprising:
receiving the node related data of a node, wherein the node related data includes tag bits of the node and an AAD of the node;
using the first symmetric key to decrypt an encrypted third symmetric key associated with the node related data; and
determining an authenticity of the decrypted third symmetric key, wherein the authenticity of the decrypted third symmetric key is determined based on a first comparison of the tag bits of the node with the tag bits created during the encryption of the second symmetric key, and based on a second comparison of the AAD of the node with the AAD used in the encryption of the second symmetric key.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein the decrypted third symmetric key is determined to be authentic in response to a determination that the AAD of the node matches with the AAD used in the encryption of the second symmetric key in the first comparison, and a determination that the tag bits of the node match with the tag bits created during the encryption of the second symmetric key in the second comparison.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3,
comprising:
in response to the determination that the decrypted third symmetric key is authentic, using the decrypted third symmetric key to decrypt the encrypted value data of the key-value-pair; and
performing a verification operation on the received node related data.

### Claim 5 (depends on 3)

The computer-implemented method of claim 3, wherein the third symmetric key is the second symmetric key.

### Claim 6 (depends on 3)

The computer-implemented method of claim 3, wherein the decrypted third symmetric key is determined to be not authentic in response to a determination that the AAD of the node do not match with the AAD used in the encryption of the second symmetric key in the first comparison and/or a determination that the tag bits of the node do not match with the tag bits created during the encryption of the second symmetric key in the second comparison, and comprising: in response to a determination that the decrypted third symmetric key is not authentic, not using the decrypted third symmetric key to decrypt the encrypted value data of the key-value-pair; and outputting a warning that the received node related data failed authentication.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein securely loading the first symmetric key inside the HSM by the key management service before the encryption of the second symmetric key includes:
loading an encrypted instance key encryption key (IKEK) of a database to the HSM,
using a master key encryption key (MKEK) of the HSM to decrypt the encrypted IKEK in the HSM,
loading the first symmetric key to the HSM from the database, wherein the first symmetric key is encrypted in the database, and
using the decrypted IKEK to decrypt the encrypted first symmetric key.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein
Advanced Encryption Standard with Galois/Counter Mode (AES-GCM) encryption is used to encrypt the second symmetric key.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, comprising:
executing a verifier of an attestable trusted execution environment (TEE) to verify the node related data in a cloud computing environment inside the TEE.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, wherein the encryption of the second symmetric key is an authenticated encryption with associated data (AEAD), wherein the key data of the key-value-pair of the second symmetric key is used as the AAD for the AEAD encryption of the second symmetric key.

### Claim 11

A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable and/or executable by a computer to cause the computer to:
use, by the computer, a first symmetric key to encrypt a second symmetric key,
wherein the first symmetric key is securely loaded inside a hardware security module (HSM) by a key management service before the encryption of the second symmetric key,
wherein a cloud provider only has access to encrypted bits of the first symmetric key;
wherein key data of a key-value-pair of the second symmetric key is used as additional authenticated data (AAD) for the encryption of the second symmetric key;
use, by the computer, the second symmetric key to encrypt value data of the key-value-pair; and
store, by the computer, the encrypted second symmetric key, the AAD used in the encryption of the second symmetric key, and tag bits created during the encryption of the second symmetric key, to thereafter use for verifying node related data.

### Claim 12 (depends on 11)

The computer program product of claim 11, the program instructions readable and/or executable by the computer to cause the computer to:
receive, by the computer, the node related data of a node, wherein the node related data includes tag bits of the node and an AAD of the node;
use, by the computer, the first symmetric key to decrypt an encrypted third symmetric key associated with the node related data; and
determine, by the computer, an authenticity of the decrypted third symmetric key, wherein the authenticity of the decrypted third symmetric key is determined based on a first comparison of the tag bits of the node with the tag bits created during the encryption of the second symmetric key, and based on a second comparison of the AAD of the node with the AAD used in the encryption of the second symmetric key.

### Claim 13 (depends on 12)

The computer program product of claim 12, wherein the decrypted third symmetric key is determined to be authentic in response to a determination that the AAD of the node matches with the AAD used in the encryption of the second symmetric key in the first comparison, and a determination that the tag bits of the node match with the tag bits created during the encryption of the second symmetric key in the second comparison.

### Claim 14 (depends on 13)

The computer program product of claim 13, the program instructions readable and/or executable by the computer to cause the computer to:
in response to the determination that the decrypted third symmetric key is authentic, use, by the computer, the decrypted third symmetric key to decrypt the encrypted value data of the key-value-pair; and
perform, by the computer, a verification operation on the received node related data.

### Claim 15 (depends on 13)

The computer program product of claim 13, wherein the third symmetric key is the second symmetric key.

### Claim 16 (depends on 13)

The computer program product of claim 13, wherein the decrypted third symmetric key is determined to be not authentic in response to a determination that the AAD of the node do not match with the AAD used in the encryption of the second symmetric key in the first comparison and/or a determination that the tag bits of the node do not match with the tag bits created during the encryption of the second symmetric key in the second comparison, and the program instructions readable and/or executable by the computer to cause the computer to: in response to a determination that the decrypted third symmetric key is not authentic, not use, by the computer, the decrypted third symmetric key to decrypt the encrypted value data of the key-value-pair; and output, by the computer, a warning that the received node related data failed authentication.

### Claim 17 (depends on 11)

The computer program product of claim 11, wherein securely loading the first symmetric key inside the HSM by the key management service before the encryption of the second symmetric key includes:
loading an encrypted instance key encryption key (IKEK) of a database to the HSM,
using a master key encryption key (MKEK) of the HSM to decrypt the encrypted IKEK in the HSM,
loading the first symmetric key to the HSM from the database, wherein the first symmetric key is encrypted in the database, and
using the decrypted IKEK to decrypt the encrypted first symmetric key.

### Claim 18 (depends on 11)

The computer program product of claim 11, wherein Advanced Encryption Standard with Galois/Counter Mode (AES-GCM) encryption is used to encrypt the second symmetric key.

### Claim 19 (depends on 11)

The computer program product of claim 11, the program instructions readable and/or executable by the computer to cause the computer to: execute, by the computer, a verifier of an attestable Trusted Execution Environment (TEE) to verify the node related data in a cloud computing environment inside the TEE.

### Claim 20

A system, comprising:
a hardware processor; and
logic integrated with the hardware processor, executable by the hardware processor, or integrated with and executable by the hardware processor, the logic being configured to:
use a first symmetric key to encrypt a second symmetric key,
wherein the first symmetric key is securely loaded inside a hardware security module (HSM) by a key management service before the encryption of the second symmetric key,
wherein securely loading the first symmetric key inside the HSM by the key management service before the encryption of the second symmetric key includes:
loading an encrypted instance key encryption key (IKEK) of a database to the HSM;
using a master key encryption key (MKEK) of the HSM to decrypt the encrypted IKEK in the HSM;
loading the first symmetric key to the HSM from the database, wherein the first symmetric key is encrypted in the database; and
using the decrypted IKEK to decrypt the encrypted first symmetric key,
wherein a cloud provider only has access to encrypted bits of the first symmetric key;
wherein key data of a key-value-pair of the second symmetric key is used as additional authenticated data (AAD) for the encryption of the second symmetric key;
use the second symmetric key to encrypt value data of the key-value-pair; and
store the encrypted second symmetric key, the AAD used in the encryption of the second symmetric key, and tag bits created during the encryption of the second symmetric key, to thereafter use for verifying node related data.
