US 12,293,194 B2
Determining expected hash-values in functions with control flow
Nathaniel Casey Voorhies, Menlo Park, CA (US); and Antonio Cortes Perez, Sunnyvale, CA (US)
Assigned to Google LLC, Mountain View, CA (US)
Filed by Google LLC, Mountain View, CA (US)
Filed on Jan. 18, 2024, as Appl. No. 18/416,731.
Application 18/416,731 is a continuation of application No. 17/427,406, granted, now 11,880,688, previously published as PCT/US2020/053550, filed on Sep. 30, 2020.
Prior Publication US 2024/0152361 A1, May 9, 2024
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 9/38 (2018.01); G06F 16/901 (2019.01)
CPC G06F 9/3867 (2013.01) [G06F 16/9014 (2019.01)] 20 Claims
OG exemplary drawing
 
1. A method performed by a computing device, the method comprising:
executing function instructions to arrive at a target executed-instruction state, the function instructions:
comprising a plurality of basic blocks of the function instructions;
having at least two execution paths between a first basic block and a second basic block of the plurality of basic blocks, and
the target executed-instruction state being within the second basic block;
executing hash instructions within the plurality of basic blocks to arrive at a hash value at the target executed-instruction state, the hash instructions including respective hash-input instructions within each of the plurality of basic blocks other than the second basic block;
determining an expected hash-value at the target executed-instruction state based on an initial hash-value and a hash function, the determining of the expected hash-value at the target executed-instruction state resulting in a same hash-value regardless of which of the at least two execution paths are executed between the first basic block and the second basic block;
comparing the hash value at the target executed-instruction state to the expected hash-value at the target executed-instruction state; and
responsive to the hash value at the target executed-instruction state not matching the expected hash-value of the executed-instruction state, performing a security function.