Future-proofing embedded systems: Why Post-Quantum Cryptography matters.
For a broader introduction to the quantum threat read this blog post.
Digital signatures are used to verify the authenticity and integrity of software, firmware, documents, messages and other data. Today, many digital signature systems rely on RSA or elliptic-curve cryptography such as ECDSA.
ML-DSA (Module-Lattice-Based Digital Signature Algorithm) is a post-quantum digital signature scheme derived from CRYSTALS-Dilithium and standardized by NIST in FIPS 204. FIPS 204 defines the three parameter sets ML-DSA-44, ML-DSA-65 and ML-DSA-87 as well as algorithms for key generation, signing and signature verification.
This article focuses on ML-DSA itself: what the algorithm is, how it works, how the parameter sets differ and what its characteristics mean for embedded, FPGA and SoC-based systems.
Today's digital signatures commonly rely on RSA or elliptic-curve cryptography. A sufficiently powerful quantum computer could use Shor's algorithm to break the mathematical foundations of these schemes.
Post-quantum cryptography addresses this threat with algorithms designed to remain secure against attacks using both classical and quantum computers. ML-DSA is NIST's standardized module-lattice-based algorithm for post-quantum digital signatures.
The transition is already moving from standardisation towards migration planning. In the United States, the current transition proposal from NIST provides for selected traditional digital signature schemes at the 112-bit security level to be classified as obsolete after 2030, and for the RSA, ECDSA and EdDSA signatures mentioned in the proposal, which are vulnerable to quantum attacks to be banned after 2035. Earlier migration milestones apply to selected high-value systems operated by US federal agencies.
Europe is following a similar path. The EU's coordinated PQC roadmap calls for Member States to start transitioning to post-quantum cryptography by the end of 2026, while critical infrastructures should transition as soon as possible and no later than the end of 2030.
These timelines do not mean that every embedded product must implement ML-DSA by a particular date. They do show that PQC migration has moved from a theoretical security discussion toward concrete technology planning.
Future-proofing embedded systems: Why Post-Quantum Cryptography matters.
For a broader introduction to the quantum threat read this blog post.
ML-DSA stands for Module-Lattice-Based Digital Signature Algorithm. It is a public-key digital signature scheme based on mathematical problems involving module lattices.
The underlying mathematics differs substantially from RSA or ECDSA, but the fundamental principle of a digital signature remains the same:
The signer uses a private key to generate a digital signature for a message or data object. The verifier uses the corresponding public key to determine whether the signature is valid. A valid signature provides assurance that the signed data has not been modified after signing and that it was signed by the holder of the corresponding private key.
This makes ML-DSA suitable for many applications currently using conventional digital signatures, including software signing, secure communication and authentication.
In embedded systems, typical use cases include:
ML-DSA is derived from CRYSTALS-Dilithium, which was selected by NIST during its PQC standardization process. The names are therefore closely related, but they should not be used interchangeably when specifying an implementation.
NIST FIPS 204 defines the standardized ML-DSA algorithm. NIST made several changes compared with the earlier Dilithium submission, including changes to some variable sizes, domain separation and support for randomized signing. For new implementations that need to conform to the NIST standard, NIST FIPS 204/ ML-DSA should therefore be the relevant reference rather than an earlier CRYSTALS-Dilithium specification.
NIST FIPS 204 defines three primary operations: key generation, signature generation and signature verification.

ML-DSA (NIST FIPS 204) defines three primary operations: KeyGen, Sign and Verify. Key generation creates the key pair, signing stays in the trusted environment, while verification can run on the embedded device. The signature workflow is familiar, but the underlying computation is different from RSA or ECDSA.
NIST FIPS 204 defines three ML-DSA parameter sets corresponding to NIST security categories 2, 3 and 5. The categories are standardized security levels that indicate the computational effort required to break a cryptographic algorithm. A higher category represents a higher security level. The parameter sets differ not only in security strength but also in key and signature sizes.
|
Parameter Set |
ML-DSA-44 |
ML-DSA-65 |
ML-DSA-87 |
|
NIST security category |
2 |
3 |
5 |
|
Public Key |
1,312 bytes |
1,952 bytes |
2,592 bytes |
|
Private Key |
2,560 bytes |
4,032 bytes |
4,896 bytes |
|
Signature |
2,420 bytes |
3,309 bytes |
4,627 bytes |
The parameter number should therefore not simply be interpreted as a performance setting such as small, medium and large. The appropriate parameter set is primarily determined by the required security category.
But for embedded developers the resulting sizes matter. Moving from ML-DSA-44 to ML-DSA-87 approximately doubles the signature size and also increases public- and private-key storage requirements. These differences can affect storage, communication protocols, firmware packages, memory usage and hardware resource requirements.
At application level, ML-DSA performs the same fundamental task as RSA or ECDSA signatures. At implementation level, the differences can be significant.
ML-DSA can be implemented in software, accelerated with dedicated hardware, or implemented as a pure RTL cryptographic function. The appropriate choice depends on the target processor, available memory and FPGA resources, verification frequency, latency requirements, data movement and the required degree of processor independence.
A separate decision is whether the embedded device needs all three ML-DSA operations at all. Many devices only need to verify digital signatures.
Consider secure boot: firmware can be signed in a separate trusted environment before it reaches the device. The embedded system then only needs the public key and the verification functionality. The same model applies to firmware updates, FPGA configurations, configuration files and authenticated data objects.
A verification-only implementation eliminates key generation and signing functionality from the embedded device. This reduces implementation scope and can reduce the attack surface by removing functionality and interfaces that are not required.
Most importantly, the private signing key does not need to reside on the embedded device. Verification-only is independent of the implementation architecture: verification itself can run in software, be hardware-accelerated or be implemented as a pure RTL cryptographic function.
For systems where dedicated ML-DSA hardware is appropriate, KiviCore provides the KiviPQC-DSA IP core family for FPGA- and SoC-based systems. The cores support the ML-DSA parameter sets defined in NIST FIPS 204 and are available in different implementation architectures.
Both architectures can also be provided as verification-only variants for applications such as secure boot and authenticated firmware updates.
Hardware accelerator implementing the ML-DSA algorithm.
ML-DSA is one of the key standardized algorithms for the transition to post-quantum digital signatures. NIST FIPS 204 defines three parameter sets ML-DSA-44, ML-DSA-65 and ML-DSA-87 for key generation, signing and verification.
For developers encountering ML-DSA for the first time, its basic purpose is straightforward: it provides the authenticity and integrity properties expected from a digital signature while using a cryptographic construction designed for the post-quantum era. For embedded developers, the next question goes deeper.
Larger keys and signatures, different computational operations, working-memory requirements and data movement mean that ML-DSA may affect more than the cryptographic library itself.
The transition therefore involves two important decisions. Which ML-DSA parameter set provides the required security level and how ML-DSA should be integrated into the target system’s compute, memory and trust architecture.