One-time pad (OTP) mag dan perfecte encryptie leveren, het is ook een methode die nauwelijks nog toepassing heeft, omdat zij onpraktisch en bovendien niet onomstreden is. Dit is het laatste deel in een serie van drie over het toepassen van OTP tegen het lekken van sleutels uit end-point hardware.
De reden waarom TLS gebruikt wordt voor internetverkeer en niet een digitale vorm van OTP, is omdat OTP een aantal stevige nadelen kent. Daarnaast is het zeer zeker niet onomstreden.
OTP heeft een ‘sleutellengte’ nodig ter lengte van het bericht. Wil je dus een harde schijf aan data versturen, dan heb je een andere harde schijf met ruisdata nodig. De ruisdistributie is daarom ook een probleem. Er moet iemand fysiek de ruisdata overbrengen naar de ontvanger. In een grijs verleden werd dat gedaan door tapes of kaarten met tekens. Maar er zijn meer belangrijke condities die ingehouden moeten worden:
- De ruis moet true-random zijn;
- Er mogen geen anomalies voorkomen in de ruis;
- De ruis mag niet voorspelbaar zijn;
- De distributie van de ruis zelf moet secure zijn;
- Een deterministisch algoritme voor ruisproductie mag niet te beïnvloeden zijn.
Goede ruis heb je niet zomaar. Ruis die van een computer komt, is niet goed genoeg en wordt getypeerd als een pseudo random generator. Bijvoorbeeld de rand() en srand() functie uit de taal C of het /dev/random device onder Linux. Het is verbazend, maar niet minder vermakelijk, om te zien hoe ver paranoia over ruis kan gaan. Alles in een computer is bestuurbaar en zou invloed kunnen hebben op de ruis die je genereert. Er zijn mensen die vreemd uitziende machines bouwen waar de mystiek van afspat om maar perfecte ‘real noise’ te krijgen. Dat al die paranoia niet ongegrond is, bewijst dat de eerste versie van onze wifi-versleuteling, WEP, die gebruikmaakte van de RC4 stream ciper – en werd gekraakt. De les over ‘niet helemaal random’ was snel geleerd.
Real noise is tegenwoordig met een klein apparaatje te genereren dat op een printplaat past. Dat is een elektronische manier van ruisgeneratie, niemand heeft er vat op. Maar een programma om ruis te genereren, is natuurlijk makkelijker maar ook gevaarlijk.
Voorbeeld: functie f(5) = 0,547273459836561235494546648
Een programma met een functie is natuurlijk nooit in te zetten als ruisgenerator voor echte ruis. Het wordt echter heel vaak gedaan, gewoon omdat het makkelijk is. Dit heet: deterministic random bit generator (DRBG). De functie is deterministisch. Elke keer als je er bijvoorbeeld 5 in stopt, komt er hetzelfde uit. Dat is makkelijk want dan hoef je alleen 5 over te brengen naar de ontvanger. De kans is echter groot dat de waarde 5 te voorspellen valt. Bijvoorbeeld omdat je bij 1 begint. En na 5 komt 6, et cetera. De uitkomst van de eindeloos lijkende tekenreeks is nooit ingewikkelder dan de input. Dit breekt de bovengenoemde conditie 3, voorspelbaarheid. DRBG moeten voorzien worden van een startwaarde die niet te voorspellen is. Precies daar zit het probleem. Dit wordt niet altijd gedaan omdat waarden als 1,2,3 ook gewoon werken. Sony weet dat nu heel goed – sinds de Sony PS3 gehackt werd wegens gebrek aan random nummers. Een constante werkte ook heel goed.
Veel mensen houden er van als dingen snel en simpel werken. Er zijn ook mensen die heel graag op een subtiele manier invloed zouden willen krijgen op welke ruis er gebruikt wordt. Beiden zouden elkaar gaan vinden in een nummergenerator die bedoeld was om gestandaardiseerd te worden. NSA heeft geprobeerd een achterdeur te plaatsen in de nummergenerator Dual_EC_DRBG die door normeringsinstantie NIST een kwaliteitsstempel zou moeten krijgen. De achterdeur bestond uit zorgvuldig gekozen waarden voor punten P en Q. Daarmee verschilt de poging niet veel van het bovengenoemde voorbeeld van RC4 of de functie f(5). Het verschil was dat Dual_EC_DRBG gebruikmaakte van de zeer wiskundige methode elliptische curve die moeilijker te doorgronden was. Misschien was de veronderstelling dat niemand het daarom zou ontdekken. Het is interessant dat NSA de poging toch gewaagd heeft. Als het misgaat, loopt het imago van de organisatie schade op. Misschien maakt de poging wel duidelijk wat de enorme toegevoegde waarde geweest zou zijn als deze geslaagd was. Ook voor de NSA moet dit een les geweest zijn en worden toekomstige achterdeuren nu beter verborgen.
Waarom OTP en geen stream cipher?
Er bestaat een manier van versleutelen die sterk op OTP lijkt en daar ook heel vaak mee verward wordt. Een stream cipher is een manier om een lange stroom aan data te versleutelen met gebruikmaking van pseudo-random ruis. Stream ciphers zijn belangrijk als het snel moet zijn en vinden hun toepassing vooral bij video en telefonie. Het kenmerkende verschil tussen OTP en een stream cipher is dat een stream cipher toch weer een sleutel heeft. Daarnaast heeft het een beetje ruis (seed genaamd) nodig om te kunnen starten. OTP heeft alleen een grote hoeveelheid ruis. Met een stream cipher ben je dus weer terug bij af. De sleutel kan lekken en moet daarnaast worden overgedragen door een sleutel-uitwisselingsprotocol en dat was eigenlijk net wat we wilden voorkomen. Stream ciphers worden veel vaker gebruikt dan OTP omdat ze makkelijk toe te passen zijn.
Achterdeur
Waarom zou iemand OTP overwegen terwijl TLS de goed geteste en secure bevonden protocollen AES en ECDH prefect combineert? Wel, omdat voor sommigen het beste nog niet goed genoeg is.
In een omgeving waar de angst regeert en nagenoeg alles een achterdeur heeft en kosten nog moeite gespaard worden om berichten te onderscheppen, komt OTP tot zijn recht. Er kan geen achterdeur in zitten. Een heel prettig gevoel als er veel te verliezen valt.
Er zijn wereldwijd verschillende implementaties van OTP. Opmerkelijk detail is dat OTP het meest gebruikt wordt in een land waar het lekken van een geheim niet alleen met bloed maar vaak ook met de dood bekocht wordt. Dit maakt de lastige en moeilijk te implementeren condities misschien makkelijker te accepteren.
Voor veel applicaties zijn deze condities nog steeds onoverkomelijk. Maar hoe meer hardware er bestaat die de overheid een onderbuikgevoel bezorgd, hoe meer ogen zich richten op OTP.