Neuraal netwerk spuwt schijnbaar willekeurige getallen uit

Reading time: 2 minutes

Author:

Binnen de cryptografie is het genereren van willekeurige getallen een heet hangijzer; veel algoritmes vertrouwen op random input om bijvoorbeeld cryptografische sleutels te genereren, maar écht willekeurige getallen zijn moeilijk te verkrijgen. Doorgaans wordt een pseudo random number generator (prng) ingezet, een wiskundige reeks die schijnbaar willekeurige getallen genereert. Vaak wordt dit aangevuld met omgevingsruis, bijvoorbeeld cijfers afgeleid uit muisbewegingen. Ook duiken er van tijd tot tijd voorstellen op om willekeurige input te halen uit dedicated quantumsystemen.

Toch blijven cryptografen op het onderwerp broeden. Prng’s zijn uiteindelijk deterministisch en kunnen gemanipuleerd worden, omgevingsruis is te beïnvloeden, en aparte systemen vereisen eigen hardware en zijn vaak beperkt in hun capaciteit.

In het begin produceert de generator voorspelbare output (links), maar na training (rechts) is er geen patroon meer in te ontdekken.

Onderzoekers aan de Queen Mary University of London stellen nu voor om een techniek in te zetten die het toverwoord lijkt te zijn voor álle problemen vandaag de dag: deep learning. En met succes; zelfs een klein en simpel neuraal netwerk blijkt in staat te zijn getallen te produceren waar geen patroon in te ontdekken lijkt.

Om hun netwerk te trainen, gebruikten de onderzoekers de generational adversarial network-aanpak (gan), waarbij twee neurale netwerken tegen elkaar worden ingezet. De eerste probeert willekeurige getallen te genereren, terwijl de tweede juist leert om patronen te ontdekken in die output. Door ze samen te trainen, worden ze allebei steeds beter in hun taak. De generator kan uiteindelijk los gebruikt worden.

De onderzoekers claimen niet dat ze een kant-en-klare cryptografische oplossing ontwikkeld hebben, ze waren vooral geïnteresseerd in de vraag of de aanpak werkt. De resultaten zijn echter bemoedigend: in een standaard test-suite wist de generator 99 procent van de cases succesvol uit te voeren.