Introductie
De Advanced Encryption Standard (AES), geïntroduceerd door het National Institute of Standards and Technology (NIST) in 2001, is een krachtig encryptiealgoritme afgeleid van de Rijndael-codering. AES gebruikt de Rijndael-blokcodering om de beveiliging te verbeteren met drie verschillende sleutelgroottes: 128, 192 en 256 bits. Het werkt als een symmetrische blokcodering die één sleutel gebruikt voor encryptie- en decryptieprocessen. In tegenstelling tot asymmetrische encryptie, die twee sleutels gebruikt, vereenvoudigt AES het proces door te vertrouwen op één geheime sleutel. Aanvankelijk exclusief beschikbaar in de Verenigde Staten, heeft AES wereldwijde erkenning gekregen en is het uitgegroeid tot een van de meest gebruikte en veilige encryptiealgoritmen, wat de effectiviteit en aanpasbaarheid ervan symboliseert bij het beschermen van gevoelige informatie wereldwijd.
Waarom is AES ontwikkeld?
DES werd begin jaren 1970 door NIST vastgesteld als encryptiestandaard en werd breed omarmd door de Amerikaanse overheid en andere organisaties. Na verloop van tijd en de vooruitgang in computerkracht werd de sleutelgrootte van 64 bits (56 bruikbare bits) van DES echter een beveiligingsprobleem. De relatief kleine sleutelgrootte maakte DES kwetsbaar voor bruteforce-aanvallen, waarbij een aanvaller de sleutel kon raden door herhaaldelijk te proberen.
Als reactie op de beperkingen van DES startte NIST een proces om een nieuwe encryptiestandaard te selecteren die een hoger beveiligingsniveau zou bieden en tegelijkertijd efficiënt en praktisch zou zijn voor brede acceptatie. In 1997 publiceerde NIST een openbare oproep voor cryptografische algoritmen, waarbij de wereldwijde cryptografische gemeenschap werd uitgenodigd om inzendingen te doen.
Het Bureau of Industry and Security (BIS) hanteert diverse controles en voorschriften die het exporteren van versleutelde producten met AES bemoeilijken. Het Rijndael-algoritme, gekozen als basis voor AES, bood een solide basis voor encryptie. Het werkte met 128-bits datablokken, wat een hoge beveiliging garandeerde. AES is uitgegroeid tot een breed geaccepteerde encryptiestandaard die door NIST is gepubliceerd voor diverse frameworks en voorschriften.
Inzicht in de verschillen in sleutelgrootte
De blokcodering van AES versleutelt gegevens door de platte tekst op te splitsen in blokken van 128 bits. Versleuteling bestaat uit bitsgewijze bewerkingen met sleutels van verschillende lengtes: 128, 192 of 256 bits. De sleutelgrootte heeft een directe invloed op de beveiliging, waarbij grotere sleutels een betere bescherming bieden. Voor een 128-bits sleutel vindt de versleuteling tien keer plaats, voor 192 bits twaalf keer en voor 256 bits veertien keer. Hoewel sleutels van 256 bits de hoogste beveiliging bieden, zijn 128-bits sleutels over het algemeen voldoende voor de meeste gevallen. De keuze voor de sleutelgrootte hangt af van de beveiligingsvereisten van de gegevens; hogere beveiligingsniveaus rechtvaardigen grotere sleutelgroottes. AES biedt flexibiliteit in de sleutelselectie om te voldoen aan diverse versleutelingsbehoeften.
| Specificaties | AES-128 | AES-192 | AES-256 |
|---|---|---|---|
| Sleutellengte (bits) | 128 beetjes | 192 beetjes | 256 beetjes |
| Aantal ronden | 10 rondes | 12 rondes | 14 rondes |
| Belangrijkste schemagrootte | 176 bytes | 208 bytes | 240 bytes |
| Encryptiesterkte | Gemiddeld | Hoger | Sterkste |
Hoe werkt het?
AES (Advanced Encryption Standard) is een symmetrisch encryptie-algoritme dat transformaties toepast op platte tekst om gecodeerde tekst te produceren. Hier is een beknopt overzicht van hoe AES werkt:
-
Sleuteluitbreiding
AES werkt met datablokken van vaste grootte (128 bits in het geval van AES-128). De geheime sleutel, 128, 192 of 256 bits lang, ondergaat een sleuteluitbreidingsproces om een set ronde sleutels te genereren. Elke ronde sleutel is afgeleid van de oorspronkelijke sleutel en wordt gebruikt in de opeenvolgende encryptierondes.
-
Eerste ronde
-
Voeg RoundKey toe
Elke blokbyte wordt gecombineerd met de overeenkomstige byte van de ronde sleutel met behulp van bitgewijze XOR.
-
-
Rondes (respectievelijk 9 of 11 rondes voor AES-128 of AES-256)
-
subbytes
Niet-lineaire substitutiestap waarbij elke byte in het blok wordt vervangen door een overeenkomstige byte uit de S-box.
-
ShiftRijen
Een transpositiestap waarbij verschillende offsets de rijen van het blok verschuiven.
-
Mixkolommen
Een mengbewerking die op de kolommen van het blok plaatsvindt en voor diffusie zorgt.
-
Voeg RoundKey toe
Net als bij de eerste ronde wordt elke byte van het blok geXORd met de overeenkomstige byte van de rondesleutel.
-
-
Finale ronde (verschilt voor AES-128, AES-192 en AES-256)
MixColumns worden niet uitgevoerd voor AES-128 in de laatste ronde. Het aantal ronden en de sleutelgrootte bepalen het aantal transformatieronden.
-
decryptie
Het decryptieproces is in wezen het omgekeerde van encryptie. Het omvat een omgekeerde reeks transformaties met behulp van een set ronde sleutels, afgeleid van de oorspronkelijke sleutel.
Voorbeeld
Laten we een kort voorbeeld bekijken van het versleutelen van een bericht 'VERTROUWELIJK' met behulp van AES-256:
Sleutelgeneratie
Genereer een sterke 256-bits sleutel voor AES-256-encryptie.
Encryptie
Pas het AES-encryptieproces toe met 14 ronden (AES-256). Elke ronde omvat substitutie, verschuiving, mixen en verdere encryptiestappen. Voor de eenvoud geven we het encryptieresultaat weer als "X1Y2Z3...".
Cijfertekst
Het gecodeerde bericht, of de cijfertekst, is nu “X1Y2Z3…” en verschijnt als willekeurige data.
Stel je nu voor dat je deze versleutelde tekst via internet verstuurt. De ontvanger, die dezelfde 256-bits sleutel bezit, kan het omgekeerde proces gebruiken om het bericht te ontcijferen en de oorspronkelijke inhoud te onthullen: "VERTROUWELIJK". De beveiliging van AES-256 zorgt ervoor dat zelfs met aanzienlijke rekenkracht, een poging om dit bericht te ontcijferen zonder de juiste sleutel binnen een redelijk tijdsbestek praktisch onmogelijk zou zijn.

Waar kan het worden geïmplementeerd?
AES (Advanced Encryption Standard), oorspronkelijk ontwikkeld door NIST voor gebruik door de overheid, is een hoeksteen geworden in publieke en private toepassingen. Het vindt toepassingen in diverse sectoren, zoals VPN's, wachtwoordmanagers, mobiele applicaties, draadloze netwerken, bestandsversleuteling en videogames.
In VPN's zoals PureVPN beveiligt AES bijvoorbeeld internetverkeer, terwijl wachtwoordmanagers zoals Keeper AES gebruiken om opgeslagen wachtwoorden te beschermen. Videogameontwikkelaars gebruiken AES om piraterij te bestrijden door gamegegevens te versleutelen.
AES wordt ook gebruikt op cruciale gebieden, waaronder het versleutelen van gegevens op harde schijven, het beveiligen van elektronische communicatie in berichten-apps en het vormen van een integraal onderdeel van programmeerbibliotheken zoals Java, Python en C++. De rol ervan strekt zich uit tot programma's voor bestandscompressie en internetbrowsers.
Voor-en nadelen
| Voordeel | Nadeel |
|---|---|
| AES is een wereldwijd erkende en veelgebruikte encryptiestandaard. | Vooral AES-256 kan veel rekenkracht vergen en vereist daardoor meer verwerkingskracht. |
| AES biedt geavanceerde beveiliging tegen verschillende cryptografische aanvallen en garandeert de vertrouwelijkheid van gegevens. | Goed sleutelbeheer is cruciaal voor AES. De beveiliging is slechts zo sterk als de bescherming van de encryptiesleutels. |
| ES kan voor verschillende toepassingen worden gebruikt, van het beveiligen van gegevens op harde schijven tot internetcommunicatie. | Naarmate quantum computing zich verder ontwikkelt, kan het een bedreiging vormen voor AES. Dit is echter een zorg voor de verre toekomst. |
| Biedt flexibiliteit met sleutelgroottes (128-bits, 192-bits en 256-bits) om te voldoen aan verschillende beveiligingsbehoeften. | Side-channel-aanvallen, waarbij aanvallers misbruik maken van informatie die tijdens de encryptie is gelekt, kunnen een bedreiging vormen. |
| Omdat AES een door het NIST goedgekeurde standaard is, wordt het aanbevolen voor gebruik door de overheid en de particuliere sector. | De initiële installatie en distributie van de sleutel kan een logistieke uitdaging zijn, vooral bij grote systemen. |
Vergelijking tussen AES, Triple-DES, DES
| Kenmerk | DES | Triple-DES | AES |
|---|---|---|---|
| Voor-en achternaam | Gegevensversleutelingsstandaard | Drievoudig gegevensversleutelingsalgoritme | Advanced Encryption Standard |
| Jaar geïntroduceerd | 1976 | 1998 (als reactie op DES-beperkingen) | 1999 |
| Sleutellengte | 56 bits (zwak) | 112 of 168 bits (alleen 112 bits veilig) | 128, 192 of 256 bits |
| Blokgrootte | 64 beetjes | 64 beetjes | 128 beetjes |
| Security | Zwak, kwetsbaar voor brute-force-aanvallen | Het is veiliger dan DES, maar wordt nog steeds als minder veilig beschouwd dan AES. | Sterke, geen bekende succesvolle aanvallen |
