Het is eigenlijk een geheime handdruk voor machines.
Net zoals twee Spartaanse generaals exact hetzelfde cijfer nodig hadden om troepenbewegingen uit te wisselen zonder dat de vijand hun plannen decodeerde, vertrouwen computers die symmetrische sleutelcodering gebruiken op een gedeeld geheim. De regel is simpel: als je versleutelde gegevens wilt versturen, moeten zowel de afzender als de ontvanger over dezelfde sleutel beschikken. Je kunt hier niet zomaar een openbare sleutel uitzenden en er het beste van hopen. Het is een gesloten lus.
Je moet precies weten welke apparaten met elkaar praten voordat je die sleutel aan beide kanten kunt installeren. Het is een vooraf gedeeld geheim. Zie het als een kinderspel waarbij je afspreekt dat ‘A’ ‘C’ wordt en ‘B’ ‘D’. Als uw vriend hetzelfde regelblad heeft (“Shift by 2”), kan hij of zij uw notitie lezen. Als een vreemdeling het pakketje onderschept, zien ze alleen maar onzin.
Computers doen dit op grote schaal, maar de ‘codes’ zijn lang niet zo schattig als het verschuiven van letters in het alfabet.
Het eerste grote algoritme dat de Amerikaanse standaard bereikte, was de Data Encryption Standard (DES). Het kwam uit in de jaren zeventig. De sleutellengte? Slechts 56 bits. Dat voelde toen veilig. Tegenwoordig is het lachwekkend.
Waarom? Omdat de wet van Moore niets om uw codering geeft.
Een 56-bits sleutel biedt 72 biljard mogelijke combinaties. Dat klinkt veel, totdat je beseft dat moderne hardware deze combinaties bij brute-force-aanvallen kan uitproberen in een fractie van de tijd die nodig is om koffie te zetten. DES is effectief verbroken. Het werd vervangen door de Advanced Encryption Standard (AES), wat u momenteel waarschijnlijk gebruikt.
AES gebruikt sleutels van 128, 192 of 256 bits. De wiskunde wordt astronomisch. Eén enkele 128-bits sleutel heeft meer combinaties dan er zandkorrels zijn op elk strand op aarde. De meeste experts zijn het erover eens dat AES heel lang stand zal houden. Het gaat echter niet alleen om de cijfers. Het gaat om de architectuur.
Kijk eens hoe ouderwetse vervanging werkt. Julius Caesar gebruikte een soortgelijke truc. Hij verschoof niet met twee. Hij verschoof met drie. Om ‘CROSSING THE RUBICON’ te schrijven, krabbelde hij ‘FURVV LQJWK HUXEL FRQ’. Hij verdeelde de woorden ook in gelijke groepen om de woordlengtes te verbergen. Het was slim voor zijn tijd. Maar het is geen symmetrische sleutelversleuteling in de moderne zin van het woord. Het is gewoon een vervangingscijfer. En het is triviaal om te kraken met frequentieanalyse.
Versleuteling met symmetrische sleutels is anders. Het is niet alleen maar letters uitwisselen. Het is een wiskundig proces dat het hele datapakket door elkaar gooit. De sleutel bepaalt de permutatie. Zonder die specifieke sleutel blijven de gegevens vergrendeld.
Maar er zit een addertje onder het gras.
Het grootste probleem bij systemen met symmetrische sleutels is niet de encryptie zelf. Het is de sleutelverdeling. Hoe krijg je die geheime sleutel veilig op de andere computer? Als u de sleutel in platte tekst verzendt, heeft u al gefaald. Als u een openbaar kanaal gebruikt, kan de sleutel worden onderschept. Dit is de reden waarom er asymmetrische encryptie bestaat – om het probleem van de sleuteluitwisseling op te lossen. Maar voor de daadwerkelijke gegevensoverdracht? Symmetrisch is nog steeds koning. Het is sneller. Het is lichter. Het vereist niet het zware rekenwerk van cryptografie met publieke sleutels.
Je gebruikt dus beide. Asymmetrisch om de symmetrische sleutel te verwisselen. Symmetrisch om de werkelijke lading te verzenden.
Het is een hybride aanpak. Efficiënt. Zeker. Standaard.
Maar niet onoverwinnelijk.
Er ontstaan voortdurend nieuwe aanvallen. Quantum computing doemt op aan de horizon en belooft de huidige normen te doorbreken door problemen met gehele getallen en discrete logaritmes binnen enkele seconden op te lossen. We werken al aan post-kwantumalgoritmen. Maar voor nu? AES 256-bit is de gouden standaard. Het is robuust. Het wordt algemeen aanvaard. Het werkt.





























