Compiler Insertion of Illegal Instructions for Fault Injection Robustness

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computer systems are vulnerable to fault injection attacks, which can disrupt the execution of instructions and pose security risks due to the lack of robustness against clock disturbances and the difficulty in detecting uncontrolled program execution, especially since current solutions are intrusive and cannot predict all potential consequences.

Innovation Solution

A compilation method that introduces additional illegal or no-operation instructions between machine instructions in the object code to enhance robustness against fault injection attacks, allowing for automatic insertion and detection of malfunctions, thereby facilitating secure execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If control of instruction execution is performed to counter fault injection attacks, then security against fault injection attacks is improved, but device complexity increases due to intrusive coding rules and additional control mechanisms

Engineering Contradiction:
Improvesecurity against fault injection attacksVSAvoidcoding complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The compilation tool automatically inserts additional instructions (such as checkpoint instructions, barrier instructions, or illegal instructions) into the object code during the compilation phase, before the program is executed. This preliminary action embeds control mechanisms without requiring manual intervention during development or execution, thereby improving security while avoiding increased coding complexity

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The compilation tool itself performs the security enhancement by automatically analyzing the source code and inserting appropriate control instructions during compilation. The system serves its own security needs through automated processing rather than requiring external manual intervention, reducing the burden on developers while maintaining security

Inventive Principle:
Principle #25Self-service

2Reliability

If control of instruction execution is performed to detect uncontrolled execution, then security against fault injection attacks is improved, but productivity decreases due to time-consuming application of coding rules

Engineering Contradiction:
Improvedetection of uncontrolled executionVSAvoidcompilation time
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The manual mechanical process of applying coding rules by skilled developers is replaced by an automated compilation tool that performs the same function. The tool analyzes source code and inserts control instructions automatically during compilation, eliminating the need for manual intervention and associated time costs while maintaining detection capability

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

Solution Approach 2:

All security control measures are implemented during the compilation phase before execution. The compilation tool inserts checkpoint instructions, barrier instructions, or illegal instructions into the object code in advance, so that detection mechanisms are already in place without adding any overhead during the execution phase, thus not impacting productivity

Inventive Principle:
Principle #10Preliminary action

3Reliability

If duplicated function calls are inserted to ensure proper execution, then security against fault injection attacks is improved, but device complexity increases due to intrusive modifications in the code

Engineering Contradiction:
Improveexecution controlVSAvoidcode structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Instead of duplicating function calls directly in the source code, the invention uses intermediary instructions inserted by the compilation tool. These intermediate instructions (such as checkpoint instructions or barrier instructions) act as mediators that monitor execution flow without requiring developers to write redundant code, thereby maintaining execution control while preserving code structure

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The control logic is extracted from the application code and implemented as separate additional instructions inserted by the compilation tool. Rather than embedding control mechanisms within the existing code structure (which would increase complexity), the control functionality is separated into distinct instructions that are automatically inserted at appropriate locations

Inventive Principle:
Principle #2Taking out (Extraction)

4Productivity

If standard compilation is used without additional instructions, then productivity is maintained, but security against fault injection attacks deteriorates due to vulnerability to clock disturbances

Engineering Contradiction:
Improvecompilation efficiencyVSAvoidsecurity against clock disturbances
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The compilation tool automatically enhances security during the standard compilation process without requiring separate manual intervention. By integrating security measures into the compilation workflow itself, the system maintains productivity while self-providing security enhancements through automated insertion of control instructions

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Security control instructions are inserted during compilation before the program is deployed or executed. This preliminary action ensures that security measures are already embedded in the binary code, providing protection against clock disturbances and fault injection attacks without requiring any changes to the compilation efficiency or adding overhead during execution

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11893370B2System and process for compiling a source code
Publication Date: 2024.02.06 STMICROELECTRONICS (GRAND OUEST) SAS
  • US11893370B2 patent drawing
  • US11893370B2 patent drawing

AI summary

According to one aspect, a method for compiling by a compilation tool a source code into a computer-executable code comprises receiving the source code as input of the compilation tool, translating the source code into an object code comprising machine instructions executable by a processor, then introducing, between machine instructions of the object code, additional instructions selected from illegal instructions and no-operation instructions so as to obtain the executable code, then delivering the executable code as output of the compilation tool.