Digital Signature
ML-DSA
Module-Lattice-based Digital Signature Algorithm · FIPS 204
Mechanism
How it works
Parameter Sets
3 variants shipped
Each variant trades security category against key, ciphertext, or signature size. QNSI exposes all variants via the @heossi/liboqs-native binding; tenant crypto-policy determines which are allowed.
| Variant | NIST Level | Public Key | Secret Key | Signature | Note |
|---|---|---|---|---|---|
| ML-DSA-44 | L2 | 1,312 B | 2,560 B | 2,420 B | JWT signing default. Smallest signature size of the FIPS-finalised signatures. |
| ML-DSA-65 | L3 | 1,952 B | 4,032 B | 3,309 B | Strict policy tier default. Recommended for high-security JWT and audit signing. |
| ML-DSA-87 | L5 | 2,592 B | 4,896 B | 4,627 B | Maximum + Government default. Required for `government` tier. |
NIST ACVP
Conformance evidence
QNSI runs the official NIST ACVP test vectors against every shipped algorithm. Live evidence + SHA-3-256 tamper digest at /verify/conformance.
Use Cases
When to use it
- JWT signing (auth-service default)
- Audit-log Merkle root signing (audit-service)
- Inter-service SPIFFE SVID signing
- Code-signing artefacts
- Compliance evidence-pack signing
Trade-offs
What you give up, what you get
- Larger signatures than Falcon but faster signing and simpler implementation
- Constant-time reference implementation (side-channel resistant)
- Same Module-LWE security assumption as ML-KEM — assumption-economy across families
FAQ
ML-DSA — frequently asked questions
Concise, source-of-truth answers to the questions buyers and engineers ask most about this algorithm.
What is ML-DSA?
ML-DSA (Module-Lattice-based Digital Signature Algorithm) is a lattice based post-quantum digital signature scheme. It is designed to resist attacks from both classical and quantum computers, and QNSI ships 3 of its parameter sets. It is also known as Dilithium, CRYSTALS-Dilithium, Module-LWE Signature.
Is ML-DSA NIST-standardized?
Yes. ML-DSA is a NIST-standardized algorithm, finalized as FIPS 204. QNSI runs the official NIST ACVP test vectors against it on every release, with the live evidence and a SHA-3-256 tamper digest published at /verify/conformance.
What is ML-DSA used for?
On QNSI, ML-DSA is used for JWT signing (auth-service default); Audit-log Merkle root signing (audit-service). It is available from the default crypto-policy tier upward via the noble and liboqs providers.
References