Microprocessor Binary Code Execution Security Against Fault Injection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for executing binary code by microprocessors are vulnerable to attacks that disrupt the integrity of machine instructions and control flow, such as fault injection attacks, which can alter data or instructions, leading to security breaches and inability to move instruction lines during memory rearrangement.

Innovation Solution

A method for generating and executing binary code that includes cryptographic mechanisms to secure data and machine code, using cryptograms and error correction codes to detect and correct faults, and allows for secure movement of instruction lines during memory rearrangement by using initialization vectors and masks to verify integrity and authenticity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If cryptographic mechanisms with initialization vectors dependent on memory addresses are used to secure binary code, then security against fault injection attacks is improved, but device complexity increases due to additional verification steps

Engineering Contradiction:
Improvesecurity against fault injection attacksVSAvoidcomplexity of execution method
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-computing initialization vectors (IVs) based on memory addresses during the compilation phase. These IVs are embedded in the binary code before execution, allowing the microprocessor to perform straightforward decryption and verification operations during runtime without complex real-time computations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism where a dedicated verification module acts as a mediator between the instruction fetch unit and the execution unit. This module automatically performs decryption and verification of fetched instructions using the address-dependent IVs, isolating the complexity from the main execution path and presenting a simplified interface to the rest of the processor.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If instruction lines are secured with address-dependent initialization vectors, then integrity verification is improved, but ease of operation deteriorates because instruction lines cannot be moved during memory rearrangement

Engineering Contradiction:
Improveintegrity verificationVSAvoidability to move instruction lines
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent applies dynamics by making the initialization vector generation process adaptive to the current memory address. When an instruction line is moved to a new address during memory rearrangement, the system dynamically computes a new IV based on the new address, allowing the same instruction line to be verified at different locations without compromising security.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of the initialization vector from being statically bound to a specific memory location to being dynamically derived from the current address. This parameter change allows the verification mechanism to adapt to memory rearrangement while maintaining integrity verification, as the IV is regenerated based on the actual address where the instruction line resides.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If cryptograms are used to protect data and instructions, then security is improved, but processing time increases due to decryption operations

Engineering Contradiction:
Improvesecurity of data and machine codeVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies segmentation by dividing the binary code into distinct segments (instruction lines and data lines), each protected with appropriate cryptographic mechanisms. Instruction lines use address-dependent IVs for integrity verification, while data lines use similar mechanisms for confidentiality and integrity, allowing optimized processing paths for different code segments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent replaces complex mechanical verification mechanisms with cryptographic substitution. Instead of using elaborate hardware checks or multiple verification stages, the system uses cryptographic primitives (encryption/decryption with address-dependent IVs) that can be efficiently implemented in hardware, reducing the time overhead compared to alternative verification approaches.

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

Data Source

PatentUS11341282B2Method for the execution of a binary code of a secure function by a microprocessor
Publication Date: 2022.05.24 COMMISSARIAT A LENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES
  • US11341282B2 patent drawing
  • US11341282B2 patent drawing
  • US11341282B2 patent drawing

AI summary

A method for executing a binary code includes for each item of data to be recorded: executing an algorithm for constructing a data line containing a cryptogram of this item of data constructed using an initialization vector ivj associated with an address @j of the main memory using a relationship ivj=Fiv(@j), where the function Fiv, is a pre-programmed function that associates a different initialization vector ivj with each different address @j of a main memory, and then recording this constructed data line in the main memory at the address @j, where each instruction line of a basic block is constructed by executing the same construction algorithm as the one executed to construct the data line and using the same function Fiv, the item of data for this purpose being taken to be equal to the instruction masked using a mask associated with this basic block.