Primzahltests - Universität Potsdam

Werbung
Primzahltests und Faktorisierung
Primzahltests
Primzahltests
Nuria Brede
16.06.2005
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 1
Primzahltests und Faktorisierung
Primzahltests
Inhalt
1. Einleitung
2. Probabilistische Primzahltests
• Mathematische Grundlagen
• Miller-Rabin Primzahltest
3. Deterministische Primzahltests
4. Fazit
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 2
Primzahltests und Faktorisierung
§1 Einleitung
Inhalt
1. Einleitung
2. Probabilistische Primzahltests
• Mathematische Grundlagen
• Miller-Rabin Primzahltest
3. Deterministische Primzahltests
4. Fazit
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 3
Primzahltests und Faktorisierung
§1 Einleitung
Motivation - Warum Primzahltests?
• Public Key Kryptographie benötigt möglichst große beliebige
Primzahlen
• Problem: Suche nach Primzahlen mit intuitiven Mitteln - wie
einfaches Durchtesten - für sehr grosse Zahlen ineffizient
• Abhilfe: Zufällige Erzeugung sehr großer Zahlen und Primzahltest
mit mathematisch ausgefeilten probabilistischen Algorithmen
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 4
Primzahltests und Faktorisierung
§1 Einleitung
Primzahlen per Zufall suchen?
• in der Praxis nur sinnvoll, wenn nicht zu viele Zufallszahlen getestet
werden müssen, bis eine Primzahl gefunden ist
• hilfreiche Erkenntnis aus der Zahlentheorie (nach Gauss):
Das Primzahl-Theorem
Sei π(N ) die Anzahl der Primzahlen ≤ N . Dann gilt
π(N ) ≈ lnNN .
• daraus folgt: eine zufällig gewählte ganze Zahl zwischen 1 und N ist
mit einer Wahrscheinlichkeit von ≈ ln1N eine Primzahl
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 5
Primzahltests und Faktorisierung
§1 Einleitung
Primzahlen per Zufall zu suchen? Beispiel.
• angewandt auf RSA: für einen 1024 bit Modulus n = p ∗ q sind p
und q 512 bit Primzahlen
• ein 512 bit Integer ist nach der Formel ln1N mit einer
1
Wahrscheinlichkeit von ln 21512 ≈ 355
Primzahl
• da nur ungerade Zahlen betrachtet werden müssen ist die
2
Wahrscheinlichkeit sogar ≈ 355
• Fazit: Diese Art der Primzahl-Suche ist in der Praxis tatsächlich
sinnvoll
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 6
Primzahltests und Faktorisierung
§1 Einleitung
Welche Primzahltests gibt es?
• früher Primzahltest: Sieb des Eratosthenes schon im 3. Jh. v.Chr.
• moderne Tests lassen sich in zwei Gruppen unterteilen:
– deterministische Tests
∗ eindeutig, aber nicht so schnell
∗ lange offene Frage: ist polynomielle Laufzeit möglich?
– probabilistische Tests
∗ schnell, dafür Fehlermöglichkeit
∗ bereits 1977 probabilistischer Test mit polynomieller Laufzeit
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 7
Primzahltests und Faktorisierung
§2 Probabilistische Primzahltests
Inhalt
1. Einleitung
2. Probabilistische Primzahltests
• Mathematische Grundlagen
• Miller-Rabin Primzahltest
3. Deterministische Primzahltests
4. Fazit
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 8
Primzahltests und Faktorisierung
§2 Probabilistische Primzahltests
Probabilistische Algorithmen
• probabilistische Algorithmen sind schnell - liefern aber mit einer
gewissen Wahrscheinlichkeit ein falsches Ergebnis
• ein einseitiger probabilistischer Algorithmus liefert mit einer
Wahrscheinlichkeit ≥ 12 das richtige Ergebnis
• durch entsprechende Zahl von Wiederholungen lässt sich die
Fehlerwahrscheinlichkeit unter eine beliebig niedrige Schranke senken
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 9
Primzahltests und Faktorisierung
§2 Probabilistische Primzahltests
Probabilistische Primzahltests
• Solovay-Strassen-Test
– erster probabilistischer Primzahltest: vorgestellt 1977 von Robert
Solovay (IBM) und Volker Strassen (Universität Zürich)
– <
1
2
und Laufzeit polynomiell in O((log n)3 )
• Miller-Rabin-Test
– vorgestellt 1980 von Michael O. Rabin, basiert auf Gary Millers
deterministischem Test von 1976
– <
1
4
und Laufzeit ebenfalls O((log n)3 )
• ECPP - Elliptic Curve Primality Proving
– erste Variante 1986 von Goldwasser und Kilian, verbessert 1992
von Adleman und Huang
– basierend auf Theorie elliptischer Kurven, Laufzeit O((ln n)4 )
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 10
Primzahltests und Faktorisierung
'
§2 Probabilistische Primzahltests
Monte-Carlo-Algorithmus
Definition
Ein yes-biased Monte-Carlo-Algorithmus ist ein probabilistischer Algorithmus für Entscheidungsprobleme,
bei dem Antwort ,,ja” immer korrekt ist - Antwort
,,nein” kann jedoch mit Fehlerwahrscheinlichkeit falsch sein. Ein no-biased Monte-Carlo-Algorithmus
wird analog definiert.
&
Beispiele: Monte-Carlo-Algorithmen für zusammengesetzte Zahlen
$
%
• yes-biased: Tests von Solovay-Strassen und Miller-Rabin
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 11
Primzahltests und Faktorisierung
'
§2 Probabilistische Primzahltests
Las-Vegas-Algorithmus
Definition
Ein Las-Vegas-Algorithmus ist ein probabilisitscher
Algorithmus für Entscheidungsprobleme, dessen Antwort immer korrekt ist - jedoch gibt er möglicherweise
keine Antwort.
&
Beispiel: Las-Vegas-Algorithmus
$
%
• ECPP - erster probabilistischer Test, der die Primalität einer Zahl
beweist
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 12
Primzahltests und Faktorisierung
§2 Probabilistische Primzahltests
Inhalt
1. Einleitung
2. Probabilistische Primzahltests
• Mathematische Grundlagen
• Miller-Rabin Primzahltest
3. Deterministische Primzahltests
4. Fazit
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 13
Primzahltests und Faktorisierung
'
§2 Probabilistische Primzahltests
Der kleine Satz von Fermat
Definition
Sei p eine Primzahl und a eine ganze Zahl und es sei
a 6≡ 0 (mod p). Dann gilt
&
16.06.2005
ap−1 ≡ 1 (mod p)
Universität Potsdam - Kryptographie SoSe 2005
$
%
Seite 14
Primzahltests und Faktorisierung
'
§2 Probabilistische Primzahltests
Quadratische Reste
Definition
Sei p Primzahl und a eine ganze Zahl. Dann heißt a
quadratischer Rest mod p g.d.w. a 6≡ 0 (mod p) und
y 2 ≡ a (mod p) hat eine Lösung y ∈ Zp . Gilt a 6≡ 0
(mod p) und a ist nicht quadratischer Rest modulo p,
dann heißt a nicht-quadratischer Rest modulo p.
&
• Beispiel: Z11
12 = 1
62 = 3
22 = 4
72 = 5
32 = 9
82 = 9
42 = 5
92 = 4
52 = 3
102 = 1
$
%
• 1,3,4,5,9 sind also quadratische Reste modulo 11
• 2,6,7,8,10 sind nicht-quadratische Reste modulo 11
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 15
Primzahltests und Faktorisierung
§2 Probabilistische Primzahltests
Quadratische Reste - Folgerungen
Sei p eine ungerade Primzahl und a ein quadratischer Rest modulo p.
Dann gilt:
∃y ∈ Z∗p , so dass y 2 ≡ a (mod p)
Es gilt auch:
(−y)2 ≡ a (mod p) und y 6≡ −y
(mod p)
Betrachtet man die quadratische Kongruenz
x2 − a ≡ 0 (mod p)
lässt sich faktorisieren
(x − y)(x + y) ≡ 0 (mod p)
also: p | (x − y)(x + y)
daraus folgt
p | (x − y) oder p | (x + y)
weil p Primzahl ist
da p ungerade ist
⇒ x2 − a ≡ 0 (mod p) hat genau zwei Lösungen: x ≡ ±y (mod p)
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 16
Primzahltests und Faktorisierung
§2 Probabilistische Primzahltests
Quadratische Reste - Beispiel 2
• Folgerung:
x2 − a ≡ 0 (mod p) hat genau zwei Lösungen: x1,2 ≡ ±y (mod p)
• Beispiel in Z11 : x2 − a ≡ 0 (mod 11)
'
Inverse in Z11
Quadratischer Rest a
Inverse in Z11
x1 = 10 = −1
(−1)2 = 102 =
1
= 12 = −102
x2 = 1 = −10
x1 = 9 = −2
(−2)2 = 92 =
4
= 22 = −92
x2 = 2 = −9
x1 = 8 = −3
(−3)2 = 82 =
9
= 32 = −82
x2 = 3 = −8
x1 = 7 = −4
(−4)2 = 72 =
5
= 42 = −72
x2 = 4 = −7
x1 = 6 = −5
&
(−5)2 = 62 =
3
= 52 = −62
x2 = 5 = −6
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 17
$
%
Primzahltests und Faktorisierung
§2 Probabilistische Primzahltests
Carmichael-Zahlen
'
Kriterien nach Korselt
1. Eine ungerade, quadratfreie Zahl n ∈ N, so dass
an−1 ≡ 1 (mod n) für alle teilerfremden a ∈ N
2. Für alle Primteiler p von n gilt (p − 1)|(n − 1)
&
• ,,ungünstige” Eigenschaften:
$
%
– Kongruenz des kleinen Fermat’schen Satzes erfüllt für fast alle a
– es gibt unendlich viele Carmichael-Zahlen
• Beispiele für Carmichael-Zahlen:
– 561 = 3 ∗ 11 ∗ 17
– 1105 = 5 ∗ 13 ∗ 17
– 1729 = 7 ∗ 13 ∗ 19
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 18
Primzahltests und Faktorisierung
§2 Probabilistische Primzahltests
Inhalt
1. Einleitung
2. Probabilistische Primzahltests
• Mathematische Grundlagen
• Miller-Rabin Primzahltest
3. Deterministische Primzahltests
4. Fazit
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 19
Primzahltests und Faktorisierung
§2 Probabilistische Primzahltests
Der Miller-Rabin Test
• Idee: nutzt den kleinen Satz von Fermat, umgeht aber das Problem
der Carmichael-Zahlen - deshalb auch ,,The Strong Pseudo-Prime
Test” genannt
• yes-biased Monte-Carlo-Algorithmus für zusammengesetzte Zahlen
mit Fehlerwahrscheinlichkeit < 14
• bei ausreichender Wiederholung (≈ 30 mal) ist die
Wahrscheinlichkeit eines falschen Ergebnisses geringer als die eines
Hardware-Fehlers!
• wird neben Kryptographie z.B. in Programmen wie Maple oder
Mathematica eingesetzt
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 20
Primzahltests und Faktorisierung
§2 Probabilistische Primzahltests
Der Miller-Rabin Test - Funktionsweise
• Grundlage: Nutzung des kleinen Satzes von Fermat
• Problem: Fermat’sche Pseudo-Primzahlen und insbesondere
Carmichael-Zahlen sind falsche Zeugen für die Primalität einer Zahl
• Gedanke: bei Carmichael-Zahlen hält zwar an−1 ≡ 1 (mod n) mit
n Carmichael-Zahl für alle Basen a ausser den eigenen Teilern jedoch gilt nicht ∀a: n|(an−1 − 1), was nach Fermat folgen würde,
wäre n Primzahl
• Faktorisierung nach 3. binomischer Formel:
n−1
n−1
a 2 −1
∗ a 2 +1
an−1 − 1 =
{z
}
|
n−1
n−1
a 4 −1 ∗ a 4 +1
{z
}
|
etc.
• Zahl n kann nur Primzahl sein, falls sie einen dieser Faktoren teilt!
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 21
Primzahltests und Faktorisierung
§2 Probabilistische Primzahltests
Miller-Rabin-Algorithmus
'
Miller-Rabin(n)
$
schreibe n − 1 = 2k ∗ m, wobei m ungerade
wähle einen beliebigen Integer-Wert a, 1 ≤ a ≤ n − 1
b := am mod n
k
// k-te Wurzel von a2 ∗m
if b ≡ 1 (mod n)
then return (,,n ist Primzahl”)
for i in 0 to k − 1
8
>
>
<if b ≡ −1
do
i
// b = a2 ∗m
(mod n)
then return (,,n ist Primzahl”)
>
>
:
else b := b2 mod n
return (,,n ist keine Primzahl”)
&
16.06.2005
k
// an−1 ≡ a2 ∗m ≡
6 1 (mod n)
Universität Potsdam - Kryptographie SoSe 2005
%
Seite 22
Primzahltests und Faktorisierung
§2 Probabilistische Primzahltests
Der Miller-Rabin Test - Korrektheit
• zu zeigen: Bei Ausgabe ,,n ist keine Primzahl” gilt: n nicht prim.
• Annahme: Ausgabe ,,n ist keine Primzahl”, aber n ist prim
aus der Ausgabe ,,n ist
keine Primzahl” folgt
da n prim sein soll gilt
nach Fermat:
a
a
2i m
2k m
a
wir wissen aber
a2
man erhält schließlich
16.06.2005
a
k−1
für 0 ≤ i ≤ k − 1
≡ 1 (mod n)
2k−1 m
dann ist
damit ist wiederum
6≡ −1 (mod n)
m
2k−2 m
=a
2k m
2
≡
√
1 ≡ ±1 (mod n)
6≡ −1 (mod n), also: a2
≡
√
da n − 1 = 2k m
k−1
1 ≡ ±1 (mod n)
am ≡ 1 (mod n) ⇒ Widerspruch!
Universität Potsdam - Kryptographie SoSe 2005
m
da n prim gibt es genau zwei Wurzeln
≡ 1 (mod n)
usw.
der Algorithmus hätte in diesem
Fall ,,n ist Primzahl” geantwortet
Seite 23
Primzahltests und Faktorisierung
§3 Deterministische Primzahltests
Inhalt
1. Einleitung
2. Probabilistische Primzahltests
• Mathematische Grundlagen
• Miller-Rabin Primzahltest
3. Deterministische Primzahltests
4. Fazit
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 24
Primzahltests und Faktorisierung
§3 Deterministische Primzahltests
Deterministische Primzahltests
• lange gab es nur determinitische Tests mit polynomieller Laufzeit,
die die Richtigkeit der unbewiesenen Riemannschen Hypothese
voraussetzten oder nur bestimmte Zahlen (z.B. Lucas-Lehmer-Test
für Mersenne-Zahlen) testeten
• Richtigkeit der Riemannschen Hypothese vorauszusetzen
problematisch, da somit mathematisches Fundament unsicher - fatal
falls Riemannsche Hypothese widerlegt würde
• Millers Grundlage für Miller-Rabin-Test gehört zu dieser Sorte
deterministischer Tests
• Wissenstand vor 2002: Problem PRIMES ist nicht NP-vollständig offene Frage war: liegt es in P?
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 25
Primzahltests und Faktorisierung
§3 Deterministische Primzahltests
Der AKS-Test
• veröffentlicht im August 2002 durch Manindra Agrawal, Neeraj
Kayal und Nitin Saxena vom indischen Institute of Technology
Kanpur unter dem Titel ,,PRIMES is in P”
• Durchbruch in der mathematischen Welt: Laufzeit O((log n)12 )
• Idee: basiert auf einer Erweiterung des kleinen Satzes von Fermat
auf Polynomring Z[x]
• (Anmerkung: Löst nicht das Problem, ob P = NP!)
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 26
Primzahltests und Faktorisierung
§4 Fazit
Inhalt
1. Einleitung
2. Probabilistische Primzahltests
• Mathematische Grundlagen
• Miller-Rabin Primzahltest
3. Deterministische Primzahltests
4. Fazit
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 27
Primzahltests und Faktorisierung
§4 Fazit
Fazit
• Derzeit sind probabilistische Primzahltests am schnellsten
• In der Praxis werden besonders der Miller-Rabin-Test und ECPP
erfolgreich eingesetzt
• Tests der AKS-Familie sind zeitlich - noch? - um Faktor ≈ 105
langsamer verglichen mit den Spitzengeschwindigkeiten
probabilistischer Tests
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 28
Primzahltests und Faktorisierung
'
§4 Fazit
Ausblick
P. Leyland (Universität Oxford Computing Services) schreibt zu AKS:
,,One reason for the excitement within the mathematical community is not only does this algorithm settle
a long-standing problem, it also does so in a brilliantly
simple manner. Everyone is now wondering what else
has been similarly overlooked.”
&
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
$
%
Seite 29
Primzahltests und Faktorisierung
§4 Fazit
Literatur
[1] Douglas R. Stinson. Cryptography - Theory and Practice, pages 171–180.
Chapman & Hall/CRC, second edition, 2002.
[2] Neeraj Kayal Agrawal, Manindra and Nitin Saxena. PRIMES is in P, August 2002.
[3] Evangelos Kranakis. Primality and Cryptography. Wiley-Teubner series in
computer science, 1986.
[4] Volker Strassen. Zufalls-Primzahlen und Kryptographie, M ärz 1996.
[5] B.L. van der Waerden. Algebra I. Springer-Verlag, 1971.
[6] Eric W. Weisstein. Elliptic curve primality proving. From MathWorld–A Wolfram
Web Resource, 2005.
http://mathworld.wolfram.com/EllipticCurvePrimalityProving.html.
[7] Folkmar Bornemann. PRIMES is in P: A Breakthrough for ”Everyman”. Notices
of the AMS, Mai 2003.
[8] Ganze Zahlen, Teiler und Primzahlen.
http://www.biologie.de/sixcms/ media.php/370/Leseprobe.106690.pdf.
[9] Wikipedia. http://www.wikipedia.org.
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 30
Primzahltests und Faktorisierung
Dank
Danke für die Aufmerksamkeit ...
...und jetzt weiter mit: Faktorisierung
16.06.2005
Universität Potsdam - Kryptographie SoSe 2005
Seite 31
Herunterladen