IP Library Granted Patent US 11,934,322
Granted Patent B1
US 11,934,322 · App. 16/249,745 · Granted Mar 19, 2024

Multiple encryption keys on storage drives

Inventors: Ethan L. Miller (Santa Cruz, CA); Andrew R. Bernat (Mountain View, CA); Ronald Karr (Palo Alto, CA); Christopher Golden (Emerald Hills, CA); Nicholas George Psaki (Falls Church, VA); David Whitlock (New Orleans, LA)
Assignee: PURE STORAGE, INC.
G06F12/1408G06F3/061G06F3/0659G06F3/067G06F9/546G06F12/1466G06F21/602G06F2209/548G06F2212/1052G06F2212/401G06F2212/402
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 11,934,322
App. No.
16/249,745
Granted
Mar 19, 2024
Kind
B1
Abstract

A system comprises a storage system comprising one or more storage devices and a storage controller operatively coupled to the storage system, the storage controller comprising a processing device, the processing device to receive first raw data from a first tenant of the storage system to a first non-volatile memory express (NVMe) input/output (I/O) queue of the storage system. The processing device further to determine that the first NVMe I/O queue corresponds to a first key, wherein the first key corresponds to the first tenant. The processing device further to encrypt the first raw data using the first key to generate first encrypted data. The processing device further to store the first encrypted data on the storage system.

Claims (48)

1. A system comprising:

a storage system comprising one or more storage devices; and

a storage controller operatively coupled to the storage system, the storage controller comprising a processing device, the processing device to:

receive first raw data from a first tenant of the storage system to a first input/output (I/O) queue of a plurality of I/O queues in the storage system, wherein the plurality of I/O queues comprise Non-Volatile Memory Express (NVME) I/O queues;

determine that the first I/O queue corresponds to a first key of a plurality of keys, wherein the first key corresponds to the first tenant, wherein each of the plurality of keys corresponds to a respective I/O queue and a respective tenant, and wherein each of the plurality of keys is used to encrypt data in the respective I/O queue received from the respective tenant;

encrypt the first raw data using the first key to generate first encrypted data;

store the first encrypted data on the storage system, the first encrypted data stored in a same volume as other encrypted data associated with other tenants and other keys;

receive a request, from the first tenant, to read the first encrypted data from the storage system via the first I/O queue;

determine that the first I/O queue corresponds to the first key, wherein the first key corresponds to the first tenant; and

provide first decrypted data to the first tenant via the first I/O queue, wherein the first decrypted data is decrypted using the first key.

2. The system of claim 1 , the processing device further to:

receive a request, from the first tenant, to read the first encrypted data from the storage system via a second I/O queue;

determine that the second I/O queue does not correspond to any key; and

provide the first encrypted data to the first tenant via the first I/O queue.

3. The system of claim 2 , the processing device further to provide, to the first tenant, an identifier of a compression algorithm corresponding to the first encrypted data.

4. The system of claim 1 , the processing device further to:

receive a request, from a second tenant, to read the first encrypted data from the storage system via a second I/O queue;

determine that the second I/O queue does not correspond to the first encrypted data; and

deny access to the first encrypted data by the second tenant.

5. The system of claim 1 , the processing device further to:

receive second encrypted data from a second tenant of the storage system to a second I/O queue of the storage system; and

determine that the second I/O queue corresponds to a second key, wherein the second key corresponds to the second tenant;

decrypt the second encrypted data using the second key to generate second decrypted data; and

store the second decrypted data on the storage system.

6. The system of claim 5 , wherein the first encrypted data and the second decrypted data are stored on a same volume of the storage system.

7. The system of claim 1 , the processing device further to

receive the first key from the first tenant; and

initialize the first I/O queue with the first key.

8. The system of claim 7 , the processing device further to disassociate the first I/O queue from the first key in response to at least one of: storing the first encrypted data on the storage system, or receiving a request from the first tenant to disassociate the first I/O queue from the first key.

9. The system of claim 7 , the processing device further to store the first key in a key-store server that is separate from the storage system.

10. The system of claim 7 , wherein the first raw data is smaller than a logical volume range of the storage system.

11. The system of claim 1 , wherein the first encrypted data is written to one or more of a plurality of allocation units assigned to the first tenant, wherein the plurality of allocation units assigned to the first tenant are encrypted using the first key.

12. The system of claim 1 , wherein the first encrypted data is written to one or more data blocks, wherein an identifier of the first key is stored in metadata corresponding to each of the one or more data blocks.

13. The system of claim 1 , wherein the first I/O queue is initialized with encryption information, comprising one or more of: the first key, an initialization vector, or a block number.

14. The system of claim 1 , wherein the first I/O queue is initialized with non-encryption information, comprising one or more of: a compression algorithm, a tenant identifier of the first tenant, or read-write interaction properties.

15. A method comprising:

receiving first raw data from a first tenant of a multi-tenant storage array to be stored on the multi-tenant storage array;

encrypting, by a processing device of a storage controller, the first raw data using a first key to generate first encrypted data, wherein the first key is independent of any physical region and logical region of the multi-tenant storage array, wherein the first key corresponds to a first input/output (I/O) queue and a first tenant of the multi-tenant storage array, wherein the first I/O queue comprises a Non-Volatile Memory Express (NVME) I/O queue, and wherein the first key is used to encrypt data in the first I/O queue received from the first tenant;

storing the first encrypted data on a volume of the multi-tenant storage array, wherein the first encrypted data stored in a same volume as other encrypted data associated with other tenants and other keys;

receive a request, from the first tenant, to read the first encrypted data from the storage array via the first I/O queue;

determine that the first I/O queue corresponds to the first key, wherein the first key corresponds to the first tenant; and

provide first decrypted data to the first tenant via the first I/O queue, wherein the first decrypted data is decrypted using the first key.

16. The method of claim 15 , further comprising:

receiving the first raw data to a first non-volatile memory express (NVMe) input/output (I/O) queue of the multi-tenant storage array; and

determining that the first NVMe I/O queue corresponds to the first key, wherein the first key corresponds to the first tenant.

17. The method of claim 15 , wherein the first raw data is smaller than a logical volume range of the multi-tenant storage array.

18. The method of claim 15 , wherein the first encrypted data is written to one or more of a plurality of allocation units assigned to the first tenant, wherein the plurality of allocation units assigned to the first tenant are encrypted using the first key.

19. The method of claim 15 , wherein the first encrypted data is written to one or more data blocks, and wherein an identifier of the first key is stored in metadata corresponding to each of the one or more data blocks.

Assignments (3)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2019
From: MILLER, ETHAN L.; BERNAT, ANDREW R.; KARR, RONALD; GOLDEN, CHRISTOPHER; PSAKI, NICHOLAS GEORGE; WHITLOCK, DAVID
To: PURE STORAGE, INC.
Reel/Frame 048048/0731 →
Continuity (1)
Provisional Application 62653484 · Apr 5, 2018
Cited By (5)
US 12,306,961 US 12,346,459 US 12,367,293 US 12,380,252 US 12,488,122