Diversification of instruction set encodings to protect software
AssigneeNXP B.V.
InventorNikita Veshchikov
Life of this patent
Estimating the term…
Loading patent…
AssigneeNXP B.V.
InventorNikita Veshchikov
Estimating the term…
Software programs and firmware of an embedded device can be protected against lifting, copying, disassembly, and malware attacks by obfuscating the standard binary encodings of instructions in an instruction set that is understood by the processor(s) of the embedded device. The obfuscation is performed by using a key stored in the embedded device to generate a set of substitute binary encodings for the instructions based on one of a plurality of possible permutations of the standard binary encodings; a binary executable compiled from the software program code is re-encoded using the substitute encodings to produce a substitute “permuted” executable that is stored in memory of the embedded device. A permutation decoding unit in the embedded device obtains the permuted executable from memory, decodes each instruction back into its standard binary encoding using the key, and delivers the standard-encoded instruction to the embedded device's decoder circuit for execution.
A system for protecting program code in an embedded device, the system comprising a permutation decoding unit in signal communication with a processing section of the embedded device, the processing section comprising a processor and a decoder circuit configured to decode, according to a set of standard binary encodings associated with an instruction set, binary code into instructions executable by the processor, the permutation decoding unit comprising computing hardware configured to execute control logic that causes the permutation decoding unit to, responsive to a control signal received from the processing section:
A system for diversifying instruction encodings in embedded devices that operate using a set of standard binary encodings of each instruction in an instruction set, the system comprising:
A method for protecting execution of a program on an embedded device that operates using a set of standard binary encodings of each instruction in an instruction set, the method comprising:
Dependencies are inferred from the claim text.