Startsida för Proton

Kryptering > Typer av kryptering > AES-kryptering

Vad är AES-kryptering?

AES inom kryptografi avser Advanced Encryption Standard, en snabb, effektiv och säker krypteringsalgoritm som är certifierad av US National Institute of Standards and Technology (NIST). Det är ett symmetriskt krypto som använder samma nyckel för att både kryptera och avkryptera data. Detta går relativt snabbt, vilket gör det idealiskt för att kryptera stora mängder vilande data.

På grund av sin styrka och tillförlitlighet är AES en av de mest populära och vanliga typerna av kryptering som används inom trådlös nätverkssäkerhet, data- och diskkryptering, betalningssystem online, molnlagring, lösenordshantering och till och med statliga och militära applikationer. USA:s regering använder AES-kryptering för att skydda sin hemligstämplade information, vilket har bidragit till dess popularitet.

Är AES-algoritmen säker?

Ja. År 2000, efter en mycket noggrann(nytt fönster) och öppen urvalsprocess, meddelade NIST att AES (fram till dess känt som Rijndael-algoritmen, skapad av Vincent Rijmen och Joan Daemen) skulle ersätta DES som dess rekommenderade(nytt fönster) ”icke-hemligstämplade, offentligt publicerade krypteringsalgoritm med kapacitet att skydda känslig statlig information långt in i nästa sekel”.

Enligt NIST anses alla nyckellängder för AES-algoritmen vara ”tillräckliga” för att skydda hemligstämplad information upp till nivån ”Secret”. För information på nivån ”Top Secret” krävs AES-192 eller AES-256.

Brute force-attacker

Den mest grundläggande formen av attack som är möjlig mot ett krypteringschiffer är en brute force-attack, vilket innebär att man provar alla möjliga nyckelkombinationer tills man hittar den rätta. 

Frontier(nytt fönster) är världens mest kraftfulla offentligt kända superdator. Om den ägnade hela sin kapacitet åt att knäcka AES-128 med brute force skulle det fortfarande krävas i storleksordningen 10–12 biljoner år för att uttömma alla möjliga kombinationer för AES-128. Detta är betydligt längre än universums ålder. Så även med sina lägre bitstorlekar är AES mycket motståndskraftigt mot brute force-attacker från konventionella datorer. 

AES-256 är 340 miljarder miljarder miljarder miljarder (2¹²⁸) gånger svårare att knäcka med brute force än AES-128.

Även om Grovers algoritm(nytt fönster) teoretiskt sett halverar säkerheten för symmetriska nycklar mot kvanthot, är de fortfarande relativt kvantsäkra, särskilt vid användning av en 256-bitars nyckel.

Nyckelattacker

Under årens lopp har kryptografer publicerat ett antal teoretiska attacker mot AES-nycklar, men alla dessa är antingen opraktiska i verkligheten eller endast effektiva mot AES-implementationer som använder ett reducerat antal rundor (se nedan). 

Det mest framgångsrika försöket var den teoretiska biclique-attacken(nytt fönster) som publicerades 2011 och som kan minska tiden som krävs för att brute force-knäcka AES med en faktor fyra. Det skulle dock fortfarande kräva miljarder år att brute force-knäcka AES på någon nuvarande eller förutsebar datorhårdvara. 

Ingen känd nyckelattack är praktiskt genomförbar mot korrekt implementerad AES-128 eller högre. 

Sidokanalsattacker

En sidokanalsattack försöker minska antalet kombinationer som krävs för att genomföra en lyckad brute force-attack genom att leta efter ledtrådar från datorn som utför krypteringsberäkningarna. Ledtrådar kan samlas in genom att undersöka:

  • Tajming – hur lång tid det tar för en dator att utföra en operation
  • Elektromagnetiska läckor
  • Ljudsignaler
  • Visuella signaler (fångade med en högupplöst kamera).

Särskilt cache-tajmingattacker har visat sig vara ganska effektiva för att framgångsrikt knäcka AES. I det mest uppmärksammade exemplet kunde forskare 2016 återställa(nytt fönster) en AES-128-nyckel med "bara omkring 6–7 block oformaterad text eller chiffertext (teoretiskt skulle till och med ett enda block räcka)".

Det finns dock ett antal saker som kan göras för att minska hotet från sidokanalsattacker:

  • Korrekt implementerad AES kan förhindra sätt som data kan läcka på.
  • Hårdvara som integrerar AES-instruktionsuppsättningen minskar ytterligare AES:s attackyta för sidokanalsattacker.
  • Randomiseringstekniker kan användas för att störa sambandet mellan data som skyddas av AES och eventuella data som läckt och som kan samlas in med hjälp av en sidokanalsattack. 

I många fall kräver sidokanalsattacker att angriparen befinner sig i närheten av enheten eller får fysisk åtkomst till den medan den avkrypterar data, även om fjärrattacker är möjliga om skadlig mjukvara installeras på en enhet, särskilt vid tajmingattacker.

Så fungerar AES

AES är ett blockchiffer som krypterar och avkrypterar data i block om 128 bitar med hjälp av nycklar på 128, 192 eller 256 bitar. Som nämnts tidigare används samma nyckel för att kryptera och avkryptera data. AES med en 128-bitarsnyckel kallas ofta AES-128, och på motsvarande sätt gäller det för AES-192 och AES-256.

Data krypteras i flera omgångar, där varje omgång består av en serie matematiska operationer. 

Processen börjar med att Rijndaels nyckelschemaalgoritm används för att härleda en serie nya rundnycklar från den ursprungliga hemliga nyckeln. Detta kallas för nyckelexpansion.

Varje omgång består sedan av en eller flera (eller en kombination) av följande operationer:

1. Add Round Key: En XOR-operation(nytt fönster) utförs för att kombinera data som ska krypteras (chiffertexten) med varje rundnyckel.

2. Sub Bytes: En substitutionstabell används för att blanda data ytterligare. Tänk i princip på de enkla substitutionschiffer du använde som barn där du ersatte varje bokstav i ett meddelande med en som låg ett visst antal steg senare i alfabetet.

3. Shift Rows: Varje 128-bitars datablock består av ett 16-bitars 4x4-block. Denna operation förskjuter varje byte i en blockrad åt vänster med en viss förskjutning.

4. Mix Columns: En ytterligare inverterbar linjär transformation utförs på varje kolumn i blocket.

Denna serie transformationer utgör en runda, som sedan upprepas på data under ett visst antal rundor beroende på nyckelstorlek:

  • AES-128 — 10 rundor
  • AES-192 — 12 rundor
  • AES 256 — 14 rundor

För att avkryptera data utförs alla steg som användes för att kryptera dem helt enkelt i omvänd ordning. Detta kräver den ursprungliga hemliga nyckeln för att vända processen med hjälp av varje omvänd rundnyckel.

Varför föredras AES-256 framför AES-192 eller AES-128?

Med nuvarande och överskådlig teknik skulle det ta längre tid än universums ålder att knäcka AES-128 med brute force. Den legendariske kryptografen Bruce Schneier har till och med hävdat(nytt fönster) att AES-128 kan vara starkare än AES-256 tack vare att det har ett starkare nyckelschema – algoritmen som beräknar alla rundnycklar utifrån den ursprungliga hemliga nyckeln.

Ändå har AES-256 blivit de facto-guldstandarden för symmetrisk kryptering. Det betraktas ofta (om än något kontroversiellt) som det starkare valet eftersom dess större nyckelstorlek signalerar en extra säkerhetsmarginal, så att krypterad data förblir säker även om man skulle hitta ett sätt att dramatiskt försvaga algoritmen. Detta argument har blivit starkare i takt med att behovet av postkvantresistens blir allt mer angeläget. 

AES-CBC jämfört med AES-GCM

Fram till ganska nyligen användes AES vanligtvis i läget cipher block chaining (CBC), där varje block oformaterad text XOR:as med föregående chiffertextblock innan det krypteras. När det används i CBC-läge krävs en HMAC(nytt fönster)-hashalgoritm som HMAC-SHA256 för att verifiera data.

Det blir dock allt vanligare att AES används i Galois/counter-läge (GCM), som använder räknarläget(nytt fönster) för kryptering. Den största fördelen är att det använder Galois-fältet(nytt fönster) för att verifiera data utan behov av en extern algoritm. Det är därför mer effektivt än att använda en separat autentiseringsalgoritm som kan medföra en hög beräkningskostnad.

Även om AES-CBC med HMAC-autentisering generellt anses säkert, är CBC potentiellt sårbart för paddingattacker(nytt fönster), till exempel POODLE(nytt fönster). Det är inte GCM.

Hårdvaruaccelererad AES

De flesta moderna processorer har stöd för Advanced Encryption Standard New Instructions (AES-NI(nytt fönster)), en uppsättning hårdvaruinstruktioner som utför AES-operationer direkt i processorn. Detta gör AES mycket snabbare och hjälper även till att förhindra tidsbaserade sidokanalattacker eftersom operationerna sker i processorns säkra exekveringsenheter, vilket gör att det finns färre observerbara tidsvariationer för en angripare att utnyttja.

Proton och AES

Vi använder AES i stor utsträckning för att skydda Proton-produkter:

Händelser och kontakter skyddas med AES-256 i kombination med ECC för nyckelutbytet för att säkerställa din integritet via end-to-end-kryptering.

Proton VPN fokuserar främst på det snabba och effektiva VPN-protokollet WireGuard® (som använder ChaCha20), men OpenVPN-anslutningar använder AES-256.

Proton Pass lagrar lösenord, anteckningar, identiteter och andra objekt i ditt säkra valv med AES-256.

Proton Drive krypterar alla uppladdade filer end to end med AES-256 och använder ECC för nyckelutbyte. Proton Docs och Proton Sheets använder också AES-256 med ECC-baserat nyckelutbyte, även om deras krypteringsimplementation skiljer sig från Proton Drives allmänna filkrypteringssystem.

Proton Mail lagrar e-post och bilagor med AES-256 via OpenPGP-standarden. Även din privata nyckel, som låser upp din e-post, är krypterad med AES-256 innan den lagras på servern.

Proton Meet använder Messaging Layer Security (MLS) för att kryptera ljud, video och chattmeddelanden, vilket säkerställer framåtsekretess (PFS) och säkerhet efter kompromettering (PCS) för all kommunikation. Alla mötesdata är end-to-end-krypterade med AES-256-GCM.

Minska attacker mot AES-kryptering

Säkerheten är aldrig starkare än sin svagaste länk, vilket vanligtvis är ditt lösenord. Detsta innebär att metoder för social manipulering, nätfiskeattacker och keyloggers(nytt fönster) också utgör ett hot mot AES-krypterad data. Så även när AES används bör du vidta följande försiktighetsåtgärder:

Proton

Ta kontroll över dina data

Proton byggdes för att skydda dina data från början. Med end-to-end-kryptering, appar med öppen källkod och oberoende granskningar förblir din information din.

Vanliga frågor om AES-kryptering

Vilket är bättre: AES eller DES?
Vilket är bättre: AES eller RSA?
Hur stark är säkerheten i AES?

Lär dig mer om kryptering