Instruction Flow Signatures for Fault Injection Code Protection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing countermeasures for protecting native code execution against fault injection attacks, such as laser and electromagnetic attacks, often result in increased code size, incompatibility with CPU Instruction Set Architecture (ISA), and lack of fine-tuning capabilities, while also being costly to develop due to the need for significant technical expertise.
Innovation Solution
An execution system with a secure agent component that includes a signature register and a ciphering/deciphering module to detect and prevent illegal modifications of instructions by using instruction flow signatures, ensuring compatibility with standard ISA and allowing fine-tuning of security and code size impact.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If metadata are inserted directly into the program using CPU tools, then code protection against fault injection attacks is improved, but code size increases by 20% and compatibility with standard ISA and tools is lost
Solution Approach 1:
The invention extracts the protection mechanism from the program code itself and places it in a separate secure agent component. The secure agent fetches ciphered instructions from memory and deciphers them before execution, while maintaining a separate signature register with expected instruction signatures. This separation allows the genuine program to remain unchanged and compatible with standard ISA, while the secure agent provides protection without increasing program code size.
Solution Approach 2:
The secure agent acts as an intermediary component between the system memory and the central processing unit. It intercepts ciphered instructions from memory, deciphers them using the signature register, and provides deciphered instructions to the CPU for execution. This intermediary approach enables protection without modifying the program code or requiring changes to standard compilation tools.
2Reliability
If compiler tools are used to insert protection metadata, then code protection is achieved, but significant technical expertise is required making development costly
Solution Approach 1:
The secure agent component performs self-service by automatically fetching ciphered instructions from memory, deciphering them using its internal signature register, and providing deciphered instructions to the CPU. The component autonomously maintains the instruction flow signature by comparing expected signatures with actual deciphered instructions, eliminating the need for external compiler tools or manual intervention for protection implementation.
3Reliability
If instruction flow signatures are used for deciphering, then protection against illegal modifications is improved, but additional registers and ciphering modules are required increasing device complexity
Solution Approach 1:
The invention applies local quality by implementing protection only where needed - in the secure agent component that handles instruction fetching and deciphering. The signature register and ciphering module are localized to this secure agent rather than being distributed throughout the entire system. This localized approach provides necessary detection capability while minimizing overall device complexity by leaving the rest of the CPU architecture unchanged.
Data Source
AI summary
Provided is an execution system including a central processing unit (CPU), a system memory (SM) storing a genuine program (cGC) having ciphered instructions (Cl) stored at determined addresses. A secure agent component (SAC) is dedicated to the protection of the execution of the cGC. The SAC comprises a signature register (SR) storing an instruction flow signature depending on previously executed instructions and a ciphering/deciphering module. A new instruction flow signature is determined depending on instruction and on an instruction flow signature of the previous instruction in the instruction flow of the cGC before storing this new instruction flow signature in the signature register (SR). Other embodiments disclosed.


