Het is hét onderwerp van de discussie tussen de FBI en Apple: moet Apple de FBI helpen zodat het de encryptie van een iPhone kan omzeilen? Ook in politieke discussies in allerlei landen kwam het het afgelopen jaar veelvuldig naar boven: moeten er geen achterdeurtjes in de encryptie worden gebouwd?
Een steeds groter deel van ons internetverkeer is versleuteld, waardoor derden (lees: inlichtingendiensten en criminelen) niet makkelijk mee kunnen kijken met welke sites we bezoeken of welke berichten we versturen. Ook de inhoud van smartphones is steeds vaker standaard versleuteld. En in besturingssystemen van computers zit de optie om de volledige harde schijf te versleutelen tegenwoordig ingebakken.
Bewust en onbewust beschermen we onze data beter dan ooit te voren. Niet gek, nu we steeds meer gevoelige data (bijvoorbeeld op het gebied van gezondheid en financiën) digitaal opslaan en versturen. Maar hoe werkt encryptie nu precies? Een basiscursus.
De basis van encryptie
Stel, je hebt een vertrouwelijk document op je harde schijf. Het is niet de bedoeling dat de inhoud daarvan door iedereen zomaar gelezen kan worden. Daarom versleutel je het bestand met een algoritme dat de inhoud van de tekst omzet naar gebrabbel. In de cryptografie wordt dat het omzetten van de plaintext naar een ciphertext genoemd.
De combinatie van de twee algoritmes, waarvan de één het bericht versleutelt en de ander het bericht weer ontcijfert, heet een cipher. Er zijn ciphers in alle soorten en maten. Eenvoudige algoritmes veranderen een letter bijvoorbeeld in een andere letter (elke A wordt bijvoorbeeld een C, elke B een D, enzovoort), vergelijkbaar met de geheimtaal die je misschien wel gebruikte als kind. Complexere algoritmes kunnen letters ook in een uitgebreidere combinatie van tekens omzetten (elke A wordt bijvoorbeeld e9G$c2). Als een algoritme op deze manier werkt, wordt dat substitutie (‘vervanging’) genoemd. Een eenvoudig voorbeeld:
Hallo > Jcnnq
Naast substitutie kan een algoritme ook werken op basis van permutatie. Daarbij verwisselt het algoritme de volgorde van tekens. Bijvoorbeeld zo:
Hallo > loaHl
Om een cipher veiliger te maken, kan het algoritme ook verschillende rondes van versleuteling uitvoeren. Hoe meer rondes uitgevoerd worden, hoe ingewikkelder het wordt om van ciphertext terug te gaan naar de plaintext als je niet weet welke handeling uitgevoerd moet worden. Hieronder staat bijvoorbeeld een cipher met twee rondes. Eerst voert hij een permutatie uit, daarna een substitutie:
Hallo > loaHl > nqcJn
Door algoritme omgekeerd uit te voeren, wordt de ciphertext weer omgezet in plaintext en is je bericht dus leesbaar voor jezelf en de ontvanger.
De sleutel
Bij elk algoritme hoort een sleutel. Door deze sleutel in het algoritme te ‘injecteren’, wordt boodschap versleuteld of ontcijferd.
Advanced Encryption Standard (AES) is, zoals de naam doet vermoeden, tegenwoordig de standaard op het gebied van encryptie. Het is de moderne opvolger van de Data Encryption Standard, die in 1990 werd gekraakt. AES is een block cipher. Dat betekent dat het algoritme bestanden in blokken van bits versleutelt, wat sneller gaat dan bit voor bit versleutelen. AES codeert en decodeert berichten in blokken van 128 bits. De plaintext wordt dus een ciphertext van 128 bits.