AES-256-versleuteling uitgelegd: wat het is en hoe het werkt

AES-256-versleuteling uitgelegd: wat het is en hoe het werkt

AES-256 is de versleutelingsstandaard die door overheden en beveiligingsprofessionals wordt gebruikt om de meest gevoelige gegevens ter wereld te beschermen.


AES-256 (Advanced Encryption Standard met een 256-bits sleutel) is een symmetrisch blokversleutelingsalgoritme dat door het National Institute of Standards and Technology (NIST) is gestandaardiseerd en door de NSA is goedgekeurd voor informatie op TOP SECRET-niveau. Het is de versleutelingsstandaard die door banken, overheden en beveiligingsgerichte apps wordt gebruikt wanneer gegevens absoluut privé moeten blijven. Deze handleiding legt uit hoe het werkt, wat de sleutelgrootte werkelijk betekent en hoe u versleutelingsclaims kunt verifiëren.

Wat AES eigenlijk is

AES is een blokversleuteling: het verwerkt gegevens in vaste blokken van 128 bits (16 bytes) tegelijk. Het neemt een invoerblok (plaintext) en een sleutel en produceert een onleesbaar uitvoerblok (ciphertext). De sleutelgrootte — 128, 192 of 256 bits — bepaalt hoeveel verwerkingsrondes worden uitgevoerd (respectievelijk 10, 12 of 14). Meer rondes betekent meer complexiteit, waardoor bruut-force aanvallen duurder worden.

Het algoritme werd geselecteerd na een open internationale competitie die NIST in 1997 startte. Het winnende algoritme, Rijndael, ontworpen door Joan Daemen en Vincent Rijmen, werd in 2001 AES. De competitie testte kandidaten gedurende drie jaar van openbare cryptanalyse. Het is geen propriëtair algoritme dat door een bedrijf is uitgevonden — het is een openbare standaard die is gebouwd op peer review.

Hoe AES-256-versleuteling werkt

Het versleutelingsproces werkt als volgt:

  1. Sleuteluitbreiding. De 256-bits sleutel wordt uitgebreid tot een sleutelschema van 15 sleutelronden via het Rijndael-sleutelschema. Elke ronde gebruikt een andere subsleutel afgeleid van de originele.

  2. Initiële rondetoestand. De 128-bits invoerblok wordt in een 4×4 byte-matrix gerangschikt.

  3. 14 rondes van transformaties. Elke ronde past vier bewerkingen toe: SubBytes (non-lineaire substitutie met behulp van een S-box), ShiftRows (rijverschuiving), MixColumns (kolommenmenging), en AddRoundKey (XOR met de rondesubsleutel). De laatste ronde slaat MixColumns over.

  4. Uitvoer. De definitieve matrix is de ciphertext — 128 bits statistisch willekeurige gegevens die niet te onderscheiden zijn van ruis.

Het resultaat: versleutelde gegevens onthullen niets over de plaintext en niets over de sleutel. Identieke plaintexts versleuteld met dezelfde sleutel maar verschillende initialisatievectoren produceren volledig verschillende ciphertexts.

GCM-modus: authenticatie toevoegen aan versleuteling

AES op zichzelf is een blokversleuteling. In de praktijk wordt het gecombineerd met een bewerkingsmodus die bepaalt hoe meerdere blokken worden verwerkt en hoe integriteit wordt gewaarborgd. De huidige standaard is GCM (Galois/Counter Mode).

AES-256-GCM is een AEAD-versleuteling (Authenticated Encryption with Associated Data). Het doet twee dingen tegelijk:

  • Versleuteling: Gegevens omzetten naar ciphertext met behulp van CTR-modus (teller).
  • Authenticatie: Een authenticatietag produceren die elke manipulatie van de ciphertext detecteert.

Dit is cruciaal. Zonder authenticatie kan een aanvaller versleutelde gegevens manipuleren zonder de inhoud te kennen. GCM maakt dergelijke manipulatie detecteerbaar — als één bit van de versleutelde gegevens wordt gewijzigd, mislukt de ontsleuteling met een verificatiefout in plaats van beschadigde output te produceren.

Sleutelgrootte en wat 256 bits werkelijk betekent

Belangrijke afleiding is belangrijk. Hoe wordt de 256-bits sleutel gegenereerd? Als de pincode is afgeleid van een viercijferige pincode met behulp van een zwakke KDF, is de effectieve beveiliging vier cijfers (10.000 combinaties), en niet 256 bits. Een sterke implementatie maakt gebruik van PBKDF2 met een hoog iteratieaantal of Argon2 met de juiste geheugen- en tijdparameters. Vaultaire-gebruik PBKDF2 met HMAC-SHA512 en 600.000 iteraties om een lokale kluissleutel af te leiden uit het gekozen 5x5-patroon en een apparaatzout. PBKDF2 maakt elke gok duurder; het verhoogt de entropie van het patroon niet tot 256 bits.

  • Er zijn naar schatting 10^80 atomen in het waarneembare universum.
  • Het controleren van 1 biljoen sleutels per seconde (10^12/s) op de snelste supercomputer zou 3,31 × 10^56 jaar kosten om de sleutelruimte te doorzoeken.
  • De schatting voor de levensduur van het universum is 10^100 jaar.

Bruut-force is niet alleen impractisch. Het is computationeel onmogelijk met bekende natuurkundige beperkingen, ongeacht de beschikbare rekenkracht.

Sleutelafleiding: van wachtwoorden naar versleutelingssleutels

AES-256 vereist een sleutel van precies 256 bits. Menselijke wachtwoorden en patronen zijn geen 256-bits sleutels — ze zijn korter en bevatten patronen. Een sleutelafleiding-functie (KDF) overbrugt deze kloof.

PBKDF2 (Password-Based Key Derivation Function 2), gespecificeerd in RFC 8018, neemt uw wachtwoord, een willekeurig salt (om rainbow table aanvallen te voorkomen) en een iteratieteller, en produceert een sleutel van de gewenste lengte via herhaald hashen. De iteratieteller maakt elke wachtwoordraden rekenintensiever. Met 300.000 iteraties kost elke wachtwoordgok 300.000 hashes aan verwerkingskracht — direct vertaald naar lagere aanvalssnelheden voor brute-force.

Vaultaire gebruikt PBKDF2 met HMAC-SHA512 en een per-kluis willekeurig salt voor sleutelafleiding. Het getrokken patroon op het 5×5-raster voert PBKDF2 in. De uitvoer is de 256-bits AES-sleutel. Het patroon zelf wordt nooit opgeslagen.

Vergelijking: AES-128 vs AES-192 vs AES-256

Kenmerk AES-128 AES-192 AES-256
Sleutellengte 128 bits 192 bits 256 bits
Rondes 10 12 14
Beveiligingsniveau 128 bits 192 bits 256 bits
Prestatiekosten Laagste Gemiddeld Hoogste (minimaal verschil in de praktijk)
NSA-goedkeuring voor TOP SECRET Nee Nee Ja
NIST-aanbeveling (post-kwantum) Minimaal aanvaardbaar Aanvaardbaar Voorkeur

AES-128 is veilig voor de overgrote meerderheid van de praktische toepassingen. AES-256 is de voorkeur wanneer toekomstbestendigheid tegen kwantumcomputers wordt vereist. NIST's post-kwantum cryptografierichtlijnen bevelen AES-256 aan als de symmetrische standaard voor gegevens met een lange levensduur.

Hoe Vaultaire AES-256-GCM implementeert

Elk geïmporteerd bestand in Vaultaire wordt individueel versleuteld met AES-256-GCM en een unieke nonce. Daardoor leveren identieke bestanden verschillende ciphertexts op. Bestandsnamen en MIME-typen staan in versleutelde bestandsheaders; datums, groottegegevens, opslagindeling en de verpakte hoofdsleutel staan in de versleutelde kluisindex. Ook miniatuurgegevens worden met AES-256-GCM onder de willekeurige hoofdsleutel versleuteld.

De versleutelingssleutel bestaat alleen in het geheugen van het apparaat terwijl de kluis actief is. Hij wordt gewist wanneer de app sluit, naar de achtergrond gaat of wanneer de gebruiker de kluis verlaat. Er is geen sleutelopslag op het apparaat en geen sleutelregistratie op een server.

Dit is de architectuur beschreven in de beveiligingsfuncties van Vaultaire.

Veelgestelde vragen

Is AES-256 onbreekbaar?

Met huidige technologie: ja, in de praktijk. Geen bekende aanval reduceert de benodigde rekenkracht voor het breken van AES-256 tot iets computationeel haalbaars. De beste bekende aanvallen zijn theoretische gerelateerde-sleutelaanvallen die aantonen dat AES-256 minder dan zijn theoretische beveiligingsniveau heeft — maar het werkelijke beveiligingsniveau blijft ver buiten het bereik van enig realistisch aanvalsscenario. Kwantumcomputers zouden de effectieve sleutelsterkte halveren (tot 128 bits beveiliging), waarvoor NIST AES-256 aanbeveelt boven AES-128 voor toekomstbestendige gegevens.

Wat is het verschil tussen AES-128 en AES-256?

Belangrijke levenscycluszaken. Hoe lang blijft gedecodeerd sleutelmateriaal beschikbaar? Vaultaire laat de actieve kluis- en hoofdsleutelstatus vallen wanneer deze wordt vergrendeld of gesloten en vereist een nieuwe ontgrendeling. Symmetrische sleutelbytes bestaan noodzakelijkerwijs in het app-geheugen terwijl een kluis open is, en Swift en iOS laat een app niet bewijzen dat elke tijdelijke kopie is overschreven.

Gebruikt de overheid AES-256?

Controleer de beveiligingsdocumentatie van de app, niet alleen de marketingpagina. Zoek naar het specifieke algoritme en de modus, sleutelhiërarchie, afleidingsparameters, exact Keychain of Secure Enclave gebruik, nonce-afhandeling, herstelpad en of metagegevens ook zijn gecodeerd. Open-sourcecode en onafhankelijke audits maken deze beweringen gemakkelijker te verifiëren.

Kan ik verifiëren of een app echt AES-256 gebruikt?

Directe verificatie vereist toegang tot broncode of een cryptografische audit. Indirecte tests: (1) Als de app wachtwoordherstel biedt zonder een herstelzin, worden sleutels op de server opgeslagen — geen echte end-to-end versleuteling. (2) Als de app u laat inloggen op een nieuw apparaat en uw gegevens herstelt zonder sleuteloverdracht, heeft de server uw sleutels. (3) Zoek naar gepubliceerde onafhankelijke beveiligingsaudits, niet alleen voor marketingclaims. Open-sourceapps laten broncodeverificatie toe zonder audits. Apps die FIPS 140-3 certificering claimen, zijn onderworpen aan laboratoriumtests van hun cryptografische implementaties.

Samenvatting

Vaultaire gebruikt AES-256-GCM voor bestandsinhoud, kopteksten, metagegevens, indexen en miniaturen. PBKDF2 met HMAC-SHA512 leidt een lokale kluissleutel af van het patroon en een apparaatbreed Keychain zout; die sleutel pakt een willekeurige hoofdsleutel uit die wordt gebruikt voor bestandscodering. De symmetrische bewerkingen lopen in het app-proces door CryptoKit, terwijl iOS Keychain en Gegevensbescherming beschermen de herstelstatus wanneer het apparaat is vergrendeld. De volledige hiërarchie is gedocumenteerd in de beveiligingsmodel.