Wat is AES (Advanced Encryption Standard)?

Afkorting van Advanced Encryption Standard. Een symmetrisch blokcijfer dat het Amerikaanse NIST in 2001 als FIPS 197 heeft gestandaardiseerd en dat tegenwoordig het meest wordt gebruikt. De bloklengte is 128 bits en de sleutellengte 128, 192 of 256 bits, met afhankelijk van de sleutellengte 10, 12 of 14 rondes. Het is gebaseerd op Rijndael, ontworpen door Belgische onderzoekers. Voor het versleutelen van lange gegevens wordt het gecombineerd met een werkingsmodus zoals GCM of CTR. Veel CPU's hebben er speciale instructies voor, zoals AES-NI.

Japanse benaming: AES

“AES (Advanced Encryption Standard)” komt voor in 10 oefenvragen uit 4 onderwerpen, bijv. Basis en toepassingen van cryptografie, Hardwarebeveiliging, Hardware voor kwantumcomputers.

Vakgebied: Basis en toepassingen van cryptografie

De rondefunctie

Elke ronde bestaat uit vier stappen: een niet-lineaire substitutie per byte (SubBytes), een verschuiving per rij (ShiftRows), een menging per kolom (MixColumns) en een XOR met de rondesleutel (AddRoundKey); in de laatste ronde wordt MixColumns weggelaten. De rondesleutels worden met het sleutelschema uit de oorspronkelijke sleutel afgeleid. Door de rondes te herhalen, verspreidt een verschil van één bit in de platte tekst of de sleutel zich over de hele uitvoer.

Hoe veilig het is

AES-128 heeft 2¹²⁸ mogelijke sleutels (ongeveer 3,4 × 10³⁸), dus brute force is niet realistisch. Ook de best bekende aanvallen zijn maar iets sneller dan brute force. Met het algoritme van Grover op een kwantumcomputer halveert volgens een eenvoudige vuistregel het aantal veiligheidsbits, dus voor toepassingen die veiligheid op lange termijn vereisen, wordt soms AES-256 gekozen.

Valkuilen bij de implementatie

Bij software-implementaties die tabellen opzoeken, laat de vraag welke posities zijn gelezen sporen achter in de cache, waardoor een zijkanaalaanval via de cache de sleutel kan achterhalen. Speciale instructies zoals AES-NI of een constante-tijdimplementatie zonder tabellen voorkomen dit probleem. En ook al is AES zelf veilig, verkeerd gebruik zoals de ECB-modus of het hergebruiken van een nonce maakt de beveiliging teniet.

Nu oefenen: vragen over AES (Advanced Encryption Standard)

Welke combinatie van bloklengte en sleutellengte is juist voor AES, het blokcijfer dat tegenwoordig veel wordt gebruikt?

  1. AEen bloklengte van 128 bits en een sleutellengte van 128, 192 of 256 bits
  2. BEen bloklengte van 64 bits en een sleutellengte van 56 bits
  3. CZowel de bloklengte als de sleutellengte kan vrij worden gecombineerd uit 128, 192 en 256 bits
Antwoord en toelichting tonen

Antwoord: A. Een bloklengte van 128 bits en een sleutellengte van 128, 192 of 256 bits

AES is een blokcijfer dat het Amerikaanse NIST in 2001 als FIPS 197 heeft gestandaardiseerd; de bloklengte ligt vast op 128 bits en de sleutellengte is een van drie waarden: 128, 192 of 256 bits. Afhankelijk van de sleutellengte is het aantal rondes (herhalingen van de omzetting) 10, 12 of 14. Rijndael, waarop AES is gebaseerd, was zo ontworpen dat ook de bloklengte kon worden gekozen, maar als AES is alleen het blok van 128 bits gestandaardiseerd. Een blok van 64 bits en een sleutel van 56 bits zijn de waarden van DES, de standaard vóór AES.

Beeldgegevens werden met AES in ECB-modus versleuteld, en in het versleutelde beeld waren de contouren van de oorspronkelijke afbeelding nog te herkennen. Wat is hiervan de oorzaak?

  1. ADe AES-sleutel was te kort, waardoor sommige blokken onversleuteld bleven
  2. BDe ECB-modus maakt voor elk blok automatisch een andere sleutel, en het patroon van die sleutels verschijnt in het versleutelde beeld
  3. CIn ECB-modus worden identieke blokken platte tekst altijd identieke blokken cijfertekst, zodat de patronen van vlakken met dezelfde kleur zichtbaar blijven
Antwoord en toelichting tonen

Antwoord: C. In ECB-modus worden identieke blokken platte tekst altijd identieke blokken cijfertekst, zodat de patronen van vlakken met dezelfde kleur zichtbaar blijven

De ECB-modus (electronic codebook) versleutelt eenvoudigweg elk blok onafhankelijk met dezelfde sleutel. Bevat de platte tekst blokken met dezelfde inhoud, dan verschijnen in de cijfertekst dus identieke blokken op dezelfde plaatsen. In een beeld met grote vlakken van dezelfde kleur, zoals een achtergrond, blijft de informatie over waar dezelfde kleur staat bewaard; het voorbeeld van een versleutelde afbeelding van een pinguïn is bekend. Daarom wordt de ECB-modus niet gebruikt om gewone gegevens te versleutelen, maar modi die ook uit dezelfde platte tekst elke keer een andere cijfertekst maken, zoals CBC-modus, CTR-modus en GCM.

Veelgestelde vragen

Is AES-256 twee keer zo veilig als AES-128?

Gemeten in de moeite van brute force niet twee keer, maar 2¹²⁸ keer. Brute force tegen AES-128 is op klassieke computers echter al onrealistisch, dus voor de meeste doeleinden volstaan beide. AES-256 wordt gekozen als men extra marge tegen kwantumcomputers wil of als regelgeving het vereist. De hoeveelheid rekenwerk is ongeveer evenredig met het aantal rondes, dus AES-256 kost ongeveer 1,4 keer (14 ÷ 10) zoveel als AES-128.

Volstaat AES alleen om gegevens te beschermen?

AES is een bouwsteen die één blok van 128 bits omzet; op zichzelf kan het lange gegevens niet versleutelen en geen manipulatie detecteren. In de praktijk wordt het gebruikt in een modus voor geauthenticeerde versleuteling zoals GCM, met correct beheerde nonces en sleutels die veilig worden gegenereerd en bewaard.

“AES (Advanced Encryption Standard)” in de toelichting

Vragen met “AES (Advanced Encryption Standard)” (10)

  1. Welke combinatie van bloklengte en sleutellengte is juist voor AES, het blokcijfer dat tegenwoordig veel wordt gebruikt?
  2. Beeldgegevens werden met AES in ECB-modus versleuteld, en in het versleutelde beeld waren de contouren van de oorspronkelijke afbeelding nog te herkennen. Wat is hiervan de oorzaak?
  3. Wat is een passende manier om met de initialisatievector (IV) om te gaan bij gebruik van AES in CBC-modus?
  4. AES (bloklengte 16 bytes) wordt in CBC-modus gebruikt met PKCS#7-padding. Bij PKCS#7 worden, als er n bytes ontbreken, n bytes met de waarde n toegevoegd, en ook als de lengte van de platte tekst precies een veelvoud van 16 is, worden 16 bytes met de waarde 16 toegevoegd. Hoe lang is de cijfertekst (zonder de IV) als een platte tekst van 96 bytes wordt versleuteld?
  5. Welke combinatie geeft juist aan wat de cipher suite TLS_AES_128_GCM_SHA256 van TLS 1.3 vastlegt?
  6. Welk voordeel, naast snelheid, van het geven van speciale AES-instructies (zoals AES-NI) aan een CPU wordt genoemd?
  7. Van welke cryptografie wordt verwacht dat de veiligheid door het algoritme van Shor ernstig wordt ondermijnd zodra grote fouttolerante kwantumcomputers zijn gebouwd?
  8. Welke uitspraak over symmetrische cryptografie is juist?
  9. Welke uitspraak beschrijft het verschil tussen blokcijfers en stroomcijfers binnen de symmetrische cryptografie juist?
  10. Stel 1 GiB = 2³⁰ bytes en 1 EiB = 2⁶⁰ bytes. Een blokcijfer met een blok van 64 bits (zoals 3DES) wordt in CBC-modus gebruikt om een grote hoeveelheid gegevens onder één sleutel te versleutelen. Als de blokken cijfertekst als willekeurige waarden van 64 bits worden beschouwd, bij welke hoeveelheid gegevens is de kans dat er door de verjaardagsparadox een paar identieke blokken cijfertekst verschijnt volgens de vuistregel niet meer te verwaarlozen?

Verwante termen

Werkingsmodus van een blokcijfer Geauthenticeerde versleuteling (AEAD) Symmetrische cryptografie (secret-key-cryptografie) Nonce TLS (Transport Layer Security) RSA-cryptosysteem Diffie-Hellman-sleuteluitwisseling Hashfunctie HMAC Algoritme van Shor

Naar de woordenlijst