Trace Print Verification for Embedded Execution Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for controlling program execution integrity in small embedded systems, such as smart cards, are inadequate in detecting and preventing disturbances caused by physical attacks, which can lead to incorrect execution of instructions and data, compromising security and confidentiality.

Innovation Solution

A method that dynamically updates a trace print representing the execution pathway and/or handled data, comparing it with a statically expected value at critical points, and performing special treatment if the current trace print differs, using trace print operations like setTrace, addTrace, adjustTrace, and checkTrace, to ensure execution integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If trace print verification is implemented to detect execution disturbances, then security and reliability are improved, but device complexity and code size increase

Engineering Contradiction:
Improveexecution integrityVSAvoidcode size
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent pre-calculates and stores expected trace print values in a table during program development. These reference values are computed beforehand using the same trace print function that will be used during execution, allowing runtime verification without complex real-time calculations or large hardcoded verification tables

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses a simplified trace print function that computes a compact hash value of the execution pathway. This compact representation serves as a copy or summary of the entire execution trace, enabling efficient verification without storing or transmitting the complete execution history

Inventive Principle:
Principle #26Copying

Solution Approach 3:

The patent replaces complex manual verification methods with automated trace print calculation and comparison. The verification process is substituted by a systematic algorithm that automatically computes trace prints at check points and compares them against pre-stored expected values, eliminating the need for manual security analysis and reducing code complexity

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Measurement precision

If manual trace print calculation is used to verify execution, then detection capability is improved, but programmer effort and time consumption increase

Engineering Contradiction:
Improvedisturbance detectionVSAvoidprogrammer effort
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent enables the program to automatically perform trace print verification itself during execution. The system self-monitors its own execution integrity by computing trace prints and comparing them against expected values without requiring external manual intervention or complex tooling

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent pre-calculates all expected trace print values during program development and stores them in a lookup table. This preliminary computation eliminates the need for programmers to manually calculate or verify trace prints during execution, significantly reducing programmer effort while maintaining precise disturbance detection

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7882396B2Method for controlling program execution integrity by verifying execution trace prints
Publication Date: 2011.02.01 THALES DIS FRANCE SA
  • US7882396B2 patent drawing
  • US7882396B2 patent drawing
  • US7882396B2 patent drawing

AI summary

The inventive method for controlling a program execution integrity by verifying execution trace prints consists in updating the representative print of an execution path and/or data applied for a program execution, comparing the actual print value (dynamically calculated to an expected value (statistically fixed, equal to a value of the print if the program execution is not disturbed) at a determined program spots and in carrying out a particular processing by the program when the actual print differs from the expected value.