Natuurkundigen en technici zijn druk bezig componenten voor de quantumcomputer te bouwen, en misschien hebben we over tien jaar een werkend exemplaar. Maar vaak wordt vergeten dat ook het programmeren van een quantumcomputer iets totaal nieuws is. Onder de naam QuSoft gaan Nederlandse wiskundigen en informatici dit nu gezamenlijk verkennen.
“Je ziet nu heel veel aandacht voor quantumhardware, en maar weinig voor quantumsoftware. Maar dit laatste heb je nodig om de kracht van de quantumcomputer te benutten. En het maken van quantumsoftware is een stuk lastiger dan klassieke software”, zegt Harry Buhrman, computerwetenschapper aan het Centrum voor Wiskunde en Informatica (CWI) en aan de Universiteit van Amsterdam (UvA). Hij wil met QuSoft dit nog grotendeels braakliggende terrein ontginnen.
Stroomversnelling
QuSoft is de software tegenhanger van QuTech Dit is een conglomeraat van fysici aan de TU Delft, waar een bedrijf als Microsoft miljoenen in pompt. Zo grootschalig en kapitaalkrachtig zal QuSoft niet worden. Toch zal dit samenwerkingsverband van CWI, Vrije Universiteit en de Universiteit van Amsterdam, dat nu vijftien onderzoekers telt, uitgroeien tot 25 onderzoekers, later mogelijk tot veertig.
De laatste jaren is de ontwikkeling van de quantumcomputer in een stroomversnelling geraakt. Steeds meer componenten van die nu nog hypothetische, supersnelle computer worden gerealiseerd, en het lukt ook steeds beter om ze te laten samenwerken. Sommige experts durven te stellen dat we over een jaar of tien de eerste functionerende quantumcomputer hebben, en het zou best kunnen dat die dan in Delft staat. Dat het nu echt mogelijk lijkt om zo’n apparaat te bouwen, leidt tot groot enthousiasme onder de betrokken natuurkundigen. Maar velen onder hen vergeten voor het gemak, dat er ook nog lastige softwareproblemen opgelost moeten worden.
Quantumsoftware
De manier waarop een quantumcomputer rekent, verschilt fundamenteel van die van een klassieke computer. Kort door de bocht kun je stellen, dat de software van een klassieke computer elke klus opsplitst in een reeks simpele bewerkingen op een groot aantal individuele bits – die aan het begin elk de waarde 1 of 0 hebben – en de computer voert die achtereenvolgens uit.
Een quantumcomputer, echter, kan al met een vrij klein aantal qubits (bijvoorbeeld vijftig) functioneren, die samen in 250, ofwel ongeveer 1.000.000.000.000.000 gezamenlijke toestanden (‘superposities’) kunnen verkeren. De quantumsoftware voor een zekere klus bestaat uit een serie quantum-operaties die op enkele of paren qubits worden uitgevoerd.
Fysiek kun je je een qubit voorstellen als, bijvoorbeeld, één geïsoleerd elektron, die in twee toestanden kan voorkomen (spin up/spin down, vergelijkbaar met tegen de klok in/met de klok mee draaien) of in een superpositie van die twee. Eerst wordt de begintoestand van al die qubits in superpositie gebracht, bijvoorbeeld met pulsen radiostraling. Tenslotte wordt er een meting aan het hele systeem verricht, waardoor het in de toestand terechtkomt die correspondeert met het juiste antwoord.
Encryptie
Omdat het aantal mogelijke superposities verdubbelt met iedere extra qubit, zegt men dat de rekencapaciteit van een quantumcomputer exponentieel toeneemt met het aantal qubits. Maar het is veel te simpel om in het algemeen te stellen dat een quantumcomputer exponentieel sneller is dan een klassieke computer. Buhrman: “Niet elk probleem laat zich exponentieel versnellen. Je moet nu al onderzoeken wat quantumsoftware wel en niet kan, want als de quantumcomputer er is, is het te laat.”
Een mooi voorbeeld is het algoritme van Shor. Dat is een van de eerste quantumalgoritmes, dat de priemfactoren van een zeer groot getal exponentieel sneller berekent dan het snelste nu bekende klassieke algoritme. Een klein getal, bijvoorbeeld 182, in priemfactoren ontbinden is niet zo moeilijk. Want je probeert gewoon te delen door het kleinste priemgetal, 2, en vervolgens door de volgende priemgetallen 3,5,7,11,13,17,…. en dan vind je dat 182 = 2 × 7 × 13. Maar het is in de praktijk onmogelijk om van zeer grote getallen (van tweehonderd cijfers of meer) op die manier de priemfactoren te vinden. En dat is nu net waar de veiligheid van het RSA-geheimschrift op berust.
RSA is een heel speciaal geheimschrift, omdat het asymmetrisch is. Elke gebruiker heeft een persoonlijke, publieke sleutel (gebaseerd op een zeer groot getal N), die iedereen mag weten, en waarmee iedereen die persoon gecodeerde boodschappen kan sturen. Alleen de gebruiker heeft ook de geheime sleutel (gebaseerd op de priemfactoren van N), waarmee je die boodschappen kunt ontcijferen. Een groot deel van de beveiliging van internet- en betalingsverkeer maakt gebruik van RSA.
Buhrman herinnert aan zijn vakgenoot Gilles Brassard, die al jaren geleden waarschuwde: stel, de quantumcompter is er, en je kwam dan pas tot de ontdekking, dat je daarmee RSA-encryptie kunt kraken. Dat was een enorme ramp geweest.
Cryptografen waarschuwen, dat wie nu gegevens beveiligt die over tien jaar nog steeds beveiligd moeten zijn, geen gebruik meer moet maken van RSA. Want je mag aannemen dat de Amerikaanse National Security Agency en andere geheime diensten veel van die met RSA gecodeerde data nu al aan het opslaan zijn, in afwachting van de komst van de quantumcomputer.
Quantumverificatie
Het onderzoeksprogramma van QuSoft heeft vier poten. De eerste poot heet ‘Toepassingen voor weinig qubits’. Voordat de eerste volwaardige quantumcomputer er is, zal er geëxperimenteerd worden met prototypes met maar een paar qubits. Er geldt namelijk: hoe meer qubits, hoe lastiger om ze in superpositie te brengen en te houden. In principe programmeren informatici in termen van universele gates. Dat zijn de meest elementaire bewerkingen die een computer uitvoert. “Daarom werkt een algoritme op allerlei verschillend platforms en types computers. Maar als fysici in het lab nog maar negen qubits beschikbaar hebben, dan is programmeren zeer platform-afhankelijk.
Toch wil je met die paar qubits een simpel quantumalgoritme uitvoeren. Dat kunnen we samen met de mensen in het lab ontwikkelen. Tien qubits leveren een superpositie op met 210, ofwel ongeveer duizend mogelijke toestanden. Dan kun je nog narekenen wat het systeem precies doet. Over een paar jaar, met vijftig qubits en een superpositie van 250 toestanden, is dit zelfs op een klassieke supercomputer niet meer na te rekenen.”
Rommel
De tweede poot van QuSoft houdt zich bezig met ‘Cryptografie in de quantumwereld’. Het is al bekend dat het RSA-geheimschrift niet ‘quantumbestendig’ is. Welke andere geheimschriften zijn dat ook niet, en welke wel? Voor een ander veel gebruikt geheimschrift, AES, is geen quantumalgoritme bekend dat het kraken ervan exponentieel versnelt. Waarschijnlijk bestaat het ook niet, maar hoe zeker zijn we daarvan? En hoe bewijs je dat? Aan snelle, klassieke encryptie die toch quantumbestendig is, zal grote behoefte blijven bestaan. “Een belangrijk aspect van deze poot is ook, om te onderzoeken met wat voor nieuwe cryptografische ideeën we gebruik kunnen maken van quantummechanische effecten. Een voorbeeld is plaatsgebonden cryptografie, die we al aan het ontwikkelen zijn.”
De derde poot van QuSoft zoekt naar methodes om fouten uit quantumalgoritmes te halen en te controleren of een quantumcomputer eigenlijk wel doet wat hij moet doen. Deze ‘quantumverificatie’ is verre van eenvoudig. Klassieke software kun je stap voor stap laten uitvoeren door de computer, zodat je precies ziet wat er gebeurt. Dat is dan ook een veel gebruikte methode om fouten uit software te halen. “Maar als je een quantumcomputer halverwege de uitvoering van een programma stopt, geeft dat alleen maar rommel.” Het voortijdig uitlezen van de toestand van het quantumsysteem produceert namelijk random data.
Dat levert een curieus probleem op: je kunt wel denken dat je een slim quantumalgoritme bedacht hebt, en dat hebt vertaald in correcte software, maar hoe verifieer je dat? Buhrman: “Dat is niet meer op de klassieke manier te controleren.” Hoe moet het dan wel? Buhrman maakt een vergelijking met ‘blind’ proeven: “Stel, ik denk dat ik heel goed het verschil tussen Pepsi Cola en Coca Cola kan proeven. Als ik honderd keer uit twee papieren bekertjes met cola de Pepsi moet kiezen, en achteraf blijkt dat ik het alle honderd keer goed had, dan geeft dat veel vertrouwen dat ik echt het verschil kan proeven, ook al heb ik geen idee hoe ik dat precies doe.” Zo kun je ook quantumsoftware als een black box beschouwen die je aan dit type blinde proeven onderwerpt, en als je die vaak genoeg herhaalt, weet je vrijwel zeker dat de software correct werkt.
Geen consumentenproduct
Volgens Buhrman is dit onderdeel van een groter probleem, dat zelfs raakt aan de grenzen van de wetenschappelijke methode. “Hoe weten we of een quantumcomputer goed werkt? We kunnen, omdat hij een exponentiële versnelling van de rekenprocessen levert, niet meer met een klassieke computer controleren of het antwoord correct is. Het komt er op neer dat we het model voor de quantumcomputer niet meer kunnen narekenen, en dus niet kunnen controleren of de antwoorden die hij geeft, kloppen.’
Tenslotte is er nog de poot ‘quantum-architectuur’. Die heeft als stip aan de horizon een quantumprogrammeertaal die net zo gebruiksvriendelijk is als Pascal of Python, programmeertalen waarmee iedere enthousiasteling nu zelf computerprogramma’s kan schrijven. Dat vergt nog jaren ontwikkelingswerk. Buhrman: “We zitten nu in het stadium waarin de klassieke computer zat in de jaren veertig, toen programmeren een kwestie was van stekkers inpluggen en draadjes solderen.” Overigens verwacht zelfs de meest enthousiaste quantum-fysicus of -informaticus niet, dat de quantumcomputer een consumentenproduct zal worden. Het zal een zeer duur en gecompliceerd apparaat zijn, dat in een gespecialiseerd centrum quantum-rekenkracht levert aan interne en externe gebruikers, zoals klassieke supercomputers nu doen.