Parallel Secondary Code Execution for Fault Injection Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data processing systems are vulnerable to fault injection attacks, which can corrupt secure operations like cryptographic signature verification and encryption, allowing unauthorized access by injecting glitches into the system.
Innovation Solution
A method involving the parallel execution of secondary code with primary security-sensitive code, where the secondary code produces known expected results on tested inputs, allowing for real-time detection of faults by comparing outputs with pre-computed results, and can run continuously, intermittently, or during specific operations, using multiple functions, processor cores, and randomized intervals for enhanced security.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a secondary code is executed in parallel with primary security-sensitive code to detect fault injection attacks, then the system's security and fault detection capability are improved, but the device complexity and computational overhead increase
Solution Approach 1:
The system divides code execution into two separate segments: primary security-sensitive code and secondary monitoring code. The secondary code is a simplified version that mirrors the primary code's functionality but is easier to verify. This segmentation allows fault detection without requiring complete redesign of the security-critical primary code, thus improving reliability while managing complexity.
Solution Approach 2:
The secondary code acts as an intermediary monitoring mechanism that runs in parallel with the primary code. It serves as a mediator to detect faults by comparing its own execution results against expected values, providing fault detection capability without directly modifying the primary security-sensitive code path.
2Reliability
If the secondary code runs continuously to provide constant fault detection, then the detection coverage is improved, but the processing time and computational resources are consumed
Solution Approach 1:
The secondary code execution is implemented as a periodic action rather than continuous execution. It runs at specific intervals or at designated checkpoints during the execution of primary code. This periodic execution maintains adequate fault detection coverage while reducing the overall computational overhead and processing time loss compared to continuous monitoring.
Data Source
AI summary
A method for detecting a fault injection is described. The method includes providing a secondary code, the secondary code including a predetermined function with a known expected result when the secondary code is executed with a known tested input. A primary code is executed in the data processing system. The primary code may be a portion of code that requires protection from a fault injection attack, such as for example, security sensitive code. The secondary code is executed in parallel with the primary code execution in the data processing system to produce an output. The output is compared with the known expected result to detect the fault injection attack of the data processing system. In one embodiment, the secondary code is not related to the primary code.


