Wie programmiert man einen Quantencomputer? Eine Sendung mit der Quantenmaus... Marc Pouly marc.pouly@hslu.ch
Am Anfang schuf der Elektroingenieur... Grundlage eines Computers Funktionsweise beschreiben wir mit Wahrheitstabellen Aber wie funktionieren die Dinger genau? X = AND(A,B) Das soll da drin sein???
Abstraktion - Zauberwort der Informatik? Gates ALU Prozessor Maschinensprache Assembler C Java Klassische Algorithmik & Programmierung ohne Kenntnisse in Halbleitertechnik Quanten-Algorithmik verlangt keine Kenntnisse der Quantenmechanik * Definition Abstraktion: (Substantiv, feminin) Gemeinhin anerkannte Rechtfertigung für Nichtwissen (Quelle unbekannt)
Phil die Quantenmaus 1 1. Phil bewegt sich in einem Labyrinth aus Einbahnstrassen 2. Kommt Phil an eine Weggabelung, dupliziert er sich und nimmt beide Wege 3. Findet Phil ein Stück Quantenkäse, verwandelt er sich in Anti-Phil, und umgekehrt
Phil die Quantenmaus 2 4. Treffen sich zwei Quanten-Mäuse... 5. Findet eine Gruppe Phils oder Anti-Phils den Ausgang, feiern sie eine Party - Quantum-Mäuse sind unsichtbar, d.h. wir wissen nicht, wo sie das Labyrinth verlassen haben - Aber eine Party macht Lärm! - Die Lautstärke ist proportional zum Quadrat der Anzahl Mäuse - Normiert zwischen [,1] entspricht dies der Wahrscheinlichkeit, dass wir die Party orten
Party - Mäuse Labyrinth Eingang Ausgang Ausgang Anzahl Mäuse Party Lautstärke Wahrscheinlichkeit 1 3 3 2 = 9 9/13 2 2 2 2 = 4 4/13 3
Wie programmiert man einen Quantencomputer? 1. Zeichne ein Labyrinth und platziere deinen Quantenkäse 2. Lass Phil vor einem Eingang laufen 3. Sei still und horche auf die Mäuseparty Was ist das Resultat?
Phil in Action
Welche Funktion rechnet Phil? Input Output Output Output Output.5.5.5.5.5.5.5.5 Es gibt immer nur 2 mögliche Outputs mit gleicher Wahrscheinlichkeit Hat das zweite Input-Bit den Wert, sind beide Output-Bits identisch Hat das zweite Input-Bit den Wert 1, sind beide Output-Bits unterschiedlich Also eine Art Zufallszahlengenerator mit IF-THEN-ELSE
Ready for some Quantum Magic? Gegeben sei eine 1-Bit Funktion / Gate f {,1} David Deutsch {,1} Ist die Funktion konstant, also f() = f(1), oder balanciert f() f(1) Es gibt 4 Möglichkeiten: 1 1 1 1 1 1 1 1 Identity NOT TRUE FALSE Wie oft muss die Funktion aufgerufen werden, um die Frage zu beantworten?
Ein Trick aus der Linearen Algebra Beobachtung: TRUE und FALSE sind nicht umkehrbar Jetzt sind alle möglichen Funktionen umkehrbar 1 1 1 1 1 1 1 1 Identity NOT TRUE FALSE
Ein Labyrinth für Phil? Die Box wird durch die unbekannte Funktion ersetzt Identity NOT TRUE FALSE
IDENTITY Identity
NOT NOT
TRUE TRUE
FALSE FALSE
Zusammenfassung Gate Output Output Output Output Identity.5.5 NOT.5.5 FALSE.5.5 TRUE.5.5 Bei Input beginnt der Output mit, ausschliesslich wenn es sich bei der unbekannten Funktion um eine Konstante handelt. Und dies kann mit nur einer Evaluation der Funktion festgestellt werden Das Gleiche funktioniert mit
Der Algorithmus von Peter Shor - Bereits 1994 präsentierte Peter Shor von AT&T Bell Labs einen Algorithmus zum Faktorisieren von Zahlen auf einem Quantencomputer - Der Quantenteil des Algorithmus berechnet die Periode einer Funktion. Kombiniert mit einem klassischen Algorithmus löst dies das Faktorisierungsproblem in - Das ist nahezu quadratische Zeitkomplexität. Sobald also Quantencomputer gebaut werden können, müssen wir RSA zu Grabe tragen - Noch schlimmer, der gleiche Algorithmus berechnet den diskreten Logarithmus in Polynomialzeit. Also dürften auch ElGamal, Paillier, ECC,... nicht mehr verwendet werden
Die Nadel im Heuhaufen finden Einen Eintrag in einer (ungeordnete) Datenbank finden DB als Superposition Quantum Orakel x Spiegelung am Durchschnitt
Der Algorithmus von Grover - Einen Eintrag in einer (ungeordnete) Datenbank finden: - Dies ist der beweisbar schnellste, klassische (und randomisierte) Algorithmus - Der Algorithmus von Grover löst diese Problem auf einem Quantencomputer in - Dies beweist, dass Quantencomputer tatsächlich prinzipiell schneller sind als klassische Computer der Unterschied ist aber polynomiell - Dies beschleunigt z.b. Brute-Force Angriffe auf Krypto-Verfahren. Sobald es einen Quantencomputer gibt, müssen doppelt so lange Schlüssel für den gleichen Grad an Sicherheit verwendet werden
Myth Buster & Control Questions - Quantencomputer sind beweisbar schneller als klassische Computer - Quantencomputer sind exponentiell schneller als klassische Computer - RSA kann nur mit einem Quantencomputer effizient gebrochen werden - Wir kennen einen Algorithmus, der symmetrische Krypto effizient bricht - Quantencomputer lösen NPC Probleme in Polynomialzeit - Quantencomputer lösen NPC Probleme schneller als klassische Computer
That s all Folks!