Instruction Encoding Permutation for Embedded Code Protection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Embedded devices are susceptible to reverse engineering and unauthorized code extraction due to standardized instruction set encodings, which can lead to vulnerabilities and unauthorized code transfer.
Innovation Solution
Implement secret permutations of instruction encodings in embedded devices, using a key to decode the binary executable into the correct instructions, thereby obfuscating the instruction set and creating a hardware binding that prevents unauthorized execution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If standardized instruction set encodings are used in embedded devices, then ease of manufacture and compatibility are improved, but security against reverse engineering and unauthorized code extraction deteriorates
Solution Approach 1:
The patent applies parameter changes by modifying the binary encoding parameters of instruction sets. Each embedded device is configured with a unique permutation of binary encodings for instructions, operands, and instructions/operands combinations. This changes the encoding parameters from standardized to device-specific, making reverse engineering difficult while maintaining ease of manufacture through systematic permutation application.
Solution Approach 2:
The patent implements local quality by making each embedded device have its own unique local encoding characteristics. The binary encoding permutation is specific to each device, creating localized encoding quality that differs from device to device. This ensures that code extracted from one device cannot be executed on another, providing security through localized encoding properties.
2Object-affected harmful factors
If secret permutations of instruction encodings are implemented, then security against reverse engineering is improved, but device complexity increases
Solution Approach 1:
The patent applies preliminary action by pre-configuring each embedded device with a unique binary encoding permutation during manufacturing or initialization. The permutation is established in advance before any code execution occurs, allowing the device to naturally execute protected code without requiring complex real-time transformation logic. This reduces operational complexity while maintaining security.
Solution Approach 2:
The patent uses copying by creating permuted copies of standard binary encodings. Instead of implementing complex decryption mechanisms, the system creates simplified copied versions of instruction encodings that are transformed according to the device's unique permutation. This copying approach reduces device complexity compared to full decryption implementations.
Data Source
AI summary
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.


