Iedereen vult dagelijks wel een paar keer ergens een wachtwoord in. Bij het opstarten van de computer op het werk, het inloggen op een website of aan de pinautomaat in de stad. Het wachtwoord is ooit verzonnen als extra beveiliging, omdat bepaalde gegevens niet bedoeld zijn voor anderen. Dit werkt meestal goed, ware het niet dat veel mensen uit gemakzucht een zeer doorzichtig wachtwoord kiezen. Voor iemand met kwaad in de zin is de naam van je vrouw of hond echt niet moeilijk te achterhalen, en ook ‘1234’ gooit geen hoge ogen. Zelfs het wachtwoord ‘password’ schijnt bij sommigen populair te zijn. “Het veiligste wachtwoord is een volledig willekeurige combinatie van cijfers en letters”, zegt Andrey Sidorenko MSc, die maandag 29 oktober promoveerde in de groep Coderingstheorie en Cryptologie van de faculteit Wiskunde & Informatica. “Dan kan niemand door logisch na te denken en te gokken je code achterhalen. Daarbij geldt logischerwijs ook: hoe meer tekens het wachtwoord heeft, hoe kleiner de kans dat iemand het raadt. Lange wachtwoorden zijn weliswaar niet erg praktisch, maar voor het veilig overbrengen van belangrijke boodschappen moet de geheime sleutel wel zó lang zijn, dat anderen geen kans krijgen de boodschap te ontcijferen.”
Voor het versleutelen van boodschappen die geheim moeten blijven, heb je dus willekeurige getallen nodig. Maar waar haal je die vandaan? Hoe maak je echt willekeurige getallen? Uit de natuur, zo blijkt uit het werk van Sidorenko. Overal om ons heen zijn talloze processen aan het werk die door hun onvoorspelbaarheid volkomen willekeurig verlopen. Laten we eens een klein proefje doen. Pak een muntje uit je portemonnee, gooi het in de lucht en vang het op. Is het kop of munt ? Doe dit een paar keer. Hoe vaker je dit doet, hoe dichter je in de buurt zult komen van de helft ‘kop’ en de helft ‘munt’. Geen verrassing, toch? Per afzonderlijke worp is het echter wél elke keer de vraag wat je krijgt. De uitkomst is willekeurig (als je het muntje tenminste een beetje goed laat ronddraaien). Een ander willekeurig proces is radioactief verval. Dat vindt op atomair niveau op een willekeurig moment plaats. En vloeistofstromingen zijn al gauw zo complex dat ze niet te voorspellen zijn. In zijn proefschrift haalt Sidorenko als voorbeeld hiervan de lavalamp aan. Onder invloed van een warmtebron bewegen daarin zwevende bellen gekleurde was in ingewikkelde ronde vormen omhoog, om vervolgens rustig weer terug te zakken. Deze lamp zou echter ook als bron kunnen dienen voor het genereren van willekeurige getallen. “Film de hele tijd één punt in de lamp en genereer een ‘1’ bij een lichte plek en een ‘0’ als het donker is. Zo krijg je een lang, willekeurig binair getal”, legt Sidorenko uit. Toch zitten er nadelen aan een dergelijke bron van willekeurige getallen. Ten eerste is het heel lastig om er een echt volledig willekeurig getal uit te halen. “De stroming is heel traag, dus als je heel veel metingen per seconde doet, krijg je steeds grote groepen nullen of enen achter elkaar. Dat is slecht voor de kwaliteit van het als willekeurig bedoelde getal. Het gebruik van niet perfect willekeurige getallen voor cryptografie, leidt tot grotere risico’s. En daarnaast heb je natuurlijk niet altijd zo’n lamp bij de hand. Het is ook meer een voorbeeld.”
Een veel bruikbaarder fysisch verschijnsel is thermische ruis. Intel-processors in computers hadden jaren geleden een elektronische schakeling aan boord die hiervan gebruikmaakte voor het leveren van willekeurige getallen. Thermische ruis wordt veroorzaakt doordat de ladingsdragers in een elektrische geleider (meestal elektronen) een bepaalde willekeurige beweeglijkheid als gevolg van temperatuur hebben. Sidorenko: “Uit deze ruis, die bovenop het elektrische hoofdsignaal zit, kun je reeksen enen en nullen afleiden, waarvan we wiskundig kunnen aantonen dat ze heel goed willekeurig zijn.” Nu is er nog maar één nadeel over: een volledig willekeurig getal is zodanig uniek, dat je niet nogmaals precies hetzelfde getal kunt oproepen. Iets wat bij cryptografie wel vaak gewenst is.
Algoritmes
En daar komt Sidorenko’s promotiewerk om de hoek kijken. De Rus heeft gewerkt aan Pseudorandom Generators (PRG). Dit zijn wiskundige bewerkingen -algoritmes in jargon- die op een herhaalbare manier getallen opleveren die niet van een echt willekeurig getal te onderscheiden zijn. Het versleutelen van een belangrijke boodschap gaat daarmee als volgt. In de PRG stop je een echt willekeurig getal, dat relatief klein mag zijn, en alleen bij zender en ontvanger bekend is. Dit getal leidt de computer bijvoorbeeld af uit de systeemklok in combinatie met de muisbewegingen van de gebruiker. Dat is namelijk een behoorlijk willekeurig proces. Met dit echt willekeurige getal slaat de PRG aan het rekenen. De uitkomst hiervan -een zeer groot getal- vormt de sleutel voor de beveiliging van een boodschap. De zender laat de sleutel los op de boodschap om deze te vervormen, te coderen. Het gecodeerde bericht komt bij de ontvanger terecht, die het met behulp van de -onafhankelijk zelf uitgerekende- sleutel weer kan ontcijferen. Dit systeem werkt goed, doordat een crimineel de sleutel niet kan berekenen. En de boodschap dus niet kan ontcijferen. “Eén ding is echter wel heel belangrijk”, zegt Sidorenko. “Als de sleutel uit te weinig bits zou bestaan, dan zou een crimineel een computer alle mogelijkheden kunnen laten uitproberen. Daarom bestaat de sleutel vaak uit wel 1024 of 2048 bits (in het laatste geval geeft dat een decimaal getal weer dat ruim zeshonderd cijfers lang is). Dan is er voor iemand die kwaad wil écht geen beginnen aan.”/. |