Variable Integrity Check Data Storage in Execution Stack
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for protecting electronic devices against fault injection and type confusion attacks are inefficient due to high memory consumption, particularly in devices like smart cards where resources are limited.
Innovation Solution
A method that calculates integrity check data dependent on both the value and type of a variable, storing it in a single control stack and using a unique addressing datum to locate it, reducing memory usage by eliminating the need for multiple index registers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If three different stacks (execution stack, control stack, backup stack) are used to protect against both fault injection and type confusion attacks, then security protection level is improved, but memory consumption increases
Solution Approach 1:
The patent merges the backup stack and control stack into a single unified stack structure. Instead of maintaining separate execution stack P1, control stack P2, and backup stack P3 as in prior art, the invention uses a single execution stack that stores both variable values and their integrity check data in an interleaved manner. This combining of previously separate memory structures reduces memory consumption while maintaining protection against both fault injection and type confusion attacks.
Solution Approach 2:
The execution stack is designed to serve multiple functions simultaneously: it stores variable values for program execution, stores integrity check data for security verification, and provides both fault injection protection and type confusion protection. By making the execution stack multi-functional, the patent eliminates the need for separate dedicated backup and control stacks, thereby reducing overall memory requirements while maintaining comprehensive security.
2Ease of operation
If three different index registers are used to locate data in three different stacks, then data locating capability is improved, but device complexity increases
Solution Approach 1:
The patent reduces the number of index registers from three (ind1 for execution stack, ind2 for control stack, ind3 for backup stack) to two (ind1 for execution stack, ind2 for integrity check data within the same execution stack). The index registers now point to locations within a single unified stack structure rather than three separate stacks, simplifying the device architecture while maintaining the ability to locate and verify data efficiently.
Solution Approach 2:
The index registers are enhanced to serve multiple purposes: ind1 locates variable values in the execution stack, while ind2 locates integrity check data within the same execution stack. This multi-functional use of index registers eliminates the need for separate index registers for backup and control stacks, reducing device complexity while preserving complete data locating capability for security verification.
Data Source
AI summary
A method for protecting an electronic device executing a program against fault injection and type confusion attacks likely to affect a variable (Z) intended to be used by the program. The method includes calculating integrity check data (X, Y) of variable (Z), dependent on a type (T) of the variable (Z), and a value (V) of the variable (Z) stored in an execution stack (P1) and/or of a first addressing datum (A) stored in a first index register (ind1). The first addressing datum (A) adapted to locate the value (V) stored in the execution stack (storing the integrity check data (X, Y) on the variable (Z) in at least one control stack (P2, P3) different to the execution stack (P1). Storing in a second index register (ind2), a unique second addressing datum (A2) adapted to locate the integrity check data (X, Y) in the or each control stack (P2, P3).


