ML-DSA·Digital signature·NIST level 5

ML-DSA-87

ML-DSA (FIPS 204) is a lattice-based digital signature scheme, standardized by NIST in August 2024. Built on Module Learning With Errors, it offers fast verification and moderate signature sizes.

Latest run2026-09-21 11:47 UTC
commit6ed429a
CPU
Xeon Platinum 8488C
Measured on
c7i.large
OS / Kernel
24.04.4 LTS
liboqs
0.15.0
Wall clock
32m 32s
CPU steal
<0.01%

Parameters

Family
ML-DSA
Parameter set
87
Public key
2.53 KB
Private key
4.78 KB
Signature
4.52 KB
Iterations / op
1,000
liboqs key
ML-DSA-87

Regulatory approval status

Whether this algorithm family is approved/recommended for use under three regimes. Every badge links to its source — click through before citing this elsewhere.

keygenGenerate a fresh key pair.
131 of 131 runs
Mean
43.5 µs
95% CI on mean
±0.62%
Median
42.8 µs
p95
51.5 µs
p99
60.6 µs
Stdev
4.3 µs
Min
40.7 µs
Ops/sec
22,976

Mean is known to 43.25–43.79 µs across 1,000 iterations. A 95% confidence interval on the mean, not a prediction interval for a single operation. It says how precisely the average is known from this run's samples; the standard deviation says how much the individual samples scattered.

Mean over time

Click any point to view the GitHub Actions run that produced it.

signProduce a signature over a message using the private key.
131 of 131 runs
Mean
112.2 µs
95% CI on mean
±3.34%
Median
93.6 µs
p95
223.6 µs
p99
325.9 µs
Stdev
60.4 µs
Min
56.9 µs
Ops/sec
8,916

Mean is known to 108.41–115.89 µs across 1,000 iterations. A 95% confidence interval on the mean, not a prediction interval for a single operation. It says how precisely the average is known from this run's samples; the standard deviation says how much the individual samples scattered.

Mean over time

Click any point to view the GitHub Actions run that produced it.

verifyVerify a signature against a message and public key.
131 of 131 runs
Mean
44.5 µs
95% CI on mean
±0.43%
Median
43.9 µs
p95
51.9 µs
p99
56.3 µs
Stdev
3.1 µs
Min
42.2 µs
Ops/sec
22,496

Mean is known to 44.26–44.65 µs across 1,000 iterations. A 95% confidence interval on the mean, not a prediction interval for a single operation. It says how precisely the average is known from this run's samples; the standard deviation says how much the individual samples scattered.

Mean over time

Click any point to view the GitHub Actions run that produced it.