ML-DSA Explained
ML-DSA is NIST’s final FIPS 204 digital-signature standard for protecting messages and other binary data against forgery. It is based on the hardness of module-lattice problems, specifically module learning with errors, and uses a Fiat–Shamir-with-aborts design with rejection sampling. An ML-DSA key pair supports three core operations: key generation, signature generation, and signature verification. FIPS 204 defines ML-DSA-44, ML-DSA-65, and ML-DSA-87, which trade security level and resource size. Signing can be deterministic or hedged (randomized); verification is the same for signatures produced by either variant. ML-DSA authenticates data; it is not encryption or a key-establishment mechanism.1234
- ML-DSA is a digital-signature scheme, not an encryption algorithm or key-encapsulation mechanism.
- Its security basis is module-lattice hardness, including the module learning with errors problem.
- FIPS 204 defines three parameter sets: ML-DSA-44, ML-DSA-65, and ML-DSA-87.
- Key generation creates a public/private key pair; signing uses the private key; verification uses the corresponding public key.
- Deterministic and hedged signing produce signatures checked by the same verification algorithm.
- Key and signature sizes increase from ML-DSA-44 to ML-DSA-87, so parameter selection affects storage and bandwidth.
- Implementations must validate input lengths, protect private and intermediate values, and operate within a broader key-management process.
What ML-DSA is
ML-DSA stands for Module-Lattice-Based Digital Signature Algorithm. The final standard is NIST FIPS 204, published on 2024-08-13. It specifies mathematical procedures for key generation, signature generation, and signature verification for binary data, commonly called a message. A digital signature is generated with a private key and verified with the corresponding public key; the private key must remain secret, while the public key can be distributed to verifiers. A valid signature alone does not establish who controls a key: identity assurance and proof of private-key possession are additional requirements.15
ML-DSA is designed for authentication and integrity. It is therefore different from ML-KEM, the module-lattice-based key-encapsulation mechanism standardized in FIPS 203. A KEM can establish a shared secret that is then used with symmetric cryptography, whereas ML-DSA signs and verifies data. Neither operation should be substituted for the other merely because both are post-quantum cryptographic mechanisms.341
15High-level technical foundation
ML-DSA is based on the hardness of lattice problems over module lattices, including the module learning with errors problem. Its design follows the Fiat–Shamir-with-aborts framework. Rejection sampling is used to make the lattice-based Fiat–Shamir construction compact and secure. ML-DSA samples coefficients from small, uniformly distributed integers rather than using Gaussian-distributed values. This avoids the floating-point arithmetic requirement associated with Gaussian sampling in FN-DSA and can make implementation easier, although implementation-specific performance still depends on the platform and code.2
The mathematical basis does not remove ordinary implementation responsibility. The standard specifies algorithmic steps, but operational security also depends on how keys, randomness, intermediate values, inputs, and interfaces are handled. In particular, a mathematically correct implementation can still expose sensitive information if it mishandles private-key material or internal computation data.1
How ML-DSA works: key generation, signing, and verification
- Key generation creates an ML-DSA public key and its corresponding private key using the selected parameter set. The private key is used for signing; the public key is cited to verifiers.
- Signature generation takes the private key and the data to be protected. Depending on the selected variant, the procedure is deterministic or uses fresh randomness in a hedged construction. It outputs a signature associated with the message and public key.
- Signature verification takes the message, signature, and public key and returns whether the signature is valid. The verification algorithm is the same for signatures generated by the hedged and deterministic variants.
The signing choice has security and operational consequences. FIPS 204 describes the hedged variant as a countermeasure that can make fault and side-channel attacks on deterministic signatures more difficult. It also states that implementing only the hedged variant is sufficient for interoperability, because the same verification algorithm verifies either form. Deterministic signing can leak information about the message through timing side channels, although the cited FIPS passage says this does not reveal the private key; when the signer does not want to reveal the message being signed, hedged signatures should be used.1
The exact API and validation behavior matters. Verification must reject public keys or signatures whose lengths differ from the lengths specified for the selected parameter set. Accepting other lengths without returning false can interfere with security properties such as strong unforgeability. Internal values in key generation and signing may reveal information about a private key. Verification intermediates can also be sensitive in applications involving bearer-token signatures or signatures over plaintext that must remain confidential.1
Parameter sets and size tradeoffs
FIPS 204 provides three ML-DSA parameter sets: ML-DSA-44, ML-DSA-65, and ML-DSA-87. They provide different security levels and resource tradeoffs. Larger keys and signatures affect memory, storage, certificate or object size, and protocol bandwidth. The appropriate choice depends on the application’s security requirements and its performance and size constraints; the cited evidence does not establish a universal best parameter set.21
The private-key representation can also be optimized. If space is available, an implementation may precompute and store an intermediate value to speed signing and verification. If private-key storage must be reduced, FIPS 204 states that storing only the 32-byte seed is sufficient to regenerate the other private-key components. Such representations should be assessed together with access controls, backup, recovery, zeroization, and performance requirements.1
Implementation and key-handling considerations
Secure key management is an essential part of using digital signatures and extends beyond the three cryptographic algorithms. The cited FIPS 204 guidance describes key management as context-dependent and points to the NIST SP 800-57 series. A practical design should define how private keys are generated, stored, accessed, backed up, recovered, rotated, revoked, and destroyed, as well as how public keys are distributed and associated with identities.1
- Keep private keys secret and restrict signing authority to the intended identity or service.
- Use the parameter-set-specific public-key and signature lengths, and reject malformed lengths during verification.
- Protect intermediate values from disclosure through memory, logging, debugging, crash handling, and other interfaces.
- Choose deterministic or hedged signing deliberately. Hedged signing is the safer choice when side-channel or fault-attack concerns cannot otherwise be mitigated, and it is sufficient on its own for interoperability.
- Treat the public key as an identity-bound credential only after the required identity assurance and proof-of-possession process has been completed.
- Test the complete protocol and storage design, not only isolated mathematical test vectors.
The standard also separates external functions from internal components. External components generate randomness and perform checks before invoking internal operations; internal components are deterministic and can assume that the external layer did not encounter an error. This separation can help structure APIs and support cryptographic algorithm validation, but it does not by itself guarantee a secure implementation.
ML-DSA in post-quantum migration
NIST’s post-quantum project identifies FIPS 204 ML-DSA as one of the first three final post-quantum standards, alongside FIPS 203 ML-KEM and FIPS 205 SLH-DSA. The project says organizations should begin migrating systems, identify where vulnerable algorithms are used, and plan replacements or updates. Migration affects applications, protocols, libraries, key sizes, performance, testing, and compatibility; it is not simply a matter of changing one algorithm name.
During transition, some environments may consider hybrid or dual-signature approaches. The cited transition material says NIST intends to accommodate hybrid techniques and that existing standards and guidelines accommodate dual signatures when at least one component is NIST-approved, while leaving the decision to each application. It also emphasizes implementation cost, performance reduction, engineering complexity, and the need for independent security reviews. These passages describe transition considerations, not a blanket deployment approval or an interoperability guarantee for every protocol.
ML-DSA should therefore be evaluated in its actual protocol and trust model. A signature may authenticate a document, software artifact, certificate, user action, or message, but the surrounding system must define which identity the public key represents and what a verifier is authorized to accept. The standard’s algorithmic validity checks are necessary; they are not a replacement for certificate issuance, identity assurance, policy, or secure key custody.15
How ML-DSA differs from related mechanisms
ML-DSA and ML-KEM are related by their module-lattice family but serve different cryptographic purposes. ML-KEM has key generation, encapsulation, and decapsulation operations and can produce a shared secret for symmetric cryptography. ML-DSA has key generation, signing, and verification operations and produces signatures for authentication and integrity. A system that needs both confidential communication and authenticated messages may require both a key-establishment mechanism and a digital-signature mechanism, depending on its protocol design.341
ML-DSA also differs from SLH-DSA. The cited evidence identifies SLH-DSA as a stateless hash-based signature standard, while ML-DSA is module-lattice-based. This article does not establish that one is universally superior: selection depends on application requirements, implementation characteristics, key and signature sizes, and the relevant security and operational constraints.1
Conclusion
ML-DSA is the final FIPS 204 module-lattice-based digital-signature standard for signing and verifying binary data. Its three parameter sets provide different security and size tradeoffs, and its deterministic and hedged signing variants allow different operational choices while sharing one verification algorithm. Correct deployment requires more than implementing the equations: validate lengths, protect private and intermediate values, select signing behavior deliberately, bind public keys to identities, and design comprehensive key management. ML-DSA authenticates data; ML-KEM and other key-establishment mechanisms address different needs.12
Frequently asked questions
Is ML-DSA an encryption algorithm?
No. ML-DSA is a digital-signature algorithm for authentication and integrity. It does not encrypt messages and does not establish a shared secret. ML-KEM is the related NIST mechanism for key encapsulation and shared-secret establishment.341
What are the ML-DSA parameter sets?
FIPS 204 defines ML-DSA-44, ML-DSA-65, and ML-DSA-87. They provide different security levels and resource tradeoffs. The cited FIPS 204 size data lists increasing private-key, public-key, and signature sizes across those sets.21
Should an implementation support deterministic signing?
Not necessarily. FIPS 204 states that implementing only the hedged variant is sufficient for interoperability, because the same verification algorithm verifies both variants. The hedged variant can make some fault and side-channel attacks more difficult. The choice should follow the platform’s threat model and security controls.1
What key sizes does FIPS 204 list?
The cited FIPS 204 table lists the following sizes in bytes: ML-DSA-44 has a 2,560-byte private key, a 1,312-byte public key, and a 2,420-byte signature; ML-DSA-65 has a 4,032-byte private key, a 1,952-byte public key, and a 3,309-byte signature; ML-DSA-87 has a 4,896-byte private key, a 2,592-byte public key, and a 4,627-byte signature.1
Sources
- 1Module-Lattice-Based Digital Signature Standard
National Institute of Standards and Technology · final · FIPS 204
Accessed July 24, 2026 - 2Post-Quantum Cryptography for Engineers
Internet Engineering Task Force · informational · RFC 9958
Accessed July 24, 2026 - 3Module-Lattice-Based Key-Encapsulation Mechanism Standard
National Institute of Standards and Technology · final · FIPS 203
Accessed July 24, 2026 - 4Recommendations for Key-Encapsulation Mechanisms
National Institute of Standards and Technology · final · NIST SP 800-227
Accessed July 24, 2026 - 5Stateless Hash-Based Digital Signature Standard
National Institute of Standards and Technology · final · FIPS 205
Accessed July 24, 2026