Encryptie
Encryptie
Van Caesar tot Quantum
Zolang er mensen zijn die informatie willen delen, zijn er mensen die die informatie willen onderscheppen. De behoefte om berichten af te schermen van buitenstaanders is dus van alle tijden. Al in de Oudheid ontwikkelden beschavingen versleutelingstechnieken om communicatie vertrouwelijk te houden.
Eén van de bekendste vroege voorbeelden is de Caesarversleuteling, genoemd naar Julius Caesar. Hij gebruikte een simpele techniek: elke letter in het bericht wordt vervangen door een letter die een vast aantal posities verderop in het alfabet staat. Zo wordt “hallo” bijvoorbeeld “kdoor” met een sleutel van 3. De methode is eenvoudig te kraken met moderne middelen, maar was effectief in een tijd zonder computers.
In de Middeleeuwen en later werden technieken complexer. Tijdens de Tweede Wereldoorlog speelde cryptografie een cruciale rol, met als bekendste voorbeeld de Enigma-machine, die door nazi-Duitsland werd gebruikt om militaire berichten te versleutelen. De code werd uiteindelijk gekraakt door geallieerde cryptografen zoals Alan Turing, wat het verloop van de oorlog mede beïnvloedde.
(Filmtip: The imitation game)
Vandaag de dag is encryptie de onzichtbare motor achter het digitale verkeer. Of het nu gaat om bankieren, e-mail, sociale media of overheidscommunicatie: zonder encryptie zou het internet onveilig en onbruikbaar zijn.

Symmetrische encryptie
Één sleutel, gedeeld geheim
In symmetrische encryptie gebruiken de verzender en ontvanger dezelfde sleutel voor zowel versleuteling als ontsleuteling. Het principe is intuïtief en krachtig: als je de sleutel kent, kun je het bericht lezen. Zo niet, dan blijft het onleesbaar.
Dit type versleuteling is snel en efficiënt. Moderne symmetrische algoritmes zoals AES (Advanced Encryption Standard) zijn extreem sterk en worden wereldwijd gebruikt. Maar symmetrische encryptie kent één groot probleem: de sleutel moet veilig gedeeld worden. Als iemand de sleutel onderschept, is de veiligheid van het hele systeem aangetast.
In deze module werk je met een zelfgebouwde symmetrische versleuteling in JavaScript. Daarbij gebruik je (in eerste instantie) een eenvoudige numerieke sleutel. Je krijgt vervolgens de opdracht om zelf een methode te ontwerpen waarmee de sleutel op een veilige en dynamische manier kan worden gegenereerd en meegezonden. Denk hierbij aan het gebruik van tijd, identificatiecodes of tijdelijke parameters.
De uitdaging: de sleutel moet reproduceerbaar zijn door de ontvanger, maar onvoorspelbaar en onvindbaar voor buitenstaanders.
Natuurlijk moet de ontvanger de mogelijkheid krijgen om de versleutelde tekst te plakken en ontsleutelen.