Prosecution Insights
Last updated: August 17, 2026
Application No. 18/343,718

CIRCUITRY AND METHODS FOR CRYPTOGRAPHICALLY ENFORCING CONTROL-FLOW INTEGRITY

Non-Final OA §103
Filed
Jun 28, 2023
Examiner
HOFFMAN, BRANDON S
Art Unit
Tech Center
Assignee
Intel Corporation
OA Round
1 (Non-Final)
91%
Grant Probability
Favorable
1-2
OA Rounds
0m
Est. Remaining
97%
With Interview

Examiner Intelligence

Grants 91% — above average
91%
Career Allowance Rate
1145 granted / 1264 resolved
+30.6% vs TC avg
Moderate +6% lift
Without
With
+6.2%
Interview Lift
resolved cases with interview
Typical timeline
2y 6m
Avg Prosecution
15 currently pending
Career history
1279
Total Applications
across all art units

Statute-Specific Performance

§101
8.5%
-31.5% vs TC avg
§103
35.4%
-4.6% vs TC avg
§102
33.4%
-6.6% vs TC avg
§112
5.1%
-34.9% vs TC avg
Black line = Tech Center average estimate • Based on career data from 1264 resolved cases

Office Action

§103
Notice of Pre-AIA or AIA Status The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . DETAILED ACTION Claims 1-20 are pending in this office action. Information Disclosure Statement The information disclosure statement (IDS) submitted on August 24, 2023, is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner. Claim Rejections - 35 USC § 103 The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action: A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made. Claims 1-20 are rejected under 35 U.S.C. 103 as being unpatentable over Lin (Novel Techniques in Recovering, Embedding, and Enforcing Policies for Control-Flow Integrity) in view of Mashtizadeh et al. (CCFI: Cryptographically Enforced Control Flow Integrity). Regarding claims 1, 8, and 15, Lin teaches an apparatus comprising: a cryptographic circuit to encrypt, with a first key, a first code section to be stored in a single page of memory, and to encrypt, with a second key, a second code section to be stored in the single page of memory (page 53, section 4.1, encrypts each basic block in the program with a key derived from the CFG); decoder circuitry to decode a single instruction into a decoded instruction, the single instruction comprising a key identifier, an identifier of the second code section, and an opcode (page 11, section 2.3.2, Most of these CFI approaches rely on the availability of source code. MCFI [23] propagates source-level information such as type information to the binary level as metadata, and gathers such metadata at program load time to build a precise CFG, which is consulted (or read) by the program to detect CFI violations. Specifically, when a code module is loaded during execution, the loading module’s metadata is combined with the loaded module’s metadata to compute a CFG for both modules, and then the old CFG will be replaced with the new CFG. πCFI [24] starts a program with an empty CFG and let the program itself lazily compute the CFG on the fly) that is to indicate execution circuitry is to, when executing the first code section, determine if the key identifier corresponds to the second key, and in response to corresponding, cause the cryptographic circuit to switch to using the second key to decrypt the second code section, and transfer execution from the first code section to the second code section (page 56, section 4.2.2, whenever the program attempts a control transfer, C3 obtains the caller and callee addresses and reconstructs the key to decrypt the callee basic block before control transfer takes place). Lin does not teach the execution circuitry to execute the decoded instruction according to the opcode. Mashtizadeh et al. teaches the execution circuitry to execute the decoded instruction according to the opcode (page 941, abstract, we implemented CCFI in Clang/LLVM, taking advantage of recently available cryptographic CPU instructions (AES-NI).). It would have been obvious to one of ordinary skill in the art, before the effective filing date of the claimed invention, to combine executing the decoded instruction according to the opcode, as taught by Mashtizadeh et al., with the method of Lin. It would have been obvious for such modifications because Lin’s native hardware support at the hardware layer would look to Mashtizadeh et al. which teaches how to construct and execute a hardwares-assisted, cryptographically-enforced control-flow platform utilizing native CPU decoding and execution pipelines. Regarding claims 2, 9, and 16, Lin teaches wherein the opcode is to indicate that the execution circuitry is to, in response to the key identifier not corresponding to the second key, cause a fault (page 95, chapter 6, this kind of “proof-carrying" code ensures only valid control-flow transfers can decrypt the corresponding instruction sequence and any unintended control-flow transfer would cause program crash). Regarding claims 3, 10, and 17, Lin as modified by Mashtizadeh et al. teaches further comprising a key identification register, wherein the switch of the cryptographic circuit to using the second key to decrypt the second code section comprises updating the key identification register with the second key (see page 942, section 1, the random secret key used for computing these MACs is stored in dedicated registers so that it can never leak by a memory disclosure bug of Mashtizadeh et al.). Regarding claims 4, 11, and 18, Lin as modified by Mashtizadeh et al. teaches wherein the second key is a proper subset of a second host physical address for the second code section to be stored in a page table (see page 943, section 4, the MAC is stored alongside the object. Attackers cannot overwrite control objects because they do not posses the MAC key needed to produce a valid MAC for the object. The MAC key is randomly generated at program start, and stored in registers the CCFI compiler reserves (in x86-64 we use XMM5–XMM15). of Mashtizadeh et al.). Regarding claims 5, 12, and 19, Lin as modified by Mashtizadeh et al. teaches wherein the execution circuitry is to cause removal of the second key from the second host physical address to generate a modified second host physical address that is to be used to access the second code section (see page 941, section 1, this paper introduces a dynamic approach to control flow integrity that allows our compiler to efficiently encode and modify pointer classification at runtime. We associate metadata with all control flow pointers that prevent attackers from arbitrarily swapping or modifying pointers. of Mashtizadeh et al.). Regarding claims 6, 13, and 20, Lin teaches wherein the opcode is to indicate that the execution circuitry is to, in response to the key identifier corresponding to the second key, switch a page table pointer to an entry that points to the second host physical address (page 10, section 2.3.1, all indirect branches are instrumented to jump to the corresponding address translation routine that determines the targets of the transfers, if one target cannot be found, it means there is a controlflow hijacking attack. However, whenever there is a control-flow transfer, the CFI checks are always executed. Our proposed approach DynCFI does not require to perform CFI check for each control-flow transfer due to the trace mechanism used in the dynamic code optimization platform DynamoRIO [17]. Specifically, the trace mechanism can avoid some indirect branch lookups by inlining a popular target of an indirect branch into a trace.). Regarding claims 7 and 14, Lin teaches wherein the key identifier is the second key, and the second key is to be generated by adding a compile-time constant for the second code section to a signature value for the first code section (page 56, section 4.2.2, Embedding CFG. C3 transforms branch transfer instructions (indirect branches, conditional jumps, and direct calls) to have a secret share embedded, and then redistributes basic blocks to specific addresses so that all valid callers are on the same secret sharing curve.). Any inquiry concerning this communication or earlier communications from the examiner should be directed to BRANDON HOFFMAN whose telephone number is (571)272-3863. The examiner can normally be reached Monday-Friday 8:30AM-5:00PM. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Jeffrey Pwu can be reached at (571)272-6798. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /BRANDON HOFFMAN/Primary Examiner, Art Unit 2433
Read full office action

Prosecution Timeline

Jun 28, 2023
Application Filed
Sep 26, 2023
Response after Non-Final Action
Jul 17, 2026
Non-Final Rejection mailed — §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12705382
System and method for protecting source code from unauthorized access
2y 3m to grant Granted Aug 11, 2026
Patent 12688321
SECURE CLUSTER CALCULATION SYSTEM, SECURE CLUSTER CALCULATION APPARATUS, SECURE CLUSTER CALCULATION METHOD, AND PROGRAM
2y 0m to grant Granted Jul 21, 2026
Patent 12682094
DATA COMPLIANCE IN AN EDGE COMPUTING ENVIRONMENT
3y 1m to grant Granted Jul 14, 2026
Patent 12682097
API MODEL FOR AS-A-SERVICE DATA RESILIENCE MANAGEMENT
2y 5m to grant Granted Jul 14, 2026
Patent 12683989
TECHNIQUES FOR MULTI-TENANT VULNERABILITY SCANNING UTILIZING SENSITIVE DATA
2y 1m to grant Granted Jul 14, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

1-2
Expected OA Rounds
91%
Grant Probability
97%
With Interview (+6.2%)
2y 6m (~0m remaining)
Median Time to Grant
Low
PTA Risk
Based on 1264 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month