IP Library Granted Patent US 9,653,004
Granted Patent B2
US 9,653,004 · App. 12/253,207 · Granted May 16, 2017

Systems and methods for downloading code and data into a secure non-volatile memory

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 9,653,004
App. No.
12/253,207
Granted
May 16, 2017
Kind
B2
Abstract

A method for downloading information into a secure non-volatile memory of a secure embedded device (SED) during a manufacturing or personalization process. The method involves communicating the information and a software program from a device to a temporary storage memory of the SED. The method also involves starting the software program provided to facilitate an initialization of a first key and to facilitate a transfer of at least a portion of the information from the temporary storage memory to the secure non-volatile memory. In response to starting, the software program, the first key is initialized and the portion of information is transformed into transformed information locally at the SED using at least one of a scramble algorithm and a cipher algorithm. Thereafter, the transformed information is written to a memory element of the secure non-volatile memory.

Claims (60)

1. A method for downloading information to a secure embedded device (SED), comprising:

scrambling or ciphering, by a first processor, the information into first transformed information at a computing device using a first scramble algorithm or a first cipher algorithm and generating a first key;

transferring, by the first processor, the first transformed information, the first key and a software program from the computing device into a temporary storage memory of the SED;

running the software program by a second processor of the SED, to facilitate an initialization of a second key and to facilitate a transfer of the first transformed information from the temporary storage memory to a secure non-volatile memory of the SED;

in response to the running the software program, initializing, by the second processor, the second key at the SED, and descrambling or deciphering, at a descrambling/deciphering mechanism in the SED, the first transformed information into second transformed information using the first key;

scrambling or ciphering, by the second processor, the second transformed information into third transformed information at a scrambling/ciphering mechanism of the SED using a second scramble algorithm or a second cipher algorithm wherein the third transformed information is defined by the second key; and

writing, by the second processor, at least a portion of the third transformed information to a memory location of a memory element of the secure non-volatile memory, wherein the memory location is defined by the second key.

2. The method of claim 1 , further comprising:

generating a random number or a pseudo random number at the computing device, and

wherein the initializing the second key comprises:

initializing the second key with the random number.

3. The method of claim 1 , further comprising:

generating a random number or a pseudo random number at the secure embedded device; and

wherein the initializing the second key comprises:

initializing the second key with the random number.

4. The method of claim 1 , further comprising:

selecting at least one of a boot loader program and an initial program loader to be included in the information.

5. The method of claim 1 , wherein the second scramble algorithm is different from the first scramble algorithm.

6. The method of claim 1 , wherein the second cipher algorithm is different from the first cipher algorithm.

7. The method of claim 1 , further comprising:

determining if the second transformed information is corrupt prior to the scrambling or ciphering the second transformed information into the third transformed information.

8. The method of claim 1 , further comprising:

authenticating at least one of a signature and a checksum appended to the second transformed information prior to the scrambling or ciphering the second transformed information into the third transformed information.

9. The method of claim 1 , further comprising:

descrambling the third transformed information retrieved from the memory location, by a descrambling/deciphering mechanism of the SED into the second transformed information, wherein the second transformed information is original code capable of being executed by a processor.

10. The method of claim 9 , further comprising:

executing the original code.

11. The method of claim 1 , further comprising:

deciphering the third transformed information retrieved from the memory location, by a descrambling/deciphering mechanism of the SED into the second transformed information, wherein the second transformed information is original code capable of being executed by a processor.

12. The method of claim 11 , further comprising:

executing the original code.

13. A system, comprising:

a computing device comprising a first processor, the first processor configured to store information, scramble or cipher the information into first transformed information using a first scramble algorithm or a first cipher algorithm and generate a first key based on the first scramble algorithm or the first cipher algorithm, and a software program; and

a secure embedded device, communicatively coupled to the computing device, the secure embedded device comprising a second processor, the second processor configured to:

receive the first transformed information, the first key, and the software program from the computing device,

store the first transformed information, the first key, and the software program in a temporary storage memory thereof,

descramble or decipher the first transformed information into second transformed information using at least the first key,

start the software program to facilitate an initialization of a second key and to facilitate a transfer of the second transformed information from the temporary storage memory to a secure non-volatile memory,

in response to the software program, initialize the second key to scramble or cipher the second transformed information into third transformed information using a second scramble algorithm or a second cipher algorithm, and

write at least a portion of the third transformed information to a memory location of a memory element of the secure non-volatile memory, wherein the memory location is defined by the second key.

14. The system according of claim 13 , wherein the second processor is further configured to:

start the software program to facilitate the initialization of the second key; and

scramble or cipher the second transformed information to the third transformed information and to communicate the third transformed information to the memory element.

15. The system of claim 13 , wherein the computing device is configured to generate a random number or a pseudo random number, and

wherein the second processor of the secure embedded device is further configured to initialize the second key with the random number or the pseudo random number.

16. The system according of claim 13 , wherein the second processor of the secure embedded device is further configured to generate a random number or a pseudo random number and to initialize the second key with the random number or the pseudo random number.

17. The system of claim 13 , wherein the information comprises a boot loader program or an initial program loader.

18. The system of claim 13 , wherein the second scramble algorithm is different from the first scramble algorithm and the second cipher algorithm is different from the first cipher algorithm.

19. The system of claim 13 , wherein the second processor of the secure embedded device is further configured to determine if the second transformed information is corrupt prior to scrambling or ciphering the second transformed information into the third transformed information.

20. The system of claim 13 , wherein the second processor of the secure embedded device is further configured to authenticate a signature or a checksum appended to the second transformed information prior to scrambling or ciphering the second transformed information into the third transformed information.

21. A secure embedded device, comprising:

a temporary storage memory;

a secure non-volatile memory; and

a processor coupled to the temporary storage memory and the secure non-volatile memory, the processor configured to:

receive scrambled or ciphered information, a first key, and a software program communicated from an external device,

store the scrambled or ciphered information, the first key, and the software program in the temporary storage memory,

descramble or decipher the scrambled or ciphered information into first transformed information using at least the first key,

start the software program to facilitate an initialization of a second key and to facilitate a transfer the first transformed information from the temporary storage memory to the secure non-volatile memory,

execute the software program to initialize the second key in response to starting the software program and to scramble or cipher the first transformed information into second transformed information using a scramble algorithm or a cipher algorithm, and

write at least a portion of the second transformed information to a memory location of the secure non-volatile memory, wherein the memory location that is defined by the second key.

Assignments (8)
MERGER Recorded Nov 14, 2025
From: CYPRESS SEMICONDUCTOR CORPORATION
To: INFINEON TECHNOLOGIES AMERICAS CORP.
Reel/Frame 073571/0456 →
RELEASE OF SECURITY INTEREST Recorded Mar 16, 2022
From: MUFG UNION BANK, N.A.
To: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
Reel/Frame 059410/0438 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 8647899 PREVIOUSLY RECORDED ON REEL 035240 FRAME 0429. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTERST. Recorded Nov 3, 2020
From: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058002/0470 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Oct 28, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: MUFG UNION BANK, N.A.
Reel/Frame 050896/0366 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2015
From: SPANSION LLC
To: CYPRESS SEMICONDUCTOR CORPORATION
Reel/Frame 035856/0527 →
SECURITY INTEREST Recorded Mar 21, 2015
From: CYPRESS SEMICONDUCTOR CORPORATION; SPANSION LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 035240/0429 →
SECURITY AGREEMENT Recorded Aug 23, 2012
From: SPANSION LLC; SPANSION INC.; SPANSION TECHNOLOGY INC.; SPANSION TECHNOLOGY LLC
To: BARCLAYS BANK PLC
Reel/Frame 028837/0076 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2008
From: BOSCHER, ARNAUD; PRAWITZ, NICOLAS
To: SPANSION LLC
Reel/Frame 021694/0862 →