Vad är AES-kryptering, exempel på hur Advanced Encryption Standard fungerar

Om du någonsin har undrat över hur saker och ting hålls säkra på Internet, särskilt med tanke på att det finns flera illvilliga agenter som ständigt försöker bryta in datavalv, är kryptografi ett av de svar som bäst passar frågan.

Som du april vet, kryptografi är bara en av metoderna som används för att skydda information och kommunikation, men det betyder inte att det är enkelt på något sätt. Faktum är att det är en teknik som genomgår ständig utveckling för att säkerställa att de standarder den förlitar sig på alltid är i toppklass.

Ett exempel på en sådan standard är AES, en förkortning som du förmodligen har stött på tidigare, speciellt om du ständigt använder kommunikationsappar som WhatsApp, Signal eller Telegram eller VPN-programvara. I den här artikeln kommer vi att fokusera på AES och hjälpa dig att förstå det bättre.

Vad är AES?

AES, som står för Advanced Encryption Standard är en populär form av kryptering som har använts ett bra tag nu för att säkerställa att data förvaras säkert och borta från nyfikna ögon.

Det som gör att AES-kryptering sticker ut i mängden är det faktum att det är en snabb, säker krypteringsmetod och dess flexibilitet gör det möjligt att använda den på en mängd olika produkter, allt från dagliga appar som WhatsApp eller Signal till militär säkerhetssystem och till och med hårdvara.

Hur kryptering fungerar

Du vet förmodligen hur kryptering fungerar. Om du inte gör det, här är en snabb påminnelse: kryptering tar vanlig text och konverterar den till en chiffrerad form, vilket får det att se ut som om det består av slumpmässiga tecken. Det är säkert att säga att AES är en symmetrisk krypteringstyp, eftersom den använder samma nyckel för att kryptera och dekryptera data.

Denna krypteringsstandard använder substitution permutation network algorithm (SPN-algoritmen) för att tillämpa flera krypteringsrundor för att skydda data. Det faktum att den använder så många omgångar gör AES praktiskt taget ogenomtränglig.

AES är inte bara det första utan också det enda offentligt tillgängliga chiffer som godkändes av NSA (National Security Agency) för att skydda topphemlig data. Ursprungligen kallades denna krypteringsstandard Rijndael baserat på namnen på dess två utvecklare, Vincent Rijmen och Joan Daemen (båda från Belgien).

AES flera nyckellängder

AES innehåller tre blockchiffer, och var och en av dessa blockchiffer har olika antal möjliga tangentkombinationer, enligt följande:

AES-128: 128-bitars nyckellängd = 3,4 * 1038
AES-192: 192-bitars nyckellängd = 6,2 * 1057
AES-256: 256-bitars nyckellängd = 1,1 * 1077

Även om det finns tre blockchiffer, krypterar och dekrypterar var och en av dem data i 128 blockbitar genom att använda olika nyckellängder (dvs. 128, 192 och 256, som specificerats ovan). Så det är säkert att säga att även om längden på nycklarna kan vara olika, är blockstorleken alltid densamma (128 bitar eller 16 byte, de är samma sak).

Det faktum att AES använder olika nyckellängder väckte definitivt vissa frågor bland användarna, som varför behöver vi flera nyckellängder, i första hand? Andra kanske till och med ifrågasätter behovet av att ha flera nyckellängder, mer med tanke på att 256-bitarsnyckeln förmodligen är den säkraste.

Trots det faktum att 256-bitars AES-nyckeln helt enkelt är den starkaste i gänget, ofta hänvisad till som ”militär-grad”, är den inte alltid utplacerad som standard, och anledningen till att detta händer är på grund av tillgänglig, eller bättre ännu, otillgängliga resurser.

AES-128 vs AES-256

Ju större en nyckel är i storlek, desto mer resurs kommer den att förbruka, så det är säkert att säga att ett mindre kapabelt system är mer sannolikt att använda 128-bitars AES-nycklar istället för sin 256-bitars motsvarighet. Till exempel, om du använder 256-bitars AES-kryptering på din telefon, det april tömma batteriet snabbare än 128-bitarsversionen av samma krypteringsstandard.

256-bitars AES-nycklar är mycket svårare att brute-force än 128-bitars. Men även med enorma mängder datorkraft är 128-bitars AES-nycklar fortfarande nästan omöjliga att knäcka, så använd den här versionen istället för 256-bitarsnycklarna april vara ett bättre val om du är orolig för ström eller latens, särskilt på bärbara enheter (smarttelefoner, till exempel).

På den ljusa sidan har tekniska framsteg gjort det så att skillnaderna i både datorkraft och batteritid mellan att använda AES-256 och AES-128 är försumbara, vilket gör 256-bitars AES till det mest populära valet, eftersom de flesta användare föredrar att ha lugn och ro sinne.

Fördelarna med att använda AES

Det faktum att krypteringsmetoderna som tillämpas av AES är snabba och lätta att förstå gör AES till ett populärt val inom en mängd olika områden. AES är inte bara snabbt och säkert utan också lätt att implementera, vilket ytterligare bidrar till dess medfödda popularitet.

Dessutom är den kapabel att dekryptera skyddad data så snabbt som den kan kryptera den, och använder mindre minne och datorkraft än andra populära krypteringsstandarder (som DES), vilket ger den en fördel.

Sist men inte minst, om situationen kräver det, är AES tillräckligt flexibel för att du ska kunna kombinera det med flera andra säkerhetsprotokoll som TKIP, WPA2, WEP men även andra krypteringstyper som SSL.

Här är några viktiga fördelar med att välja AES framför andra krypteringsstandarder:

Stöder att implementeras i både hårdvara och mjukvara
Det faktum att den stöder tre nyckellängder ger dig viss flexibilitet vad gäller säkerhet och hastighet (prestanda)
Alla tre nyckeltyperna är tillräckligt långa, vilket gör AES till ett omöjligt råtvingande mål
Hittills har ingen kryptografisk attack visat sig fungera mot AES
Du kan hitta det praktiskt taget överallt, med tanke på att den amerikanska regeringen definierade det som en standard
Lätt att implementera oavsett destination (hårdvaruimplementering är enligt uppgift enklare än mjukvara)
Tar inte lika mycket minne som andra krypteringstyper (till exempel DES)
Lätt att kombinera med andra säkerhetsprotokoll och krypteringstyper

Vanliga användningar av AES

Trots det faktum att vi redan nämnt att AES i allmänhet används överallt där det stöds, finns det några exempel där det finns högre odds för att stöta på det. Nämligen:

VPN
Sättet som VPN fungerar kretsar kring att omdirigera din trafik, men inte innan du krypterar den så att andra inte kan se den i händelse av att de övervakar din anslutning. Mer så måste trafiken dekrypteras vid dess utgångspunkt, vilket innebär behovet av en krypteringsstandard. AES-256 används som standard av flera VPN-leverantörer, inklusive NordVPN, Surfshark och ExpressVPN.

Lösenordshanterare
Lösenordshanterare fungerar genom att låta dig lägga in alla dina lösenord i dem och skydda dem med ett enda lösenord genom kryptering. Olika mjukvarulösningar för lösenordshantering på marknaden har valt AES som sin operativa krypteringsstandard, med tanke på att det är enkelt att implementera, snabbt och säkert.

Wi-Fi-nätverk
Utan trafikkryptering kan angripare bara sitta utanför ditt trådlösa nätverk, fånga okrypterade paket med en lämplig WiFi-adapter och övervaka hela din vistelse på nätet utan att behöva bry sig i världen. Tack och lov kan AES-kryptering, vanligtvis tillsammans med ytterligare säkerhetsstandarder (WPA2 är den mest populära just nu) förhindra att det händer.

webbläsare
Du vet förmodligen redan att webbläsare sedan ett tag tillbaka har krypterat sina användares anslutningar för att skydda dem mot olika cyberhot som MITM-attacker (Man-In-The-Middle), spoofing eller trafikövervakning.

Diskkryptering
Även om den här funktionen mestadels används på bärbara enheter som smartphones och surfplattor, är kryptering av din disk inte ovanligt om du vill öka din integritet och säkerhet. AES är för närvarande en av de mest populära metoderna som används för att kryptera och dekryptera diskinnehåll.

Programvara för filkomprimering
Oavsett om det är WinRar, WinZip eller 7z vi pratar om, använder alla dessa arkiverings- och filkomprimerings-/dekompressionsverktyg på marknaden AES som sin vanliga krypteringsstandard för att förhindra oavsiktliga dataläckor när du hanterar dina filer.

Kommunikationsappar
WhatsApp, Signal, Telegram, Snapchat, Messenger, men även andra som vi inte har nämnt, använder AES-kryptering för att se till att du kommer att dra nytta av fullständig integritet, oavsett om du skickar foton, videor, dokument eller vanliga textmeddelanden via dessa appar.

Programmeringsspråksbibliotek
Om du är en programmerare bör du förmodligen veta att bibliotek med vissa programmeringsspråk, inklusive men inte begränsat till C++, Java och Python, använder AES-kryptering för att hjälpa dig skydda dina data och projekt mot obehörig åtkomst.

OS-komponenter
För att lägga till ett extra säkerhetslager har vissa operativsystem lagt till AES-kryptering till några av sina komponenter.

Hur fungerar AES?

Generellt sett behöver du veta eller lära dig hur en specifik teknik fungerar för att kunna dra nytta av dess kapacitet till sin fulla potential. I det här fallet bör du veta en sak eller två om hur AES fungerar innan du på måfå implementerar eller använder det i dina projekt eller i din miljö.

1. Data delas upp i block

Som du säkert kommer ihåg från våra omnämnanden ovan, är AES ett blockchiffer, vilket betyder att det krypterar data den tar emot i block av bitar, i motsats till att kryptera den bit-för-bit.

Därför är det första steget av AES-kryptering att separera data i block. Vart och ett av dessa block innehåller en 4 gånger 4 kolumn på 128 bitar eller 16 byte. Med tanke på att en byte består av 8 bitar har vi 16 x 8 = 128 bitar, vilket är storleken på blocket.

Låt oss till exempel säga att du vill kryptera ’wdzwdz.com’ med AES, det första krypteringsprocessen gör är att separera data i block. Ett block kan dock bara innehålla 16 tecken, så det första blocket kommer inte att inkludera ”m” i slutet av texten. ”M” kommer att skickas till nästa block.

Därför, efter att ha tillämpat AES på ’wdzwdz.com’, kommer den första delen av denna text att se ut som blocket nedan:

a
c
e
s
d
t
t
.
d
i
i
c
i
v
sid
o

2. Nyckelexpansion

Nyckelexpansionsproceduren är lite mer komplicerad än steget vi har beskrivit ovan. Det innebär att ta en första nyckel och använda Rijndaels nyckelschema för att generera en serie ytterligare nycklar som kommer att användas för varje enskild omgång av krypteringsprocessen.

Så, till exempel, om du använder nyckeln ”AESencryption12” på vår vanliga text ovan (wdzwdz.com), får du en sträng med till synes slumpmässiga siffror.

A
e
y
o
E
n
sid
n
S
c
t
1

r
i
2

Rijndaels nyckelschema använder dock mycket specifika processer för att kryptera varje enskild symbol i den initiala frasen.

Resultatet kommer att se ut som blocket nedan:

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

Återigen, även om det ser ut som skratt och slumpmässiga siffror, är det den exakta poängen med hela den här krypteringsproceduren: att dölja data bakom ett chiffer, vilket gör det otillgängligt för användare som inte vet vad chiffret är och gör det omöjligt att knäcka det. .

Dessutom är detta långt ifrån över, eftersom krypteringsprocessen kommer att behöva använda de nycklar vi nyligen har genererat för varje omgång av kryptering. Men mer om det senare.

3. Lägga till en rund nyckel

Detta är faktiskt den första omgången av kryptering, eftersom vi lägger till den initiala nyckeln (’AES encryption12’) till vårt meddelandeblock (’wdzwdz.com’), som i exemplet nedan, vilket april inte vettigt i början.

a
c
e
s
d
t
t
.
d
i
i
c
i
v
sid
o

OCH

A
e
y
o
E
n
sid
n
S
c
t
1

r
i
2

Även om det kan kännas som om det är omöjligt att lägga till två textblock tillsammans, men kom ihåg att detta bara är en grafisk representation av krypteringsprocessen så att du april förstå det bättre. I verkligheten använder AES binär kod, vilket gör vårt försök att lägga till två textblock inte bara helt rimligt utan också fullt möjligt.

Denna operation (att lägga till de två textblocken tillsammans) görs med hjälp av ett XOR-chiffer, och resultatet kan ses nedan:

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

4. Bytebyte

För att ytterligare förbättra skyddet av dina data (i vårt fall den klartext vi försöker kryptera), kommer detta steg i processen att ersätta varje byte i blocket med ett förutbestämt värde enligt en tabell, kallad Rijndael S-box. Du kan se tabellen precis nedan:

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
annons
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
Ib
6e
5a
a0
52
3b
d6
b3
29
e3
2f
84
50
53
d1
00
ed
20
fc
b1
5b
6a
cb
vara
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öre Kristus
b6
da
21
10
ff
f3
d2
80
CD
0c
13
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

Även om den här tabellen också ser ut som en serie slumpmässiga tecken, kan du använda den för att kontrollera vilket värde de ersatta byten kommer att ha. Till exempel kommer c9 att bli dd, 26 blir f7, ff blir 16 och snart. Det är inte så svårt att använda när du väl fått kläm på det.

Nu när vi har sett tabellen, låt oss se hur det nya blocket vi har genererat ovan från den första omgången av kryptering kommer att förändras efter det Rijndael S-box-baserade bytebytet:

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

Observera att vi faktiskt har ersatt blocken genom att använda Rijndael S-box-tabellen manuellt, så att du kan dubbelkolla och försöka replikera resultaten om du är intresserad. På så sätt är det lättare för dig att följa, speciellt om du brinner för att lära dig mer om kryptografi.

5. Radförskjutning

I det här steget av AES-krypteringsprocessen flyttas raderna för att placera dina data bakom en extra skyddsvägg. Medan den första raden förblir orörd, skiftas de nästa tre på olika sätt, enligt följande:

Den andra raden flyttas åt vänster med en byte (cell)
Den tredje raden flyttas åt vänster med två byte (celler)
Den fjärde och sista raden flyttas åt vänster med tre byte (celler)
23
03
4a
35
36
c2
5a
0d
9a
0d
f3
9c
7b
13
58
75

6. Kolonnblandning

Även om vi skulle älska att vara så exakta som möjligt, innebär detta steg att tillämpa en serie komplexa matematiska formler på blocket, vilket ger oss ett helt annat block i slutet av proceduren.

För att vara lite mer specifik multipliceras varje kolumn med en fördefinierad matris under detta steg. Resultatet kommer att bli ett nytt kodblock, som kommer att användas ytterligare för att öka chifferns styrka och minska chanserna att det knäcks på vid gavel.

I slutet av kolumnblandningsprocessen får vi ett kodblock som ser ut ungefär så här:

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

7. Lägg till extra rund nyckel

Kommer du ihåg att vi för ett tag sedan sa till dig att vi definitivt kommer att behöva nyckeln som vi skapade under nyckelexpansionssteget? Tja, vi har använt det en gång för att förvränga allt en gång, nu måste vi göra ytterligare en förvrängning till data vi just fått.

Så vi tar datablocket vi fick efter att ha kört kolumnblandningssteget och vi lägger till ytterligare en rund nyckel till det, precis som vi gjorde i steg 3 i vår guide, så här:

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

OCH

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

Som du förväntar dig kommer det här steget att generera ytterligare ett datablock som vi kan bearbeta, men vi slutar här. Vi har en känsla av att du förstår poängen. Krypteringsprocessen är dock fortfarande långt ifrån över, eftersom datablocket vi just genererade kommer att genomgå flera modifieringar.

8. Fler steg

Dessa modifieringar som vi har nämnt ovan inkluderar allt vi har gjort hittills: flytta rader, bytebyte, lägga till runda nycklar och blanda kolumner, så det är lätt att förstå varför vi var tvungna att sluta här när det gäller exemplifiering.

Dessa omgångar är identiska och antalet gånger dessa omgångar upprepas beror på AES-nyckelns längd, enligt följande:

AES-128 använder 9 omgångar
AES-192 använder 11 omgångar
AES-256 använder 13 omgångar

Så om du planerar att använda AES-256, kommer stegen vi tidigare har nämnt och förklarat att upprepas 13 gånger i rad, vilket du kan hålla med om är oerhört mycket. Det är också lätt att förstå varför AES är så svårt att knäcka och är en standard för kryptering i många miljöer.

Vi är dock inte klara än. Efter de 9, 11 eller 13 omgångarna av kryptering som vi kort har pratat om ovan, finns det ytterligare en omgång, under vilken algoritmen bara ersätter bytes, skiftar rader och lägger till en rund nyckel (den hoppar över att blanda kolumner).

Det april låter löjligt att efter 9, 11 eller 13 omgångar av att köra alla steg ovanför mixningskolumnerna tas bort. Anledningen är att det vid det här laget är något överflödigt, och det här steget hoppas bara över för att bevara lite processorkraft.

Så faktiskt, efter att ha kört alla steg i krypteringsprocessen, kommer indata (vår klartext som vi använde i början i det här fallet) att ha gått igenom 10, 12 eller 14 omgångar, beroende på nyckellängden du valde och kommer att se ut som en uppsättning slumpmässiga tecken. Inte för att det inte såg ut så på länge nu, eftersom vi startade krypteringsprocessen och allt.

Så, för att sammanfatta, medan du genomgår kryptering, genomgår informationen du matar till AES-krypteringsverktygen följande processer, i denna ordning:

Blockindelning
Nyckelexpansion
Lägger till en rund nyckel
Bytebyte
Radförskjutning
Kolonnblandning
Lägger till en rund nyckel
Steg 4-7 upprepas 9, 11 eller 13 gånger beroende på nyckellängden
Bytebyte
Radförskjutning
Lägger till en rund nyckel

I slutet av denna komplexa och till synes oändliga process kommer wdzwdz.com, texten vi har försökt kryptera, se ut som koden nedan om den krypteras med en 128-bitars nyckel och ’AESencryption12’ som vår hemliga nyckel:

RcadDaLDuP5fHtor3/Rfnq5EijEfhP02pvrlGkGr1Gc=

Även om det april ser ut som fullständigt skratt, återigen, det är poängen med att använda kryptering: att få data så enkel som vanlig text att se ut som att något gick fruktansvärt fel under överföringen och nu ser det ut som trams.

Hur man dekrypterar AES

Vi förstår att AES och hela krypteringsprocessen kan vara lite av en handfull, eftersom de många stegen, såväl som det faktum att de upprepas under en ogudaktig lång tid, kan vara lite skrämmande.

Men om du tar ett steg tillbaka och tittar på helheten börjar det hela faktiskt bli vettigt, även för någon som inte ägnat hela sitt liv åt att studera kryptografi och designa det perfekta sättet att kryptera eller dekryptera information.

Det är just därför vi är ganska övertygade om att du inte kommer att ha några problem med att förstå AES-dekryptering om krypteringsprocessen tillsammans med alla dess steg var meningsfulla för dig. För att uttrycka det kort, AES-dekryptering följer exakt samma steg som krypteringsprocessen, bara de är omvända.

Så, i vårt fall, om vi vill gå tillbaka till ’wdzwdz.com’ från RcadDaLDuP5fHtor3/Rfnq5EijEfhP02pvrlGkGr1Gc=, allt vi behöver göra är att spåra våra steg tillbaka upp tills vi når det första, så här:

Omvänt lägga till rund nyckel
Omvänd radförskjutning
Omvänd bytesubstitution
Omvänt lägga till rund nyckel
Omvänd kolonnblandning
Omvänd radförskjutning
Omvänd bytesubstitution
Upprepa steg 4-7 i 9, 11 eller 13 gånger beroende på nyckellängd
Omvänd lägg till rund nyckel

Efter att ha utfört alla steg ovan bör vi sluta med vårt ursprungliga textfragment, ’wdzwdz.com’.

Är AES-kryptering säker?

En av de mest angelägna frågorna när det kommer till alla krypteringsstandarder (inte bara AES) är om det kan ge dig en optimal säkerhetsnivå. I det här fallet skulle frågan vara: är AES-kryptering säker?

Även om du själv kunde se att den här krypteringsstandarden använder ett stort antal steg, som var och en förvränger den ursprungliga texten och vrider den till oigenkännlighet, verkade det inte hindra angripare från att utforma potentiella sätt att kringgå dessa skyddsmedel.

Observera att i en verklig situation kommer en angripare (allmänt känd som en hacker eller cracker) inte att gå efter den högsta, tjockaste muren i sitt försök att invadera den virtuella fästningen som är din dator, databas, arkiv eller vad du nu försöker skydda.

Istället kommer de att cirkla runt de ökända väggarna flera gånger och försöka hitta sprickor som är värda att utnyttja och sedan börja borra där. I vår situation, angripare april vill upptäcka eventuella sårbarheter i AES-krypteringsprocessen och börja arbeta sig upp därifrån.

Tack och lov försöker kryptografiforskare ständigt hitta sårbarheter med AES-krypteringsprocessen, för att kunna förhindra en potentiell attack från någon som upptäcker bristerna först och (uppenbarligen) inte delar dem med hela världen.

Hittills har forskarna kunnat identifiera en serie attacker som kan äventyra AES, men dessa är antingen rent teoretiska, sidokanalsattacker eller sprickförsök med en känd säkerhetsnyckel, vilket du snart kommer att lära dig av följande sektioner.

1. Känd-nyckel särskiljande attack

En attack som använde en känd nyckel designades av kryptografiforskare och observerades i aktion, och den visade några lovande resultat. Attacken introducerades 2007 av Vincent Rijmen och Lars Knudsen.

Även om det inte är direkt bra för AES-krypteringsmetoden, hade den här attacken två brister som gör det osannolikt att det kommer att användas i ett verkligt scenario: det faktum att den använde en känd nyckel och att den testades mot en version med sju omgångar. av AES-128.

Med tanke på att nyckeln för det mesta inte är känd för angriparen (såvida de inte råkar snubbla på den med exakta instruktioner om dess syfte) och att AES-128 har 10 omgångar med kryptering, kan AES-128 vara säker på att angrepp kommer sannolikt inte att inträffa.

Det faktum att de flesta tjänster som erbjuder AES-128 också har inbyggt stöd för AES-256 betyder att det inte kan vara enklare att förstärka din kryptering om du är orolig för att bli föremål för en attack med känd nyckel.

2. Relaterad nyckelattack

Relaterade nyckelattacker är mer av en kategori, eftersom de representerar alla former av kryptoanalys där angripare kan analysera hur ett chiffer fungerar under flera nycklar. I den här typen av attack känner angriparen inte till värdena på nycklarna som används i chifferet.

Men även om de är okända, har nycklarna också någon form av matematisk relation till varandra, vilket angriparen vet. Ett av de enklaste exemplen skulle vara att angriparen vet att de första 16 bitarna av nycklarna alltid är desamma, men har ingen aning om vad bitarna faktiskt är.

Även om relaterade nyckelattacker kan vara framgångsrika om de tillämpas korrekt, är de inte av någon egentlig oro i den verkliga världen. För att en sådan attack ska fungera måste en angripare framgångsrikt övertala en kryptograf att kryptera data med hjälp av olika hemliga nycklar som är anslutna till varandra matematiskt, och sedan dela hemligheten med angriparen.

Således är den här typen av attackservrar bara som en påminnelse om att mänskliga fel kan bidra till att sätta några kinks i AES-rustningen genom att vara föremål för dålig implementering av denna krypteringsstandard.

3. Sidokanalattack

Även om AES för närvarande är praktiskt taget okrickbart, har det gjorts många försök att designa teoretiska attacker som skulle kunna visa några av denna krypteringsstandards sårbarheter.

Även om det har gått 20 år sedan AES introducerades, och tekniken har gjort några enorma framsteg under de senaste 20 åren, är mängden datorkraft som behövs för att bruteforce AES fortfarande inte tillräcklig, och vi skulle fortfarande behöva miljarder år att kunna knäcka den.

En annan sorts försök att bryta säkerheten för AES-kryptering är dock sidokanalsattacken. Denna typ av attack kombinerar flera typer av dataläckor för att extrahera tillräckligt med data från en algoritm för att den kan knäckas.

Angripare kan till exempel fokusera på strömförbrukning, elektromagnetisk strålning, den tid det tar att utföra olika beräkningar och till och med de ljud som produceras under beräkningen för att extrahera mer information om algoritmen.

Det finns flera klasser av sidokanaler, inklusive:

Tajming av attacker
Tajmingsattacker kretsar kring att mäta tiden det tar för vissa beräkningar att utföras (till exempel att jämföra ett känt lösenord med ett okänt).

Cache-attacker
Dessa attacker är bara genomförbara om angriparen kan komma åt några av offrets cachar i olika miljöer, oavsett om det är virtualiseringsmiljöer (virtuella maskiner), delade fysiska system eller molntjänster vi pratar om.

Elektromagnetiska attacker
Elektromagnetiska attacker är baserade på elektromagnetiska strålningsläckor, som kan användas för att extrahera olika bitar av information. Att mäta elektromagnetisk strålningsläckor kan ibland leda till att kryptonycklar upptäcks.

Power-monitoring attacker
Angripare övervakar strömförbrukningen för hårdvaran under vissa beräkningssteg för att extrahera information om algoritmen.

Akustisk kryptonalis
Liknar kraftövervakningsattackerna, men angripare lyssnar på och analyserar ljuden som hårdvaran gör när de utför vissa beräkningssteg och extraherar information från dessa fynd.

Dataremanens
Denna typ av attack kretsar kring känslig data som fortfarande kan nås och läsas även efter att ha raderats.

Optisk analys
I denna komplexa typ av attack används högupplösta kameror för att fånga hemligheter eller känsliga data (som att analysera aktivitetsindikatorer på hårddisken eller växlande tillstånd för transistorer).

Differentiell felanalys
Denna typ av attack bygger på att upptäcka hemligheter genom att mata in fel i beräkningen för att utlösa ett fel.

Även om du kan hålla med om att dessa sidokanaler är inget annat än kreativa och deras författare kan använda dem för att förvandla även den mest till synes obetydliga detalj till en veritabel information, fungerar de bara om systemet som granskas läcker information.

Av den anledningen kan man enkelt undvika sidokanalsattacker antingen genom att se till att de system som kan attackeras inte läcker någon data eller genom att se till att det inte finns någon koppling mellan de algoritmiska processerna och läckt data, oavsett dess natur.

4. Nyckelåterställningsattacker

Sist, men inte minst, är nyckelåterställningsattackerna en tuff tävlande när det kommer till effektiva sätt att knäcka AES-kryptering. 2011 försökte en sådan attack bevisa sin effektivitet mot AES-krypteringsmekanismen.

Den här typen av attack är inte exakt sannolikt att inträffa, eftersom det innebär att angriparen får tag i åtminstone ett par krypterade och dekrypterade meddelanden från det system som snart kommer att komprometteras.

Attacken visade lovande resultat, eftersom den var ungefär fyra gånger så snabb som brute-forcing. Men med tanke på att en brute-force attack skulle ta bokstavligen miljarder år att slutföra, är nyckelåterställningsattacker fortfarande långt ifrån idealiska, vilket gör det osannolikt att de kommer att användas i en attack.

Dessutom, även om det tog en kortare tid att slutföra, kan byte av säkerhetsnyckel ofta göra paret krypterade och dekrypterade meddelanden värdelösa.

Är AES säkert?

Med tanke på allt du har lärt dig genom att gå igenom den här guiden tror vi att du kan bedöma om AES är en säker krypteringsstandard eller inte.

AES har funnits sedan 2001, och sedan introduktionen har det gjorts många försök att bryta det, vilket gör det säkert att säga att det stod sig genom tiderna, och det är fortfarande ett solidt val när det kommer till krypteringsalgoritmer.

Den stora mängden steg som den algoritmiska processen går igenom för att göra data oläsbar är enorm, och det skulle ta bokstavligen miljarder år att knäcka AES, även med dagens beräkningskraft och tekniska framsteg.

Så för att svara på din fråga med tanke på allt ovan: ja, AES är säkert. Till och med AES-128 visade sig vara helt omöjlig att knäcka, för att inte tala om dess mer kraftfulla motsvarigheter, AES-192 och AES-256.

AES-kryptering – SLUTSATS

Efter att ha läst vår omfattande guide hoppas vi att du har lärt dig mer om AES, inklusive hur det fungerar, vilka processer det går igenom under krypteringsprocessen, var det kan användas och hur det (på en teoretisk nivå) kan äventyras .

Det faktum att den 20 år efter introduktionen fortfarande är snabb, säker och kan implementeras på en mängd olika hårdvaru- och mjukvarumiljöer gör att den verkligen förtjänar titeln som ”guldstandarden” för krypteringstekniker.