source
ml_dsa
1.0.0SPARK-proved ML-DSA (FIPS 204) lattice-based digital signatures
1.0.0
SPARK-proved ML-DSA (Module-Lattice-Based Digital Signature Algorithm) implementing NIST FIPS 204. Verifies signing and verification under the Module Learning With Errors (M-LWE) assumption.
All three FIPS 204 parameter sets -- ML-DSA-44, ML-DSA-65, ML-DSA-87
-- are supported and selected at build time via the parameter_set
crate configuration variable; default is ML-DSA-65 (NIST Category III).
The 8-layer Cooley-Tukey NTT, Montgomery reduction, Power2Round / Decompose / MakeHint / UseHint rounding primitives, and bounded rejection-sampling loops for signing are all SPARK-checked. The signing rejection loop is bounded (Max_Retries = 1000) for proof termination; rejection probability per attempt is empirically ~2-4%, so the bound is reached only with negligible probability.
Built on sha3_ada for SHA-3/SHAKE. No heap allocation, pragma Pure, suitable for embedded and safety-critical systems. FIPS 140-3 validation is out of scope.