Cryptology Academy · Lektion

SIV-mode: AEAD modstandsdygtig over for nonce-misbrug

Undersøg Synthetic IV-mode (SIV), og hvordan den beskytter mod katastrofal genbrug af nonces.

Lektion 2 af 413 trin

SIV-mode: AEAD modstandsdygtig over for nonce-misbrug er en gratis Cryptology Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cryptology Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cryptology Academy-kurset indeholder 4 lektioner i alt.

Genbrug af nonce: Et katastrofalt svigt

AEAD-chifre baseret på CTR-tilstand, f.eks. AES-GCM, kræver en unik nonce for hver kryptering. Hvis den samme nonce genbruges med den samme nøgle, kan en angriber, der observerer to chiffertekster, tage XOR af dem for at gendanne XOR-resultatet af de to klartekster, hvilket straks bryder fortroligheden.

Genbrug af GCM-nonce lækker autentificeringsnøglen

Genbrug af nonce i AES-GCM er endnu mere katastrofalt end i ren CTR-tilstand. Når to meddelelser krypteres med den samme nonce og nøgle, kan en angriber gendanne GHASH-autentificeringsnøglen H fuldstændigt. Når H er kendt, kan angriberen forfalske vilkårlige autentificerede meddelelser.

Syntetisk IV-tilstand introduceres

SIV-tilstanden, der er defineret i RFC 5297, blev udviklet til at eliminere sårbarheder ved genbrug af nonce. I stedet for at kræve en tilfældig eller tællerbaseret nonce udleder SIV IV'et syntetisk fra selve klarteksten ved hjælp af en pseudotilfældig funktion, hvilket gør den deterministisk og modstandsdygtig over for forkert brug af nonce.

Mekanismen til udledning af SIV-nonce

I SIV beregnes noncen (kaldet den syntetiske IV) som SIV = PRF(key, plaintext, associated_data). Denne IV bruges derefter som tæller til kryptering i CTR-tilstand. Fordi IV'et udledes fra klarteksten, giver kryptering af den samme klartekst altid den samme chiffertekst.

Konsekvensen af nonce-genbrug i SIV

Hvis en nonce genbruges i SIV, fordi den samme klartekst krypteres to gange, lærer en observatør kun, at der blev sendt to identiske meddelelser. Selve klartekstens indhold forbliver skjult. Det er en markant forbedring i forhold til CTR-baseret AEAD, hvor nonce-genbrug afslører XOR af klarteksterne.

AES-SIV-konstruktionen

AES-SIV (RFC 5297) bruger funktionen S2V, en kædet PRF baseret på AES-CMAC, til at generere den syntetiske IV efterfulgt af AES-CTR-kryptering med en anden undernøgle. Den kræver to AES-nøgler, hvilket gør nøglehåndteringen lidt mere kompleks end i AEAD-tilstande med én nøgle.

AES-GCM-SIV: Moderne alternativ

AES-GCM-SIV (RFC 8452) er en mere effektiv AEAD-tilstand, der er modstandsdygtig over for nonce-misbrug og udviklet til at kombinere GCM-ydeevne med SIV-lignende sikkerhed. Den udleder undernøgler pr. meddelelse fra noncen og bruger en Polyval-autentifikator, hvilket giver bedre ydeevne end AES-SIV samtidig med, at modstandsdygtigheden over for nonce-misbrug bevares.

Ydeevneomkostningen ved to gennemløb

SIV kræver to gennemløb af dataene: ét til at beregne den syntetiske IV og ét til krypteringen. Det fordobler omtrent beregningsomkostningen sammenlignet med AEAD-tilstande med ét gennemløb, såsom AES-GCM. For programmer, hvor latenstid eller højt gennemløb er vigtigt, skal denne ekstra omkostning tages i betragtning.

Hvornår SIV bør foretrækkes frem for GCM

SIV foretrækkes, når genereringen af nonces er upålidelig, når programmet er tilstandsløst og ikke kan vedligeholde en nonce-tæller, eller når deterministisk kryptering er et krav. Det gælder for eksempel kryptering af databasefelter, hvor den samme værdi altid skal give den samme chiffertekst af hensyn til indeksering.

Tilstandsløse tjenester og deterministisk kryptering

Tilstandsløse mikrotjenester, der ikke kan koordinere nonce-tilstanden på tværs af replikaer, er oplagte kandidater til SIV-tilstanden. I stedet for at risikere utilsigtet nonce-genbrug gennem en global tæller giver SIV automatisk denne sikkerhed. Nøgleindpakning (RFC 3394) anvender også SIV-principper til deterministisk kryptering af nøgler.

SIV i praksis

AES-SIV er tilgængelig i større kryptografiske biblioteker, herunder libsodium (som crypto_aead_aes256gcm_siv i nyere versioner) og Google Tink. AES-GCM-SIV understøttes i BoringSSL og Go-standardbiblioteket. Når nonce-håndtering er vanskelig, er disse sikrere standardvalg end almindelig AES-GCM.

Kontrol af nonce-misbrug i SIV

Hvad sker der, når den samme nøgle bruges til at kryptere den samme klartekst to gange med AES-SIV?

Opsummering af lektionen: SIV til nonce-sikkerhed

SIV-tilstanden eliminerer katastrofale følger af nonce-genbrug ved at udlede IV'en fra selve klarteksten. Nonce-genbrug afslører kun, at der blev sendt identiske meddelelser, ikke deres indhold. AES-GCM-SIV (RFC 8452) giver effektiv modstandsdygtighed over for nonce-misbrug i moderne programmer, hvor tilstandsløs eller deterministisk kryptering er nødvendig.

Gratis at komme i gang

Lær Cryptology Academy med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
67
Lektioner
261

Ofte stillede spørgsmål

Er lektionen “SIV-mode: AEAD modstandsdygtig over for nonce-misbrug” gratis?

Ja — hele teksten til “SIV-mode: AEAD modstandsdygtig over for nonce-misbrug” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cryptology Academy-kurset, skal du opgradere til CoddyKit PRO. Cryptology Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “SIV-mode: AEAD modstandsdygtig over for nonce-misbrug”?

Undersøg Synthetic IV-mode (SIV), og hvordan den beskytter mod katastrofal genbrug af nonces. Du øver dig i Cryptology Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Cryptology Academy?

Der kræves ingen tidligere erfaring. Cryptology Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “SIV-mode: AEAD modstandsdygtig over for nonce-misbrug”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Cryptology Academy-lektion?

Ja. Alle Cryptology Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Hvorfor Encrypt-Then-MAC slår MAC-Then-Encrypt
  2. SIV-mode: AEAD modstandsdygtig over for nonce-misbrug
  3. AEGIS: Højhastighedsautentificeret kryptering
  4. Valg af AEAD til produktionssystemer
← Tilbage til Cryptology Academy