Cryptology Academy · Les

CRYSTALS-Dilithium- en Falcon-handtekeningen

Vergelijk lattice-based digitalehandtekeningschema's die door NIST zijn gestandaardiseerd.

Les 3 van 413 stappen

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.

Gratis beginnen

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

  1. De algoritmen van Shor en Grover uitgelegd
  2. CRYSTALS-Kyber: lattice-based KEM
  3. CRYSTALS-Dilithium- en Falcon-handtekeningen
  4. Migratie naar PQC: hybride benaderingen
← Terug naar Cryptology Academy