Prosecution Insights
Last updated: April 19, 2026
Application No. 18/756,603

INSTRUCTION TO ACCELERATE HASH PROCESSING

Non-Final OA §101§102
Filed
Jun 27, 2024
Examiner
WHITE, JOSHUA RAYMOND
Art Unit
2438
Tech Center
2400 — Computer Networks
Assignee
International Business Machines Corporation
OA Round
1 (Non-Final)
76%
Grant Probability
Favorable
1-2
OA Rounds
2y 8m
To Grant
99%
With Interview

Examiner Intelligence

Grants 76% — above average
76%
Career Allow Rate
88 granted / 115 resolved
+18.5% vs TC avg
Strong +36% interview lift
Without
With
+35.9%
Interview Lift
resolved cases with interview
Typical timeline
2y 8m
Avg Prosecution
12 currently pending
Career history
127
Total Applications
across all art units

Statute-Specific Performance

§101
6.8%
-33.2% vs TC avg
§103
55.0%
+15.0% vs TC avg
§102
15.3%
-24.7% vs TC avg
§112
17.8%
-22.2% vs TC avg
Black line = Tech Center average estimate • Based on career data from 115 resolved cases

Office Action

§101 §102
DETAILED ACTION This non-final office action is in response to claims 1-25 filed on 6/27/2024 for examination. Claims 1-25 are being examined and are pending. 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 . In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. Information Disclosure Statement The information disclosure statements (IDS) submitted on 06/27/2024 and 10/16/2025 have been considered by the examiner. Claim Rejections - 35 USC § 101 35 U.S.C. 101 reads as follows: Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title. Claims 1-20 is/are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more. Independent claim 1 recites: “A computer program product comprising: a set of one or more computer-readable storage media; and program instructions, collectively stored in the set of one or more computer- readable storage media, for causing at least one computing device to perform computer operations including: executing an instruction to generate a message digest for a message, the message digest to be used in authentication of the message, the executing the instruction including: obtaining from the instruction a control indicator; determining, based on the control indicator, an initial chaining value to be used to generate the message digest; generating the message digest using the initial chaining value; and providing the message digest to be used in the authentication of the message.” The limitations of a computer program product comprising: a set of one or more computer-readable storage media; and program instructions, collectively stored in the set of one or more computer-readable storage media, for causing at least one computing device to perform computer operations including: executing an instruction to generate a message digest for a message, the message digest to be used in authentication of the message, the executing the instruction including: obtaining from the instruction a control indicator; determining, based on the control indicator, an initial chaining value to be used to generate the message digest; generating the message digest using the initial chaining value, cover performing mathematical calculations that could be practically performed in the human mind but for the recitation of generic computer components. That is, other than reciting “computer-readable storage media”, “program instructions”, and a “computer program product”, nothing in the claim element precludes the steps from practically being performed in the mind with aid of pen and paper. For example, the human mind can execute instructions, obtain information, determine information, and generate information. If a claim limitation, under its broadest reasonable interpretation, covers performance in the human mind but for the recitation of generic computer components, then it falls within the “Mental Processes” groupings of abstract ideas. Accordingly, the claim recites an abstract idea. This judicial exception is not integrated into a practical application. In particular, the claim only recites the additional elements of “providing the message digest to be used in the authentication of the message”. The additional elements are recited at a high-level of generality (i.e., as a generic computer performing the generic computer functions of transmitting information and storing information) such that they amount no more than mere instructions to apply the judicial exception using generic computer components. Examiner notes: “to be used in the authentication of the message” is a statement of purpose. However, an affirmative step of a recipient receiving and then using the message digest to authenticate the message is not actually performed in the claim as written, and therefore cannot be considered to integrate the judicial exception into a practical application. Accordingly, the additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed above with respect to integration of the abstract idea into a practical application, the additional element(s) of “providing the message digest to be used in the authentication of the message” amount to no more than mere instructions to apply the exception using a generic computer component. The limitations recited are in essence instructions to implement the abstract idea using functions that are well-understood, routine and conventional in the industry (e.g., using a computer to transmit information, using a computer to store information). Mere instructions to apply an exception using a generic computer component cannot provide an inventive concept. For reference: according to MPEP 2106.05(d), elements that the Courts have recognized as well-understood, routine, conventional activity in particular fields include, e.g. “Receiving or transmitting data over a network, e.g., using the internet to gather data”, Symantec, 838 F.3d at 1321, 120 USPQ2d at 1362 (utilizing an intermediary computer to forward information); Storing and retrieving information in memory, Versata Dev. Group, Inc. v. SAP Am., Inc, 793 F.3d at 1306, 1334, 115 USPQ2d 1681, 1701 (Fed. Cir. 2015); and OIP Techs., 788 F.3d at 1363, 115 USPQ2d at 1092-93. Further, according to the USPTO Berkheimer memo of 04/19/2018, section III.A.1, “A specification demonstrates the well-understood, routine, conventional nature of additional elements when it describes the additional elements as well-understood or conventional (or an equivalent term), as a commercially available product, or in a manner that the additional elements are sufficiently well-known that the specification does not need to describe the particulars of such additional elements to satisfy 35 U.S.C. 112(a)”. Accordingly, (1) the claim recites an abstract idea, (2) the judicial exception is not implemented into a practical application, and (3) the claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception. Claim 1 not patent eligible. Independent claims 11, 18, and 24-25 is/are rejected under like rationale. Dependent claims 2-10 merely recite further details of the abstract steps/elements recited in the independent claims without meaningful limitations beyond generally clarifying the abstract ideas used in the independent claims. These limitations are processes that, under broadest reasonable interpretation, cover mathematical calculations concepts and/or mental processes to be performed. That is, for at least the reasons discussed herein with regards to claim 1, dependent claims 2-10 also fail to integrate the recited judicial exception into a practical application or amount to sufficiently more than the judicial exception. Claims 12-17 and 19-23 are rejected under like rationale. Claim Rejections - 35 USC § 102 The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action: A person shall be entitled to a patent unless – (a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention. Claim(s) 1-25 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Greiner et al. (US20180097632; Hereinafter “Greiner”). Regarding claim 1, Greiner teaches a computer program product comprising: a set of one or more computer-readable storage media; and program instructions, collectively stored in the set of one or more computer-readable storage media, for causing at least one computing device to perform computer operations ([0182-183] – processors implement the system by executing instructions stored in non-transitory computer readable storage media) including: executing an instruction to generate a message digest for a message ([0007] and [0062] – instructions are executed to generate a hash <i.e., digest> of a message), the message digest to be used in authentication of the message ([0012], [0055], and [0172] – the hash <i.e., message digest> is used to authenticate the message), the executing the instruction including: obtaining from the instruction a control indicator ([0069], [0074-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is obtained. If the PS=0 then the initial chaining value “ICV” is set to the previous output chaining value “OCV” XOR’d with the padded final block. If the PS=1 then the ICV is just set to the previous OCV. Hashing is performed using the ICV); determining, based on the control indicator, an initial chaining value to be used to generate the message digest ([0007], [0073-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is obtained. If the PS=0 then the ICV is set to the previous OCV XOR’d with the padded final block. If the PS=1 then the ICV is just set to the previous OCV. Hashing is performed using the ICV <i.e., the next-execution ICV is determined based on the PS value/control indicator>); generating the message digest using the initial chaining value ([0007], [0073-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is obtained. If the PS=0 then the ICV is set to the previous OCV XOR’d with the padded final block. If the PS=1 then the ICV is just set to the previous OCV. Hashing is performed using the ICV <i.e., message digest generated using the ICV>); and providing the message digest to be used in the authentication of the message ([0012], [0055], and [0172] – the hash <i.e., message digest> is used to authenticate the message). Regarding claim 2, Greiner teaches the computer program product of claim 1, wherein the determining the initial chaining value comprises: checking the control indicator ([0069], [0074-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is checked. If the PS=0 then the ICV is set to the previous “OCV” XOR’d with the padded final block. If the PS=1 then the initial chaining value is just set to the previous OCV. Hashing is performed using the ICV); and using a program provided initial chaining value as the initial chaining value, based on the control indicator being a selected value ([0069], [0074-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is checked. If the PS=0 then the ICV is set to the previous “OCV” XOR’d with the padded final block. If the PS=1 then the initial chaining value is just set to the previous OCV <i.e., initial chaining value is determined/provided by a program, based on the PS value>. Hashing is performed using the ICV). Regarding claim 3, Greiner teaches the computer program product of claim 2, wherein the determining the initial chaining value comprises using a default value as the initial chaining value, based on the control indicator being another selected value ([0069], [0074-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is checked. If the PS=0 then the ICV is set to the previous “OCV” XOR’d with the padded final block. If the PS=1 then the initial chaining value is just set to the previous OCV <i.e., initial chaining value can use the default OCV if PS=1, and modifies it via a program if PS=0>. Hashing is performed using the ICV). Regarding claim 4, Greiner teaches the computer program product of claim 1, wherein the message digest is an intermediate message digest for the message ([0133], [0113], and [0055] – the hashing/digest may be an intermediate message digest for the message). Regarding claim 5, Greiner teaches the computer program product of claim 1, wherein the message digest is a last message digest for the message ([0133], [0113], and [0055] – the hashing/digest may be a last message digest for the message). Regarding claim 6, Greiner teaches the computer program product of claim 5, wherein the executing the instruction further includes controlling a storing of at least a part of an output chaining value produced in generating the last message digest based on another control indicator of the instruction ([0140-146], [0089-096], and [0106] – the instruction uses the first-operand length control in R1+1 <i.e., an operand/control input to the instruction> to control whether any bytes of the OCV are stored to the first-operand output buffer. If the length is zero, no first-operand storing occurs. When non-zero, the instruction stores the first n bytes of the OCV to the first operand). Regarding claim 7, Greiner teaches the computer program product of claim 6, wherein the controlling the storing of the at least a part of the output chaining value includes selectively bypassing a storing the at least a part of the output chaining value based on the another control indicator being set to a selected value ([0140-146], [0089-096], and [0106] – when the first operand length is zero <i.e., a selected value>, the first operand is not accessed/the instruction completes without storing OCV bytes to the first operand <i.e., it bypasses storing that part of the OCV to the output operand). Regarding claim 8, Greiner teaches the computer program product of claim 6, wherein the controlling the storing of the at least a part of the output chaining value includes storing the at least a part of the output chaining value based on the another control indicator being set to another selected value ([0140-146], [0089-096], and [0106] – when the first operand length is non-zero <i.e., another selected value>, the instruction stores the first n bytes of the output chaining value at the first operand location and repeats until the first-operand length becomes zero or partial completion occurs). Regarding claim 9, Greiner teaches the computer program product of claim 1, wherein the computer operations further include: interrupting execution of the instruction ([0035], [0057], [0103-104] – KMLD may be interrupted to end with a partial completion. On partial completion, the CPU updates instruction inputs so the execution can branch back to re-execute the instruction to continue); and resuming execution of the instruction using at least one selected input of the instruction ([0057], [0062], [0160-164] – the instruction stores the OCV into the parameter block. When execution is resumed the function uses the previous operands/register state/OCV as input <i.e., the OCV stored in the parameter block is provided back as an input state to the continued execution>). Regarding claim 10, Greiner teaches the computer program product of claim 9, wherein the at least one selected input is an output chaining value that is provided as an input to the instruction ([0113], [0140-146], and [0160-164] – the instruction stores the OCV into the parameter block. When execution is resumed the function uses the previous operands/register state/OCV as input <i.e., the OCV stored in the parameter block is provided back as an input state to the continued execution>). Regarding claim 11, Greiner teaches a computer system comprising: at least one computing device; a set of one or more computer-readable storage media; and program instructions, collectively stored in the set of one or more computer-readable storage media, for causing the at least one computing device to perform computer operations ([0182-183] – processors implement the system by executing instructions stored in non-transitory computer readable storage media) including: executing an instruction to generate a message digest for a message ([0007] and [0062] – instructions are executed to generate a hash <i.e., digest> of a message), the message digest to be used in authentication of the message ([0012], [0055], and [0172] – the hash <i.e., message digest> is used to authenticate the message), the executing the instruction including: obtaining from the instruction a control indicator ([0069], [0074-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is obtained. If the PS=0 then the ICV is set to the previous “OCV” XOR’d with the padded final block. If the PS=1 then the initial chaining value is just set to the previous OCV. Hashing is performed using the ICV); determining, based on the control indicator, an initial chaining value to be used to generate the message digest ([0007], [0073-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is obtained. If the PS=0 then the ICV is set to the previous OCV XOR’d with the padded final block. If the PS=1 then the ICV is just set to the previous OCV. Hashing is performed using the ICV <i.e., the next-execution ICV is determined based on the PS value/control indicator>); generating the message digest using the initial chaining value ([0007], [0073-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is obtained. If the PS=0 then the ICV is set to the previous OCV XOR’d with the padded final block. If the PS=1 then the ICV is just set to the previous OCV. Hashing is performed using the ICV <i.e., message digest generated using the ICV>); and providing the message digest to be used in the authentication of the message ([0012], [0055], and [0172] – the hash <i.e., message digest> is used to authenticate the message). Regarding claim 12, Greiner teaches the computer system of claim 11, wherein the determining the initial chaining value comprises: checking the control indicator ([0069], [0074-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is checked. If the PS=0 then the ICV is set to the previous “OCV” XOR’d with the padded final block. If the PS=1 then the initial chaining value is just set to the previous OCV. Hashing is performed using the ICV); and using a program provided initial chaining value as the initial chaining value, based on the control indicator being a selected value ([0069], [0074-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is checked. If the PS=0 then the ICV is set to the previous “OCV” XOR’d with the padded final block. If the PS=1 then the initial chaining value is just set to the previous OCV <i.e., initial chaining value is determined/provided by a program, based on the PS value>. Hashing is performed using the ICV). Regarding claim 13, Greiner teaches the computer system of claim 12, wherein the determining the initial chaining value comprises using a default value as the initial chaining value, based on the control indicator being another selected value ([0069], [0074-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is checked. If the PS=0 then the ICV is set to the previous “OCV” XOR’d with the padded final block. If the PS=1 then the initial chaining value is just set to the previous OCV <i.e., initial chaining value can use the default OCV if PS=1, and modifies it via a program if PS=0>. Hashing is performed using the ICV). Regarding claim 14, Greiner teaches the computer system of claim 11, wherein the message digest is an intermediate message digest for the message ([0133], [0113], and [0055] – the hashing/digest may be an intermediate message digest for the message). Regarding claim 15, Greiner teaches the computer system of claim 11, wherein the message digest is a last message digest for the message ([0133], [0113], and [0055] – the hashing/digest may be a last message digest for the message). Regarding claim 16, Greiner teaches the computer system of claim 15, wherein the executing the instruction further includes controlling a storing of at least a part of an output chaining value produced in generating the last message digest based on another control indicator of the instruction ([0140-146], [0089-096], and [0106] – the instruction uses the first-operand length control in R1+1 <i.e., an operand/control input to the instruction> to control whether any bytes of the OCV are stored to the first-operand output buffer. If the length is zero, no first-operand storing occurs. When non-zero, the instruction stores the first n bytes of the OCV to the first operand), wherein the controlling the storing of the at least a part of the output chaining value includes selectively bypassing a storing the at least a part of the output chaining value based on the another control indicator being set to a selected value ([0140-146], [0089-096], and [0106] – when the first operand length is zero <i.e., a selected value>, the first operand is not accessed/the instruction completes without storing OCV bytes to the first operand <i.e., it bypasses storing that part of the OCV to the output operand). Regarding claim 17, Greiner teaches the computer system of claim 15, wherein the executing the instruction further includes controlling a storing of at least a part of an output chaining value produced in generating the last message digest based on another control indicator of the instruction ([0140-146], [0089-096], and [0106] – the instruction uses the first-operand length control in R1+1 <i.e., an operand/control input to the instruction> to control whether any bytes of the OCV are stored to the first-operand output buffer. If the length is zero, no first-operand storing occurs. When non-zero, the instruction stores the first n bytes of the OCV to the first operand), wherein the controlling the storing of the at least a part of the output chaining value includes storing the at least a part of the output chaining value based on the another control indicator being set to another selected value ([0140-146], [0089-096], and [0106] – when the first operand length is non-zero <i.e., another selected value>, the instruction stores the first n bytes of the output chaining value at the first operand location and repeats until the first-operand length becomes zero or partial completion occurs). Regarding claim 18, Greiner teaches a computer-implemented method comprising: executing an instruction to generate a message digest for a message ([0007] and [0062] – instructions are executed to generate a hash <i.e., digest> of a message), the message digest to be used in authentication of the message ([0012], [0055], and [0172] – the hash <i.e., message digest> is used to authenticate the message), the executing the instruction including: obtaining from the instruction a control indicator ([0069], [0074-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is obtained. If the PS=0 then the ICV is set to the previous “OCV” XOR’d with the padded final block. If the PS=1 then the initial chaining value is just set to the previous OCV. Hashing is performed using the ICV); determining, based on the control indicator, an initial chaining value to be used to generate the message digest ([0007], [0073-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is obtained. If the PS=0 then the ICV is set to the previous OCV XOR’d with the padded final block. If the PS=1 then the ICV is just set to the previous OCV. Hashing is performed using the ICV <i.e., the next-execution ICV is determined based on the PS value/control indicator>); generating the message digest using the initial chaining value ([0007], [0073-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is obtained. If the PS=0 then the ICV is set to the previous OCV XOR’d with the padded final block. If the PS=1 then the ICV is just set to the previous OCV. Hashing is performed using the ICV <i.e., message digest generated using the ICV>); and providing the message digest to be used in the authentication of the message ([0012], [0055], and [0172] – the hash <i.e., message digest> is used to authenticate the message). Regarding claim 19, Greiner teaches the computer-implemented method of claim 18, wherein the determining the initial chaining value comprises: checking the control indicator ([0069], [0074-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is checked. If the PS=0 then the ICV is set to the previous “OCV” XOR’d with the padded final block. If the PS=1 then the initial chaining value is just set to the previous OCV. Hashing is performed using the ICV); and using a program provided initial chaining value as the initial chaining value, based on the control indicator being a selected value ([0069], [0074-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is checked. If the PS=0 then the ICV is set to the previous “OCV” XOR’d with the padded final block. If the PS=1 then the initial chaining value is just set to the previous OCV <i.e., initial chaining value is determined/provided by a program, based on the PS value>. Hashing is performed using the ICV). Regarding claim 20, Greiner teaches the computer-implemented method of claim 19, wherein the determining the initial chaining value comprises using a default value as the initial chaining value, based on the control indicator being another selected value ([0069], [0074-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is checked. If the PS=0 then the ICV is set to the previous “OCV” XOR’d with the padded final block. If the PS=1 then the initial chaining value is just set to the previous OCV <i.e., initial chaining value can use the default OCV if PS=1, and modifies it via a program if PS=0>. Hashing is performed using the ICV). Regarding claim 21, Greiner teaches the computer-implemented method of claim 18, wherein the message digest is an intermediate message digest for the message ([0133], [0113], and [0055] – the hashing/digest may be an intermediate message digest for the message). Regarding claim 22, Greiner teaches the computer-implemented method of claim 18, wherein the message digest is a last message digest for the message ([0133], [0113], and [0055] – the hashing/digest may be a last message digest for the message). Regarding claim 23, Greiner teaches the computer-implemented method of claim 18, wherein the executing the instruction further includes controlling a storing of at least a part of an output chaining value produced in generating the last message digest based on another control indicator of the instruction ([0140-146], [0089-096], and [0106] – the instruction uses the first-operand length control in R1+1 <i.e., an operand/control input to the instruction> to control whether any bytes of the OCV are stored to the first-operand output buffer. If the length is zero, no first-operand storing occurs. When non-zero, the instruction stores the first n bytes of the OCV to the first operand). Regarding claim 24, Greiner teaches a computer program product comprising: a set of one or more computer-readable storage media; and program instructions, collectively stored in the set of one or more computer-readable storage media, for causing at least one computing device to perform computer operations ([0182-183] – processors implement the system by executing instructions stored in non-transitory computer readable storage media) including: executing an instruction to generate a message digest for a message ([0007] and [0062] – instructions are executed to generate a hash <i.e., digest> of a message), the instruction including a flags field having at least one control indicator ([0069], [0073-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. The instruction comprises a section for with fields controlling the execution of the hash <i.e., flags fields>. E.g., the instruction’s PS field is checked for a PS value <i.e., control indicator>. If PS=0 then the initial chaining value “ICV” is set to the previous output chaining value “OCV” XOR’d with the padded final block. If the PS=1 then the ICV is just set to the previous OCV. Hashing is performed using the ICV), an address of the message ([0013], [0179], [0071-074] – the instruction comprises an address of the message), and a function code to specify a function of the instruction to be performed ([0073-077], [0082], and [0062] – a function code is included in the instruction and specifies the type of hashing <i.e., function of the instruction> to be performed), the function being a specific hash technique to generate the message digest ([0073-077], [0082], and [0062] – a function code is included in the instruction specifies the type of hashing <i.e., function of the instruction> to be performed), the message digest to be used in authentication of the message ([0012], [0055], and [0172] – the hash <i.e., message digest> is used to authenticate the message), the executing the instruction including: obtaining from the instruction a control indicator of the at least one control indicator ([0069], [0074-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is obtained. If the PS=0 then the ICV is set to the previous “OCV” XOR’d with the padded final block. If the PS=1 then the initial chaining value is just set to the previous OCV. Hashing is performed using the ICV); determining, based on the control indicator, an initial chaining value to be used to generate the message digest for the message specified by the instruction ([0007], [0073-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is obtained. If the PS=0 then the ICV is set to the previous OCV XOR’d with the padded final block. If the PS=1 then the ICV is just set to the previous OCV. Hashing is performed using the ICV <i.e., the next-execution ICV is determined based on the PS value/control indicator>); generating the message digest using the initial chaining value ([0007], [0073-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is obtained. If the PS=0 then the ICV is set to the previous OCV XOR’d with the padded final block. If the PS=1 then the ICV is just set to the previous OCV. Hashing is performed using the ICV <i.e., message digest generated using the ICV>); and providing the message digest to be used in the authentication of the message ([0012], [0055], and [0172] – the hash <i.e., message digest> is used to authenticate the message). Regarding claim 25, Greiner teaches a computer-implemented method comprising: executing an instruction to generate a message digest for a message ([0007] and [0062] – instructions are executed to generate a hash <i.e., digest> of a message), the instruction including a flags field having at least one control indicator ([0069], [0073-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. The instruction comprises a section for with fields controlling the execution of the hash <i.e., flags fields>. E.g., the instruction’s PS field is checked for a PS value <i.e., control indicator>. If PS=0 then the initial chaining value “ICV” is set to the previous output chaining value “OCV” XOR’d with the padded final block. If the PS=1 then the ICV is just set to the previous OCV. Hashing is performed using the ICV), an address of the message ([0013], [0179], [0071-074] – the instruction comprises an address of the message), and a function code to specify a function of the instruction to be performed ([0073-077], [0082], and [0062] – a function code is included in the instruction and specifies the type of hashing <i.e., function of the instruction> to be performed), the function being a specific hash technique to generate the message digest ([0073-077], [0082], and [0062] – a function code is included in the instruction specifies the type of hashing <i.e., function of the instruction> to be performed), the message digest to be used in authentication of the message ([0012], [0055], and [0172] – the hash <i.e., message digest> is used to authenticate the message), the executing the instruction including: obtaining from the instruction a control indicator of the at least one control indicator ([0069], [0074-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is obtained. If the PS=0 then the ICV is set to the previous “OCV” XOR’d with the padded final block. If the PS=1 then the initial chaining value is just set to the previous OCV. Hashing is performed using the ICV); determining, based on the control indicator, an initial chaining value to be used to generate the message digest for the message specified by the instruction ([0007], [0073-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is obtained. If the PS=0 then the ICV is set to the previous OCV XOR’d with the padded final block. If the PS=1 then the ICV is just set to the previous OCV. Hashing is performed using the ICV <i.e., the next-execution ICV is determined based on the PS value/control indicator>); generating the message digest using the initial chaining value ([0007], [0073-075], and [0133-142] – an instruction for generating a hash of a message <i.e., message digest> is received. A PS value <i.e., control indicator> of the instruction is obtained. If the PS=0 then the ICV is set to the previous OCV XOR’d with the padded final block. If the PS=1 then the ICV is just set to the previous OCV. Hashing is performed using the ICV <i.e., message digest generated using the ICV>); and providing the message digest to be used in the authentication of the message ([0012], [0055], and [0172] – the hash <i.e., message digest> is used to authenticate the message). Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure: Lundvall et al. (US20040230814) teaches a system for implementing KIMD and KLMD hashing, wherein a function code is used to determine the initial chaining value (see, e.g., Lundvall at [0033-040], [0075-077], and [0107-112]). Buer et al. (US20070110230) teaches a hashing accelerator that speeds up authentication by starting from an initial hash state and then calculating subsequent blocks based on the prior blocks output state (see, e.g., abstract, [0009], [0011], and [0036]). Any inquiry concerning this communication or earlier communications from the examiner should be directed to JOSHUA RAYMOND WHITE whose telephone number is (571)272-4365. The examiner can normally be reached Monday-Thursday, & Alternate Fridays. 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, Taghi Arani can be reached at 5712723787. 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. /J.R.W./Examiner, Art Unit 2438 /TAGHI T ARANI/Supervisory Patent Examiner, Art Unit 2438
Read full office action

Prosecution Timeline

Jun 27, 2024
Application Filed
Jan 03, 2026
Non-Final Rejection — §101, §102 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12587363
METHOD AND APPARATUS FOR IMPROVED VIDEO INFORMATION SECURITY AGAINST UNAUTHORIZED ACCESS
2y 5m to grant Granted Mar 24, 2026
Patent 12526156
MORE EFFICIENT POST-QUANTUM SIGNATURES
2y 5m to grant Granted Jan 13, 2026
Patent 12519616
NOISY TRANSACTION FOR PROTECTION OF DATA
2y 5m to grant Granted Jan 06, 2026
Patent 12506655
PROVISIONING CONTROL APPARATUS AND METHOD FOR PROVISIONING ELECTRONIC COMPONENTS OR DEVICES
2y 5m to grant Granted Dec 23, 2025
Patent 12506627
COMPUTATION OFFLOADING APPROACH IN BLOCKCHAIN-ENABLED MCS SYSTEMS
2y 5m to grant Granted Dec 23, 2025
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

1-2
Expected OA Rounds
76%
Grant Probability
99%
With Interview (+35.9%)
2y 8m
Median Time to Grant
Low
PTA Risk
Based on 115 resolved cases by this examiner. Grant probability derived from career allow 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