IP Library Granted Patent US 8,155,309
Granted Patent B2
US 8,155,309 · App. 12/125,737 · Granted Apr 10, 2012

Circuit arrangement with non-volatile memory module and method for en-/decrypting data in the non-volatile memory module

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 8,155,309
App. No.
12/125,737
Granted
Apr 10, 2012
Kind
B2
Abstract

An apparatus and method is provided for protecting data in a non-volatile memory by using an encryption and decryption that encrypts and decrypts the address and the data stored in the non-volatile memory using a code read only memory that stores encryption and decryption keys that are addressed by a related central processing unit at the same time data is being written or read from the non-volatile memory by the central processing unit.

Claims (83)

1. A method of retrieving encrypted data from a non-volatile memory for use by a microprocessor, the method comprising:

receiving, by a memory module interface logic circuit, an address of the non-volatile memory from a central processing unit (CPU);

generating, by the memory module interface logic circuit, a code read-only memory (ROM) address using the address of the non-volatile memory;

using the code ROM address to read a key code from a code ROM;

providing the key code to the memory module interface logic circuit;

reading, by the memory module interface logic circuit, encrypted data from the address of the non-volatile memory;

decrypting the encrypted data using the key code; and

providing the decrypted data to the CPU;

wherein reading the key code from the code ROM and reading encrypted data from the address of the non-volatile memory are performed, at least in part, in parallel.

2. The method of claim 1 , wherein the code ROM only stores key codes.

3. A method of storing encrypted data into a non-volatile memory, the method comprising:

receiving, by a memory module interface logic circuit, an address of the non-volatile memory from a central processing unit (CPU);

generating, by the memory module interface logic circuit, a code read-only memory (ROM) address using the address of the non-volatile memory;

receiving data at the memory module interface logic circuit;

using the address of the non-volatile memory to read a key code from a code ROM;

providing the key code to the memory module interface logic circuit;

encrypting, by the memory module interface logic circuit, the data into encrypted data using the key code and writing, by the memory module interface logic circuit, the encrypted data to the address of the non-volatile memory;

wherein reading the key code from the code ROM and encrypting the data into encrypted data are performed, at least in part, in parallel.

4. A microcontroller comprising a security controller circuit, the security controller circuit comprising:

a non-volatile memory configured to store encrypted data;

a memory module interface logic circuit configured to read and write encrypted data to and from the non-volatile memory;

a code read-only memory (ROM) configured to store one or more key codes; and

a code ROM module interface logic circuit configured to:

receive an address for the code ROM from the memory module interface logic circuit;

use the address to read a key code from the code ROM; and

provide the key code to the memory module interface logic circuit;

wherein the memory module interface logic circuit is further configured to:

receive, from a central processing unit (CPU), an address of the non-volatile memory and data;

generate the address for the code ROM using the address of the non-volatile memory;

encrypt the data using the key code; and

store the encrypted data at the address of the non-volatile memory;

wherein, at least in part, the code ROM module interface logic circuit is configured to read out the key code and the memory module interface logic circuit is configured to encrypt the data into encrypted data in parallel.

5. The microcontroller of claim 4 , wherein the address of the non-volatile memory is an encrypted address, and wherein the memory module interface logic circuit is further configured to:

decrypt the encrypted address using the key code; and

write the encrypted data to the decrypted address of the non-volatile memory.

6. The microcontroller of claim 4 , further comprising a scrambling logic circuit configured to scramble bits of at least one of the address of the non-volatile memory or the data from the CPU.

7. The microcontroller of claim 6 , wherein the scrambling logic circuit comprises:

a permutation stage configured to permute bits of different value of at least one of the address of the non-volatile memory or the data from the CPU;

an inversion stage configured to invert the values of the at least one of the address of the non-volatile memory or the data from the CPU, wherein the permutation stage and the inversion stage are configured to be controlled by scrambling pattern signals; and

a decoding stage configured to obtain control signals for the permutation stage and the inversion stage from the scrambling pattern signals.

8. The microcontroller of claim 4 , wherein the code ROM is configured to read the key code from the code ROM in accordance with a reset sequence, wherein the memory module interface logic circuit comprises a key register separate from the code ROM, and wherein the memory module interface logic circuit is further configured to store the key codes being read in the key register until a future time when the key codes are to be used to encrypt data.

9. A microcontroller comprising a security controller circuit, the security controller circuit comprising:

a non-volatile memory configured to store encrypted data;

a memory module interface logic circuit configured to read and write encrypted data to and from the non-volatile memory;

a code read-only memory (ROM) configured to store one or more key codes; and

a code ROM module interface logic circuit configured to:

receive an address for the code ROM from the memory module interface logic circuit;

use the address to read a key code from the code ROM; and

provide the key code to the memory module interface logic circuit;

wherein the memory module interface logic circuit is further configured to:

receive data and an address of the non-volatile memory from a central processing unit (CPU);

generate the address for the code ROM using the address of the non-volatile memory;

read encrypted data from the address of the non-volatile memory;

decrypt the encrypted data using the key code; and

provide the decrypted data to the CPU;

wherein, at least in part in parallel, the code ROM is configured to read out the key code and the memory module interface logic circuit is configured to encrypt the data into encrypted data.

10. The microcontroller of claim 9 , wherein the address of the non-volatile memory received from the CPU is an encrypted address, and wherein the memory module interface logic circuit is further configured to:

decrypt the encrypted address using the key code; and

read the encrypted data from the decrypted address of the non-volatile memory.

11. The microcontroller of claim 9 , further comprising a scrambling logic circuit configured to scramble bits of at least one of the data or the address of the non-volatile memory.

12. The microcontroller of claim 11 , wherein the scrambling logic circuit comprises:

a permutation stage configured to permute bits of different value of at least one of the data or the address of the non-volatile memory;

an inversion stage configured to invert the values of the at least one of the data or the address of the non-volatile memory, wherein the permutation stage and the inversion stage are configured to be controlled by scrambling pattern signals; and

a decoding stage configured to obtain control signals for the permutation stage and the inversion stage from the scrambling pattern signals.

13. The microcontroller of claim 9 , wherein the code ROM module interface logic circuit is configured to read the key code from the code ROM in accordance with a reset sequence, wherein the memory module interface logic circuit comprises a key register separate from the code ROM, and wherein the memory module interface logic circuit is further configured to store the key codes being read in the key register until a future time when the key codes are to be used to decrypt data.

14. The method of claim 1 , wherein the address of the non-volatile memory received from the CPU is an encrypted address, the method further comprising decrypting the encrypted address using the key code, and wherein said reading encrypted data comprises reading the encrypted data from the decrypted address of the non-volatile memory.

15. The method of claim 1 , further comprising scrambling bits of at least one of the encrypted data or the address of the non-volatile memory using a scrambling logic circuit.

16. The method of claim 15 , wherein said scrambling bits comprises:

permuting bits of different value of at least one of the encrypted data or the address of the non-volatile memory;

inverting the values of the at least one of the encrypted data or the address of the non-volatile memory, wherein said permuting and said inverting are controlled by scrambling pattern signals; and

obtaining control signals for said permuting and said inverting from the scrambling pattern signals.

17. The method of claim 1 , further comprising:

reading the key code from the code ROM in accordance with a reset sequence; and

storing the key codes being read in a key register until a future time when the key codes are to be used to decrypt data.

18. The method of claim 3 , wherein the address of the non-volatile memory received from the CPU is an encrypted address, the method further comprising decrypting the encrypted address using the key code, and wherein said writing the encrypted data comprises writing the encrypted data to the decrypted address of the non-volatile memory.

19. The method of claim 3 , further comprising scrambling bits of at least one of the data or the address of the non-volatile memory using a scrambling logic circuit.

20. The method of claim 19 , wherein said scrambling bits comprises:

permuting bits of different value of at least one of the data or the address of the non-volatile memory;

inverting the values of the at least one of the data or the address of the non-volatile memory, wherein said permuting and said inverting are controlled by scrambling pattern signals; and

obtaining control signals for the permuting the inverting from the scrambling pattern signals.

21. The method of claim 1 , further comprising:

reading the key code from the code ROM in accordance with a reset sequence; and

storing the key codes being read in a key register until a future time when the key codes are to be used to encrypt data.

Assignments (14)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
PATENT RELEASE Recorded Aug 17, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 039707/0471 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
MERGER Recorded Jan 19, 2016
From: ELIPOSKI REMOTE LTD., L.L.C.
To: GULA CONSULTING LIMITED LIABILITY COMPANY
Reel/Frame 037526/0143 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2011
From: NXP B.V.
To: ELIPOSKI REMOTE LTD., L.L.C.
Reel/Frame 026260/0637 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2011
From: BUHR, WOLFGANG
To: KONINKLIJKE PHILIPS ELECTRONICS N.V.
Reel/Frame 025794/0874 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2011
From: KONINKLIJKE PHILIPS ELECTRONICS N.V.
To: NXP B.V.
Reel/Frame 025790/0019 →