Kwantumcomputer steelt je codes
Het geld op je rekening en je mails zijn beveiligd met codes op basis van grote priemgetallen. Maar nu hebben Chinese onderzoekers aangetoond dat kwantumcomputers straks jouw codes kunnen kraken. Ontdek hoe de race tussen codemakers en -krakers zich toespitst.

Bliep! In een fractie van een seconde gaat de informatie van je Visa-kaart naar de kaartlezer van de winkel, en je aankoop is voltooid.
In die korte tijd worden je gegevens via internet naar Visa en je bank gestuurd, en zelfs als iemand ze onderweg onderschept, kun je gerust zijn. De informatie is versleuteld met extreem grote priemgetallen die een hacker pas na miljoenen jaren ontrafeld zou kunnen hebben.
Hierdoor is zo’n code vrijwel niet te kraken en zijn je gegevens veilig.
Maar daar komt wellicht verandering in. Chinese onderzoekers hebben onlangs aangetoond dat de kwantumcomputer straks misschien snel genoeg is om codes te kunnen kraken die de toegang tot onder andere je bankrekening beveiligen.
We moeten daarom nieuwe manieren vinden om vertrouwelijke informatie te versleutelen, en ook op dit vlak biedt de kwantummechanica uitkomst.
De strijd tussen de codemakers en -krakers gaat een heel nieuw tijdperk in, met wapens die beide partijen vinden in de wonderlijke kwantumwereld van de deeltjesfysica.
Codemakers lopen weg
De historische wedloop tussen makers en krakers van codes gaat ver terug. Telkens als codemakers nieuwe manieren vinden om hun berichten te versleutelen, is het slechts een kwestie van tijd voordat de codes worden gekraakt.
Maar in 1977 namen de codemakers een gigantische voorsprong. Dit gebeurde met de ontwikkeling van het zogeheten RSA-cryptosysteem, dat is genoemd naar de uitvinders ervan, de wiskundigen Ron Rivest, Adi Shamir en Len Adleman.
Codestrijd is al duizenden jaren aan de gang
Door de geschiedenis heen hebben codemakers allerlei inventieve versleutelingssystemen ontwikkeld, maar telkens bleken de codes kraakbaar – totdat het huidige RSA-systeem kwam.
3e eeuw v.Chr.: Leren strook verbergt de boodschap
De scytale bestaat uit een leren strook die om een stok gewikkeld is, waarna er dwars overheen wordt geschreven. Alleen de strook gaat naar de ontvanger, die weet hoe dik de stok moet zijn waarmee de boodschap ontcijferd kan worden.
Veiligheid: Zeer gering.

1e eeuw v.Chr.: Caesar verplaatst de letters
Het Caesarcijfer is gebaseerd op het alfabet. Bij versleuteling wordt elke letter vervangen door een andere letter een bepaald aantal posities verder naar voren of naar achteren in het alfabet. Het aantal plaatsen is de sleutel tot het cijfer.
Veiligheid: Slecht.

15e eeuw: Codeermachines verhogen de veiligheid
In 1470 vond de Italiaan Leon Battista Alberti een ‘codeermachine’ uit voor polyalfabetische encryptie, waarbij de code in het bericht verandert na elke zoveelste letter. Het alfabet staat op twee schijven die ten opzichte van elkaar draaien.
Veiligheid: Slecht tot gemiddeld.

18e eeuw: Geheimen worden in plakjes gesneden
In 1795 vond de Amerikaan Thomas Jefferson een codeercilinder uit met een aantal schijven op een as. De letters van het alfabet staan in een willekeurige volgorde op elke schijf, en alleen de verzender en ontvanger kennen de juiste volgorde van de schijven.
Veiligheid: Goed.

20e eeuw: Enigma bepaalt de loop van de oorlog
De codemachine Enigma werd ontwikkeld in de jaren 1920, en nazi-Duitsland gebruikte haar in de oorlog veel voor militaire geheimen. Versleuteling gebeurt via een complex polyalfabetisch systeem en alleen de verzender en ontvanger kennen de instellingen.
Veiligheid: Zeer goed.

Vandaag: Iedereen is afhankelijk van encryptie
We gebruiken elke dag encryptie om onze privé-informatie op internet te beschermen, bijvoorbeeld bij het online bankieren of shoppen. De informatie wordt versleuteld via het RSA-systeem, dat gebaseerd is op zeer grote priemgetallen.
Veiligheid: Extreem goed.

Het RSA-systeem gaat ervan uit dat voor het versleutelen en decoderen van informatie twee sleutels nodig zijn.
De verzender gebruikt een openbare sleutel voor de versleuteling, dus voor het omzetten van gewone tekst in codetaal die onbegrijpelijk is voor anderen, zelfs als ze de openbare sleutel hebben.
Voor het decoderen is namelijk een privésleutel nodig, waar alleen de rechtmatige ontvanger toegang toe heeft.
Twee sleutels beveiligen je geheimen
RSA-encryptie beschermt onder andere je pinbetalingen en online communicatie. De beveiliging is gebaseerd op twee sleutels, één openbaar en één privé, gevormd uit grote priemgetallen.

1. Alice versleutelt het bericht aan Bob
Alice stuurt een bericht naar Bob en versleutelt het met zijn openbare sleutel (rood). Dit is alsof je een bericht in een koffer doet. De sleutel is een groot getal (C), dat bestaat uit twee vermenigvuldigde priemgetallen (A en B).

2. Eva probeert de boodschap te stelen
Omdat de koffer met het bericht is vergrendeld met een openbare sleutel, kan iemand hem onderscheppen – Eva kan de koffer pakken, maar omdat ze alleen toegang heeft tot Bobs openbare sleutel, kan ze hem onmogelijk openen.

3. Bob decodeert het bericht van Alice
Naast de openbare sleutel heeft Bob een privésleutel (groen) die de koffer kan openen. De privésleutel is gebaseerd op een van de twee priemgetallen (A). Het zou Eva duizenden jaren kosten om de privésleutel te berekenen.
De basis voor RSA-versleuteling is het priemgetal, dat wil zeggen een getal dat alleen deelbaar is door 1 en zichzelf. Voorbeelden daarvan zijn 2, 3, 5, 7, 11 en 13 – of iets groter: 971, 977, 983, 991 en 997.
Om de twee RSA-sleutels te maken, worden echter veel grotere priemgetallen gebruikt, vaak met meer dan 100 cijfers. De twee priemgetallen worden met elkaar vermenigvuldigd en het resultaat – een zogeheten RSA-getal – wordt gebruikt om de openbare sleutel te maken. De privésleutel daarentegen is gebaseerd op zowel het RSA-getal als de twee priemgetallen.
Het geniale van het systeem is dat het simpel is om de sleutels te maken, maar bijna onmogelijk om de privésleutel te berekenen aan de hand van de openbare.
2 grote priemgetallen worden vermenigvuldigd. Om de RSA-code te kraken, moeten hackers uitzoeken welke getallen dat zijn.
Dat komt doordat de priemgetallen makkelijk met elkaar vermenigvuldigd kunnen worden, terwijl het vinden van de twee vermenigvuldigde getallen zeer moeilijk is. Factorisatie, zoals het proces heet, vereist bergen rekenkracht en tijd.
Met de grote priemgetallen waarmee onze gegevens op het internet beschermd worden, zouden zelfs de snelste supercomputers van nu duizenden jaren nodig hebben om de code te kraken. Dit maakt RSA-versleuteling extreem veilig.
Deskundigen zijn het er echter over eens dat het RSA-systeem op instorten staat. Hackers krijgen een krachtig nieuw wapen in handen: de kwantumcomputer.
De kwantumcomputer neemt kort gezegd een fundamentele beperking van de klassieke computer weg.
Van de processor in je mobiel tot de krachtigste supercomputers van NASA, ze werken met binaire codes: rijen nullen en enen. De meest basale eenheid van de computer – een bit – kan slechts één van de twee posities tegelijk innemen, 0 of 1.
Bij de kwantumcomputer heet de kleinste eenheid een qubit, en die heeft een stel bijzondere eigenschappen uit de kwantumfysica. Hier kunnen atomen of kleine deeltjes als elektronen en fotonen in meerdere toestanden tegelijk verkeren, wat we superpositie noemen.
Een qubit kan dus niet alleen 0 of 1 zijn, maar ook een combinatie van beide, waardoor de kwantumcomputer een ongelooflijk hoge rekensnelheid krijgt.

De kleinste eenheid van informatie in een gewone computer is een bit (links), die een waarde 1 of 0 heeft. Kwantumcomputers zijn gebaseerd op de qubit (rechts), die een combinatie kan zijn van beide waarden tegelijk.
Daarom vrezen de codemakers dat de kwantumcomputer de veiligheid van RSA-sleutels zal bedreigen – wat Chinese onderzoekers ook hebben bewezen in een nieuw experiment.
Zoeken naar de heilige graal
Het experiment werd geleid door Bao Yan van State Key Laboratory of Mathematical Engineering and Advanced Computing. Zijn team ontwikkelde een algoritme dat RSA-getallen kan factoriseren door het rekenwerk te verdelen tussen een gewone computer en een kwantumcomputer.
De kwantumcomputer deed alleen de tijdrovende stappen in de berekeningen, en hoefde daarom niet zoveel qubits te bevatten als anders nodig zou zijn.
Met drie qubits factoriseerde het team het getal 1961, met vijf qubits kraakten ze het getal 48.567.227, en met tien qubits achterhaalden ze de twee priemfactoren van het getal 261.980.999.999.226.229.
En dat is nog maar het begin. Zoals ze in hun artikel schrijven: ‘Wij denken dat een kwantumcircuit met 372 qubits een RSA-2048 kan uitdagen.’
Met zijn 617 cijfers is RSA-2048 het grootste van alle RSA-getallen – en dus de heilige graal voor wiskundigen die met dit type factorisatie werken. Het getal heet zo omdat er 2048 bits nodig zijn om het met een binaire code te beschrijven.
54 grote RSA-getallen werden er in 1991 gemaakt. 31 zijn er nog niet gekraakt, zoals de grootste, RSA-2048.
Samen met andere RSA-getallen werd RSA-2048 in 1991 vrijgegeven door het Amerikaanse beveiligingsbedrijf RSA Laboratories. Dit was een onderdeel van de wedstrijd ‘RSA Factoring Challenge’, waarbij wiskundigen werd gevraagd het RSA-systeem uit te dagen – en daarmee aan te tonen hoe veilig het is.
Als extra stimulans bood het bedrijf veel geld aan, waaronder 200.000 dollar voor de factorisatie van RSA-2048.
De wedstrijd eindigde in 2007, maar van de 54 RSA-getallen zijn er 31 nog steeds niet gekraakt.
In 2020 slaagden Amerikaanse en Franse onderzoekers erin het laatste en grootste 250-cijferige getal tot nu toe te factoriseren. De taak was in een paar maanden voltooid – door tienduizenden computers, het equivalent van één computer die er 2700 jaar over doet.
Er is echter nog een eind te gaan tot de 617 cijfers van RSA-2048 zijn gekraakt, dus om de heilige graal te vinden, hebben wiskundigen waarschijnlijk de hulp nodig van krachtige kwantumcomputers.
Al in 1994 bedacht de Amerikaanse wiskundige Peter Shor een algoritme waarmee kwantumcomputers in theorie in korte tijd grote RSA-getallen kunnen ontbinden in factoren. Anderen toonden later aan dat de methode weliswaar werkt – maar tot nu toe alleen met zeer kleine getallen. Eigenlijk is 21 (3 x 7) het grootste getal dat met succes is gefactoriseerd.
Het punt is dat het algoritme van Shor extreem veel qubits nodig heeft om op grote schaal betrouwbaar te werken: deskundigen schatten dat er 1 miljard qubits nodig zijn om RSA-2048 te kraken.
De onderzoekers brachten dit in 2021 terug tot 20 miljoen qubits door enkele processen in dit algoritme te versimpelen, maar ook dat is nog lang niet binnen het bereik van huidige kwantumcomputers. De grootste tot nu toe is IBM’s Osprey uit 2022, die 433 qubits bevat.

IBM’s kwantumcomputer Osprey is met 433 qubits de krachtigste ter wereld. Dat kan genoeg zijn om de RSA-versleuteling te kraken.
Daarom is het Chinese resultaat zo opmerkelijk. Als Bao Yan en zijn collega’s gelijk hebben dat 372 qubits genoeg is om de klus te klaren, zal RSA-2048 veel eerder falen dan wiskundigen hadden voorzien – misschien zelfs in de komende tien jaar.
Fotonen verbergen geheimen
Als RSA-2048 gekraakt wordt, is dat een bedreiging voor onze online gegevensbeveiliging en zal het nodig zijn om het RSA-systeem te vervangen door iets nieuws.
De allerbeste oplossing is – net als kwantumcomputing – gebaseerd op een paar bijzondere eigenschappen van de deeltjesfysica. Via de polarisatie van fotonen kan informatie worden versleuteld die niemand anders dan de rechtmatige ontvanger kan decoderen.
Als een hacker de fotonen op weg van verzender naar ontvanger zou meten, zou hij hun polarisatie veranderen, waardoor de aanval onmiddellijk wordt ontdekt.
Encryptie maakt een kwantumsprong
De versleuteling van de toekomst maakt gebruik van een kwantummechanisch verschijnsel waardoor lichtdeeltjes, fotonen, bij meting veranderen. Zo wordt een codesleutel gemaakt die anderen nooit kunnen bemachtigen.

1. Alice stuurt fotonen naar Bob
Alice stuurt fotonen door een filter en wisselt willekeurig tussen twee standen. In de ene stand gaan verticaal en horizontaal gepolariseerde fotonen ongewijzigd door, terwijl schuin gepolariseerde fotonen willekeurig in verticaal of horizontaal veranderen. In de andere stand gaan de schuin gepolariseerde fotonen ongewijzigd door, en veranderen de horizontale en verticale.

2. Fotonen nemen bits mee
Elk van de 13 fotonen (geel) die Alice verstuurt heeft een afgesproken waarde. Alice en Bob spreken af dat horizontaal gepolariseerde fotonen en schuin gepolariseerde fotonen met een hoek van 45 graden de waarde 0 hebben. Verticaal gepolariseerde fotonen en schuin gepolariseerde fotonen met een hoek van -45 graden hebben de waarde 1. Als Alice de fotonen meet, krijgt ze dus een 1 of 0.

3. Bob meet de fotonen
Als Bob de fotonen meet, doet hij dat met een filter zoals Alice heeft gebruikt. Voor elk foton zet hij het filter willekeurig in een van de twee standen. Als hij klaar is met meten, vertelt hij Alice wat zijn instellingen waren. Alice vergelijkt ze met haar eigen instellingen en vertelt Bob in welke gevallen hun filters op dezelfde stand stonden.

4. Beveiligde codesleutel wordt gegenereerd
Alice en Bob schrappen nu alle metingen waarbij hun instellingen verschillend waren. Ze houden een code van nullen en enen (groen) over die alleen zij kennen, in dit geval 010111. Ze testen de code door een klein deel ervan te vergelijken. Als hij identiek is, weten ze dat niemand anders de fotonen heeft gemeten. Ze kunnen nu de hele code gebruiken om hun communicatie te versleutelen.
Kwantumversleuteling heeft als groot voordeel dat de infrastructuur al bestaat. De fotonen kunnen worden verzonden via glasvezelkabels in het glasvezelnetwerk, dat nu wijdverbreid is.
Daarna is het een uitdaging om zend- en ontvangapparatuur te ontwikkelen die praktisch, klein en goedkoop genoeg is om geïnstalleerd te kunnen worden in alle schakels die via internet vertrouwelijke informatie uitwisselen.
De vraag is of dat snel genoeg zal gaan. Na meer dan 40 jaar veilige RSA-codering is de race begonnen tussen codemakers en hackers – en de winnaar zal de partij zijn die de eigenaardigheden van de kwantummechanica het beste uitbuit.