In de digitale wereld is de beveiliging van gegevens cruciaal. Een hoofdrol in dit proces is weggelegd voor het genereren van encryptiesleutels. Security-vendors gebruiken hiervoor zogeheten pseudo-willekeurige getallengeneratoren – die niet in staat zijn om volledig random getallen te genereren. Dus is de jacht geopend op methoden die wél echt willekeurige getallen opleveren.
Willekeurige ofwel random getallen zijn de ruggengraat van digitale encryptie. Deze getallen worden gebruikt om sleutels te genereren voor de encryptie van gegevens, waarbij de veiligheid van de versleuteling afhangt van de willekeur van deze getallen. Traditioneel worden hiervoor ‘pseudorandom number generators’ gebruikt. Deze produceren echter getallen die onafhankelijk van elkaar lijken en een bepaalde verdeling volgen. Het probleem is echter dat pseudorandom number generators gebaseerd zijn op algoritmen en als input een zogeheten ‘seed’, ofwel reeks van getallen gebruiken. Ze kennen dus een inherente beperking: ze kunnen niet volledig willekeurig zijn, aangezien een algoritme uiteindelijk patronen ofwel periodiciteit kan vertonen. Dit vormt een zwak punt in cryptografische systemen.
Entropie
Laten we hier in iets meer detail naar kijken. Een bron van willekeurigheid wordt gemeten in termen van de hoeveelheid entropie die het biedt. Denk aan de entropie die door een willekeurige uitvoer wordt geleverd als een score om aan te geven hoe ‘willekeurig’ de uitvoer eigenlijk is. Het begrip informatie-entropie werd uitgewerkt door de bekende wetenschapper Claude Shannon in zijn paper ‘A Mathematical Theory of Communication‘ en staat bekend als Shannon-entropie.
Een gangbare manier om over willekeurige uitvoer te denken is als volgt: een reeks bits afgeleid van een willekeurige uitkomst. Denk aan een eerlijke worp met een achtzijdige dobbelsteen met de zijden gemarkeerd 0-7. De uitkomsten van de dobbelsteen zijn te schrijven als de bitreeksen 000, 001, 010… 111. Omdat de dobbelsteen eerlijk is, is elk van deze uitkomsten even waarschijnlijk. Dit betekent dat elk van de bits even waarschijnlijk 0 of 1 is. Met andere woorden, wanneer je de uitkomst van de dobbelsteenworp interpreteert als een willekeurige uitvoer, dan leidt dit tot willekeurigheid met drie bits aan entropie.
Als een perfecte bron van willekeurigheid garant staat voor reeksen met n bits aan entropie, dan genereert het bitreeksen waarbij elke bit even waarschijnlijk 0 of 1 is. Hiermee kunnen we dus de waarde van elke bit voorspellen met een maximale waarschijnlijkheid van 1/2. Als de uitvoer wordt bemonsterd uit zo’n perfecte bron, beschouwen we ze als uniform verdeeld. Als we de uitvoer bemonsteren uit een bron waarbij één bit met hogere waarschijnlijkheid voorspelbaar is, dan heeft de reeks n-1 bits aan entropie. Om terug te keren naar de analogie met de dobbelsteen: het werpen van een zeszijdige dobbelsteen levert minder dan drie bits aan entropie op omdat de mogelijke uitkomsten 000, 001, 010, 011, 100, 101 zijn en dus de tweede en derde bits meer kans hebben om op 0 te worden gezet dan op 1.
Het is mogelijk om entropiebronnen te mengen met behulp van specifiek ontworpen mengfuncties om iets te verkrijgen met (nog) grotere entropie. De maximale resulterende entropie is de som van de entropie genomen van het aantal entropische bronnen dat als input wordt gebruikt.
Fysieke verschijnselen
Naar de lavalampen. Om de beperkingen van pseudorandom number generators te overwinnen, gebruikt een bedrijf als Cloudflare sinds 2017 zogeheten ‘true random number generators’. Deze generatoren – de lavalampen zijn daar een voorbeeld van – zijn gebaseerd op fysieke verschijnselen. Denk aan het gedrag van lavalampen, het traject van een chaotische pendulum of het verval van radioactieve elementen zoals uranium. Deze methoden zijn niet afhankelijk van algoritmen, maar van natuurlijke en onvoorspelbare processen, waardoor ze een uitstekende bron van willekeurige getallen vormen.
Lavalampen zijn een fascinerend verschijnsel, omdat de beweging van de gekleurde parafine in de lamp zich nooit herhaalt. Die beweging wordt namelijk veroorzaakt door de complexe interacties van verschillende factoren zoals temperatuur, dichtheid en licht. Cloudflare heeft in zijn hoofdkantoor in San Francisco een ‘entropie-wand’ opgesteld die bestaat uit 128 lavalampen (zie foto bovenaan artikel). Een camera neemt op regelmatige tijdstippen foto’s van deze wand met lavalampen. De pixels in deze foto’s worden vervolgens omgezet in numerieke waarden, wat leidt tot de generatie van volstrekt willekeurige getallen.
Aanvaller
Naast lavalampen gebruikt Cloudflare ook andere fysieke processen voor het genereren van willekeurige getallen. In hun kantoor in Londen volgen camera’s de beweging van drie chaotische pendulums. En in Singapore wordt een Geigerteller gebruikt die de radioactieve verval van een klein uraniummonster meet. Het bedrijf benadrukt dat het gebruik van meerdere bronnen van willekeur essentieel is voor de beveiliging. Zelfs met een betrouwbare bron van willekeurige getallen, bestaat er altijd het risico dat een aanvaller toegang verkrijgt tot die bron en daarmee tot de sleutels voor het ontcijferen van gegevens.
Er zijn inderdaad uitdagingen verbonden aan het gebruik van fysieke processen voor encryptie. Een aanvaller zou de camera’s kunnen manipuleren, de lavalampen kunnen uitschakelen of de datastroom kunnen wijzigen. Cloudflare erkent deze risico’s, maar benadrukt dat het moeilijk is om tegelijkertijd alle verschillende bronnen van entropie te beïnvloeden. Vandaar ook de spreiding van bronnen over kantoren die geografische zeer ver uit elkaar liggen. Als één bron gecompromitteerd wordt, blijven de andere bronnen willekeurige getallen leveren.
Cloudflare’s benadering van data-encryptie door het gebruik van fysieke fenomenen zoals lavalampen, chaotische pendulums en uraniumverval, is een interessante integratie van fysica en informatietechnologie. Door af te stappen van puur algoritmische methoden en zich te wenden tot de onvoorspelbare natuur, heeft Cloudflare een manier ontwikkeld om de digitale veiligheid verder te verbeteren. Hoewel ook deze methode dus niet zonder uitdagingen is, vertegenwoordigt het een significante stap in de zoektocht naar ware willekeur in cryptografie en databeveiliging.
Leuk, die lavalampen en chaotische pendulums, maar dit lijkt me vooral iets om bezoekers mee te imponeren.
Er zijn veel simpelere en uitstekende generatoren van willekeurige data. Neem een simpele ruisgenerator op basis van een zenerdiode. Door toepassing van een simpel wiskundig foefje (ooit beschreven door von Neumann) kun je hiermee een reeks genereren van enen en nullen die perfect willekeurig zijn.
De truuk is als volgt: trek door het signaal van de ruisgenerator een denkbeeldige horizontale lijn. Je ziet dan eenvoudig dat het signaal exact even vaak van onder de lijn naar boven de lijn beweegt als andersom. Als je nu tweemaal achter elkaar een meting doet van het ruissignaal dan is de kans dat de eerste meting onder de lijn ligt en de tweede erboven (dit noem je een 1) exact even groot als de kans dat de eerste meting boven de lijn ligt en de tweede eronder (dit noem je een 0). Metingen die beide boven of beide onder de lijn liggen negeren we. Zo’n ruisgenerator kost slechts een paar euro en de software stelt niets voor.
Je krijgt dan dus een reeks van volstrekt willekeurige enen en nullen.
Maar ik geef toe, zo’n wand met lavalampen levert wel een veel boeiender schouwspel op.
Overigens bestaan er ook al lang kwantumgeneratoren voor willekeurige getallen.