US 12,388,653 B1
Stateful hash-based signatures
Hicham Lozi, Palo Alto, CA (US); and Peter John Markall, Burgess Hill (GB)
Assigned to AMERICAN EXPRESS TRAVEL RELATED SERVICES COMPANY, INC., New York, NY (US)
Filed by American Express Travel Related Services Company, Inc., New York, NY (US)
Filed on Dec. 30, 2021, as Appl. No. 17/566,028.
Int. Cl. H04L 9/32 (2006.01); H04L 9/30 (2006.01)
CPC H04L 9/3247 (2013.01) [H04L 9/30 (2013.01); H04L 9/3239 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method, comprising:
hashing a message to generate a message hash;
splitting the message hash into a predefined number of parts, each of the predefined number of parts being of equal size;
splitting a signature of the message into the predefined number of parts, each of the predefined number of parts being of equal size;
calculating a value for a respective signature debt for each of the predefined number of parts of the message hash, wherein the value for the respective signature debt is based at least in part on a current value of a remaining signature counter;
calculating a value for a verification debt for each of the predefined number of parts of the message hash, the value for the verification debt for each of the predefined number of parts being based at least in part on the value of the respective signature debt for each of the predefined number of parts of the message hash;
calculating a verification value for each of the predefined number of parts of the signature, the verification value being the result of hashing a respective part of the signature by a number of times equal to the value of the verification debt for the respective part of the signature;
splitting a public key into the predefined number of parts, each of the predefined number of parts being of equal size; and
comparing the verification value for each of the predefined number of parts of the signature to a respective one of the predefined number of parts of the public key, wherein a mismatch between the verification value for one of the parts of the signature and a respective one of the parts of the public key indicates that the signature is invalid.