Hur fungerar AES-kryptering?

AES är en symmetrisk nyckelkrypteringsciffer, och den betraktas generellt som ”guldstandarden” för kryptering av data.

AES är NIST-certifierad och används av den amerikanska regeringen för att skydda "säkra" data, vilket har lett till ett mer allmänt antagande av AES som standard symmetrisk nyckelkod för val av nästan alla. Det är en öppen standard som är gratis att använda för all offentlig, privat, kommersiell eller icke-kommersiell användning.

En introduktion till AES-kryptering

AES är en symmetrisk nyckelkrypteringsciffer. Detta innebär att samma nyckel som används för att kryptera data används för att dekryptera den. Detta skapar ett problem: hur skickar du nyckeln på ett säkert sätt?

Asymmetriska krypteringssystem löser detta problem genom att säkra data med en offentlig nyckel som görs tillgänglig för alla. Det kan bara dekrypteras av en avsedd mottagare som har rätt privat nyckel.

Detta gör asymmetrisk kryptering mycket bättre på att säkra data i transit eftersom avsändaren inte behöver känna till mottagarens privata nyckel. Ett bra exempel är RSA-kryptering, som används för att säkra de TLS-nyckelutbyten som krävs när du ansluter till en säker HTTPS-webbplats.

Symmetriska cifrar som AES är därför mycket bättre på att säkra data under vila - till exempel när de är lagrade på din hårddisk. För detta ändamål är de överlägsna asymmetriska cifrar eftersom:

  • De kräver mycket mindre beräkningskraft. Detta gör kryptering och dekryptering av data med symmetrisk kryptering mycket snabbare än med asymmetrisk kryptering. För perspektiv citeras symmetriska cifrar i allmänhet som att de är “1000 gånger snabbare” än asymmetriska.
  • Och eftersom de är snabbare är symmetriska cifrar mycket mer användbara för bulkkryptering av stora datamängder. Asymmetriska cifrar som RSA används egentligen bara för att kryptera små mängder data, till exempel nycklarna som används för att säkra symmetrisk nyckelskryptering.

Naturligtvis, i dagens anslutna värld, är data som bara sitter på din hårddisk begränsad användning. Lyckligtvis kan det säkert överföras över internet i samband med asymmetrisk kryptering, som används för att hantera fjärrnyckelutbyten som krävs för att säkert ansluta till en fjärrserver.

OpenVPN säkrar till exempel rådata med ett asymmetriskt chiffer - vanligtvis AES idag. För att överföra den krypterade informationen säkert mellan din PC och VPN-servern använder den ett asymmetriskt TLS-nyckelutbyte för att förhandla fram en säker anslutning till servern.

Är AES-kryptering den bästa typen av kryptering?

AES betraktas allmänt som den säkraste symmetriska nyckelkrypteringskrypteringen som hittills har hittats. Andra symmetriska nyckelcifrar som anses vara mycket säkra finns också, till exempel Twofish, som uppfanns av den kända kryptografen Bruce Schneier.

Sådana chiffer har dock inte stridstestats på det sätt som AES har gjort. Och hej, om den amerikanska regeringen anser att AES är det bästa cifret för att skydda sina "säkra" uppgifter, vem argumenterar? Det finns dock vissa som ser detta som ett problem. Se avsnittet om NIST nedan.

En utbredd adoption har gynnat AES på andra sätt. De flesta CPU-tillverkare har nu integrerat AES-instruktionerna i sina processorer. Hårdvaruförstärkningen förbättrar AES-prestanda på många enheter samt förbättrar deras motståndskraft mot sidokanalattacker.

Kan 128-bitars AES-kryptering brytas?

AES i sig är okrossbar när den implementeras korrekt.

2011 var ordets snabbaste superdator Fujitsu K. Detta kunde en Rmax topphastighet på 10,51 petaflops. Baserat på denna siffra skulle det ta Fujitsu K 1,02 x 10 ^ 18 - cirka en miljard miljarder (en kvintillion) - år att knäcka en 128-bitars AES-nyckel med kraft. Detta är äldre än universumets ålder (13,75 miljarder år).

Den mest kraftfulla superdatorn i världen 2017 var Sunway TaihuLight i Kina. Detta odjur har en topphastighet på 93,02 petaflops. Detta innebär att den mest kraftfulla datorn i världen fortfarande skulle ta några 885 fyrkantiga år att brute kraft en 128-bitars AES-nyckel.

Antalet operationer som krävs för att tvinga fram en 256-bitars chiffer är 3,31 x 10 ^ 56. Detta är ungefär lika med antalet atomer i universum!

Redan 2011 identifierade kryptografiforskare en svaghet i AES som gjorde det möjligt för dem att knäcka algoritmen fyra gånger snabbare än vad som tidigare var möjligt. Men som en av forskarna noterade vid den tiden:

"För att sätta detta i perspektiv: på en biljardmaskiner, som var och en skulle kunna testa en miljard nycklar per sekund, skulle det ta mer än två miljarder år att få en AES-128-nyckel."

Som svar på denna attack tillsattes ytterligare fyra omgångar (se senare) till AES-128-krypteringsprocessen för att öka dess säkerhetsmarginal.

Sidokanalen attackerar

Så i allt väsentligt är AES själv obrottsligt när den implementeras korrekt. Men det genomfördes inte alltid korrekt.

Sidokanalattacker letar efter ledtrådar från datorsystemet som implementerar AES-krypteringen för att ta reda på ytterligare information. Detta kan vara användbart för att minska antalet möjliga kombinationer som krävs för att brute kraft AES.

Dessa attacker använder tidsinformation (hur lång tid det tar datorn att göra beräkningar), elektromagnetiska läckor, ljudledningar och till och med optiska ledtrådar som tas upp med en högupplöst kamera för att upptäcka extra information om hur systemet bearbetar AES-krypteringen.

En välkänd sidokanalsattack mot AES drar framgångsrikt AES-128-krypteringsnycklar genom att noggrant övervaka chifferens delade användning av processorns cachetabeller.

Korrekt implementerade AES mildrar mot sidokanalattacker genom att förhindra möjliga sätt data kan läcka (det är där användning av den hårdvarubaserade AES instruktionsuppsättningen hjälper) och genom att använda randomiseringstekniker för att eliminera förhållandet mellan data som skyddas av chifferet och eventuella läckta data som kan samlas in med en sidokanalsattack.

Osäkra lösenord

AES-kryptering är bara lika säker som dess nyckel. Dessa nycklar kan alltid säkras med hjälp av lösenord, och vi vet alla hur fruktansvärda oss människor är på att använda säkra lösenord. Keyloggers introducerade av virus, sociala tekniska attacker och liknande kan också vara effektiva sätt att kompromissa med lösenord som säkrar AES-nycklar.

Användning av lösenordshanterare mildrar starkt detta problem, liksom användning av tvåvägs brandväggar, bra antivirusprogram och högre utbildning om säkerhetsfrågor..

En kort historik över AES-kryptering

När du var liten spelade du spelet där du skapade ett "hemligt meddelande" genom att ersätta en bokstav i meddelandet med en annan? Ersättningen gjordes enligt en formel som valts av dig.

Du kan till exempel ersätta varje bokstav i det ursprungliga meddelandet med tre bokstäver bakom det i alfabetet. Om någon annan visste vad den här formeln var, eller skulle kunna lösa den, skulle de kunna läsa ditt ”hemliga meddelande.”

I kryptografisjargon var det du gjorde "kryptera" meddelandet (data) enligt en mycket enkel matematisk algoritm.

Kryptering har använts hud för känslig information sedan forntiden, men kom verkligen till sin egen under det tjugonde århundradet. Under andra världskriget säkrade tyskarna känt sina kommunikationer med hjälp av Enigma-maskinen, vars kod var lika berömd av Alan Turing i Bletchley Park.

Vad är DES-kryptering

Data Encryption Standard (DES) skapades i mitten av 1970-talet för att säkra amerikanska regeringskommunikationer. Det blev den första moderna, offentliga, fritt tillgängliga krypteringsalgoritmen och skapade som sådan nästan på egen hand den moderna disciplinen för kryptering.

Även om det var utvecklat av IBM var DES hjärnskölden till National Bureau of Standards (NBS, som senare blev NIST).

Trots oro över NSA: s inblandning antogs DES av den amerikanska regeringen 1976 för "känslig men oklassificerad" trafik. Detta inkluderade saker som personlig, finansiell och logistisk information.

Eftersom det inte fanns något annat liknande vid den tiden, blev det snabbt allmänt antaget av kommersiella företag som krävde kryptering för att säkra sina uppgifter. Som sådan blev DES (som använde 56-bitars nycklar) standardarbetshästkrypteringsstandard i nästan två decennier.

Denna nästan allestädes närvarande antagande hjälpte starkt av att DES fick status som Federal Information Processing Standards (FIPS). Alla amerikanska icke-militära myndigheter och civila myndigheter måste endast använda FIPS-standarder.

I mitten av 1990-talet började DES dock visa sin ålder. Vid denna tidpunkt ansågs det allmänt att NSA kunde brute-force crack DES, en poäng som bevisades 1998 när en $ 220 000 maskin byggd av Electronic Frontier Foundation (EFF) framgångsrikt brute-tvång DES på bara två dagar. Det var tydligt dags för en ny standard.

Hur AES kom till

1997 tillkännagav National Institute of Standards and Technology of the United States (NIST) att han letade efter en ersättning till DES. I november 2001 meddelade det att vinnaren: AES, tidigare känd som Rijndael efter en av dess medskapare.

På NIST: s rekommendation antogs det nya cifret formellt av den amerikanska federala regeringen och trädde i kraft i maj 2002. Liksom DES innan den tilldelades AES FIPS-status. Den amerikanska regeringen anser att alla nyckelstorlekar i AES är tillräckliga för klassificerad information fram till "Hemlighet" nivå, med "Topp hemligt" information som kräver AES-192 eller AES-256.

AES har nu helt ersatt DES över hela världen som standard arbetssymmetrisk krypteringsstandard.

Hur fungerar AES-kryptering?

AES-krypteringsalgoritmen krypterar och dekrypterar data i block med 128 bitar. Det kan göra detta med 128-bitars, 192-bitars eller 256-bitars nycklar. AES som använder 128-bitars nycklar kallas ofta AES-128, och så vidare.

Följande diagram ger en förenklad översikt över AES-processen ...

hur AES-kryptering fungerar

Oformatterad text

Detta är den känsliga informationen som du vill kryptera.

Hemlig nyckel

Detta är en 128-bitars, 192-bitars eller 256-bitars variabel skapad av en algoritm.

Chiffer

Det faktiska AES-chifferet utför sedan en serie matematiska transformationer med hjälp av klartext och den hemliga nyckeln som utgångspunkt. I ordning är dessa:

  1. Nyckelutvidgning. Detta använder den ursprungliga hemliga nyckeln för att härleda en serie nya "runda nycklar" med Rijndaels algoritm för nyckelplan.
  2. Blandning. Varje rund nyckel kombineras med klartext med hjälp av den additiva XOR-algoritmen.

    AES-kryptering roundKey

  3. Byte av resulterande data med en substitutionstabell. Detta steg är i princip mycket liknande (om det är mycket mer komplicerat i praktiken) till de substitutionsciprar som du skapade som barn.SubBytes AES-kryptering

  4. Skift rader. I vilken varje byte i 4 x 4-kolumnen på sexton byte som utgör ett 128-bitarsblock flyttas till höger.AES-kryptering shiftRows

5. Blanda kolumner. En ytterligare algoritm tillämpas på varje kolumn.

Stig upp och upprepa. Processen upprepas ett antal gånger, varvid varje upprepning kallas en runda. Varje runda krypteras med hjälp av en av de runda nycklarna som genereras under nyckelutvidgning (steg 1).

Antalet utförda omgångar beror på nyckellängden som används. AES-128 använder tio omgångar, AES-192 använder tolv omgångar, och AES-256 använder fjorton omgångar.

Varje tillagd omgång minskar risken för en genvägattack av den typ som användes för att attackera AES-128 tillbaka 2011. Som redan noterats som en konsekvens av denna attack tillsattes ytterligare fyra omgångar till AES-128 för att förbättra dess säkerhetsmarginaler.

Chiffertext

Detta är den krypterade utgången från chifferet efter att den har passerat det angivna antalet omgångar.

Hur man dekrypterar AES-kryptering

Avkryptering av AES är enkelt - vänd bara alla ovanstående steg, börjar med den omvända runda tangenten. Naturligtvis måste du ha den ursprungliga hemliga nyckeln för att vända processen med varje invers rund nyckel.

Krypterar en fil gör den större?

Ja. Vanligtvis. AES använder en fast blockstorlek på 16 byte. Om en fil inte är ett multipel av en blockstorlek, använder AES padding för att slutföra blocket.

I teorin betyder detta inte nödvändigtvis en ökning av storleken på krypterade data (se strypning av chiffertext), men det är vanligtvis mycket lättare att lägga till data för att blockera blocket. Vilket ökar mängden data som är krypterad.

Anekdotiska bevis tyder på att filer större än 1 MB krypterade med AES tenderar att vara cirka 35% större än före kryptering.

Hur viktigt är nyckelstorlekar i AES-kryptering?

Det grovaste sättet att mäta styrkan hos ett chiffer är med storleken på dess nyckel. Ju större nyckel desto fler möjliga kombinationer finns.

AES kan användas med 126-bitars, 192-bitars eller 256-bitars nyckelstorlekar. Det ursprungliga Rijndael-chifferet var designat för att acceptera ytterligare nyckellängder, men dessa antogs inte i AES.

Brute Force attacker

Ju mer komplex algoritmen är, desto svårare är chifferet att spricka med hjälp av en brute force-attack. Denna mycket primitiva attack är också känd som en uttömmande nyckelsökning. Det handlar i princip om att prova alla möjliga kombinationer av siffror tills rätt tangent hittas.

Som vi är säkra på att du utför, utför datorer alla beräkningar med binära siffror: nollor och sådana. Och som vi har sett beror komplexiteten hos ett chiffer på dess nyckelstorlek i bitar - det råa antalet sådana och nollor som är nödvändiga för att uttrycka sin algoritm, där varje noll eller en representeras av en enda bit.

Detta är känt som nyckellängden och representerar också den praktiska genomförbarheten för att framgångsrikt utföra ett brutkraftangrepp på en given kod.

Antalet möjliga kombinationer (och därför svårigheten med att tvinga dem) ökar exponentiellt med nyckelstorlek. För AES:

Som vi redan har diskuterat skulle det ta den snabbaste superdatorn i världen längre än universumets ålder att knäcka till och med en AES-128-nyckel med kraft!

Krypteringsrundor

Som vi också har diskuterat, ju längre nyckeln som används av AES, desto mer går den genom kryptering. Detta är främst för att förhindra genvägsattacker som kan minska chifferens beräkningskomplexitet och som därför gör det lättare att brute tvinga chifferet.

Som avstått kryptografen Bruce Schneier sa om genvägsattacken 2011 på AES-128,

”Kryptografi handlar om säkerhetsmarginaler. Om du kan bryta en runda av en chiffer designar du den med 2n eller 3n omgångar. ”

Han rekommenderade att införa fler omgångar för varje nyckelstorlek till AES, men NIST anser att de nuvarande nivåerna är tillräckliga.

Så varför använda mer än AES-128?

Allt som väcker frågan: om det skulle ta längre tid än universumets ålder att knäcka även AES-128, varför bry sig om att använda AES-192 eller AES-256? Som Schneier noterade:

”Jag föreslår att människor inte använder AES-256. AES-128 ger mer än tillräckligt säkerhetsmarginal under överskådlig framtid. Men om du redan använder AES-256, finns det ingen anledning att ändra. ”

I själva verket har Schneier hävdat tidigare att AE-128 i själva verket är säkrare än AES, eftersom det har ett starkare nyckelschema än AES-256.

Så varför hålls AES-256 upp som guldstandarden för symmetrisk nyckelskryptering?

Säkerhetsmarginaler

Genvägsattacken 2011 visar att oavsett hur säkra experter tror att en kryptografalgoritm ska vara, uppfinningsrika människor kommer alltid att hitta sätt som ingen någonsin tänkt på för att försvaga dem.

Liksom med antalet använda rundor ger en större nyckelstorlek en högre säkerhetsmarginal mot att vara sprickad.

bling

Effekten av marknadsföring bör inte ignoreras när man överväger allestädes närvaron av AES-256-kryptering. Det enkla faktumet att AES-256 allmänt betraktas som den säkraste symmetriska krypteringskrypteringen i världen gör det till det bästa valet för många.

Jag menar, om AES-128 är bra, är det bara en anledning att AES-256 måste vara bättre, rätt?

Det faktum att den amerikanska regeringen använder AES-256 för att säkerställa sina mest känsliga uppgifter ökar bara sitt "bling" -värde och tillåter VPN-företag och liknande att hävda att de använder "militär kvalitet" -kryptering.

Med tanke på att denna "bling-uppfattning" är (till stor del) korrekt, finns det liten skada i populariteten för AES-256 (även om se noter på NIST nedan).

AES och OpenVPN

VPN-användare, i synnerhet, bör dock vara försiktiga. De flesta VPN-tjänster använder AES-256 för att säkra data som överförs genom OpenVPN-protokollet, men detta är en av de olika mekanismerna som används av OpenVPN för att hålla data säkra.

En TLS-anslutning säkrar överföring av de krypteringsnycklar som används av AES för att säkra data när du använder OpenVPN. Så om OpenVPN TLS (kontrollkanal) -inställningarna är svaga, kan informationen komprometteras trots att de är krypterade med AES-256. Se vår ultimata guide till VPN-kryptering för mer information.

AES-CBC vs AES-GCM

Tills nyligen var det enda AES-chifferet som du troligtvis möter i VPN-världen AES-CBC (Cipher Block Chaining). Detta hänvisar till blockchifferläget, ett komplext ämne som inte riktigt är värt att gå in här.

Även om CBC teoretiskt kan ha vissa sårbarheter, är konsensus att CBC är säkert. CBC rekommenderas verkligen i OpenVPN-manualen.

OpenVPN stöder nu också AES-GCM (Galios / Counter Mode). GCM tillhandahåller autentisering och tar bort behovet av en HMAC SHA-hashingfunktion. Det är också något snabbare än CBC eftersom det använder hårdvaruacceleration (genom att gänga till flera processorkärnor).

AES-CBC förblir det vanligaste läget i allmän användning, men AES-GCM ökar i popularitet. Med tanke på fördelarna med GCM kommer denna trend bara att fortsätta. Från ett kryptografiskt perspektiv är dock både AES-CBC och AES-GCM mycket säkra.

NIST

AES är en NIST-certifierad standard. Detta är ett organ som genom sin egen antagning arbetar nära med NSA i utvecklingen av sina chiffer.

Med tanke på vad vi nu känner till NSA: s systematiska ansträngningar att försvaga eller bygga bakdörrar till internationella krypteringsstandarder, finns det all anledning att ifrågasätta integriteten hos NIST-algoritmer. NIST bestrider naturligtvis starkt sådana anklagelser:

"NIST skulle inte medvetet försvaga en kryptografisk standard."

Det har också bjudit in allmänhetens deltagande i ett antal kommande föreslagna krypteringsstandarder, i ett drag som syftar till att stärka allmänhetens förtroende.

New York Times anklagade dock NSA för att kringgå NIST-godkända krypteringsstandarder genom att antingen införa oupptäckbara bakdörrar eller undergräva den offentliga utvecklingsprocessen för att försvaga algoritmerna.

Denna misstro stärktes ytterligare när RSA Security (en division av EMC) privat berättade för kunderna att sluta använda en krypteringsalgoritm som enligt uppgift innehåller en brist konstruerad av NSA. Denna algoritm hade också godkänts av NIST.

Dessutom är Dual_EC_DRBG (Dual Elliptic Curve Deterministic Random Bit Generator) en krypteringsstandard konstruerad av NIST. Det har varit känt för att vara osäkert i flera år.

2006 konstaterade Eindhoven University of Technology i Nederländerna att en attack mot den var lätt nog att starta på ”en vanlig PC.” Microsoft-tekniker flaggade också upp en misstänkt bakdörr i algoritmen.

Trots dessa problem, när NIST leder, följer branschen. Detta beror till stor del på att efterlevnad av NIST-standarder är en förutsättning för att få amerikanska regeringskontrakt (FIPS).

NIST-certifierade kryptografiska standarder som AES är ganska mycket allestädes närvarande över hela världen, inom alla områden inom industri och företag som förlitar sig på integritet. Detta gör att hela situationen är ganska kylig.

Kanske just därför att så mycket förlitar sig på dessa standarder har kryptografiexperter varit ovilliga att möta problemet.

Bildkredit: xkcd.com/538.

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me