CRYSTALS-Dilithium- og Falcon-signaturer
Sammenlign gitterbaserte digitale signaturskjemaer standardisert av NIST.
CRYSTALS-Dilithium- og Falcon-signaturer er en gratis leksjon i Cryptology Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Cryptology Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Cryptology Academy inneholder totalt 4 leksjoner.
Behovet for postkvantesignaturer
RSA- og ECDSA-signaturer brytes av Shors algoritme. Postkvantesignaturer må erstatte dem for TLS-sertifikater, kodesignering, e-postsignering (S/MIME, PGP) og autentisering av programvareoppdateringer. NIST har standardisert to gitterbaserte skjemaer: ML-DSA og FN-DSA.
CRYSTALS-Dilithium (ML-DSA)
Dilithium er basert på vanskeligheten av Module-LWE og Module-SIS (Short Integer Solution). Sikkerhetsbeviset er formulert i QROM (Quantum Random Oracle Model). Det finnes tre varianter: Dilithium2 (~128-bit), Dilithium3 (~192-bit) og Dilithium5 (~256-bit). Signeringsforløpet er enkelt og uten rejection sampling.
Dilithium-signering
Privat nøkkel: hemmelige matriser s1 og s2. Offentlig nøkkel: t = As1 + s2. Signer: sample en tilfeldig y, beregn w = Ay, og beregn utfordringen c = H(mu || w1), der w1 = HighBits(w). Beregn z = y + cs1. Hvis ||z|| eller ||r0|| er for stor, avvis og prøv på nytt. Resultatet er (z, c, hint).
Dilithium-verifisering
Verifiser (z, c, hint): kontroller at ||z|| er liten, beregn w' = Az - ct, bruk hint til å gjenopprette w1, og kontroller c == H(mu || w1). Hint er et lite antall biter fra MakeHint(). Avvisning sikrer at z ikke lekker s1 – sikkerhetsargumentet er et «aborts-then-uniform»-argument.
Størrelser på Dilithium-nøkler og -signaturer
ML-DSA-65 (Dilithium3, 192-bit sikkerhet): offentlig nøkkel på 1952 byte, privat nøkkel på 4000 byte og signatur på 3293 byte. Til sammenligning har ECDSA-P256 en offentlig nøkkel på 64 byte og en signatur på 64 byte. Dilithium har ~40–50 ganger større signaturer, men er kvantesikkert.
Falcon (FN-DSA)
Falcon er basert på NTRU-gittere og bruker en Gaussisk sampler over NTRU-gitteret. Signaturene er betydelig mindre enn Dilithium-signaturer, men signering krever en flyttallsbasert Gaussisk sampler – vanskeligere å implementere med konstant kjøretid og mer komplisert å implementere sikkert.
Størrelser på Falcon-nøkler og -signaturer
Falcon-512 (128-bit sikkerhet): offentlig nøkkel på 897 byte og signatur på 666 byte – mye mindre enn Dilithium. Avveiningen er at Falcon er vanskeligere å implementere sikkert (Gaussisk sampling er utsatt for tidsangrep). Det egner seg for miljøer med begrenset båndbredde, men krever en nøye implementasjon.
SPHINCS+ (SLH-DSA)
SPHINCS+ er et hashbasert signaturskjema – et konservativt valg uten strukturelle algebraiske antakelser. Sikkerheten avhenger bare av sikkerheten til hashfunksjonen. Signaturstørrelsen er ~8–50 KB (stor). Signering er langsom. Det brukes der langsiktig tillit er avgjørende og ytelse er mindre viktig.
Valg mellom skjemaene
ML-DSA (Dilithium): generell bruk, enkel implementasjon, egnet for TLS-sertifikater og kodesignering. FN-DSA (Falcon): miljøer med begrenset båndbredde (IoT, LPWAN). SLH-DSA (SPHINCS+): svært konservativt valg for røtter som skal vare lenge (frakoblede CA-nøkler, programvarerot for tillit).
Implementasjonshensyn
Dilithium: rejection sampling kan lekke informasjon gjennom grenens kjøretid – bruk sammenligning i konstant tid. Falcon: den Gaussiske sampleren bruker flyttall – sørg for determinisme i flyttallsberegningene. Begge: unngå sidekanaler i polynomaritmetikken. Bruk referanseimplementasjoner fra NISTs innsendingspakker.
FIPS-standarder
NIST FIPS 204: ML-DSA (Dilithium). NIST FIPS 205: SLH-DSA (SPHINCS+). NIST FIPS 206: FN-DSA (Falcon). Alle ble publisert i august 2024. Bibliotekene OpenSSL 3.x, BoringSSL og liboqs (Open Quantum Safe-prosjektet) implementerer alle tre.
Kunnskapssjekk
Hva er den viktigste fordelen Falcon har fremfor Dilithium?
Oppsummering
ML-DSA (Dilithium): gitterbasert, enkelt, ~3 KB store signaturer. FN-DSA (Falcon): NTRU-basert, ~700 byte store signaturer, kompleks implementasjon. SLH-DSA (SPHINCS+): hashbasert, konservativt, stort. Alle er standardisert i FIPS 204/205/206. Neste emne: migrering til PQC med hybride tilnærminger.
Lær deg Cryptology Academy med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 67
- Leksjoner
- 261
Ofte stilte spørsmål
Er leksjonen «CRYSTALS-Dilithium- og Falcon-signaturer» gratis?
Ja – hele teksten i «CRYSTALS-Dilithium- og Falcon-signaturer» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Cryptology Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Cryptology Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «CRYSTALS-Dilithium- og Falcon-signaturer»?
Sammenlign gitterbaserte digitale signaturskjemaer standardisert av NIST. Du øver på Cryptology Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Cryptology Academy?
Ingen tidligere erfaring er nødvendig. Cryptology Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «CRYSTALS-Dilithium- og Falcon-signaturer»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Cryptology Academy-leksjonen?
Ja. Alle Cryptology Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Shors og Grovers algoritmer forklart
- CRYSTALS-Kyber: gitterbasert KEM
- CRYSTALS-Dilithium- og Falcon-signaturer
- Overgang til PQC: hybride tilnærminger