IP Library Granted Patent US 11,271,720
Granted Patent B2
US 11,271,720 · App. 16/363,100 · Granted Mar 8, 2022

Validating data stored in memory using cryptographic hashes

Inventors: Alberto Troia (Munich, DE); Antonino Mondello (Messina, IT)
Assignee: Micron Technology, Inc.
H04L9/0643G06F3/0604G06F3/0619G06F3/0626G06F3/0659G06F3/0673G06F21/602
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,271,720
App. No.
16/363,100
Granted
Mar 8, 2022
Kind
B2
Abstract

The present disclosure includes apparatuses, methods, and systems for validating data stored in memory using cryptographic hashes. An embodiment includes a memory, and circuitry configured to divide the memory into a plurality of segments, wherein each respective segment is associated with a different cryptographic hash, validate, during a powering of the memory, data stored in each respective one of a first number of the plurality of segments using the cryptographic hash associated with that respective segment, and validate, after the powering of the memory, data stored in a second number of the plurality of segments, data stored in each respective one of a second number of the plurality of segments using the cryptographic hash associated with that respective segment.

Claims (67)

1. An apparatus, comprising:

a memory; and

circuitry configured to:

divide the memory into a plurality of segments, wherein each respective segment is associated with a different cryptographic hash;

validate, during a powering of the memory, data stored in each respective one of a first number of the plurality of segments using the cryptographic hash associated with that respective segment; and

validate, after the powering of the memory, data stored in a second number of the plurality of segments, data stored in each respective one of a second number of the plurality of segments using the cryptographic hash associated with that respective segment.

2. The apparatus of claim 1 , wherein the circuitry is configured to validate the data stored in each respective one of the first number of the segments by:

generating a different run-time cryptographic hash for the data stored in each respective one of the first number of the segments; and

comparing the run-time cryptographic hash generated for the data stored in each respective segment to the cryptographic hash associated with that respective segment.

3. The apparatus of claim 1 , wherein the circuitry is configured to validate the data stored in each respective one of the second number of the segments by:

generating a different run-time cryptographic hash for the data stored in each respective one of the second number of the segments; and

comparing the run-time cryptographic hash generated for the data stored in each respective segment to the cryptographic hash associated with that respective segment.

4. The apparatus of claim 1 , wherein the circuitry is configured to:

send, after the powering of the memory, the data stored in each respective one of the first number of the segments to a host upon validating the data stored in that respective one of the first number of the segments; and

send the data stored in each respective one of the second number of the segments to the host upon validating the data stored in that respective one of the second number of the segments.

5. The apparatus of claim 1 , wherein the memory comprises a secure array of memory cells.

6. The apparatus of claim 5 , wherein the circuitry includes:

a register configured to define an address of the secure array; and

a register configured to define a size of the secure array.

7. The apparatus of claim 1 , wherein the circuitry includes a register configured to store the cryptographic hash associated with each respective segment.

8. The apparatus of claim 7 , wherein the register is inaccessible to a user of the memory.

9. A method of operating memory, comprising:

dividing a memory into a plurality of segments, wherein each respective segment is associated with a different cryptographic hash;

generating, during a powering of the memory, a different run-time cryptographic hash for data stored in each respective one of a first number of the plurality of segments;

validating, during the powering of the memory, the data stored in each respective one of the first number of the plurality of segments by comparing the run-time cryptographic hash generated for the data stored in that respective segment to the cryptographic hash associated with that respective segment;

generating, after the powering of the memory, a different run-time cryptographic hash for data stored in each respective one of a second number of the plurality of segments; and

validating, after the powering of the memory, the data stored in each respective one of the second number of the plurality of segments by comparing the run-time cryptographic hash generated for the data stored in that respective segment to the cryptographic hash associated with that respective segment.

10. The method of claim 9 , wherein the method includes:

validating the data stored in each respective one of the first number of the plurality of segments upon the comparison for the first number of the plurality of segments indicating the run-time cryptographic hash generated for the data stored in that respective segment matches the cryptographic hash associated with that respective segment; and

validating the data stored in each respective one of the second number of the plurality of segments upon the comparison for the second number of the plurality of segments indicating the run-time cryptographic hash generated for the data stored in that respective segment matches the cryptographic hash associated with that respective segment.

11. The method of claim 9 , wherein the method includes:

remediating the data stored in each respective one of the first number of the plurality of segments upon the comparison for the first number of the plurality of segments indicating the run-time cryptographic hash generated for the data stored in that respective segment does not match the cryptographic hash associated with that respective segment; and

remediating the data stored in each respective one of the second number of the plurality of segments upon the comparison for the second number of the plurality of segments indicating the run-time cryptographic hash generated for the data stored in that respective segment does not match the cryptographic hash associated with that respective segment.

12. The method of claim 11 , wherein:

remediating the data stored in each respective one of the first number of the plurality of segments comprises recovering the data from the memory; and

remediating the data stored in each respective one of the second number of the plurality of segments comprises recovering the data from the memory.

13. A method of operating memory, comprising:

dividing a memory into a plurality of segments, wherein each respective segment is associated with a different cryptographic hash;

validating, during a powering of the memory, data stored in each respective one of a first number of the plurality of segments using the cryptographic hash associated with that respective segment;

sending, after the powering of the memory, the data stored in each respective one of the first number of the plurality of segments to a host upon validating the data stored in that respective one of the first number of the plurality of segments; and

validating, while sending the data stored in each respective one of the first number of the plurality of segments to the host, data stored in each respective one of a second number of the plurality of segments using the cryptographic hash associated with that respective segment.

14. The method of claim 13 , wherein the method includes sending, after sending the data stored in each respective one of the first number of the plurality of segments to the host, the data stored in each respective one of the second number of the plurality of segments to the host upon validating the data stored in that respective one of the second number of the plurality of segments.

15. The method of claim 13 , wherein the method includes generating the cryptographic hash associated with each respective segment using authenticated commands received from the host.

16. The method of claim 13 , wherein the cryptographic hash associated with each respective segment comprises a SHA-256 cryptographic hash.

17. A system, comprising:

a memory device having a memory, wherein:

the memory is divided into a plurality of segments, wherein each respective segment is associated with a different cryptographic hash; and

the memory device is configured to:

validate, during a powering of the memory, data stored in each respective one of a first number of the plurality of segments using the cryptographic hash associated with that respective segment; and

validate, after the powering of the memory, data stored in each respective one of a second number of the plurality of segments using the cryptographic hash associated with that respective segment; and

a host, wherein the host is configured to:

receive, while the memory device is validating the data stored in the second number of the plurality of segments, the data stored in each respective one of the first number of the plurality of segments from the memory device upon the memory device validating the data stored in that respective one of the first number of the plurality of segments; and

receive, after receiving the data stored in each respective one of the first number of the plurality of segments from the memory device, the data stored in each respective one of the second number of the plurality of segments from the memory device upon the memory device validating the data stored in that respective one of the second number of the plurality of segments.

18. The system of claim 17 , wherein the memory device includes:

a register configured to define an address of each respective one of the plurality of segments; and

a register configured to define a size of each respective one of the plurality of segments.

19. The system of claim 17 , wherein the memory device includes:

a register configured to provide an indication of a status of the validation of the data stored in each respective one of the plurality of segments; and

a register configured to provide an indication of a result of the validation of the data stored in each respective one of the plurality of segments.

20. The system of claim 17 , wherein the memory device includes:

a register configured to provide an indication of whether a remediation of the data stored in each respective one of the plurality of segments is allowed;

a register configured to define an address in the memory from which the data stored in each respective one of the plurality of segments can be recovered during the remediation; and

a register configured to provide an indication of a result of the remediation of the data stored in each respective one of the plurality of segments.

21. The system of claim 17 , wherein the first number of the plurality of segments comprise a particular quantity of segments defined by the host.

22. The system of claim 21 , wherein the memory device includes a register configured to store the particular quantity of segments.

23. The system of claim 17 , wherein the first number of the plurality of segments comprise a quantity of segments that can be validated by the memory device in a particular amount of time.

24. The system of claim 23 , wherein the memory device includes a register configured to store the particular amount of time.

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 Mar 25, 2019
From: TROIA, ALBERTO; MONDELLO, ANTONINO
To: MICRON TECHNOLOGY, INC.
Reel/Frame 048686/0415 →
Continuity (1)
Related Publication 20200313861A1 · Oct 1, 2020