Instruction Flow Signatures for Fault Injection Code Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecode protectionVSAvoidcode size
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If compiler tools are used to insert protection metadata, then code protection is achieved, but significant technical expertise is required making development costly

Engineering Contradiction:
Improvecode protectionVSAvoiddevelopment cost
Core Design Contradiction:
ReliabilityVSEase of manufacture

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.

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
Improvedetection capabilityVSAvoidsecure agent component
Core Design Contradiction:
ReliabilityVSDevice 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.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS12475214B2Code flow protection with error propagation
Publication Date: 2025.11.18 THALES DIS DESIGN SERVICES SAS
  • US12475214B2 patent drawing
  • US12475214B2 patent drawing
  • US12475214B2 patent drawing

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.