IP Library Granted Patent US 11,586,560
Granted Patent B2
US 11,586,560 · App. 17/165,361 · Granted Feb 21, 2023

Secure memory

Inventors: Rodrigo R. Branco (Hillsboro, OR); Shay Gueron (Haifa, IL)
Assignee: INTEL CORPORATION
G06F12/1408G06F11/1048G06F21/78H04L9/0618H04L9/0662G06F7/588G06F2212/1052G06F2212/402G06F2212/403H04L2209/34
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,586,560
App. No.
17/165,361
Granted
Feb 21, 2023
Kind
B2
Abstract

Various examples are directed to systems and methods for securing a data storage device. A storage controller may receive a read request directed to the data storage device. The read request may comprise address data indicating a first address of a first storage location at the data storage device. The storage controller may request from the data storage device a first encrypted data unit stored at the first memory element and a first encrypted set of parity bits, such as Error Correction Code (ECC) bits, associated with the first storage location. An encryption system may decrypt the first encrypted set of parity bits to generate a first set of parity bits based at least in part on an a first location parity key for the first address.

Claims (59)

1. A data storage system with encryption support comprising:

a data storage device comprising a plurality of storage locations, the plurality of storage locations comprising a first storage location associated with a first address;

a storage controller to receive a read request directed to the data storage device, wherein the read request comprises address data indicating the first address;

wherein the storage controller is to request from the data storage device a first encrypted data unit stored at the first storage location and a first encrypted set of parity bits associated with the first storage location; and

an encryption system to decrypt the first encrypted set of parity bits to generate a first set of parity bits based at least in part on a first location parity key for the first address, the decrypting comprising:

encrypting a block of the first encrypted data unit using the first location parity key, the encrypting to generate a ciphertext;

truncating the ciphertext to generate a truncated ciphertext; and

masking the first encrypted set of parity bits with the truncated ciphertext, the masking to generate the first set of parity bits.

2. The data storage system of claim 1 :

wherein the encryption system is to generate a master parity key; and

wherein the encryption system is to generate the first location parity key for the first storage location based at least in part on the master parity key and the first address.

3. The data storage system of claim 2 , wherein the encryption system is to generate the first location parity key after the storage controller receives the read request.

4. The data storage system of claim 2 , wherein the encryption system is to generate the master parity key based at least in part on a data unit encryption key for decrypting the first encrypted data unit and a value generated by a random number generator.

5. The data storage system of claim 1 :

wherein the storage controller is also to receive a write request directed to a second storage location of the data storage device associated with a second address, wherein the write request comprises a second data unit and second address data indicating the second address; and

wherein the encryption system is to encrypt a second set of parity bits for the second data unit based at least in part on a second location parity key for the second address.

6. The data storage system of claim 5 :

wherein the encryption system is to generate a master parity key; and

wherein the encryption system is to generate the second location parity key based at least in part on the master parity key and the second address.

7. The data storage system of claim 5 , wherein the encryption system is to encrypt the second set of parity bits by performing operations comprising:

encrypting a block of a second encrypted data unit based at least in part on the second location parity key to generate a ciphertext;

truncating the ciphertext to generate a truncated ciphertext; and

masking the second set of parity bits with the truncated ciphertext to generate an encrypted second set of parity bits.

8. The data storage system of claim 1 , wherein the data storage device comprises a memory device, and wherein the first set of parity bits comprises a set of Error Correction Code (ECC) bits.

9. A method for securing a data storage device, comprising:

receiving, by a storage controller, a read request directed to a data storage device, wherein the read request comprises address data indicating a first address of a first storage location at the data storage device;

requesting, by the storage controller, from the data storage device a first encrypted data unit stored at the first storage location and a first encrypted set of parity bits associated with the first storage location; and

decrypting, by an encryption system, the first encrypted set of parity bits to generate a first set of parity bits based at least in part on a first location parity key for the first address, the decrypting comprising:

encrypting a block of the first encrypted data unit using the first location parity key, the encrypting to generate a ciphertext;

truncating the ciphertext to generate a truncated ciphertext; and

masking the first encrypted set of parity bits with the truncated ciphertext, the masking to generate the first set of parity bits.

10. The method of claim 9 , further comprising decrypting the first encrypted data unit based at least in part on a data unit encryption key.

11. The method of claim 9 , further comprising:

generating a master parity key; and

generating the first location parity key for the first storage location based at least in part on the master parity key and the first address.

12. The method of claim 11 , further comprising generating the first location parity key after the storage controller receives the read request.

13. The method of claim 11 , further comprising generating the master parity key based at least in part on a data unit encryption key for decrypting the first encrypted data unit and a value generated by a random number generator.

14. The method of claim 9 , further comprising:

receiving a write request directed to a second storage location of the data storage device associated with a second address, wherein the write request comprises a second data unit and second address data indicating the second address; and

encrypting a second set of parity bits for the second data unit based at least in part on a second location parity key for the second address.

15. The method of claim 14 , further comprising:

generating a master parity key; and

generating the second location parity key based at least in part on the master parity key and the second address.

16. The method of claim 14 , wherein encrypting the second set of parity bits comprises:

encrypting a block of a second encrypted data unit based at least in part on the second location parity key to generate a ciphertext;

truncating the ciphertext to generate a truncated ciphertext; and

masking the second set of parity bits with the truncated ciphertext to generate an encrypted second set of parity bits.

17. At least one non-transitory computer readable medium comprising instructions thereon that, when executed by at least one processor, cause the at least one processor to perform operations comprising:

receiving a read request directed to a data storage device, wherein the read request comprises address data indicating a first address of a first storage location at the data storage device;

requesting from the data storage device a first encrypted data unit stored at the first storage location and a first encrypted set of parity bits associated with the first storage location; and

decrypting the first encrypted set of parity bits to generate a first set of parity bits based at least in part on a first location parity key for the first address, the decrypting comprising:

encrypting a block of the first encrypted data unit using the first location parity key, the encrypting to generate a ciphertext;

truncating the ciphertext to generate a truncated ciphertext; and

masking the first encrypted set of parity bits with the truncated ciphertext, the masking to generate the first set of parity bits.

18. The at least one non-transitory computer readable medium of claim 17 , the operations further comprising:

generating a master parity key; and

generating the first location parity key for the first storage location based at least in part on the master parity key and the first address.

19. The at least one non-transitory computer readable medium of claim 18 , the operations further comprising generating the first location parity key after the read request is received.

20. The at least one non-transitory computer readable medium of claim 18 , the operations further comprising generating the master parity key based at least in part on a data unit encryption key for decrypting the first encrypted data unit and a value generated by a random number generator.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2025
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP. (DBA SOLIDIGM)
Reel/Frame 072792/0414 →
Continuity (3)
Continuation 16520940 · Jul 24, 2019
Continuation 15391229 · Dec 27, 2016
Related Publication 20210182217A1 · Jun 17, 2021