Microprocessor Secure Function Execution via Cryptographic Signatures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for executing binary code of secure functions are not robust against fault injection attacks, which can cause modifications to machine instructions or data, leading to integrity issues and security breaches in cryptographic systems.

Innovation Solution

A method for executing binary code of secure functions that includes instrumentation to detect and signal execution faults, using cryptographic signatures and error-correcting codes to verify the integrity of instructions and data, and employing a compiler to generate secure binary code with encrypted instructions and initialization vectors for each basic block.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If binary code is executed without additional security instrumentation, then execution speed is maintained, but vulnerability to fault injection attacks increases

Engineering Contradiction:
Improvesecurity robustnessVSAvoidcode instrumentation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by computing cryptographic signatures and error-correcting codes for all instructions and data before execution. These security checks are prepared in advance during code compilation and loading, allowing the microprocessor to verify integrity without adding significant runtime overhead. The signatures are computed once and stored with the binary code, enabling fast verification during execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by creating and verifying cryptographic signatures (copies of integrity information) for each instruction and data element. Instead of complex real-time monitoring, the system creates signature copies that can be quickly compared against original values during execution, simplifying the verification process while maintaining strong security guarantees.

Inventive Principle:
Principle #26Copying

2Reliability

If cryptographic signatures are verified for each instruction, then instruction integrity is ensured, but execution time increases

Engineering Contradiction:
Improveinstruction integrityVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Cryptographic signatures are computed in advance during code compilation and loading phases, not during instruction execution. This preliminary computation allows the verification process during execution to be much faster, as it only requires comparing pre-computed signature values rather than performing full cryptographic verification of each instruction.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces complex real-time cryptographic verification mechanisms with simpler comparison operations. Instead of performing full cryptographic verification for each instruction during execution, the system uses pre-computed signatures that can be verified through faster comparison operations, substituting a heavy mechanical verification process with a lighter comparison-based system.

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

3Reliability

If error-correcting codes are applied to all data, then data integrity is improved, but memory usage increases

Engineering Contradiction:
Improvedata integrityVSAvoidmemory storage capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent applies error-correcting codes selectively rather than uniformly to all data. Different levels of protection are applied based on the criticality and type of data: cryptographic signatures are applied to instructions and sensitive data, while error-correcting codes are applied to data in transit and storage. This local quality approach ensures high reliability for critical elements while minimizing overall memory overhead.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent changes the parameters of error protection by using different code types and strengths for different data elements. Instead of applying a single error-correcting code to all data, the system varies the protection parameters (code type, redundancy level) based on data sensitivity and location, optimizing the balance between integrity and memory usage.

Inventive Principle:
Principle #35Parameter changes

4Reliability

If control flow verification is implemented, then control flow integrity is ensured, but detection complexity increases

Engineering Contradiction:
Improvecontrol flow integrityVSAvoidfault detection complexity
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent uses copying by creating cryptographic signatures of control flow information that can be verified against expected values. Instead of implementing complex real-time monitoring of control flow paths, the system creates signature copies of control flow metadata that can be quickly compared to detect unauthorized modifications, simplifying the detection process while maintaining strong integrity guarantees.

Inventive Principle:
Principle #26Copying

Data Source

PatentEP3457620B1Method for executing a binary code of a secure function by a microprocessor
Publication Date: 2020.01.01 COMMISSARIAT A LENERGIE ATOMIQUE ET AUX ENERGIES ALTERNATIVES
  • EP3457620B1 patent drawingFigure 1~4
  • EP3457620B1 patent drawingFigure 5~8
  • EP3457620B1 patent drawingFigure 9~11

AI summary

In this process, a hardware security module of a microprocessor: 1) verifies (176) the integrity and authenticity of a cryptogram contained in a line of code loaded using a message authentication code contained in that same line and triggers (172) the signaling of an execution fault if the integrity or authenticity of the cryptogram is not confirmed, then 2) decrypts (178) the cryptogram to obtain a decrypted instruction or decrypted data if the integrity and authenticity of the cryptogram are confirmed, then: - in the case of a decrypted instruction, the decrypted instruction is stored (180) in an instruction queue to be executed successively by an arithmetic and logic unit of the microprocessor, and - in the case of decrypted data, the decrypted data is stored in an internal register of the microprocessor awaiting processing by the unit arithmetic and logic.