Information assurance system for secure program execution
AssigneeThe Boeing Company
InventorRobert W. Denier
Life of this patent
Estimating the term…
Abstract
An enhanced information assurance system may comprise an improved computer including a central processing unit (CPU) emulator configured to extend the available machine instruction set. The CPU emulator may be configured to emulate machine language instructions taken from a nonnative set of secure opcodes. The CPU emulator may ensure that instructions and data in random access memory (RAM) remain encrypted at all times when in RAM, for example by storing the instructions and data in CPU registers when decrypted on an as-needed basis.
Claims20
A computer system for securely executing software instructions, the computer system comprising:
- a first processor having a plurality of hardware registers;
- a memory;
- and
- an emulator program including a plurality of instructions stored in the memory that are executable by the first processor to:
- emulate a second processor;
- emulate execution of a plurality of native machine instructions on the second processor, the native machine instructions being native to the second processor;
- and
- emulate execution of a plurality of secure machine instructions on the second processor, the secure machine instructions being nonnative to the second processor and including one or more opcodes configured to ensure unencrypted values of operand data associated with the opcodes are stored only in one or more of the hardware registers of the first processor.
A method, implemented in a computer system, the method comprising:
- retrieving an encrypted machine instruction from a memory;
- decrypting the retrieved machine instruction and storing the decrypted instruction in a first hardware register of a first processor;
- and
- emulating execution of the decrypted instruction using an emulated second processor;
- wherein the decrypted instruction is one of a plurality of secure instructions nonnative with respect to the emulated second processor.
A computer system for securely executing software instructions, the computer system comprising:
- a first processor having a plurality of hardware registers;
- a memory;
- and
- an emulator program including a plurality of instructions stored in the memory that are executable by the first processor to:
- retrieve an encrypted machine instruction from the memory;
- decrypt the retrieved machine instruction and store the decrypted instruction in one or more of the hardware registers of a first processor;
- and
- emulate execution of the decrypted instruction using the emulated second processor;
- wherein the decrypted instruction is one of a plurality of secure instructions nonnative with respect to the emulated second processor.
Dependencies are inferred from the claim text.