Execution of instructions using op code lengths longer than standard op code lengths to encode data
AssigneeSun Microsystems, Inc.
InventorAlan Folmsbee
Life of this patent
Estimating the term…
Abstract
A CPU is provided with an ability to modify its operation in accordance with an encryption key. When a program is compiled, the program is modified in order that execution may be performed by the CPU with modified op codes. As a result, it is unnecessary to decrypt the program into standard op codes prior to execution. The modified op codes are provided with surplus bits, causing an increase in op code length, and the output of data results is provided in blocks of several words. The internal allocations of signals and logic gates is made key dependent to further foil the efforts of adversaries who may attempt to understand the program instructions.
Claims44
A processor for processing computer programs which are selectively operable on selected ones of individual processors, comprising:
- an instruction decoder capable of decoding instructions formatted as op codes having op code lengths longer standard op code lengths;
- a logic circuitry for execution of instructions provided by the instruction decoder;
- and
- a key memory location capable of storing a key, the key shared with a compiler and used to enable execution of encrypted instructions that were encrypted by the compiler.
A microprocessor for processing computer programs which are selectively operable on selected ones of individual microprocessors, comprising:
- an instruction decoder programmable so that it decodes encrypted instruction op codes, without decrypting them into standard op codes;
- a store for a key shared with a compiler, the key used by the compiler to encrypt standard instructions into encrypted instructions;
- the key providing information to re-allocate memory resources and register resources;
- and
- the serial number used in part to re-allocate memory resources and register resources.
A microprocessor for processing computer programs which are selectively operable on selected ones of individual microprocessors, comprising the microprocessor combining several encrypted instructions into long instruction words which are gathered into groups which will fit an instruction buffer.
Method of compiling computer programs which are selectively operable on selected ones of individual microprocessors, comprising:
- sharing a key with a compiler;
- and
- encrypting standard instructions, with the compiler, into encrypted instructions with op code lengths longer than the standard op code lengths.
Method of using a microprocessor for processing computer programs which are selectively operable on selected ones of individual microprocessors, comprising:
- sharing a key with a compiler;
- and
- encrypting standard instructions, with the compiler, into encrypted instructions with op code lengths longer than the standard op code lengths.
Dependencies are inferred from the claim text.