Processor Subroutine Return Word Integrity Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Fault injection attacks target parameter passing between calling and subroutines, making it difficult to detect data modifications caused by physical disturbances, as neither the calling nor the subroutine can verify the integrity of the data.

Innovation Solution

A method involving a subroutine that determines a return status flag and combines it with passed parameters to create a return word, which is compared by the calling program to ensure data integrity, with optional attack or error processing steps based on the comparison results.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If parameter passing is used between calling program and subroutine, then data communication and processing flexibility are improved, but vulnerability to fault injection attacks increases

Engineering Contradiction:
Improvedata communication flexibilityVSAvoiddata integrity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The invention computes an expected return word before the subroutine executes, using the original parameter value and the return status indicator. This preliminary computation creates a reference value that can be used later for verification, allowing the system to detect faults that occur during parameter passing or subroutine execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention implements a feedback mechanism where the subroutine returns both a status indicator and a return word to the calling program. The calling program then compares this return word with the pre-computed expected return word, creating a closed-loop verification system that detects integrity violations and triggers appropriate error handling.

Inventive Principle:
Principle #23Feedback

2Reliability

If a verification mechanism is added to detect fault injection attacks, then data integrity is improved, but device complexity increases

Engineering Contradiction:
Improvedata integrityVSAvoidverification mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The invention merges the verification functionality directly into the existing subroutine call mechanism. The return word computation combines the return status indicator with the parameter value using a predetermined function, and this verification process is integrated into the normal subroutine return and continuation flow, avoiding the need for separate complex verification hardware or protocols.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The verification mechanism is self-service in that the subroutine itself generates the return word that contains verification information, and the calling program performs the comparison using its own pre-computed expected value. The system verifies its own data integrity without requiring external verification infrastructure, reducing overall system complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP3032451B1Method for running a program by a processor and electronic entity comprising such a processor
Publication Date: 2020.07.22 IDEMIA FRANCE SAS
  • EP3032451B1 patent drawingFigure 1~2
  • EP3032451B1 patent drawing

AI summary

The invention relates to a method of executing a program by a processor, comprising the following steps: - calling (E2), by a calling program (A0), a subroutine (A1) with the passing of at least one parameter (M; C; I); - determination (E8), by the subroutine (A1), of a return status indicator; - determination (E10), by the subroutine (A1), of a return word (R) by combining at least, by means of a predetermined function, the return status indicator and the parameter (M; C; I); - return (E12) to the calling program (A0) with the determined return word (R) as the result; - comparison (T1; T2), by the calling program (A0), of the return word (R) and a specific word by combining at least one possible value of the return state indicator and the parameter (M; C; I) passed during the call (E2) of the subroutine (A1) using the predetermined function. An electronic unit comprising such a processor is also proposed.