Microprocessor Integrity Code Calculation via Conditional Transpositions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for securing binary code execution against fault injection attacks, such as those described in DEMEYER2019, are complex and difficult to implement, especially for Boolean operations, due to the need for multiplications in Galois fields and complex calculations.

Innovation Solution

A method for executing binary code that uses a security hardware module to calculate integrity codes using a secret key, employing a function Fα that involves conditional transpositions to simplify the calculation of integrity codes for Boolean operations, making it more robust against fault injection attacks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If integrity codes are calculated using multiplications in Galois field as described in DEMEYER2019, then security robustness against fault injection attacks is improved, but implementation complexity increases significantly

Engineering Contradiction:
Improvesecurity robustnessVSAvoidimplementation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent changes the mathematical parameters from Galois field multiplications to Boolean operations (XOR, AND, OR) combined with conditional transpositions. This parameter change maintains security robustness while dramatically simplifying implementation, as Boolean operations are native to digital logic circuits and do not require complex finite field arithmetic units

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent substitutes the mechanical/mathematical system of Galois field multiplications with a logical system based on Boolean operations and conditional bit transpositions. This substitution replaces complex arithmetic mechanics with simpler logical operations that are more easily implemented in hardware security modules

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Measurement precision

If error-correcting codes are used to detect execution faults, then fault detection capability is improved, but security against attacker modification worsens

Engineering Contradiction:
Improvefault detection capabilityVSAvoidsecurity against modification
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent applies preliminary action by pre-processing data through the function Fα before execution, embedding security checks into the data structure itself. This preliminary transformation ensures that any modification to data or results can be detected through the integrity code verification, providing both fault detection and security against attacker modification

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary integrity code that mediates between the data and the verification process. This integrity code, calculated as Fα(a) ⊕ Fα(b) for operations like addition, serves as a trusted intermediary that can detect both execution faults and attacker modifications without requiring complex error-correcting code mechanisms

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP4089557B1Method for executing a binary code by a microprocessor
Publication Date: 2024.07.17 COMMISSARIAT A LENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES
  • EP4089557B1 patent drawingFigure 1~2
  • EP4089557B1 patent drawingFigure 3~4
  • EP4089557B1 patent drawingFigure 5~6

AI summary

This process comprises: - for each data point Di, the calculation (88) of a code Ci using a relation Ci = Qα(Di) = P o Fα(Di), where: - P is a predetermined function, - Fα is a function defined by the following relation: Fα(Di) = Tαt o...o Tαr o ... o Tα1 o Tα0(Di), - Tαr is a conditional transposition parameterized by a secret parameter αr that swaps two blocks B1r and B2r of bits from the data point Di according to the value of the parameter αr, - the calculation (98) of a Cres-t code using the following relation: Cres-t = C1 & C2 & ... & Cn, where C1 to Cn are the codes associated with data points D1 to Dn combined with each other by a Boolean operation D1&D2&...&Dn, where the symbol "&" denotes the operation Boolean.