Stack Integrity Check for Fault Injection Protection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for protecting electronic devices from fault injection attacks require significant additional memory resources, which is undesirable for devices with limited memory capacity, such as chip cards.
Innovation Solution
A method that calculates an integrity check datum by applying predetermined functions (like addition, subtraction, multiplication, or logical operations) to integrity variables stored in the execution stack, reducing the need for duplicate memory storage by comparing the calculated result with an expected value to detect faults.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a backup stack is implemented to duplicate execution stack contents for fault detection, then reliability against fault injection attacks is improved, but memory consumption increases
Solution Approach 1:
The patent merges the backup stack functionality into the existing execution stack by using the same memory space. Instead of allocating separate memory for backup, the system uses temporal redundancy - storing backup values temporarily in registers or cache during critical operations and comparing them immediately, then overwriting them. This combining approach maintains fault detection capability while eliminating the need for duplicate persistent memory storage.
Solution Approach 2:
The patent implements dynamic protection by activating backup and comparison mechanisms only when needed during specific operations, rather than maintaining static backup storage throughout. The system dynamically allocates temporary storage resources during vulnerable operations and releases them afterward, adapting memory usage to actual protection requirements rather than maintaining constant overhead.
2Measurement precision
If two independent stacks (execution stack and check stack) are allocated for integrity verification, then measurement precision of variable integrity is improved, but device complexity increases
Solution Approach 1:
The patent makes the execution stack multi-functional by having it serve both as the primary data storage structure and as the backup/integrity verification structure. The same stack memory is used for storing variable values, and through temporal duplication and comparison mechanisms, it also performs integrity verification functions. This eliminates the need for a separate check stack and reduces overall system complexity while maintaining verification accuracy.
Solution Approach 2:
The patent segments the integrity verification process into distinct temporal phases within the single stack operation - the original value is stored, then a backup is created temporarily, comparison is performed, and finally the backup is discarded. This temporal segmentation allows one stack to perform multiple functions sequentially rather than requiring simultaneous separate structures.
Data Source
Figure 1~2
Figure 3
Figure 4
AI summary
The invention relates to a method of protecting an electronic device executing a program against fault injection attacks of the type likely to affect the program, the execution of the program implementing a stack in which variables used by the program are read and/or stored, the method comprising, during the execution of said program, a step of calculating an integrity check data by applying at least one predetermined function to at least one integrity variable, the integrity variable and the integrity check data having a value stored in the stack, the calculation of the integrity data being implemented at random intervals during the execution of the program.