Kva Er AES-kryptering og Korleis Fungerer Det?

I ein verden der ondsinna hackarar leitar etter høve til å stjele eller øydeleggje data, har kryptering blitt ein essensiell del av den digitale verda. Kryptering er ein måte å beskytte data på ved å blande det slik at berre autoriserte personar med den hemmelege nøkkelen kan dekryptere og lese det. AES er ein krypteringsalgoritme som VPN-tenesteleverandørar og statlege etatar mykje brukar for å beskytte data. Denne artikkelen fokuserer på AES-kryptering og korleis det fungerer. 

Kva er AES-kryptering?

Det er to hovudtypar av kryptering: Symmetrisk og Asymmetrisk. Asymmetrisk kryptering inneber bruk av to ulike nøklar (privat og offentleg) for å kryptere og dekryptere data, medan symmetrisk kryptering inneber bruk av ein einaste nøkkel for kryptering og dekryptering. Advanced Encryption Standard (AES) høyrer til den symmetriske kategorien av kryptering. Det er ein delmengde av Rijndael-familien av symmetriske blokkchiffrar utvikla av Vincent Rijmen og Joan Dae i 1998, derav namnet «Rijndael.»

AES er ein iterativ siffer basert på substitusjonspermutasjonsnettverk (SPN)-algoritmen. SPN-algoritmen er ein klasse av blokksiffrar som involverer rundar av ein gjenteken serie med matematiske operasjonar. Det er på grunn av desse krypteringsrundane at AES er ein formidabel krypteringssiffer. AES har tre ulike typar basert på lengda av krypteringsnøklane. Dei inkluderer AES-128, AES-192 og AES-256. 

Nøkkellengda for kvar av desse typene AES bestemmer styrken deira; jo lengre lengda, jo sterkare krypteringa. 128-bit og 192-bit AES-krypteringssiffer har høvesvis 3,4 x 10^38 og 6,2 x 10^57 mogelege nøkkelkombinasjonar. AES-256 er det mest robuste krypteringssifferet og har 1,1 x 10^77 mogelege nøkkelkombinasjonar. Trass i variasjonen i nøkkellengd, forblir AES sin blokkstørrelse alltid den same–128 bitar. 

Kvifor vart AES utvikla?

Tidlegare krypteringssiffer var enklare, og med rett mengd tid og verktøy kunne kven som helst knekke dei. Ettersom teknologien stadig utvikla seg, hadde hackarar betre verktøy tilgjengeleg for å kjempe mot krypteringssiffer. Det var tydeleg at krypteringssiffer måtte vere meir sofistikerte enn det som eksisterte i det augneblinket, som var Data Encryption Standard (DES). 

Som AES, er DES òg ein symmetrisk nøkkelalgoritme. IBM utvikla DES på 1970-talet, og US National Bureau of Standards (NBS) tok det i bruk som standard krypteringschiffer for å kryptere sensitiv regjeringsinformasjon. På grunn av adopsjonen av NBS og den amerikanske regjeringa, aksepterte ulike sektorar DES. Det vekte òg interesse i det akademiske samfunnet, noko som førte til ein auka interesse for studiet av kryptografi. I fleire tiår viste DES seg å vere formidabel, inntil juni 1997 då DESCHALL-gruppa offentleg knekte den.

Electronic Frontier Foundation (EFF) sin DES-knekker utførte det same stuntet på 56 timar året etter. I 1999 tok det mindre enn 24 timar å knekke ein DES-nøkkel. Desse viktige hendingane viste at med aukande databehandlingskraft og framsteg i teknologi, ville det berre vere eit spørsmål om tid før det å knekke DES blei enkelt å gjere. Dessutan oversteg ikkje DES-nøkkellengda 56 bitar samanlikna med den allmektige 256-bit AES.

I 2001 avslørte National Institute of Standards and Technology (NIST) at dei hadde teke i bruk AES-krypteringsalgoritmen på grunn av dei allsidige eigenskapane. Den er betre enn DES når det kjem til ytelse, enkel å implementere, og ekstremt vanskeleg å bryte.

Korleis fungerer AES-kryptering for å beskytte dataa dine

Å forstå AES-krypteringsalgoritmen kan vere utfordrande viss du ikkje har ein skikkeleg matematikkbakgrunn. Likevel, vi vil prøve å forenkle prosessen for deg slik at du kan få ein grunnleggjande forståing av korleis den fungerer. AES-krypteringsalgoritmen krypterer og dekrypterer data i blokker på 128 bitar. Trass i variasjonen i nøkkellengde, endrar ikkje blokkstorleiken seg. 

AES-krypteringsalgoritmen kombinerer ein hemmeleg nøkkel (128, 192, eller 256-bit nøkkel) med klartekst (sensitiv data du vil kryptere) for å lage ein kryptert tekst. AES-krypteringa brukar ei rekkje matematiske transformasjonar (substitusjon-permutasjon) ved bruk av den hemmelege nøkkelen og klarteksten. Før nokon operasjon skjer, blir klartekstdataen delt inn i ein 4 x 4 matrise av seksten byte eller 128 bitar (ein byte tilsvarar 8 bitar) sidan AES krypterer data i blokker av bitar. 

AES-algoritmen brukar substitusjon-permutasjon med fleire rundar for å konvertere klartekstdata til ein endeleg kryptert tekst. Nøkkelstorleiken bestemmer talet på rundar. Ein 128-bit nøkkelstorleik har ti rundar, ein 192-bit nøkkelstorleik har tolv rundar, og ein 256-bit nøkkelstorleik har fjorten rundar. No, la oss sjå på operasjonane som er involverte i prosessen med å konvertere klartekstdata til kryptert tekst. 

1. Nøkkelutviding og AddRoundKey

I denne operasjonen brukar AES Rijndael-nøkkelplanen til å produsere nye 128-bits rundenøklar (subnøkkel) frå den primære hemmelege nøkkelen. Det vil seie, det inneber å bruke den opphavlege hemmelege nøkkelen til å skape ein serie med nøklar for kvar runde av krypteringsoperasjonen. I AddRoundKey-operasjonen blir kvar byte av den noverande datastoda blanda med ein byte av den noverande rundenøkkelen ved å bruke ein bitvis XOR-operasjon. 

2. SubBytes (erstatt byte)

I denne operasjonen blir 16-byte blokka køyrd gjennom ein Rijndael substitusjonsboks (S-Box) for å gi ein alternativ verdi for kvar byte. Kvar byte blir erstatta i samsvar med reglar foreskrive av dei førehandsdefinerte Rijndael S-Boksane. S-boksen tar ein verdi og erstattar den med ein annan verdi. Prosessen er mykje meir komplisert, men det gjer det nesten umogleg å bryte AES-chifferet med dei databehandlingsressursane som finst i verda.  

3. ShiftRows

ShiftRows-operasjonen flyttar alle rekkjene i ein 16-byte blokk med unntak av den første. Den er enklare å forstå samanlikna med SubBytes-operasjonen. Den første rekkja endrar seg ikkje og forblir den same. Den andre rekkja flyttar seg til venstre med ein byte, den tredje rekkja flyttar seg til venstre med to byte, og den fjerde rekkja flyttar seg til venstre med tre byte. 

4. MixColumns

Denne operasjonen transformerer kvar kolonne i 16-byte blokka lineært. På grunn av kor komplisert denne operasjonen kan vere, vil vi ikkje fokusere for mykje på den. Ved å bruke matrisemultiplikasjon og bitvis XOR-legging, multipliserer denne operasjonen kvar kolonne med ein førehandsdefinert 4 x 4 matrise, noko som resulterer i ein ny kolonne og blokk. 

Rekkjefølgje for Operasjonar

Kvar data som AES krypterer må gå gjennom kvar av operasjonane ovanfor. Desse operasjonane blir gjentekne fleire gonger avhengig av talet på rundar som er nødvendige. Ein 128-bit nøkkel krev ti rundar, ein 192-bit nøkkel krev tolv rundar, og ein 256-bit nøkkel krev fjorten rundar. Nedanfor vil vi sjå på rekkefølga desse operasjonane utfører for å kryptere data. 

1. Nøkkelutviding

2. LeggTilRunde

3. Følgjande operasjonar vil gå føre seg i 9, 11, eller 13 rundar i rekkefølgja nedanfor:

SubBytes

ShiftRows

MixColumns

AddRound

4. Desse operasjonane finn stad i den siste runden (10., 12., eller 14. avhengig av lengda på den hemmelege nøkkelen): 

SubBytes

ShiftRows

AddRound

Dekryptering av AES-kryptering

Vi har sett korleis AES krypterer data, men korleis dekrypterer det data? Dekrypteringsprosessen er enkel. Ved å reversere alle stega som er involverte i krypteringsprosessen, vil data bli dekryptert. La oss sjå på korleis prosessen ville vore om vi skulle dekryptere data. 

1. Desse operasjonane finn stad i den siste runden (10., 12., eller 14. avhengig av lengda på den hemmelege nøkkelen):

Inverse AddRound

Inverse ShiftRows

Inverse SubBytes

2. Følgjande operasjonar vil halde på i 9, 11, eller 13 rundar i rekkefølgja nedanfor:

Inverse AddRound

Inverse MixColumns

Inverse ShiftRows

Inverse SubBytes

Inverse AddRound

Har AES-kryptering Sikkerheitsproblem?

Sjølv om det ikkje har vore nokon registrerte vellykka åtak på AES-kryptering, kan feil implementering føre til at hackarar oppdagar ein sårbarheit og utnyttar den. Sidan kryptografar alltid leitar etter sårbarheiter i AES, har det vore nokre få vellykka teoretiske og sidekanalåtak. La oss sjå på nokre av dei.

1. Kjend-Nøkkel Skiljande Åtak

I 2009 var eit forsøk på å knekke 8-runden-versjonen av AES-128 med eit kjent-nøkkel skiljande angrep vellykka. Sidan AES-128 har ti rundar med kryptering, er det framleis ugjennomtrengelig. I tillegg må ein angripar kjenne krypteringsnøkkelen før det kan fungere, noko som er svært usannsynleg.

2. Sidekanalåtak

Side-kanal åtak vil berre fungere om nokon ikkje implementerer AES-kryptering korrekt, sidan det er avhengig av at eit system lekker informasjon. Angriparen legg merke til datalekkasjar som elektromagnetisk informasjon, straumforbruk, tidsinformasjon osv., for å samle informasjon frå algoritmen. AES er ikkje heilt immun mot denne typen åtak. 

3. Andre Åtak

Andre åtak som kryptografar har prøvd å bruke for å bryte AES-kryptering inkluderer nøkkelgjenopprettingsåtak og åtak med relaterte nøklar. I begge tilfella rettar angriparen seg mot krypteringsnøkkelen. I eit nøkkelgjenopprettingsåtak må angriparen ha minst eit par av krypterte og dekrypterte meldingar. I eit åtak med relaterte nøklar må angriparen vite forholdet mellom to ulike nøklar. Desse åtaka fungerer berre på system som implementerer AES feilaktig og er ikkje signifikante truslar. 

Konklusjon

Den primære grunnen til at tryggingsbyrå og topp VPN-tenester brukar AES-kryptering, er på grunn av immuniteten mot angrep. I tillegg til å vere praktisk talt umogleg å bryte, er Advanced Encryption Standard rask, allsidig og enkel å implementere. Samanlikna med andre krypteringstypar som DES, brukar den òg mindre minne. Du kan òg kombinere den med andre tryggingsprotokollar for å sikre eit høgt nivå av tryggleik.