Välja AEAD för produktionssystem
Använd ett beslutsramverk för att välja rätt AEAD-schema utifrån hotmodell och prestandakrav.
Välja AEAD för produktionssystem är en gratis lektion i Cryptology Academy på CoddyKit. Detta är lektion 4 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.
AES-GCM: standardvalet
AES-GCM är rätt standardval för de flesta produktionssystem. Det maskinvaruaccelereras via AES-NI på i stort sett alla moderna x86- och ARM64-processorer, har brett stöd i TLS-stackar och kryptografiska bibliotek samt drar nytta av omfattande kryptoanalys och erfarenhet från användning i verkliga system.
AES-GCM:s nonce-begränsningar
AES-GCM använder en 96-bitars nonce. Med slumpmässigt genererade noncer nås birthday bound efter ungefär 2^32 meddelanden med samma nyckel. Därefter blir sannolikheten för en nonce-kollision inte längre försumbar. För system med stora datamängder är nonce-hantering med en räknare eller nyckelrotation efter 2^32 meddelanden nödvändig.
ChaCha20-Poly1305: när AES-NI saknas
ChaCha20-Poly1305 är rätt val när AES-NI inte är tillgängligt eller när nonce-genereringen kan vara opålitlig. Algoritmen är snabb i programvara, konstanttidssäker till sin konstruktion (motståndskraftig mot tidsbaserade sidokanaler) och är den obligatoriska chiffersviten i TLS 1.3 för miljöer utan stöd för AES-maskinvara.
AES-GCM-SIV för nonce-säkerhet
När noncer kan återanvändas eller måste genereras deterministiskt, till exempel i tillståndslösa tjänster eller vid nyckelinkapsling, är AES-GCM-SIV (RFC 8452) det rätta valet. Den ger motståndskraft mot nonce-missbruk till en måttlig prestandakostnad jämfört med vanlig AES-GCM.
AEGIS för maximal genomströmning
AEGIS-128L är rätt val när maximal krypteringsgenomströmning krävs och det är garanterat att AES-NI finns på alla målmiljöer. Nätverksutrustning med hög bandbredd, VPN-koncentratorer och system för lagringskryptering är särskilt lämpliga användningsområden där AEGIS ger betydande prestandavinster jämfört med AES-GCM.
Val av nyckelstorlek: 128 eller 256 bitar
AES-128 ger 128-bitars säkerhet, vilket anses tillräckligt mot alla nuvarande och förutsebara hot från klassisk databehandling. AES-256 ger en större marginal mot framtida framsteg och krävs av vissa regelverk, till exempel TOP SECRET-klassificering enligt NSA Suite B. För de flesta program är AES-128 tillräckligt och något snabbare.
Att tänka på vid val av nonce-längd
AES-GCM använder 96-bitars noncer, medan AES-GCM-SIV också använder 96-bitars noncer. XSalsa20 (som används i libsodium secretbox) använder 192-bitars noncer, vilket gör slumpmässig nonce-generering säker för betydligt fler meddelanden med samma nyckel. Längre noncer minskar risken för oavsiktlig återanvändning i system med stora datamängder.
Rekommenderade bibliotek
Använd etablerade AEAD-bibliotek i stället för att implementera primitiver direkt. libsodium tillhandahåller ett enkelt AEAD-API (crypto_aead_aes256gcm_encrypt, crypto_aead_chacha20poly1305_ietf_encrypt). Google Tink kapslar in AEAD-primitiver med nyckelrotation och versionshantering. Språkspecifika TLS-bibliotek hanterar AEAD automatiskt för transportsäkerhet.
Migrering från AES-CBC
AES-CBC med en separat HMAC-SHA256 (i EtM-ordning) är acceptabelt men föråldrat. Migrering till AES-GCM förenklar implementationen genom att ersätta två primitiver med en och eliminerar risken för felaktig sammansättning. Data i vila som är krypterad med CBC-HMAC bör krypteras om med AES-GCM vid planerad nyckelrotation.
Testning av AEAD-implementationer
AEAD-implementationer bör testas mot officiella testvektorer från NIST (för AES-GCM) och RFC 8439 (för ChaCha20-Poly1305). Testa alltid att verifieringsfel för autentiseringstaggen gör att dekrypteringen returnerar ett fel i stället för delvis dekrypterad klartext. Felaktig felhantering är en vanlig implementeringsbrist.
Beslutsflöde
Välj AES-GCM när AES-NI finns och noncerna är unika. Välj ChaCha20-Poly1305 när AES-NI saknas eller noncerna är mindre tillförlitliga. Välj AES-GCM-SIV när nonceåteranvändning är ett problem. Välj AEGIS när maximal genomströmning med garanterad AES-NI är prioriterad. Välj aldrig lägen utan AEAD för nya system.
Kontroll av AEAD-val
En tillståndslös mikrotjänst som körs på flera repliker måste kryptera data men kan inte samordna en gemensam nonce-räknare. Vilket AEAD-läge är lämpligast?
Sammanfattning: att välja rätt AEAD
AES-GCM är standardvalet. ChaCha20-Poly1305 är avsett för miljöer utan AES-NI. AES-GCM-SIV hanterar miljöer där noncer inte kan garanteras vara säkra. AEGIS maximerar genomströmningen när AES-NI är garanterat. Använd bibliotek som libsodium eller Tink i stället för att sätta samman primitiver manuellt. Testa alltid mot officiella testvektorer och kontrollera att autentiseringsfel hanteras korrekt.
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 ”Välja AEAD för produktionssystem” gratis?
Ja – hela texten till ”Välja AEAD för produktionssystem” 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 ”Välja AEAD för produktionssystem”?
Använd ett beslutsramverk för att välja rätt AEAD-schema utifrån hotmodell och prestandakrav. 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 4 av 4.
Hur lång tid tar lektionen ”Välja AEAD för produktionssystem”?
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
- Varför Encrypt-Then-MAC slår MAC-Then-Encrypt
- SIV-läge: AEAD som motstår nonce-missbruk
- AEGIS: autentiserad kryptering med hög hastighet
- Välja AEAD för produktionssystem