Skip to content

Commit 99c2923

Browse files
author
Terra Quantum AG
committed
SLH-DSA documentation for v0.2.1
GitOrigin-RevId: 9fdce0c3d81b096ffde02661bb99ef62ad7ac5fb
1 parent c0ffee3 commit 99c2923

File tree

10 files changed

+97
-5
lines changed

10 files changed

+97
-5
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ Key Encapsulation Mechanism:
3939
- [Classic McEliece 8192128f](https://terra-quantum-public.github.io/tq42-pqc-oss/post_quantum_algs/kem/mceliece.html)
4040

4141
Digital Signature:
42+
- [SLH-DSA](https://terra-quantum-public.github.io/tq42-pqc-oss/post_quantum_algs/digital_signature/slh-dsa.html)
4243
- [ML-DSA](https://terra-quantum-public.github.io/tq42-pqc-oss/post_quantum_algs/digital_signature/ml-dsa.html)
4344
- [Falcon padded 1024](https://terra-quantum-public.github.io/tq42-pqc-oss/post_quantum_algs/digital_signature/falcon.html)
4445

docs/img/introduction_infographic.png

-1.5 KB
Loading
-630 Bytes
Loading

docs/img/readme_info.png

-101 KB
Loading

docs/index.markdown

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ Key Encapsulation Mechanism:
6767
Digital Signature:
6868

6969
- [ML-DSA](post_quantum_algs/digital_signature/ml-dsa.html)
70+
- [SLH-DSA](post_quantum_algs/digital_signature/slh-dsa.html)
7071
- [Falcon padded 1024](post_quantum_algs/digital_signature/falcon.html)
7172

7273
### Key Management

docs/keys/keys_container.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ PQC_CONTAINER_HANDLE PQC_asymmetric_container_create(uint32_t cipher);
343343

344344
**Container Initialization**
345345

346-
- **Key Fetching**: As part of the container's creation, cryptographic keys are sourced from a [specified randomness source](/keys/PRNG.html). This ensures that the cryptographic keys are robust and secure, fitting the requirements for secure cryptographic operations.
346+
- **Key Fetching**: As part of the container's creation, cryptographic keys are sourced from a [specified randomness source](keys/PRNG.html). This ensures that the cryptographic keys are robust and secure, fitting the requirements for secure cryptographic operations.
347347
- **Memory Residency**: It is crucial to note that the container exists only in the memory when created. There's no automatic storage or file association happening during the container's creation.
348348

349349
**Important Note**

docs/post_quantum_algs/digital_signature/ml-dsa.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ nav_order: 2
2222
- **Main cryptographic assumption**: Scheme based on the Module Learning With Errors problem.
2323
- **Copyright**: [Public Domain](https://creativecommons.org/public-domain/cc0/)
2424
or [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0.html)
25-
- [**GitHub Source](https://github.com/terra-quantum-public/tq42-pqc-oss/tree/main/src/ml-dsa)
25+
- [**GitHub Source](https://github.com/terra-quantum-public/tq42-pqc-oss/tree/main/src/mldsa)
2626

2727

2828
## FIPS 204 ML-DSA
@@ -68,7 +68,7 @@ Module-Lattice-based Digital Signature Algorithms (ML-DSA), such as those based
6868
- Signature size - **4627** bytes
6969

7070
## NIST's Known Answer Tests (KAT)
71-
The TQ42 Cryptography ML-DSA algorithm implementation has successfully passed the Known Answer Tests (KAT) provided by NIST. This confirms that the algorithm performs reliably as anticipated. For those interested in a deeper dive into the specifics of these tests, they are available [for review](https://github.com/terra-quantum-public/tq42-pqc-oss/tree/main/test/mlkem).
71+
The TQ42 Cryptography ML-DSA algorithm implementation has successfully passed the Known Answer Tests (KAT) provided by NIST. This confirms that the algorithm performs reliably as anticipated. For those interested in a deeper dive into the specifics of these tests, they are available [for review](https://github.com/terra-quantum-public/tq42-pqc-oss/tree/main/test/mldsa).
7272

7373
## Leveraging ML-DSA and True Entropy
7474
The customization of the ML-DSA algorithm within TQ42 Cryptography is designed to work in synergy with true entropy, sourced from the Single Photon Quantum Random Number Generator (QRNG). This technology ensures that the randomness required for cryptographic keys is of the highest quality, providing unparalleled security for company data. Since the effectiveness of any cryptographic algorithm heavily relies on the randomness of its keys, incorporating QRNG derived true entropy with TQ42's customized ML-DSA algorithm ensures that your company's sensitive information is safeguarded in the most robust manner possible.
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
---
2+
layout: default
3+
title: SLH-DSA
4+
parent: Digital Signature
5+
grand_parent: Post-Quantum Algorithms
6+
nav_order: 2
7+
---
8+
9+
# **SLH-DSA Overview**
10+
{: .no_toc }
11+
12+
<details open markdown="block">
13+
<summary>
14+
Table of contents
15+
</summary>
16+
{: .text-delta }
17+
1. TOC
18+
{:toc}
19+
</details>
20+
21+
- **Algorithm type**: Digital signature scheme.
22+
- **Main cryptographic assumption**: Scheme based on the presumed difficulty of finding preimages for hash functions.
23+
- **License**: [Public-Domain](https://github.com/terra-quantum-public/tq42-pqc-oss/tree/main/src/slhdsa/LICENSE.txt)
24+
25+
26+
## FIPS 205 SLH-DSA
27+
28+
FIPS 205 is the Stateless Hash-Based Digital Signature Algorithm (SLH-DSA), which was developed by the National Institute of Standards and Technology (NIST) to provide a quantum-resistant digital signature mechanism. FIPS 205 defines a method for digital signature generation that can be used for the protection of binary data (commonly called a message) and for the verification and validation of those digital signatures
29+
- [FIPS 205](https://csrc.nist.gov/pubs/fips/205/ipd)
30+
- [Nist post quantum cryptography](https://www.infosecurity-magazine.com/news/nist-post-quantum-cryptography/)
31+
32+
As part of the NIST standardisation process for post-squantum cryptography, SPHINCS+ has been under consideration and is the basis for Stateless Hash-Based Digital Signature Algorithm (SLH-DSA).
33+
- [SPHINCS+](https://sphincs.org/data/sphincs+-paper.pdf)
34+
35+
The security of SLH-DSA relies on the presumed diffculty of finding preimages for hash functions as well as several related properties of the same hash functions. Unlike the algorithms specifed in FIPS 186-5, SLH-DSA is expected to provide resistance to attacks from a large-scale quantum computer.
36+
37+
The standard specifes the mathematical steps that need to be performed for key generation, signature generation, and signature verifcation.
38+
39+
FIPS 205 was initially published as a draft on August 24, 2023, with a public comment period that concluded on November 22, 2023. Following the public comment period, necessary revisions were made to address feedback, and NIST aims to finalize and publish the standard for use in 2024.
40+
41+
42+
### Applications:
43+
44+
FIPS 205 can be applied in multiple scenarios where secure digital signatures are essential, including:
45+
46+
- Ensuring the integrity and authenticity of digital communications, documents, and transactions.
47+
- Utilizing quantum-resistant signatures within various cryptographic protocols and systems.
48+
- Implementing secure and verifiable signatures for sensitive and classified governmental and military communications.
49+
- Enhancing the security of electronic transactions, contracts, and records within financial systems.
50+
- Ensuring the authenticity and integrity of software updates and installations to prevent tampering and unauthorized alterations.
51+
52+
## SLH-DSA advantages over classical digital signature algorithms
53+
54+
Stateless Hash-Based Digital Signature Algorithm (SLH-DSA), such as those based on the SPHINCS+, offer several significant advantages over classical digital signature algorithms like RSA or ECDSA (Elliptic Curve Digital Signature Algorithm). Here are some of the key benefits:
55+
56+
- SLH-DSA is expected to provide resistance to attacks from a large-scale quantum computer. Classical algorithms like RSA and ECDSA can be broken by quantum algorithms (e.g., Shor's algorithm), rendering them insecure in a post-quantum world.
57+
- SLH-DSA algorithm offer a good balance between security and performance, with efficient key generation, signing, and verification operations.
58+
- While classical algorithms may require increasingly larger key sizes to maintain security as computational power increases, SLH-DSA algorithms typically provide strong security with more manageable key and signature sizes,
59+
- SLH-DSA algorithms often come with different parameter sets, allowing users to choose configurations that balance security and performance based on specific needs.
60+
61+
62+
## SLH-DSA - Parameter set summary
63+
64+
- SLH-DSA-SHAKE-256f - security category **5**
65+
- Public key size - **64** bytes
66+
- Private key size - **128** bytes
67+
- Signature size - **49 856** bytes
68+
69+
## NIST's Known Answer Tests (KAT)
70+
71+
The TQ42 Cryptography SLH-DSA algorithm implementation has successfully passed the Known Answer Tests (KAT) provided by NIST. This confirms that the algorithm performs reliably as anticipated. For those interested in a deeper dive into the specifics of these tests, they are available [for review](https://github.com/terra-quantum-public/tq42-pqc-oss/tree/main/test/slhdsa).
72+
73+
## Leveraging SLH-DSA and True Entropy
74+
75+
The customization of the SLH-DSA algorithm within TQ42 Cryptography is designed to work in synergy with true entropy, sourced from the Single Photon Quantum Random Number Generator (QRNG). This technology ensures that the randomness required for cryptographic keys is of the highest quality, providing unparalleled security for company data. Since the effectiveness of any cryptographic algorithm heavily relies on the randomness of its keys, incorporating QRNG derived true entropy with TQ42's customized SLH-DSA algorithm ensures that your company's sensitive information is safeguarded in the most robust manner possible.
76+
77+
78+
## API overview
79+
80+
To include the necessary library, please refer to the [Getting Started Guide](../../getting_started.html).
81+
After following the guide, include the `pqc/slh-dsa.h` header in your code.
82+
All Signature Schemes algorithms have a unified API. For SLH-DSA, you can set the algorithm to work using the constant **PQC_CIPHER_SLH_DSA_SHAKE_256F_DRAFT**.
83+
To learn about all the available methods for signature algorithms, visit the [Signature Schemes Generic API Overview page](api.html).
84+
85+
86+
## Example
87+
88+
**Code**
89+
```cpp
90+
{% include examples/signature/example_slhdsa.cpp %}```

docs/post_quantum_algs/kem/api.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ size_t PQC_API PQC_kem_encode_secret( uint32_t cipher,
138138
139139
This function generates a shared secret key using a given encryption algorithm, a message, and a pre-generated public key. The message is then intended to be sent to the second user, who owns the public key, for decryption.
140140
141-
* `cipher`: An identifier for selecting the encryption algorithm. [`Cipher constants`](/common_functions.html#cipher)
141+
* `cipher`: An identifier for selecting the encryption algorithm. [`Cipher constants`](common_functions.html#cipher)
142142
143143
* `uint8_t * message`, `size_t message_length`: A pointer to the memory area for the message and its length. The message, which contains ciphertext encrypted with the public key, will be written here to be sent to the other party.
144144

docs/post_quantum_algs/kem/ml-kem.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ nav_order: 2
2222
- **Cryptographic Assumption:** ML-KEM is a based on CRYSTALS-KYBER, a lattice-based key-encapsulation mechanism.
2323
- **Copyright**: [Public Domain](https://creativecommons.org/public-domain/cc0/)
2424
or [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0.html)
25-
- [**GitHub Source](https://github.com/terra-quantum-public/tq42-pqc-oss/tree/main/src/ml-kem)
25+
- [**GitHub Source](https://github.com/terra-quantum-public/tq42-pqc-oss/tree/main/src/mlkem)
2626

2727
## FIPS-203 ML-KEM
2828

0 commit comments

Comments
 (0)