AMQ Filter Control Flow Integrity With Low Code Size Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvefault attack protectionVSAvoidperformance overhead
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvefault attack protectionVSAvoidcode size
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #26Copying

3Reliability

If deterministic checksum verification is implemented, then security is improved, but performance and memory requirements increase

Engineering Contradiction:
ImprovesecurityVSAvoidmemory requirements
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS12585773B2Using approximate membership query filters for efficient control flow integrity protection
Publication Date: 2026.03.24 NXP BV
  • US12585773B2 patent drawing
  • US12585773B2 patent drawing
  • US12585773B2 patent drawing

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).