Cryptografie – Geheimen delen en misdaad bestrijden
Je hebt vast gehoord van spionnen en geheim agenten die geheime codes of magisch onzichtbare teksten gebruikten om boodschappen uit te wisselen. Dat is hoe het vakgebied “cryptografie” is begonnen, de kunst van het schrijven en ontcijferen van geheime codes. Tijdens de Tweede Wereldoorlog bouwden de Engelsen speciale elektronische code-kraak-machines om de codes van de vijand te ontcijferen. Op dat moment was de computer geboren en veranderde alles en ging de cryptografie een hele nieuwe tijd in. Enorme berekeningen die daarvoor onmogelijk leken konden ineens allerlei codes kraken. En toen men computerprogramma’s met elkaar ging delen ontstond een nieuwe noodzaak van geheime wachtwoorden. Computers gingen deel uitmaken van een netwerk en zo kwamen er weer nieuwe redenen om informatie te beschermen tegen anderen. Toen email kwam, werd het belangrijk zeker te weten dat mensen die de mailtjes ondertekenden ook echt degene waren die zij zeiden te zijn. Nu we spullen kunnen kopen en verkopen via computers, moeten we veilige manieren hebben om orders te plaatsen en geld te betalen via computernetwerken. De groeiende dreiging van hackers of terroristen om computersystemen aan te vallen, maakt computerbeveiliging zelfs nog belangrijker.
Bij cryptografie denk je waarschijnlijk aan computers die geheime wachtwoorden opslaan en de letters van berichten zo door elkaar husselen dat de vijand deze niet meer kan lezen. De werkelijkheid is heel anders. Moderne computers slaan geen wachtwoorden op, want als ze dat zouden doen, zou iemand die zichzelf toegang zou kunnen verschaffen tot deze wachtwoorden door alle beveiliging van het systeem kunnen breken. Dat zou een ramp betekenen: ze zouden valse betalingen kunnen doen, berichten sturen uit naam van iemand anders, geheime documenten lezen, legers commanderen, overheden ten val brengen. Vandaag de dag worden wachtwoorden verwerkt via “éénrichtingsfuncties” waar we het in Activiteit 14 al over hadden. En encryptie is niet alleen het door elkaar husselen van de letters van een bericht: het gebeurt met technieken die echt moeilijke problemen met zich meebrengen – zoals de ‘onhandelbare’ problemen uit Deel IV.
Met het gebruik van cryptografie kan je dingen doen die bijna onmogelijk lijken. In dit deel zal je een simpele manier ontdekken om de gemiddelde leeftijd van mensen in een groep te berekenen zonder dat iemand zijn of haar leeftijd bekend maakt. Je zal ontdekken hoe twee mensen die elkaar niet vertrouwen een muntje op kunnen gooien en het eens kunnen zijn over de uitslag terwijl ze in een andere stad zitten en beide het muntje niet kunnen zien. En je zal een manier vinden om geheime codes te maken die door maar een ander persoon gedecodeerd kan worden, zelfs als iedereen weet hoe je het hebt gecodeerd.
Voor docenten
De activiteiten die volgen geven een praktische ervaring met moderne cryptografische technieken – die heel anders zijn dan waar de meeste mensen mee naar voren komen als zij denken aan geheimhouding en computers.
Er bestaan twee sleutelideeën. De eerste is het kenmerk van een “protocol”, wat een formele afspraak is voor een transactie. Bij protocollen denk je misschien aan diplomaten, het koningshuis of etiquette, maar computers gebruiken ze ook! Op het oog lastige opdrachten kunnen gedaan worden door verbazingwekkend simpele protocollen. Activiteit 16, die maar een paar minuten kost, laat zien hoe een groep mensen, al samenwerkend, makkelijk hun gemiddelde leeftijd (of inkomen) kan berekenen zonder elkaars leeftijd (of inkomen) te weten. Het tweede sleutelidee is de rol die computationele complexiteit – onhandelbaarheid – kan spelen wanneer je met anderen communiceert via computers. Activiteit 17 laat zien hoe twee mensen die elkaar niet vertrouwen het toch met elkaar eens kunnen worden over het tossen van een munt zelfs wanneer ze elkaar alleen maar door de telefoon spreken. (Deze activiteit introduceert als een soort extra ook het idee van Booleaanse logische poorten en hoe daarmee te werken.) Activiteit 18 laat zien hoe je computationele technieken kan gebruiken om berichten veilig te coderen, zelfs als de methode van coderen algemeen bekend is.
Een aantal van de volgende activiteiten zijn best moeilijk, vooral de laatste. Je zal je klas moeten motiveren door ze het gevoel van verwondering bij te brengen over het feit dat dit soort dingen überhaupt kunnen. Voor deze activiteiten zullen ze dingen moeten doen die onmogelijk lijken voor de meesten van ons. Het is echt van belang dit gevoel van verwondering te creëren, dit duidelijk te communiceren en regelmatig te pauzeren om ze hier nog op te wijzen zodat ze de (verbazingwekkende!) bomen blijven zien in het (waarschijnlijk soms saaie) bos. Deze activiteiten zijn de meest uitdagende en technisch ingewikkelde van het hele boek. Als deze te moeilijk blijken te zijn, ga dan gewoon verder met deel zes wat totaal anders is en een geheel niet technisch karakter heeft.
Voor de techneuten
Nu computers een steeds grotere rol gaan spelen in ons dagelijks leven is de toepassing van cryptografie steeds belangrijker. De meeste mensen hebben er geen idee van wat cryptografische protocollen kunnen en inhouden. Het resultaat is dat grote organisaties – zowel overheidsinstellingen en bedrijven – systemen opzetten die persoonlijke informatie bevatten waar alleen echte techneuten heel belangrijke beslissingen nemen hoe data wordt verwerkt, wat er verzameld wordt en wie welke toegang krijgt tot de data. Als men beter de mogelijkheden van de moderne technologie zou begrijpen, zouden ze zich meer actief met deze beslissingen kunnen bemoeien en zouden we mogelijk met een maatschappij eindigen met een hele andere informatie infrastructuur.
De kennis over informatie beschermende en cryptografische protocollen en publieke versleuteling wordt over het algemeen als zeer ingewikkeld ervaren. Maar de ideeën die daarachter schuilen zijn helemaal niet zo ingewikkeld. Het zijn de technische details die ingewikkeld zijn, maar het onderliggende concept is helemaal niet zo moeilijk. In de praktijk van elektronische handel zijn de technische zaken verstopt in de computersoftware, die er voor zorgt dat de nieuwe technologie van versleutelen vrij makkelijk te gebruiken is. Maar het is zeker belangrijk om de ideeën waarop deze zijn gebaseerd te begrijpen om een gevoel te krijgen wat er gedaan kan worden met versleutelen.
Cryptografie heeft altijd zeer grote belangstelling van overheden en niet alleen omdat ze officiële communicatie geheim willen houden, maar vooral ook de zorg dat versleutelde informatie wordt gebruikt door mensen die zich met illegale dingen bezig houden zoals drugshandel of terrorisme. Als dit soort mensen versleuteling gebruikt bij hun communicatie dan heeft het tappen van een internet- of telefoonlijn geen zin zonder een mogelijkheid om te ontsleutelen. Deze zorgen hebben voor veel debat gezorgd tussen mensen die de wet willen (en moeten) handhaven, die de middelen van versleutelen graag willen beperken, en burgers die bezorgd zijn dat de overheid toegang heeft tot hun privé communicatie. De Amerikaanse overheid heeft het gebruik van een aantal cryptografische methoden een tijd verboden door ze aan te merken als munitie – zoals bommen en wapens. Iedereen kan een veilig communicatienetwerk opzetten met de juiste informatie en een beetje technische kennis, maar deze kunnen gevaarlijk zijn wanneer ze in de verkeerde handen vallen. Er is een hele discussie geweest over de “Clipper Chip”, een systeem dat een extra wachtwoord heeft, ook wel sleutel-Escrow, in handen van een overheidsinstelling. Met deze sleutel kan iedere boodschap die door de chip is gecodeerd weer gedecodeerd worden. De FBI en de Amerikaanse justitie wilden deze chip verplicht stellen voor communicatie, maar er waren veel tegenstanders die het een inbreuk vonden op de privacy. Veel soorten cryptografie zijn technisch haalbaar, maar dat betekent niet dat ze ook politiek haalbaar en acceptabel zijn!
Cryptografie heeft meer toepassingen dan alleen boodschappen geheim houden. Ze helpen helpen ook te controleren of boodschappen die verstuurd worden ook echt verstuurd zijn door de mensen die zeggen ze verstuurd te hebben – dit heet “authenticatie”, en zonder dit is er geen digitale handel mogelijk. Er zijn manieren om mensen met de computer te laten stemmen zonder dat iemand erachter kan komen wat men gestemd heeft – zelfs niet degenen die het computersysteem laten draaien – en toch kan het systeem voorkomen dat iemand meerdere keren stemt. En je kan zelfs een kaartspelletje spelen over de telefoon – wat misschien een oninteressante toepassing lijkt maar zo besef je dat zaken doen met iemand vaak net een pokerspel lijkt.
Dit soort dingen klinken onmogelijk. Hoe kan je zelfs beginnen met een pak kaarten te schudden over de telefoon als je speelt met iemand aan de andere kant van de lijn en je hem of haar dus niet kan vertrouwen? Hoe kom je erachter dat iemand je boodschap heeft onderschept, die heeft aangepast en heeft doorgestuurd alsof het het originele bericht is? Als je dit soort dingen niet zou kunnen controleren dan kan je nooit digitaal zaken doen. Je moet voorkomen dat technisch onderlegde criminelen inbreken op een lijn waar bankzaken plaatsvinden en nep geldopnames autoriseren. Je moet voorkomen dat zakelijke concurrenten er een puinhoop van maken door valse orders of valse contracten bij elkaar te plaatsen. Met moderne cryptografische technieken kunnen dit soort wonderen verricht worden en de volgende activiteiten laten zien hoe.
Verder lezen
Er zijn veel interessante boeken over codes en ontcijferen van codes. Codebreakers: the inside story of Bletchly Park (Hinsley en Stripp, eds.) bevat ooggetuigeverslagen van de eerste computers die in de Tweede Wereldoorlog gebruikt werden, en de duur van de oorlog aanzienlijk beperkt hebben. Een toegankelijke speelfilm over de ontwikkeling van de computer om codes te kraken is The Imitation Game.