Compiler Module Automating Instruction Signature Insertion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing control flow checking methods for protecting program code from unauthorized modifications require manual insertion of signature values and positions, which is error-prone and not fully automated, especially in high-level languages where not all signature positions are accessible, and optimizations by compilers and linkers complicate the process.

Innovation Solution

A compiler module and instruction signature generator that identify and insert placeholders for signature values during the compilation process, allowing for automated generation and calculation of signature values, enabling full use of programming language syntax for control flow protection and supporting distributed compiling with instruction flow control.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If control flow checking methods are implemented with manual insertion of signature values, then error detection capability is improved, but automation level deteriorates

Engineering Contradiction:
Improveerror detection capabilityVSAvoidautomation level
Core Design Contradiction:
ReliabilityVSExtent of automation

Solution Approach 1:

The compiler automatically inserts placeholder instructions during the compilation process at program points where control flow signatures need to be updated. This preliminary action eliminates the need for manual insertion of signature values while maintaining error detection capability, as the placeholders are strategically placed based on control flow analysis performed during compilation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses the compiler itself to perform the signature value insertion task, rather than requiring external manual intervention. The compiler analyzes the control flow graph and automatically determines where placeholders should be inserted, making the system self-sufficient and fully automated while preserving reliability.

Inventive Principle:
Principle #25Self-service

2Reliability

If placeholders are inserted at all program points, then error detection capability is improved, but device complexity deteriorates

Engineering Contradiction:
Improveerror detection capabilityVSAvoidcode complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Placeholder instructions are inserted only at specific program points where control flow signatures need to be updated, rather than uniformly at all program points. The compiler performs control flow analysis to identify these critical locations, such as after conditional branches and function calls, thereby maintaining error detection capability while minimizing the number of placeholders and reducing code complexity.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The control flow protection mechanism is segmented into specific basic blocks where placeholders are inserted only when necessary. Each placeholder is placed at a precise location in the control flow graph where signature verification is needed, avoiding unnecessary complexity in sections of code where control flow checking is not required.

Inventive Principle:
Principle #1Segmentation

3Productivity

If compiler optimizations are applied, then productivity is improved, but reliability deteriorates

Engineering Contradiction:
Improvecompilation speedVSAvoiderror detection capability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The compiler performs control flow analysis and inserts placeholder instructions during the compilation process, before optimizations are applied. This preliminary placement ensures that the structural integrity of control flow checkpoints is maintained, allowing subsequent optimizations to proceed without compromising error detection capability, as the placeholders are positioned at fundamental control flow boundaries that optimizations cannot eliminate.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8694977B2Distributed compiling process with instruction signature support
Publication Date: 2014.04.08 INFINEON TECHNOLOGIES AG
  • US8694977B2 patent drawing
  • US8694977B2 patent drawing
  • US8694977B2 patent drawing

AI summary

A compiler module for providing instruction signature support to a compiler includes a language construct identifier and a placeholder insertion component. The language construct identifier is configured to identify an instruction signature-relevant language construct in a high level language source code supplied to the compiler. The placeholder insertion component is configured to interact with the compiler for inserting at least one instruction signature-related placeholder based on the instruction signature-related language construct into a compiled code processed by the compiler on the basis of the high level language source code.