Instruction Buffer Integrity Check for Fast Program Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In security-critical applications, existing methods for checking the integrity of program code are time-consuming, particularly during startup in NFC communication, where rapid execution is required, and current approaches often necessitate reading code twice to compute and compare check values, leading to excessive time overhead.

Innovation Solution

A method for executing program code on a data processing device involves storing program instructions and receiving a reference value from an external device, computing a check value when loading instructions into an instruction buffer memory, and executing the code only if the check value matches the reference value, utilizing a checking unit that can be implemented as hardware or software to speed up the integrity check process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If program code integrity checking is performed by reading code twice and computing check values, then security and reliability are improved, but execution time and time overhead increase significantly

Engineering Contradiction:
Improveprogram code integrityVSAvoidexecution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing check values (such as checksums or cryptographic hashes) of program code in a non-volatile memory or memory region before the code is executed. During execution, the system only needs to retrieve and compare the pre-stored check value with a current computed check value, rather than reading the code twice and performing full integrity verification each time. This preliminary preparation significantly reduces the time overhead during actual code execution while maintaining security.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses copying by creating a copy of the program code in an instruction buffer memory or cache, and separately storing the check value of this copy. Instead of repeatedly reading the original code from non-volatile memory for integrity checking, the system works with the copied version in the buffer, reducing the number of memory access operations and thereby reducing execution time while maintaining the same security verification.

Inventive Principle:
Principle #26Copying

2Reliability

If multiple memory reads and check value computations are performed for code integrity, then security checking is improved, but device complexity and operational overhead increase

Engineering Contradiction:
Improvecode integrity verificationVSAvoidintegrity check process
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the check value computation and verification logic from the main code execution flow. By separating the integrity checking function into a distinct process that operates on pre-computed check values stored in memory, rather than embedding repeated full code reading and verification within the execution loop, the system reduces operational complexity. The extraction allows the main program to simply retrieve and compare check values without being burdened by complex real-time verification routines.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary mechanism in the form of an instruction buffer memory or cache that holds both the program code copy and its associated check value. This intermediary layer mediates between the main memory storage and the execution unit, allowing efficient retrieval of both code and verification data without requiring complex coordination between multiple memory access operations. The intermediary simplifies the overall system operation by providing a unified access interface for both code execution and integrity verification.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20240012903A1Method for Executing a Program on a Data Processing Device
Publication Date: 2024.01.11 INFINEON TECHNOLOGIES AG
  • US20240012903A1 patent drawing
  • US20240012903A1 patent drawing
  • US20240012903A1 patent drawing

AI summary

A method for executing a program on a data processing device, the method comprising storing multiple program instructions and data to be processed by a processor of the data processing device in one or more memories of the data processing device; receiving, from an external data processing device, a reference value for a check of the multiple program instructions; computing a check value from the multiple program instructions for the check by way of the data processing device when the program instructions are loaded from the one or more memories into an instruction buffer memory of the data processing device or by way of read access to the instruction buffer memory after the program instructions have been loaded into the instruction buffer memory from the one or more memories; and executing at least some of the program instructions if the check value matches the received reference value.