Wat is AES-encryptie en hoe werkt het?

In een wereld waar kwaadwillende hackers op zoek zijn naar mogelijkheden om gegevens te stelen of te vernietigen, is encryptie een essentieel onderdeel van de digitale wereld geworden. Encryptie is een manier om gegevens te beschermen door ze te versleutelen, zodat alleen geautoriseerde personen met de geheime sleutel ze kunnen ontcijferen en lezen. AES is een encryptiealgoritme dat veel wordt gebruikt door VPN-serviceproviders en overheidsinstanties om gegevens te beschermen. Dit artikel gaat in op AES-encryptie en hoe het werkt.

Wat Is AES-Encryptie?

Er zijn twee hoofdtypen van encryptie: Symmetrisch en Asymmetrisch. Asymmetrische encryptie houdt in dat er twee verschillende sleutels (privé en publiek) worden gebruikt om gegevens te versleutelen en te ontsleutelen, terwijl symmetrische encryptie het gebruik van een enkele sleutel voor zowel versleuteling als ontsleuteling inhoudt. Advanced Encryption Standard (AES) behoort tot de symmetrische categorie van encryptie. Het is een subset van de Rijndael-familie van symmetrische blokcijfers, ontwikkeld door Vincent Rijmen en Joan Dae in 1998, vandaar de naam “Rijndael.”

AES is een iteratieve cipher gebaseerd op het substitutie-permutatienetwerk (SPN) algoritme. Het SPN-algoritme is een klasse van blokcijfers die rondes van een herhaalde reeks wiskundige operaties omvat. Het is vanwege deze encryptierondes dat AES een formidabele encryptiecipher is. AES heeft drie verschillende typen gebaseerd op de lengte van de encryptiesleutels. Deze omvatten AES-128, AES-192 en AES-256. 

De sleutellengte van elk van deze typen AES bepaalt hun sterkte; hoe langer de lengte, hoe sterker de versleuteling. De 128-bit en 192-bit AES-versleutelingscijfers hebben respectievelijk 3,4 x 10^38 en 6,2 x 10^57 mogelijke sleutelcombinaties. AES-256 is het meest robuuste versleutelingscijfer en heeft 1,1 x 10^77 mogelijke sleutelcombinaties. Ondanks de variatie in sleutellengte, blijft de blokgrootte van AES altijd hetzelfde–128 bits. 

Waarom is AES Ontwikkeld?

Eerdere encryptiecodes waren eenvoudiger, en met de juiste hoeveelheid tijd en gereedschappen kon iedereen ze kraken. Naarmate de technologie vorderde, hadden hackers betere hulpmiddelen tot hun beschikking om encryptiecodes te bestrijden. Het was duidelijk dat encryptiecodes geavanceerder moesten zijn dan wat op dat moment bestond, namelijk de Data Encryption Standard (DES).

Net als AES is DES ook een symmetrisch sleutelalgoritme. IBM ontwikkelde DES in de jaren 70, en het Amerikaanse National Bureau of Standards (NBS) nam het aan als de standaard encryptiecipher voor het versleutelen van gevoelige overheidsinformatie. Door de adoptie door het NBS en de Amerikaanse overheid, werd DES geaccepteerd in verschillende sectoren. Het wekte ook de interesse van de academische gemeenschap, wat een interesse in de studie van cryptografie aanwakkerde. Voor decennia bleek DES formidabel te zijn tot juni 1997 waar de DESCHALL-groep het publiekelijk kraakte.

De DES-cracker van de Electronic Frontier Foundation (EFF) volbracht dezelfde prestatie in 56 uur in het daaropvolgende jaar. In 1999 duurde het minder dan 24 uur om een DES-sleutel te kraken. Deze belangrijke gebeurtenissen toonden aan dat met toenemende rekenkracht en technologische vooruitgang, het slechts een kwestie van tijd zou zijn voordat het kraken van de DES gemakkelijk te doen was. Bovendien overschreed de lengte van de DES-sleutel niet de 56-bits in vergelijking met de almachtige 256-bit AES.

In 2001 onthulde het National Institute of Standards and Technology (NIST) zijn adoptie van de AES-encryptiecipher vanwege de allround capaciteiten. Het is beter dan DES qua prestaties, eenvoudig te implementeren en uiterst moeilijk te kraken. 

Hoe Werkt AES-Encryptie Om Uw Gegevens Te Beschermen

Het begrijpen van het AES-encryptiealgoritme kan lastig zijn als je geen degelijke wiskundige achtergrond hebt. We zullen echter proberen het proces voor je te vereenvoudigen, zodat je een basiskennis krijgt van hoe het werkt. Het AES-encryptiealgoritme versleutelt en ontsleutelt gegevens in blokken van 128 bits. Ondanks de variatie in sleutellengte, verandert de blokgrootte niet. 

Het AES-encryptiealgoritme combineert een geheime sleutel (128, 192 of 256-bit sleutel) met platte tekst (gevoelige gegevens die je wilt versleutelen) om een versleutelde tekst te creëren. De AES-versleutelde tekst gebruikt een reeks wiskundige transformaties (substitutie-permutatie) met de geheime sleutel en platte tekst. Voordat enige bewerking plaatsvindt, wordt de platte tekst data gescheiden in een 4 x 4 matrix van zestien bytes of 128 bits (één byte is gelijk aan 8 bits) aangezien AES gegevens versleutelt in blokken van bits. 

Het AES-algoritme gebruikt substitutie-permutatie met meerdere rondes om platte tekstgegevens om te zetten in een uiteindelijke ciphertext. De sleutelgrootte bepaalt het aantal rondes. Een sleutelgrootte van 128 bits heeft tien rondes, een sleutelgrootte van 192 bits heeft twaalf rondes en een sleutelgrootte van 256 bits heeft veertien rondes. Laten we nu eens kijken naar de bewerkingen die betrokken zijn bij het proces van het omzetten van platte tekstgegevens naar ciphertext. 

1. Sleuteluitbreiding en AddRoundKey

In deze operatie gebruikt AES het Rijndael Key Schedule om nieuwe 128-bit ronde sleutels (subkey) te produceren vanuit de primaire geheime sleutel. Dat wil zeggen, het omvat het gebruik van de initiële geheime sleutel om een reeks sleutels te creëren voor elke ronde van de encryptie-operatie. In de AddRoundKey operatie wordt elk byte van de huidige datastaat gemengd met een byte van de huidige ronde sleutel door gebruik te maken van een bitwise XOR operatie. 

2. SubBytes (bytes vervangen)

In deze operatie wordt het 16-byte blok door een Rijndael substitutiekist (S-Box) geleid om een alternatieve waarde voor elke byte te geven. Elke byte wordt vervangen volgens regels voorgeschreven door de vooraf gedefinieerde Rijndael S-Boxen. De S-box neemt een waarde en vervangt deze door een andere waarde. Het proces is veel gecompliceerder, maar het maakt het breken van de AES-cijfer bijna onmogelijk met de computerbronnen in de wereld.  

3. ShiftRows

De ShiftRows-operatie verschuift alle rijen in een 16-byte blok behalve de eerste. Het is makkelijker te begrijpen vergeleken met de SubBytes-operatie. De eerste rij verandert niet en blijft hetzelfde. De tweede rij beweegt één byte naar links, de derde rij beweegt twee bytes naar links, en de vierde rij beweegt drie bytes naar links. 

4. MixColumns

Deze bewerking transformeert elke kolom in het 16-byte blok lineair. Vanwege de complexiteit van deze bewerking zullen we hier niet te diep op ingaan. Met behulp van matrixvermenigvuldiging en bitgewijze XOR-optelling vermenigvuldigt deze bewerking elke kolom met een vooraf gedefinieerde 4 x 4 matrix, resulterend in een nieuwe kolom en blok. 

Volgorde van Bewerkingen

Elke data die AES versleutelt, moet door elk van de bovenstaande bewerkingen gaan. Deze bewerkingen worden meerdere keren herhaald, afhankelijk van het aantal benodigde rondes. Een 128-bit sleutel vereist tien rondes, een 192-bit sleutel vereist twaalf rondes en een 256-bit sleutel vereist veertien rondes. Hieronder zullen we kijken naar de volgorde waarin deze bewerkingen worden uitgevoerd om data te versleutelen. 

1. Sleuteluitbreiding

2. VoegRondeToe

3. De volgende handelingen zullen gedurende 9, 11 of 13 rondes in de onderstaande volgorde plaatsvinden:

SubBytes

ShiftRows

MixColumns

AddRound

4. De volgende handelingen vinden plaats in de laatste ronde (10e, 12e, of 14e afhankelijk van de lengte van de geheime sleutel): 

SubBytes

ShiftRows

AddRound

AES-encryptie ontcijferen

We hebben gezien hoe AES gegevens versleutelt, maar hoe ontsleutelt het gegevens? Het ontsleutelingsproces is eenvoudig. Door alle stappen van het versleutelingsproces om te keren, worden gegevens ontsleuteld. Laten we eens kijken hoe het proces zou zijn als we gegevens aan het ontsleutelen waren. 

1. De volgende bewerkingen vinden plaats in de laatste ronde (10e, 12e, of 14e, afhankelijk van de lengte van de geheime sleutel):

Inverse AddRound

Inverse ShiftRows

Inverse SubBytes

2. De volgende handelingen zullen gedurende 9, 11, of 13 rondes in de onderstaande volgorde plaatsvinden:

Inverse AddRound

Inverse MixColumns

Inverse ShiftRows

Inverse SubBytes

Inverse AddRound

Heeft AES-encryptie beveiligingsproblemen?

Hoewel er geen geregistreerde succesvolle aanvallen op AES-encryptie zijn geweest, kan een verkeerde implementatie ervan leiden tot hackers die een kwetsbaarheid ontdekken en deze uitbuiten. Aangezien cryptografen altijd op zoek zijn naar kwetsbaarheden in AES, zijn er een paar succesvolle theoretische en side-channel aanvallen geweest. Laten we naar een paar van hen kijken.

1. Bekende-Sleutel Onderscheidende Aanval

In 2009 was een poging om de 8-ronde versie van AES-128 te kraken met een bekende-sleutel onderscheidende aanval succesvol. Aangezien AES-128 tien rondes van encryptie heeft, is het nog steeds ondoordringbaar. Bovendien moet een aanvaller de encryptiesleutel kennen voordat het kan werken, wat zeer onwaarschijnlijk is. 

2. Side-Channel Aanvallen

Zijkanaalaanvallen werken alleen als iemand AES-encryptie niet correct implementeert, omdat het afhankelijk is van een systeem dat informatie lekt. De aanvaller let op datalekken zoals elektromagnetische informatie, stroomverbruik, timinginformatie, enz., om informatie uit het algoritme te verzamelen. AES is niet volledig immuun voor dit type aanval.

3. Andere Aanvallen

Andere aanvallen die cryptografen hebben geprobeerd te gebruiken om AES-encryptie te breken, zijn sleutelherstelaanvallen en aanvallen met gerelateerde sleutels. In beide gevallen richt de aanvaller zich op de encryptiesleutel. Bij een sleutelherstelaanval moet de aanvaller ten minste een paar van versleutelde en ontsleutelde berichten hebben. Bij een aanval met een gerelateerde sleutel moet de aanvaller de relatie tussen twee verschillende sleutels kennen. Deze aanvallen werken alleen op systemen die AES onjuist implementeren en vormen geen significante bedreigingen. 

Conclusie

De voornaamste reden waarom veiligheidsdiensten en top VPN-diensten zoals Surfshark, NordVPN en ExpressVPN AES-encryptie gebruiken, is vanwege de immuniteit voor aanvallen. Afgezien van het feit dat het praktisch onmogelijk is om te kraken, is de Advanced Encryption Standard snel, veelzijdig en eenvoudig te implementeren. In vergelijking met andere encryptietypes zoals DES, gebruikt het ook minder geheugen. Je kunt het ook combineren met andere beveiligingsprotocollen om een hoog niveau van beveiliging te garanderen.