Bit String Manipulator for Program Flow Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing program sequence monitoring techniques are inefficient in detecting and ensuring the integrity of target states in microcontroller-based systems, particularly in instruction sets like RISC-V, where bits with predefined values are often unused, making them susceptible to modifications and attacks.

Innovation Solution

A device with a bit-string manipulator analyzes and modifies bit strings to insert information indicating a target state, using unused bits in instruction sets to enhance program flow integrity without requiring hardware changes, by manipulating bit strings to ensure error-free execution and verify program flow integrity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If unused bits in instruction sets are utilized for monitoring program flow, then program flow integrity monitoring capability is improved, but device complexity increases

Engineering Contradiction:
Improveprogram flow integrity monitoringVSAvoidbit string manipulation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent utilizes unused bits within the existing instruction set architecture itself to carry monitoring information. The instruction set serves dual purposes: executing program logic and simultaneously encoding target state information for integrity monitoring. This self-service approach avoids adding separate monitoring hardware or data structures, thereby improving reliability without proportionally increasing device complexity.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent makes the unused bits in instruction sets multi-functional by having them serve both as part of the original instruction encoding and as carriers for target state monitoring information. This universal usage of existing bits allows the system to perform both program execution and integrity monitoring functions without requiring dedicated resources for each function, thus improving monitoring capability while limiting complexity growth.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If bit strings are manipulated to insert target state information, then program flow verification capability is improved, but processing time increases

Engineering Contradiction:
Improveprogram flow verificationVSAvoidbit string processing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent inserts target state information into unused bits of instruction sequences during the compilation or code generation phase, before the program is executed. This preliminary action allows the monitoring information to be pre-positioned in the bit strings, so that during runtime, the verification process simply needs to read and compare the pre-inserted target state information against the actual program state, significantly reducing processing time compared to computing verification information during execution.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If unused bits are used for redundancy information, then error detection capability is improved, but instruction set complexity increases

Engineering Contradiction:
Improveerror detection capabilityVSAvoidinstruction set complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The instruction set architecture serves itself by using its own unused bits to carry redundancy and error detection information. Rather than requiring external error detection mechanisms or separate data structures, the instructions themselves contain the necessary redundancy information in their unused bit fields, enabling error detection without adding external complexity to the instruction set.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent changes the functional interpretation of unused bits within the instruction set from being meaningless or reserved values to being meaningful carriers of target state and redundancy information. This parameter change in how the bits are utilized transforms them into effective error detection resources without altering the fundamental structure or syntax of the instruction set, thereby improving error detection capability while maintaining instruction set simplicity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12169448B2Device and methods for processing bit strings
Publication Date: 2024.12.17 INFINEON TECHNOLOGIES AG
  • US12169448B2 patent drawing
  • US12169448B2 patent drawing
  • US12169448B2 patent drawing

AI summary

A device for processing bit strings of a program flow including a data memory and an interface that is designed to output a second bit string, and a bit string manipulator that is designed to analyze the first bit string at a predetermined bit string section for information that indicates a target state of the program flow, and to manipulate the first bit string in the bit string section to obtain the second bit string.