IP Library Granted Patent US 12,192,375
Granted Patent B2
US 12,192,375 · App. 17/423,951 · Granted Jan 7, 2025

Method for generating stateful hash based signatures of messages to be signed

Inventors: Jan Vacek (Meudon, FR); Aline Gouget (Meudon, FR); Michael Gardiner (Ontario, CA)
Assignee: THALES DIS FRANCE SAS
H04L9/3247H04L9/0869H04L9/0877H04L9/3239
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,192,375
App. No.
17/423,951
Granted
Jan 7, 2025
Kind
B2
Abstract

Generation of stateful hash based signatures of messages to be signed in a key management system including a plurality of tamper-proof computing devices by a manager device of generating a master merkle tree, triggering generating a predetermined number of slave merkle trees, for each message to be signed selecting a tamper-proof computing device for signing, assigning one yet unassigned generated slave merkle tree to said selected tamper-proof computing device, generating and sending to said selected tamper-proof computing device a command comprising said message to be signed, data enabling to obtain an OTS private key of the assigned slave merkle tree to be used to generate an OTS signature of the message to be signed, and a state value associated to said assigned slave merkle tree and keeping track of the OTS private keys of said assigned slave merkle tree already used for generating a signature.

Claims (54)

1. A method for operating a key management system (“KMS”) including a manager device and a number greater than one of tamper-proof computing devices, to generate stateful hash-based signatures of messages to be signed in the key management system, wherein the manager device and tamper-proof computing devices respectively comprise a processor and memory, the memory storing instructions which when executed by the respective processor causes the respective processor to perform respective steps of said method,

said method comprising:

generating, by said manager device, a master merkle tree having a root and leaves, the root of the master merkle tree being a master public signature key and the leaves of the master merkle tree being master One-Time Signature (“OTS”) public keys, associated with master OTS private keys,

triggering, by said manager device, generation of a predetermined number of slave merkle trees, wherein each leaf of the slave merkle trees is an OTS public key associated with an OTS private key, said predetermined number of slave merkle trees being equal to the number of tamper-proof computing devices and each generated slave merkle tree has its root signed by one of the master OTS private keys of the master merkle tree to build-up a multi-tree structure,

for each message to be signed:

selecting, by said manager device, one of the signing tamper-proof computing devices for signing,

dynamically assigning, by said manager device, one yet unassigned generated slave merkle tree to said signing tamper-proof computing device for the issuance of one signature only,

generating and sending, by said manager device to said signing tamper-proof computing device a command comprising said message to be signed, data enabling obtaining the OTS private key of the assigned slave merkle tree to be used to generate an OTS signature of the message to be signed, and a state value associated to said assigned slave merkle tree and keeping track of the OTS private keys of said assigned slave merkle tree already used for generating a signature,

obtaining, by said signing tamper-proof computing device, a signing OTS private key from said data enabling obtaining the OTS private key,

generating, by said signing tamper-proof computing device, a generated OTS signature of said message to be signed with said signing OTS private key,

updating, by said signing tamper-proof computing device, said state value associated to said assigned slave merkle tree such that said signing OTS private key cannot be used anymore for generating signatures,

generating a stateful hash based signature of said message to be signed from said generated OTS signature using an authentication path, in the slave merkle tree assigned to said signing tamper-proof computing device, of the OTS public key corresponding to said signing OTS private key,

said stateful hash based signatures being configured to be verified by a verification process which uses the master public signature key as the only public signature key.

2. The method of claim 1 , wherein the state value is protected for authenticity or is encrypted.

3. The method of claim 1 , comprising:

generating, by said signing tamper-proof computing device, said stateful hash based signature from said authentication path and said generated OTS signature.

4. The method of claim 3 , comprising:

obtaining, by said signing tamper-proof computing device, said slave merkle tree assigned to said signing tamper-proof computing device,

generating, by said signing tamper-proof computing device, said authentication path from said slave merkle tree assigned to said signing tamper-proof computing device.

5. The method of claim 4 , wherein said slave merkle tree assigned to said signing tamper-proof computing device is stored in said signing tamper-proof computing device.

6. The method of claim 4 , comprising:

sending, by said manager device to said signing tamper-proof computing device, a seed,

generating from said seed, by said signing tamper-proof computing device, the generated OTS private keys of the slave merkle tree assigned to said signing tamper-proof computing device using a pseudorandom generator, and said slave merkle tree based on said generated OTS private keys.

7. The method of claim 4 , wherein said slave merkle tree assigned to said signing tamper-proof computing device is stored in a database of the KMS and wherein said tamper-proof computing device obtains said stored slave merkle tree from said database of said KMS.

8. The method of claim 1 , wherein said key management system further comprises a second KMS computing device, comprising:

sending, said generated OTS signature, by said signing tamper-proof computing device to said second KMS computing device,

generating, by said second KMS computing device, said stateful hash based signature from said authentication path and said generated OTS signature.

9. The method of claim 1 , wherein the data enabling obtaining the OTS private key are among: a seed enabling generation of the OTS private keys with a pseudorandom generator, said OTS private key, or an identifier of said OTS private key.

10. The method of claim 1 , wherein said step of updating said state value comprises, after generation of said OTS signature by said signing tamper-proof computing device:

sending, from said signing tamper-proof computing device, said state value to said manager device.

11. A non-transitory memory comprising a computer program product directly loadable into a memory of at least one computer, the computer program product having software code instructions for performing a method for generating stateful hash based signatures of messages to be signed in a key management system (“KMS”) including a manager device and a plurality of tamper-proof computing devices, wherein the manager device and tamper-proof computing devices respectively comprise a processor and memory, the respective memory storing said software code instructions, the software code instructions comprising instructions to cause the respective processors to:

generate, by said manager device, a master merkle tree having a root and leaves, the root of the master merkle tree being a master public signature key and the leaves of the master merkle tree being master One-Time Signature (“OTS”) public keys, associated with master OTS private keys,

trigger, by said manager device, generation of a predetermined number of slave merkle trees, wherein each leaf of the slave merkle trees is an OTS public key associated with an OTS private key, said predetermined number of slave merkle trees being equal to the number of tamper-proof computing devices and each generated slave merkle tree has its root signed by one of the master OTS private keys of the master merkle tree to build-up a multi-tree structure,

for each message to be signed:

select, by said manager device, one of the signing tamper-proof computing devices for signing,

dynamically assign, by said manager device, one yet unassigned generated slave merkle tree to said signing tamper-proof computing device for issuance of one signature only,

generate and sending, by said manager device to said signing tamper-proof computing device a command comprising said message to be signed, data enabling obtaining the OTS private key of the assigned slave merkle tree to be used to generate an OTS signature of the message to be signed, and a state value associated to said assigned slave merkle tree and keeping track of the OTS private keys of said assigned slave merkle tree already used for generating a signature,

obtain, by said signing tamper-proof computing device, a signing OTS private key from said data enabling to obtain an obtaining the an OTS private key,

generate, by said signing tamper-proof computing device, an OTS signature of said message to be signed with said signing OTS private key,

update, by said signing tamper-proof computing device, said state value associated to said assigned slave merkle tree such that said obtained OTS private key cannot be used anymore for generating signatures,

generate a stateful hash based signature of said message to be signed from said generated OTS signature using an authentication path, in the slave merkle tree assigned to said signing tamper-proof computing device, of the OTS public key corresponding to said obtained OTS private key,

said generated stateful hash based signatures being configured to be verified by a verification process which uses the master public signature key at the root of the master merkle tree as the only public signature key.

12. A key management system (KMS) comprising a manager device and a number greater than one of tamper-proof computing devices, wherein the manager device and tamper-proof computing devices respectively comprise a processor and memory, the respective memory storing instructions which when executed by the respective processor causes the respective processor to perform:

generate, by said manager device, a master merkle tree having a root and leaves, the root of the master merkle tree being a master public signature key and the leaves of the master merkle tree being master One-Time Signature (“OTS”) public keys, associated with master OTS private keys,

trigger, by said manager device, generation of a predetermined number of slave merkle trees, wherein each leaf of the slave merkle trees is an OTS public key associated with an OTS private key, said predetermined number of slave merkle trees being equal to the number of tamper-proof computing devices and each generated slave merkle tree has its root signed by one of the master OTS private keys of the master merkle tree to build-up a multi-tree structure,

for each message to be signed:

select, by said manager device, one of the signing tamper-proof computing devices for signing,

dynamically assign, by said manager device, one yet unassigned generated slave merkle tree to said signing tamper-proof computing device for issuance of one signature only,

generate and sending, by said manager device to said signing tamper-proof computing device a command comprising said message to be signed, data enabling obtaining the OTS private key of the assigned slave merkle tree to be used to generate an OTS signature of the message to be signed, and a state value associated to said assigned slave merkle tree and keeping track of the OTS private keys of said assigned slave merkle tree already used for generating a signature,

obtain, by said signing tamper-proof computing device, a signing OTS private key from said data enabling to obtain an obtaining the an OTS private key,

generate, by said signing tamper-proof computing device, an OTS signature of said message to be signed with said signing OTS private key,

update, by said signing tamper-proof computing device, said state value associated to said assigned slave merkle tree such that said obtained OTS private key cannot be used anymore for generating signatures,

generate a stateful hash based signature of said message to be signed from said generated OTS signature using an authentication path, in the slave merkle tree assigned to said signing tamper-proof computing device, of the OTS public key corresponding to said obtained OTS private key,

said generated stateful hash based signatures being configured to be verified by a verification process which uses the master public signature key at the root of the master merkle tree as the only public signature key.

Assignments (5)
CHANGE OF NAME Recorded Oct 31, 2024
From: SAFENET CANADA, INC.
To: THALES DIS CPL CANADA, INC.
Reel/Frame 069279/0883 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 17, 2024
From: THALES DIS FRANCE SA
To: THALES DIS FRANCE SAS
Reel/Frame 068927/0111 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2023
From: THALES DIS CPL CANADA INC.
To: THALES DIS CPL USA, INC.
Reel/Frame 064914/0610 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2021
From: GARDINER, MICHAEL
To: THALES DIS CPL CANADA, INC
Reel/Frame 057534/0256 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2021
From: GOUGET, ALINE; VACEK, JAN
To: THALES DIS FRANCE SA
Reel/Frame 057534/0317 →
Priority Claims (1)
EP 18306769 · Dec 20, 2018 · regional
Continuity (1)
Related Publication 20220086009A1 · Mar 17, 2022
References Cited (11)
US 10116450B1 · Brown · 2018 [cited by examiner]
US 10496616B2 · Zhang · 2019 [cited by examiner]
US 11184157B1 · Gueron · 2021 [cited by examiner]
US 20170230182A1 · Misoczki · 2017 [cited by examiner]
Andreas Hlsing, “Forward Secure Signatures on Smart Cards” Sep. 27, 2018, International Association for Cryptologic Research, vol. 20181002:040136, p. 1-19 (Year: 2018). [cited by examiner]
PCT/EP2019/081114, International Search Report, Nov. 20, 2020, European Patent Office, P.B. 5818 Patentlaan 2 NL—2280 HV Rijswijk. [cited by applicant]
PCT/EP2019/081114, Written Opinion of the International Searching Authority, Nov. 20, 2020, European Patent Office, D-80298 Munich. [cited by applicant]
Andreas Alsing et al: “Forward Secure Signatures on Smart Cards”, IACR, International Association for Cryptologic Research, vol. 20181002:040136 (Sep. 27, 2018), pp. 1-19, XP061026487, Retrieved from the Internet: URL:h… [cited by applicant]
Huelsing Tu Eindhoven D Butin Tu Darmstadt S Gazdag Denua GMBH J Rijneveld Radboud University a Mohaisen University of Central Flo: “XMSS: eXtended Merkle Signature Scheme; rfc8391.txt”,XMSS: Extended Merkle Signature S… [cited by applicant]
Rachid El Bansarkhani, et al., G-Merkle: A Hash-Based Group Signature Scheme from Standard Assumptions, Springer International Publishing AG, part of Springer Nature 2018 T. Lange and R. Steinwandt (Eds.): PQCrypto 2018… [cited by applicant]
Andreas Hulsing, et al., Hash-based Signatures: An Outline for a New Standard, Jul. 1, 2022, Published 2014, https://csrc.nist.gov/csrc/media/events/workshop-on-cybersecurity-in-a-post-quantum-world/documents/papers/ses… [cited by applicant]
Cited By (1)
US 12,519,651