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) |