Instruction Buffer Integrity Check for Fast Program Execution
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
Data Source
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.


