Hvordan fungerer AES-kryptering?

AES er en symmetrisk nøglekrypteringskode, og den betragtes generelt som "guldstandarden" til kryptering af data.


AES er NIST-certificeret og bruges af den amerikanske regering til at beskytte "sikre" data, hvilket har ført til en mere generel vedtagelse af AES som den symmetriske standard nøglekode, der vælges af næsten alle. Det er en åben standard, der er gratis at bruge til offentlig, privat, kommerciel eller ikke-kommerciel brug.

En introduktion til AES-kryptering

AES er en symmetrisk nøglekrypteringskode. Dette betyder, at den samme nøgle, der bruges til at kryptere dataene, bruges til at dekryptere dem. Dette skaber et problem: hvordan sender du nøglen på en sikker måde?

Asymmetriske krypteringssystemer løser dette problem ved at sikre data ved hjælp af en offentlig nøgle, der stilles til rådighed for alle. Det kan kun dekrypteres af en bestemt modtager, der har den rigtige private nøgle.

Dette gør asymmetrisk kryptering meget bedre til at sikre data under transit, da afsenderen ikke har brug for at kende modtagerens private nøgle. Et godt eksempel er RSA-kryptering, der bruges til at sikre de krævede udvekslinger af TLS-nøgler, når du opretter forbindelse til et sikkert HTTPS-websted.

Symmetriske cifre som AES er derfor meget bedre til at sikre data, mens de er i ro - som når de er gemt på din harddisk. Til dette formål er de bedre end asymmetriske cifre, fordi:

  • De kræver langt mindre computerkraft. Dette gør kryptering og dekryptering af data med symmetrisk kryptering meget hurtigere end med asymmetrisk kryptering. I perspektiv citeres symmetriske cifre generelt for at være omkring "1000 gange hurtigere" end asymmetriske.
  • Og fordi de er hurtigere, er symmetriske cifre meget mere nyttige til bulkkryptering af store mængder data. Asymmetriske cifre som RSA bruges kun rigtig til at kryptere små mængder data, f.eks. Nøglerne, der bruges til at sikre symmetrisk nøglekryptering.

Naturligvis i dagens tilsluttede verden er data, der bare sidder på din harddisk, begrænset brug. Heldigvis kan det sikkert overføres over internettet sammen med asymmetrisk kryptering, der bruges til at håndtere de eksterne nøgleudvekslinger, der kræves for sikkert at oprette forbindelse til en fjernserver.

OpenVPN sikrer for eksempel rådataene med en asymmetrisk ciffer - normalt AES i disse dage. For at overføre de krypterede data sikkert mellem din pc og VPN-serveren bruger den en asymmetrisk TLS-nøgleudveksling til at forhandle om en sikker forbindelse til serveren.

Er AES-kryptering den bedste type kryptering?

AES betragtes bredt som den mest sikre symmetriske nøglekrypteringsciffer, der endnu er opfundet. Andre symmetriske nøglekryptere, der anses for at være meget sikre, findes også, såsom Twofish, som blev co-opfundet af den berømte kryptograf Bruce Schneier.

Sådanne cifre er dog ikke blevet slåetestet på den måde, som AES har gjort. Og hey, hvis den amerikanske regering mener, at AES er den bedste kode til at beskytte sine "sikre" data, hvem argumenterer der? Der er dog nogle, der ser dette som et problem. Se afsnittet om NIST nedenfor.

Udbredt vedtagelse har gavnet AES på andre måder. De fleste CPU-producenter har nu integreret AES-instruktionen i deres processorer. Hardwareforbedringen forbedrer AES-ydelsen på mange enheder såvel som forbedrer deres modstand mod angreb på siderne.

Kan 128-bit AES-kryptering brydes?

AES i sig selv er uknuselig, når den implementeres korrekt.

I 2011 var den hurtigste supercomputer i ordet Fujitsu K. Dette var i stand til en Rmax-peakhastighed på 10,51 petaflops. Baseret på dette tal ville det tage Fujitsu K 1,02 x 10 ^ 18 - omkring en milliard milliarder (en kvintillion) - år at knække en 128-bit AES-nøgle med magt. Dette er ældre end universets alder (13,75 milliarder år).

Den mest kraftfulde supercomputer i verden i 2017 var Sunway TaihuLight i Kina. Dette udyr er i stand til en tophastighed på 93,02 petaflops. Dette betyder, at den mest magtfulde computer i verden stadig vil tage nogle 885 quadrillion år at brute kraft en 128-bit AES-nøgle.

Antallet af operationer, der kræves for at brute kraft en 256-bit chiffer, er 3,31 x 10 ^ 56. Dette er nogenlunde lig med antallet af atomer i universet!

Tilbage i 2011 identificerede kryptografiforskere en svaghed i AES, der gjorde det muligt for dem at knække algoritmen fire gange hurtigere end tidligere var muligt. Men som en af ​​forskerne bemærkede dengang:

"At sætte dette i perspektiv: på en billion maskiner, som hver kunne teste en milliard nøgler i sekundet, ville det tage mere end to milliarder år at gendanne en AES-128-nøgle."

Som svar på dette angreb blev yderligere fire runder (se senere) føjet til AES-128-krypteringsprocessen for at øge dens sikkerhedsmargin.

Sidekanal angreb

Så alt i alt er AES i sig selv uknuselig, når den implementeres korrekt. Men det implementeres ikke altid korrekt.

Side-kanalangreb ser efter ledetråde fra computersystemet, der implementerer AES-krypteringen for at finde ud af yderligere oplysninger. Dette kan være nyttigt til at reducere antallet af mulige kombinationer, der kræves for at brute kraft AES.

Disse angreb bruger timingsoplysninger (hvor lang tid det tager computeren at udføre beregninger), elektromagnetiske lækager, lydledninger og endda optiske spor, der er hentet ved hjælp af et kamera med høj opløsning, for at finde ekstra information om, hvordan systemet behandler AES-krypteringen.

Et velkendt sidekanalangreb mod AES med succes udledt AES-128-krypteringsnøgler ved omhyggeligt at overvåge cifferens fælles brug af processorenes cache-tabeller.

Korrekt implementeret AES formindsker mod angreb på siderne ved at forhindre mulige måder, hvor data kan lække (hvilket er, hvor brug af det hardware-baserede AES-instruktionssæt hjælper) og ved at bruge randomiseringsteknikker til at eliminere forholdet mellem data, der er beskyttet af chifferet og eventuelle lækkede data der kunne indsamles ved hjælp af et sidekanalsangreb.

Usikre adgangskoder

AES-kryptering er kun så sikker som dens nøgle. Disse nøgler er uundgåeligt sikret ved hjælp af adgangskoder, og vi ved alle, hvor forfærdeligt os mennesker er ved at bruge sikre adgangskoder. Keyloggers introduceret af vira, social engineering angreb og lignende kan også være effektive måder at kompromittere de adgangskoder, der sikrer AES nøgler.

Brug af passwordadministratorer mindsker i høj grad dette problem, ligesom brug af tovejs firewalls, god antivirus-software og større uddannelse om sikkerhedsproblemer.

En kort historie om AES-kryptering

Da du var barn, spillede du det spil, hvor du oprettede en "hemmelig meddelelse" ved at erstatte et bogstav i meddelelsen med et andet? Udskiftningen blev foretaget efter en formel valgt af dig.

Du kan f.eks. Have erstattet hvert bogstav i den originale meddelelse med tre bogstaver bag sig i alfabetet. Hvis nogen anden vidste, hvad denne formel var, eller var i stand til at finde ud af den, ville de være i stand til at læse din "hemmelige meddelelse."

I kryptografisjargon, hvad du gjorde, var at "kryptere" meddelelsen (data) i henhold til en meget enkel matematisk algoritme.

Kryptering er blevet brugt skjul til følsomme data siden oldtiden, men kom virkelig til sin egen i løbet af det tyvende århundrede. Under 2. verdenskrig sikrede tyskerne berømt deres kommunikation ved hjælp af Enigma-maskinen, hvis kode var lige så berømt af Alan Turing i Bletchley Park.

Hvad er DES-kryptering

Data Encryption Standard (DES) blev oprettet i midten af ​​1970'erne for at sikre amerikanske regerings kommunikation. Det blev den første moderne, offentlige, frit tilgængelige krypteringsalgoritme, og skabte som sådan næsten ens hånd den moderne disciplin af kryptografi.

Selvom DES var udviklet af IBM, var DES hjerneregn ved National Bureau of Standards (NBS, der senere blev NIST).

På trods af bekymring over indblanding fra NSA, blev DES vedtaget af den amerikanske regering i 1976 for "følsom, men uklassificeret" Trafik. Dette omfattede ting som personlig, økonomisk og logistisk information.

Da der ikke var noget andet lignende på det tidspunkt, blev det hurtigt vedtaget af kommercielle virksomheder, der krævede kryptering for at sikre deres data. Som sådan blev DES (der brugte 56-bit nøgler) standard arbejdsheste kryptering standard i næsten to årtier.

Denne næsten allestedsnærværende adoption blev i høj grad hjulpet ved, at DES blev tildelt Federal Information Processing Standards (FIPS) status. Alle amerikanske ikke-militære regeringsagenturer og civile regeringsentreprenører skal kun bruge FIPS-standarder.

I midten af ​​1990'erne begyndte DES imidlertid at vise sin alder. På dette tidspunkt blev det almindeligt antaget, at NSA kunne brute-force crack DES, et punkt bevist i 1998, da en $ 220.000 maskine bygget af Electronic Frontier Foundation (EFF) med succes brute-tvunget DES på kun to dage. Det var helt klart tid til en ny standard.

Hvordan AES blev til

I 1997 meddelte National Institute of Standards and Technology i De Forenede Stater (NIST), at han var på udkig efter en erstatning til DES. I november 2001 meddelte det, at vinderen: AES, tidligere kendt som Rijndael efter en af ​​dens medskabere.

På NIST's anbefaling blev den nye ciffer formelt vedtaget af den amerikanske føderale regering og trådt i brug i maj 2002. Ligesom DES før den fik AES FIPS status. Den amerikanske regering anser alle AES-nøglestørrelser for at være tilstrækkelige til klassificeret information frem til "Hemmelighed" niveau, med "Top hemmeligt" oplysninger, der kræver AES-192 eller AES-256.

AES har nu fuldstændigt erstattet DES på verdensplan som standard arbejdshest symmetrisk krypteringsstandard.

Hvordan fungerer AES-kryptering?

AES-krypteringsalgoritmen krypterer og dekrypterer data i blokke på 128 bit. Det kan gøre dette ved hjælp af 128-bit, 192-bit eller 256-bit nøgler. AES ved hjælp af 128-bit nøgler kaldes ofte AES-128 og så videre.

Følgende diagram giver en forenklet oversigt over AES-processen ...

hvordan AES-kryptering fungerer

Simpel tekst

Dette er de følsomme data, du vil kryptere.

Hemmelig nøgle

Dette er en 128-bit, 192-bit eller 256-bit variabel oprettet af en algoritme.

cipher

Den faktiske AES-chiffer udfører derefter en række matematiske transformationer ved hjælp af sletekst og den hemmelige nøgle som udgangspunkt. I rækkefølge er disse:

  1. Nøgleudvidelse. Dette bruger den originale hemmelige nøgle til at udlede en række nye "runde taster" ved hjælp af Rijndaels nøgleplanalgoritme.
  2. Blanding. Hver runde nøgle kombineres med ren tekst ved hjælp af den additive XOR-algoritme.

    AES-kryptering roundKey

  3. Udskiftning af de resulterende data ved hjælp af en substitutionstabel. Dette trin ligner principielt meget (hvis meget mere kompliceret i praksis) de substitutionsciffer, som du oprettede som barn.SubBytes AES-kryptering

  4. Skift rækker. I hvilken hver byte i 4 x 4-kolonnen på seksten bytes, der udgør en 128-bit-blok, forskydes til højre.AES-kryptering shiftRows

5. Bland kolonner. En yderligere algoritme anvendes til hver kolonne.

Stig op og gentag. Processen gentages et antal gange, hvor hver gentagelse kaldes en runde. Hver runde krypteres igen ved hjælp af en af ​​de runde taster, der er genereret under nøgleudvidelse (trin 1).

Antallet af udførte runder afhænger af den anvendte nøglelængde. AES-128 bruger ti runder, AES-192 bruger tolv runder, og AES-256 bruger fjorten runder.

Hver ekstra runde reducerer chancen for et genvejsangreb af den art, der blev brugt til at angribe AES-128 tilbage 2011. Som allerede bemærket som en konsekvens af dette angreb blev der tilføjet yderligere fire runder til AES-128 for at forbedre dens sikkerhedsmargener.

Krypter tekst

Dette er den krypterede output fra chifferen, efter at den er passeret gennem det specificerede antal runder.

Sådan dekrypteres AES-kryptering

Afkryptering af AES er simpelt - bare vend alle ovenstående trin tilbage, startende med den omvendte runde nøgle. Selvfølgelig skal du have den originale hemmelige nøgle for at vende processen ved hjælp af hver omvendt rund nøgle.

Gør kryptering af en fil større?

Ja. Som regel. AES bruger en fast blokstørrelse på 16 byte. Hvis en fil ikke er et multiplum af en blokstørrelse, bruger AES polstring til at afslutte blokken.

I teorien betyder dette ikke nødvendigvis en stigning i størrelsen på krypterede data (se kodningstekst stjæle), men det er normalt meget lettere at tilføje data for at fjerne blokken. Hvilket øger mængden af ​​data, der er krypteret.

Anekdotisk dokumentation tyder på, at filer, der er større end 1 MB krypteret med AES, har en tendens til at være omkring 35% større end før kryptering.

Hvor vigtige er nøglestørrelser i AES-kryptering?

Den råeste måde at måle styrken på en chiffer er på størrelse med dens nøgle. Jo større nøgle, jo flere mulige kombinationer er der.

AES kan bruges med 126-bit, 192-bit eller 256-bit nøglestørrelser. Den originale Rijndael-chiffer var designet til at acceptere yderligere nøglelængder, men disse blev ikke vedtaget i AES.

Brute force-angreb

Jo mere kompleks algoritmen er, desto sværere er chifferet at knække ved hjælp af et brute force-angreb. Dette meget primitive angreb kaldes også som en udtømmende nøglesøgning. Det involverer dybest set at prøve alle mulige kombinationer af numre, indtil den rigtige nøgle findes.

Som vi er sikker på, at du ved, udfører computere alle beregninger ved hjælp af binære tal: nul og en. Og som vi har set, afhænger en cifers kompleksitet af dens nøglestørrelse i bits - det rå antal af nuller og nuller, der er nødvendige for at udtrykke dens algoritme, hvor hver nul eller en er repræsenteret af en enkelt bit.

Dette er kendt som nøglelængde og repræsenterer også den praktiske gennemførlighed med succes at udføre et brute force-angreb på enhver given ciffer.

Antallet af mulige kombinationer (og derfor vanskeligheden med at tvinge dem) øges eksponentielt med nøglestørrelse. For AES:

Som vi allerede har diskuteret, ville det tage den hurtigste supercomputer i verden længere end universets alder at knække selv en AES-128 nøgle med magt!

Krypteringsrunder

Som vi også har diskuteret, jo længere nøglen der bruges af AES, desto mere går krypteringsrunderne gennem. Dette er først og fremmest for at forhindre genvejsangreb, der kan reducere cifferens beregningskompleksitet, og som derfor gør det lettere at brute tvinge chifferen.

Som afstået kryptograf Bruce Schneier sagde om genvejsangrebet i 2011 på AES-128,

”Kryptografi handler om sikkerhedsmargener. Hvis du kan bryde en runde af en chiffer, designer du den med 2n eller 3n runder. ”

Han anbefalede at introducere flere runder for hver nøglestørrelse til AES, men NIST finder de nuværende niveauer tilstrækkelige.

Så hvorfor bruge mere end AES-128?

Alt dette rejser spørgsmålet: hvis det ville tage længere tid end universets alder at knække selv AES-128, hvorfor gider du så bruge AES-192 eller AES-256? Som Schneier bemærkede:

”Jeg foreslår, at folk ikke bruger AES-256. AES-128 giver mere end nok sikkerhedsmargen i en overskuelig fremtid. Men hvis du allerede bruger AES-256, er der ingen grund til at ændre. ”

Faktisk har Schneier tidligere gjort gældende, at AE-128 faktisk er mere sikker end AES, fordi den har en stærkere nøgleplan end AES-256.

Så hvorfor holdes AES-256 op som den gyldne standard for symmetrisk nøglekryptering?

Sikkerhedsmargener

Genvejsangrebet i 2011 viser, at uanset hvor sikre eksperter mener, at en kryptografalgoritme er, vil opfindelige mennesker altid finde måder, som ingen nogensinde har tænkt på at svække dem.

Som med antallet af anvendte runder giver en større nøglestørrelse en højere sikkerhedsmargin mod at blive revnet.

Bling

Effekten af ​​markedsføring bør ikke ignoreres, når man overvejer allestedsnærheden ved AES-256-kryptering. Den enkle kendsgerning, at AES-256 i vid udstrækning betragtes som den mest sikre symmetriske krypteringsciffer i verden, gør det til det største valg for mange.

Jeg mener, at hvis AES-128 er god, er det kun grund til at AES-256 skal være bedre, ikke sandt?

Den kendsgerning, at den amerikanske regering bruger AES-256 til at sikre sine mest følsomme data, øger kun deres "bling" -værdi og tillader VPN-virksomheder og lignende at hævde, at de bruger "militær kvalitet" -kryptering.

I betragtning af at denne "bling-opfattelse" er (stort set) nøjagtig, er der lidt skade i populariteten af ​​AES-256 (selvom se noter på NIST nedenfor).

AES og OpenVPN

Specielt VPN-brugere skal dog være forsigtige. De fleste VPN-tjenester bruger AES-256 til at sikre data transmitteret med OpenVPN-protokollen, men dette er en af ​​de forskellige mekanismer, som OpenVPN bruger til at holde dataene sikre.

En TLS-forbindelse sikrer overførsel af de krypteringsnøgler, der bruges af AES til at sikre data, når du bruger OpenVPN. Så hvis OpenVPN TLS (kontrolkanal) -indstillingerne er svage, kan dataene kompromitteres på trods af at de er krypteret ved hjælp af AES-256. Se vores ultimative guide til VPN-kryptering for flere detaljer.

AES-CBC vs AES-GCM

Indtil for nylig var den eneste AES-kodning, som du sandsynligvis ville støde på i VPN-verdenen, AES-CBC (Cipher Block Chaining). Dette henviser til blokciffertilstand, et komplekst emne, som ikke er værd at gå ind her.

Selvom CBC teoretisk muligvis har nogle sårbarheder, er konsensus, at CBC er sikkert. CBC anbefales faktisk i OpenVPN manualen.

OpenVPN understøtter nu også AES-GCM (Galios / Counter Mode). GCM giver godkendelse, hvilket fjerner behovet for en HMAC SHA-hashingfunktion. Det er også lidt hurtigere end CBC, fordi det bruger hardwareacceleration (ved at tråde til flere processor-kerner).

AES-CBC forbliver den mest almindelige tilstand i almindelig brug, men AES-GCM øges i popularitet. I betragtning af fordelene ved GCM er denne tendens kun sandsynligvis fortsat. Fra et kryptografisk perspektiv er imidlertid både AES-CBC og AES-GCM meget sikre.

NIST

AES er en NIST-certificeret standard. Dette er et organ, der ved egen optagelse arbejder tæt sammen med NSA i udviklingen af ​​dets ciffer.

I betragtning af det, vi nu ved om NSAs systematiske indsats for at svække eller opbygge bagdøre i internationale krypteringsstandarder, er der al grund til at stille spørgsmålstegn ved integriteten af ​​NIST-algoritmer. NIST afviser naturligvis kraftigt sådanne påstande:

“NIST ville ikke bevidst svække en kryptografisk standard.”

Det har også opfordret til offentlig deltagelse i en række kommende foreslåede krypteringsstandarder i et skridt, der er designet til at styrke den offentlige tillid.

New York Times beskyldte imidlertid NSA for at omgå NIST-godkendte krypteringsstandarder ved enten at indføre uopdagelige bagdøre eller undergrave den offentlige udviklingsproces for at svække algoritmerne.

Denne mistillid blev yderligere styrket, da RSA Security (en afdeling af EMC) privat bad kunderne om at stoppe med at bruge en krypteringsalgoritme, der angiveligt indeholder en fejl, der er konstrueret af NSA. Denne algoritme var også godkendt af NIST.

Desuden er Dual_EC_DRBG (Dual Elliptic Curve Deterministic Random Bit Generator) en krypteringsstandard konstrueret af NIST. Det har været kendt for at være usikkert i årevis.

I 2006 bemærkede Eindhoven University of Technology i Holland, at et angreb mod det var let nok at lancere på ”en almindelig pc.” Microsoft-ingeniører markerede også en mistænkt bagdør i algoritmen.

På trods af disse bekymringer, hvor NIST fører, følger industrien. Dette skyldes i vid udstrækning, at overholdelse af NIST-standarder er en forudsætning for at få amerikanske regeringskontrakter (FIPS).

NIST-certificerede kryptografiske standarder som AES er stort set allestedsnærværende overalt i hele sektoren inden for industri og erhverv, der er afhængige af privatlivets fred. Dette gør hele situationen ret kølig.

Måske netop fordi så meget er afhængige af disse standarder, har kryptografieksperter været uvillige til at møde problemet.

Billedkredit: xkcd.com/538.

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