IP Library › Granted Patent US 12,476,813
Granted Patent B2
US 12,476,813 · App. 18/608,681 · Granted Nov 18, 2025

Public key service for message authentication

Inventors: Laurent Pizot (Vancouver, WA); Thalia May Laing (Bristol, GB); Stephen D. Panshin (Corvallis, OR)
Assignee: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
H04L9/3228H04L9/0825H04L9/0869H04L9/3247H04L9/083H04L9/0863H04L63/062H04L63/067
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,476,813
App. No.
18/608,681
Granted
Nov 18, 2025
Kind
B2
Abstract

A public key service determines a seed value used by a sending device to generate a one-time signature (OTS) private key that the sending device uses to digitally sign a message before sending the message to a receiving device. The public key service generates, based on the seed value, a public key used to authenticate the digitally signed message as having been sent by the sending device. The public key service receives a request for the public key from the receiving device, and in response sends the public key to the receiving device, such that the receiving device is able to authenticate the message.

Claims (64)

1 . A method comprising:

determining, by a processor providing a public key service, a seed value used by a sending device to generate a one-time signature (OTS) private key that the sending device uses to digitally sign a message before sending the message as has been digitally signed to a receiving device;

generating, by the processor and based on the seed value, a public key used to authenticate the digitally signed message as having been sent by the sending device;

receiving, by the processor, a request for the public key from the receiving device; and

in response to receiving the request, sending, by the processor, the public key to the receiving device, such that the receiving device is able to authenticate the message.

2 . The method of claim 1 , wherein the seed value is unique to the sending device as compared to other sending devices,

wherein the public key is an OTS public key corresponding to the OTS private key that the sending device uses to digitally sign the message,

and wherein no public key other than the OTS public key is needed to authenticate the message as having been sent by the sending device.

3 . The method of claim 2 , wherein the OTS public key is generated to correspond to the OTS private key,

and wherein a different OTS private key and a different OTS public key are generated for every message that the sending device is to send.

4 . The method of claim 1 , wherein the sending device is one of a plurality of sending devices, the seed value is unique to the sending device as compared to other of the sending devices, the message is one of a plurality of messages that the sending device is able to send, and the OTS private key is one of a plurality of OTS private keys,

wherein the public key is a root public key corresponding to a root hash of a binary tree including a plurality of leaf hashes, the leaf hashes corresponding to OTS public keys for the OTS private keys that the sending device uses to digitally sign the messages,

and wherein, for each message, the root public key, and an authentication path from the leaf hash corresponding to the OTS public key to the root hash in the binary tree are needed to authenticate the message as having been sent by the sending device.

5 . The method of claim 4 , wherein the root public key is used only to authenticate the messages sent by the sending device and not to authenticate messages sent by the other of the sending devices.

6 . The method of claim 4 , wherein the binary tree comprises a plurality of binary trees respectively corresponding to the sending devices,

and wherein the root public key is used to authenticate the messages sent by the sending device as well as to authenticate messages sent by the other of the sending devices.

7 . The method of claim 4 , further comprising:

generating, by the processor, the OTS public keys corresponding to the OTS private keys; and

generating, by the processor, the binary tree based on the OTS public keys,

wherein the root public key is generated from the root hash of the binary tree.

8 . The method of claim 7 , further comprising:

receiving, by the processor, a request from the sending device for the binary tree; and

in response to receiving the request, sending, by the processor, the binary tree to the sending device.

9 . The method of claim 7 , further comprising:

receiving, by the processor, a request from the sending device for a portion of the binary tree corresponding to a subset of the messages; and

in response to receiving the request, sending, by the processor, the portion of the binary tree corresponding to the subset of the messages to the sending device.

10 . A sending device comprising:

a processor; and

a memory storing program code and a seed value, the program code executable by the processor to:

generate a one-time signature (OTS) private key using the seed value;

digitally sign a message using the OTS private key;

send the digitally signed message to a receiving device; and

send a communication to a public key service, the communication relating to a public key that the public key service generates and provides to the receiving device to use to authenticate the digitally signed message as having been sent by the sending device.

11 . The sending device of claim 10 , wherein the seed value is unique to the sending device as compared to other sending devices,

wherein the public key is an OTS public key corresponding to the OTS private key that the sending device uses to digitally sign the message,

and wherein no public key other than the OTS public key is needed to authenticate the message as having been sent by the sending device.

12 . The sending device of claim 11 , wherein the message is one of a plurality of messages that the sending device is to send, and the OTS private key is further generated using a message index,

and the message index is incremented for each message, such that a different OTS private key is generated for each message.

13 . The sending device of claim 10 , wherein the sending device is one of a plurality of sending devices, the seed value is unique to the sending device as compared to other of the sending devices, the message is one of a plurality of messages that the sending device is able to send, and the OTS private key is one of a plurality of OTS private keys,

wherein the public key is a root public key corresponding to a root hash of a binary tree including a plurality of leaf hashes, the leaf hashes corresponding to OTS public keys for the OTS private keys that the sending device uses to digitally sign the messages,

and wherein, for each message, the root public key and an authentication path from the leaf hash corresponding to the OTS public key for the message to the root hash in the binary tree are needed to authenticate the message as having been sent by the sending device.

14 . The sending device of claim 13 , wherein the program code is executable by the processor to further, as each message is sent, provide to the receiving device the authentication path from the leaf hash corresponding to the OTS public key for the message to the root hash.

15 . The sending device of claim 13 , wherein the communication is sent to the public key service prior to sending any message to the receiving device, and the communication is a request for the binary tree,

and wherein the program code is executable by the processor to further, after sending the communication, receive the binary tree from the public key service.

16 . The sending device of claim 13 , wherein, for each of a plurality of subsets of the messages, the communication is sent to the public key service prior to sending any message of the subset to the receiving device, and the communication is a request for a portion of the binary tree corresponding to a subset of the messages,

and wherein the program code is executable by the processor to further, after sending the communication, receive the portion of the binary tree that has been requested.

17 . A non-transitory computer-readable data storage medium storing program code executable by a receiving device to perform processing comprising:

receiving from a sending device a message that has been digitally signed with a one-time signature (OTS) private key;

receiving from a public key service a public key to authenticate the digitally signed message as having been sent by the sending device; and

authenticating the message using the public key.

18 . The non-transitory computer-readable data storage medium of claim 17 , wherein the public key is an OTS public key corresponding to the OTS private key that the sending device used to digitally sign the message,

wherein no public key other than the OTS public key is needed to authenticate the message as having been sent by the sending device,

wherein the message is one of a plurality of messages that the receiving device receives from the sending device, and each message is authenticated with a different OTS public key,

and wherein the receiving device receives the different OTS public key for each message from the public key service.

19 . The non-transitory computer-readable data storage medium of claim 17 , wherein the message is one of a plurality of messages that the receiving device receives from the sending device, and the OTS private key is one of a plurality of OTS private keys,

wherein the public key is a root public key corresponding to a root hash of a binary tree including a plurality of leaf hashes, the leaf hashes corresponding to OTS public keys corresponding to the OTS private keys that the sending device uses to digitally sign the messages,

wherein, for each message, the root public key and an authentication path from the leaf hash corresponding to the OTS public key for the message to the root hash in the binary tree are needed to authenticate the message as having been sent by the sending device,

wherein, for each message, the receiving device receives the authentication path from the leaf hash corresponding to the OTS public key for the message to the root hash,

and wherein the root public key is used only to authenticate the messages received from the sending device and not to authenticate messages received from other sending devices.

20 . The non-transitory computer-readable data storage medium of claim 17 , wherein the message is one of a plurality of messages that the receiving device receives from the sending device, and the OTS private key is one of a plurality of OTS private keys,

wherein the public key is a root public key corresponding to a root hash of a binary tree including a plurality of leaf hashes, the leaf hashes corresponding to OTS public keys corresponding to the OTS private keys that the sending device uses to digitally sign the messages,

wherein, for each message, the root public key, and an authentication path from the leaf hash corresponding to the OTS public key for the message to the root hash in the binary tree are needed to authenticate the message as having been sent by the sending device,

wherein, for each message, the receiving device receives the authentication path from the leaf hash corresponding to the OTS public key for the message to the root hash,

and wherein the root public key is used to authenticate the messages received from the sending device as well as to authenticate messages sent by other sending devices.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2024
From: HP UK DEVELOPMENT LIMITED
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 067588/0524 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2024
From: LAING, THALIA MAY
To: HP UK DEVELOPMENT LIMITED
Reel/Frame 067246/0289 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2024
From: LAING, THALIA MAY
To: HP UK DEVELOPMENT LIMITED
Reel/Frame 067141/0089 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 17, 2024
From: HP UK DEVELOPMENT LIMITED; PIZOT, LAURENT; PANSHIN, STEPHEN D.
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 067141/0109 →
Continuity (1)
Related Publication 20250293859A1 · Sep 18, 2025
References Cited (10)
US 11184157B1 · Gueron · 2021 [cited by examiner]
US 12321580B2 · Wang · 2025 [cited by examiner]
US 20160218879A1 · Ferrin · 2016 [cited by applicant]
US 20180337772A1 · Acar et al. · 2018 [cited by applicant]
US 20200387639A1 · Hummel et al. · 2020 [cited by applicant]
US 20210176072A1 · Chalkias · 2021 [cited by examiner]
US 20220086009A1 · Vacek · 2022 [cited by examiner]
US 20220224548A1 · Mondello et al. · 2022 [cited by applicant]
US 20250132936A1 · Kanovitz et al. · 2025 [cited by applicant]
US 20250300812A1 · Azouaoui · 2025 [cited by examiner]