Der Shor-Algorithmus ist ein Algorithmus aus dem mathematischen Teilgebiet der Zahlentheorie, der sich Mitteln der Quanteninformatik bedient. Er berechnet auf einem Quantencomputer einen nichttrivialen Teiler einer zusammengesetzten Zahl und zählt somit zur Klasse der Faktorisierungsverfahren.
Für praktisch relevante Aufgabenstellungen ist der Shor-Algorithmus noch nicht anwendbar, da er starken technischen Einschränkungen unterliegt. Für eine Zahl n benötigt man einen Quantencomputer mit mindestens log(n) Qubits. Eine Forschungsgruppe der IBM hat beispielsweise im Jahr 2001 einen Quantencomputer mit sieben Qubits eingesetzt, um die Zahl 15 in die Faktoren 5 und 3 zu zerlegen.[1]
Der Shor-Algorithmus ist für die Kryptographie so bedeutend, da er einen nichttrivialen Teiler essenziell schneller findet als klassische Algorithmen. Während diese subexponentielle, jedoch deutlich höher als polynomiale Laufzeit benötigen, hat der Shor-Algorithmus nur polynomiale Laufzeit. Dies stellt beispielsweise eine Gefahr für die häufig zur verschlüsselten Datenübertragung verwendeten RSA-Kryptosysteme dar, deren Sicherheit gerade auf der Annahme beruht, dass kein Faktorisierungsverfahren mit polynomialer Laufzeit existiert.
Der Algorithmus wurde 1994 von Peter W. Shor veröffentlicht, der damals bei den AT&T Bell Laboratories beschäftigt war. Die Arbeit trägt den Titel Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer.[2] Darin wird auch noch ein zweiter Algorithmus zur Berechnung des diskreten Logarithmus beschrieben, der ebenfalls als Shor-Algorithmus bezeichnet wird. Im Allgemeinen wird diese Bezeichnung jedoch für das Faktorisierungsverfahren verwendet.
Inhaltsverzeichnis |
Der Shor-Algorithmus ist ein probabilistischer Algorithmus. In einigen, wenigen Fällen ist das Ergebnis falsch; der Algorithmus zählt somit zur Klasse der Monte-Carlo-Algorithmen.
Die grundlegende Idee ist, dass man die Faktorisierung auf die Bestimmung der Ordnung zurückführen kann. Diese Bestimmung lässt sich mit Hilfe der Quanten-Fouriertransformation effektiv durchführen. Man teilt den Algorithmus deshalb häufig in einen klassischen Teil zur Reduzierung des Problems und einen Quantenteil, der das Restproblem effektiv löst.
(das kleinste r, so dass
.
.Erklärung:
.
. Das Ergebnis ist der Zustand:
.
.
. Hierfür gilt die Beziehung a ≡ k mod r oder a = br + k, so dass wir schreiben können:
Diese diskrete Funktion verfügt durch Amplifikation über charakteristische Maxima für Werte einer Variablen
, die die Beziehung:
erfüllen. Es lässt sich zeigen, dass es für die angegebenen Beziehungen von q, r und n höchstens einen solchen Wert bei festem c gibt Damit lässt sich r berechnen, falls d und r teilerfremd sind. (Die Wahrscheinlichkeit für diesen Fall beträgt mindestens
oder
, das heißt, wir erhalten r mit hoher Wahrscheinlichkeit nach O (log log r) Wiederholungen.)