Hva er AES-kryptering, eksempler på hvordan Advanced Encryption Standard fungerer

Hvis du noen gang har lurt på hvordan ting holdes sikkert på Internett, spesielt med tanke på at det er flere ondsinnede agenter som stadig prøver å bryte inn datahvelv, er kryptografi et av svarene som passer best på spørsmålet.

Som deg oktober vet, kryptografi er bare en av metodene som brukes for å beskytte informasjon og kommunikasjon, men det betyr ikke at det er enkelt på noen måte. Faktisk er det en teknologi som gjennomgår konstant utvikling for å sikre at standardene den er avhengig av alltid er toppen av linjen.

Et eksempel på en slik standard er AES, et akronym som du sannsynligvis har møtt før, spesielt hvis du stadig bruker kommunikasjonsapper som WhatsApp, Signal eller Telegram, eller VPN-programvare. I denne artikkelen skal vi fokusere på AES og hjelpe deg å forstå det bedre.

Hva er AES?

AES, som står for Advanced Encryption Standard, er en populær form for kryptering som har blitt brukt en god stund nå for å sikre at data holdes trygt og sikkert, vekk fra nysgjerrige øyne.

Det som får AES-kryptering til å skille seg ut i mengden er det faktum at det er en rask, sikker krypteringsmetode og dens fleksibilitet gjør det mulig å bruke den på et bredt utvalg av produkter, alt fra daglige apper som WhatsApp eller Signal til militære. sikkerhetssystemer og til og med maskinvare.

Hvordan kryptering fungerer

Du vet sikkert hvordan kryptering fungerer. Hvis du ikke gjør det, her er en rask påminnelse: kryptering tar ren tekst og konverterer den til en kryptert form, som får det til å se ut som om det består av tilfeldige tegn. Det er trygt å si at AES er en symmetrisk krypteringstype, siden den bruker samme nøkkel til å kryptere og dekryptere data.

Denne krypteringsstandarden bruker substitusjonspermutasjonsnettverksalgoritmen (SPN-algoritmen) for å bruke flere krypteringsrunder for å beskytte data. Det faktum at den bruker så mange runder gjør AES praktisk talt ugjennomtrengelig.

AES er ikke bare den første, men også den eneste offentlig tilgjengelige chifferen som ble godkjent av NSA (National Security Agency) for å beskytte topphemmelige data. Opprinnelig ble denne krypteringsstandarden kalt Rijndael basert på navnene på de to utviklerne, Vincent Rijmen og Joan Daemen (begge fra Belgia).

AES flere nøkkellengder

AES inkluderer tre blokkchifre, og hver av disse blokkchifrene har et annet antall mulige nøkkelkombinasjoner, som følger:

AES-128: 128-biters nøkkellengde = 3,4 * 1038
AES-192: 192-bits nøkkellengde = 6,2 * 1057
AES-256: 256-bits nøkkellengde = 1,1 * 1077

Selv om det er tre blokkchifre, krypterer og dekrypterer hver av dem data i 128 blokkbiter ved å bruke forskjellige nøkkellengder (dvs. 128, 192 og 256, som spesifisert ovenfor). Så det er trygt å si at selv om lengden på nøklene kan være forskjellig, er blokkstørrelsen alltid den samme (128 biter eller 16 byte, de er det samme).

Det faktum at AES bruker forskjellige nøkkellengder reiste definitivt noen spørsmål blant brukerne, for eksempel hvorfor trenger vi flere nøkkellengder, i utgangspunktet? Andre kan til og med stille spørsmål ved behovet for å ha flere nøkkellengder, mer med tanke på at 256-bits nøkkelen antagelig er den sikreste.

Til tross for at 256-bit AES-nøkkelen ganske enkelt er den sterkeste i gjengen, ofte referert til som «militærklasse», er den ikke alltid utplassert som standard, og grunnen til at dette skjer er på grunn av tilgjengelig, eller bedre. ennå, utilgjengelige ressurser.

AES-128 vs AES-256

Jo større en nøkkel er i størrelse, desto mer ressurs vil den forbruke, så det er trygt å si at et mindre kapabelt system er mer sannsynlig å bruke 128-bits AES-nøkler i stedet for 256-biters motstykke. For eksempel, hvis du bruker 256-bit AES-kryptering på telefonen din, er det oktober tømme batteriet raskere enn 128-bitsversjonen av samme krypteringsstandard.

256-biters AES-nøkler er mye vanskeligere å brute-force enn 128-biters. Men selv med enorme mengder datakraft er 128-biters AES-nøkler fortsatt nesten umulige å knekke, så bruk denne versjonen i stedet for 256-biters nøkler oktober være et bedre valg hvis du er bekymret for strøm eller ventetid, spesielt på bærbare enheter (for eksempel smarttelefoner).

På den lyse siden har teknologifremskritt gjort det slik at forskjellene i både datakraft og batterilevetid mellom bruk av AES-256 og AES-128 er ubetydelige, noe som gjør 256-bit AES til det mest populære valget, ettersom de fleste brukere foretrekker å ha fred med sinn.

Fordelene ved å bruke AES

Det faktum at krypteringsmetodene som håndheves av AES er raske og enkle å forstå, gjør AES til et populært valg på en lang rekke felt. AES er ikke bare raskt og sikkert, men også enkelt å implementere, noe som ytterligere øker dens medfødte popularitet.

Videre er den i stand til å dekryptere beskyttede data så raskt som den kan kryptere den, og bruker mindre minne og datakraft enn andre populære krypteringsstandarder (som DES), noe som gir den en fordel.

Sist, men ikke minst, hvis situasjonen tilsier det, er AES fleksibel nok til at den lar deg kombinere det med flere andre sikkerhetsprotokoller som TKIP, WPA2, WEP, men også andre krypteringstyper, som SSL.

Her er noen viktige fordeler ved å velge AES fremfor andre krypteringsstandarder:

Støtter å bli implementert i både maskinvare og programvare
Det faktum at den støtter tre nøkkellengder gir deg litt fleksibilitet når det gjelder sikkerhet og hastighet (ytelse)
Alle de tre nøkkeltypene er lange nok, noe som gjør AES til et umulig brute-forcing-mål
Så langt har ingen kryptografisk angrep vist seg å virke mot AES
Du kan finne det praktisk talt overalt, gitt det faktum at den amerikanske regjeringen definerte det som en standard
Enkel å implementere uavhengig av destinasjon (maskinvareimplementering er angivelig enklere enn programvare)
Tar ikke så mye minne som andre krypteringstyper (for eksempel DES)
Enkel å kombinere med andre sikkerhetsprotokoller og krypteringstyper

Vanlige bruksområder for AES

Til tross for at vi allerede har nevnt at AES vanligvis brukes overalt hvor det støttes, er det noen få eksempler hvor det er høyere odds for å møte det. Nemlig:

VPN-er
Måten VPN-er fungerer på dreier seg om å omdirigere trafikken din, men ikke før du krypterer den slik at andre ikke kan se den i tilfelle de overvåker forbindelsen din. Dessuten må trafikken dekrypteres ved utgangspunktet, noe som innebærer behov for en krypteringsstandard. AES-256 brukes som standard av flere VPN-leverandører, inkludert NordVPN, Surfshark og ExpressVPN.

Passordadministratorer
Passordadministratorer fungerer ved å la deg legge inn alle passordene dine og beskytte dem med ett enkelt passord ved hjelp av kryptering. Ulike programvareløsninger for passordadministrasjon på markedet har valgt AES som sin operative krypteringsstandard, med tanke på at det er enkelt å implementere, raskt og sikkert.

Wi-Fi-nettverk
Uten trafikkkryptering kan angripere bare sitte utenfor det trådløse nettverket ditt, fange opp ukrypterte pakker med en passende WiFi-adapter og overvåke hele din online oppholdssted uten å bry seg i verden. Heldigvis kan AES-kryptering, vanligvis sammen med tilleggssikkerhetsstandarder (WPA2 er den mest populære for tiden) forhindre at det skjer.

  Slik fjerner du nettleserens bokmerker

Nettlesere
Du vet sikkert allerede at en stund nå har nettlesere kryptert brukernes tilkoblinger for å beskytte dem mot ulike cybertrusler som MITM-angrep (Man-In-The-Middle), spoofing eller trafikkovervåking.

Diskkryptering
Selv om denne funksjonen for det meste brukes på bærbare enheter som smarttelefoner og nettbrett, er kryptering av disken ikke uhørt hvis du ønsker å øke personvernet og sikkerheten. AES er for tiden en av de mest populære metodene som brukes til å kryptere og dekryptere diskinnhold.

Programvare for filkomprimering
Enten det er WinRar, WinZip eller 7z vi snakker om, alle disse arkiverings- og filkomprimerings-/dekompresjonsverktøyene på markedet bruker AES som sin standard krypteringsstandard for å forhindre utilsiktede datalekkasjer mens du håndterer filene dine.

Kommunikasjonsapper
WhatsApp, Signal, Telegram, Snapchat, Messenger, men også andre vi ikke har nevnt, bruker AES-kryptering for å sikre at du drar nytte av fullstendig personvern, enten du sender bilder, videoer, dokumenter eller ren tekstmeldinger gjennom disse appene.

Programmeringsspråkbiblioteker
Hvis du er en programmerer, bør du sannsynligvis vite at biblioteker med visse programmeringsspråk, inkludert men ikke begrenset til C++, Java og Python, bruker AES-kryptering for å hjelpe deg med å beskytte dataene og prosjektene dine mot uautorisert tilgang.

OS-komponenter
For å legge til et ekstra lag med sikkerhet, har noen operativsystemer lagt til AES-kryptering til noen av komponentene.

Hvordan fungerer AES?

Generelt sett må du vite eller lære hvordan en spesifikk teknologi fungerer for å dra nytte av dens evner på sitt fulle potensial. I dette tilfellet bør du vite en ting eller to om hvordan AES fungerer før du tilfeldig implementerer eller bruker det på prosjektene dine eller i miljøet ditt.

1. Data blir delt inn i blokker

Som du sikkert husker fra våre omtaler ovenfor, er AES en blokkchiffer, som betyr at den krypterer dataene den mottar i blokker med biter, i motsetning til å kryptere den bit-for-bit.

Derfor er det første trinnet i AES-kryptering å separere dataene i blokker. Hver av disse blokkene har en 4 x 4 kolonne på 128 biter eller 16 byte. Med tanke på at en byte består av 8 biter, har vi 16 x 8 = 128 biter, som er størrelsen på blokken.

La oss for eksempel si at du ønsker å kryptere «wdzwdz.com» ved å bruke AES, det første krypteringsprosessen gjør er å separere data i blokker. En blokk kan imidlertid bare inneholde 16 tegn, så den første blokken vil ikke inneholde «m» på slutten av teksten. «m» vil bli sendt til neste blokk.

Derfor, etter å ha brukt AES på «wdzwdz.com», vil den første delen av denne teksten se ut som blokken nedenfor:

en
c
e
s
d
t
t
.
d
Jeg
Jeg
c
Jeg
v
s
o

2. Nøkkelutvidelse

Nøkkelutvidelsesprosedyren er litt mer komplisert enn trinnet vi har beskrevet ovenfor. Det innebærer å ta en innledende nøkkel og bruke Rijndaels nøkkelplan for å generere en serie ekstra nøkler som skal brukes for hver eneste runde av krypteringsprosessen.

Så, for eksempel, hvis du bruker nøkkelen «AESencryption12» i ren tekst ovenfor (wdzwdz.com), vil du få en streng med tilsynelatende tilfeldige tall.

EN
e
y
o
E
n
s
n
S
c
t
1

r
Jeg
2

Rijndael-nøkkelplanen bruker imidlertid svært spesifikke prosesser for å kryptere hvert enkelt symbol i den første setningen.

Resultatet vil se ut som blokken nedenfor:

7e
04
0b
20
52
6c
1c
56
a7
bf
8e
84
30
03
3d
20

Igjen, selv om det ser ut som vrøvl og tilfeldige tall, er det nøyaktig poenget med hele denne krypteringsprosedyren: å skjule data bak et chiffer, gjøre det utilgjengelig for brukere som ikke vet hva chifferen er og gjøre det umulig å knekke det .

Videre er dette langt fra over, siden krypteringsprosessen må bruke nøklene vi nylig har generert for hver runde med kryptering. Men mer om det senere.

3. Legge til en rund nøkkel

Dette er faktisk den første runden med kryptering, ettersom vi legger til startnøkkelen («AES encryption12») til meldingsblokken vår («wdzwdz.com»), som i eksemplet nedenfor, som oktober ikke fornuftig med det første.

en
c
e
s
d
t
t
.
d
Jeg
Jeg
c
Jeg
v
s
o

OG

EN
e
y
o
E
n
s
n
S
c
t
1

r
Jeg
2

Selv om det kan føles som om det er umulig å legge til to blokker med tekst sammen, men husk at dette bare er en grafisk representasjon av krypteringsprosessen slik at du oktober forstå det bedre. I virkeligheten bruker AES binær kode, noe som gjør vårt forsøk på å legge til to tekstblokker ikke bare helt plausibelt, men også fullt mulig.

Denne operasjonen (med å legge de to tekstblokkene sammen) gjøres ved å bruke et XOR-chiffer, og resultatet kan sees nedenfor:

32
d5
5c
d9
f3
24
a8
46
7e
1c
37
f3
82
5e
3f
03

4. Byte-erstatning

For ytterligere å forbedre beskyttelsen av dataene dine (i vårt tilfelle klarteksten vi prøver å kryptere), vil dette trinnet i prosessen erstatte hver byte i blokken med en forhåndsbestemt verdi i henhold til en tabell, kalt Rijndael S-boksen. Du kan se tabellen rett nedenfor:

00
01
02
03
04
05
06
07
08
09
0a
0b
0c
0d
0e
0f
00
63
7c
77
7b
f2
6b
6f
c5
30
01
67
2b
fe
d7
ab
76
10
ca
82
c9
7d
fa
59
47
f0
annonse
d4
a2
af
9c
a4
72
c0
20
b7
fd
93
26
36
3f
f7
cc
34
a5
e5
f1
71
d8
31
15
30
04
c7
23
c3
18
96
05
9a
07
12
80
e2
eb
27
b2
75
40
09
83
2c
1a
1b
6e
5a
a0
52
3b
d6
b3
29
e3
2f
84
50
53
d1
00
utg
20
fc
b1
5b
6a
cb
være
39
4a
4c
58
jfr
60
d0
ef
aa
fb
43
4d
33
85
45
f9
02
7f
50
3c
9f
a8
70
51
a3
40
8f
92
9d
38
f5
f.Kr
b6
da
21
10
ff
f3
d2
80
cd
0c
1. 3
ec
5f
97
44
17
c4
a7
7e
3d
64
5d
19
73
90
60
81
4f
dc
22
2a
90
88
46
ee
b8
14
de
5e
0b
db
a0
e0
32
3a
0a
49
06
24
5c
c2
d3
ac
62
91
95
e4
79
b0
e7
c8
37
6d
8d
d5
4e
a9
6c
56
f4
ea
65
7a
ae
08
c0
ba
78
25
2e
1c
a6
b4
c6
e8
dd
74
1f
4b
bd
8b
8a
d0
70
3e
b5
66
48
03
f6
0e
61
35
57
b9
86
c1
1d
9e
e0
e1
f8
98
11
69
d9
8e
94
9b
1e
87
e9
ce
55
28
df
f0
8c
a1
89
0d
bf
e6
42
68
41
99
2d
0f
b0
54
bb
16

Selv om denne tabellen også ser ut som en serie med tilfeldige tegn, kan du bruke den til å sjekke hvilken verdi de erstattede bytene vil ha. For eksempel vil c9 bli dd, 26 blir f7, ff blir 16 og snart. Det er ikke så vanskelig å bruke når du først har fått taket på det.

Nå som vi har sett tabellen, la oss se hvordan den nye blokken vi har generert ovenfor fra den første runden med kryptering vil endre seg etter den Rijndael S-boks-baserte byte-erstatningen:

23
03
4a
35
0d
36
c2
5a
f3
9c
9a
0d
1. 3
58
75
7b

Merk at vi faktisk har erstattet blokkene ved å bruke Rijndael S-box-tabellen manuelt, slik at du kan dobbeltsjekke og prøve å gjenskape resultatene hvis du er interessert. På denne måten er det lettere for deg å følge med, spesielt hvis du brenner for å lære mer om kryptografi.

  Hands-on med Skype-tale- og videosamtaler for Outlook.com

5. Radskifting

I dette trinnet av AES-krypteringsprosessen blir radene forskjøvet for å plassere dataene dine bak en ekstra beskyttelsesvegg. Mens den første raden forblir urørt, forskyves de tre neste på forskjellige måter, som følger:

Den andre raden flyttes til venstre med én byte (celle)
Den tredje raden blir forskjøvet til venstre med to byte (celler)
Den fjerde og siste raden blir forskjøvet til venstre med tre byte (celler)
23
03
4a
35
36
c2
5a
0d
9a
0d
f3
9c
7b
1. 3
58
75

6. Kolonneblanding

Selv om vi gjerne vil være så nøyaktige som mulig, innebærer dette trinnet å bruke en rekke komplekse matematiske formler på blokken, noe som gir oss en helt annen blokk på slutten av prosedyren.

For å være litt mer spesifikk, multipliseres hver kolonne med en forhåndsdefinert matrise under dette trinnet. Resultatet vil være en ny kodeblokk, som vil bli brukt videre til å øke chifferens styrke og redusere sjansene for at den blir knekket på vidt gap.

På slutten av kolonneblandingsprosessen får vi en kodeblokk som ser omtrent slik ut:

43
4d
33
85
c8
37
6d
8d
9a
33
85
9c
42
68
41
99

7. Legg til ekstra rundnøkkel

Husker du at vi for en stund tilbake fortalte deg at vi definitivt trenger nøkkelen som vi har laget under nøkkelutvidelsestrinnet? Vel, vi har brukt det én gang til å kryptere alt én gang, nå må vi foreta en kryptering til til dataene vi nettopp har fått.

Så vi tar datablokken vi fikk etter å ha kjørt kolonneblandingstrinnet, og vi legger til en ny rundnøkkel til den, akkurat som vi gjorde i trinn 3 i guiden vår, slik:

43
4d
33
85
c8
37
6d
8d
9a
33
85
9c
42
68
41
99

OG

32
d5
5c
d9
f3
24
a8
46
7e
1c
37
f3
82
5e
3f
03

Som du forventer, vil dette trinnet generere nok en datablokk som vi kan behandle, men vi stopper her. Vi har en følelse av at du skjønte poenget. Imidlertid er krypteringsprosessen fortsatt langt fra over, siden datablokken vi nettopp genererte vil gjennomgå flere modifikasjoner.

8. Flere trinn

Disse modifikasjonene som vi har nevnt ovenfor inkluderer alt vi har gjort så langt: skifte av rader, byte-erstatning, legge til rundnøkler og blande kolonner, så det er lett å forstå hvorfor vi måtte stoppe her når det gjelder eksemplifisering.

Disse rundene er identiske, og antall ganger disse rundene gjentas avhenger av AES-nøkkellengden, som følger:

AES-128 bruker 9 runder
AES-192 bruker 11 runder
AES-256 bruker 13 runder

Så hvis du planlegger å bruke AES-256, vil trinnene vi tidligere har nevnt og forklart gjentas 13 ganger på rad, noe du kan være enig i er en enorm mengde. Det er også lett å forstå hvorfor AES er så vanskelig å knekke og er en standard krypteringsstandard i mange miljøer.

Vi er imidlertid ikke ferdige ennå. Etter de 9, 11 eller 13 rundene med kryptering vi kort har snakket om ovenfor, er det en ekstra runde, der algoritmen bare erstatter byte, skifter rader og legger til en rundnøkkel (den hopper over å blande kolonner).

Den oktober høres latterlig ut at etter 9, 11 eller 13 runder med kjøring blir alle trinnene over blandekolonnene droppet. Årsaken er at det på dette tidspunktet er noe overflødig, og dette trinnet hoppes over bare for å bevare litt prosessorkraft.

Så faktisk, etter å ha kjørt alle trinnene i krypteringsprosessen, vil inndataene (vår klartekst vi har brukt i begynnelsen i dette tilfellet) ha gått gjennom 10, 12 eller 14 runder, avhengig av nøkkellengden du valgte og vil se ut som et sett med tilfeldige tegn. Ikke at det ikke så slik ut på lenge nå, siden vi startet krypteringsprosessen og det hele.

Så, for å oppsummere, mens du gjennomgår kryptering, gjennomgår dataene du mater til AES-krypteringsverktøyene følgende prosesser, i denne rekkefølgen:

Blokkdeling
Nøkkelutvidelse
Legger til en rund nøkkel
Bytebytte
Radskifting
Kolonneblanding
Legger til en rund nøkkel
Trinn 4-7 gjentas 9, 11 eller 13 ganger avhengig av nøkkellengden
Byte-erstatning
Radskifting
Legger til en rund nøkkel

På slutten av denne komplekse og tilsynelatende endeløse prosessen, vil wdzwdz.com, teksten vi har forsøkt å kryptere, se ut som koden nedenfor hvis den er kryptert med en 128-bits nøkkel og «AESencryption12» som vår hemmelige nøkkel:

RcadDaLDuP5fHtor3/Rfnq5EijEfhP02pvrlGkGr1Gc=

Selv om det oktober ser ut som fullstendig sludder, nok en gang, det er poenget med å bruke kryptering: få data så enkle som ren tekst til å se ut som noe gikk fryktelig galt under overføringen, og nå ser det ut som vrøvl.

Hvordan dekryptere AES

Vi forstår at AES og hele krypteringsprosessen kan være litt av en håndfull, ettersom de mange trinnene, samt det faktum at de gjentas i en ugudelig lang tid, kan være litt skremmende.

Men hvis du tar et skritt tilbake og ser på det store bildet, begynner det hele faktisk å gi mening, selv for noen som ikke brukte hele livet på å studere kryptografi og utforme den perfekte måten å kryptere eller dekryptere informasjon på.

Det er nettopp derfor vi er ganske sikre på at du ikke vil ha noen problemer med å forstå AES-dekryptering hvis krypteringsprosessen sammen med alle trinnene gir mening for deg. For å si det kort, AES-dekryptering følger nøyaktig samme trinn som krypteringsprosessen, bare de er reversert.

Så, i vårt tilfelle, hvis vi ønsker å gå tilbake til «wdzwdz.com» fra RcadDaLDuP5fHtor3/Rfnq5EijEfhP02pvrlGkGr1Gc=, er alt vi trenger å gjøre å spore trinnene våre tilbake til vi når den første, slik:

Omvendt legger til rund nøkkel
Omvendt radskifting
Invers byte-erstatning
Omvendt legger til rund nøkkel
Invers kolonneblanding
Omvendt radskifting
Invers byte-erstatning
Gjenta trinn 4-7 i 9, 11 eller 13 ganger avhengig av nøkkellengde
Omvendt legg til rund nøkkel

Etter å ha utført alle trinnene ovenfor, bør vi ende opp med vårt originale tekstfragment, «wdzwdz.com».

Er AES-kryptering sikker?

Et av de mest presserende spørsmålene når det gjelder alle krypteringsstandarder (ikke bare AES) er om det kan gi deg et optimalt sikkerhetsnivå. I dette tilfellet vil spørsmålet være: er AES-kryptering sikker?

Selv om du selv kunne se at denne krypteringsstandarden implementerer et stort antall trinn, som hver forvrider originalteksten og vrir den til ugjenkjennelig, så det ikke ut til at dette stoppet angripere fra å utforme potensielle måter å omgå disse beskyttelsesmidlene.

Merk at i en virkelig situasjon vil ikke en angriper (ofte kjent som en hacker eller cracker) gå etter den høyeste, tykkeste veggen i sitt forsøk på å invadere den virtuelle festningen som er PC-en din, databasen, arkivet eller hva du måtte gjøre. prøver å beskytte.

I stedet vil de sirkle rundt de velkjente veggene flere ganger og prøve å finne sprekker som er verdt å utnytte, og deretter begynne å bore der. I vår situasjon, angripere oktober ønsker å oppdage eventuelle sårbarheter i AES-krypteringsprosessen og begynne å jobbe seg opp derfra.

Heldigvis prøver kryptografiforskere stadig å finne sårbarheter med AES-krypteringsprosessen, for å kunne forhindre et potensielt angrep fra noen som oppdager feilene først og (åpenbart) ikke deler dem med hele verden.

Frem til nå har forskerne vært i stand til å identifisere en rekke angrep som kan kompromittere AES, men disse er enten rent teoretiske, sidekanalangrep eller crackingforsøk med en kjent sikkerhetsnøkkel, som du snart vil lære av følgende seksjoner.

1. Kjent-nøkkel skille angrep

Et angrep som brukte en kjent nøkkel ble designet av kryptografiforskere og observert i aksjon, og det viste noen lovende resultater. Angrepet ble innført i 2007 av Vincent Rijmen og Lars Knudsen.

  Hva er kanalbinding?

Selv om det ikke akkurat er bra for AES-krypteringsmetoden, hadde dette angrepet to feil som gjør det usannsynlig å bli brukt i et virkelighetsscenario: det faktum at det brukte en kjent nøkkel, og at det ble testet mot en versjon med syv runder. av AES-128.

Tatt i betraktning at mesteparten av tiden nøkkelen ikke er kjent for angriperen (med mindre de tilfeldigvis bare snubler over den med presise instruksjoner angående formålet) og at AES-128 har 10 runder med kryptering, kan daglige AES-128 være trygg på at angrepet er ikke sannsynlig.

Det faktum at de fleste tjenestene som tilbyr AES-128 også har innebygd støtte for AES-256 betyr at det ikke kan være enklere å øke krypteringen din i tilfelle du er bekymret for å bli målrettet av et angrep med kjent nøkkel.

2. Relatert nøkkelangrep

Relaterte nøkkelangrep er mer en kategori, siden de representerer alle former for kryptoanalyse der angripere kan analysere måten en chiffer fungerer på under flere nøkler. I denne typen angrep kjenner ikke angriperen verdiene til nøklene som brukes i chifferen.

Men selv om de er ukjente, har nøklene også en slags matematisk relasjon til hverandre, som angriperen vet. Et av de enkleste eksemplene vil være at angriperen vet at de første 16 bitene av nøklene alltid er de samme, men har ingen anelse om hva bitene faktisk er.

Selv om relaterte nøkkelangrep kan være vellykkede hvis de brukes på riktig måte, er de ingen reell bekymring i den virkelige verden. For at et slikt angrep skal fungere, må en angriper lykkes med å overtale en kryptograf til å kryptere data ved å bruke ulike hemmelige nøkler som er koblet til hverandre matematisk, og deretter dele hemmeligheten med angriperen.

Dermed er denne typen angrepsservere bare som en påminnelse om at menneskelige feil kan bidra til å sette noen knekk i AES-rustningen ved å være utsatt for dårlig implementering av denne krypteringsstandarden.

3. Sidekanalangrep

Selv om AES foreløpig er praktisk talt uslåelig, har det vært mange forsøk på å designe teoretiske angrep som kan demonstrere noen av denne krypteringsstandardens sårbarheter.

Selv om det har gått 20 år siden AES ble introdusert, og teknologien har gjort noen store fremskritt i løpet av de siste 20 årene, er mengden datakraft som trengs for å brute-force AES fortsatt ikke nok, og vi vil fortsatt trenge milliarder av år å kunne knekke det.

En annen type forsøk på å bryte sikkerheten til AES-kryptering er imidlertid sidekanalangrepet. Denne typen angrep kombinerer flere typer datalekkasjer for å trekke ut nok data fra en algoritme til at den kan knekkes.

For eksempel kan angripere fokusere på strømforbruk, elektromagnetisk stråling, tiden det tar å utføre ulike beregninger, og til og med lydene som produseres under beregningen for å trekke ut mer informasjon om algoritmen.

Det er flere klasser av sidekanaler, inkludert:

Timing av angrep
Timingangrep dreier seg om å måle tiden det tar før visse beregninger utføres (for eksempel å sammenligne et kjent passord med et ukjent).

Cache-angrep
Disse angrepene er bare levedyktige hvis angriperen kan få tilgang til noen av offerets cacher i ulike miljøer, enten det er virtualiseringsmiljøer (virtuelle maskiner), delte fysiske systemer eller skytjenester vi snakker om.

Elektromagnetiske angrep
Elektromagnetiske angrep er basert på lekkasjer med elektromagnetisk stråling, som kan brukes til å trekke ut ulike biter av informasjon. Måling av elektromagnetiske strålingslekkasjer kan noen ganger føre til å oppdage kryptografiske nøkler.

Kraftovervåkingsangrep
Angripere overvåker strømforbruket til maskinvaren under visse beregningstrinn for å trekke ut informasjon om algoritmen.

Akustisk kryptonalise
Ligner på kraftovervåkingsangrepene, men angripere lytter til og analyserer lydene som maskinvaren lager når de utfører visse beregningstrinn og trekker ut informasjon fra disse funnene.

Dataremanens
Denne typen angrep dreier seg om sensitive data som fortsatt kan åpnes og leses selv etter at de er slettet.

Optisk analyse
I denne komplekse typen angrep brukes kameraer med høy oppløsning til å fange opp hemmeligheter eller sensitive data (som for eksempel å analysere harddiskaktivitetsindikatorer eller transistorbyttetilstander).

Differensiell feilanalyse
Denne typen angrep er basert på å oppdage hemmeligheter ved å skrive inn feil i beregningen for å utløse en feil.

Selv om du kan være enig i at disse sidekanalene er intet mindre enn kreative, og forfatterne deres kan bruke dem til å gjøre selv de mest tilsynelatende ubetydelige detaljer om til en veritabel informasjon, fungerer de bare hvis systemet som revideres lekker informasjon.

Av den grunn kan det enkelt oppnås å unngå sidekanalangrep enten ved å sørge for at systemene som kan bli angrepet ikke lekker noen data eller ved å sikre at det ikke er noen assosiasjon mellom de algoritmiske prosessene og lekke data, uavhengig av deres natur.

4. Nøkkelgjenopprettingsangrep

Sist, men ikke minst, er nøkkelgjenopprettingsangrepene en tøff deltaker når det kommer til effektive måter å knekke AES-kryptering på. I 2011 ble et slikt angrep forsøkt for å bevise sin effektivitet mot AES-krypteringsmekanismen.

Denne typen angrep er ikke akkurat sannsynlig, siden det innebærer at angriperen får tak i minst et par krypterte og dekrypterte meldinger fra det snart kompromitterte systemet.

Angrepet viste lovende resultater, ettersom det var omtrent fire ganger så raskt som brute-forcing. Men med tanke på at et brute-force-angrep vil ta bokstavelig talt milliarder av år å fullføre, er viktige gjenopprettingsangrep fortsatt langt fra å være ideelle, noe som gjør at de neppe vil bli brukt i et angrep.

Videre, selv om det tok kortere tid å fullføre, kan endring av sikkerhetsnøkkelen ofte gjøre paret med krypterte og dekrypterte meldinger ubrukelige.

Er AES sikker?

Tatt i betraktning alt du har lært ved å gå gjennom denne veiledningen, tror vi at du kan bedømme om AES er en sikker krypteringsstandard eller ikke.

AES har eksistert siden 2001, og siden introduksjonen har det vært mange forsøk på å bryte det, noe som gjør det trygt å si at det sto tidens tann, og det er fortsatt et solid valg når det kommer til krypteringsalgoritmer.

Den store mengden trinn den algoritmiske prosessen går gjennom for å gjøre dataene uleselige er enorm, og det ville tatt bokstavelig talt milliarder av år å knekke AES, selv med dagens beregningskraft og teknologiske fremskritt.

Så for å svare på spørsmålet ditt med tanke på alt det ovennevnte: ja, AES er sikkert. Selv AES-128 viste seg å være rett og slett umulig å knekke, for ikke å nevne de kraftigere motstykkene, AES-192 og AES-256.

AES-kryptering – KONKLUSJON

Alt tatt i betraktning, etter å ha lest vår omfattende veiledning håper vi at du lærte mer om AES, inkludert hvordan det fungerer, hvilke prosesser det går gjennom under krypteringsprosessen, hvor det kan brukes og hvordan det kan (på et teoretisk nivå) kompromitteres .

Det faktum at det 20 år etter introduksjonen fortsatt er raskt, sikkert og kan implementeres på et stort utvalg av maskinvare- og programvaremiljøer, gjør at den virkelig fortjener tittelen som «gullstandarden» for krypteringsteknikker.

x