Patent ID: 7136488
Filing Date: 2006-11-14
Classification: G06F

Abstract:
1. A microprocessor internally having a secret key specific to the microprocessor that cannot be read out to an external device, the microprocessor comprising: a processor core configured to execute a key registration instruction in which a registration request with an address of a distribution key of a program and a program identifier that identifies a program including plaintext instructions and encrypted instructions is issued, and to execute instructions of another program during a key registration based on the registration request, the distribution key being obtained in advance by encrypting an instruction key specific to the program by using a public key corresponding to private key, the encrypted instructions being obtained by encrypting instructions by using the instruction key; an instruction cache memory configured to store a cache line containing a part of instructions of a program in correspondence to a program identifier, and to permit reading of the cache line only when the program identifier stored in correspondence to the cache line coincides with a program identifier received along with a program reading request from the processor core; and a key management unit configured to, when receiving the registration request with the address of the distribution key and the program identifier, carry out the key registration, wait for a completion of an invalidation of the cache line corresponding to the program identifier included in the registration request, to notify a completion of the key registration to the processor core asynchronously by interruption when the key registration and the invalidation are both completed to enable the program with respect to the key registration request to be executed, the key registration being carried out by reading out the distribution key from an external memory based on the address thereof sent from the processor core, to decrypt the distribution key by using the secret key to obtain the instruction key, and to register into a key table the instruction key in correspondence to the program identifier sent from the processor core, the invalidation being carried out by invalidating the cache line stored in correspondence to the program identifier on the cache memory when the instruction key corresponding to the program identifier is registered in the key table, wherein the processor core starts to execute the program with respect to the registration request by using the corresponding instruction key after receiving the notification of the completion of the key registration from the key management unit.