„Primes is in P!“

Werbung
„Primes is in P!“
Seminararbeit
Sommersemester 2003
Betreut durch Prof. Hinkenjann
Annegret Schnell
Primes is in P
1
Einleitung
Im August 2002 stellen drei indische
Informatiker des Department of Computer
Science & Engineering Indian Institute of
Technology in Kanpur einen Beweis im
Internet vor, der die Berechnung von
Primzahlen in polynomialer Laufzeit
propagiert.
Annegret Schnell
Primes is in P
2
Überblick
Komplexitätsklassen
Allgemeines über Primzahlen
Primzahltests
Beweisskizze von „Primes is in P“
Laufzeitbetrachtung
Welche Folgen hat „Primes is in P“?
Annegret Schnell
Primes is in P
3
Komplexitätsklassen
Die Groß-O-Notation
Größenordnung der Komplexität mit einer
Komplexitätsfunktion
konstant
logarithmisch
linear
quadratisch
polynomial
exponentiell
O(1)
O(log n)
O(n)
2
n
O( )
O( nk ) für k>=0
n
k
O( ) für k>=2
Annegret Schnell
Primes is in P
4
Die Groß-O-Notation
Laufzeit der obigen Größenordnungen
nimmt von oben nach unten zu
Rechenregeln
k
Komplexität in diesem Beweis O(log n)
Beispiel für eine exponentielle
Zeitkomplexität „Travelling Salesman
Problem“
Annegret Schnell
Primes is in P
5
Die Klassen NP und P
Die Klasse NP beinhaltet nicht
deterministische Probleme
Auswirkung auf die Komplexität
Nicht deterministischen Probleme könne
auch deterministisch gelöst werden
=>Laufzeit nimmt exponentiell zu
Irrtum: NP ist nicht gleich „nicht
polynomial“
Annegret Schnell
Primes is in P
6
Die Klassen NP und P
Große Bedeutung haben Probleme der
Klasse NP für die Kryptoanalyse
Durch Erraten Entschlüsselung in
polynomialer Zeit
Berechnung aller Möglichkeiten jedoch
exponentiell
Annegret Schnell
Primes is in P
7
Die Klassen NP und P
Deterministischen Probleme, die in
polynomialer Zeit von Algorithmen gelöst
werden können, liegen in der Klasse P.
Unstrittig in der Mathematik, dass die
Klasse NP die Klasse P mit einschließt
Frage: P = NP ?
wünschenswert, aber Vermutung P ⊂ NP
Annegret Schnell
Primes is in P
8
Klasse NP-vollständig
Ein Problem ist NP-vollständig, wenn es
zur Klasse NP gehört und wenn es mit
polynomialem Zeitaufwand in ein anderes
Problem der Klasse NP überführbar ist.
Zurzeit 1000 NP-vollständige Probleme
bekannt , eines davon
Primfaktorzerlegung .Hier hofft man, dass
P wirklich ungleich NP ist.
Annegret Schnell
Primes is in P
9
Primzahlen
Primzahlen faszinieren den Menschen seit
über zweitausend Jahren
4% der ganzen Zahlen bis 25 Billionen
sind Primzahlen
GIMPS (Great Internet Mersenne Prime
Search)
Im Dezember 2001 wurde die bis jetzt
größte Mersenne Primzahl entdeckt:
213466917-1.
Annegret Schnell
Primes is in P
10
Primzahltests
Das Sieb des Erasthotenes
Vielfache einer Zahl werden „herausgesiebt
Andere Formulierung auch „trivialer
Primzahltest“ genannt: Um zu testen, ob eine
Zahl n prim ist oder nicht, teile man sie durch
alle Primzahlen die kleiner der Wurzel aus n
sind. Ist n durch keine dieser Zahlen teilbar, so
ist sie prim.
Annegret Schnell
Primes is in P
11
Primzahltests
Der kleine Satz von Fermat
Wenn n eine Primzahl ist, dann gilt für alle a ,
die nicht durch n teilbar sind:
a mod n=1. Man suche sich also irgendeine
Zahl aus, die nicht durch n teilbar ist wie z. B 2
und berechne 2n−1 mod n=1?
n −1
Beweis gegen die Primalität
2 ist Zeuge(witness) gegen die Primalität.
Annegret Schnell
Primes is in P
12
Primzahltests
Der Miller-Rabin-Test
Es sei n eine ungerade natürliche Zahl und es sei
s = max{r N: teilt n-1}
s
2
Daraus folgt, dass
die größte Potenz ist, die n-1 teilt.
s
Setze d = (n-1)/ 2
s
Sei n prim (n>2) und n-1 = 2 *r mit r ungerade.
Sei 1 < a < n.
d
Dann ist a 1mod n oder für ein r: 0<=r<=s-1 muss
2 r *d
-1 mod n.
gelten a
Annegret Schnell
Primes is in P
13
Primzahltests
Der Miller-Rabin-Test
Abschätzung : wie viele Zahlen sind keine
Zeugen gegen die Primalität?
Antwort: (n-1)/4
=>
Wahrscheinlichkeit, dass n zusammengesetzt
ist, ist höchstens ¼. Durch t-fache Wiederholung
wächst Wahrscheinlichkeit, dass n eine Primzahl
1 t
ist auf 1 − ( )
4
Annegret Schnell
Primes is in P
14
Beweisskizze von „Primes is in P“
Beweisidee
Identität: a und p sind teilerfremd, dann ist p eine
Primzahl und zwar nur dann, wenn
( x − a) p ≡ ( x p − a) mod p
Beweis
Siehe Tafel
Laufzeit dieser Identität exponentiell, da auf der
linken Seite p Koeffizienten berechnet werden
müssen.
Annegret Schnell
Primes is in P
15
Neuer Beweisansatz
Anstatt großer Polynompotenzen ( x − a) p
Betrachtung der Reste nach einer Division durch
( x r − 1) . Dies führte zu dem Ansatz
( x − a) ≡ ( x − a)(mod x − 1, p)
p
p
r
Die Notation bedeutet die Gleichheit der Reste
r
der Polynome nach Division durch ( x − 1) und
Division der Koeffizienten durch p.
Annegret Schnell
Primes is in P
16
Neuer Beweisansatz
Aus Identität folgt, dass Behauptung für
Primzahlen korrekt ist.
Ziel ist es, obige Behauptung für eine „kleine“
Zahl von a‘s zu beweisen
=> Laufzeit kann deutlich gesenkt werden
Annegret Schnell
Primes is in P
17
Hauptsatz
Sei n N mit n>=2 beliebig und r mit 2<=r<=n-1 eine
Primzahl mit ggT(r,n) = 1.
Wenn die folgenden Bedingungen a) bis d) erfüllt sind,
dann ist n eine Primzahlpotenz.
Definiere L:= 2 ⋅ r ⋅ log n
a) r-1 hat einen Primteiler q >= L
b) n ( r −1) / q ≠ 1mod r (q| or)(or ist multiplikative Ordnung)
c) Für alle 1<= a<= L gilt ggT(a,n)=1
d) Für alle 1<= a<= L gilt ( X − a )n ≡ ( X n − a)(mod n, X r − 1)
Annegret Schnell
Primes is in P
18
Der Algorithmus
Input: integer n > 1
b
a
1. if ( n is of the form , b > 1 ) output COMPOSITE;
2. r = 2;
3. while(r < n) {
4.
if ( gcd(n,r) ≠1 ) output COMPOSITE;
5.
if (r is prime)
6.
let q be the largest prime
factor of r - 1;
r −1
7.
if ( q ≥ 4 r log n and n q ≠ 1(mod r ))
8.
break;
9.
r r + 1;
10. }
Annegret Schnell
Primes is in P
19
Der Algorithmus
11. for a = 1 to 2
12.
rlog n
n
n
r
((
x
−
a
)
≠
(
x
−
a
)(mod
x
− 1, n))
If
output COMPOSITE;
13. output PRIME;
Annegret Schnell
Primes is in P
20
Korrektheit des Algorithmus
Behauptung:
Der Algorithmus gibt PRIME zurück, wenn und
nur wenn n eine Primzahl ist.
While Schleife : Suche nach r mit großem
Primfaktor q für den gilt dass q 4 r log n und q
ein Teiler von or (n)
For Schleife: Testet für eine „kleine“ Anzahl von
a‘s (( x − a)n ≠ ( x n − a)(mod x r − 1, n))
Annegret Schnell
Primes is in P
21
Implementationen
Es gibt verschiedene Implementationen dieses
Algorithmus in verschiedenen
Programmiersprachen. Diese könne unter
folgendem Link gefunden werden:
http://fatphil.org/maths/AKS/#Implementatio
ns
Annegret Schnell
Primes is in P
22
Laufzeitbetrachtung
Operationen der While
Schleife:
n=
a
b
O (log c n)
ggT Bestimmung
n
r −1
q
≠ 1(mod r ))
Triviale
Primzahlberechnung
Annegret Schnell
O(log n).
O(log n
O (log c n)
Primes is in P
23
Laufzeitbetrachtung
For Schleife:
c
O
(log
n,)
Laufzeit von
n
r
(
X
−
a
)
(mod
n
,
X
− 1)
da
mit O(log n) Multiplikationen von Polynomen
vom Grad kleiner r berechnet wird, da r
polylogarithmisch ist
Laufzeit insgesamt: polynomielle Laufzeit von
O (log 6 n)
Annegret Schnell
Primes is in P
24
Welche Folgen hat „Primes is in P“?
Sicherheit der kryptographischen Verfahren in
Gefahr ?
NEIN
Beispiel Public Key Verfahren :
Sicherheit beruht auf Schwierigkeit große Zahlen
in Primfaktoren zu zerlegen.
Annegret Schnell
Primes is in P
25
Praktische Verwertbarkeit
von „Primes is in P“
Generierung großer Primzahlen weiterhin mit
probabalistischen Verfahren, da wesentlich
schneller
Industrial-grade-primes mit 500 Dualstellen mit
Miller-Rabin in Millisekunden, bei AKS jedoch in
Monaten
=> noch keine praktische Relevanz
Annegret Schnell
Primes is in P
26
Meilenstein in der Komplexitätstheorie
Lösung eines jahrhundert alten
mathematischen Problems.
Verbesserungen und Erweiterungen des
Algorithmus werden in Workshops
bearbeitet.
Annegret Schnell
Primes is in P
27
Herunterladen