AMQ Filter Control Flow Integrity With Low Code Size Overhead
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing fault attack countermeasures for computer systems are costly in terms of performance and code size due to the need to embed expected checksum values in the instruction stream for every basic block, and they suffer from inefficiencies in instruction encoding space when combined with other extensions.
Innovation Solution
Implementing an Approximate Membership Query (AMQ) filter that stores checksum information with a small risk of false positives, allowing for a tradeoff between security and overhead, without adding instructions to the instruction stream, and using hashing to verify the validity of program counter and checksum tuples.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If expected checksum values are embedded in the instruction stream for every basic block, then fault attack protection is achieved, but performance and code size overhead increase significantly
Solution Approach 1:
The patent extracts the checksum verification function from the instruction stream by using a separate AMQ-filter data structure. Instead of embedding checksums within instructions, the system stores only program counter values in the AMQ-filter and computes checksums independently, separating the verification logic from the instruction execution path to reduce overhead.
Solution Approach 2:
The AMQ-filter acts as an intermediary between the instruction stream and the checksum verification process. It mediates the protection mechanism by providing a fast lookup structure that stores program counter values, allowing the system to verify integrity without directly embedding checksums in instructions, thus reducing performance impact.
2Reliability
If expected checksum values are embedded in the instruction stream for every basic block, then fault attack protection is achieved, but code size increases
Solution Approach 1:
The patent extracts checksum data from the instruction stream and stores it separately in the AMQ-filter structure. This separation eliminates the need to embed checksums within each instruction, significantly reducing the code size while maintaining protection functionality.
Solution Approach 2:
Instead of embedding checksums in the original instruction stream, the patent creates a copy of the verification mechanism using the AMQ-filter data structure. This copy stores program counter values and enables checksum verification without duplicating checksum data within instructions, thereby reducing code size.
3Reliability
If deterministic checksum verification is implemented, then security is improved, but performance and memory requirements increase
Solution Approach 1:
The patent changes the verification parameter from deterministic exact matching to probabilistic approximate matching using the AMQ-filter. This allows the system to accept a controlled false positive rate in exchange for significantly reduced memory requirements and lower performance overhead, making the security mechanism more efficient.
Data Source
AI summary
A method includes fetching, at a program counter value, an instruction of a basic block of code; decoding the instruction; updating a checksum value with a checksum of the instruction; and determining whether a tuple of the program counter value and the checksum value is in an approximate membership query filter (AMQ-filter).


