Inleiding
Kwantumcomputing is een relatief jong onderwerp binnen de computerwetenschap. De eerste onderliggende concepten werden dertig jaar geleden geïntroduceerd door de beroemde natuurkundige Richard Feynman. In de tussenliggende tijd hebben we veel geleerd over het programmeren van kwantumcomputers en inmiddels kunnen we ook verstandige dingen zeggen over de theoretische rekenkracht ervan. In het afgelopen decennium hebben veel universiteiten kwantumcomputing dan ook als vak opgenomen in hun curricula.
Ondanks al die verworvenheden is er een cruciaal onderdeel op dit gebied dat we nog steeds niet onder de knie hebben: het daadwerkelijk bouwen van een kwantumcomputer. De qubits die de hardwarebasis moeten vormen onder deze nieuwe systemen, zijn nog niet in voldoende aantallen te maken en ook niet lang genoeg houdbaar om er grotere kwantumtoepassingen op te draaien. Op dit moment kan ongeveer een handvol bruikbare qubits tegelijk worden gemaakt en overleven ze niet langer dan een paar seconden. Daarmee is de inzet van de huidige kwantumcomputers nog beperkt tot heel specifieke toepassingen, zoals cryptografie.
De NSA ziet dat ook in en is begonnen met een eigen onderzoeksproject om een werkende kwantumcomputer te maken, met een budget van omgerekend 58 miljoen euro. Kwantumcomputers zouden, als ze er eenmaal zijn, veel encryptie razendsnel kunnen kraken. Maar wat is kwantumcomputing eigenlijk? In dit artikel gaan we dieper in op deze vraag.

Bits, qubits en superposities
Bits
Een qubit, kort voor quantum bit, is als bouwsteen van de kwantumcomputer vergelijkbaar met de gewone bit, die de basis vormt van al onze huidige computertechnologie. Naast de vele parallellen zijn er echter ook cruciale verschillen.
Gewone bits of binary digits kunnen alleen de waarde 0 of 1 hebben. Hoe een bit vervolgens in een computer wordt geïmplementeerd, is in principe onafhankelijk van de logische waarde ervan. Zo wordt digitale informatie in computerchips overgedragen en bewerkt door middel van signalen van verschillende spanningsniveaus, bijvoorbeeld 0 en 1,2 volt.
Ook in traditionele geheugens en op verbindingskabels wordt met verschillende spanningen gewerkt. Ouderwetse harde schijven daarentegen maken gebruik van magnetische polarisatie om dezelfde digitale informatie op te slaan. Zo zou je net zo goed een computer kunnen bouwen die met waterdruk en kleppen, met mechanische onderdelen of met knikkers, rolbanen en poortjes werkt. De logische principes van de eerste digitale computers waren ook niet anders dan die van de huidige machines, alleen werden in plaats van transistoren eerst relais (elektromagnetische schakelaars) en later vacuümbuizen, de voorlopers van de transistor, gebruikt.
In de praktijk hebben ontwerpers voor de opslag, overdracht en bewerking van digitale informatie voor elk onderdeel een implementatie gekozen die aansluit bij de toepassing, de benodigde snelheid en capaciteit, en het beschikbare budget. Al die afwegingen zien we bijvoorbeeld terug in de geheugenhiërarchie van een systeem.
Qubits
Qubits zijn fundamenteel anders dan gewone bits. Ze zijn ontwikkeld volgens de kwantummechanica, waar rekeneenheden niet alleen de waarde 0 of 1 kunnen aannemen, maar ook een beetje de ene waarde en tegelijk een beetje de andere waarde. Een qubit kan bijvoorbeeld voor de ene helft de waarde 0 hebben en voor de andere helft de waarde 1, of voor twee derde de waarde 0 en voor één derde de waarde 1.
De waarde van een qubit kan tegelijk een beetje 0 en een beetje 1 zijn
Voor wie bekend is met statistische kansverdelingen, is een qubit te vergelijken met een stochast. Ook daarvan is de waarde zelf niet exact bekend; je weet alleen iets over de kansverdeling ervan. Een cruciaal verschil tussen een stochast en een qubit is dat die eerste een probabilistisch of statistisch concept is en die laatste een kwantummechanisch concept. Dat betekent dat de waarde van een stochast weliswaar niet precies bekend is, maar dat wel voor elke mogelijke waarde vaststaat hoe groot de kans daarop is. Terwijl de waarde van een qubit tegelijk een beetje 0 kan zijn en een beetje 1. Bij kwantumcomputers spreekt men dan ook niet van kansverdelingen maar van superposities.
Superposities
De kracht van die superposities wordt duidelijker als we verschillende qubits bundelen tot een reeks, op vergelijkbare wijze als waarop in de traditionele deterministische wereld bits worden samengepakt tot bytes. Kijken we bijvoorbeeld naar een rijtje van drie gewone bits, dan kan dat een van acht verschillende waarden aannemen: 000, 001, 010, 011, 100, 101, 110, 111.
Drie gebundelde qubits hebben tegelijkertijd een beetje van elk van deze acht waarden. Hoewel de echte kwantumcomputeraars dit slordig zouden vinden, noteren we de fracties voor de acht verschillende waarden bijvoorbeeld als volgt: 1/4, 0, 0, 1/4, 0, 1/2, 0, 0. Dat betekent dat de drie qubits voor een kwart de waarde 000 hebben, voor een kwart de waarde 011 en voor de helft de waarde 101.
Zoals in de uitweiding over golffuncties op de volgende pagina wordt uitgelegd, zijn stochasten en qubits wiskundig gezien niet gelijkwaardig. In een superpositie kunnen de fracties namelijk ook negatief zijn. Juist die operaties maken berekeningen mogelijk die, zeer waarschijnlijk, niet met een klassieke machine uitgevoerd kunnen worden.
Genormaliseerde golffuncties en amplitudes
Genormaliseerde golffuncties
Hoewel de afzonderlijke kansen net als bij stochasten opgeteld een totaal van 1 moeten vormen, zijn stochasten en qubits wiskundig gezien niet gelijkwaardig. Met deze eerste beschrijving van een qubit doen we de onderliggende kwantummechanica dan ook ernstig tekort. In werkelijkheid moeten we de status van een qubit namelijk beschrijven met een zogenoemde genormaliseerde golffunctie.
Voor de natuurkundig geïnteresseerden: golffuncties beschrijven de kwantummechanische toestand van de subatomaire deeltjessystemen waarop kwantumcomputers gebouwd worden. Denk dan aan de elektronen en fotonen die we al kennen uit het atoommodel van Bohr, later verfijnd in het Standaardmodel, waarin we inmiddels tientallen verschillende smaken quarks, leptonen en bosonen aantreffen.
De toevoeging 'genormaliseerd' wil niet meer zeggen dan dat die golfvergelijking zodanig is geschaald dat het totaal van alle kansen op een specifieke waarde, oftewel de kansmassa, inderdaad gelijk is aan 1.
Amplitudes
De golffunctie specificeert voor elke afzonderlijke waarde van een qubit, 0 en 1, een complex getal, de amplitude, waaruit vervolgens weer de kans op deze waarde kan worden afgeleid. Hieronder zie je de golffunctie voor een enkele qubit staan.
Omdat de amplitudes, alfa en bèta, complexe getallen zijn, zijn er verschillende onderliggende kwantummechanische toestanden, die wel allemaal dezelfde kansverdeling hebben. Een cruciaal verschil met de stochastische wereld is dat de fracties berekend worden door de complexe amplitudes te kwadrateren en dat deze dus ook negatief kunnen zijn. Zodra we een superpositie proberen te bekijken (meten), neemt deze een van zijn niet-kwantummechanische, deterministische waarden aan. We noemen dat het ineenstorten van de superpositie. Op dat moment verandert de kwantummechanica dus in statistiek.
Rekenkracht, kansverdeling en kwantumberekening
Rekenkracht
Superposities maken het mogelijk om met een heleboel waarden tegelijk te rekenen. Voor één qubit zijn dat twee waarden: 2^1, 0 en 1, voor drie qubits zijn dat acht verschillende waarden: 2^3, en voor tien qubits zijn dat al 1024 verschillende waarden: 2^10. In wiskundige termen, het aantal verschillende waarden dat een superpositie tegelijk kan bevatten is exponentieel ten opzichte van het aantal qubits en dat is precies waar de extra rekenkracht van de kwantumcomputer zijn oorsprong vindt.
Het antwoord van een kwantumberekening kan echter meestal niet direct uitgelezen worden. Zodra je een superpositie bekijkt, stort deze immers ineen tot een van de concrete waarden binnen die superpositie. Op dat moment wordt de overgang van de kwantummechanische naar de statistische wereld gemaakt. Welke specifieke waarde die ineenstorting oplevert, kun je op voorhand niet weten. Wel is het zo dat voor elke bitwaarde de kans dat zij optreedt, overeenkomt met de grootte van zijn gekwadrateerde amplitude, wat we op de vorige pagina de fractie noemden.
Kansverdeling
Dat betekent dat je een kwantumberekening meer dan eens moet uitvoeren, waarna je de kwantummechanische waarde van de laatste superpositie terug kunt afleiden uit de onderlinge verhoudingen van alle verschillende concrete antwoorden die je hebt gemeten. Deze komen immers overeen met de kansverdeling van die superpositie. Een goed kwantumalgoritme leidt dus tot een superpositie waarin het antwoord is verborgen in de kansverdeling. Dat kan bijvoorbeeld betekenen dat op een bepaalde qubit in een derde van de gevallen de waarde 0 gemeten wordt en in twee derde van de gevallen de waarde 1. De kans dat je zo inderdaad het juiste antwoord vindt, is eenvoudig te vergroten door de kwantumberekening vaker uit te voeren.
Zodra je een superpositie bekijkt, stort deze ineen
Kwantumtheoretici hebben inmiddels slimme algoritmen ontwikkeld, waarbij alleen de juiste berekeningen en ondubbelzinnige antwoorden overblijven. Daarbij maken ze onder andere gebruik van interferentie. Op die manier hoeft een berekening nog maar één keer uitgevoerd te worden om direct het goede antwoord te geven.
Kwantumberekening
Bewerkingen op qubits verlopen ook heel anders dan de operaties die we kennen uit de deterministische wereld. Gewone bits worden steeds op logische wijze met elkaar vergeleken: 'Hebben twee bits allebei de waarde 1 (AND), heeft minstens een van de bits de waarde 1 (OR), hebben alle bits de waarde 0 (NOR)?' enzovoort. Die logische operaties worden uitgevoerd op elektrische signalen door transistors die in siliciumchips zijn vastgelegd en in een bepaald patroon met elkaar zijn verbonden. Zo worden logische poorten gecombineerd tot registers, rekeneenheden, state machines en alle andere digitale onderdelen die tezamen bijvoorbeeld een processor vormen.
Berekeningen door een kwantumcomputer worden altijd binnen dezelfde groep qubits uitgevoerd. Een superpositie kan niet worden gekopieerd of beter gezegd, bij het kopiëren gaat het origineel verloren. Een bewerking verandert dus de bestaande superpositie. Net als voor klassieke digitale systemen zijn er ook voor kwantumcomputers basisoperaties waarmee alle berekeningen uitgevoerd kunnen worden.
Modellering en berekenbaarheid
Modellering
Er zijn diverse manieren om kwantumbewerkingen te modelleren. De analytisch-wiskundige theorie is gebaseerd op de eerder beschreven golffuncties: lineaire combinaties van basiswaarden (notatie: |0> en |1>), met complexe coëfficiënten, de amplitudes. 
De bol van Bloch vormt dan een meetkundige representatie van een enkele qubit. Aan de bovenkant en onderkant zijn respectievelijk de waarden |0> en |1> weergegeven. Een superpositie is een punt ergens op het oppervlak van de bol, waarbij de hoogte (de breedtecirkel) de verhouding van de amplitudes en dus de kansen van de twee basiswaarden bepaalt. Dat het superpositiepunt per se ergens op het oppervlak van de bol rond de z-as moet liggen, met een vaste afstand tot de oorsprong, is het gevolg van de randvoorwaarde dat de som van de kansen altijd 1 is. In deze modellering bestaan (eenvoudige) kwantumbewerkingen uit meetkundige rotaties, verplaatsingen van het superpositiepunt over het boloppervak.
Voor techneuten is het natuurlijk veel handiger om over kwantumbewerkingen te praten in de bekende termen van poorten en circuits. Barenco heeft symbolen ontwikkeld die gebruikt kunnen worden om bewerkingen vast te leggen in diagrammen. Hieronder zie je bijvoorbeeld een 'Controlled NOT'-poort (CNOT). De negatieoperatie (|0> wordt |1> en andersom) op de onderste qubit wordt alleen uitgevoerd als de bovenste qubit de waarde |1> heeft.
Hoewel naarstig gezocht wordt naar verschillende, natuurkundige, implementatievormen om deze kwantumoperaties daadwerkelijk te kunnen uitvoeren, is ondersteuning van de volledige reeks niet noodzakelijk. Net zoals je in de traditionele informatica aan bijvoorbeeld een AND-poort en een NOT-poort genoeg hebt om alle schakelingen te kunnen bouwen, zijn voor een kwantumcomputer drie poorten voldoende.
Berekenbaarheid
Naar aanleiding van de honderdste geboortedag van Alan Turing publiceerden we medio 2012 al een uitgebreid verhaal over Turing-machines en de theorie van berekenbaarheid en complexiteit van problemen en algoritmen. Om op een vergelijkbare manier over de rekenkracht van kwantumcomputers te kunnen praten, heeft de natuurkundige David Deutsch de Quantum Turing Machine bedacht. Op vergelijkbare wijze is er een klasse van problemen gedefinieerd die met een kwantumcomputer in een redelijke tijd op te lossen zijn. Dat wil zeggen, in polynomiale tijd ten opzichte van de lengte van de input.
De figuur hiernaast laat zien hoe deze klasse BQP of Bounded Error Quantum Polynomial Time zich verhoudt tot de traditionele complexiteitsklassen. Althans, voor zover we dat nu denken te weten.
Hoewel dat nog niet bewezen is, zoals overigens voor de meeste relaties tussen de verschillende complexiteitsklassen geldt, lijkt het erop dat kwantumcomputers inderdaad problemen kunnen oplossen die we met de huidige deterministische computers, klasse P, niet aankunnen. Sterker nog, inmiddels zijn er al diverse kwantumalgoritmen bekend voor problemen waarvoor nog niemand een deterministisch algoritme heeft kunnen bedenken. Aan de andere kant heeft nog niemand een kwantumalgoritme gevonden waarmee ook de moeilijkste problemen, in de klasse NP Compleet, in redelijke tijd oplosbaar worden. Het vermoeden is op dit moment dan ook dat kwantumcomputers fundamenteel krachtiger zijn dan gewone computers, maar ook weer niet zo krachtig dat ze de moeilijkste problemen voor ons oplossen.
Algoritme van Shor
Een van de interessantste kwantumalgoritmen die we nu kennen, is het algoritme van Shor, gebaseerd op kwantum-Fouriertransformaties. Daarmee kunnen de priemfactoren van een integer worden berekend. Deze factorisatie kan worden ingezet om een groot deel van de asymmetrische (public-key-) cryptografie die we nu op internet gebruiken, te kraken. Meest in het oog springend is de tls/ssl-beveiliging, die bij https en starttls wordt gebruikt. Hetzelfde geldt echter ook voor ssh en alle protocollen die via deze versleutelde verbindingen worden getunneld, en voor elektronische handtekeningen.
Zodra de eerste, echt bruikbare kwantumcomputer het licht ziet, zijn al deze beveiligingen in één klap waardeloos. De huidige public-key-technologie is namelijk gebaseerd op de moeilijkheid om het product van twee grote priemgetallen in zijn factoren te ontleden. Hoewel die kwantumcomputer nog niet bestaat, is het dus van cruciaal belang om nu al te werken aan de wiskundige theorie voor deze machines. Bijvoorbeeld om kwantum-proof algoritmen te vinden voor een nieuwe vorm van public-key-cryptografie, die wel bestand is tegen kwantumkrakers.
Verstrengeling
Was je al verbijsterd over superposities die tegelijk een beetje de ene waarde en een beetje de andere waarde aannemen, dan doet verstrengeling, entanglement, daar nog een schepje bovenop. Als ze eenmaal verstrengeld zijn, hoeven qubits niet meer bij elkaar in de buurt te zijn om zich toch als één superpositie te blijven gedragen. Veranderingen aan de ene qubit hebben direct consequenties voor de andere qubit. Sterker, een meting aan de een bepaalt bij de ineenstorting sneller dan het licht de waarde van de ander, in tegenstelling tot bijvoorbeeld de elektromagnetische en zwaartekrachtvelden in de klassieke mechanica, die zich met de snelheid van het licht uitbreiden.
Kwantumbeveiliging met een Nederlands tintje
Kwantumcomputers maken ook nieuwe beveiligde communicatiemethoden mogelijk. Kwantummechanische verstrengeling kan bijvoorbeeld gebruikt worden om absoluut veilige communicatiekanalen op te zetten. Informatie kan onderweg niet worden afgeluisterd door een man-in-the-middle zonder dat dit aan de uiteinden van de verbinding te zien is.
Het Majoranadeeltje zou een geschikte bouwsteen voor de qubits kunnen zijn
Hiertoe wordt eerst een serie paarsgewijs verstrengelde qubits over de twee partijen verdeeld, quantum key distribution, om die vervolgens te laten ineenstorten tot hun definitieve waarde. Beide partijen hebben nu dezelfde, of nauwkeuriger gezegd, tegenovergestelde sleutel. Ze kunnen dat controleren door een deel van de zo verkregen bits met elkaar te vergelijken. Komen die bits inderdaad met elkaar overeen, dan weten de partijen zeker dat niemand anders die sleutel heeft. Een man-in-the-middle kan de waarde van een verstrengelde qubit onderweg immers niet achterhalen zonder deze te laten ineenstorten. Op deze manier wordt het distributieprobleem voor symmetrische sleutels opgelost. Dat is waarvoor asymmetrische cryptografie vaak wordt ingezet: het veilig uitwisselen van een symmetrische sessiesleutel.
Belangrijke kanttekening hierbij is dat dergelijke kwantumsystemen wel kunnen worden gebruikt om sleutels uit te wisselen, maar niet om sneller dan het licht te communiceren. De ineenstorting aan twee zijden gebeurt inderdaad sneller dan het licht, maar doordat de concrete uitkomst door het toeval wordt bepaald, kan daarbij geen informatie worden overgedragen.
Wetenschappelijk onderzoek
In de afgelopen jaren zijn her en der bij universiteiten en andere onderzoeksinstellingen de eerste kwantumnetwerken gebouwd waarmee verstrengelde communicatiekanalen en teleportatie van kwantumtoestanden mogelijk worden. Zo lieten onderzoekers uit het Britse Cambridge vorig jaar zien dat het mogelijk is om verstrengelde fotonen via een regulier glasvezelnetwerk te verspreiden.
In Nederland wordt theoretisch onderzoek naar kwantumalgoritmen en complexiteit uitgevoerd door het CWI. Daar draait een groep onder leiding van Harry Buhrman mee met de wereldtop op dit gebied. Andere belangrijke onderzoeksgroepen bevinden zich in Zürich (ETH), Oxford en Cambridge in de UK, Cambridge in de VS (MIT), Berkeley, Waterloo (Canada), Singapore en Beijing.
Majoranadeeltjes
Ook wat de onderliggende hardware betreft is Nederland een belangrijke speler. Een jaar geleden verwierf de Delftse onderzoeksgroep van Leo Kouwenhoven wereldfaam met de ontdekking van het Majoranadeeltje. Behalve voor het Standaard Model heeft dit deeltje in het bijzonder waarde voor ontwikkelaars van kwantumsystemen. Het zou namelijk wel eens een geschikte bouwsteen voor de qubits kunnen zijn.
Ook elders in de wereld gebeurt van alles. Tweakers brengt regelmatig nieuws over technische en wetenschappelijke doorbraken op dit gebied. In die berichten kunnen we lezen hoe wetenschappers steeds meer en steeds stabielere qubits kunnen creëren, opslaan en transporteren. Bovendien lijkt het Canadese bedrijf D-Wave inmiddels inderdaad de eerste commerciële kwantumcomputer te kunnen aanbieden.
De 1bit-kwantumcomputer
Wie nu al zijn eigen, betaalbare kwantumcomputer wil aanschaffen, kan daarvoor terecht bij het Zwitserse bedrijf ID Quantique. Dat verkoopt onder andere een random-nummergenerator in de vorm van een kastje met usb-aansluiting of een pci(-e)-insteekkaart. Het enige wat hun Quantis-systeem doet, is steeds een qubit in superpositie (1/2, 1/2) brengen om deze vervolgens te laten ineenstorten tot een 0 of een 1. Op die manier wordt met een snelheid van 4Mbit/s of 16Mbit/s een willekeurige stroom enen en nullen gegenereerd.
Vergis je niet, deze 1bit-kwantumcomputer heeft een heel belangrijke functie. Voor traditionele en dus deterministische computers is het genereren van een echte random reeks namelijk een schier onmogelijke opgave. Zo heeft RAND Corporation, een bekend Amerikaans militair onderzoeksinstituut, in de jaren vijftig een boek uitgegeven en heruitgegeven in 2001 met daarin een miljoen random getallen. Het fungeerde decennia lang als standaardwerk in vooral de cryptografie en de statistiek. Tegenwoordig wordt meestal speciale hardware ingezet voor het genereren, en bewaren en gebruiken, van cryptografisch sleutelmateriaal voor serieuze en grootschalige toepassingen, denk aan dnssec.
Wearables
Hoe lang het nog duurt voordat bruikbare kwantumcomputers daadwerkelijk beschikbaar zijn, durven we niet te zeggen. Afhankelijk van wetenschappelijke doorbraken op dit gebied kan dat een paar jaar zijn of nog een paar decennia, maar dat ze eraan zitten te komen is zeker. Daarmee komt dan een fundamenteel andere computertechnologie beschikbaar.
Als de geschiedenis van de deterministische computers een goede voorspeller is, gaan we daarna een nieuw tijdperk in van steeds snellere en kleinere systemen. Wie weet maakt een kwantumrekeneenheid over twintig jaar standaard deel uit van onze smartphone of anderszins draagbare computer.