Quantum Computing
Hartmut KlauckUniversität FrankfurtWS 04/0524.11.
Bestimmen der Ordnung über ZN
Gegeben seien natürliche Zahlen x, N, x<N
Ordnung r(x) von x in ZN:min. r0: xr =1 mod N
„Periode“ der Potenzen von x
Bestimmen der Ordnung über ZN
Quantenalgorithmus, um r(x) zu bestimmen?
Algorithmus von Shor findet r(x) in Zeit poly(log N)
trivialer klassischer Ansatz: berechne xi für i=1,...,r(x) ist ineffizient, da r(x)=N-1 möglich
Reduktion Faktorisierung auf Ordnungsfinden Eingabe natürliche Zahl N
1. Test ob N Primzahl, Ausgabe N2. Test ob N= ab für nat. Zahlen a,b>1,
Ausgabe a3. Test ob N gerade, Ausgabe 24. Wenn nein: N=p1
(1) pm(m) mit
m>1,(j)¸1, pj>2 prim
Reduktion Faktorisierung auf Ordnungsfinden N=p1
(1) pm(m) mit m>1,(j)¸1, pj>2 prim
Ansatz: Wenn man eine nichttriviale Lösung zu x2=1
mod N finden kann, dann kann ein Faktor von N berechnet werden
Wenn y aus [1,...,N-1] gezogen wird und teilerfremd zu N ist, dann ist die Ordnung r von y mit hoher Ws. gerade und yr/2 -1 mod N
yr/2 1 mod N Dann erfüllt x=yr/2 die Gleichung x2=1 mod N
und x ist nichttrivial Z*
N : Gruppe der y aus [1,...,N-1] die teilerfremd zu N sind, mit Multiplikation
Reduktion Faktorisierung auf Ordnungsfinden Theorem V.1:
Sei N eine zusammengesetzte Zahl und x eine Lösung von x2=1 mod N mit1 < x < N-1. Dann sind nichttriviale Teiler von N: ggt(x-1,N) ggt(x+1,N)
Theorem V.2:Wenn N=p1
(1) pm(m) Primfaktorisierung
[alle pj2] und x uniform aus Z*N gezogen wird,
dann istProb[r=r(x) ist gerade und xr/2 -1 mod N] ¸ 1-1/2m-1 [¸ 1/2 falls m>1]
Reduktion Faktorisierung auf Ordnungsfinden Eingabe natürliche Zahl N
1. Test ob N Primzahl, Ausgabe N2. Test ob N= ab für nat. Zahlen a,b>1,
Ausgabe a3. Test ob N gerade, Ausgabe 24. Wenn nein: N=p1
(1) pm(m) mit
m>1,(j)¸1 , pj>2 prim
Reduktion Faktorisierung auf Ordnungsfinden
4. N=p1(1) pm
(m) mit m>1,(j)¸1 , pj>2 prim
5. Bestimme zufälliges x aus [1,...,N-1]. Wenn ggt(x,N) 1, dann Ausgabe ggt(x,N)
6. Bestimme Ordnung r von x in ZN
7. Wenn r gerade ist, und xr/2 -1 mod N, dann berechne ggt(x-1,N) und ggt(x+1,N) und teste ob einer ein Faktor ist
8. Wenn nicht, dann wiederhole 5.-7.
Analyse:
Schritt 1 [Primzahltest] deterministisch in Zeit poly(n) [AKS02][Test, ob ab für nat. Zahlen a,b; Test ob Primzahl]
Schritt 5: ggt(y,N) kann in Zeit O(L3) berechnet werden, Euklidischer Algorithmus
Schritt 6: per Reduktion Schritt 7: mit Wahrscheinlichkeit 1/2, Test
durch Division Schritt 8: Daher erwartet O(1)
Wiederholungen
Bemerkung
Finden der Ordnung von x in ZN ist tatsächlich per Polynomialzeit-Reduktionen äquivalent zu Faktorisierungsproblem
Shors Algorithmus löst Ordnungsfinden bezüglich einer als Black Box gegebenen Potenzierungsfunktion
Theorem V.1
Theorem V.1:Sei N eine zusammengesetzte Zahl und x eine Lösung von x2=1 mod N mit1 < x < N-1. Dann sind nichttriviale Teiler von N: ggt(x-1,N) ggt(x+1,N)
Beweis:
x2=1 mod N ) (x-1)(x+1)=0 mod NN teilt (x-1)(x+1), x-1<x+1<N, daher gibt es einen nichttrivialen gemeinsamen Faktor
Theorem V.2
Theorem V.2:Wenn N=p1
(1) pm(m) Primfaktorisierung
[alle pj 2] und x uniform aus Z*N gezogen
wird, dann istProb[r=r(x) ist gerade und xr/2 -1 mod N]¸ 1-1/2m-1
Hilfsmittel
Sei φ(N)=| Z*N|. Für jedes x2Z*
N gilt xφ(N)=1 mod N[Euler]
φ(p) ist gerade, wenn p prim Chinesischer Restsatz
Sei N=p1(1) pm
(m)
Für x1,...,xm gibt es genau eine Lösung x zux=xi mod pi
i) für alle i x zufällig ziehen entpricht x1,...,xm ziehen x2 Z*
N , xi2 Z*N(i) für alle i [N(i)=pi
(i)] ri sei Ordnung von xi in Ni
ri teilt r [Ordnung von x in ZN]: xr=1 mod N ) xi
r=xr=1 mod Ni
Theorem V.2
Lemma 1:Sei N=p, p2 prim. Sei φ(N)=| Z*
N|. D sei maximal so dass 2D Teiler von φ(N). Mit Wahrscheinlichkeit =1/2 teilt 2D die Ordnung r(x) eines zufälligen Elementes von Z*
N. Beweis: Z*
N zyklisch [weil p2], d.h. es gibt 1<g<N, so dass {gj mod N, j=1,..., φ(N)}= Z*
N Jedes x0 ist gk mod für ein k x zufällig ) k zufällig, gerade/ungerade mit
Wahrscheinlichkeit 1/2 k ungerade:
gkr(x)=xr(x)= 1 mod N ) φ(N) teilt kr(x), 2D teilt kr(x), teilt r(x)
k gerade: xφ(N)/2=gkφ(N)/2=(gφ(N))k/2=1k/2=1 mod N [Euler] ) r(x) teilt φ(N)/2 und somit teilt 2D nicht r(x)
Theorem V.2
N=p1(1) pm
(m) Primfaktorisierung. Mit Chinesischem Restsatz ist Wahl von x äquivalent zu Wahl von x1,...,xm aus Z*
N(i) für N(i)=pi
(i)
x=xi mod pi(i)Ordnung ri=r(xi) in ZN(i) teilt r
d maximal so dass 2d Teiler von r, analog di für ri
Lemma 2:Wenn r=r(x) ungerade oder r gerade und xr/2=-1 mod N, dann di=d für alle i.
Beweis: I) r ungerade nur, wenn alle ri ungerade, d.h. alle di=0 II) r gerade, aber xr/2 = -1 mod N
) xir/2 = -1 mod Ni
d.h. ri kein Teiler von r/2,ri Teiler von r, d.h. 2d teilt ri, somit di=d
D.h. 2d grösster Zweierpotenzteiler von r(xi) für alle i
Theorem V.2
Theorem V.2:Wenn N=p1
(1) pm(m) Primfaktorisierung [alle pj 2], und x uniform
aus Z*N gezogen wird, dann ist
Prob[r=r(x) ist gerade und xr/2 -1 mod N]¸ 1-1/2m-1
Beweis: Mit Chinesischem Restsatz ist Wahl von x äquivalent zu Wahl von
x1,...,xm aus Z*N(i) für N(i)=pi
(i)
x=xi mod pi(i)Ordnung ri=r(xi) in ZN(i) teilt r
di maximal so dass 2di Teiler von ri
Berechne Gegenwahrscheinlichkeit. Mit Lemma 2 sind alle di gleich Wahrscheinlichkeit ·1/2m-1 nach Lemma 1:
Setze d=d1. Für alle i=2,...,m sei Di max Zweierpotenzteiler von φ(Ni)Drei Fälle:
Di>d, dann di=Di mit Ws. 1/2 und dann auch did Di=d, dann di= d mit Ws. 1/2 Di<d, dann di = d niemals
Jedesmal [2,...,m] ein Faktor ·1/2 zur Gesamtwahrscheinlichkeit
Warum Faktorisierung?
Das Problem [...] zusammengesetzte
Zahlen in ihre Primfaktoren zu
zerlegen ist eines der wichtigsten
und nützlichsten in der ganzen
Arithmetik. Die Würde der
Wissenschaft verlangt, dass
jedes Hilfsmittel zur Lösung solch
eines eleganten Problems kultiviert wird.
Warum Faktorisierung?
RSA-Verfahren [Z. Bsp. SSL im Internet] [Rivest Shamir Adleman] Alice möchte verschlüsselte Nachrichten empfangen Alice veröffentlicht einen öffentlichen Schlüssel,
behält für sich einen privaten Schlüssel Mit dem öffentlichen Schlüssel kann man
Nachrichten verschlüsseln, mit dem privaten entschlüsseln
Es scheint schwer zu sein, verschlüsselte Nachrichten ohne den privaten Schlüssel zu öffnen
RSA wird durch Faktorisierung gebrochen
RSA
Alice zieht zwei “grosse” Primzahlen p,q, berechnet N=pq
Alice wählt e, teilerfremd zu φ(N)=(p-1)(q-1)
Alice berechnet d, das Inverse von e in Z*N
[das ist einfach, weil Faktorisierung von N bekannt]
Öffentlicher Schlüssel: (e,N) Geheimer Schlüssel: d
RSA
Öffentlicher Schlüssel: (e,N) Bobs Nachricht sei x<N Verschlüsselte Nachricht: y=xe mod N Alices Dekodierung: yd =xed mod N ed=1 mod N, also ed=1+ kφ(N) Ergebnis also x1+kφ(N) =x¢x kφ(N) mod N
x2 Z*N, dann xkφ(N) =1 mod N, und daher
yd =x mod N Sonst: OBDA p teilt x, q nicht
x=0 mod p, also xed= 0 mod p, xq-1=1 mod qxφ(N) =1 mod N und xed=x mod q und mit chin. Restsatz auch xed=x mod N
Wenn ein Angreifer (Eve) faktorisieren kann, kann N in pq zerlegt werden, und d wäre nicht mehr geheim
Hidden Subgroup Problem Ordnungsfinden und Simons Problem sind
Instanzen des Hidden Subgroup Problems Coset zu einer Untergruppe H einer Gruppe G:
gH={gh: h2 H} Es gebe eine Gruppe G, sowie eine unbekannte
Untergruppe H Es gebe eine Black Box Funktion f, so dass
f ist konstant auf jedem Coset von H auf zwei Cosets CD hat f verschiedene Werte
Finde H. Bzw. Generatoren von H.
Hidden Subgroup Problem Simons Problem:
G ist (Z2)m
H ist {0,s} Cosets {x, x©s} f: f(x)=f(x©s)
xy©s) f(x)f(y)
Hidden Subgroup Problem Ordnungsfinden
G ist Z H ist {0,r,2r,3r,......}; r=r(x) mod N Cosets {a,a+r,a+2r,....] f(j)=xj mod N f(kr+a)= xkr+a mod N=xa mod N
=f(a)=f(k’r+a) f(kr+a) = xa mod N xb mod
Nf(kr+b) falls ab mod r
Hidden Subgroup Problem Deutsch-Josza
ebenfalls, Übung
Hidden Subgroup Problem [Kitaev] Es gibt einen Quantenalgorithmus
mit polynomieller Zeit, der die Untergruppe H identifiziert, wennn G abelsch ist
Weiteres Beispiel HSP: Graph IsomorphismusGegeben G1, G2, kann man Knotennummern permutieren, so dass beide gleich sind?
HSP über Gruppe der Permutationen, nicht abelsch,kein polynomieller Quantenalgorithmus bekannt
Hidden Subgroup Problem Graph Isomorphismus:
Gegeben Graphen W1, W2, kann man Knotennummern permutieren, so dass beide gleich sind? Man kann zeigen, dass Problem Polynomialzeit-
reduzierbar auf Bestimmen der Generatoren der Gruppe von Permutationen ist, die einen Graphen W unverändert lassen [aut(W)]
Es gibt nur n2 Generatoren Als HSP:
• Gruppe: Sn, Permutationen auf W• Untergruppe H: aut(W)• Cosets: H• Funktion f: f()=(W)• Dann: f(1)= f(2) , 1(W) = 2(W) , 2
-1(1(W)) = W,2
-1 ± 1 2 aut (W) , 2-1 ± 1 H = H , 1 H = 2 H
Also 1, 2 aus demselben Coset
Fourier Transformation
Klassische Fouriertransformation: g sei Funktion ZN ! C
[Vektor mit N Einträgen]
Mit w=e2 i/N ist Matrix für Fouriertransformation durch FTN(i,j)=wij; 0· i,j· N-1 gegeben
Trivialer Algorithmus zur Fouriertransformation: Zeit O(N2)
Schnelle Fouriertransformation [FFT] in ZeitO(N log N)
Quanten Fourier Transformation
Sei N=2n. Sei |i=j=0,...,N-1 j |ji ein Zustand. Die Fouriertransformation von |i ist
|i =j=0,...,N-1 j |ji, mit
Also Fouriertransformation als Superposition Auch QFT genannt Gibt es einen effizienten Algorithmus der QFT
implementiert? Effizient:polynomiell in n=log N