EP1298518A2

Microprocessor with improved task management and table management mechanism

Abstract

A tamper resistant microprocessor has a task state table (921) for assigning a task identifier to a task that can take a plurality of states, and storing a state of the task in correspondence to the task identifier; a task register for storing the task identifier of a currently executed task; an interface (906) for reading a program stored in a form encrypted by using a program key at an external memory, in units of cache lines, when a request for the task is made; an encryption processing unit (1313) for generating decryption keys that are different for different cache lines, according to the program key, and decrypt a content read by the interface; a cache memory (903) formed by a plurality of cache lines each having a tag, for storing the task identifier corresponding to a decryption key used in decrypting each cache line in the tag of each cache line; and an access check unit for comparing the task identifier stored in the tag of each cache line with a value of the task register, and discarding a content of each cache line when the task identifier in the tag and the value of the task register do not coincide.

EP1298518A2, drawing sheet 1
Sheet 1 of 17

Term

Term ended

Projected expiry passed 27 September 2022, 4 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

19 claims: 9 independent, 10 dependent

  1. 1
    A microprocessor, comprising:a task stare table configured to assign a task identifier to a task that can take any one of a plurality of states, and store a state of the task in correspondence to the task identifier;a task register configured to store the task identifier of a currently executed task;an interface configured to read a program in units of cache lines, when a request for the task is made, the program being stored in an encrypted form obtained by using a program key at an external memory;an encryption processing unit configured to generate decryption keys that are different for different cache lines according to the program key, and decrypt a content read by the interface;a cache memory formed by a plurality of cache lines, each cache line having a tag, and configured to store the task identifier corresponding to a decryption key used in decrypting each cache line in the tag of each cache line;and an access check unit configured to compare the task identifier stored in the tag of each cache line with a value of the task register, and discard a content of each cache line when the task identifier in the tag and the value of the task register do not coincide.
  2. 6
    A microprocessor, comprising:a processor core configured to issue a reading request by specifying an address of an external memory in which a plurality of programs encrypted according to respectively unique program keys are stored;an interface configured to read a data block of the address of the external memory in response to the reading request from the processor core;a task key table configured to store the program key in correspondence to a task identifier assigned to each task which is a unit for controlling an execution of the program;an offset table configured to store a top address at which the program is arranged as an offset value for each task identifier;a key generation unit configured to generate a block corresponding key obtained by calculating a relative address value from the address specified by the reading request and the offset value specified by the task identifier in the offset table, and encrypting the relative address value by using the program key;an encryption processing unit configured to decrypt the data block read by the interface by using the block corresponding key;and a cache memory configured to read the data block decrypted by the encryption processing unit in units of cache lines.
  3. 8
    The microprocessor of either of claims 6 or 7, further comprising:a task register configured to store an identifier of a currently executed task;wherein the key generation unit generates the block corresponding key by adding a prescribed secret constant to the relative address value, and encrypting a result of addition by using the program key specified by the task identifier stored in the task register.
  4. 9
    A microprocessor, comprising:a task register configured to store a task identifier of a currently executed task;a cache memory formed by a plurality of cache lines, configured to read data that are stored in an encrypted form at an external memory, in a plaintext form in correspondence to the task identifier in units of cache lines, when a task is requested: an encryption processing" unit configured to decrypt the data in the encrypted form into plaintext form by using block corresponding encryption keys that are different for different cache lines;and an address range register configured to store an address range of the data in the encrypted form in correspondence to the task identifier;wherein when a request for another task is made during an execution of the task, the encryption processing unit encrypts a content of a cache line corresponding to the task identifier stored in the task register by using a block corresponding encryption key;and    the cache memory is capable of writing encrypted data back to the external memory.
  5. 11
    A microprocessor, comprising:an interface configured to read execution codes and data of a program stored in an encrypted form at an external memory, in units of cache lines;a first cache memory having an offset table for storing an offset value which is a start address of the program, and configured to store the execution codes in a plaintext form in units of cache lines;a second cache memory having an address range register for storing an address range of the data, and configured to store the data in a plaintext form in units of cache lines;a key value table connected to the first cache memory and the second cache memory through a common bus, and configured to store an encryption key used in encrypting the program;and an encryption processing unit connected to the first cache memory, the second cache memory and the key value table, and configured to receive the encryption key from the key value table and the offset value from the first cache memory and supply the execution codes to the first cache memory after decrypting the execution codes according to the encryption key and the offset value, and receive the encryption key from the key value table and the address range from the second cache memory and supply the data to the second cache memory after decrypting the data according to the encryption key and the address range.
  6. 13
    A microprocessor, comprising:a cache memory configured to store a program stored in an encrypted form at an external memory, in a plaintext form at each cache line, in response to a request of a task;an instruction execution unit configured to execute the program in a plaintext form;a saving register configured to temporarily save an execution state of the program when an interruption occurs during an execution of the task;a hash calculation unit configured to attach a hash value to a content of the saving register and write the content of the saving register and the hash value into a prescribed line of the cache memory, when an execution state storing request is made;and an encryption processing unit configured to encrypt the execution state written into the cache line in units of cache lines by using a prescribed encryption key, and write the execution state back to the external memory.
  7. 16
    An encryption processing method, comprising:storing a task identifier of a currently executed task into a task ID register;reading a program stored in an encrypted form in which the program is encrypted in units of blocks at an external memory, in units of cache lines when a request for a task is made in order to execute the task;storing an identifier of a requested task into a prescribed region of a cache line;comparing the task identifier stored in each cache line with the task identifier stored in the task ID register;and decrypting a content read by the reading step when the task identifier stored in each cache line coincides with the task identifier stored in the task ID register.
  8. 18
    An encryption processing method, comprising:reading a program stored in an encrypted form at an external memory, by specifying an address;acquiring a start address of the program as an offset value;generating an encryption key by obtaining a relative address from a specified address and the offset value, and encrypting the relative address by using a prescribed key;and decrypting a content read by the reading step by using the encryption key generated by the generating step.
  9. 19
    A carrier medium carrying computer readable instructions for controlling a computer to perform the method of any of claims 16 to 18.