0Pricing
Cryptology Academy · Lezione

ML-DSA (FIPS 204) e SLH-DSA (FIPS 205)

Confronti le firme reticolari CRYSTALS-Dilithium con le firme basate su hash SPHINCS+ e i relativi compromessi.

ML-DSA (FIPS 204) e SLH-DSA (FIPS 205) è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

Origini di ML-DSA

ML-DSA (Module-Lattice-based Digital Signature Algorithm), standardizzato come FIPS 204, deriva da CRYSTALS-Dilithium. Dilithium è stato progettato da Ducas, Kiltz, Lepoint, Lyubashevsky, Schwabe, Seiler e Stehle e presentato a NIST nel 2017. Usa il framework Fiat-Shamir con aborti applicato a Module-LWE, producendo uno schema di firma pratico con solide dimostrazioni di sicurezza.

Fiat-Shamir con aborti

Le trasformazioni Fiat-Shamir classiche convertono i protocolli interattivi di identificazione in firme. Negli schemi basati su reticoli, un'applicazione diretta rivela informazioni sulla chiave privata attraverso il vettore di risposta. La tecnica «con aborti» di Lyubashevsky aggiunge il campionamento con rifiuto: il firmatario verifica se la risposta rivelerebbe informazioni e, in tal caso, interrompe il processo e riprova. Questo comporta un piccolo sovraccarico nella firma, ma è essenziale per la sicurezza.

Processo di firma di ML-DSA

Per firmare, ML-DSA campiona un vettore di mascheramento y da una distribuzione uniforme, calcola un impegno w = Ay, applica l'hash a (message, w) per ottenere un polinomio sfida c e calcola la risposta z = y + cs. Il campionamento con rifiuto verifica se z rivela informazioni su s. Se la verifica ha esito positivo, la firma è costituita da (c, z) insieme a un suggerimento per una verifica efficiente. In caso contrario, il processo viene ripetuto.

Set di parametri di ML-DSA

ML-DSA definisce tre set di parametri: ML-DSA-44 (livello di sicurezza NIST 2, circa 128 bit), ML-DSA-65 (livello 3, circa 192 bit) e ML-DSA-87 (livello 5, circa 256 bit). I numeri si riferiscono ai ranghi del modulo nello schema. Le dimensioni delle chiavi pubbliche sono rispettivamente 1312, 1952 e 2592 byte. Le firme ML-DSA-65 hanno una dimensione di 3293 byte, rispetto ai 64 byte di Ed25519 con 128 bit di sicurezza.

Compromesso sulle dimensioni delle firme ML-DSA

Lo svantaggio più significativo di ML-DSA rispetto a ECDSA o EdDSA è la dimensione delle firme. Le firme ML-DSA-65 sono di 3293 byte, contro i 64 byte di Ed25519. Nei protocolli che trasmettono molte firme, come le catene di certificati TLS e la firma del codice, questo aumenta la larghezza di banda. Tuttavia, la firma e la verifica di ML-DSA sono molto rapide, paragonabili o più veloci di quelle di ECDSA, quindi il compromesso riguarda principalmente il costo della comunicazione.

Origini e progettazione di SLH-DSA

SLH-DSA (Stateless Hash-Based Digital Signature Algorithm), standardizzato come FIPS 205, deriva da SPHINCS+. A differenza degli schemi basati su reticoli, la sicurezza di SLH-DSA dipende soltanto dalla resistenza alle collisioni e alle seconde preimmagini della funzione hash sottostante (SHA-256 o SHAKE-256). Questo rende SLH-DSA estremamente prudente: rimane sicuro anche se le assunzioni sui reticoli vengono infrante.

Firme monouso WOTS+

SLH-DSA si basa su WOTS+ (Winternitz One-Time Signature), uno schema basato su hash in cui la chiave privata è un insieme di stringhe casuali e la chiave pubblica si ottiene applicando ripetutamente l'hash a ciascuna di esse. La firma consiste nell'applicare parzialmente l'hash in base ai bit del messaggio. WOTS+ può essere usato in sicurezza una sola volta per ogni coppia di chiavi; usarlo due volte rivela informazioni. SLH-DSA costruisce la possibilità di firmare molte volte sopra WOTS+ mediante alberi.

Alberi di Merkle per la firma ripetuta

SLH-DSA usa un iperalbero, cioè un albero di alberi di Merkle. Ogni foglia è la chiave pubblica di un'istanza WOTS+. La radice è la chiave pubblica di SLH-DSA. Una firma è costituita dalla firma WOTS+ del messaggio e dal percorso di autenticazione dalla foglia alla radice. La struttura a iperalbero consente di produrre molte firme con un'unica coppia di chiavi usando foglie WOTS+ diverse.

Set di parametri di SLH-DSA

SLH-DSA dispone di 12 set di parametri che combinano la funzione hash (SHA-256 o SHAKE-256), il livello di sicurezza (128s/128f, 192s/192f, 256s/256f) e l'ottimizzazione (s = firme più piccole, f = firma più rapida). La variante 128f produce firme di 7856 byte con una firma rapida; la variante 128s produce anch'essa firme di 7856 byte, ma più lentamente. Tutte sono molto più grandi di quelle di ML-DSA, ma si basano sull'assunzione di sicurezza più solida possibile.

Quando scegliere SLH-DSA invece di ML-DSA

ML-DSA è preferibile quando prestazioni e larghezza di banda sono importanti e si considerano affidabili le assunzioni sui reticoli. SLH-DSA è preferibile nelle implementazioni estremamente conservative, in cui ci si fida soltanto della sicurezza delle funzioni hash, oppure per prepararsi a eventuali future violazioni degli schemi basati su reticoli. Le autorità di certificazione e i sistemi governativi che firmano raramente, ma necessitano del massimo livello di garanzia, potrebbero preferire SLH-DSA, mentre i server TLS che firmano frequentemente preferirebbero ML-DSA.

FN-DSA (FALCON): un'altra firma basata su reticoli

FN-DSA (FIPS 206, basato su FALCON) offre firme più piccole di ML-DSA (897 byte per FALCON-512 con 128 bit di sicurezza) usando reticoli NTRU e il campionamento gaussiano. Tuttavia, FALCON richiede un'implementazione attenta a tempo costante per evitare attacchi a canale laterale causati dal campionatore gaussiano. FIPS 206 dovrebbe essere standardizzato dopo FIPS 203-205 e offrirà un'opzione basata su reticoli ad alte prestazioni per gli ambienti con risorse limitate.

Quiz su ML-DSA e SLH-DSA

Qual è il principale vantaggio di sicurezza di SLH-DSA rispetto a ML-DSA?

Riepilogo di ML-DSA e SLH-DSA

ML-DSA (FIPS 204) usa Fiat-Shamir con aborti su Module-LWE e offre firme rapide di 3 KB, con 192 bit di sicurezza. SLH-DSA (FIPS 205) usa alberi di Merkle basati su hash (WOTS+) e si basa esclusivamente sulla sicurezza delle funzioni hash, con firme da 7 a 50 KB. ML-DSA è preferibile per le applicazioni sensibili alle prestazioni; SLH-DSA per il massimo livello di prudenza. FN-DSA (FALCON, FIPS 206) aggiungerà un'opzione basata su reticoli con firme più piccole.

Domande Frequenti

La lezione «ML-DSA (FIPS 204) e SLH-DSA (FIPS 205)» è gratuita?

Sì — il testo completo di «ML-DSA (FIPS 204) e SLH-DSA (FIPS 205)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «ML-DSA (FIPS 204) e SLH-DSA (FIPS 205)»?

Confronti le firme reticolari CRYSTALS-Dilithium con le firme basate su hash SPHINCS+ e i relativi compromessi. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «ML-DSA (FIPS 204) e SLH-DSA (FIPS 205)»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. La competizione NIST PQC: processo e criteri
  2. ML-KEM (FIPS 203): standardizzazione di CRYSTALS-Kyber
  3. ML-DSA (FIPS 204) e SLH-DSA (FIPS 205)
  4. Pianificare la migrazione agli standard post-quantistici
← Torna a Cryptology Academy