Cryptology Academy · leksjon

GCM og autentisert kryptering

Legg til autentiseringstagger i krypteringen for å hindre manipulering.

Leksjon 4 av 413 trinn

GCM og autentisert kryptering er en gratis leksjon i Cryptology Academy på CoddyKit. Dette er leksjon 4 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.

Velkommen

AES-GCM er gullstandarden for autentisert kryptering. Den gir både konfidensialitet og integritet i én operasjon og forhindrer manipulering uten behov for et separat HMAC-trinn.

Problemet med kryptering alene

Kryptering gir konfidensialitet, men ikke integritet. En angriper som avskjærer AES-CBC-kryptotekst, kan snu biter og endre den dekrypterte klarteksten uten å kjenne nøkkelen.

AEAD: autentisert kryptering med tilknyttede data

AEAD-skjemaer produserer: kryptotekst + autentiseringstag. Taggen autentiserer både kryptoteksten og eventuelle ukrypterte tilknyttede data (AAD). Alle endringer gjør taggen ugyldig.

GCM-arkitektur

AES-GCM bruker: 1. AES-CTR til kryptering 2. GHASH til autentisering GHASH beregner en polynomisk MAC over kryptoteksten + AAD ved hjelp av multiplikasjon i GF(2^128).

Oversikt over GHASH

GHASH(H, A, C) = hash av AAD + kryptotekst ved hjelp av undernøkkelen H = AES(K, 0^128). Polynomet evalueres i H over GF(2^128). Resultatet XOR-es med den krypterte telleren for å danne taggen.

Inndata og utdata for AES-GCM

Inndata: 128-, 192- eller 256-biters nøkkel, 96-biters nonce, klartekst, valgfri AAD Utdata: kryptotekst (samme lengde som klarteksten), 128-biters autentiseringstag Taggen er vanligvis 16 byte. Det anbefales ikke å forkorte den til under 12 byte.

Krav til nonce i GCM

GCM krever en unik nonce for hver kryptering med samme nøkkel. En tilfeldig nonce på 96 bit er standard. Etter 2^32 meldinger overstiger sannsynligheten for kollisjon 1 %. På dette tidspunktet bør du bytte nøkkel.

Katastrofalt gjenbruk av nonce i GCM

Gjenbruk av (nøkkel, nonce) i GCM gjør at en angriper kan gjenopprette GHASH-undernøkkelen H og forfalske enhver kryptotekst med en gyldig tag. Dette bryter fullstendig både konfidensialiteten og integriteten.

Bruksområder for tilknyttede data (AAD)

AAD er metadata du vil autentisere, men ikke kryptere: - HTTP-header: autentiseres for å forhindre angrep på svarruting - ID for databasepost: sikrer at kryptoteksten dekrypteres i riktig rad - Protokollversjon: forhindrer nedgraderingsangrep

Fullstendig AES-GCM-eksempel i Python

from cryptography.hazmat.primitives.ciphers.aead import AESGCM import os key = AESGCM.generate_key(256) nonce = os.urandom(12) aad = b'user_id=12345' aesgcm = AESGCM(key) ct = aesgcm.encrypt(nonce, b'secret', aad) pt = aesgcm.decrypt(nonce, ct, aad) # raises if tampered

Alternativer: ChaCha20-Poly1305

ChaCha20-Poly1305 er det andre store AEAD-skjemaet. Det brukes i TLS 1.3 på enheter uten AES-NI, for eksempel ARM-enheter og mobiltelefoner. Det gir tilsvarende sikkerhet som AES-GCM, men er raskere i programvare uten maskinvareakselerasjon.

Hurtigsjekk

Hva beskytter autentiseringstaggen i AES-GCM mot?

Oppsummering

AES-GCM er det riktige standardvalget for autentisert kryptering. Deretter studerer vi strømkrypteringer: fra den ødelagte RC4 til moderne ChaCha20.
Gratis å komme i gang

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 «GCM og autentisert kryptering» gratis?

Ja – hele teksten i «GCM og autentisert kryptering» 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 «GCM og autentisert kryptering»?

Legg til autentiseringstagger i krypteringen for å hindre manipulering. 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 4 av 4.

Hvor lang tid tar leksjonen «GCM og autentisert kryptering»?

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

  1. Grunnleggende om blokkchifre og padding
  2. ECB kontra CBC: mønstre og IV-er
  3. CTR-modus og egenskaper ved strømmekifre
  4. GCM og autentisert kryptering
← Tilbake til Cryptology Academy