Een kwantumveilige handtekening

De kern van cryptografie is het verbergen of dusdanig versleutelen van te verzenden informatie, dat het voor een afluisteraar (bijna) onmogelijk is om ‘mee te luisteren’. Het woordje ‘bijna’ is de mate van inspanning die de afluisteraar moet doen, om af te leiden wat de oorspronkelijk verzonden informatie was. Met de komst van de computer werd het mogelijk de versleuteling sneller uit te voeren en een groter aantal mogelijke sleutels te gebruiken. Je hebt enerzijds symmetrische versleuteling, waarbij beide eindpunten in het bezit moeten zijn van de sleutel. De uitdaging is om die sleutel veilig bij beide uiteinden te krijgen en te bewaren. 

Bij asymmetrische versleuteling echter maakt een algoritme tegelijkertijd een publieke en een geheime sleutel aan. Het voordeel is dat de geheime sleutel niet hoeft te worden uitgewisseld, terwijl de publieke sleutel algemeen bekend mag zijn. De twee sleutels zijn aan elkaar gekoppeld. Als iemand jou een bericht stuurt dat met de publieke sleutel is geëncrypt, kun je dat bericht alleen met de privé sleutel decrypten. De veiligheid hangt vanzelfsprekend af van zowel de lengte van de sleutel als de kwaliteit van het algoritme. Het nadeel van asymmetrische encryptie is dat juist het ontcijferen veel rekenkracht en daarmee tijd en energie kost.  Een veel gebruikte methode is daarom hybride encryptie. De meeste communicatie wordt dan met eenvoudiger en snelle symmetrische encryptie toegepast maar de privé-sleutels worden uitgewisseld met asymmetrische encryptie. 

RSA

Het meest bekende asymmetrische handtekeningen-algoritme is RSA, uitgevonden eind jaren zeventig. In RSA is de openbare sleutel een groot samengesteld geheel getal, dat het product is van twee grote priemgetallen. De geheime sleutel is kennis over deze priemgetallen. De clou is dat computers grote moeite hebben om priemgetallen te factoriseren, dat wil zeggen het kunnen ontbinden van grote getallen in kleinere getallen, die vermenigvuldigd weer het oorspronkelijke getal opleveren. Het huidige wereldrecord van een supercomputer is momenteel een getal 768 bits (dat is een getal met ruim 230 getallen achter de komma). Zolang het algoritme een (veel) groter getal hanteert, is de encryptie dus niet te berekenen. RSA gebruikt momenteel 2048-bits getallen. Dus RSA is veilig . . . tot nu toe.  

Klassieke computers kunnen voorlopig grote RSA-sleutels niet breken. Maar met de komst van kwantumcomputers wordt die strijd anders. Eigenlijk is elke computer een kwantumcomputer, omdat ze halfgeleiders bevatten waarvan we nog lang niet alle gedrag adequaat kunnen bepalen. Bij onze huidige computers gebruiken we alleen de normale, meetbare,  natuurkundige verschijnselen die te beschrijven zijn in onafhankelijke bits. Bij kwantumcomputers baseren we ons juist op een specifiek onderdeel van de minder logische natuurkunde dat we kwantummechanica noemen. Waarbij de computer een interne toestand kan handhaven, die vanuit de ‘ouderwetse’ natuurkunde niet exact kan worden beschreven in een verzameling onafhankelijke bits. 

Kwantumcomputing

Er is geen correcte intuïtieve beschrijving van een kwantumcomputer. Een lang bestaand probleem van de kwantumfysica. De uitleg is – filosofisch gesproken – niet zinnig. Het is wat Schrödinger in een gedachten-experiment de half levende/half dode kat noemt. Zoals Niels Bohr ooit al zei: ‘Kwantumfysica is niet logisch, maar het werkt. Dus laten we het maar gaan gebruiken’. We kunnen met kwantumcomputers sommige bewerkingen veel sneller uitvoeren dan met de ‘normale’ computers. Daarom zouden ze in staat ‘kunnen’ zijn het RSA algoritme in de toekomst te breken, net zoals andere vergelijkbare algoritmen die in de loop der jaren zijn ontworpen. 

Het grootste nadeel van kwantumcomputers is dat ze eigenlijk nog nauwelijks bestaan. Het daadwerkelijk bouwen van een kwantumcomputer is een enorme opgave, waar veel laboratoria in veel landen mee bezig zijn. De huidige kwantumcomputers zijn nog bij lange niet in staat RSA te breken, maar de ontwikkeling gaat snel. Men verwacht dat over tien jaar een moment komt, dat RSA gebroken zal worden. Maar dat moment was twintig jaar geleden ook al tien jaar verwijderd. Dus óf en hoe snel dat moment in de tijd zal komen, is onbekend. Maar dat betekent wel dat men al op zoek is naar encryptie technieken die ‘kwantum safe’ zijn. Die, zelfs als de kwantumcomputer in al zijn kracht binnenkort aanwezig zou zijn, toch veilige encryptie mogelijk maakt. 

Falcon

In een goed verhaal op Github is mooi beschreven hoe we intussen een nieuwe kandidaat hebben om RSA op te volgen. Die potentiële opvolger heet ‘Falcon’ en dat staat voor Fast-Fourier Lattice-based Compact Signaturen over NTRU. Er zijn twee soorten algoritmen: sleutel-uitwisselingsprotocollen en handtekeningen. Falcon is vooral een kandidaat voor het algoritme voor handtekeningen voor het NIST Post-Quantum Cryptography Standardization Process. Een hele mond vol. De belangrijkste verandering in deze encryptietechniek is dat de ‘breekmethode’ heel anders is. Juist kwantumcomputers hebben grote moeite met deze nieuw gekozen breekmethode.

De structuur is gebaseerd op een rooster (Lattice), een soort sub-vectorruimte met alleen gehele coëfficiënten. Het breken van Falcon is gebaseerd op het vinden van korte vectoren in dat rooster. Dat is een lastig probleem waarvoor op dit moment geen efficiënte oplossingen zijn gevonden. Zelfs niet met kwantumcomputers. Falcon is ook lichtvoetig. Om namelijk een handtekening-algoritme op een smartcard te kunnen plaatsen, moet zowel de grootte van de sleutel als de rekencapaciteit beperkt genoeg zijn om voor de embedded CPU, RAM en I/O van de kaart. Immers, de privé-sleutel mag de kaart nooit kunnen verlaten en moet dus permanent zijn opgeslagen op meestal een EEPROM. Daarom is Falcon een goede kandidaat omdat het aan al dit soort eisen voldoet. 

Complexiteit

Hoewel het dus mogelijk lijkt kwantum-veilige algoritmes te ontwikkelen en in te zetten, wordt het crypto-vakgebied steeds complexer. Niet eens zozeer de computer-wetenschappelijke complexiteit, maar vooral de veel vagere en subjectievere notie hoe deze veilige en efficiënte algoritmes te gebruiken in een wereld van kwantummechanica. Het is voor deskundigen al lastig deze virtuele werelden te ‘begrijpen’ en te blijven overzien. De wereld van kwantumcomputing, blockchain, crypto en digitale identiteiten uitleggen aan het gewone publiek is kwadratisch moeilijker. 

De partijen (of landen) die het best deze nieuwe technologie in alle breedte kunnen overzien en inzetten, hebben zeker een strategische voorsprong. Er zijn personen die waarschuwen voor de ‘crypto-apocalypse’ die op termijn zou kunnen plaatsvinden. Daarom is het goed dat security en beveiliging zich voorbereiden op deze nieuwe cybertechnieken en hiervoor weerbare oplossingen met een hoog herstellingsvermogen ontwikkelen. Cybersecurity gaat – ook met de nieuwe metaverse – een nieuwe fase in en daarom moeten we anticiperen op die potentiële problemen. Met Falcon lijken we een handtekening-algoritme te hebben dat ook in de post-quantum wereld onbreekbaar blijft. Uiterst belangrijk voor kritische informatie-systemen, e-commerce, betaalkaarten, cryptomunten, elektronische handtekeningen en online stemmen. Quantum, crypto en metaverse zijn immers geen science-fiction meer  . . . 

Photo by David Nitschke on Unsplash