×

Method for encrypting a program for subsequent execution by a microprocessor configured to decrypt and execute the encrypted program

  • US 9,461,818 B2
  • Filed: 10/29/2013
  • Issued: 10/04/2016
  • Est. Priority Date: 05/25/2010
  • Status: Active Grant
First Claim
Patent Images

1. A method for encrypting an unencrypted program for subsequent execution by a microprocessor configured to decrypt and execute the encrypted program, the method comprising:

  • receiving an object file specifying the unencrypted program that includes conventional branch instructions whose target address is determinable prior to a time in which the microprocessor runs the unencrypted program;

    obtaining chunk information;

    dividing the unencrypted program into a sequence of chunks, wherein each of the chunks comprises a sequence of instructions, wherein the chunk information further comprises encryption key data associated with each of the chunks, wherein the encryption key data associated with each of the chunks is distinct;

    replacing each of the conventional branch instructions that specifies a target address that is within a different chunk than a chunk in which a conventional branch instruction resides with a branch and switch key instruction that includes distinct key reference and branch information fields, the key reference field referencing a set of encryption keys for encrypting a targeted chunk, and the branch information field including information for computing a target address; and

    encrypting the unencrypted program based on the chunk information and the branch and switch key instruction.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×