System and method for securing executable code
AssigneeBroadcom Corporation
InventorMark Buer
Life of this patent
Estimating the term…
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.
Claims19
A system for secure execution of processor instructions, the system comprising:
- a first memory configured to store an encrypted instruction;
- and
- a secure processor system coupled to said first memory and configured to receive the encrypted instruction, said secure processor system comprising:
- a processor, and
- a security controller configured to decrypt said encrypted instruction according to a decryption algorithm, wherein the decryption algorithm uses a first key as a key input to the decryption algorithm and an address corresponding to a location in said first memory of said encrypted instruction as an initialization vector input to the decryption algorithm.
A method, in a secure processor system, for secure execution of processor instructions, comprising:
- intercepting, by a memory controller in the secure processor system, a request for an instruction to be executed by a processor;
- retrieving an encrypted instruction, corresponding to the instruction, from a first memory;
- decrypting, in a security controller in the secure processor system, the encrypted instruction using an encryption mode of an advanced encryption standard (AES) algorithm to obtain a resulting instruction, wherein a first key is used as a key for the AES algorithm and an address, corresponding to a location in the first memory of the encrypted instruction is used as an initialization vector input for the AES algorithm;
- and
- loading the resulting instruction into an instruction cache in the secure processor system, wherein the resulting instruction is to be executed by the processor.
Dependencies are inferred from the claim text.