Symmetrische cryptografie: definitie, werking en populaire algoritmen
Leer alles over symmetrische cryptografie: definitie, werking, stroom- & blokcijfers, populaire algoritmen (AES, Twofish, Blowfish) en belangrijke beveiligingsrisico's.
Symmetrische-sleutel-algoritmen zijn methoden in de cryptografie waarbij dezelfde sleutel wordt gebruikt voor zowel vercijfering als ontcijfering. Die sleutel is een gedeeld geheim tussen de communicatiepartijen. Het gedeelde geheim kan willekeurig gegenereerd worden, afgeleid worden uit een wachtwoord (met een veilige sleutel-afleidingsfunctie) of veilig uitgewisseld worden met een sleuteluitwisselingsprocedure zoals Diffie-Hellman.
Waarom symmetrische cryptografie?
Symmetrische algoritmen zijn meestal veel sneller en efficiënter dan publieke-sleutel cryptografie (asymmetrische cryptografie), vooral bij het versleutelen van grote hoeveelheden data. Daarom wordt asymmetrische cryptografie vaak alleen gebruikt om een tijdelijke symmetrische sleutel veilig te vervoeren of af te stemmen; de daadwerkelijke bulk-encryptie wordt vervolgens met een symmetrisch algoritme uitgevoerd.
Stroomcijfers versus blokcijfers
Er bestaan grofweg twee categorieën symmetrische algoritmen: stroomcijfers en blokcijfers. Stroomcijfers verwerken de data als een continue stroom bits of bytes en versleutelen doorgaans bit- of byte-gewijs; ze zijn goed voor toepassingen met variabele lengte of realtime-communicatie. Blokcijfers bewerken vaste blokken bits tegelijk (bijv. 64 of 128 bits) en passen binnen die blokstructuur interne transformaties toe. Traditionele blokgroottes zijn 64 bits, maar moderne cijfers zoals de Advanced Encryption Standard (AES) gebruiken 128-bits blokken.
Modes of operation (werkwijzen voor blokcijfers)
Blokcijfers alleen definiëren hoe een enkel blok wordt omgezet; om data van willekeurige lengte veilig te versleutelen gebruikt men modes of operation. Veel gebruikte modes zijn CBC (Cipher Block Chaining), CTR (Counter) en GCM (Galois/Counter Mode). Belangrijke punten:
- CBC: vereist een willekeurige initialisatievector (IV) en is gevoelig voor foutpropagatie; niet authenticerend.
- CTR: zet een blokcijfer om in een stream-achtige cipher door een teller/nonce te versleutelen; vereist nooit-hergebruik van de nonce met dezelfde sleutel.
- GCM: biedt zowel encryptie als data-integriteitscontrole (AEAD — authenticated encryption with associated data) en is tegenwoordig een veelgebruikte keuze voor netwerkprotocollen.
Populaire algoritmen
Voorbeelden van veelgebruikte symmetrische cijfers zijn Twofish, Serpent, AES (ook wel Rijndael), Blowfish, CAST5, RC4, TDES en IDEA. Enkele korte kenmerken:
- AES (Rijndael): blokgrootte 128 bits, sleutelgroottes 128/192/256 bits; industrienorm voor veel toepassingen.
- Twofish en Serpent: ontwerpers uit de AES-competitie; veiligheid en flexibiliteit voor alternatieve keuzes.
- Blowfish: snelle blokcipher met variabele sleutelgrootte, oudere ontwerpen gebruiken 64-bit blokken.
- CAST5: veel toegepast in oudere software en protocollen.
- RC4: een stroomcipher die vroeger veel gebruikt werd (bijv. in TLS/SSL), maar nu als onveilig wordt beschouwd vanwege verschillende praktische zwaktes.
- TDES (Triple DES): bouwt voort op DES voor langere sleuteleffectieve lengte, maar is traag en heeft beperkte blokgrootte (64-bit).
- IDEA: sterk ontwerp uit de jaren 90, gebruikt in sommige commerciële toepassingen.
Vormen van aanvallen en zwaktes
Sommige analytische technieken maken gebruik van structurele eigenschappen van cijfers; bekende typen aanvallen zijn 'known-plaintext attacks', 'chosen plaintext attacks', 'differentialcryptanalysis'' en 'linear cryptanalysis'. Andere praktische bedreigingen zijn:
- Brute-force aanvallen als gevolg van te korte sleutels.
- Zijkanaal-aanvallen (timing, cache, elektromagnetisch, power analysis) die informatie over de sleutel kunnen lekken ondanks een veilig algorithme.
- Fouten in implementatie, zoals onveilige willekeurbronnen, hergebruik van IV/nonce of inadequate padding-hantering.
Veel van deze risico's worden tegengegaan door het gebruik van moderne, goed bestudeerde algoritmen, veilige modes (bijv. AEAD-modes zoals GCM), correcte nonce/IV-beheer, sterke random number generators en tegenmaatregelen tegen zijkanaal-lekken.
Sleutelbeheer en praktijkregels
De kwaliteit van symmetrische encryptie hangt sterk af van sleutelbeheer. Belangrijke richtlijnen:
- Gebruik voldoende lange sleutels (minimaal 128 bits; 256 bits aanbevolen voor langdurige geheimhouding).
- Rouleer en draai sleutels periodiek en beperk hun levensduur.
- Bewaar sleutels veilig (bijv. in een HSM of beveiligde sleutelbeheeroplossing); deel ze met betrouwbare protocollen of met Diffie-Hellman of via publieke-sleutel cryptografie wanneer nodig.
- Gebruik sleutel‑afleidingsfuncties (KDFs) en PBKDFs wanneer sleutels van wachtwoorden worden afgeleid.
- Voorkom nonce/IV-hergebruik; veel fouten in de praktijk ontstaan door hergebruik van nonces vooral in CTR/GCM-achtige modi.
Toepassingen
Symmetrische cryptografie wordt breed toegepast: beveiligde netwerkverbindingen (TLS), VPN-tunnels, schijf- en bestandversleuteling, database-encryptie, encryptie van back-ups en in protocollen voor veilige streaming en messaging. Vaak worden symmetrische algoritmen gebruikt in combinatie met asymmetrische technieken: asymmetrische cryptografie voor sleuteluitwisseling en authenticatie, symmetrische cryptografie voor de feitelijke data-encryptie.
Aanbevelingen
Voor moderne toepassingen worden aanbevelingen vaak genoemd zoals:
- Kies een goed beoordeeld algoritme zoals AES met een geschikte mode (bijv. AES-GCM) of een geauthenticeerde combinatie (bijv. ChaCha20-Poly1305 voor software-optimale omgevingen).
- Gebruik ten minste 128-bit symmetrische sleutels en overweeg 256-bit voor sterke, toekomstige weerstand.
- Implementeer AEAD-modi voor zowel vertrouwelijkheid als integriteitsbescherming.
- Zorg voor veilig sleutelbeheer, veilige willekeurigheid en voorkom nonce-hergebruik.
Samengevat bieden symmetrische-sleutel-algoritmen efficiënte en krachtige middelen om vertrouwelijkheid en — wanneer gecombineerd met geschikte modi — integriteit te bieden. De werkelijke veiligheid hangt sterk af van de keuze van algoritme, mode, sleutelgrootte, implementatie en sleutelbeheer.

In een symmetrisch sleutelalgoritme is de sleutel die gebruikt wordt om te versleutelen dezelfde als de sleutel die gebruikt wordt om te ontsleutelen. Daarom moet het geheim worden gehouden.
Symmetrische versus asymmetrische algoritmen
In tegenstelling tot symmetrische algoritmen gebruiken asymmetrische sleutelalgoritmen een andere sleutel voor vercijfering dan voor ontcijfering. Dit betekent dat een gebruiker die de vercijferingssleutel van een asymmetrisch algoritme kent, berichten kan vercijferen, maar de ontcijferingssleutel niet kan berekenen en berichten die met die sleutel zijn vercijferd niet kan ontcijferen. Een korte vergelijking van deze twee soorten algoritmen wordt hieronder gegeven:
Snelheid
Symmetrische sleutelalgoritmen zijn over het algemeen veel minder rekenintensief dan asymmetrische sleutelalgoritmen. In de praktijk zijn asymmetrische sleutelalgoritmen doorgaans honderden tot duizenden keren trager dan symmetrische sleutelalgoritmen.
Sleutelbeheer
Een nadeel van symmetrische sleutelalgoritmen is de vereiste van een gedeelde geheime sleutel, waarbij beide partijen aan elk uiteinde dezelfde kopie hebben. Om te zorgen voor veilige communicatie tussen iedereen in een groep van n personen zijn in totaal n(n - 1)/2 sleutels nodig, dat is het totaal aantal mogelijke communicatiekanalen. Om de impact van een mogelijke ontdekking door een cryptografische aanvaller te beperken, moeten ze regelmatig worden veranderd en veilig worden bewaard tijdens de distributie en in dienst. Het proces van het selecteren, distribueren en opslaan van sleutels staat bekend als sleutelbeheer en is moeilijk op een betrouwbare en veilige manier te realiseren.
Hybride cryptosysteem
In moderne cryptosystemen worden zowel asymmetrische (publieke sleutel) als symmetrische algoritmen gebruikt om het beste van beide te benutten. Asymmetrische algoritmen worden gebruikt om symmetrische sleutels te verdelen aan het begin van een sessie. Zodra een symmetrische sleutel bekend is bij alle partijen van de sessie, kunnen snellere symmetrische-sleutel algoritmes met die sleutel gebruikt worden om de rest van de sessie te vercijferen. Dit vereenvoudigt het sleuteldistributieprobleem, omdat asymmetrische sleutels alleen authentiek gedistribueerd hoeven te worden, terwijl symmetrische sleutels zowel op een authentieke als op een vertrouwelijke manier gedistribueerd moeten worden.
Systemen die gebruik maken van een dergelijke hybride aanpak zijn onder andere SSL, PGP en GPG.
Gerelateerde pagina's
- Asymmetrische sleutelalgoritmen
Vragen en antwoorden
V: Wat zijn symmetrische sleutelalgoritmen?
A: Symmetrische-sleutel-algoritmen is een methode in de cryptografie waarbij de sleutels voor ontcijfering en vercijfering precies hetzelfde gedeelde geheim zijn.
V: Hoe kunt u het geheim genereren?
A: Het geheim kan willekeurig worden gegenereerd, of aan de hand van een wachtwoord, of via een geheime sleuteluitwisselingsprocedure zoals Diffie-Hellman.
V: Waarom zijn symmetrische sleutelalgoritmen belangrijk?
A: Symmetrische-sleutelalgoritmen zijn erg belangrijk omdat ze sneller zijn op computers dan publieke-sleutelalgoritmen.
V: Wat is public-key cryptografie (asymmetrische-sleutel cryptografie)?
A: Bij publiekesleutelcryptografie (asymmetrische sleutelcryptografie) kan de sleutel voor encryptie zonder probleem aan het publiek worden gegeven, en kan iedereen u geheime berichten sturen. De sleutel voor vercijfering is "open" omdat hij in de praktijk niet kan worden gebruikt om de sleutel voor ontcijfering te verkrijgen.
V: Wat zijn twee soorten symmetrische cyphers?
A: Twee soorten symmetrische cyphers zijn stream ciphers en block ciphers. Streamcijfers versleutelen een bericht als een stroom van bits één voor één, terwijl blokcijfers blokken van bits nemen, deze als één eenheid versleutelen en soms later ook het antwoord gebruiken.
V: Welke grootte van blokken gebruiken moderne cijfers?
A: Moderne cijfers zoals de Advanced Encryption Standard gebruiken blokken van 128 bits.
V: Welke soorten aanvallen zijn in het verleden gebruikt om symmetrie te misbruiken?
A: In de geschiedenis werd bij sommige cryptoanalysemethoden gebruik gemaakt van symmetrie, zodat symmetrische systemen minder veilig waren. Enkele aanvallen die zijn gebruikt, zijn bekende klaartekstaanvallen, gekozen klaartekstaanvallen, differentiële cryptoanalyse en lineaire cryptoanalyse.
Zoek in de encyclopedie