# US 12,603,759 B2 · Distribution and update of keys

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

- Number: US 12,603,759 B2
- Document ID: US12603759B2
- Status: Granted
- Kind: B2
- Application number: 18/266,477
- Filed: 2021-12-10
- Published: 2024-02-15
- Granted: 2026-04-14
- Earliest claimed: 2020-12-11
- Assignees: NVIDIA Corporation
- Applicants: Nvidia Corporation
- Inventors: Scott Wilson
- Web page: https://patentgrep.com/patent/US12603759B2

## CPC

- H04L 9/0816: {Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use}
- H04L 9/0891: {Revocation or update of secret information, e.g. encryption key update or rekeying}
- G06F 21/602: {Providing cryptographic facilities or services}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- H04L 9/0822: {using key encryption key}
- H04L 9/0897: {involving additional devices, e.g. trusted platform module [TPM], smartcard or USB}
- H04L 9/14: using a plurality of keys or algorithms
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Cluster storage systems (100) and methods provide secure generation, distribution, and update of encryption keys (132, 142) during initial cluster formation and cluster membership changes without using readable persistent media. A cryptographic coprocessor (130) stores a key encryption key (132) in write-only memory and uses the unreadable key (132) for encryption and decryption of a data encryption key (142). Methods to securely distribute the initial or updated the key (132) to be stored in the coprocessor (130) and securely update the key (132) when cluster membership changes are provided.

## Claims

### Claim 1

A secure storage system, comprising:
persistent storage storing encrypted data that was encrypted using a first key and storing an encrypted key; and
a processing unit controlling writes and reads to the persistent storage, the processing unit comprising:
a volatile memory to store the first key; and
a cryptographic coprocessor, wherein the cryptographic coprocessor comprises:
an unreadable memory separate from the persistent storage and accessible by the cryptographic coprocessor in the processing unit and storing a second key; and
a decryption module configured to perform a decrypt operation using the second key, wherein performing the decryption operation using the second key on the encrypted key produces the first key.

### Claim 2 (depends on 1)

The storage system of claim 1, wherein the cryptographic coprocessor further comprises an encryption module configured to perform an encryption operation using the second key, performing the encryption operation using the second key on the first key producing the encrypted key.

### Claim 3 (depends on 1)

The storage system of claim 1, wherein the processing unit is configured to perform a write operation comprising:
using the cryptographic coprocessor to decrypt the encrypted key and produce the first key;
using the first key in encrypting data from a storage client to produce the encrypted data; and
operating the persistent storage to write the encrypted data in the persistent storage.

### Claim 4 (depends on 1)

The storage system of claim 1, wherein the processing unit is configured to store the first key only in the volatile memory being separate from the unreadable memory and the persistent storage.

### Claim 5 (depends on 1)

A cluster storage system comprising a plurality of storage nodes, each of the storage nodes being a secure storage system as recited in claim 1.

### Claim 6 (depends on 5)

The cluster storage system of claim 5, wherein each of the storage nodes further comprises a communication interface providing secure communication with a remainder of the storage nodes.

### Claim 7

A process for operating a cluster storage system, the process comprising:
storing in persistent storage devices of a plurality of storage nodes of the cluster storage system encrypted data that was encrypted using a first key;
storing an encrypted key in each of the persistent storage devices, the encrypted key resulting from encryption of the first key through an encryption process using a second key;
storing a second key in unreadable memory in each of a plurality of processing units that control the persistent storage devices, each unreadable memory being separate from the persistent storage devices and accessible by a cryptographic coprocessor in the processing unit that contains the unreadable memory and being inaccessible outside of the cryptographic coprocessor;
operating the cryptographic coprocessors to use the second key to decrypt the encrypted key, producing the first key;
storing the first key in volatile memory of each of the processing units; and
operating each of the processing units to read encrypted data from the persistent storage device the processing unit controls and to perform a cryptographic operation using the first key to provide data to a storage user.

### Claim 8 (depends on 7)

The process of claim 7, further comprising:
a selected one of the processing units generating a first random number and a second random number, the first random number being the first key and the second random number being the second key;
the selected processing unit transmitting the first random number and the second random number to a remainder of the processing units;
each of the processing units storing the second random number in the unreadable memory of the cryptographic coprocessor of the processing unit;
clearing the second random number from any readable memory in the cluster storage system;
operating the cryptographic coprocessors to use the second key in encrypting the first key and thereby producing the encrypted key; and
storing the encrypted key in the persistent storage devices.

### Claim 9 (depends on 7)

The process of claim 7, wherein the coprocessor further comprises an encryption module configured to perform an encryption operation using the second key, wherein performing the encryption operation using the second key on the first key produces the encrypted key.

### Claim 10 (depends on 7)

The process of claim 7, further comprising performing a write operation comprising:
using the coprocessor to decrypt the encrypted key and produce the first key;
using the first key in encrypting data from a storage client to produce the encrypted data; and
operating the persistent storage to write the encrypted data in the persistent storage.

### Claim 11 (depends on 7)

The process of claim 7, wherein the processing unit is configured to store the first key only in the volatile memory being separate from the unreadable memory and the persistent storage.

### Claim 12 (depends on 7)

The process of claim 7, wherein the cryptographic coprocessor is an integrated circuit chip in the processing unit.

### Claim 13 (depends on 12)

The process of claim 12, wherein no programming or signals applied to one or more terminals of the integrated circuit chip can cause output of the second key from the integrated circuit chip.

### Claim 14 (depends on 7)

The process of claim 7, wherein a new second key is generated responsive to an addition of a new processing unit.

### Claim 15

A processing unit comprising one or more logical units to read encrypted data from a persistent storage device separate from the processing unit by decrypting encrypted data with a first key, the first key being decrypted from an encrypted key with a second key, the encrypted key resulting from an encryption of the first key through an encryption process using a second key, the first key being stored in a volatile memory, and the second key being stored in an unreadable memory accessible only by a cryptographic coprocessor on the processing unit.

### Claim 16 (depends on 15)

The processing unit of claim 15, wherein the processing unit further comprises an encryption module configured to perform an encryption operation using the second key, performing the encryption operation using the second key on the first key producing the encrypted key.

### Claim 17 (depends on 15)

The processing unit of claim 15, further to perform a write operation comprising:
using the first key in encrypting data from a storage client to produce the encrypted data; and
operating the persistent storage to write the encrypted data in the persistent storage device.

### Claim 18 (depends on 15)

The processing unit of claim 15, further to store the first key only in volatile memory in the processing unit.

### Claim 19 (depends on 15)

The processing unit of claim 15, further comprising an integrated circuit chip.

### Claim 20 (depends on 19)

The processing unit of claim 19, wherein no programming or signals applied to one or more terminals of the integrated circuit chip can cause output of the second key from the integrated circuit chip.
