US 6,983,374 B2
Tamper resistant microprocessor
Mikio Hashimoto, Chiba (Japan); Keiichi Teramoto, Tokyo (Japan); Takeshi Saito, Tokyo (Japan); Kenji Shirakawa, Kanagawa (Japan); and Kensaku Fujimoto, Kanagawa (Japan)
Assigned to Kabushiki Kaisha Toshiba, Kawasaki (Japan)
Filed on Feb. 13, 2001, as Appl. No. 9/781,158.
Claims priority of application No. P 2000-035898 (JP), filed on Feb. 14, 2000; and application No. P 2000-135010 (JP), filed on May 08, 2000.
Prior Publication US 2001/0018736 A1, Aug. 30, 2001
Int. Cl. G06F 12/14 (2006.01)
U.S. Cl. 713—194 2 Claims
OG exemplary drawing
 
1. A microprocessor having a unique secret key and a unique public key corresponding to the unique secret key that cannot be read out to external, comprising:
a reading unit configured to read out a plurality of programs encrypted by using different execution code encryption keys from an external memory;
a decryption unit configured to decrypt the plurality of programs read out by the reading unit by using respective decryption keys;
an execution unit configured to execute the plurality of programs decrypted by the decryption unit;
a context information saving unit configured to save a context information for one program whose execution is to be interrupted, into the external memory or a context information memory provided inside the microprocessor, the context information containing information indicating an execution state of the one program and the execution code encryption key of the one program; and
a restart unit configured to restart an execution of the one program by reading out the context information from the external memory or the context information memory, and recovering the execution state of the one program from the context information;
wherein the context information saving unit is configured to generate a random number as a temporary key, to encrypt the context information, and to save an encrypted context information into the external memory, the encrypted context information containing a first value obtained by encrypting information indicating the execution state of the one program by using the temporary key and a second value obtained by encrypting the temporary key by using the public key;
the restart unit is configured to restart the execution of the one program by reading out the encrypted context information from the external memory decrypting the temporary key from the second value contained in the encrypted context information by using the secret key, decrypting the information indicating the execution state from the first value contained in the encrypted context information by using a decrypted temporary key, and recovering the execution state of the one program from a decrypted context information; and
the context information saving unit saves the encrypted context information that also contains a third value obtained by encrypting the temporary key by using the execution code encryption key of the one program.