Unsere Transformationen bei einem Quantencomputer müssen unitär,
also insbesondere reversibel sein, deshalb führen wir unseren
Eingabewert einfach in einem zusätzlichen Register weiterhin mit
und legen den Funktionswert in einem weiteren, vorher nur mit
belegtem Register ab:
(13) |
Die Modulare Exponentation ist effizient durchführbar, z.B. mittels Square-and-Multiply und Schönhage-Strassen für die dabei auftretenden Multiplikationen mit Zeit- und Speicheraufwand oder mit ,,gewöhnlicher`` Multiplikation mit einem Aufwand von an Zeit und an Speicher ( bezeichnet hierbei eine -Bit-Zahl). Trotzdem stellt sie die langsamste Operation des Faktorisierungsalgorithmus dar. Allerdings ist es interessant, daß der Schönhage-Strassen-Multiplikationsalgorithmus die schnelle Fourier-Transformation benutzt, die die Grundlage für viele Quantenalgorithmen darstellt. So ist es vielleicht denkbar, daß dadurch sogar die Ganzzahl-Multiplikation auf einem Quantencomputer beschleunigt werden könnte, was zu einem besseren asymptotischem Verhalten des Quantenfaktorisierungsalgorithmus führen würde und u.U. sogar das Brechen von RSA auf einem Quantencomputer asymptotisch schneller machen könnte als die RSA-Verschlüsselung auf einem klassischen Computer (näheres zur schnellen Implementation des Shor-Algorithmus wird in [Zal98] geschildert, dort findet sich auch eine Variante, die die FFT zur Multiplikation verwendet).
Diese klassischen Algorithmen lassen sich als Quantengatter realisieren, wobei darauf geachtet werde muß, daß die verwendeten Operationen reversibel sind. Insbesondere muß dabei ein Zwischenspeicher wieder auf gesetzt werden, dies kann aber nicht direkt geschehen, sondern kann nur über einen Umweg erreicht werden. Um nun zu überprüfen, ob die bisherige Rechnung korrekt war, kann man nun diesen Zwischenspeicher messen, wird ein Wert ungleich gemessen, wiederholt man die Rechnung, anderenfalls ist man zudem sicher, daß jede Amplitude ungleich durch die Messung zerstört wurde und kann somit u.U. sogar die Genauigkeit erhöhen. Diese Methode heißt ,,quantum watchdog``- oder auch ,,quantum Zeno``-Effekt. Da die Messung aber auch einen Aufwand darstellt, müßte noch getestet werden, ob der Gewinn an Genauigkeit an dieser Stelle eine Geschwindigkeitsverbesserung des gesamten Algorithmus bewirkt.
Man erhält nun folgenden Zustand nach Anwendung der Funktion:
(14) |