Parallel Secondary Code Execution for Fault Injection Detection

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

VSEngineering 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

Engineering Contradiction:
Improvefault detection capabilityVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvedetection coverageVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS12032684B2Method for detecting a fault injection in a data processing system
Publication Date: 2024.07.09 NXP BV
  • US12032684B2 patent drawing
  • US12032684B2 patent drawing
  • US12032684B2 patent drawing

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.