IP Library Granted Patent US 7,865,733
Granted Patent B2
US 7,865,733 · App. 11/089,352 · Granted Jan 4, 2011

Secure processor and a program for a secure processor

Assignee: Fujitsu Semiconductor Limited
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 7,865,733
App. No.
11/089,352
Granted
Jan 4, 2011
Kind
B2
Abstract

The instruction code including an instruction code stored in the area where the encrypted instruction code is stored in a non-rewritable format is authenticated using a specific key which is specific to the core where the instruction code is executed or an authenticated key by a specific key to perform an encryption processing for the input and output data between the core and the outside.

Claims (36)

1. A secure processor having a core to execute an instruction code, comprising:

a key memory unit configured to store a specific key in the core;

an instruction code memory unit configured to store the encrypted instruction code in a non-rewritable format;

an authentication processing unit configured to decrypt an electronic signature corresponding to authentication information added to a target instruction code containing the instruction code stored in the instruction code memory unit, by using an authentication key generated with the specific key, and to authenticate the target instruction code when an obtained decryption result matches a result of an operation performed on the target instruction code; and

an encryption processing unit configured to encrypt the data input and output between the core and the outside,

wherein the secure processor comprises as the core:

a secure core configured to execute an instruction code which has been authenticated by the authentication processing unit; and

a normal core configured to execute a regular instruction code which has not been authenticated by the authentication processing unit,

and further comprises a normal core boot unit configured to boot the normal core after the secure core is booted using the encrypted instruction code which is stored in the instruction code memory unit.

2. The secure processor according to claim 1 , wherein said encryption processing unit encrypts the target instruction code which has been authenticated by the authentication processing unit, and stores it in a memory unit connected to the secure processor at a page unit.

3. The secure processor according to claim 1 , wherein if an encryption key is specified in the authentication information, the encryption processing unit performs encryption of the target instruction code using the specified key.

4. The secure processor according to claim 1 , wherein if the encryption key is not specified in the authenticated information, the encryption processing unit performs encryption of the target instruction code using an arbitrary page key.

5. The secure processor according to claim 1 , wherein the encryption processing unit performs encryption of the data of the same process corresponding to the authenticated target instruction code using a different encryption key which is different from the encryption key for the target instruction code.

6. The secure processor according to claim 1 , further comprising a code execution termination processing unit configured to terminate the execution of the target instruction code for which the authentication by the authentication processing unit has failed.

7. The secure processor according to claim 1 , comprising a normal core monitoring unit configured to terminate operation of the normal core or branch out to a specific processing if an abnormal state is detected, when the secure core monitors the operation of the normal core after booting of the normal core.

8. The secure processor according to claim 1 , wherein said secure core gives a core control signal to the normal core to control the operations of the normal core.

9. The secure processor according to claim 1 , wherein accessing the core specific key is permitted to the secure core, but prohibited to the normal core.

10. The secure processor according to claim 2 , further comprising an illegal instruction execution termination unit terminating the execution of the encrypted instruction code at the page unit if an illegal instruction is detected while the encrypted instruction code stored in the memory unit is executed.

11. The secure processor according to claim 5 , wherein the encryption key for the target instruction code is used instead of the different encryption key when the instruction code stored in the data storage area in the memory unit connected to the secure processor is executed.

12. The secure processor according to claim 9 , further comprising a key generation unit configured to generate a pair of a public key and a secret key, and a shared key, using the core specific key under the control of the secure core.

13. The secure processor according to claim 12 , wherein the secure core informs exteriorly a public key generated by the key generation unit via the normal core, receives an original text which is encrypted using the public key externally via the normal core, and decrypts the encrypted original text using the secret key.

14. The secure processor according to claim 13 , wherein the original text is the key used for the encryption of the information.

15. A computer readable non-transitory storage medium which is used by a core to execute an instruction code in a processor, storing a program for the processor to execute the following procedures:

performing booting of its own core using a program stored in a memory in such a format that an encrypted instruction code can not be re-written;

setting up an authentication processing block to perform authentication processing of instruction codes including the instruction code stored in the memory, a key management processing for managing a core specific key, and an operation processing for a key table in which keys for encryption/decryption processing of the instruction codes which are authenticated by the authentication processing block, wherein the authentication processing block decrypts an electronic signature corresponding to authentication information added to the instruction codes by using an authentication key generated with the core specific key, and authenticates the instruction codes when an obtained decryption result matches a result of an operation performed on the instruction codes;

performing an authentication processing of the program on a secondary memory using the authentication processing block; and

performing operations as a key processing monitor which executes key processing processes for encryption/decryption of the instruction codes when the authenticated programs including operating systems which have been already booted are executed, wherein the core comprises:

a secure core configured to execute an instruction code which has been authenticated by the authentication processing block; and a normal core configured to execute a regular instruction code which has not been authenticated by the authentication processing block, and the normal core is booted after the secure core is booted using the encrypted instruction code which is stored in the memory.

16. A computer readable storage medium which is used by a core to execute an instruction code in a processor, storing a program for the processor to execute the following procedures:

performing booting of its own core using a program stored in a memory in such a format that an encrypted instruction code can not be re-written;

booting operating systems; and

executing a program which is authenticated or not authenticated by the authentication processing block which performs an authentication processing for instruction codes including the instruction codes stored in the memory within the processor, wherein as an execution processing of the authenticated program, requests for a key processing monitor which performs key processing including processes using a key for encryption/decryption in response to an execution code which is authenticated can be included, and wherein the authentication processing block decrypts an electronic signature corresponding to authentication information added to the instruction codes by using an authentication key generated with a core specific key, and authenticates the instruction codes when an obtained decryption result matches a result of an operation performed on the instruction codes,

wherein the core comprises:

a secure core configured to execute an instruction code which has been authenticated by the authentication processing block; and

a normal core configured to execute a regular instruction code which has not been authenticated by the authentication processing block,

and the normal core is booted after the secure core is booted using the encrypted instruction code which is stored in the memory.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2015
From: FUJITSU SEMICONDUCTOR LIMITED
To: SOCIONEXT INC.
Reel/Frame 035508/0469 →
CHANGE OF NAME Recorded Jul 27, 2010
From: FUJITSU MICROELECTRONICS LIMITED
To: FUJITSU SEMICONDUCTOR LIMITED
Reel/Frame 024794/0500 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 10, 2008
From: FUJITSU LIMITED
To: FUJITSU MICROELECTRONICS LIMITED
Reel/Frame 021985/0715 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2005
From: GOTO, SEIJI; KAMADA, JUN; TAMIYA, TAIJI
To: FUJITSU LIMITED
Reel/Frame 016424/0842 →
Priority Claims (1)
JP 2004-194951 · Jun 30, 2004 · national
Continuity (1)
Related Publication 20060015748A1 · Jan 19, 2006