Shor`s Algorithmus - tfp.uni

Werbung
Einleitung
Shor’s Algorithmus
Anhang
Shor’s Algorithmus
Thomas Neder
19. Mai 2009
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Einleitung
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Shor’s Algorithmus
Klassischer Teil
Quantenmechanischer Teil
Quantenfouriertransformation
Algorithmus zur Suche nach Perioden
Beispiel: Faktorisierung von 15
Analyse des Algorithmus
Anhang
Rechnen modulo n
Suchen und Finden von Primzahlen
Euklid’s Algorithmus und Laufzeit
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Problemstellung(1)
I
Was sind die Primteiler von 281472829095937?
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Problemstellung(1)
I
Was sind die Primteiler von 281472829095937?
I
Primfaktorzerlegung ist Schwierig
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Problemstellung(1)
I
Was sind die Primteiler von 281472829095937?
I
Primfaktorzerlegung ist Schwierig
I
Produkt von 2147483647 und 131071?
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Problemstellung(1)
I
Was sind die Primteiler von 281472829095937?
I
Primfaktorzerlegung ist Schwierig
I
Produkt von 2147483647 und 131071?
I
Leicht
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Problemstellung(2)
I
Genauso ergeht es dem Computer:
I
Naives Ausprobieren: Computer müsste O(2 m ) Zahlen
durchprobieren um die Primfaktoren einer Zahl zu finden, die
durch m Bits dargestellt wird.
I
Es gibt raffinierteres Verfahren, das nur O(2
würde. Aber:
Thomas Neder
Shor’s Algorithmus
√
√
3
m)
benötigen
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Tabelle:
Länge der Zahl in Bits
2
4
8
16
32
64
128
256
512
1024
2048
4096
Operationen klassisch
3
4
8
16
51
256
2546
65536
6479348
4294967296
41981937869757
1,84E+019
Thomas Neder
Operationen quantenmechanisch
1
4
19
60
145
300
555
946
1515
2309
3380
4787
Shor’s Algorithmus
Faktor
3
1
0,42
0,27
0,35
0,85
4,59
69,28
4276,8
1860098,44
12420691677,44
3,85E+015
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Beispiel: RSA(1)
I
I
Public Key Verfahren bzw. asymmetrische Verschlüsselung
Alice will Bob eine Nachricht senden:
I
I
I
1. Bob erzeugt zwei Schlüssel, den einen behält er für sich, den
anderen schickt er Alice(öffentlich).
2. Alice verschlüsselt Nachricht an Bob mit öffentlichem
Schlüssel.
3. Bob verwendet geheimen Schlüssel, um Alice’ Nachricht zu
entschlüsseln.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Beispiel: RSA(2)
I
Vorteile:
I
I
Schlüssel oder Verschlüsselungsverfahren muss nicht geheim
gehalten werden.
Viele Benutzer können gleichen öffenlichen Schlüssel benutzen.
Diese können Nachrichten untereinander nicht lesen.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Beispiel: RSA(3)
I
Im Detail: Bob erzeugt Schlüssel:
I
I
I
I
I
1. Wähle zwei zufällige Primzahlen p,q.
2. Berechne n = p · q und (p-1)(q-1).
3. Suche ungerade Zahl e, die teilerfremd zu (p-1)(q-1) ist.
4. Löse Gleichung d · e ≡ mod (p − 1)(q − 1).
5. Versende d und n als öffentlichen Schlüssel, vernichte
p,q,(p-1)(q-1) und behalte e als geheimen Schlüssel.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Beispiel: RSA(4)
I
Alice verschlüsselt Nachricht:
I
I
I
I
7. Stelle Nachricht als ganze Zahl dar, z.B. wenn
PNachricht
durch Bitfolge gegeben, dann ganze Zahl m := bi 2i
8. Wenn m ≤ n gut, wenn nicht zerlege m in Blöcke die jeder
kleiner als n sind.
e = md mod n
9. Verschlüssle Nachricht: m
Bob entschlüsselt Nachricht:
I
e e mod n.
10. Benutze dazu geheimen Schlüssel e: m = m
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Beispiel: RSA(5)
I
Böser Mensch hat natürlich d und n mitgehört.
I
Kann er/sie die Nachricht entschlüsseln?
I
Klar: Er/Sie muss dazu nur“ d −1 mod (p − 1)(q − 1)
”
berechnen. Dazu müsste jedoch die Primfaktorzelegung von n
bekannt sein.(Siehe Bücher über Zahlentheorie)
e entschlüsselt,
Bis heute ist kein Verfahren bekannt, das m
ohne n zu faktorisieren.
I
I
(Trotz angestrengter gegenteiliger Bemühungen.)
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Teiler von Zahlen und Periode von Funktion(1)
I
Ziel: Faktorisierung ganzer Zahl n.
I
Wir wissen: Direktes Faktorisieren ist schwer, können aber
ggT zweier Zahlen effizient bestimmen.
Erster Ansatz: Probiere Zahlen durch und bestimme ggT.
I
I
I
I
I
√
Egal, welche Reihenfolge oder ob randomisiert, immer O( n),
wenn n zu faktorisierende Zahl.
Angenommen, man würde die Zahl p kennen, für die gilt:
ap ≡ 1 mod n. Ordnung modulo n von a“
”
Daraus folgt: Es gibt eine natürliche Zahl k: ap = 1 + k · n,
also n teilt ap − 1
Wenn p gerade: ap = (ap/2 − 1)(ap/2 + 1)
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Teiler von Zahlen und Periode von Funktion(2)
I
Satz aus Zahlentheorie: n hat Teiler mit ap/2 − 1 und/oder
mit ap/2 − 1 gemeinsam.
I
Beh.: ap/2 − 1 ist kein Vielfaches von n
I
Bew.:Ang. ap/2 − 1 wäre ein Vielfaches von n
I
⇔ ap/2 − 1 = 0 mod n
I
⇔ ap/2 = 1 mod n
I
⇔ Die Periode wäre kleiner oder gleich p/2. Widerspruch.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Teiler von Zahlen und Periode von Funktionen(3)
ap/2 + 1 könnte natürlich ein Vielfaches von n sein! Dann wäre
ggT (ap/2 + 1, n) = n, also kein echter Teiler.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Teiler von Zahlen und Periode von Funktionen(4)
I
I
Zusammengefasst:
Wenn p gerade ist gilt: ggT (ap/2 − 1, n) oder
ggT (ap/2 + 1, n) ergeben echten Teiler außer
I
I
ap/2 − 1 ist mit n teilerfremd und gleichzeitig
ap/2 + 1 ist Vielfaches von n.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Problemstellung
Beispiel: RSA
Teiler von Zahlen und Periode von Funktionen
Teiler von Zahlen und Periode von Funktionen(5)
I
Aber:
I
Satz: Ist n ungerade und keine Primpotenz, so gilt für
mindestens die Hälfte der Zahlen a in {0, · · · , n − 1}, die mit
n teilerfremd sind:
I
I
I
die Periode von ax mod n ist gerade und
n teilt ap/2 + 1 nicht.
Für den Beweis siehe Bücher über Zahlentheorie
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Übersicht über den Algorithmus
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Shor’s Algorithmus, klass. Teil(1)
I
Eingabe: ungerade ganze Zahl, soll keine Primpotenz sein!
(und ungleich Eins)
I
Ausgabe: ein echter Teiler von n (wahrscheinlich)
Ablauf:
I
I
I
I
I
I
I
I
1. Wähle zufällig Zahl a aus {2, · · · , n − 1}
2. Berechne ggT(a,n)=:z.
2.1 z 6= 1? Wenn ja, gibt z aus und fang von vorne an.
3. Bestimme die Periode p von ax mod n.
3.1 p ungerade? Wenn ja, zurück zu Schritt 1.
4. Ermittle ggT (ap/2 − 1, n) und ggT (ap/2 + 1, n). Kein echter
Teiler dabei? Wenn ja, zurück zu Schritt 1.
Wahrscheinlichkeit zu scheitern?
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Shor’s Algorithmus, klass. Teil(2)
I
Aus Satz von oben folgt:
I
Ist n ungerade und nicht die Potenz einer Primzahl, so führt
der klassische Teil des Algorithmus mit einer
Wahrscheinlichkeit größer 1/2 im ersten Anlauf zum Erfolg.
I
Zusammengefasst:
I
Suchen echten Teiler einer ungeraden Zahl, die keine
Primpotenz ist. Kennen wir Periode von ax mod n, so
brauchen wir O((log(n))3 ) Laufzeit und sind mit einer
Wahrscheinlichkeit größer oder gleich 1/2 erfolgreich.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Quantenfourier-Transformation(1)
I
I
I
Bekannt: Fouriertransformation
Analog: Diskrete Fouriertransformation: Summe statt Integral
Quantenfouriertransformation der Ordnung N:
I

1
1


1
1 
QFTN = √ 

N 1
 ..
.
1
ωN
2
ωN
3
ωN
..
.
1
2
ωN
4
ωN
6
ωN
..
.
2(N−1)
N−1
1 ωN
ωN
I
1
3
ωN
6
ωN
9
ωN
..
.
3(N−1)
ωN
ωN bezeichnet N-te Einheitswurzel e 2πi/N
Thomas Neder
Shor’s Algorithmus
···
···
···
···
..
.
···
1

N−1
ωN
2(N−1)
ωN
3(N−1)
ωN
..
.









(N−1)(N−1)
ωN
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Quantenfourier-Transformation(2)
I
I
I
I
I
|0i , . . . , |N − 1i eine ONB, dann gilt:
1 X j·k
ωN |ki
QFTN |ji = √
N
P
Belieber Zustandsvektor: |v i = αj |ji:
1 X X
j·k
(
αj ωN
) |ki
QFTN |v i = √
N
QFT ist unitär.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Realisierung der Quantenfouriertransformation(1)
I
Zerlegung der QFT:
I
Zustand |xi = |x0 i · . . . · |xn−1 i bestehe aus n Bits, x sei die
Binärdarstellung einer ganzen Zahl und N=2n . Dann:
I
1
x
QFTN |xi = √ (|0i+ω2x |1i)·(|0i+ω4x |1i)·. . .·(|0i+ωN
|1i)
N
I
Hadamard-Trafo:
1
1
H |xi = √ (|0i + (−1)x |1i) = √ (|0i + ω2x |1i) = QFT2
2
2
I
Problem: Erzeugung kleinerer Drehwinkel
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Realisierung der Quantenfouriertransformation(2)
I
Abhilfe: Benutze zusätzlich Phasen-Drehungs-Operation:
1 0
Rm =
0 ωm
I
Benötigt eigentlich gesteuerte Version, siehe Skizze.
I
Auf Bit |xi i werden i gesteuerte Rm -Gatter angewendet, sowie
jeweils ein Hadamard-Gatter. Gesteuerte Gatter setzen sich
aus mehreren elementaren Gattern zusammen.
I
Man erhält: Die QFTN lässt sich mit n(n+1)/2∈ O(n2 )
lokalen Quantengattern ausführen. (Für N=2n .)
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Realisierung der Quantenfouriertransformation(3)
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Schema Quantenteil von Shor(1)
I
Quantenteil von Shor: Eigentlich viel allgemeinerer
Algorithmus: Kann Periode allgemeinerer Funktionen
berechnen.
I
Rechnet auf zwei Quantenregistern R=|ai|bi
I
Eingabe: Funktion f:{0, · · · , N − 1} → {0, · · · , n − 1} mit
Periode p.
I
f sei als Quantenorakel gegeben: Uf : |ai |bi → |ai |b ⊕ f (a)i
I
Spezialfall der Faktorisierung: f(x)=ax mod n
Ausgabe:
I
I
I
Falls p teilt N: Ganzzahliges Vielfaches y von N/p; y=jN/p
Sonst: Zahl nahe bei ganzzahligem Vielfachen von N/p.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Schema Quantenteil von Shor(2)
I
Ablauf:
I
I
I
I
I
I
I
1. Initialisiere Register mit Nullen: |ai |bi ← |0 · · · 0i |0 · · · 0i
2. Wende Hadamard-Trafos
auf |ai an:
P
|xi
|0
· · · 0i
R ← √1
x=0,··· ,N−1
(N)
P
3. Wende Orakel an: R ← Uf R = N1 x=0,··· ,N−1 |xi |f (x)i
4. Miss Register |bi
5. Wende QFT auf |ai an: |ai ← QFTN |ai
6. Miss |ai und gib Inhalt aus.
Schritt 4 nicht nötig, erleichtert Analyse.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Schema Quantenteil von Shor(3)
I
Wenn gilt: p teilt N, dann ist
p=
j ·N
,
y
wobei j eine so gewählte ganze Zahl ist, dass sie die Kleinste
ist, für die p ganzzahlig wird.
I
Geht nur, wenn j und p teilerfremd!
I
Darum teste ob p passt!
I
Wenn j und p gemeinsame Teiler haben: Neustart.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Beispiel: Faktorsierung von 15
Siehe Tafel
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Exponentierung modulo N(1)
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Exponentierung modulo N(2)
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Analyse des Algorithmus(1)
I
Nach Potenzierung: Im Register steht dann
1
|Φ3 i = √
N
X
|xi |f (x)i
x=0,··· ,N−1
I
Messung bei Schritt 4: Register |bi nimmt Zustand |f (x0 )i
an. x0 ist mit Wahrscheinlichkeit 1/N gewählt.
I
Zustand Register nach Messung:
X
1
|Φ4 i = √
|xi |f (x0 )i
A x:f (x)=f (x )
0
A: Anzahl der |xi, über die summiert wird.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Analyse des Algorithmus(2)
I
Zunächst: N sei Vielfaches von p:
I
Dann gilt: A=N/p
I
f Periodisch ⇒
1
|Φ4 i = √ (|x0 mod Ni + |x0 + p mod Ni + . . .
A
+ |x0 + (A − 1)p mod Ni) |f (x0 )i
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Analyse des Algorithmus(3)
I
Schritt 5: Anwendung QFT:
P (x +j·p)
QFTN |x0 + j · pi = √1N y ωN 0
|y i
I
⇒ Neuer Zustand:
N−1 A−1
1 X X (x0 +j·)·y
ω
|y i |f (x0 )i
|Φ5 i = √
NA y =0 j=0 N
N−1
A−1
1 X x0 ·y X j·p·y
=√
ω
ω
|y i |f (x0 )i
NA y =0 N j=0 N
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Analyse des Algorithmus(4)
I
Messung von Register |ai:
I
Wahrscheinlichkeit von |y i:
P(y ) =
I
1 0
(A−1)py 2
py
ωN + ωN + · · · + ωN
NA
Es gilt:
jpy
ωN
= ωAjy
I
1 0
(A−1)y 2
y
⇒ P(y ) =
ω + ωA + · · · + ωA
NA A
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Analyse des Algorithmus(5)
I
Wenn y Vielfaches von A, also y=k·A:
ωAjy = (ωAA )jk = 1
I
⇒ P(y ) =
I
A
1
1 2
A =
=
NA
N
p
Wenn y kein Vielfaches von A
⇒ P(y ) = 0
I
Man erhält tatsächlich Vielfaches von A=N/p als Messwert!!
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Analyse des Algorithmus(6)
I
Allgemeiner Fall: p teilt N nicht“ siehe A Lecture on Shor’s
”
Factoring Algorithm von Samuel J. Lomonaco Kapitel 7, 8
und 9.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Zur Laufzeit
I
Shors Quantenalgorithmus zur Bestimmung der Periode von
ax mod n hat erwartete Laufzeit O(log(log(n))·(log(n))3 ).
I
Die Erfolgswahrscheinlichkeit kann durch Wiederholung
beliebig erhöht werden.
I
Klass. Teil: O(log(n)) mit Erfolgswahrscheinlichkeit 1/2.
I
Insgesamt: O(log(log(n))· (log(n))3 )
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Quanten-Computer-Simulator(1)
Weblink Quanten-Computer-Simulator:
http://iaks-www.ira.uka.de/home/matteck/QuaSi/applet1.html
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Quanten-Computer-Simulator(2)
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Quanten-Computer-Simulator(3)
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Quanten-Computer-Simulator(4)
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Klassischer Teil
Quantenmechanischer Teil
Quanten-Computer-Simulator(5)
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Rechnen modulo n
Suchen und Finden von Primzahlen
Euklid’s Algorithmus und Laufzeit
Definitionen und Begriffe(1)
I
a heißt Teiler von b, wenn es eine ganze Zahl k gibt, so dass
gilt b=a·k.
I
a heißt echter Teiler, wenn gilt b 6= a 6= 0.
I
Eine Primzahl ist eine Zahl, die keine echten Teiler hat.
I
Der größte gemeinsame Teiler zweier Zahlen a und b ist die
größte ganze Zahl, die sowohl a als auch b teilt.
I
Zwei ganze Zahlen a,b heißen teilerfremd, wenn der
ggT(a,b)=1 ist.
I
Jede ganze Zahl lässt sich eindeutig (bis auf Reihenfolge) als
Produkt von Primzahlen darstellen. Dies nennt man die
Primfaktorzerlegung der Zahl.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Rechnen modulo n
Suchen und Finden von Primzahlen
Euklid’s Algorithmus und Laufzeit
Definitionen und Begriffe(2)
I
Def. O(f(n)): g heißt von Ordnung von f(n), wenn es eine
Konstante k gibt, so dass gilt: lim (g(n)/f(n))=k
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Rechnen modulo n
Suchen und Finden von Primzahlen
Euklid’s Algorithmus und Laufzeit
Beispiel: RSA(6)
I
Bob dagegen kann Nachricht korrekt entschlüsseln.
I
Zusätzlich braucht er auch nur O(m3 ) Schritte für eine m Bit
lange Zahl, wenn er nicht die gewöhnliche Multiplikation
benutzt: Stattdessen: Verwende Binärdarstellung des
Exponenten:
P
Y
i
i
m d = m bi 2 =
m2
bi 6=0
Zusätzlich gilt:
i
i−1
m2 = m2
I
· m2
i−1
.
Benötigt O(log(d)) Multiplikationen. Jede Multiplikation
benötigt O((log(d))2 )Bitoperationen. Benötigt also insgesamt
Laufzeit in O((log(d))3 ).
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Rechnen modulo n
Suchen und Finden von Primzahlen
Euklid’s Algorithmus und Laufzeit
Rechnen modulo n
I
Def.: Zwei ganze Zahlen a,b heißen kongruent modulo n,
a ≡ b mod n, genau dann wenn gilt, dass es eine ganze Zahl
k gibt, so dass a = b + k · n.
I
Es gilt: Aus a ≡ a0 mod n und b ≡ b 0 mod n folgt
a + b ≡ a0 + b 0 mod n und a · b ≡ a0 · b 0 mod n.
I
Modulo n kongruente Zahlen bilden Klassen, die sich wie die
Zahlen der Menge {0 . . . n − 1} mit Überlauf“ verhalten,
”
wenn man obige Operation verwendet.
I
Ist n = 2l , so entspricht dies der Art, wie in einem
l-Bit-Register gerechnet wird.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Rechnen modulo n
Suchen und Finden von Primzahlen
Euklid’s Algorithmus und Laufzeit
Suchen und Finden von Primzahlen
I
I
I
I
I
I
I
I
I
I
s.o.: wähle zwei Primzahlen“
”
keine Funktion bekannt, die sowas macht
Darum: Wähle zwei Zahlen und teste ob Prim:
Miller-Rabin-Test:
Eingabe n:
Wähle Zahl a aus 2,. . ., n-1
Faktorisiere n-1 in geraden und ungeraden Teil: n − 1 = d · 2j
r
ad = 1 mod n oder ad·2 für 0 ≤ r ≤ j − 1, dann ist n
Primzahl oder sgn. starke Pseudoprimzahl.
Wahrscheinlichkeit, dass n fälschlicherweise als Primzahl
erkant wird, obwohl zusammengesetzt, ist 1/4 bei einfacher
Anwendung.
Die Laufzeit liegt in O(k·log (n)3 ); k: Anzahl der Durchgänge.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Rechnen modulo n
Suchen und Finden von Primzahlen
Euklid’s Algorithmus und Laufzeit
Euklid’s Algorithmus und Laufzeit(1)
I
Eingabe: Zwei natürliche Zahlen a, b
I
Ausgabe: Der größte gemeinsame Teiler der beiden Zahlen
I
Division mit Rest:
I
a = b · q1 + r 1
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Rechnen modulo n
Suchen und Finden von Primzahlen
Euklid’s Algorithmus und Laufzeit
Euklid’s Algorithmus und Laufzeit(2)
I
Dann jeweils erneute Division mit Rest, bis Division aufgeht:
I
r0 = q2 · r1 + r2
I
r1 = q3 · r2 + r3
I
..
.
I
rn−1 = qn−1 · rn + 0
I
Letzter Divisor rn ist ggT(a,b).
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Rechnen modulo n
Suchen und Finden von Primzahlen
Euklid’s Algorithmus und Laufzeit
Euklid’s Algorithmus und Laufzeit(3)
I
Die Laufzeit der naiven Implementierung ist in O(log(a· b)).
Es gibt Algorithmus, der mit Hilfe der schnellen Fourier-Trafo
die Laufzeit auf O(n · log (n)2 ) drückt, wobei n die Länge der
größeren Zahl von a, b in Bits angibt. Schlimmster Fall: Zwei
aufeinanderfolgende Fibonacci-Zahlen.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Rechnen modulo n
Suchen und Finden von Primzahlen
Euklid’s Algorithmus und Laufzeit
Laufzeit klassischer Teil von Shor
I
Zur Laufzeit:
I
I
I
I
1. Schritt, sowie 2.1 und 3.1: quasi konstante Laufzeit.
2. Schritt: Euklid’s Algorithmus, also Laufzeit in O((log(n))3 )
3. Schritt: Später.
4. Schritt: Verwende effiziente Multiplikation, geht mit Laufzeit
O((log(n))3 ). Geht, da gilt ggT(x,n)=ggT(x mod n, n).
I
Wahrscheinlichkeit nach k Wiederholungen keinen echten
Teiler gefunden zu haben, ist kleiner oder gleich 1/2k .
I
Erwartete Laufzeit:
X k
· O((log (n))3 ) = O((log (n))3 )
2k
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Rechnen modulo n
Suchen und Finden von Primzahlen
Euklid’s Algorithmus und Laufzeit
Laufzeit(1)
I
Wesentliche Teile des Algorihmus:
I
I
I
I
I
Wenn n Eingabe, dann:
Anzahl QBits:
I
I
I
1. Hadamard-Transformation
2. Anwendung des Orakels für ax mod n
3. QFT
Schritt 1 und Schritt 2 auf 2·log(n) QBits
Schritt 3 auf log(n) QBits.
Anzahl Gatter:
I
I
I
Hadamard-Trafo: 2·log(n) Gatter
QFT: O((log(n))2 ) Gatter, s.o.
Orakel: Gibt Schaltkreise, die Potenzierung mit O((log(n))3 )
Gattern realisieren.
Thomas Neder
Shor’s Algorithmus
Einleitung
Shor’s Algorithmus
Anhang
Rechnen modulo n
Suchen und Finden von Primzahlen
Euklid’s Algorithmus und Laufzeit
Laufzeit(2)
I
Wichtig: Laufzeit der Berechnung der Periode im
nicht-einfachen Fall: O((log(n))3 ), aber nur
Erfolgswahrscheinlichkeit 1/(20·log(log(n))). Man braucht
also O(log(log(n))) Wiederholungen.
Thomas Neder
Shor’s Algorithmus
Herunterladen