IP Library › Granted Patent US 11,960,769
Granted Patent B2
US 11,960,769 · App. 17/824,226 · Granted Apr 16, 2024

High performance secure read in secure memory providing a continuous output of encrypted information and specific context

Inventors: Chia-Jung Chen (Hsinchu, TW); Chin-Hung Chang (Tainan, TW); Ken-Hui Chen (Hsinchu, TW)
Assignee: MACRONIX INTERNATIONAL CO., LTD.
G06F3/0659G06F3/0622G06F3/0679
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,960,769
App. No.
17/824,226
Granted
Apr 16, 2024
Kind
B2
Abstract

A memory device includes a command decoder that implements security logic to detect a command sequence to read a security region of a memory array with continuous encrypted data and to output/input specific contexts for the data. Output/input of specific contexts can be during a dummy cycle to achieve greater performance. A host interfacing can, for example, execute a single command to both get the encrypted data and specific contexts that were used to encrypt the data. Our technology can implement transferring data on the system bus in ciphertext and encrypted by a different Nonce or a different session key than used in a previous transfer operation. In this way, data will be represented with different ciphertext on the bus at different sessions; thereby defending against a replay attack.

Claims (49)

1. A memory device, comprising:

a memory array including a plurality of bit lines;

an input/output interface for I/O data units;

data path circuits connected between the memory array and the input/output interface;

circuitry to maintain a specific context used in conjunction with encrypting information;

a security engine that includes circuitry to encrypt information retrieved from the memory array using the specific context and output the information as encrypted along with the specific context; and

a command decoder circuit, implementing logic to determine, responsive to commands received at the input/output interface, that a received command sequence received from a host includes a command code field and a payload, wherein the command code field includes an op code indicating a continuous secure memory read command, in which information read from the memory array is encrypted by the security engine of the memory device prior to output, and wherein the payload includes: an address pointing to at least one address of a plurality of addresses indicating a security region within the memory array from which information is to be read; and a configurable dummy cycle in which the specific context is to be output; and to trigger performing, substantially contemporaneously:

(i) outputting, along with the specific context, a first set of information read from the memory array and encrypted by the security engine;

(ii) performing encryption upon a second set of information read from the memory array through the security engine; and

(iii) reading a third set of information from the memory array into a buffer to be encrypted by the security engine; and

wherein activities (i)-(iii) are repeated until a specified end of a secure area of addresses in the memory array is reached; thereby providing a continuous output of encrypted information along with the specific context.

2. The memory device as recited by claim 1 , wherein the configurable dummy cycle is configured using one or more of a Serial Flash Discoverable Parameter Structure (SFDP).

3. The memory device as recited by claim 1 , wherein the configurable dummy cycle is configured using one or more of a Read only information array that configured by factory.

4. The memory device as recited by claim 1 , wherein the configurable dummy cycle is configured using one or more of a configuration array that allows a user to define.

5. The memory device as recited by claim 1 , wherein the specific context includes one or more of:

a nonce, a dummy cycle monotonic counter, a fixed value, a unique ID, and any combination thereof.

6. The memory device as recited by claim 5 , wherein the dummy cycle monotonic counter is used to uniquely identify a communication session; thereby preventing a replay attack.

7. The memory device as recited by claim 1 the command decoder circuit further implementing logic to perform:

detecting in a received command sequence including: a command code field and a payload, that the command code field includes an op code indicating an operation to receive an input of the specific context; and

detecting that the payload includes (i) a dummy cycle containing specific context information; wherein the specific context is stored in the memory device for use by the security engine in encrypting information read from the memory array.

8. The memory device as recited by claim 1 , wherein circuitry to maintain a specific context includes:

circuitry to generate a pseudo-random number.

9. The memory device as recited by claim 1 , wherein circuitry to maintain a specific context includes:

circuitry to generate a unique identifier (ID).

10. The memory device as recited by claim 1 , wherein circuitry to maintain a specific context includes:

circuitry to generate a physical unclonable function (PUF) code.

11. The memory device as recited by claim 1 , wherein the input/output interface for I/O data units implements a Serial/Parallel Interface IO of at least one of 1IO, 2IO, 4IO, 8IO, 1I2O, 1I4O, and 1I8O.

12. A memory device as recited by claim 1 , the security engine further including circuitry to perform:

Advanced Encryption Standard Counter (AES-CTR) block mode encryption of data read from the memory array prior to output.

13. A memory device as recited by claim 1 , the security engine further including circuitry to perform:

Galois/Counter Mode (GCM) block mode encryption of data read from the memory array prior to output.

14. A method for performing a high performance secure read of information from a memory array of a memory chip, including:

detecting by the memory chip that a command received from a host includes a command code field and a payload, wherein the command code field includes an op code indicating a continuous secure memory read command, in which information read from the memory array is encrypted by a security engine prior to output, and wherein the payload includes: an address pointing to at least one address of a plurality of addresses indicating a security region within the memory array from which information is to be read; and a configurable dummy cycle in which a specific context is to be output; and triggering performing, substantially contemporaneously:

(i) outputting a first set of information read from the memory array and encrypted by an on-chip security engine, along with the specific context used to encrypt the first set of information;

(ii) performing encryption upon a second set of information read from the memory array through the on-chip security engine; and

(iii) reading a third set of information from the memory array into a buffer to be encrypted by the on-chip security engine; and

repeating activities (i)-(iii) until a specified end of a secure area of addresses in the memory array is reached; thereby providing a continuous output of encrypted information along with the specific context.

15. A method for performing a high performance secure read of information from a memory array of a memory chip, including:

detecting by the memory chip that a first command received from a host includes a secure memory read request command; and in response triggering performing of operations including:

inputting a specific context to be used to encrypt information to be read out from the memory array; and

detecting by the memory chip that a second command received from a host includes a command code field and a payload, wherein the command code field includes an op code indicating a continuous secure memory read response command, in which information read from the memory array is encrypted by a security engine prior to output, and wherein the payload includes: an address pointing to at least one address of a plurality of addresses indicating a security region within the memory array from which information is to be read; and a configurable dummy cycle in which the specific context is to be output; and in response triggering performing of operations to output encrypted data continuously, including substantially contemporaneously:

(i) outputting a first set of information read from the memory array and encrypted by an on-chip security engine, using the specific context;

(ii) using the on-chip security engine to perform encryption upon a second set of information read from the memory array; and

(iii) reading a third set of information from the memory array into a buffer to be encrypted by the on-chip security engine.

16. The method of claim 15 , further including outputting a MAC along with the encrypted data being output continuously.

17. The method of claim 15 , wherein activities (i)-(iii) are repeated until a specified end of a secure area of addresses in the memory array is reached; thereby providing a continuous output of encrypted information.

18. The method of claim 15 , wherein the configurable dummy cycle is configured using one or more of a Serial Flash Discoverable Parameter Structure (SFDP).

19. The method of claim 15 , wherein the configurable dummy cycle is configured using one or more of a Read only information array that configured by factory.

20. The method of claim 15 , wherein the configurable dummy cycle is configured using one or more of a configuration array that allows a user to define.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2022
From: CHEN, CHIA-JUNG; CHANG, CHIN-HUNG; CHEN, KEN-HUI
To: MACRONIX INTERNATIONAL CO., LTD.
Reel/Frame 060013/0444 →
Continuity (2)
Provisional Application 63309649 · Feb 14, 2022
Related Publication 20230315340A1 · Oct 5, 2023
Cited By (2)
US 12,309,256 US 12,675,584