Cryptology Academy · Lektion

CRYSTALS-Kyber: gitterbaserad KEM

Gå igenom nyckelinkapsling med Module-LWE och parameteruppsättningar.

Lektion 2 av 413 steg

CRYSTALS-Kyber: gitterbaserad KEM är en gratis lektion i Cryptology Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Cryptology Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cryptology Academy innehåller totalt 4 lektioner.

Varför Kyber

CRYSTALS-Kyber (som NIST döpte om till ML-KEM i FIPS 203) är en Key Encapsulation Mechanism (KEM) baserad på Module-LWE. Den ersätter RSA och ECDH vid nyckelutbyte och ger kvantresistens med praktiskt användbara prestanda.

KEM jämfört med nyckelöverenskommelse

En KEM kapslar in en delad hemlighet: avsändaren genererar en slumpmässig nyckel K och krypterar den med mottagarens publika nyckel (inkapsulering), vilket ger en chiffertext C. Mottagaren dekapsulerar C med sin privata nyckel för att återfå K. Inget interaktivt nyckelutbyte behövs.

Module-LWE-grunden

Kyber använder Module-LWE över ringen R_q = Z_q[x]/(x^256+1) med q=3329. Dimension k=2 (Kyber-512), k=3 (Kyber-768), k=4 (Kyber-1024). Säkerhetsnivåerna är cirka 128, cirka 192 respektive cirka 256 bitar. k=3 (Kyber-768) är det rekommenderade standardvalet.

Nyckelgenerering

Generera matrisen A ∈ R_q^{k×k} från seed ρ (expanderbart). Sampla den hemliga variabeln s och bruset e från en centrerad binomialfördelning (små koefficienter). Publik nyckel: (ρ, t=As+e). Privat nyckel: s. Bruset e är litet men förhindrar att s kan återställas från den publika nyckeln.

Inkapsulering

För att skicka en delad hemlighet till innehavaren av den publika nyckeln (ρ, t): sampla r, e1, e2 från brusfördelningen. Beräkna u = A^T r + e1, v = t^T r + e2 + round(q/2)*m där m är ett slumpmässigt 256-bitars meddelande. Delad hemlighet K = KDF(m). Chiffertext = (u, v).

Dekapsulering

Med den privata nyckeln s: beräkna m' = decompress(v - s^T u) = decompress(t^T r + e2 + round(q/2)*m - s^T(A^T r + e1)). Brustermerna tar ungefär ut varandra, så att m'≈m. Beräkna K = KDF(m'). Sannolikheten för dekapsuleringsfel: < 2^{-139}.

Storlekar på nycklar och chiffertext

Kyber-768: publik nyckel 1184 byte, privat nyckel 2400 byte, chiffertext 1088 byte, delad hemlighet 32 byte. Jämför med ECDH-P256: publik nyckel på 65 byte, chiffertext på 32 byte. Kyber är cirka 15 gånger större men kvantsäkert. Det är fortfarande snabbt: inkapsulering och dekapsulering tar mindre än 1 ms på moderna processorer.

NTT-optimering

Polynomisk multiplikation i R_q = Z_q[x]/(x^256+1) använder Number Theoretic Transform (NTT) – den modulära aritmetikens motsvarighet till FFT. NTT minskar polynomisk multiplikation från O(n^2) till O(n log n). q=3329 valdes för att ge goda NTT-egenskaper för n=256.

Hybrida nyckelutbyten

Under migreringen till PQC används ett hybridnyckelutbyte: kombinera ECDH och Kyber. Delad hemlighet = KDF(ECDH_output || Kyber_output). Säkerheten kräver att båda bryts: klassiska angripare bryter inget av dem; kvantangripare bryter ECDH men inte Kyber. TLS 1.3-utkast (IETF RFC 8446) stöder hybrida KEM:er.

Överväganden kring sidokanaler

Kybers dekapsulering körs inte i konstant tid i naiva implementationer – steget med avvisningssampling läcker tidsinformation. Referensimplementeringen använder en konstanttidsbaserad NTT och jämförelse av komprimerad chiffertext. Använd referenskoden från NIST:s inlämning eller granskade biblioteksimplementationer.

Implementeringsstatus

NIST publicerade FIPS 203 (ML-KEM) i augusti 2024. Chrome lade till Kyber-stöd i TLS 1.3 under 2023. Cloudflare, Google och AWS distribuerar hybrida ECDH+Kyber-lösningar. OpenSSL 3.x lade till stöd för ML-KEM. Implementationer för LibSSH och WireGuard är under utveckling.

Snabbkontroll

Vilket NIST-standarddokument standardiserar CRYSTALS-Kyber?

Sammanfattning

Kyber (ML-KEM) är en Module-LWE-baserad KEM som ersätter ECDH. Nycklarna är cirka 1 KB stora; NTT-aritmetiken är snabb; algoritmen är kvantresistent. Distribuera den som hybrid med ECDH under migreringen. Standardiserad som FIPS 203. Nästa steg: CRYSTALS-Dilithium och Falcons signaturscheman.

Gratis att börja

Lär dig Cryptology Academy med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
67
Lektioner
261

Vanliga frågor

Är lektionen ”CRYSTALS-Kyber: gitterbaserad KEM” gratis?

Ja – hela texten till ”CRYSTALS-Kyber: gitterbaserad KEM” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Cryptology Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Cryptology Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”CRYSTALS-Kyber: gitterbaserad KEM”?

Gå igenom nyckelinkapsling med Module-LWE och parameteruppsättningar. Ni övar på Cryptology Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Cryptology Academy?

Du behöver inga förkunskaper. Utbildningen i Cryptology Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”CRYSTALS-Kyber: gitterbaserad KEM”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Cryptology Academy-lektionen?

Ja. Varje Cryptology Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Shors och Grovers algoritmer förklarade
  2. CRYSTALS-Kyber: gitterbaserad KEM
  3. CRYSTALS-Dilithium- och Falcon-signaturer
  4. Migrering till PQC: hybridmetoder
← Tillbaka till Cryptology Academy