IP Library › Granted Patent US 12,585,773
Granted Patent B2
US 12,585,773 · App. 18/506,639 · Granted Mar 24, 2026

Using approximate membership query filters for efficient control flow integrity protection

Inventors: Jan Hoogerbrugge (Helmond, NL); Marcel Medwed (Graz, AT)
Assignee: NXP B.V.
G06F21/566G06F2221/034
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,585,773
App. No.
18/506,639
Filed
Nov 10, 2023
Granted
Mar 24, 2026
Kind
B2
Art Unit
2432
USPC
726/23
Abstract

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

Claims (41)

1 . A method, comprising:

fetching, at a program counter value, an instruction of a basic block of code;

decoding the instruction;

updating a checksum value by adding a value of a checksum of the instruction to a current checksum value based on other instructions of the basic block;

determining whether a tuple of the program counter value and the updated checksum value is in an approximate membership query filter (AMQ-filter); and

performing, at a processing circuitry, an operation to address a fault attack based on the tuple not being in the AMQ-filter.

2 . The method of claim 1 , wherein performing the operation comprises:

setting the program counter value to an exception handler address based on the tuple not being in the AMQ-filter.

3 . The method of claim 2 , wherein the determining is performed by transmitting the tuple to the AMQ-filter and receiving a response indicating the tuple is not in the AMQ-filter.

4 . The method of claim 1 , wherein the determining is performed based on the instruction being a last instruction of the basic block.

5 . The method of claim 1 , further comprising:

resetting the current checksum value based on the instruction being a first instruction of the basic block.

6 . The method of claim 1 , further comprising:

resetting an instruction counter based on the instruction being a first instruction of the basic block; and

incrementing the instruction counter, corresponding to the fetching, wherein the determining is performed based on the instruction counter exceeding a predetermined threshold.

7 . The method of claim 1 , further comprising:

executing the instruction based on the tuple being in the AMQ-filter.

8 . An apparatus, comprising:

an approximate membership query filter (AMQ-filter) that stores tuples of program counters and checksums; and

processing circuitry configured to fetch, at a program counter value, an instruction of a basic block of code, decode the instruction, and update a checksum value by adding a value of a checksum of the instruction to a current checksum value based on other instructions of the basic block, wherein the AMQ-filter is configured to determine whether a tuple of the program counter value and the updated checksum value is in the AMQ-filter, and wherein the processing circuitry is configured to perform an operation to address a fault attack based on the tuple not being in the AMQ-filter.

9 . The apparatus of claim 8 , wherein the operation comprises setting the program counter value to an exception handler address based on the tuple not being in the AMQ-filter.

10 . The apparatus of claim 9 , wherein the processing circuitry is configured to transmit the tuple to the AMQ-filter and to receive a response indicating the tuple is not in the AMQ-filter.

11 . The apparatus of claim 8 , wherein the AMQ-filter is configured to determine whether the tuple is in the AMQ-filter based on the instruction being a last instruction of the basic block.

12 . The apparatus of claim 8 , wherein the processing circuitry is configured to reset the current checksum value based on the instruction being a first instruction of the basic block.

13 . The apparatus of claim 8 , wherein the processing circuitry is configured to reset an instruction counter based on the instruction being a first instruction of the basic block, and to increment the instruction counter, corresponding to the processing circuitry fetching the instruction, and the AMQ-filter is configured to determine whether the tuple is in the AMQ-filter, based on the instruction counter exceeding a predetermined threshold.

14 . The apparatus of claim 8 , wherein the processing circuitry is configured to execute the instruction, based on the tuple being in the AMQ-filter.

15 . A non-transitory computer readable medium embodying a set of executable instructions, the set of executable instructions to manipulate at least one processor to:

fetch, at a program counter value, an instruction of a basic block of code;

decode the instruction;

update a checksum value by adding a value of a checksum of the instruction to a current checksum value based on other instructions of the basic block;

determine whether a tuple of the program counter value and the updated checksum value is in an approximate membership query filter (AMQ-filter); and

perform an operation to address a fault attack based on the tuple not being in the AMQ-filter.

16 . The non-transitory computer readable medium of claim 15 , the set of executable instructions to manipulate the at least one processor to:

set the program counter value to an exception handler address based on the tuple not being in the AMQ-filter.

17 . The non-transitory computer readable medium of claim 16 , wherein the determining is performed by transmitting the tuple to the AMQ-filter and receiving a response indicating the tuple is not in the AMQ-filter.

18 . The non-transitory computer readable medium of claim 15 , wherein the determining is performed based on the instruction being a last instruction of the basic block.

19 . The non-transitory computer readable medium of claim 15 , the set of executable instructions to manipulate the at least one processor to:

reset the current checksum value based on the instruction being a first instruction of the basic block.

20 . The non-transitory computer readable medium of claim 15 , the set of executable instructions to manipulate the at least one processor to:

reset an instruction counter based on the instruction being a first instruction of the basic block; and

increment the instruction counter, corresponding to the fetching, wherein the determining is performed based on the instruction counter exceeding a predetermined threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 10, 2023
From: HOOGERBRUGGE, JAN; MEDWED, MARCEL
To: NXP B.V.
Reel/Frame 065527/0784 →
Continuity (1)
Related Publication 20250156543A1 · May 15, 2025
References Cited (10)
US 20080256346A1 · Lee et al. · 2008 [cited by applicant]
US 20130160121A1 · Yazdani · 2013 [cited by examiner]
US 20200004536A1 · Shevgoor · 2020 [cited by examiner]
US 20200257805A1 · Courousse · 2020 [cited by examiner]
Mario Werner et al., “Protecting the Control Flow of Embedded Processors against Fault Attacks”; Int'l Conf. on Smart Card Res. & Advanced Applications, 2015, 17 pages, Bochum, Germany. [cited by applicant]
Approximate Membership Query Filter, last visited Sep. 14, 2023, https://en.wikipedia.org/wiki/Approximate_Membership_Query_Filter, 4 pages. [cited by applicant]
Thomas Mueller Graf et al., “Binary Fuse Filters: Fast and Smaller Than Xor Filters”; J. of Experimental Algorithmics, Jan. 4, 2022, vol. 27, 15 pages, arXiv:2201.01174v1 [cs.DS]. [cited by applicant]
Joakim Ohlsson et al., A Study of the Effects of Transient Fault Injection into a 32-bit RISC with Built-in Watchdog, FTCS-22: The Twenty-Second Int'l Symp. on Fault-Tolerant Computing, 1992, pp. 316-325, doi: 10.1109/F… [cited by applicant]
Michael A. Schuette et al., “Processor Control Flow Monitoring Using Signatured Instruction Streams”; IEEE Transactions on Computers, Mar. 1987, pp. 264-276, vol. C-36, No. 3, doi: 10.1109/TC.1987.1676899. [cited by applicant]
Thomas M. Galla et al., “Control Flow Monitoring for a Time-triggered Communication Controller”; 10th Eur. Workshop on Dependable Computing (EWDC-10), 1990, 6 pages, Vienna, Austria. [cited by applicant]