# US 12,001,347 B2 · Memory storage device and method

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,001,347 B2
- Document ID: US12001347B2
- Status: Granted
- Kind: B2
- Application number: 17/653,382
- Filed: 2022-03-03
- Published: 2022-10-13
- Granted: 2024-06-04
- Earliest claimed: 2021-04-08
- Assignees: Proton World International N.V.
- Applicants: Proton World International N.V.
- Inventors: Michael Peeters
- Web page: https://patentgrep.com/patent/US12001347B2

## CPC

- G06F 12/1408: {by using cryptography (for digital transmission H04L9/00)}
- H04L 9/004: {for fault attacks}
- G06F 12/0238: {Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory}
- G06F 12/1441: {for a range}
- G06F 12/1458: {by checking the subject access rights}
- G06F 21/6209: {to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself}
- G06F 2212/1052: Security improvement
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The present disclosure relates to secure storage, in a non-volatile memory, of initial data encrypted using a second data, including selecting a pointer aimed at an initial address of a memory cell of an initial part of the non-volatile memory, and encrypting the pointer using the second data; and-storing the encrypted pointer in the non-volatile memory.

## Claims

### Claim 1

A method for securely storing information, the method comprising:
selecting a pointer aiming towards an initial address of a memory cell of an initial part of a non-volatile memory;
reading a first data stored in the memory cell at the initial address;
encrypting the first data using a second data;
encrypting secret data using the encrypted first data;
encrypting the pointer, including the initial address, using the second data; and
storing the encrypted secret data and the encrypted pointer in of the non-volatile memory.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the pointer is randomly selected.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the pointer is selected from a predefined group of pointers aiming at memory cell addresses of the initial part of the non-volatile memory.

### Claim 4 (depends on 1)

The method according to claim 1, wherein the encrypted secret data and the encrypted pointer are stored outside of the initial part the non-volatile memory.

### Claim 5 (depends on 1)

The method according to claim 1, wherein the first data and the secret data are encrypted using a same type of encryption function.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the first data and the pointer are encrypted using a same encryption function.

### Claim 7 (depends on 1)

The method according to claim 1, wherein the initial part is a non-rewritable part of the non-volatile memory.

### Claim 8

A method for reading information securely stored in a non-volatile memory, the method comprising:
sending a second data;
reading an encrypted pointer, including an initial address of a memory cell of an initial part of the non-volatile memory, the encrypted pointer being stored in the non-volatile memory;
decrypting the encrypted pointer using the second data;
verifying that the decrypted pointer points to the initial address of the memory cell of the initial part of the non-volatile memory;
reading a first data stored in the memory cell at the initial address;
encrypting the first data using the second data;
reading encrypted secret data stored in the non-volatile memory; and
decrypting the encrypted secret data using the encrypted first data.

### Claim 9 (depends on 8)

The method according to claim 8, wherein the encrypted pointer is a randomly-selected pointer.

### Claim 10 (depends on 8)

The method according to claim 8, wherein the encrypted pointer is from a predefined group of pointers aiming at memory cell addresses of the initial part of the non-volatile memory.

### Claim 11 (depends on 8)

The method according to claim 8, wherein the encrypted secret data is stored in a second memory cell having a second address, and not belonging to the initial part of the non-volatile memory.

### Claim 12 (depends on 8)

The method according to claim 8, wherein the initial part is a non-rewritable part of the non-volatile memory.

### Claim 13

An electronic system configured to securely store information, the electronic system comprising:
a non-volatile memory;
a non-transitory memory comprising instructions; and
a processor in communication with the non-transitory memory, wherein the processor executes the instructions to:
select a pointer aiming towards an initial address of a memory cell of an initial part of the non-volatile memory;
read a first data stored in the memory cell at the initial address;
encrypt the first data using a second data;
encrypt secret data using the encrypted first data;
encrypt the pointer, including the initial address, using the second data; and
store the encrypted secret data and the encrypted pointer in the non-volatile memory.

### Claim 14 (depends on 13)

The electronic system according to claim 13, wherein the pointer is randomly selected.

### Claim 15 (depends on 13)

The electronic system according to claim 13, wherein the pointer is selected from a predefined group of pointers aiming at memory cell addresses of the initial part of the non-volatile memory.

### Claim 16 (depends on 13)

The electronic system according to claim 13, wherein the encrypted secret data and the encrypted pointer are stored outside of the initial part the non-volatile memory.

### Claim 17

An electronic system configured to read securely stored information, the electronic system comprising:
a non-volatile memory;
a non-transitory memory comprising instructions; and
a processor in communication with the non-transitory memory, wherein the processor executes the instructions to:
send a second data;
read an encrypted pointer, including an initial address of a memory cell of an initial part of the non-volatile memory, wherein the encrypted pointer is stored in the non-volatile memory;
decrypt the encrypted pointer using the second data;
verify that the decrypted pointer points to the initial address of the memory cell of the initial part of the non-volatile memory;
read a first data stored in the memory cell at the initial address;
encrypt the first data using the second data;
read encrypted secret data stored in the non-volatile memory; and
decrypt the encrypted secret data using the encrypted first data.

### Claim 18 (depends on 17)

The electronic system according to claim 17, wherein the encrypted pointer is a randomly-selected pointer.

### Claim 19 (depends on 17)

The electronic system according to claim 17, wherein the encrypted pointer is from a predefined group of pointers aiming at memory cell addresses of the initial part of the non-volatile memory.

### Claim 20 (depends on 17)

The electronic system according to claim 17, wherein the encrypted secret data is stored in a second memory cell having a second address, and not belonging to the initial part of the non-volatile memory.
