Naast kwantumcomputers bestaan er ook kwantumnetwerken, die veilige communicatie mogelijk maken. QuTech, een samenwerking tussen de TU Delft en TNO, biedt met Quantum Network Explorer een webapplicatie aan waarin je er zelf mee kunt experimenteren. Aan de slag.
Koen Vervloesem
Net zoals een kwantumcomputer berekeningen uitvoert volgens de wetten van de kwantumfysica, stuurt een kwantumnetwerk informatie door volgens diezelfde wetten. We spreken in dat geval van kwantuminformatie. De kleinste eenheden van informatie in een klassiek computernetwerk zoals het internet zijn bits: die kunnen elk 0 of 1 zijn. In een kwantumnetwerk zijn de kleinste eenheden van informatie kwantumbits oftewel qubits. Een qubit kan niet alleen de waarde 0 of 1 hebben (voorgesteld door |0> en |1> om duidelijk te maken dat het om kwantumbits gaat), maar kan zich ook in meerdere toestanden tegelijk bevinden. Dat noemen we een super positie. Een andere interessante eigenschap die qubits kunnen hebben, is verstrengeling (entanglement). Dit is een soort sterke verbinding tussen twee qubits, die zelfs heel ver van elkaar verwijderd kunnen zijn. Als je dan de toestand van het ene qubit in bijvoorbeeld Amsterdam meet, dan ken je ook onmiddellijk de toestand van het andere qubit, zelfs als zich dat in New York bevindt.
Op de website van de Quantum Network Explorer van QuTech kun je zelf experimenteren met kwantumnetwerken in een simulator |
TOEPASSINGEN VAN KWANTUMNETWERKEN
In de praktijk worden qubits voor een kwantumnetwerk over glasvezel verstuurd. Maar qubits kunnen maar een korte afstand overbruggen voordat ze hun kwantumeigenschappen verliezen. Je hebt dan ook kwantumrepeaters nodig, die het signaal herhalen en verbeteren. Dat het meten van een qubit ook altijd zijn toestand verandert (dat is nou eenmaal een eigenschap van kwantumfysische systemen), vormt een speciale uitdaging voor deze taak. De repeaters moeten dan ook trucjes uithalen, zoals kwantumteleportatie. Op de website van de Quantum Network Explorer van QuTech kun je zelf experimenteren met kwantumnetwerken in een simulator En aan beide kanten van het netwerk moet zich een kwantumcomputer of end node bevinden, die de kwantuminformatie kan verwerken.
Terwijl bij kwantumcomputers pas nuttige toepassingen mogelijk zijn als die uit een groot aantal qubits bestaan, zijn kwantumnetwerken al veel sneller nuttig. Een end node kan al met één of enkele qubits iets doen, zoals je dadelijk zult zien. Onderzoekers van QuTech (qutech.nl), het Delftse onderzoeksinstituut voor kwantumcomputers en kwantuminternet, hebben met Quantum Network Explorer (quantum-network.com) een website gebouwd waarmee je zelf kunt experimenteren met enkele toepassingen van kwantumnetwerken. Als je een account aanmaakt op de website, kun je je experimenten opslaan, maar ook zonder account kun je de toepassingen uitproberen.
Alle mogelijke toestanden van een qubit liggen op de blochbol en worden bepaald door twee hoeken (bron: Wikimedia Commons, CC BY-SA 3.0) |
TELEPORTATIE
Kies als experiment State Teleportation en klik ernaast op Create. De bedoeling van dit experiment is om een kwantumtoestand van een zender naar een ontvanger te sturen. In de eerste stap staat de zender standaard in Leiden en de ontvanger in Delft. Bevestig dit door een klik op Next Step. Bevestig in de volgende stap ook de nodes en de kanalen in het kwantumnetwerk.
In de volgende stap kies je de kwantumtoestand die je wilt verzenden. Zo’n kwantumtoestand wordt voorgesteld als een vector op de zogenoemde blochbol. Kies bijvoorbeeld toestand |1> (theta 1 ϖ rad en phi 0 ϖ rad). Klik je op Next Step, dan krijg je een overzicht van de gekozen configuratie te zien. Klik tot slot op Run om de simulatie aan te maken.
Klik nu bovenaan op Result en dan links op Load results. Je krijgt de te teleporteren toestand te zien en het resultaat van de geteleporteerde toestand. Die zijn inderdaad identiek. Je krijgt ook twee ‘correcties’ te zien: die leggen we dadelijk uit. Klik nu op het tabblad Process om een animatie van het netwerkproces te zien.
Je ziet dat de zender twee qubits heeft en de ontvanger één qubit. Qubit 0 van de zender zal de te zenden kwantumtoestand bevatten. Qubit 1 van de zender wordt verstrengeld met het qubit van de ontvanger. In een eerste stap wordt de gekozen kwantumtoestand aan qubit 0 toegekend. Omdat we als toestand |1> gekozen hebben, wordt dit gedaan door qubit 0 in de blochbol 180° rond de y-as te roteren. Daarna wordt qubit 1 van de zender verstrengeld met het qubit van de ontvanger.
Teleporteer een kwantumtoestand in dit experiment in de Quantum Network Explorer |
KWANTUMTOESTAND VERZENDEN
Daarna is het de bedoeling om de kwantumtoestand over het kwantumnetwerk te versturen. De zender doet dat met een CNOT-poort. Dit is een kwantumpoort met als invoer twee qubits en als uitvoer twee qubits. Het eerste qubit uit de invoer wordt identiek overgenomen in de uitvoer en het tweede qubit wordt geïnverteerd (|0> wordt |1> en |1> wordt |0>) als het eerste qubit een |1> is. Het eerste qubit wordt het control qubit genoemd en het tweede het target qubit. Elke kwantumschakeling is overigens te implementeren door een combinatie van CNOT-poorten en rotaties van qubits. De zender voert de CNOT-poort uit met qubit 0 (de te teleporteren kwantumtoestand) als control qubit en qubit 1 (dat verstrengeld is met het qubit van de ontvanger) als target qubit. De bedoeling van deze operatie is dat de zender zijn te verzenden kwantumtoestand in zijn helft van het verstrengelde paar codeert. De drie qubits zijn nu samen verstrengeld.
Daarna voert de zender de Hadamard-poort uit op qubit 0, waardoor de codering naar de helft van het verstrengelde paar van de ontvanger gaat. De zender meet ook zijn twee qubits. Door de meting is de verstrengeling doorbroken. Maar dat is niet erg, want de ontvanger heeft de codering van de oorspronkelijke kwantumtoestand nog.
Dan is het nu voor de ontvanger een kwestie van deze toestand te decoderen. De zender stuurt zijn metingen via een klassiek netwerk door. Die metingen bepalen welke ‘correcties’ er op het qubit van de ontvanger moeten gebeuren om de toestand te decoderen. In dit geval betekenen de metingen 1 en 1 respectievelijk rotaties van 180° rond de x-as en de z-as, met als resultaat |1>. En dat is inderdaad de originele kwantumtoestand van de zender, experiment geslaagd.I
In de Quantum Network Explorer kun je ook een experiment voor Quantum Key Distribution uitvoeren |
VEILIGE COMMUNICATIE
De Quantum Network Explorer biedt nog twee andere voorbeeldtoepassingen aan: Distributed CNOT en Quantum Key Distribution (QKD). Die laatste is een manier om tussen twee gebruikers van een kwantumnetwerk op een veilige manier een sleutel uit te wisselen, waarmee ze daarna dan gevoelige boodschappen kunnen versleutelen. Die encryptie en decryptie kan gewoon met een klassieke computer, maar doordat de sleutel gemaakt is door gebruik te maken van de kwantummechanica, kan niemand anders die onderscheppen.
Een eenvoudige manier om een sleutel uit te wisselen via een kwantumnetwerk gaat als volgt: Alice kent een specifieke toestand toe aan een qubit en zendt die naar Bob. Die laatste meet het qubit en kent daarna ook de toestand. Maar als iemand tussen Alice en Bob het qubit meet, verandert de toestand. Alice en Bob hebben dan een verschillende toestand van het qubit en kunnen dat detecteren. Op deze manier wordt een volledige sleutel doorgestuurd in de vorm van een aantal qubits. In het Zwitserse Genève gebruikt men al sinds 2007 een vorm van QKD om de stemmen van federale en kantonale verkiezingen door te sturen van het centrale telstation naar het datacenter van de overheid in Genève. Met QKD wordt op een veilige manier een sleutel gegenereerd die dient voor AES-256-encryptie van de data over een dedicated gigabitethernetkabel tussen het telstation en het datacenter.
IS AES-256 VEILIG VOOR KWANTUMCOMPUTERS?
Versleutelingsalgoritmes voor asymmetrische encryptie zijn doorgaans gebaseerd op de veronderstelling dat normale computers grote getallen niet snel kunnen ontleden in hun priemfactoren. Voor kwantumcomputers gaat die veronderstelling niet op: dankzij het algoritme van Shor kunnen zij bijna exponentieel sneller dan klassieke computers getallen factoriseren. Algoritmes zoals RSA, Diffie Hellman en ECC zijn dan ook kwetsbaar voor kwantumcomputers. Versleutelingsalgoritmes voor symmetrische encryptie kunnen door kwantumcomputers ook efficiënter gekraakt worden, maar de tijd daarvoor wordt met het algoritme van Grover slechts tot de vierkantswortel gereduceerd. Als je AES-256 gebruikt, is dit voor kwantumcomputers even efficiënt te kraken als AES-128 voor klassieke computers. Dat is nog altijd veilig genoeg.
Met de Python-bibliotheek NetQASM programmeer je kwantumapplicaties |
ONTWIKKELKIT
Om je eigen applicaties voor de Quantum Network Explorer te ontwikkelen, biedt QuTech de QNE Application Development Kit (quantum-network. com/adk) aan. Dat is een Python-programma dat op 64-bit (x86_64) Linux of macOS (10 of 11) werkt. Je gebruikt dit programma, qne, op de opdrachtregel om een applicatie aan te maken op basis van een sjabloon en je applicatie te valideren. Daarna programmeer je wat je kwantumapplicatie doet met behulp van de bibliotheek NetQASM (netqasm.readthedocs.io).
Net zoals je in de Quantum Network Explorer van de voorbeeldapplicaties experimenten aanmaakte, kun je dat met de Application Development Kit ook. Configureer en valideer het aangemaakte experiment en start het op je computer in de simulator. Tot slot vraag je de resultaten op, die je in de vorm van een json-bestand te zien krijgt.
Voorlopig kun je deze kwantumapplicaties van de QNE-ADK alleen nog maar lokaal op je eigen computer simuleren, maar op termijn zou je ze ook met anderen moeten kunnen delen via de website van de Quantum Network Explorer. Het is ook de bedoeling dat er reële kwantumhardware aan de Quantum Network Explorer gekoppeld wordt, zodat je je kwantumapplicaties op een echt kwantumnetwerk kunt draaien.