IP Library Granted Patent US 11,093,588
Granted Patent B2
US 11,093,588 · App. 15/633,045 · Granted Aug 17, 2021

Memory system including data obfuscation

Inventors: Donald M. Morgan (Meridian, ID); Joseph C. Sher (Meridian, ID)
Assignee: Micron Technology, Inc.
G06F21/14G06F12/145G06F21/6245
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,093,588
App. No.
15/633,045
Granted
Aug 17, 2021
Kind
B2
Abstract

Data obfuscation is generally discussed herein. In one or more embodiments, a memory circuit can include a storage portion including entries with corresponding addresses, one or more of the entries configured to include data stored thereon, and processing circuitry to read first data from a first entry of the entries, alter the first data by at least one of: (1) flipping one or more bits of the first data, (2) scrambling two or more bits of the first data, and (3) altering an address of the first data, and write the altered first data to the storage portion.

Claims (66)

1. A memory structure comprising:

a storage portion including data entries with corresponding addresses stored in a first area of the memory structure and obfuscation data stored in a second area of the memory structure, the obfuscation data including multiple selection bits and an obfuscation flag; and

processing circuitry including one or more processors, the processing circuitry configured to:

select a first data entry of the data entries, based on the obfuscation flag within the obfuscation data;

read first data from the first data entry of the data entries, the first data comprising a number of bits;

alter a first portion of the number of bits of the first data using the multiple selection bits in the obfuscation data to generate altered first data, the multiple selection bits stored in the second area of the memory structure indicating which of the number of bits the first data stored in the first area of the memory structure will be altered;

correct a detected error in the first data, the detected error being at a second portion of the number of bits of the first data, the first portion of the number of bits and the second portion of the number of bits not having any bits in common not; and

after altering the first portion of the number of bits and correcting the detected error, write the first data to the storage portion.

2. The memory structure of claim 1 , wherein the storage portion further includes a marker indicating a memory location of the first data entry, and wherein the obfuscation flag indicates whether data located at, before, or after the memory location is altered or unaltered.

3. The memory structure of claim 1 , wherein alteration of the first data includes the processing circuitry to flip the one or more bits of the first data and the processing circuitry includes a latch with the obfuscation data stored thereon, the multiple selection bits within the obfuscation data indicating which bit of the one or more bits is to be flipped.

4. The memory structure of claim 3 , wherein the latch is a volatile storage latch that loses the obfuscation data stored thereon in response to a reset or power down.

5. The memory structure of claim 3 , wherein the correcting of the detected error is prior to the alteration of the first data.

6. The memory structure of claim 5 , wherein the processing circuitry includes a multiplexer for each bit of the first data, the multiplexer including a first input, a second input, and a select input, the first input electrically coupled to an un-modified version of a corresponding bit and the second input electrically coupled to a flipped version of the corresponding bit, and the select input electrically coupled to a bit of the selection bits in the obfuscation data from the latch that indicates whether the corresponding bit is to be flipped.

7. The memory structure of claim 1 , wherein the processing circuitry further includes error correction circuitry and is also configured to, prior to alteration of the one or more bits of the first data, determine that the detected error does not correspond to a bit to be flipped as indicated by the obfuscation data.

8. The memory structure of claim 2 , wherein:

the storage portion includes a lookup table including respective entries indicating how the one or more bits of the first data are to be altered;

the processing circuitry further includes random number generator circuitry to produce a random number that points to an entry in the lookup table; and

alteration of the one or more bits of the first data includes the processing circuitry further to scramble the one or more bits of the first data based on the entry in the lookup table to which the random number points.

9. The memory structure of claim 1 , wherein the storage portion is volatile.

10. The memory structure of claim 9 , wherein the processing circuitry is further configured to:

perform a periodic data refresh operation on one or more entries of the storage portion; and

read the first data from the first data entry, alter the first data, and write the altered first data to the first data entry at or around a time of the periodic data refresh.

11. The memory structure of claim 1 , wherein the processing circuitry is further to:

scramble an address corresponding to the first data entry to generate a scrambled address; and

write the first data to the scrambled address.

12. A method of operating a memory device, the method comprising:

writing data to a storage portion of the memory device, the storage portion including data entries with corresponding addresses stored in a first area of the memory device and obfuscation data stored in a second area of the memory device, the obfuscation data including multiple selection bits and an obfuscation flag;

selecting, by processing circuitry of the memory device, a first data entry of the data entries, based on the obfuscation flag within the obfuscation data;

reading, by the processing circuitry, first data from the first data entry of the data entries, the first data comprising a number of bits;

altering, by the processing circuitry, a first portion of the number of bits of the first data using the multiple selection bits in the obfuscation data, to generate altered first data, the multiple selection bits stored in the second area of the memory device indicating which of the number of bits of the first data stored in the first area of the memory device will be altered;

correcting a detected error in the first data, the detected error being at a second portion of the number of bits of the first data, the first portion of the number of bits and the second portion of the number of bits not having any bits in common; and

after altering the first portion of the number of bits and correcting the detected error, writing, by the processing circuitry, the first data to the storage portion.

13. The method of claim 12 , wherein the storage portion further includes a marker indicating a memory location of the first data entry, and wherein the obfuscation flag indicates whether data located at, before, or after the memory′ location is altered or unaltered.

14. The method of claim 12 , wherein:

the obfuscation data is stored on a latch of the processing circuitry and altering the first data includes flipping the one or more bits of the first data based on the selection bits in the obfuscation data, the multiple selection bits in the obfuscation data indicating which bit of the one or more bits is to be flipped.

15. The method of claim 14 , wherein the latch is a volatile storage latch that loses the data stored thereon in response to a reset or loss of power.

16. The method of claim 12 , wherein the correcting of the detected error is prior to the alteration of the first data.

17. A non-transitory machine-readable medium including instructions that, when executed by a machine, cause the machine to perform operations comprising:

writing data to a storage portion of a memory device, the storage portion including data entries with corresponding addresses stored in a first area of the memory device and obfuscation data stored in a second area of the memory device, the obfuscation data including multiple selection bits and an obfuscation flag;

selecting a first data entry of the data entries, based on the obfuscation flag within the obfuscation data;

reading first data from the first data entry of the data entries;

altering the first data using the multiple selection bits to create altered first data, the altering comprising at least one of: (1) flipping one or more bits of the first data, (2) scrambling two or more bits of the first data, and (3) altering an address of the first data, the multiple selection bits stored in the second area of the memory device indicating which of the one or more bits of the first data stored in the first area of the memory device will be altered;

correcting a detected error in the first data, the detected error not being at a bit of the first data that is altered using the multiple selection bits in the obfuscation data; and

writing the altered first data to the storage portion.

18. The non-transitory machine-readable medium of claim 17 , wherein:

the obfuscation data is stored on a latch of the memory device;

altering the first data includes flipping one or more bits of the first data based on the multiple selection bits in the obfuscation data, the selection bits indicating which of the one or more bits is to be flipped;

the correcting of the detected error is prior to alteration of the first data; and

the machine includes a multiplexer for each bit of the first data, the multiplexer including a first input, a second input, and a select input, the first input electrically coupled to an un-modified version of a corresponding bit and the second input electrically coupled to a flipped version of the corresponding bit, and the select input electrically coupled to a bit of the multiple selection bits in the obfuscation data from the latch that, indicates whether the corresponding bit is to be flipped.

19. The non-transitory machine-readable medium of claim 18 , the operations further comprising prior to the alteration of the first data, determine that the detected error does not correspond to a bit to be flipped as indicated by the multiple selection bits in the obfuscation data.

20. The non-transitory machine-readable medium of claim 17 , wherein:

the storage portion includes a lookup table including respective entries indicating how the bits of the first data are to be scrambled;

the operations further comprise generating, using a random number generator of the memory device, a random number that points to an entry in the lookup table; and

altering the first data includes scrambling the bits of the first data based on the entry in the lookup table to which the random number points.

21. The memory structure of claim 1 , wherein the processing circuitry is further configured to:

alter the first data by flipping one or more bits of the first data using the multiple selection bits in the obfuscation data, to generate the altered first data.

22. The memory structure of claim 1 , wherein the processing circuitry further configured to:

alter the first data by scrambling two or more bits of the first data using the multiple selection bits in the obfuscation data, to generate the altered first data.

23. The memory structure of claim 1 , wherein the processing circuitry is further configured to:

alter the first data by altering an address of the first data using the multiple selection bits in the obfuscation data, to generate the altered first data.

24. The method of claim 12 , further comprising:

altering, by the processing circuitry, the first data by at least one of the following:

flipping one or more bits of the first data, scrambling two or more bits of the first data, and altering an address of the first data using the multiple selection bits in the obfuscation data, to generate the altered first data.

25. The non-transitory machine-readable medium of claim 17 , wherein executing the instructions causes the machine to perform operations comprising:

altering the first data by at least one of the following:

flipping one or more bits of the first data, scrambling two or more bits of the first data, and altering an address of the first data using the multiple selection bits in the obfuscation data, to generate the altered first data.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050700/0535 →
RELEASE OF SECURITY INTEREST Recorded Jul 20, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 046597/0393 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2017
From: MORGAN, DONALD M; SHER, JOSEPH C
To: MICRON TECHNOLOGY, INC.
Reel/Frame 043261/0442 →
SUPPLEMENT NO. 5 TO PATENT SECURITY AGREEMENT Recorded Aug 8, 2017
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 043482/0776 →
SUPPLEMENT NO. 5 TO PATENT SECURITY AGREEMENT Recorded Aug 8, 2017
From: MICRON TECHNOLOGY, INC.
To: U.S. BANK NATIONAL ASSOCIATION
Reel/Frame 043483/0686 →