IP Library Granted Patent US 12,355,874
Granted Patent B2
US 12,355,874 · App. 18/305,742 · Granted Jul 8, 2025

Stateful hash-based signatures using a secure device

Inventor: Robert J. Relyea (Sunnyvale, CA)
Assignee: Red Hat, Inc.
H04L9/0877H04L9/0825H04L9/0869H04L9/3236H04L9/3247
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,355,874
App. No.
18/305,742
Granted
Jul 8, 2025
Kind
B2
Abstract

Stateful hash-based signatures can be implemented using a secure device. For example, a computing device can transmit a request to a secure device to obtain a partial digital signature usable to cryptographically sign data, where the secure device is separate from the computing device. The secure device can generate the partial digital signature using a private key, which is generated by the secure device based on a counter value. The counter value is maintained internally to the secure device. The computing device can then receive, from the secure device, the partial digital signature and the counter value corresponding to the private key. The computing device can construct a full digital signature, to cryptographically sign the data, based on the partial digital signature and the counter value.

Claims (67)

1. A method comprising:

transmitting, by a processing device, a request to a secure device to obtain a partial digital signature for cryptographically signing data, wherein the secure device is separate from the processing device and configured to generate the partial digital signature using a private key, the private key being generated by the secure device based on a counter value that is maintained internally to the secure device, wherein the secure device includes a hardware processor;

receiving, by the processing device and from the secure device, the partial digital signature associated with the request;

receiving, by the processing device and from the secure device, the counter value corresponding to the private key; and

constructing, by the processing device, a full digital signature, to cryptographically sign the data, based on the partial digital signature and the counter value.

2. The method of claim 1 , wherein the secure device is configured to increment the counter value after generating the partial digital signature using the private key.

3. The method of claim 1 , wherein the secure device is configured to:

generate a set of private keys and a set of public keys corresponding to the set of private keys, the private key being part of the set of private keys;

provide the set of public keys to the processing device; and

maintain the set of private keys internally to the secure device and hidden from the processing device.

4. The method of claim 3 , wherein the secure device is configured to generate the set of private keys by:

generating a seed value;

configuring a key generation function based on the seed value; and

after configuring the key generation function based on the seed value, executing the key generation function to generate the set of private keys.

5. The method of claim 3 , further comprising:

prior to transmitting the request to the secure device, generating, by the processing device, a Merkle tree based on the set of public keys; and

subsequent to receiving the partial digital signature from the secure device:

determining, by the processing device, a public key corresponding to the counter value from among the set of public keys; and

constructing, by the processing device, the full digital signature based on the partial digital signature and a pathway through the Merkle tree starting from the public key.

6. The method of claim 5 , wherein the Merkle tree includes a root hash, and further comprising:

providing, by the processing device, the root hash or at least part of the Merkle tree to the secure device for storage in an internal memory of the secure device; and

removing, by the processing device, the Merkle tree from a memory that is accessible to the processing device.

7. The method of claim 6 , further comprising, subsequent to removing the root hash and the Merkle tree from the memory:

requesting, by the processing device, the root hash and/or the at least part of the Merkle tree from the secure device by incorporating a flag into the request; and

receiving, by the processing device, the root hash and/or the at least part of the Merkle tree from the secure device as part of a response to the request, the response also including the partial digital signature and the counter value.

8. The method of claim 1 , wherein the secure device is a smartcard or a trusted platform module.

9. The method of claim 1 , wherein a counter containing the counter value is a pointer that points to a first memory location, and further comprising:

detecting, by the secure device, an event associated with the counter; and

in response to detecting the event, updating, by the secure device, the pointer to point to a second memory location that is different than the first memory location.

10. A system comprising:

a secure device that includes a hardware processor;

a processing device that is separate from the secure device; and

a memory communicatively coupled to the processing device, the memory including a software program that is executable by the processing device for causing the processing device to:

transmit a request to the secure device to obtain a partial digital signature for cryptographically signing data, wherein the secure device is separate from the processing device and configured to generate the partial digital signature using a private key, the private key being generated by the secure device based on a counter value that is maintained internally to the secure device;

receive, from the secure device, the partial digital signature associated with the request;

receive, from the secure device, the counter value corresponding to the private key; and

construct a full digital signature, to cryptographically sign the data, based on the partial digital signature and the counter value.

11. The system of claim 10 , wherein the secure device is configured to increment the counter value after generating the partial digital signature.

12. The system of claim 10 , wherein the secure device is configured to:

generate a set of private keys and a set of public keys corresponding to the set of private keys, the private key being part of the set of private keys;

provide the set of public keys to the processing device; and

maintain the set of private keys internally to the secure device and hidden from the processing device.

13. The system of claim 12 , wherein the secure device is configured to generate the set of private keys by:

generating a seed value;

configuring a key generation function based on the seed value; and

after configuring the key generation function based on the seed value, executing the key generation function to generate the set of private keys.

14. The system of claim 12 , wherein the software program is further executable by the processing device for causing the processing device to:

prior to transmitting the request to the secure device, generate a Merkle tree based on the set of public keys; and

subsequent to receiving the partial digital signature from the secure device:

determine a public key corresponding to the counter value from among the set of public keys; and

construct the full digital signature based on the partial digital signature and a pathway through the Merkle tree starting from the public key.

15. The system of claim 14 , wherein the Merkle tree includes a root hash, and wherein the software program is further executable by the processing device for causing the processing device to:

provide the root hash and at least part of the Merkle tree to the secure device for storage in an internal memory of the secure device; and

remove the root hash and the Merkle tree from the memory.

16. The system of claim 12 , wherein the software program is further executable by the processing device for causing the processing device to:

access a predefined mapping that correlates the set of public keys to a set of index values, each public key in the set of public keys being correlated in the predefined mapping to a respective index value in the set of index values; and

determine which public key corresponds to the counter value based on the predefined mapping.

17. The system of claim 10 , wherein the secure device is a smartcard or a smart key fob.

18. The system of claim 10 , wherein the secure device is a trusted platform module that is internal to a computing device that also includes the processing device.

19. The system of claim 10 , wherein a counter containing the counter value is a pointer that points to a first memory location, and wherein the secure device is configured to:

detect an event associated with the counter; and

in response to detecting the event, update the pointer to point to a second memory location that is different than the first memory location.

20. A non-transitory computer-readable medium comprising program code that is executable by a processing device for causing the processing device to:

transmit a request to a secure device to obtain a partial digital signature for cryptographically signing data, wherein the secure device is separate from the processing device and configured to generate the partial digital signature using a private key, the private key being generated by the secure device based on a counter value that is maintained internally to the secure device, wherein the secure device includes a hardware processor;

receive, from the secure device, the partial digital signature associated with the request;

receive, from the secure device, the counter value corresponding to the private key; and

construct a full digital signature, to cryptographically sign the data, based on the partial digital signature and the counter value.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 24, 2023
From: RELYEA, ROBERT J.
To: RED HAT, INC.
Reel/Frame 063418/0606 →
Continuity (1)
Related Publication 20240356736A1 · Oct 24, 2024
References Cited (11)
US 10230525B2 · Campagna et al. · 2019 [cited by applicant]
US 10581616B1 · Paruzel · 2020 [cited by applicant]
US 11405213B2 · Ghosh et al. · 2022 [cited by applicant]
US 20190319802A1 · Misoczki et al. · 2019 [cited by applicant]
US 20200036534A1 · Atmopawiro · 2020 [cited by examiner]
US 20210306155A1 · Sastry · 2021 [cited by examiner]
US 20220078024A1 · Misoczki · 2022 [cited by examiner]
US 20220086009A1 · Vacek · 2022 [cited by examiner]
US 20230065643A1 · Vargas et al. · 2023 [cited by applicant]
Campos et al., “LMS vs XMSS: Comparison of Stateful Hash-Based Signature Schemes on ARM Cortex-14,” Progress in Cryptology—Africacrypt 2020, Jul. 5, 2020: pp. 258-277. [cited by applicant]
Hülsing et al., “Forward Secure Signatures on Smart Cards Full Version,” SAC: International Conference on Selected Areas in Cryptography, Lecture Notes on Computer Science, vol. 7707, Aug. 2012: pp. 1-19. [cited by applicant]