IP Library Granted Patent US 11,599,479
Granted Patent B2
US 11,599,479 · App. 16/406,074 · Granted Mar 7, 2023

Technology for fine-grain encryption and secure key injection on self-encrypting drives

Inventors: Adrian Robert Pearson (Beaverton, OR); David Ray Noeldner (Fort Collins, CO); Niels Juel Reimers (Folsom, CA); Emily Po-Kay Chung (Cupertino, CA); Gamil Assudan Cain (El Dorado Hills, CA); Thomas Rodel Bowen (Hillsboro, OR); Teddy Gordon Greer (Freemont, CA); Jonathan Martin Hughes (Longmont, CO)
Assignee: Intel Corporation
G06F12/1408G06F3/0622G06F3/0637G06F3/0679G06F12/1466H04L9/0822G06F12/0238
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,599,479
App. No.
16/406,074
Granted
Mar 7, 2023
Kind
B2
Abstract

A self-encrypting drive (SED) comprises an SED controller and a nonvolatile storage medium (NVSM) responsive to the SED controller. The SED controller enables the SED to perform operations comprising: (a) receiving an encrypted media encryption key (eMEK) for a client; (b) decrypting the eMEK into an unencrypted media encryption key (MEK); (c) receiving a write request from the client, wherein the write request includes data to be stored and a key tag value associated with the MEK; (d) using the key tag value to select the MEK for the write request; (e) using the MEK for the write request to encrypt the data from the client; and (f) storing the encrypted data in a region of the NVSM allocated to the client. Other embodiments are described and claimed.

Claims (78)

1. A self-encrypting drive (SED) suitable for use in a data processing system, the SED comprising:

an SED controller; and

a nonvolatile storage medium (NVSM) responsive to the SED controller;

wherein the SED controller enables the SED to perform operations comprising:

receiving an encrypted media encryption key (eMEK) for a client;

decrypting the eMEK into an unencrypted media encryption key (MEK) for the client;

receiving a write request from the client, wherein the write request includes data to be stored and a key tag value associated with the MEK;

using the key tag value to select the MEK for the write request;

using the MEK for the write request to encrypt the data from the client;

storing the encrypted data in a first physical region of the NVSM allocated to the client;

writing encrypted data for the client to a second physical region of the NVSM, wherein the first and second physical regions are not contiguous; and

utilizing the MEK for the client in conjunction with accessing the first physical region and in conjunction with accessing the second physical region.

2. A data processing system according to claim 1 , wherein the data processing system comprises:

a processor;

nonvolatile storage responsive to the processor;

storage appliance software (SAS) in the nonvolatile storage; and

an SED according to claim 1 responsive to the processor;

wherein the SAS enables the processor to receive the write request from the client and, in response to the write request, (a) determine the key tag value for the client, (b) include the key tag value for the client in the write request, and (c) forward the write request to the SED; and

wherein the operation of receiving the write request from the client comprises receiving the write request from the client via the SAS.

3. An SED according to claim 1 , wherein the operation of receiving the eMEK for the client comprises:

receiving the eMEK for the client from a key management server.

4. An SED according to claim 1 , wherein the SED controller further enables the SED to respond to a read request for the first physical region of the NVSM allocated to the client by (a) using a key tag value from the read request to obtain a unique identifier (UID) for a MEK for the read request and (b) determining whether the UID for the MEK for the read request matches a UID for the MEK for the write request.

5. An SED according to claim 4 , wherein the SED controller enables the SED to:

store the UID for the MEK for the write request in the first physical region of the NVSM allocated to the client, in connection with storing the encrypted data in said region;

read the UID for the MEK for the write request from the NVSM; and

after obtaining the UID for the MEK for the read request and reading the UID for the MEK for the write request from the NVSM, compare the UID for the MEK for the read request with the UID for the MEK for the write request.

6. An SED according to claim 5 , wherein the operation of storing the UID for the MEK for the write request in the first physical region of the NVSM allocated to the client comprises:

storing a first part of the UID in a first sector within the first physical region of the NVSM allocated to the client; and

storing a second part of the UID in a second sector within the first physical region of the NVSM allocated to the client.

7. An SED according to claim 5 , wherein:

the MEK for the write request comprises a pair of AES-XTS keys according to an XEX-based tweaked-codebook mode with ciphertext stealing (XTS) process, involving XOR-encrypt-XOR (XEX) operations, according to an Advanced Encryption Standard (AES); and

the SED controller enables to SED to generate the UID for the MEK for the write request based on the pair of AES-XTS keys.

8. An SED according to claim 1 , further comprising:

volatile storage; and

wherein the SED is configured to save the unencrypted MEK only in the volatile storage.

9. A data processing system, comprising:

a processor;

nonvolatile storage responsive to the processor;

storage appliance software (SAS) in the nonvolatile storage; and

a self-encrypting drive (SED) responsive to the processor, the SED comprising:

an SED controller and a nonvolatile storage medium (NVSM) responsive to the SED controller, wherein the SED controller enables the SED to perform operations comprising:

receiving an encrypted media encryption key (eMEK) for a client;

decrypting the eMEK into an unencrypted media encryption key (MEK) for the client;

receiving a write request from the client via the SAS, wherein the write request includes data to be stored and a key tag value associated with the MEK;

using the key tag value to select the MEK for the write request;

using the MEK for the write request to encrypt the data from the client;

storing the encrypted data in a first physical region of the NVSM allocated to the client;

writing encrypted data for the client to a second physical region of the NVSM, wherein the first and second physical regions are not contiguous; and

utilizing the MEK for the client in conjunction with accessing the first physical region and in conjunction with accessing the second physical region; and

wherein the SAS enables the processor to receive the write request from the client and, in response to the write request, (a) determine the key tag value for the client, (b) include the key tag value for the client in the write request, and (c) forward the write request to the SED.

10. A data processing system according to claim 9 , wherein the NVSM responsive to the SED controller comprises the nonvolatile storage with the SAS.

11. A data processing system according to claim 9 , wherein the operation of determining the key tag value for the client comprises:

determining the key tag value to be used for the write request, based which client submitted the write request.

12. A data processing system according to claim 9 , wherein the SED controller further enables the SED to respond to a read request for the first physical region of the NVSM allocated to the client by (a) using a key tag value from the read request to obtain a unique identifier (UID) for a MEK for the read request, and (b) determining whether the UID for the MEK for the read request matches a UID for the MEK for the write request.

13. A data processing system according to claim 12 , wherein the SED controller enables the SED to:

store the UID for the MEK for the write request in the first physical region of the NVSM allocated to the client, in connection with storing the encrypted data in said region;

read the UID for the MEK for the write request from the NVSM; and

after obtaining the UID for the MEK for the read request and reading the UID for the MEK for the write request from the NVSM, compare the UID for the MEK for the read request with the UID for the MEK for the write request.

14. A data processing system according to claim 13 , wherein the operation of storing the UID for the MEK for the write request in the first physical region of the NVSM allocated to the client comprises:

storing a first part of the UID in a first sector within the first physical region of the NVSM allocated to the client; and

storing a second part of the UID in a second sector within the first physical region of the NVSM allocated to the client.

15. A method for protecting data in a self-encrypting drive (SED), the method comprising:

at an SED controller of the SED, receiving an encrypted media encryption key (eMEK) for a client;

at the SED controller, decrypting the eMEK into an unencrypted media encryption key (MEK) for the client;

receiving a write request from the client, wherein the write request includes data to be stored and a key tag value associated with the MEK;

using the key tag value to select the MEK for the write request;

using the MEK for the write request to encrypt the data from the client;

using a nonvolatile storage medium (NVSM) responsive to the SED controller to store the encrypted data in a first physical region of the NVSM allocated to the client;

writing encrypted data for the client to a second physical region of the NVSM, wherein the first and second physical regions are not contiguous; and

utilizing the MEK for the client in conjunction with accessing the first physical region and in conjunction with accessing the second physical region.

16. A method according to claim 15 , wherein the operation of receiving the eMEK for the client comprises:

receiving the eMEK for the client from a key management server.

17. A method according to claim 15 , further comprising:

responding to a read request for the first physical region of the NVSM allocated to the client by (a) using a key tag value from the read request to obtain a unique identifier (UID) for a MEK for the read request, and (b) determining whether the UID for the MEK for the read request matches a UID for the MEK for the write request.

18. A method according to claim 17 , further comprising:

storing the UID for the MEK for the write request in the first physical region of the NVSM allocated to the client, in connection with storing the encrypted data in said region;

reading the UID for the MEK for the write request from the NVSM; and

after obtaining the UID for the MEK for the read request and reading the UID for the MEK for the write request from the NVSM, comparing the UID for the MEK for the read request with the UID for the MEK for the write request.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2025
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP. (DBA SOLIDIGM)
Reel/Frame 072850/0834 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2019
From: PEARSON, ADRIAN ROBERT; NOELDNER, DAVID RAY; REIMERS, NIELS JUEL; CHUNG, EMILY PO-KAY; CAIN, GAMIL ASSUDAN; BOWEN, THOMAS RODEL; GREER, TEDDY GORDON; HUGHES, JONATHAN MARTIN
To: INTEL CORPORATION
Reel/Frame 049211/0067 →
Continuity (2)
Provisional Application 62668844 · May 9, 2018
Related Publication 20190266103A1 · Aug 29, 2019