# ML-DSA (FIPS 204)

> Lattice-based digital signatures (formerly CRYSTALS-Dilithium).

- Source: https://stevenfoerster.com/lab/pqc/ml-dsa/

Lab

Lattice-based digital signatures (formerly CRYSTALS-Dilithium).

Educational demo - don't copy/paste into production

All cryptography runs locally in your browser. Keys and plaintext never leave your device, but this is still a simplified demo.

- [Lattices](https://stevenfoerster.com/lab/pqc/lattices/)
- [LWE](https://stevenfoerster.com/lab/pqc/lwe/)
- [ML-KEM](https://stevenfoerster.com/lab/pqc/ml-kem/)
- [ML-DSA](https://stevenfoerster.com/lab/pqc/ml-dsa/)
- [SLH-DSA](https://stevenfoerster.com/lab/pqc/slh-dsa/)
- [Learn](https://stevenfoerster.com/lab/pqc/learn/)
- [Migration](https://stevenfoerster.com/lab/pqc/migration/)

What this is

A post-quantum cryptography (PQC) signature demo using ML-DSA (formerly CRYSTALS-Dilithium). It shows key generation, signing, and verification in a browser-only flow.

Who it's for

-   Security teams evaluating PQC signatures.
-   Engineers planning signing key rollouts.
-   Builders learning lattice-based schemes.

## Signing keypair

Legacy name: CRYSTALS-Dilithium

ML-DSA provides post-quantum signatures. Keys and signatures are larger than traditional schemes, but signing and verification are fast.

Parameter set

Generate keypair

Higher parameter sets increase security and signature size, with a performance cost.

Public key

Copy Export

Size: \-

Secret key

Reveal secret key Copy

Size: \-

Export all (unsafe)

## Sign + verify

Message

Size:

Sign message Verify signature Tamper with message Reset

Signature

Copy

Size: \-

No signature yet.

## Sizes & timings

Sizes

-   Public key: \-
-   Secret key: \-
-   Signature: \-

Timings

-   Key generation: \-
-   Sign: \-
-   Verify: \-

Security model (30 seconds)

ML-DSA keys stay in-memory in your browser. The demo signs the message locally and verifies with the public key. No private key or plaintext is sent to a server. No server-side secrets and no user tracking are used.
