CRYSTALS-Dilithium- en Falcon-handtekeningen
Vergelijk lattice-based digitalehandtekeningschema's die door NIST zijn gestandaardiseerd.
CRYSTALS-Dilithium- en Falcon-handtekeningen is een gratis Cryptology Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cryptology Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cryptology Academy bevat in totaal 4 lessen.
Waarom postkwantumhandtekeningen nodig zijn
RSA- en ECDSA-handtekeningen worden door het algoritme van Shor gebroken. Postkwantumhandtekeningen moeten ze vervangen voor: TLS-certificaten, codeondertekening, e-mailondertekening (S/MIME, PGP) en authenticatie van software-updates. NIST heeft twee roostergebaseerde schema's gestandaardiseerd: ML-DSA en FN-DSA.
CRYSTALS-Dilithium (ML-DSA)
Dilithium is gebaseerd op de moeilijkheid van Module-LWE en Module-SIS (opgave van de korte gehele oplossing). Beveiligingsbewijs in het QROM (model van het kwantumwillekeurige orakel). Drie varianten: Dilithium2 (ongeveer 128 bits), Dilithium3 (ongeveer 192 bits), Dilithium5 (ongeveer 256 bits). Eenvoudig ondertekeningspad zonder afwijzingssteekproeven.
Ondertekening met Dilithium
Privésleutel: geheime matrices s1, s2. Openbare sleutel: t = As1 + s2. Onderteken: genereer een willekeurige y; bereken w = Ay; bereken uitdaging c = H(mu || w1), waarbij w1 = HighBits(w); bereken z = y + cs1; als ||z|| of ||r0|| te groot is, wijs het resultaat af en probeer opnieuw. Geef (z, c, hint) als resultaat.
Verificatie met Dilithium
Verifieer (z, c, hint): controleer of ||z|| klein is; bereken w' = Az - ct; gebruik de aanwijzing om w1 terug te krijgen; controleer c == H(mu || w1). De aanwijzing bestaat uit een klein aantal bits uit MakeHint(). De afwijzing zorgt ervoor dat z niets lekt over s1 — het beveiligingsargument is een argument van "afbreken-dan-uniform".
Grootte van Dilithium-sleutels en -handtekeningen
ML-DSA-65 (Dilithium3, beveiliging van 192 bits): openbare sleutel 1952 bytes, privésleutel 4000 bytes, handtekening 3293 bytes. Ter vergelijking: ECDSA-P256: openbare sleutel van 64 bytes, handtekening van 64 bytes. Dilithium-handtekeningen zijn ongeveer 40 tot 50 keer groter, maar wel kwantumbestendig.
Falcon (FN-DSA)
Falcon is gebaseerd op NTRU-roosters en gebruikt een Gaussische steekproeftrekker over het NTRU-rooster. Handtekeningen zijn aanzienlijk kleiner dan die van Dilithium, maar voor ondertekening is een Gaussische steekproeftrekker met drijvende komma nodig — moeilijker constant in tijd te implementeren en complexer om veilig te programmeren.
Grootte van Falcon-sleutels en -handtekeningen
Falcon-512 (beveiliging van 128 bits): openbare sleutel 897 bytes, handtekening 666 bytes — veel kleiner dan Dilithium. Afweging: Falcon is moeilijker veilig te implementeren (Gaussische steekproeven zijn gevoelig voor timingaanvallen). Geschikt voor omgevingen met beperkte bandbreedte, maar vereist een zorgvuldige implementatie.
SPHINCS+ (SLH-DSA)
SPHINCS+ is een hashgebaseerd handtekeningsschema — een behoudende keuze zonder structurele algebraïsche aannames. De beveiliging berust alleen op de beveiliging van de hashfunctie. Grootte van de handtekening: ongeveer 8–50 KB (groot). Langzame ondertekening. Wordt gebruikt wanneer vertrouwen op lange termijn cruciaal is en prestaties minder belangrijk zijn.
Kiezen tussen schema's
ML-DSA (Dilithium): algemeen toepasbaar, eenvoudige implementatie, geschikt voor TLS-certificaten en codeondertekening. FN-DSA (Falcon): omgevingen met beperkte bandbreedte (IoT, LPWAN). SLH-DSA (SPHINCS+): uiterst behoudend, voor vertrouwensbasissen met een lange levensduur (offline CA-sleutels, softwarematige vertrouwensbasis).
Aandachtspunten bij implementatie
Dilithium: afwijzingssteekproeven kunnen vertakkingsinformatie over de uitvoeringstijd lekken — gebruik een vergelijking met constante uitvoeringstijd. Falcon: de Gaussische steekproeftrekker gebruikt drijvende-kommagetallen — zorg voor determinisme van berekeningen met drijvende komma. Beide: vermijd zijkanalen in de rekenkunde voor polynomen. Gebruik referentie-implementaties uit de NIST-inzendingpakketten.
FIPS-standaarden
NIST FIPS 204: ML-DSA (Dilithium). NIST FIPS 205: SLH-DSA (SPHINCS+). NIST FIPS 206: FN-DSA (Falcon). Alle drie zijn in augustus 2024 gepubliceerd. Bibliotheken: OpenSSL 3.x, BoringSSL en liboqs (het Open Quantum Safe-project) ondersteunen alle drie.
Korte controle
Wat is het belangrijkste voordeel van Falcon ten opzichte van Dilithium?
Samenvatting
ML-DSA (Dilithium): roostergebaseerd, eenvoudig, handtekeningen van ongeveer 3 KB. FN-DSA (Falcon): gebaseerd op NTRU, handtekeningen van ongeveer 700 bytes, complexe implementatie. SLH-DSA (SPHINCS+): hashgebaseerd, behoudend, groot. Alle drie zijn gestandaardiseerd in FIPS 204/205/206. Volgende onderwerp: migratie naar PQC met hybride benaderingen.
Leer Cryptology Academy met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 67
- Lessen
- 261
Veelgestelde vragen
Is de les “CRYSTALS-Dilithium- en Falcon-handtekeningen” gratis?
Ja — de volledige tekst van “CRYSTALS-Dilithium- en Falcon-handtekeningen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cryptology Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cryptology Academy bevat in totaal 4 lessen.
Wat leer ik in “CRYSTALS-Dilithium- en Falcon-handtekeningen”?
Vergelijk lattice-based digitalehandtekeningschema's die door NIST zijn gestandaardiseerd. Je oefent met Cryptology Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Cryptology Academy te beginnen?
Ervaring vooraf is niet nodig. Cryptology Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “CRYSTALS-Dilithium- en Falcon-handtekeningen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Cryptology Academy?
Ja. Elke les over Cryptology Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- De algoritmen van Shor en Grover uitgelegd
- CRYSTALS-Kyber: lattice-based KEM
- CRYSTALS-Dilithium- en Falcon-handtekeningen
- Migratie naar PQC: hybride benaderingen