Größen in Byte (FIPS 204, Tabelle 2), öffentlicher Schlüssel / Signatur: ML-DSA-44 1.312 / 2.420 (Sicherheitskategorie 2), ML-DSA-65 1.952 / 3.309 (Kategorie 3), ML-DSA-87 2.592 / 4.627 (Kategorie 5). Private Schlüssel belegen expandiert 2.560–4.896 Byte, lassen sich aber als 32-Byte-Seed speichern. Auf einem Kern eines Apple M4 Max erzeugt OpenSSL 3.6.5 etwa 3.900 ML-DSA-44-Signaturen und 20.800 Prüfungen pro Sekunde; das Signieren arbeitet mit Rejection Sampling, daher schwankt seine Dauer.
Das Signieren arbeitet standardmäßig mit Hedging: 32 Byte frischer Zufall werden mit Schlüssel und Nachricht gemischt, und eine optionale deterministische Variante verwendet stattdessen Nullen (§3.4). Jede Signatur bindet einen Kontextstring von bis zu 255 Byte ein. HashML-DSA (§5.4) ist ein eigener Algorithmus: Er signiert einen Digest und bindet dabei die OID der Hashfunktion mit ein. Die X.509-Bezeichner sind id-ml-dsa-44, -65 und -87 (2.16.840.1.101.3.4.3.17 bis .19, RFC 9881).
ML-DSA ist die Standardwahl für allgemeines Post-Quanten-Signieren: Zertifikate in privaten PKIs, Firmware, Dokumente. Seine Größe ist das Hindernis für TLS in der öffentlichen Web-PKI; deshalb werden Composite-ML-DSA-Zertifikate und Merkle Tree Certificates entwickelt. Das Tool für Post-Quanten-Signaturen signiert und prüft lokal.