IP Library Granted Patent US 11,514,174
Granted Patent B2
US 11,514,174 · App. 16/255,142 · Granted Nov 29, 2022

Memory devices with cryptographic components

Inventors: Antonino Mondello (Messina, IT); Carmelo Condemi (San Giovanni la Punta, IT); Francesco Tomaiuolo (Acireale, IT); Tommaso Zerilli (Mascalucia, IT)
Assignee: Micron Technology, Inc.
G06F21/602G06F11/1068G06F21/64G06F21/79G11C29/52H03M13/2906H04L9/3242H04L9/3278
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,514,174
App. No.
16/255,142
Granted
Nov 29, 2022
Kind
B2
Abstract

An apparatus, such as a memory system (e.g., a NAND memory system), can have a controller with a first error correction code component and a memory device (e.g., a NAND memory device) coupled to the controller. The memory device can have an array of memory cells, a second error correction code component coupled to the array and configured to correct data from the array, and a cryptographic component coupled to receive the corrected data from the second error correction code component.

Claims (72)

1. An apparatus, comprising:

a first controller comprising a first error correction code component; and

a memory device coupled to the first controller, the memory device comprising:

an array of memory cells;

a second error correction code component coupled to the array and configured to correct data from the array;

a cryptographic component coupled to receive the corrected data from the second error correction code component;

a second controller; and

a command user interface coupled to the second controller, wherein the command user interface is configured to activate the second controller in response to receiving a command from the first controller.

2. The apparatus of claim 1 , wherein

the first error correction code component is configured to correct the data from the array using a first error correction code; and

the second error correction code component is configured to correct the data from the array using a second error correction code.

3. The apparatus of claim 2 , wherein

the first error correction code component is configured to calculate the first error correction code; and

the second error correction code component is configured to calculate the second error correction code.

4. The apparatus of claim 1 , wherein

the cryptographic component is configured to calculate a first cryptographic code from the received data; and

the memory device is configured to compare the first cryptographic code to a second cryptographic code stored in the array.

5. The apparatus of claim 4 , wherein the first and second cryptographic codes are based on a secret key stored in the array.

6. The apparatus of claim 4 , wherein the first and second cryptographic codes are first and second cryptographic hashes.

7. The apparatus of claim 1 , wherein

the first controller is an external controller external to the memory device and is coupled to the memory device via a memory interface and to a host via a host interface; and

the second controller is an internal controller of the memory device.

8. The apparatus of claim 7 , wherein the memory device comprises a monotonic counter coupled to the internal controller.

9. The apparatus of claim 8 , wherein the internal controller is configured to compare a monotonic count from the monotonic counter to a monotonic count in a command received from the first controller to determine a freshness of the command.

10. The apparatus of claim 7 , wherein the memory device comprises a physical unclonable function component coupled to the internal controller.

11. The apparatus of claim 1 , wherein the cryptographic component comprises a SHA component coupled to a hash message authentication code component.

12. The apparatus of claim 11 , wherein the cryptographic component further comprises control logic coupled to the SHA component and to the hash message authentication code component.

13. The apparatus of claim 1 , wherein the memory device is a NAND memory device.

14. The apparatus of claim 1 , wherein cryptographic component is configured to receive data from the first controller without correcting the data with the second error correction code component; and

calculate a cryptographic code from the data.

15. A memory device, comprising:

an array of memory cells comprising a portion corresponding to a secure partition;

a buffer coupled to the array and configured to receive a data structure, from the secure partition, comprising plurality of respective segments of data, wherein each of the respective segments comprises respective user data and respective first error correction code data calculated externally to the memory device;

an error correction code component coupled to the buffer and configured to receive the respective user data from the data structure in the buffer, to calculate respective second error correction code data from the respective user data, and to add the respective second error correction code data to the respective segments of the data structure;

a controller configured to write the data structure from the buffer to the secure partition after the respective second error correction code data is added to the respective segments of the data structure; and

a cryptographic component coupled to the second error correction code component;

wherein the error correction code component is configured to correct the respective user data using the respective second error correction code data and to send the corrected respective user data to the cryptographic component; and

wherein the controller is a first controller, the memory device further comprising a command user interface coupled to the first controller, wherein the command user interface is configured to activate the first controller in response to receiving a command from a second controller that is external to the memory device.

16. The memory device of claim 15 , wherein the first controller is configured to authenticate the command, in response to being activated, by determining a freshness of the command;

causing the cryptographic component to calculate a signature in response to determining that the command is fresh; and

comparing the calculated signature to a signature in the command.

17. The memory device of claim 16 wherein the calculated signature is a hash message authentication code based on a key and a payload of the command received at the cryptographic component from the first controller.

18. The memory device of claim 17 , wherein the key is a secret key stored in the array.

19. The memory device of claim 17 , wherein the key is a session key that is a message authentication code of a secret key stored in the array and a monotonic count of a monotonic counter of the memory device.

20. A method, comprising:

reading data from a memory array of a memory device, the data comprising user data, first error correction data calculated by an external controller from the user data, and second error correction data calculated by an error correction code component of the memory device from the user data, wherein reading the data from the memory array comprises reading the data from a portion of the memory array corresponding to a first logical partition;

correcting, by the error correction code component, the user data with the second error correction data;

sending the corrected user data from the error correction code component to a cryptographic component of the memory device;

performing, by the cryptographic component, cryptographic operations on the corrected user data; wherein performing, by the cryptographic component, cryptographic operations on the corrected user data comprises calculating a cryptographic measure from the corrected data by the cryptographic component;

comparing the calculated cryptographic measure to a golden measure stored in the memory array; and

in response to the calculated cryptographic measure not matching the golden measure, replacing the first logical partition of data with a second logical partition of data.

21. The method of claim 20 , further comprising, before correcting the user data with the second error correction data:

sending the data from memory array to a data selector of the memory device;

selecting, by the data selector, the user data and the second error correction data from the data; and

sending the user data and the second error correction data from the data selector to the error correction code component.

22. The method of claim 20 , further comprising verifying a cryptographic signature of a command received from the external controller by comparing the cryptographic signature of the command to a cryptographic signature calculated, by the cryptographic component, from the command and a cryptographic key stored in the array.

23. A method, comprising:

reading data from a memory array of a memory device, the data comprising user data, first error correction data calculated by an external controller from the user data, and second error correction data calculated by an error correction code component of the memory device from the user data;

correcting, by the error correction code component, the user data with the second error correction data;

sending the corrected user data from the error correction code component to a cryptographic component of the memory device; and

performing, by the cryptographic component, cryptographic operations on the corrected user data;

in response to the error correction code component failing to correct the user data with the second error correction data:

rereading, by an internal controller of the memory device, the data from the memory array; and

correcting, by the error correction code component, the user data of the reread data with the second error correction data of the reread data; or

reading, by the external controller, the data from the array; and

correcting, by the external controller, the user data of the data read by the external controller with the first error correction data.

24. A method, comprising:

reading data from a memory array of a memory device, the data comprising user data, first error correction data calculated by an external controller from the user data, and second error correction data calculated by an error correction code component of the memory device from the user data;

correcting, by the error correction code component, the user data with the second error correction data;

sending the corrected user data from the error correction code component to a cryptographic component of the memory device;

performing, by the cryptographic component, cryptographic operations on the corrected user data; and

verifying a cryptographic signature of a command received from the external controller by comparing the cryptographic signature of the command to a cryptographic signature calculated, by the cryptographic component, from the command and a cryptographic key stored in the array.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Nov 15, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 051041/0317 →
RELEASE OF SECURITY INTEREST Recorded Oct 14, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050724/0392 →
SUPPLEMENT NO. 12 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 048948/0677 →
SUPPLEMENT NO. 3 TO PATENT SECURITY AGREEMENT Recorded Apr 19, 2019
From: MICRON TECHNOLOGY, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 048951/0902 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2019
From: MONDELLO, ANTONINO; CONDEMI, CARMELO; TOMAIUOLO, FRANCESCO; ZERILLI, TOMMASO
To: MICRON TECHNOLOGY, INC.
Reel/Frame 048109/0975 →