EP1536308A2

System and method for securing executable code

Abstract

A system and method for the secure storage of executable code and the secure movement of such code from memory to a processor. The method includes the storage of an encrypted version of the code. The code is then decrypted and decompressed as necessary, before re-encryption in storage. The re-encrypted executable code is then written to external memory. As a cache line of executable code is required, a fetch is performed but intercepted. In the interception, the cache line is decrypted. The plain text cache line is then stored in an instruction cache associated with a processor.

EP1536308A2, drawing sheet 1
Sheet 1 of 11

Term

Term ended

Projected expiry passed 4 November 2024, 1.9 years ago.

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

10 claims: 2 independent, 8 dependent

  1. 1
    A system for secure execution of processor instructions, the system comprising:a first memory containing boot code and an image encrypted with a first key;a secure embedded processor system, comprising: a processor;an instruction cache in communication with said processor;a memory controller in communication with said instruction cache;and a security controller in communication with said instruction cache;and a second memory, external to said secure embedded processor system, in communication with said first memory, said memory controller, and said security controller, such that said image encrypted with said first key is transferred to said second memory, decrypted by said security controller, and re-encrypted by said security controller using a second key, and such that a cache line of said image encrypted with said second key is then read from said second memory, decrypted with said second key, and stored in staid instruction cache for execution by said processor.
  2. 5
    A method of providing for secure execution of processor instructions, comprising:a. booting a processor to load encrypted code to external memory;b. decrypting an uncompressed portion of the encrypted code using an image key to produce a first portion of decrypted uncompressed code;c. executing the first portion of decrypted uncompressed code;d. decrypting a compressed portion of the encrypted code with the image key, to produce an image;e. authenticating the image;f. decompressing the image so that it occupies a section of external memory starting at a first address and ending at an end address;and g. performing secure execution of the image.