Wat is AES-versleuteling?
AES verwijst in de cryptografie naar Advanced Encryption Standard, een snel, efficiënt en veilig versleutelingsalgoritme dat is gecertificeerd door het Amerikaanse National Institute of Standards and Technology (NIST). Het is een symmetrische sleutelcipher die dezelfde sleutel gebruikt om gegevens te versleutelen en te ontsleutelen. Dit gaat relatief snel, waardoor het ideaal is om grote hoeveelheden gegevens in rust te versleutelen.
Vanwege de kracht en betrouwbaarheid is AES een van de populairste en meest voorkomende soorten versleuteling die worden gebruikt in draadloze netwerkbeveiliging, gegevens- en schijfversleuteling, online betalingssystemen, cloudopslag, wachtwoordbeheer en zelfs overheids- en militaire toepassingen. De Amerikaanse overheid gebruikt AES-versleuteling om haar geclassificeerde informatie te beveiligen, wat heeft bijgedragen aan de populariteit ervan.

Is het AES-algoritme veilig?
Ja. In 2000 kondigde NIST, na een zeer grondig(nieuw venster) en open selectieproces, aan dat AES (tot dan bekend als het Rijndael-algoritme, gemaakt door Vincent Rijmen en Joan Daemen) DES zou vervangen als het aanbevolen(nieuw venster) "ongeclassificeerde, publiek bekendgemaakte versleutelingsalgoritme dat gevoelige overheidsinformatie tot ver in de volgende eeuw kan beschermen".
Volgens NIST worden alle sleutellengtes van het AES-algoritme als "voldoende" beschouwd om geclassificeerde informatie tot het niveau "Secret" te beschermen. Voor "Top Secret" (streng geheim)-informatie is AES-192 of AES-256 vereist.

Brute force-aanvallen
De meest basale vorm van aanval op elke versleutelingscipher is een brute force-aanval, waarbij elke mogelijke sleutelcombinatie wordt geprobeerd totdat de juiste is gevonden.
Frontier(nieuw venster) is de krachtigste publiek bekende supercomputer ter wereld. Als die zijn volledige rekenkracht zou inzetten voor een brute force-aanval op AES-128, zou het nog steeds ongeveer 10–12 biljoen jaar duren om alle mogelijke combinaties voor AES-128 uit te putten. Dat is veel langer dan de leeftijd van het heelal. Dus zelfs bij kleinere bitgroottes is AES zeer bestand tegen brute force-aanvallen van conventionele computers.
AES-256 is 340 miljard-miljard-miljard-miljard (2¹²⁸) keer moeilijker met brute force te kraken dan AES-128.
Hoewel het algoritme van Grover(nieuw venster) theoretisch de beveiliging van symmetrische sleutels halveert tegen quantumdreigingen(nieuw venster), zijn ze nog steeds relatief goed bestand tegen quantumcomputers, vooral bij gebruik van een 256-bitsleutel.
Sleutelaanvallen
In de loop der jaren hebben cryptografen een aantal theoretische aanvallen op AES-sleutels gepubliceerd, maar geen daarvan is in de praktijk werkbaar of ze zijn alleen effectief op AES-implementaties die een verminderd aantal rondes gebruiken (zie hieronder).
De succesvolste poging was de theoretische biclique-aanval(nieuw venster) die in 2011 werd gepubliceerd en de tijd die nodig is voor een brute force-aanval op AES met een factor vier kan verkorten. Het zou echter nog steeds miljarden jaren duren om AES met brute force te kraken op huidige of voorzienbare computerhardware.
Geen enkele bekende sleutelaanval is praktisch tegen correct geïmplementeerde AES-128 of hoger.
Side-channel-aanvallen
Een side-channel-aanval probeert het aantal combinaties te verminderen dat nodig is voor een succesvolle brute force-aanval door aanwijzingen te zoeken in de computer die de versleutelingsberekeningen uitvoert. Aanwijzingen kunnen worden verkregen door te kijken naar:
- Timing - hoe lang een computer nodig heeft om een bewerking uit te voeren
- Elektromagnetische lekken
- Audiosignalen
- Visuele aanwijzingen (opgevangen met een camera met hoge resolutie).
Vooral cache-timing-aanvallen zijn behoorlijk effectief gebleken bij het succesvol kraken van AES. In het opvallendste voorbeeld konden onderzoekers in 2016 een AES-128-sleutel herstellen(nieuw venster) met "slechts ongeveer 6 - 7 blokken tekst zonder opmaak of ciphertext (theoretisch zou zelfs één blok volstaan)".
Er kunnen echter een aantal dingen worden gedaan om de dreiging van side-channel-aanvallen te beperken:
- Correct geïmplementeerde AES kan manieren voorkomen waarop gegevens kunnen lekken.
- Hardware die de AES-instructieset integreert, verkleint het aanvalsoppervlak van side-channel-aanvallen op AES verder.
- Randomisatietechnieken kunnen worden gebruikt om de relatie te verstoren tussen gegevens die door AES worden beschermd en gelekte gegevens die via een side-channel-aanval kunnen worden verzameld.
In veel gevallen vereisen side-channel-aanvallen dat de aanvaller zich in de directe nabijheid van het apparaat bevindt of er fysieke toegang toe heeft terwijl het gegevens ontsleutelt, hoewel aanvallen op afstand mogelijk zijn als er kwaadaardige software op een apparaat is geïnstalleerd, met name in het geval van timing-aanvallen.
Hoe AES werkt
AES is een blokcipher die gegevens versleutelt en ontsleutelt in blokken van 128 bits met sleutels van 128, 192 of 256 bits. Zoals eerder opgemerkt, wordt dezelfde sleutel gebruikt voor het versleutelen en ontsleutelen van gegevens. AES met een 128-bitsleutel wordt vaak AES-128 genoemd, en hetzelfde geldt voor AES-192 en AES-256.

Gegevens worden versleuteld met meerdere rondes, die elk bestaan uit een reeks wiskundige bewerkingen.
Het proces begint met het gebruik van het key schedule-algoritme van Rijndael om een reeks nieuwe rondesleutels af te leiden van de oorspronkelijke geheime sleutel. Dit staat bekend als sleuteluitbreiding.
Elke ronde bestaat vervolgens uit een of meer van de volgende bewerkingen (of een combinatie daarvan):
1. Add RoundKey: er wordt een XOR-bewerking(nieuw venster) uitgevoerd om de te versleutelen gegevens (de ciphertext) te combineren met elke rondesleutel.

2. Sub Bytes: er wordt een substitutietabel gebruikt om de gegevens verder te vermengen. Denk in principe aan de eenvoudige substitutiecijfers die u als kind gebruikte, waarbij u elke letter in een bericht verving door een letter die een vast aantal plaatsen verder in het alfabet stond.

3. Shift Rows: elk gegevensblok van 128 bits bestaat uit een 4x4-blok van 16 bits. Deze bewerking verschuift elke byte in een blokrij met een bepaalde offset naar links.

4. MixColumns: op elke kolom in het blok wordt een extra omkeerbare lineaire transformatie uitgevoerd.

Deze reeks transformaties vormt één ronde, die vervolgens een bepaald aantal keren op de gegevens wordt herhaald, afhankelijk van de sleutelgrootte:
- AES-128 — 10 rondes
- AES-192 — 12 rondes
- AES 256 — 14 rondes
Om gegevens te ontsleutelen, worden alle stappen die zijn gebruikt om ze te versleutelen eenvoudig in omgekeerde volgorde uitgevoerd. Daarvoor is de oorspronkelijke geheime sleutel nodig om het proces om te keren met elke inverse rondesleutel.
Waarom heeft AES-256 de voorkeur boven AES-192 of AES-128?
Het zou met de huidige en voorzienbare technologie langer duren dan de leeftijd van het heelal om AES-128 met brute force te kraken. De legendarische cryptograaf Bruce Schneier heeft zelfs betoogd(nieuw venster) dat AES-128 mogelijk sterker is dan AES-256 dankzij een sterker key schedule — het algoritme dat alle rondesleutels berekent op basis van de oorspronkelijke geheime sleutel.
Toch is AES-256 de feitelijke gouden standaard geworden voor symmetrische-sleutelversleuteling. Het wordt vaak (zij het enigszins controversieel) gezien als de sterkere keuze, omdat de grotere sleutelgrootte een extra veiligheidsmarge suggereert zodat versleutelde gegevens veilig blijven, zelfs als er een manier wordt gevonden om het algoritme drastisch te verzwakken. Dit argument is sterker geworden naarmate de behoefte aan post-quantumbestendigheid urgenter wordt.
AES-CBC versus AES-GCM
Tot vrij recent werd AES meestal gebruikt in de cipher block chaining-modus (CBC), waarbij elk blok tekst zonder opmaak met het vorige ciphertextblok wordt ge-XOR'd voordat het wordt versleuteld. Bij gebruik in CBC-modus is een HMAC(nieuw venster)-hashalgoritme zoals HMAC-SHA256 vereist om de gegevens te verifiëren.
Het komt echter steeds vaker voor dat AES wordt gebruikt in de Galois/counter-modus (GCM), die de tellermodus(nieuw venster) van versleuteling gebruikt. Het belangrijkste voordeel is dat het het Galois-veld(nieuw venster) gebruikt om gegevens te verifiëren zonder dat daarvoor een extern algoritme nodig is. Het is daarom efficiënter dan het gebruik van een afzonderlijk verificatiealgoritme dat een hoge rekenoverhead kan hebben.
Hoewel AES-CBC met HMAC-verificatie over het algemeen als veilig wordt beschouwd, is CBC potentieel kwetsbaar voor padding-aanvallen(nieuw venster), zoals POODLE(nieuw venster). GCM is dat niet.
Hardwareversnelde AES
De meeste moderne CPU's bevatten Advanced Encryption Standard New Instructions (AES-NI(nieuw venster)), een set hardware-instructies die AES-bewerkingen rechtstreeks op de processor uitvoert. Dit maakt AES veel sneller en helpt ook timinggebaseerde side-channel-aanvallen te voorkomen, omdat de bewerkingen plaatsvinden in de veilige uitvoeringseenheden van de processor, zodat er minder waarneembare timingvariaties zijn die een aanvaller kan misbruiken.
Proton en AES
Wij maken uitgebreid gebruik van AES om Proton-producten te beveiligen:
Afspraken en contacten worden beveiligd met AES-256 in combinatie met ECC voor de sleuteluitwisseling om uw privacy te waarborgen via end-to-end versleuteling.
Proton VPN richt zich vooral op het snelle, efficiënte WireGuard® VPN-protocol (dat ChaCha20 gebruikt), maar OpenVPN-verbindingen gebruiken AES-256.
Proton Pass slaat wachtwoorden, notities, identiteiten en andere items op in uw beveiligde kluis met AES-256.
Proton Drive versleutelt alle geüploade bestanden end-to-end met AES-256 met ECC voor sleuteluitwisseling. Proton Docs en Proton Sheets gebruiken ook AES-256 met op ECC gebaseerde sleuteluitwisseling, hoewel hun versleutelingsimplementatie verschilt van het algemene bestandsversleutelingsschema van Proton Drive.
Proton Mail slaat e-mails en bijlagen op met AES-256 via de OpenPGP-standaard. Zelfs uw geheime sleutel, die uw e-mails ontgrendelt, wordt met AES-256 versleuteld voordat die op de server wordt opgeslagen.
Proton Meet gebruikt Messaging Layer Security (MLS) om audio, video en chatberichten te versleutelen, zodat forward secrecy (PFS) en post-compromise security (PCS) voor alle communicatie worden gewaarborgd. Alle vergadergegevens zijn end-to-end versleuteld met AES-256-GCM.
AES-versleutelingsaanvallen beperken
Beveiliging is slechts zo sterk als de zwakste schakel, en dat is meestal uw wachtwoord. Dat betekent dat social engineering, phishing-aanvallen en keyloggers(nieuw venster) ook een bedreiging vormen voor met AES versleutelde gegevens. Dus zelfs wanneer AES wordt gebruikt, moet u de volgende voorzorgsmaatregelen nemen:
- Gebruik een versleutelde wachtwoordbeheerder
- Gebruik hardwarebeveiligingssleutels (zoals YubiKey) voor een extra beschermingslaag
- Als u deel uitmaakt van een organisatie, voer dan regelmatig beveiligingstrainingen voor personeel uit om phishing-aanvallen te voorkomen
Neem de controle over uw gegevens
Proton is gebouwd om uw gegevens vanaf het begin te beschermen. Met end-to-end versleuteling, open-source apps en onafhankelijke audits, blijft uw informatie van u.
Veelgestelde vragen over AES-versleuteling
- Wat is beter: AES of DES?
- Wat is beter: AES of RSA?
- Hoe sterk is AES-beveiliging?


