13.07.2015 Aufrufe

Primzahltests und Faktorisierungsalgorithmen

Primzahltests und Faktorisierungsalgorithmen

Primzahltests und Faktorisierungsalgorithmen

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Primzahltests</strong><strong>und</strong><strong>Faktorisierungsalgorithmen</strong>Nach einer 2-std. Vorlesung vonProf. Dr. Peter HauckWintersemester 2003/2004Herstellung der L A TEX-Fassung: Johannes Spielmann


InhaltsverzeichnisEinführung 31 Faktorisierung <strong>und</strong> Primzahlerzeugung in der Kryptologie 52 Elementare Hilfsmittel aus der Algebra <strong>und</strong> Zahlentheorie 83 Komplexität gr<strong>und</strong>legender Algorithmen 224 Klassische Methoden 285 Der Primzahltest von Agrawal, Kayal <strong>und</strong> Saxena 396 Pollards Rho-Methode zur Faktorisierung von Zahlen 497 Das quadratische Sieb 538 Faktorisierung mit elliptischen Kurven 602


EinführungDie Vorlesung behandelt zwei gr<strong>und</strong>legendeProblemea) Gegeben: n ∈ N, n > 1Wie kann man feststellen, ob n Primzahl ist, <strong>und</strong> mit welchem Aufwand?b) Gegeben: eine zusammengesetzte Zahl n ∈ N.Wie kann man a, b > 1, a, b ∈ N finden, so dass n = a·b, <strong>und</strong> mit welchemAufwand?Wichtige Mathematiker, die sich mit diesen Fragen beschäftigt haben:• Erathostenes (≈ 284 - 204 v. Chr.)• Fibonacci (≈ 1180 - 1250)• Fermat (1601 - 1665)• Euler (1707 - 1783)• Legendre (1752 - 1833)• Gauss (1777 - 1855)In neuerer Zeit weniger Interesse an diesen Problemen bis vor ca. 25 - 30 Jahren.Gründe:• Wachsende Bedeutung der Komplexitätstheorie in der Informatik; dieobigen Probleme stellen besonders interessante Fälle dar.• Entwicklung in der Kryptologie: Public Key Systems.3


Literaturverzeichnis[1] D.M. Bressoud, Factorization and Primality Testing, Springer 1989[2] J. Buchmann, Einführung in die Kryptographie, Springer 2001[3] R. Crandall, C. Pomerance, Prime Numbers - A ComputationalPerspective, Springer 2001[4] D.E. Knuth, The Art Of Computer Programming, Vol. 2, Addison-Wesley 1998[5] D.E. Knuth, The Art Of Computer Programming, Vol. 3, Chapter 4,Addison-Wesley 1998[6] N. Koblitz, A Course in Number Theory and Cryptography, Springer1994[7] E. Kranakis, Primality and Cryptography, Wiley-Teubner 1986[8] A.K. Lenstra, H.W. Lenstra jr., Algorithms in Number Theory,Chapter 12 in Handbook of Theoretical Computer Science, Ed. J. v.Leeuwen, Elsevier 1990[9] A. Pethó, Algebraische Algorithmen, Vieweg 1999[10] H.W. Lenstra, R. Tijdeman (Eds.), Computational Methods inNumber Theory, Part 1, Math. Centrum Amsterdam 1984[11] Paulo Ribenboim, The Book Of Prime Number Records, Springer1989[12] Hans Riesel, Prime Numbers and Computer Methods for Factorization,Birkhäuser 1985[13] S.Y. Yan, Number Theory for Computing, Springer 2002[14] J. von zur Gathen, J. Gerhard, Modern Computer Algebra, CambridgeUniversity Press 1999[15] G.H. Hardy, E.M. Wright, An Introduction to the theory of numbers,Clarendon Press 1979[16] O. Forster, Algorithmische Zahlentheorie, Vieweg 19964


1 Faktorisierung <strong>und</strong>Primzahlerzeugung in derKryptologie1.1 Idee der Public-Key-Kryptographie(Diffie, Hellmann, 1976)Jeder Teilnehmer B (Bob) hat einen öffentlichen Schlüssel P B <strong>und</strong> einen geheimen(privaten) Schlüssel G B . P B wird öffentlich gemacht, G B ist nur Bbekannt. Zu jedem öffentlichen Schlüssel P B gehört eine VerschlüsselungsfunktionE PB , die ebenfalls bekannt ist.Alice (A) will B eine Nachricht m senden. Sie verschlüsselt m mit E PB ,m → E PB (m) =: c <strong>und</strong> sendet c an Bob.Zwei Bedingungen müssen für die Funktion <strong>und</strong> Sicherheit eines solchen Systemserfüllt sein:• m darf mit realistischem Aufwand bei bloßer Kenntnis von P B <strong>und</strong> c nichtaus c = E PB (m) berechenbar sein, d.h. E PB muss ”Einwegfunktion“ sein.• B muss m aus c effizient berechnen können. Das gelingt mit der ZusatzinformationG B : m = D GB (c) = E −1P B(c); E PB ist also eine Falltürfunktion(Trap Door Function).Es ist nicht bekannt, ob Einwegfunktionen existieren (bei präziser Definitiondieses Begriffs), denn deren Existenz impliziert zumindest P ≠ NP. Es gibtaber Kandidaten. Eine der wichtigsten Klassen für die Kryptographie sind dieRSA-Funktionen.5


Kapitel 1: Faktorisierung <strong>und</strong> Primzahlerzeugung in der Kryptologie1.2 Das RSA-Verfahren(Rivest, Shamir, Adleman, 1978)Bezeichnungen: n ∈ N, ϕ(n) = #{k ∈ N : 0 < k < n, ggT(k, n) = 1},Z n = Z/nZ der Ring der ganzen Zahlen modulo n.RSA-Funktion: n = p · q, p ≠ q Primzahlen. e ∈ N mit ggT(e, ϕ(n)) = 1.(In diesem Fall ist ϕ(n) = (p − 1)(q − 1).)RSA e : Z n → Z n : x ↦→ x e .RSA e ist bijektive Funktion Z n → Z n . Die inverse Funktion ist RSA d , wobeid eindeutig bestimmt ist durch 0 < d < ϕ(n) <strong>und</strong> ed ≡ 1 mod ϕ(n). (BeiKenntnis von ϕ(n) ist d leicht mit dem sog. erweiterten eukl. Algorithmus zubestimmen.)RSA-Verfahren:a) Schlüsselerzeugung (durch B)(1) Wähle zwei große Primzahlen p, q, p ≠ q, n = pq.(2) Wähle e ∈ N mit ggT(e, ϕ(n)) = 1. Dann ist P B = (n, e).(3) Berechne d mit 0 < d < ϕ(n) <strong>und</strong> ed ≡ 1 mod ϕ(n), dann istG B = (n, d).[ p, q <strong>und</strong> ϕ(n) müssen auch geheim gehalten werden, am bestensofort gelöscht, sie werden nach der Berechnung von d nicht mehrbenötigt.]b) Verschlüsselung: A will B eine Nachricht m senden.0 ≤ m < n durch Codierung <strong>und</strong> ggf. Blockerzeugung.P B = (n, e), also c = m e mod n.c) Entschlüsselung durch B:c d mod n = mDie Korrektheit folgt im Wesentlichen aus dem Satz von Euler (2.22): IstggT(m, n) = 1, so ist m ϕ(n) ≡ 1 (mod n).• <strong>Primzahltests</strong> werden benötigt zur Erzeugung der Schlüssel• Für die Sicherheit des Verfahrens ist entscheidend, dass es keine schnellen<strong>Faktorisierungsalgorithmen</strong> gibt.Gegeben: (n, e)Hat man für eines der folgenden Probleme einen (probabilistischen) polynomialenAlgorithmus, dann für alle:(1) Bestimmung der Faktorisierung von n6


Kapitel 1: Faktorisierung <strong>und</strong> Primzahlerzeugung in der Kryptologie(2) Bestimmung von ϕ(n)(3) Bestimmung von dBeweis: (1) ⇒ (2): n = pq ⇒ ϕ(n) = (p − 1)(q − 1)(2) ⇒ (3): Aus ϕ(n) <strong>und</strong> e wird d mit erweitertem euklidischen Algorithmusbestimmt.(3) ⇒ (1): Dazu benötigt man Hilfsmittel aus den folgenden Kapiteln (v.a.Kap.2 <strong>und</strong> 4). Wir gehen hier nicht näher darauf ein.Einen Beweis findet man z.B. im Skript zur Vorlesung ”Kryptologie <strong>und</strong> Datensicherheit“(P. Hauck, WS 2002/03), 5.3.c).(http://www-dm.informatik.uni-tuebingen.de/Skripte/Kryptologie.pdf.zip)1.3 Weitere Anwendungen von <strong>Primzahltests</strong> <strong>und</strong><strong>Faktorisierungsalgorithmen</strong> in der Kryptologie• Diffie-Hellman, El Gamal benötigen große Primzahlen.• Rabin-Verfahren: n = pq, 0 ≤ x < n, x ↦→ x 2 mod n. Bestimmung vonQuadratwurzeln mod n ist beweisbar genauso schwierig (im Sinne derÄquivalenz in (1.2)) wie die Faktorisierung von n.• Pseudozufallsfolgen: Blum-Blum-Shub: n = pq, erzeuge Bitfolge b 1 , b 2 ,. . ., x 1 binär codierte Zahl < n, x j = x 2 j−1 mod n, b j niedrigstes Bit vonx j .7


2 Elementare Hilfsmittel aus derAlgebra <strong>und</strong> ZahlentheorieWir benötigen aus der Algebra: Gruppen <strong>und</strong> Ringe2.1 Definitiona) Eine nichtleere Menge G mit Verknüpfung · : G × G : (x, y) ↦→ x · y heißtGruppe, falls gilt:(1) g · (h · k) = (g · h) · k für alle g, h, k ∈ G (Assoziativität)(2) Es existiert ein Element e: e · g = g · e = g für alle g ∈ G(3) Zu jedem g ∈ G existiert ein inverses Element g −1g · g −1 = g −1 · g = eb) G heißt abelsch oder kommutativ, falls (4) g · h = h · g für alle g, h ∈ Gc) Ordnung von G: |G| Anzahl der Elemente in Gd) ∅ ≠ H ⊆ G heißt Untergruppe von G, falls H bezüglich der Verknüpfungauf G selbst eine Gruppe ist; man schreibt H ≤ G.2.2 Bemerkunga) Das neutrale Element ist eindeutig.b) Die inversen Elemente sind eindeutig.c) g ∈ G: g 0 = e, n ∈ N : g n = g n−1 · g, n ∈ Z\N 0 : g n = (g −1 ) −ng n · g m = g n+m , g −n = (g −1 ) n = (g n ) −1 , (g n ) m = g nm für alle n, m ∈ Zd) (g · h) −1 = h −1 · g −1e) In abelschen Gruppen wird die Verknüpfung oft mit + benannt, das neutraleElement mit 0, das inverse Element zu g mit −g. (In beliebigenGruppen heißt e meist ”1“.)8


Kapitel 2: Elementare Hilfsmittel aus der Algebra <strong>und</strong> Zahlentheorief) H ≤ G, so ist 1 ∈ H.g) Sei ∅ ≠ H ⊆ G. Dann ist H ≤ G genau dann, wenn gilt:(1) Für alle h 1 , h 2 ∈ H gilt: h 1 h 2 ∈ H <strong>und</strong>(2) Für alle h ∈ H gilt: h −1 ∈ H.2.3 Beispielea) (Z, +) ist abelsche Gruppe.b) {−1, 1} ⊆ Z ist bezüglich · eine Gruppe.c) (Z, +), n ∈ Z. Dann ist nZ = {na : a ∈ Z} Untergruppe von (Z, +) (<strong>und</strong>nZ = (−n)Z).Dies sind alle Untergruppen von Z. Das folgt aus Division mit Rest:a, b ∈ Z, b ≠ 0, ∃ k, r ∈ Z : a = kb + r, 0 ≤ r < |b|d) Q, R, C Gruppen bezüglich +.(Q\{0}), (R\{0}), (C\{0}) sind Gruppen bezüglich ·.2.4 DefinitionSei G Gruppe, H ≤ G. Ist g ∈ G, dann heißt Hg = {hg : h ∈ H} eine(Rechts-)Nebenklasse von H in G.2.5 SatzSei G Gruppe, H ≤ G.a) Sind g 1 , g 2 ∈ G, so ist entweder Hg 1 = Hg 2 oder Hg 1 ∩ Hg 2 = ∅.b) Hg 1 = Hg 2 ⇔ g 1 g2 −1 ∈ Hc) Gibt es nur endliche viele verschiedene Nebenklassen von H in G (z.B.wenn G endlich), Hg 1 , . . . , Hg m , dann ist G = ⋃ mi=1 Hg i als disjunkteVereinigung. Es heißt m der Index von H in G, m = [G : H].d) Es ist |Hg| = |H| für alle g ∈ G.e) (Satz von Lagrange) Ist G endlich, H ≤ G, so ist |G| = [G : H] · |H|,insbesondere teilt die Ordnung |H| die Ordnung |G|.Beweis:9


Kapitel 2: Elementare Hilfsmittel aus der Algebra <strong>und</strong> Zahlentheoriea) Angenommen Hg 1 ∩ Hg 2 ≠ ∅ ⇒ ∃h 1 , h 2 ∈ H : h 1 g 1 = h 2 g 2 , alsog 1 = h1 −1 h 2g 2 . Sei h ∈ H, hg 1 = hh −11 h 2g 2 ∈ Hg 2 , folglich Hg 1 ⊆ Hg 2 .Umkehrung analog.a)b) Hg 1 = Hg 2 ⇔ g 1 ∈ Hg 2 ⇔ g 1 = hg 2 für ein h ∈ H ⇔ g 1 g2 −1 ∈ H.c) Nur endlich viele verschiedene Nebenklassen Hg 1 , . . . , Hg m . G = ⋃ mi=1 Hg i– Disjunktheit nach (a). g ∈ G : g ∈ Hg = Hg i für ein i.d) |Hg| = |H|: Konstruiere H → Hg : h ↦→ hg; bijektiv, da h 1 g = h 2 g ⇔h 1 = h 2 .e) G endlich, |G| = |H| · [G : H] folgt aus (c) <strong>und</strong> (d).2.6 BemerkungAbelsche Gruppen mit Verknüpfung +, H ≤ G, Nebenklasse von H in G: H+g.H + g 1 = H + g 2 ⇔ g 1 − g 2 ∈ H. (g 1 − g 2 steht für g 1 + (−g 2 ).)2.7 SatzSei (G, +) eine abelsche Gruppe, H ≤ G. Die Menge aller Nebenklassen von Hin G wird abelsche Gruppe mit (H + g 1 ) ⊕ (H + g 2 ) := H + (g 1 + g 2 ). Sie wirdbezeichnet mit G/H, die Faktorgruppe von G nach H, |G/H| = [G : H]. FallsG endlich: |G/H| = |G||H| .Beweis: Zu zeigen: ⊕ ist wohldefiniert.Zu zeigen: H+g 1 = H+g ′ 1 , H+g 2 = H+g ′ 2 , so gilt H+(g 1+g 2 ) = H+(g ′ 1 +g′ 2 ).Nach Voraussetzung: g 1 − g ′ 1 ∈ H, g 2 − g ′ 2 ∈ H⇒ H ∋ (g 1 − g ′ 1) + (g 2 − g ′ 2) = (g 1 + g 2 ) − (g ′ 1 + g ′ 2)⇒ (2.5) H + (g 1 + g 2 ) = H + (g ′ 1 + g′ 2 )Neutrales Element: H + 0 = H.Inverses Element: −(H + g) = H − g = H + (−g).Assoziativität <strong>und</strong> Kommutivität folgen aus den entsprechenden Eigenschaftenin G.Wir schreiben in Zukunft + statt ⊕.10


Kapitel 2: Elementare Hilfsmittel aus der Algebra <strong>und</strong> Zahlentheorie2.8 Beispiel(Z, +) hat Untergruppen nZ, n ∈ N 0 . Falls n ≠ 0, existieren genau n verschiedeneNebenklassen von nZ in Z: nZ = nZ+0, nZ+1, nZ+2, . . ., nZ+(n −1).nZ + a = nZ + b ⇔ a − b ∈ nZ ⇔ n|(a − b) ⇔ a ≡ b (mod n).a = kn + r, 0 ≤ r < n ⇒ nZ + a = nZ + r.Z/nZ = {nZ + 0, . . .,nZ + (n − 1)}. Identifiziere Z/nZ mit {0, . . .,n − 1} mitVerknüpfung: Addition in Z (mod n).|Z/nZ| = n.2.9 SatzSei G eine Gruppe, g ∈ G.a) Sei 〈g〉 = {g m : m ∈ Z}. Dann ist 〈g〉 ≤ G. 〈g〉 heißt die von g erzeugte(zyklische) Untergruppe.b) Genau dann ist 〈g〉 unendlich, falls g m ≠ g n für alle n, m ∈ Z mit m ≠ n.c) Ist 〈g〉 endlich, so existiert ein kleinstes k ∈ N mit g k = 1. k heißt Ordnungvon g ( o(g) = k ), 〈g〉 = {1 = g 0 , g, g 2 , . . .,g k−1 }, |〈g〉| = o(g).d) Ist o(g) = k endlich, l ∈ Z, l = kt + r, 0 ≤ r < k, dann ist g l = g r ;insbesondere g l = 1 ⇔ k|l. Daher: Ist G endlich, so gilt: g |G| = 1.e) Ist o(g) = k < ∞, l ∈ Z, dann o(g l ) =kggT(l,k) . Insbesondere o(gl ) =o(g) ⇔ 〈g l 〉 = 〈g〉 ⇔ ggT(l, k) = 1.Beweis:a) Folgt aus 2.2 c)b), c), d) Angenommen g n = g m für gewisse n, m(n > m). Dann g n−m = 1.Daher existiert ein kleinstes k ∈ N mit g k = 1. Dann: g 0 = 1, g 1 , . . .g k−1paarweise verschieden. 〈g〉 = {g 0 , g 1 , . . .,g k−1 }. g l ∈ 〈g〉, l ∈ Z, l = tk +r, 0 ≤ r < k, g l = g tk+r = (g k ) t · g r = g r ∈ {1, g 1 , . . . , g k−1 }. k = o(g)= |〈g〉| ∣ ∣ |G|, |G| = s · k, g |G| = g sk = (g k ) s = 1e) Sei ggT(l, k) = s. (g l ) k s = g lk s = (g k ) l s = 1, o(g l ) ≤ k s . Sei o(gl ) = u, danng lu = 1 ⇒ k|lu ⇒ k s | l s · u. Da k s , l s teilerfremd sind, folgt k s |u = o(gl ).Also o(g l ) = k s . 11


Kapitel 2: Ringe2.10 Beispiel(Z, +) ist zyklisch, Z = 〈1〉 (additive Schreibweise !!!!).Jeder Untergruppe von Z ist von der Form hZ, h ∈ N 0 : Z/hZ = 〈1 + hZ〉,o(1 + hZ) = h, 〈l + hZ〉 = 〈1 + hZ〉 ⇔ ggT(l, h) = 1.Wir wenden uns jetzt den wichtigsten algebraischen Strukturen mit zwei Verknüpfungenzu, nämlich den Ringen.2.11 Definitiona) Eine Menge R ≠ ∅ heißt (kommutativer) Ring, falls gilt: In R gibt eszwei Verknüpfungen + <strong>und</strong> · mit folgenden Eigenschaften:(1) (R, +) ist abelsche Gruppe, neutrales Element 0(2) (R, ·) ist assoziativ <strong>und</strong> kommutativ(3) (a + b) · c = ac + bc für alle a, b, c ∈ R (Distributivgesetz)b) Ring R heißt Ring mit Eins, falls Element 1 ∈ R existiert, 1 ≠ 0, so dassa · 1 = 1 · a = a für alle a ∈ R.c) Ist R\{0} eine Gruppe bezüglich · mit neutralem Element 1, dann heißtR ein Körper.d) U ≠ ∅, U ⊆ R heißt Unterring, falls U bezüglich + Untergruppe von(R, +) ist <strong>und</strong> falls U abgeschlossen ist bezüglich ·.Beachte: In Ringen mit Eins brauchen Unterringe nicht die Eins zu enthalten.2.12 Beispielea) (Z, +, ·) Ring mit Einsn ∈ Z, (nZ, +, ·) Unterringe von Z (ohne Eins, falls n ≠ ±1)b) Q, R, C Körperendliche Körper12


Kapitel 2: Ringe2.13 BemerkungR Ring, a, b ∈ R, n ∈ Na) a · 0 = 0 · a = 0b) (−a) · b = a · (−b) = −(a · b)c) (a + b) n = ∑ n( n)i=0 i a i b n−i , wobei a 0 b n = b n <strong>und</strong> b 0 a n = a n2.14 DefinitionSei R ein Ring (komm.). Ein Unterring I von R heißt Ideal, falls gilt: Für allea ∈ I <strong>und</strong> alle r ∈ R gilt: a · r ∈ IEinfache Konstruktion für Ideale in R: Wähle b ∈ R. Bilde bR = {br : r ∈ R};dies ist ein Ideal (sogenanntes Hauptideal).2.15 SatzSei I Ideal in R, R/I = {I + r : r ∈ R}, Gruppe bezüglich +.Definiere ⊙ auf R/I durch (I+r 1 )⊙(I+r 2 ) := I+r 1 r 2 . Dann ist ⊙ wohldefiniert,R/I wird Ring; falls R Ring mit Eins, so auch R/I, Einselement: I + 1.R/I heißt Faktorring von R nach I. (Schreibe · statt ⊙)Beweis: Zu zeigen: I + r 1 = I + r 1 ′ , I + r 2 = I + r 2 ′ , so ist I + r 1r 2 = I + r 1 ′ r′ 2 :I + r 1 = I + r 1 ′ ⇔ r 1 − r 1 ′ ∈ I ⇒ r 1 r 2 − r 1r ′ 2 = (r 1 − r 1)r ′ 2 ∈ I. r 2 − r 2 ′ ∈ I ⇒r 1 ′ r 2 − r 1 ′ r′ 2 ∈ I. Dann auch r 1r 2 − r 1 ′ r′ 2 = r 1r 2 − r 1 ′ r 2 + r 1 ′ r 2 − r 1 ′ r′ 2 ∈ I, d.h.I + r 1 r 2 = I + r 1 ′ r′ 2 .Rest ist klar.2.16 Beispiela) n ∈ Z: nZ sind Ideale in Z (Hauptideale). Dies sind auch alle Ideale in Z:Sei I Ideal in Z. Ist I = 0, so I = 0 · Z. I ≠ 0. Da mit a ∈ I auch −a ∈ I,enthält I ein Element aus N. Sei n die kleinste natürliche Zahl in I. KlarnZ ⊆ I. Sei a ∈ I. Division mit Rest: a = nk + r, 0 ≤ r < n.13


Kapitel 2: RingeWahl von n: r = 0.r =}{{}a −}{{}nk ∈ I∈ I ∈ nZ ⊆ Ia = nk ∈ nZI = nZ(Zeigt auch, dass nZ sämtliche Untergruppen von (Z, +) sind.)b) Z/nZ = {0+nZ, 1 +nZ, . . . , (n − 1)+ nZ} kommutativer Ring mit Eins.Identifiziert man Z/nZ mit Z n = {0, 1, . . ., (n − 1)}, so + <strong>und</strong> · in Z n :Addiere bzw. multipliziere in Z, reduziere dann mod n (d.h. nimm denRest bei Teilung durch n).2.17 SatzSeien a, b ∈ Z. DannaZ + bZ = {ar + bs | r, s ∈ Z}ein Ideal, aZ + bZ = dZ, d = ggT(a, b).Insbesondere: ggT(a, b) = an + br für geeignete n, r ∈ Z.Beweis: aZ+bZ = dZ Ideal. 2.16a: aZ+bZ = dZ für ein geeignetes d ≥ 0. Ista = b = 0, so d = 0 √ . Sei also (a, b) ≠ (0, 0). d = d · 1 = an + br für geeigneten, r ∈ Z. ggT(a, b) | d. Andererseits aZ ⊆ dZ, bZ ⊆ dZ also a = ds, b = dt fürgeeignete s, t ∈ Zd | a <strong>und</strong> d | b d ≥ 0, daher d ≤ ggT(a, b).Also d = ggT(a, b).□2.18 Euklidischer <strong>und</strong> Erweiterter EuklidischerAlgorithmusa) Euklidischer Algorithmus: ggT-Bestimmung. Beruht auf a = qb + r, 0 ≤r < |b|, dann ggT(a, b) = ggT(b, r). Sei o.B.d.A. a ≥ b ≥ 0 (nicht beide14


Kapitel 2: Ringe= 0)Setze a 0 = a, a 1 = ba 0 = q 1 a 1 + a 2 0 ≤ a 2 < a 1a 1 = q 2 a 2 + a 3 0 ≤ a 3 < a 2a n−1.= q n a n + 0 (Terminiert!)ggT(a, b) = ggT(a 0 , a 1 ) = ggT(a 1 , a 2 ) = . . . = ggT(a n−1 , a n )= ggT(a n , 0) = a nb) EEA liefert n, r ∈ Z mit ggT(a, b) = an + br. a ≥ b ≥ 0 (nicht beidegleich 0)a 0 = a, a 1 = b, a j wie in a). Zeige, wie man u j , v j ∈ Z bestimmt mita j = au j + bv j , j = 0, . . .,n (j = n : u = u n , v = v n )j = 0 : u 0 = 1, v 0 = 0j = 1 : u 1 = 0, v 1 = 1Sei j ≥ 2: Darstellung für a j−2 , a j−1 nach a):a j = a j−2 − a j−1 q j−1=}{{}Ind.→ Rekursionsformel für u j , v j .au j−2 + bv j−2 − (au j−1 + bv j−1 )q j−1= a(u j−2 − u j−1 q j−1 ) + b(v j−2 − v j−1 q j−1 )} {{ } } {{ }u jv j2.19 Chinesischer RestsatzSeien m 1 , . . . , m r paarweise teilerfremde Zahlen, d.h. ggT(m i , m j ) = 1 ∀i ≠ j.Seien a 1 , . . . , a r ∈ Z. Dann gibt es genau ein x ∈ Z, 0 ≤ x < m 1 · · · m r mitx ≡ a j mod m j für alle j = 1, . . .,r, d.h. x+m j Z = a j +m j Z für j = 1, . . .,r.15


Kapitel 2: RingeBeweis: Setze m = ∏ ri=1 m i, M j = m m jfür j = 1, . . . r.Es ist dann ggT(m j , M j ) = 1.Nach (2.17) <strong>und</strong> (2.18) existieren y j , z j ∈ Z mit y j M j + z j m j = 1 (erweiterterEuklidischer Algorithmus).Es ist also y j M j ≡ 1 (mod m j ).Dann a j y j M j ≡ a j (mod m j ).Für i ≠ j ist m j |M i ⇒ a i y i M i ≡ 0 (mod m j )Setze x := ∑ ri=1 a iy i M i mod m (= Rest bei Division von ∑ ri=1 a iy i M i durchm).x ≡ a j (mod m j ), j = 1, . . .,rFür jedes j sind fast alle Summanden ≡ 0 (mod m i )(i ≠ j), bis auf einen, der≡ a j ist. x hat also die gewünschte Eigenschaft.Angenommen, x ≡ a j ≡ x ′ (mod m j ) für alle j.m j paarweise teilerfremd: x ≡ x ′ (mod m).m|x − x ′ (x ≥ x ′ oBdA).0 ≤ x − x ′ < m ⇒ x − x ′ = 0 ⇒ x = x ′Der Beweis von Satz 2.19 liefert einen Algorithmus zur Bestimmung von x.Beispiel: Es soll sein: x ≡ 2 (mod 3), x ≡ 4 (mod 11), x ≡ 1 (mod 26), dannist M 1 = 11 · 26 = 286, M 2 = 3 · 26 = 78, M 3 = 3 · 11 = 33. Weiter isty 1 = 1, y 2 = 1, y 3 = 15. Also ist ∑ 3i=1 a iy i M i = 2 · 286 + 4 · 78 + 15 · 33 = 1379.m = 858, also ist x = 1379 mod 858 = 1379 − 858 = 521.2.20 DefinitionR Ring mit EinsR ∗ = {a ∈ R : es existiert b ∈ R mit ab = 1} ∋ 1R ∗ ⊆ R\{0}, Elemente von R ∗ heißen Einheiten.2.21 Bemerkunga) (R ∗ , ·) ist Gruppe, die sogenannte Einheitengruppe von R.b) R Körper ⇔ R ∗ = R\{0}2.22 Satza) Z ∗ = {1, −1}16


Kapitel 2: Ringeb) (Z/nZ) ∗ = {a + nZ : a ∈ Z, ggT(a, n) = 1} = {a + nZ : 0 ≤ a


Kapitel 2: Ringe2.25 DefinitionSei R Ring mit Eins, dann definiere Polynomring über R:R[X] = {(a 0 , a 1 , a 2 , . . .) : a i ∈ R, ∃ k ∈ N : a n = 0 für alle n > k}mit folgenden Verknüpfungen: komponentenweise Addition;Multiplikation: (a 0 , a 1 , . . .)(b 0 , b 1 , . . . ) = (c 0 , c 1 , . . . ) mit c n := ∑ ni=0 a ib n−i , esist also c 0 = a 0 b 0 , c 1 = a 0 b 1 + a 1 b 0 , c 2 = a 0 b 2 + a 1 b 1 + a 2 b 0 , . . .Es gibt k, l ∈ N: a k+1 = a k+2 = · · · = 0, b l+1 = b l+2 = · · · = 0, für n > k + l istalsoc n =n∑a i b n−i =i=02.26 SatzR Ring mit Eins.k∑a i b n−i}{{}=0i=0n−l−1∑+i=k+1a i}{{}=0b n−i}{{}=0+n∑i=n−la i}{{}=0b n−i = 0a) R[X] ist Ring mit Eins, Nullelement (0, 0, . . .), Einselement (1, 0, 0, . . .)b) Setze X = (0, 1, 0, . . .), so ist X i = (0, . . . , 0, 1, 0, . . .) mit einer 1 an deriten Stelle <strong>und</strong> es ist X i X j = X i+j .c) Setzt man X 0 = (1, 0, 0, . . .) <strong>und</strong> a·(a 0 , a 1 , a 2 , . . . ) := (aa 0 , aa 1 , aa 2 , . . .),dann gilt: ist g = (a 0 , a 1 , . . .) ∈ R[X], a k+1 = a k+2 = · · · = 0, so istg = ∑ ki=0 a iX i .Ist a k ≠ 0 <strong>und</strong> a k+1 = a k+2 = · · · = 0, so heißt k Grad von g.Nullelement: grad0 = −∞d) R ist Unterring von R[X], wenn man R mit {(a, 0, 0, . . .) : a ∈ R} identifiziert.2.27 SatzSei K ein Körper, f, g ∈ K[X].a) grad(f · g) = grad(f) + grad(g)b) (K[X]) ∗ = K ∗ (Polynome vom Grad 0)c) Ist f ≠ 0, so existieren q, r ∈ K[X] mit g = qf +r mit grad(r) < grad(f)18


Kapitel 2: RingeBeweis:a) grad(f) = n, grad(g) = m ⇒ a n ≠ 0, a i = 0 für i > n <strong>und</strong> b m ≠ 0, b i = 0für i > m.Koeffizient von X n+m in fg: a n · b m ≠ 0(angenommen a n b m = 0, a n ≠ 0, b m = 1 · b m = a −1n · a nb m = 0 – Widerspruch)b) f ∈ (K[X]) ∗ : ∃g ∈ K[X] mit fg = 1. 0 = grad(1) = grad(fg) =a)grad(f) + grad(g) ⇒ grad(f) = 0, f ∈ K ∗c) Zum Beispiel in Meyberg, Algebra Teil 1Beispiel: (X 4 + 3X 2 − 2X + 1) : (2X 2 − X + 1) = 1 2 X2 + 1 4 X + 118 , Rest:− 7 8 X − 3 82.28 KorollarSei K ein Körper.a) Jedes Ideal in K[X] ist von der Form g · K[X] für ein g ∈ K[X]b) g 1 · K[X] = g 2 · K[X] ⇔ ∃a ∈ K ∗ mit g 1 = a · g 2Beweis:a) Folgt wie (2.16a) für Z aus (2.27c)b) g 1 = g 2 · f = g 1 · g · f für g, f ∈ K[X].(2.27a): 0 = grad(gf) = grad(g) + grad(f) ⇒ f ∈ K ∗2.29 Bemerkunga) Wie in Z kann man in K[X] den ggT(f, g) definieren als Polynom höchstenGrades, normiert (das heißt, höchster Koeffizient = 1), welches f <strong>und</strong>g teilt (falls f, g nicht beide gleich 0 sind).Man bestimmt d mit dem euklidischen Algorithmus wie in Z. Entsprechendlassen sich u, v ∈ K[X] bestimmen mit u · f + v · g = d mit Hilfedes erweiterten euklidischen Algorithmus.b) Die Rolle der Primzahlen in Z spielen in K[X] die sogenannten irreduziblenPolynome. Ein Polynom f heißt irreduzibel, falls f normiert,gradf ≥ 1 <strong>und</strong>: aus f = gh folgt g ∈ K ∗ oder h ∈ K ∗ .19


Kapitel 2: RingeEs gilt: In K[X] lässt sich jedes Element eindeutig als Produkt einerEinheit <strong>und</strong> irreduziblen Polynomen schreiben.c) f Polynom, f ≠ 0: K[X]/f · K[X] = {g + fK[X] : g ∈ K[X]} = {g +fK[X] : g ∈ K[X], grad(g) < grad(f)}d) |(K[X]/fK[X])| ∗ = {g + fK[X] : ggT(g, f) = 1}Die Inverse berechnet man mit erweitertem Eukl. Algorithmus.(gu + fv = 1, u, v ∈ K[X] : u + fK[X] = (g + fK[X])−1 )e) K[X]/fK[X] Körper ⇔ f ist irreduzibel.2.30 Satz (Endliche Körper)a) Ist K endlicher Körper, dann existiert eine Primzahl p <strong>und</strong> d ∈ N,so dass |K| = p d (p ist bestimmt als die kleinste natürliche Zahl mit1 + 1 + · · · + 1 = 0). p heißt Charakteristik von K.} {{ }nb) Zu jeder Primzahl p <strong>und</strong> zu jedem d ∈ N existiert ein Körper K mit|K| = p d .c) Sind K, K ′ endliche Körper mit |K| = |K ′ |, so sind K, K ′ isomorph,d.h. es existiert eine bijektive Abbildung ϕ : K → K ′ mit ϕ(a + b) =ϕ(a) + ϕ(b), ϕ(ab) = ϕ(a)ϕ(b) ∀a, b ∈ K.d) Ist K ein endlicher Körper, so ist (K ∗ , ·) = (K\{0}, ·) eine zyklischeGruppe.Beweis:a) Es existiert ein kleinstes n ∈ N mit 1 + · · · + 1} {{ }Angenommen n = a · b, 1 < a, b < nn= 0, da K endlich ist.⇒ (1}+ ·{{· · + 1}) · (1}+ ·{{· · + 1}) = (1}+ ·{{· · + 1}) = 0abn⇒ 1}+ ·{{· · + 1}= 0 oder}1 + ·{{· · + 1}= 0. Wid.ab⇒ n ist Primzahl (n = p).K 0 := {m · 1 = 1 + · · · + 1 |m ∈ Z} ⊆ K, K} {{ }0 Körper.m|K 0 | = p, K 0 = {m · 1|0 ≤ m < p}. K ist ein K 0 -Vektorraum. Weil20


Kapitel 2: RingeK endlich, ist K endlich dimensionaler K 0 -VR (der Dimension d). Basisv 1 , . . . v d ∈ K. Jedes k ∈ K lässt sich eindeutig schreiben als: k = b 1 v 1 +· · · + b d v d , b i ∈ K 0 . Also |K| = p d .b)-d) Meyberg Algebra II.b) K = Z/pZ, f irred. Pol in K[X] vom Grad d. |K[X]/fK[X]| = p d .21


3 Komplexität gr<strong>und</strong>legenderAlgorithmenKomplexität zahlentheoretischer Algorithmen messbar durcha) Anzahl der arithmetischen Operationen oderb) Anzahl der BitoperationenEingabe immer gemessen in binärer Länge (oder auch in der dezimalen Länge).Gegebenes n: log(n) (oder log 2 (n))Komplexität: Worst-Case-KomplexitätSchranke, die die Laufzeit eines Algorithmus für alle zulässigen Eingaben nachoben begrenzt (als Funktion in der Länge der Eingabe).O-Schreibweise: f, g : N 0 → R, f(n), g(n) > 0 für alle n ≥ n 0 , n 0 geeignet.f(n) = O(g(n)) ⇔ ∃C > 0 : f(n) ≤ C · g(n) für alle n ≥ n 0 .Beispiele: n 3 + 17n 2 + n − 6 = O(n 3 )n 2 = O(n 2 ), n 2 = O(n 3 ), oder auch n 2 = O(e en )n 3 + n 2 log n = O(n 3 ),,O(n 2 ) ⊆ O(2 n )” weil nk2→ 0 nO(1): nach oben durch eine Konstante beschränkt3.1 Satzm, n ∈ N in Binärdarstellung.a) n ± m erfordert O(max(log n, log m)) viele Bitoperationen.b) n · m erfordert O(log n · log m) viele Bitoperationen (nach der klassischenMethode).c) n · m, n ≥ m nach Schönhage-Strassen erfordert O(log n · log log n ·log log log n) viele Bitoperationen.d) Division mit Rest von n durch m (n ≥ m) erfordert O(log m · (log n −log m + 1)) viele Bitoperationen.22


Kapitel 3: Komplexität gr<strong>und</strong>legender AlgorithmenSchnelle Multiplikation nach Karatsuba: x = x 0 + x 1 W, y = y 0 + y 1 W mitx i , y i ∈ [0, W −1]. Klassische Methode: xy = x 0 y 0 +(x 0 y 1 +x 1 y 0 )W +x 1 y 1 W 2Karatsuba: xy = u + (t − u − v)w + vw 2 mit u = x 0 y 0 , v = x 1 y 1 , t =(x 0 + x 1 )(y 0 + y 1 ).Folglich ergibt sich eine Komplexität von O((log n) log 2 3 ) im Gegensatz zuO((log n) log 2 4 ).Literatur zu Schönhage-Strassen <strong>und</strong> FFT siehe [14, Kapitel 8], [3, Kapitel9] <strong>und</strong> [5]. Zu Division mit Rest siehe [9].3.2 SatzDer (erw.) euklidische Algorithmus für zwei Zahlen a, b ∈ N erfordert O(log a ·log b) viele Bitoperationen.Beweis: Benötigt ist eine Abschätzung für die Anzahl der Divisionen mitRest: a i−1 = q i a i +a i+1 mit 1 ≤ i ≤ l, a 0 = a, a 1 = b, folglich a i−1 ≥ a i +a i+1 >2a i+1⇒ ∏ 2≤i≤l a i > 2 l−1 ∏ 2≤i≤l a i+1 (falls l > 2)⇒ a 1 · a 2 > 2 l−2 a l−1 a l⇒ 2 l−2 < a1a2a l−1 a l< a2 12(da a l−1 ≥ 2)⇒ a 2 1 > 2 l−1 , l − 1 ≤ 2 logb⇒ l = O(log b)Details: [14]; [5]3.3 BemerkungIn Z/nZ sind alle arithmetischen Operationen (einschließlich Invertierung vonElementen in (Z/nZ) ∗ ) in O((log n) 2 ) Bitoperationen durchführbar. (Folgt aus(3.1) <strong>und</strong> (3.2).)3.4 PropositionZur Berechnung von a e in Z (oder auch Z/nZ) sind O(log e) viele Multiplikationendurchzuführen.23


Kapitel 3: Komplexität gr<strong>und</strong>legender AlgorithmenBeweis: e = 2 k + a k−1 2 k−1 + · · · + a 1 · 2 + a 0 , a i ∈ {0, 1}b k = aWiederhole für i = k − 1, . . .,0: Falls a i = 1, so b = b 2 · a, sonst b = b 2Output: b = a eBeispiel: a 13 , 13 = 2 3 + 2 2 + 1, a 13 = ((a 2 · a) 2 ) 2 · a3.5 SatzSind f, g ∈ K[X], gradf = n ≥ m = gradg, so erfordert der erweiterte euklidischeAlgorithmus für f <strong>und</strong> g: O(m) Invertierungen in K, O(n · m) Multiplikationen<strong>und</strong> Additionen.Beweis: siehe [14, Kapitel 3]Eines der Ziele der Vorlesung: Primzahlen ∈ P.Zunächst: Primzahlen ∈ NP.Klar: Zusammengesetze Zahlen ∈ NP.Wir werden uns zum Abschluss des Kapitels den beiden NP-Aussagenwidmen.3.6 BemerkungIst n ∈ N eine zusammengesetzte Zahl, so kann dies mit einer arithmetischenOperation bzw. in O((log n) 2 ) vielen Bitoperationen bewiesen werden.(a, b: Prüfe a · b = n)3.7 Satz (Pratt, 1975)Ist n ∈ N eine Primzahl, so kann dies in O((log n) 4 ) vielen Bitoperationen bewiesenwerden.Beweis:Wir benötigen folgendes Primzahlkriterium:24


Kapitel 3: Komplexität gr<strong>und</strong>legender Algorithmen3.8 Satzn ∈ N, dann sind gleichwertig:a) |(Z/nZ) ∗ | = n − 1b) ∃a + nZ ∈ (Z/nZ) ∗ mit ord(a + nZ) = n − 1c) n ist PrimzahlBeweis: (a) ⇒ (c): Aus (a) folgt, dass Z/nZ Körper ist. Nach (2.22) ist nPrimzahl.(c) ⇒ (b): Ist n Primzahl, so ist Z/nZ Körper (2.22). Nach (2.30) ist (Z/nZ) ∗zyklisch ⇒ (b)(b) ⇒ (a): 〈a + nZ, ·〉 ⊆ (Z/nZ) ∗ ⇒ |(Z/nZ) ∗ | ≥ n − 1 ⇒ |(Z/nZ) ∗ | = n − 1□3.9 Satz (Lucas, 1876, 1891; Brillhart-Selfridge, 1967)n ∈ N, dann gilt:n Primzahl ⇐⇒ ∃a ∈ N, 1 ≤ a ≤ n−1 : a n−1 ≡ 1 mod n, a n−1q≢ 1für alle Primzahlen q | n − 1Beweis: Nach (3.8 (a)) folgt: ∃ a+nZ mit ord(a+nZ) = n−1⇐⇒n Primzahl.Wir zeigen: ord(a + nZ) = n − 1 ⇐⇒ a n−1 ≡ 1 mod n, a n−1q≢ 1 für allePrimzahlen q | n − 1⇒“: klar nach 2.9 (c).”” ⇐“: (a + nZ)n−1 = 1, so o(a + nZ) | n − 1 nach 2.9 (d).Angenommen, ord(a + nZ) < n − 1 ⇒ ord(a + nZ) · k = n − 1Wähle Primzahl q mit q | k, so folgt: ord(a + nZ) · kq = n−1q= 1 + nZ ⇒ a n−1(2.9 d) : (a + nZ) n−1qq≡ 1 mod n Widerspruch□Beweis von 3.7: Nach (3.9) hat man zum Beweis der Primzahleigenschaftvon n Zahlen a, q 1 , . . .,q k anzugeben mit:a) n − 1 = q 1 · · · · · q kb) a n−1 ≡ 1 (mod n)25


Kapitel 3: Komplexität gr<strong>und</strong>legender Algorithmenc) a n−1q i≢ 1 (mod n) für alle i = 1, . . . , kd) q 1 , . . .,q k PrimzahlenBerechne Aufwand für (a) − (c) <strong>und</strong> die rekursive Verifikation von (d):Sei f(n) die Gesamtzahl der Multiplikationen, Divisionen <strong>und</strong> Exponentiationen(mod n), die für (a) − (d) erforderlich sind, wobei wir f(2) = 1 setzen.Dannk∑k∑f(n) ≤ k − 1+ } {{ } }{{}1(a) (b)+ k + k +} {{ }(c)i=1f(q i ) = 3k +} {{ }(d)Behauptung: f(n) ≤ 7 logn − 6f(2) = 1 = 7 · 1 − 6; f(3) ≤ 3 + 1 = 4 ≤ 7 log 3 − 6(≈ 5, 06)Sei n ≥ 5.f(n) Ind.≤k∑(3 + 7 log q i − 6) = 7 ·i=1i=1f(q i )k∑log q i − 3k ≤ 7 logn − 6Nach (3.3) erfordert jede Multiplikation <strong>und</strong> jede Division in Z/nZ (bzw.(Z/nZ) ∗ ) O((logn) 2 ) viele Bitoperationen, <strong>und</strong> jede der k+1 Exponentiationena n−1 , a n−1q i (mod n) erfordert nach (3.4) O((log n) 3 ) viele Bitoperationen.Daraus ergibt sich eine Gesamtzahl von O((log n) 4 ) Bitoperationen.i=1□3.10 Bemerkunga) Pomerance (1987): Nachweis, dass n prim ist, ist mit O((log n) 3 ) vielenBitoperationen möglich.b) (3.6): Nachweis, dass n zusammengesetzt ist: 1 arithmetische OperationFrage: Ist Nachweis, dass n Primzahl ist, in O(1) arithmetischen Operationenmöglich? [Anm: (3.7) erfordert O(log n) viele arithmetische Operationen]Antwort: Ja! Putnam, Davis, Robinson, Matijasevič (im Zusammenhangmit der negativen Lösung des 10. Hilbertschen Problems): Matijasevič(1971): Es gibt Polynom g ∈ Z[X 1 , . . . , X k ], so dass gilt: Sindn 1 . . . , n k ∈ N 0 <strong>und</strong> ist g(n 1 , . . . , n k ) = q > 0, so ist q eine Primzahl (<strong>und</strong>jede Primzahl tritt so auf). Zum Nachweis, dass q eine Primzahl ist, gebealso n 1 , . . . , n k an <strong>und</strong> überprüfe g(n 1 , . . . , n k ) = q.26


Kapitel 3: Komplexität gr<strong>und</strong>legender AlgorithmenExplizites Polynom vom Grad 25 <strong>und</strong> in 26 Variablen haben Jones, Sato,Wada, Wiens 1976 gef<strong>und</strong>en. Auswertung erfordert maximal 87arithmetische Operationen.Aber: Eines der n i ist größer als q qqqq , die Anzahl der Bitoperationen istalso super-exponentiell.27


4 Klassische Methoden zumErkennen von Primzahlen <strong>und</strong>zusammengesetzten Zahlen4.1 Testen auf Divisoren (trial division)Methode: Verwende nacheinander Testdivisionen, um Zahl n teilweise odervollständig zu faktorisieren.Zum Beispiel: Teste alle Primzahlen q ≤ √ n, ob sie n teilen. In aller Regel hatman keine vollständige Liste aller Primzahlen ≤ √ n, dann auch Testdivisionendurch zusammengesetzte Zahlen.Typisches Vorgehen: Dividiere solange durch 2, bis eine ungerade Zahl entsteht.Danach nur noch Testdivisionen mit ungeraden Zahlen. Analog mit 3.Es bleibt eine Zahl, die teilerfremd zu 6 ist. Wir brauchen als Testdivisoren nurnoch die Zahlen in 1 + 6Z, 5 + 6Z zu verwenden. Gehe zu7+25+4≡1 (mod 6) ≡5 (mod 6)11 .≡5 (mod 6)Addiere alternierend (beginnend bei 5) 2 <strong>und</strong> 4 <strong>und</strong> führe Testdivisionen durch.(2, 4) ist ein Rad. Hat man 5 getestet, so braucht man als Testdivisionen nurnoch die Zahlen, die teilerfremd zu 30 sind.+2 1 + 30Z, +6 7 + 30Z, +4 11 + 30Z, +2 13 + 30Z,+4 17 + 30Z, +2 19 + 30Z, +4 23 + 30Z, +6 29 + 30ZRad (4, 2, 4, 2, 4, 6, 2, 6). Beginne bei 7: 7, 11, 13, . . .Komplexität zur vollständigen Faktorisierung von n: O( √ n) = O(2 log n2 ).4.2 Sieb des EratosthenesEratosthenes (∼ 274 v. Chr. - ∼ 194 v. Chr., Alexandria)28


Kapitel 4: Klassische MethodenZiel: Bestimme alle Primzahlen ≤ n einzig durch Additionen.1 1 1 . . . 1 12 3 4 . . . n − 1 nAm Anfang hat jedes Feld den Eintrag 1.(1) Lasse 1 bei 2 stehen. Ändere in den Feldern 4, 6, . . . 1 zur 0.(2) Lasse 1 bei 3 stehen. Ändere in den Feldern 6, 9, . . . 1 zu 0, falls nichtschon 0.(k) Suche nächstes Feld mit 1. (Gehört zu Primzahl p, da nicht teilbar durchkleinere Primzahl.) Ändere in den Feldern 2p, 3p, . . . 1 zu 0 (falls nichtschon 0 vorkommt).Angenommen, p mit Eins <strong>und</strong> alle ip-Felder haben Eintrag 0. Dann p 2 > n.Die Felder, die jetzt Eintrag 1 haben, gehören zu Primzahlen: Feld zur Zahl imit Eintrag 1. Angenommen, i ist keine Primzahl. Dann existiert die Primzahlq ≤ √ n mit q | i (q < p). Feld i wäre bei den Vielfachen von q zu 0 gemachtworden.Das Sieb des Eratosthenes erfordert∑p≤ √ np primn= O (n log(log n))pviele Additionen ((siehe z.B. ) [15], Theorem 427). Clevere Verfeinerungen derSiebmethode: O (Mairson, Pritchard; 1981)nlog(log n)4.3 Der Fermat-Test <strong>und</strong> PseudoprimzahlenDer kleine Satz von Fermat (2.22.e) besagt:(*) Ist p Primzahl, a ∈ Z, ggT(a, p) = 1, so ist a p−1 ≡ 1 (mod p)(**) Ist p Primzahl, a ∈ Z, so ist a p ≡ a (mod p)Das führt zu Test auf Zusammengesetztheit einer Zahl n – dem Fermat-Test:Wähle 2 ≤ a ≤ n −2. Ist a n−1 ≢ 1 (mod n), so ist n zusammengesetzt (entwederggT(a, n) ≠ 1 dann n zusammengesetzt, oder ggT(a, n) = 1 dann n zusammengesetztnach (*)). Ist a n−1 ≡ 1 (mod n), ist keine Aussage möglich. ( a = 1<strong>und</strong> a = n − 1 werden hier gleich ausgeschlossen, denn 1 n−1 ≡ 1 (mod n) <strong>und</strong>,falls n ungerade, (n − 1) n−1 ≡ (−1) n−1 ≡ 1 (mod n). Der Fall, dss n geradeist, braucht in der Praxis nicht behandelt zu werden: entweder n = 2 oder nist zusammengesetzt. Aber natürlich kann man a = 1 <strong>und</strong> a = n − 1 beim Testmit zulassen. Ist dann n > 2 gerade, so ist (n − 1) n−1 ≡ −1 ≢ 1 (mod n).)29


Kapitel 4: Klassische Methoden4.3.1 DefinitionEine zusammengesetzte Zahl n, für die a n−1 ≡ 1 (mod n) (wobei 1 ≤ a ≤ n−1fest) gilt, heißt Pseudoprimzahl zur Basis a.(Man könnte auch Pseudoprimzahlen zur Basis a mit Hilfe der Bedingung a n ≡a (mod n) definieren. Diese bilden dann eine Obermenge der Pseudoprimzahlennach unserer Definition; vgl. aber Satz 4.3.4)Frage: Wie groß ist die Chance, dass eine zusammengesetzte Zahl Pseudoprimzahlzur Basis a ist?Satz (Erdös, 1950): Sei a ≥ 2, a ∈ N. Sei π(x) die Anzahl der Primzahlen≤ x (Primzahlfunktion) <strong>und</strong> π a (x) die Anzahl der Pseudoprimzahlen zur Basisπa ≤ x. Dann ist lim a(x)x→∞ π(x) = 0.Andererseits: Zu jedem a ≥ 2 gibt es unendlich viele Pseudoprimzahlen zurBasis a (Crandall, Pomerance, Th. 3.3.4). [Ein entsprechender Satz giltauch, wenn man Pseudoprimzahlen zur Basis a durch a n ≡ a (mod n) definiert;Li, 1997]Daher ist naheliegend: Führe Fermat-Test bezüglich mehrerer Basen a durch.Nach (2.24): Wenn a n−1 ≡ 1 (mod n) für alle 2 ≤ a ≤ n −2, so ist n Primzahl.Erfordert O(n) viele Tests!Für gegebenes a testet man zunächst, ob ggT(a, n) = 1 ist. Wenn nicht, so istn zusammengesetzt.Also stellt sich die Frage: Was kann man über Zahlen n sagen, für die a n−1 ≡ 1(mod n) für alle 1 ≤ a ≤ n − 1, ggT(a, n) = 1 gilt?Leider: Es gibt zusammengesetzte Zahlen n, die diese Eigenschaft haben.4.3.2 DefinitionEin zusammengesetztes n heißt Carmichael-Zahl, falls a n−1 ≡ 1 (mod n) füralle 1 ≤ a ≤ n − 1, ggT(a, n) = 1. (R. Carmichael, 1879 - 1967)Es gilt also:30


Kapitel 4: Klassische Methoden4.3.3 SatzBesteht eine Zahl n den Fermat-Test für alle 1 ≤ a ≤ n −1, ggT(a, n) = 1 (d.h.a n−1 ≡ 1 (mod n)), so ist n Primzahl oder Carmichael-Zahl.Carmichael-Zahlen sind also Pseudoprimzahlen zu jeder Basis a, 1 ≤ a ≤ n−1,mit ggT(a, n) = 1. Klar: Carmichael-Zahlen sind ungerade (wähle a = n − 1).Kleinste Carmichael-Zahl: 561 = 3 · 11 · 17Carmichael-Zahlen lassen sich folgendermaßen charakterisieren:4.3.4 SatzSei n ∈ N zusammengesetzt. Dann sind äquivalent:(1) n ist Carmichael-Zahl.(2) a n−1 ≡ 1 (mod n) für alle a ∈ Z mit ggT(a, n) = 1.(3) a n ≡ a (mod n) für alle a ∈ Z.(4) Für alle Primzahlen p mit p | n gilt: p 2 ∤ n <strong>und</strong> (p − 1) | (n − 1).Beweis:(1) ⇒ (2): Sei a ∈ Z, ggT(a, n) = 1. Sei a = kn + r, 1 ≤ r ≤ n − 1. DannggT(r, n) = 1. Da a ≡ r (mod n), ist a n−1 ≡ r n−1 (mod n). Nach Voraussetzungist r n−1 ≡ 1 (mod n), also auch a n−1 ≡ 1 (mod n).(2) ⇒ (4): Sei p eine Primzahl, p | n.Da (Z/pZ) ∗ zyklisch ist (2.30d), existiert b, 1 ≤ b ≤ p−1, mit o(b+pZ) =p − 1 (Ordnung bezüglich Multiplikation), d.h. b p−1 ≡ 1 (mod p) aberb i ≢ 1 (mod p) für alle 1 ≤ i ≤ p − 1. Seien p 2 , . . .,p s die übrigenPrimteiler von n. Nach dem Chinesischen Restsatz (2.19) existiert a ∈ Zmit a ≡ b (mod p) <strong>und</strong> a ≡ 1 (mod p j ), j = 2, . . .,s. Da ggT(b, p) = 1,ist folglich ggT(a, n) = 1. Außerdem a i ≡ b i (mod p) für alle i, d.h.o(a+pZ) = p−1 (in (Z/pZ) ∗ ). Nach Voraussetzung ist a n−1 ≡ 1 (mod n),also auch a n−1 ≡ 1 (mod p), d.h. (a + pZ) n−1 = 1 + pZ. Nach (2.9d) istdaher p − 1 = o(a + pZ) | n − 1.Angenommen, p 2 | n.Es ist (p + 1) p = p p + ( )p1 p p−1 + · · · + ( pp−1)p + 1. Alle Terme auf derrechten Seite (bis auf 1) sind durch p 2 teilbar. Also o((p + 1) + p 2 Z) = p31


Kapitel 4: Klassische Methodenin (Z/p 2 Z) ∗ . Mit dem Chinesischen Restesatz erhält man ein a ∈ Z mita ≡ p + 1(mod p 2 ) <strong>und</strong> a ≡ 1 (mod p j ), j = 2, . . .,sAlso ist ggT(a, n) = 1 <strong>und</strong> nach Voraussetzung ist a n−1 ≡ 1 (mod n),also auch a n−1 ≡ 1 (mod p 2 ). Da o(a+p 2 Z) = o((p+1)+p 2 Z) = p folgtp | n − 1. Dies ist ein Widerspruch zu p | n.(4) ⇒ (3): Nach Voraussetzung ist n = p 1 · · · p s , p i Primzahlen, p i ≠ p j für i ≠j. Sei o.B.d.A. ggT(a, n) = p 1 . . .p r , 0 ≤ r ≤ s (r = 0, falls ggT(a, n) =1). Es ist a n ≡ a ≡ 0 (mod p j ) für j = 1, . . .,r. Nach dem Satz vonFermat (2.22e) ist a pj−1 ≡ 1 (mod p j ) für j = r + 1, . . ., s, also a n−1 ≡ 1(mod p j ), da nach Voraussetzung p j − 1 | n − 1. Daher ist auch a n ≡ a(mod p j ) für j = r + 1, . . .,s.Aus n = p 1 · · ·p s , p i ≠ p j , folgt dann a n ≡ a (mod n).(3) ⇒ (1): Ist ggT(a, n) = 1, so existiert (a + nZ) −1 . Da nach Voraussetzung(a + nZ) n = a + nZ, folgt (a + nZ) n−1 = (a + nZ) n · (a + nZ) −1 =(a + nZ) · (a + nZ) −1 = 1 + nZ, d.h a n−1 ≡ 1 (mod n).4.3.5 Satz (Alford, Granville, Pomerance, 1994)Es gibt unendlich viele Carmichael-Zahlen.Genauer: Ist C(x) die Anzahl der Carmichael-Zahlen ≤ x, so gilt: Es gibt einx 0 so dass C(x) > x 2/7 für alle x ≥ x 0 .Zum Vergleich:4.3.6 Primzahlsatz (Hadamard, de la Vallée Poussin, 1896)Das heißt, lim x→∞π(x)x/ln x = 1π(x) ∼xlnx4.4 Der Miller-Rabin-Test <strong>und</strong> starkePseudoprimzahlenDer Miller-Rabin-Test verwendet eine Verschärfung des kleinen Satzes vonFermat <strong>und</strong> beseitigt damit die Ausnahmerolle der Carmichael-Zahlen. DieseVerschärfung ist im folgenden Lemma enthalten.32


Kapitel 4: Klassische Methoden4.4.1 LemmaIst p eine Primzahl, p ≠ 2, a ∈ Z, ggT(a, p) = 1, p − 1 = 2 s · d, 2 ∤ d, so gilt:Entweder a d ≡ 1 (mod p) oder es existiert r ∈ {0, . . ., s−1} so dass a 2r·d ≡ −1(mod p) (dann a 2r+1·d ≡ 1 (mod p)).Beweis: a + pZ ∈ (Z/pZ) ∗ , d.h. o(a + pZ) | p − 1.Es ist (a d + pZ) 2s = a d·2s + pZ = a p−1 + pZ = 1 + pZ.Also k := o(a d + pZ) | 2 s (nach 2.9)k = 1: a d + pZ = 1 + pZ ⇔ a d ≡ 1 (mod p)k > 1: d.h. k = 2 l , 1 ≤ l ≤ s mit a 2l−1·d + pZ = (a d + pZ) 2l−1 ≠ 1 + pZ <strong>und</strong>(a 2l−1·d + pZ) 2 = a 2l·d + pZ = 1 + pZ⇒ o(a 2l−1·d + pZ) = 2. Jede zyklische Gruppe gerader Ordnung enthältgenau ein Element der Ordnung 2 (folgt aus (2.9e))(Z/pZ) ∗ ist zyklisch(2.30d)(Z/pZ) ∗ hat genau ein Element der Ordnung 2: −1 + pZ. Setze r = l − 1.4.4.2 DefinitionSei n ≥ 3 ungerade, 2 ≤ a ≤ n − 2, ggT(a, n) = 1, n − 1 = 2 t · e, 2 ∤ e.• Ist n zusammengesetzt <strong>und</strong> es gilt entweder a e ≡ 1 (mod n) oder a 2r·e ≡−1 (mod n) für ein r ∈ {0, . . ., t − 1}, so heißt n starke Pseudoprimzahlzur Basis a.(Beachte: Starke Pseudoprimzahlen sind auch Pseudoprimzahlen zur Basisa, d.h. a n−1 ≡ 1 (mod n))• Ist a e ≢ 1 (mod n) <strong>und</strong> a 2r·e ≢ −1 (mod n) für alle r ∈ {0, . . ., t − 1},so ist n zusammengesetzt (4.4.1); a heißt dann Zeuge gegen die Primzahleigenschaftvon n.Beispiel:• n = 91 = 7 · 13, a = 10, n − 1 = 2 1 · 45, 10 45 ≡ −1 (mod 91), folglich ist91 starke Pseudoprimzahl zur Basis 10.• n = 561 = 3 · 11 · 17 Carmichael-Zahl, a = 2, n − 1 = 2 4 · 35, 2 35 ≡263 (mod 561); 2 2·35 ≡ 166 (mod 561); 2 4·35 ≡ 67 (mod 561); 2 8·35 ≡ 1(mod 561). Folglich ist n keine starke Pseudoprimzahl zur Basis 2, n istzusammengesetzt.33


Kapitel 4: Klassische MethodenWir zeigen jetzt: Ist n zusammengesetzt <strong>und</strong> ungerade, so gibt es viele Zeugengegen die Primzahleigenschaft von n.4.4.3 SatzSei n ≥ 3 zusammengesetzte ungerade Zahl. Dann gibt es mindestens ϕ(n)/2Zeugen a gegen die Primzahleigenschaft von n.Beweis:a) Sei zunächst n = p 1 · · · · · p l , p i Primzahlen, p i ≠ p j für i ≠ j, n − 1 =2 t · e, 2 ∤ e.Ist jedes a, 2 ≤ a ≤ n − 2 mit ggT(a, n) = 1 Zeuge gegen die Primzahleigenschaftvon n, so fertig (ϕ(n)−2 ≥ ϕ(n)/2, da ϕ(n) = ϕ(p 1 ) · · · ϕ(p l ) =(p 1 − 1) · · · (p l − 1) > 4, denn l ≥ 2 ungerade)OBdA: Also gibt es Nichtzeugen, das heißt, a ∈ Z, 2 ≤ a ≤ n − 2,ggT(a, n) = 1, so dass a e ≡ 1 (mod n) (*) oder a 2r·e ≡ −1 (mod n)(**) für ein r ∈ {0, 1, . . ., t − 1}. Existiert ein a mit (*), dann erfülltn − a(≡ −a (mod n)) Bedingung (**) mit r = 0. Sei k der größte Wert,für den es a mit 2 ≤ a ≤ n − 2 <strong>und</strong> ggT(a, n) = 1 gibt mit a 2k·e ≡ −1(mod n); setze m = 2 k · e.Setze L := {b + nZ : ggT(b, n) = 1, b m ≡ ±1 (mod n)}. Jeder Nichtzeugeliegt in L. L ist Untergruppe von ((Z/nZ) ∗ , ·). Zeige: L ist echte Untergruppevon (Z/nZ) ∗ . (Denn dann: #Nichtzeugen ≤ |L| Lagrange≤(Z/nZ)∗2=ϕ(n)2 )Wähle a mit 2 ≤ a ≤ n − 2, ggT(a, n) = 1 <strong>und</strong> a m ≡ −1 (mod n).Chinesischer Restsatz (2.19): Es existiert b mit 1 ≤ b ≤ n − 1 mit b ≡ a(mod p 1 ), b ≡ a 2 (mod p i ), i = 2, . . .,l.Dann b m ≡ a m ≡ −1 (mod p 1 ), b m ≡ a 2m ≡ 1 (mod p i ), i = 2, . . .,lKlar: b + nZ ∈ (Z/nZ) ∗ .Es sind (b + nZ) · L, (a 2 + nZ) · L verschiedene Nebenklassen von L in(Z/nZ) ∗ :Angenommen sie sind gleich. Dann: (a 2 + nZ) −1 (b + nZ) ∈ L, a −2 b +nZ ∈ L. Dann a −2m b m ≡ 1 oder − 1 (mod n). a 2m ≡ 1 (mod n). Alsob m ≡ 1 oder − 1 (mod n). Angenommen· b m ≡ 1 (mod n) ⇒ b m ≡ 1 (mod p 1 ).Andererseits b m ≡ −1 (mod p 1 ), Widerspruch, da p 1 ≠ 2.· b m ≡ −1 (mod n) ⇒ b m ≡ −1 (mod p 2 ).Andererseits b m ≡ 1 (mod p 2 ). Widerspruch, da p 2 ≠ 2.34


Kapitel 4: Klassische MethodenDamit ist Fall (a) abgeschlossen.b) Allgemeiner Fall:Ist n Carmichael-Zahl, so fertig mit a) <strong>und</strong> (4.3.4). Ist n keine Carmichael-Zahl, so existiert a ∈ Z, 2 ≤ a ≤ n − 2, ggT(a, n) = 1 mit a n−1 ≡ 1(mod n). SetzeK = {b+nZ : 1 ≤ b ≤ n−1, ggT(b, n) = 1, b n−1 ≡ 1 (mod n)} ⊆ (Z/nZ) ∗Alle Nichtzeugen liegen in K. a + nZ ∉ K. K echte Untergruppe von(Z/nZ) ∗ .4.4.4 Miller-Rabin-Test(Miller 1976, Rabin 1976, Vorläufer Selfridge 1974)Gegeben: n > 3 ungerade.a) Wähle a ∈ [2, n − 2] zufällig.b) Bestimme ggT(a, n).Ist ggT(a, n) ≠ 1, so Ausgabe ”n ist zusammengesetzt“;Ist ggT(a, n) = 1, soc) Bestimme t mit n − 1 = 2 t e, 2 ∤ ed) b := a e (mod n)e) b = 1 oder b = n − 1, so Ausgabe ”n ist starke Pseudoprimzahlzur Basis a oder Primzahl“;Ist b ≠ 1, n − 1 sof) Wiederhole für j = 1, . . .,t − 1b := b 2 mod n;b = n − 1 so Ausgabe ”n ist starke Pseudoprimzahl zur Basis aoder Primzahl“;g) Ausgabe ”n ist zusammengesetzt“;Bei Ausgabe ”n ist Primzahl“ statt ”n ist starke Pseudoprimzahl zurBasis a oder Primzahl“ Monte-Carlo-Algrorithmus. (Dann Ausgabe ”n istzusammengesetzt“ wahr, aber ”n ist Primzahl“ kann falsch sein.)35


Kapitel 4: Klassische Methoden4.4.5 Bemerkung4.4.3 kann verbessert werden. Mornier, Rabin 1980: n > 9 zusammengesetzt,ungerade, so gibt es mindestens 3 4ϕ(n) viele Zeugen gegen die Primzahleigenschaftvon n. (C. Pomerance, Crandall Th. 3.44 oder [16, Th. 12.4]) Daherist die Fehlerwahrscheinlichkeit des Miller-Rabin-Tests ≤ 1 4. Verbessern durchiterieren: Fehlerwahrscheinlichkeit ≤ 1 .4 k(Applet: http://www.jjam.de/Java/Applets/Primzahlen/Miller Rabin.html)Gibt man bei dem Miller-Rabin-Test statt n ist starke Pseudoprimzahl”oder Primzahl“ nur n ist Primzahl“ aus, so erhält man einen Monte-Carlo-”Algorithmus: Die Aussage n ist zusammengesetzt“ ist stets korrekt. Aber:”Mit Wahrscheinlichkeit ≤ 1 4gibt der Algorithmus für eine zusammengesetzteZahl die Antwort n ist prim“ aus. Bei k zufälligen Wahlen von a erhält man”eine Wahrscheinlichkeit ≤ 14. kWie groß ist die Wahrscheinlichkeit, dass n Primzahl ist, falls Monte-Carlo-Miller-Rabin n ist Primzahl“ ausgibt?”Bereich angeben, in dem n liegt.Gegeben: N. Die Zufallsvariable X bezeichne das Ereignis, dass die zu testendeZahl n ≤ N zusammengesetzt ist. Die Zufallsvariable ¯X bezeichne das Ereignis,dass die zu testende Zahl n ≤ N eine Primzahl ist. Die ZufallsvariableY bezeichne das Ereignis, dass Monte-Carlo-Miller-Rabin nach k Durchläufenn ist Primzahl“ ausgibt.”Wir sind interessiert an der bedingten Wahrscheinlichkeit P( ¯X|Y ) – dies ist dieWahrscheinlichkeit, dass n Primzahl ist, falls Monte-Carlo-Miller-Rabin ausgibt,dass n prim ist. P( ¯X|Y ) = 1−P(X|Y ). Wir wissen P(Y |X) ≤ 1 , P( ¯X) =4 k1ln Nln N[Anzahl der Primzahlen ≤ N = π(N) ≈N , siehe Primzahlsatz, (4.3.6)].P(X) ≈ 1 − 1ln N ≤ 1, P(Y ) ≥ P( ¯X). Bayes’sche Formel:P(X|Y ) =P(Y |X) · P(X)P(Y )≤1· 14lnNk≈P( ¯X) 4 kFolglich ist P( ¯X|Y ) = Wahrscheinlichkeit, dass zufällig gewähltes n ∈ [1, N]Primzahl ist, falls Monte-Carlo-Miller-Rabin ausgibt n ist Primzahl“ mindestens1 − ln N4 k”Soll P( ¯X|Y ) ≥ 1 − ε, 0 < ε < 1, so wähle k so, dass ln Nk ≥ln(ln N)−ln εln 44 k ≤ ε, das heißt36


Kapitel 4: Klassische Methoden4.4.6 Satz[ ]Sei 0 < ε < 1 vorgegeben. Sei N ∈ N <strong>und</strong> k = ln(ln N)−ln εln4. Wählt man eineZahl n zufällig aus [1, N], so gilt: Gibt der Monte-Carlo-Miller-Rabin-Test nachk Durchläufen die Ausgabe n ist Primzahl“, so ist n mit Wahrscheinlichkeit”≥ 1 − ε Primzahl.Tatsächlich in der Praxis: Für große n wählt man k = 1 oder k = 2.Gr<strong>und</strong>: Für große zusammengesetzte n ist die Anzahl der Zeugen gegen diePrimzahleigenschaft von n deutlich größer als 3 4 ϕ(n).Zum Beispiel: Wähle n ∈ [2 499 , 2 500 ] ungerade. Die Wahrscheinlichkeit, dass nzusammengesetzt ist, aber bei einem Durchlauf des Miller-Rabin-Testes nicht1als zusammengesetzt erkannt wird, ist kleiner als4. (Damgård,28Landrock, Pomerance, 1999)4.4.7 Bemerkunga) Komplexität von Miller-Rabin-Test (4.4.4 — 1 Durchlauf): O((log n) 3 ).Dies folgt aus Kapitel 3.b) Bach, 1985: n ungerade zusammengesetzte Zahl, so existiert Zeuge agegen die Primzahleigenschaft von n mit a < 2 ·(ln n) 2 , vorausgesetzt diesogenannte verallgemeinerte Riemann’sche Vermutung gilt.Unter der Voraussetzung der verallgemeinerten Riemannschen Vermutungwird der Miller-Rabin-Test mit Test aller a ∈ [1, (2 · (lnn) 2 )] zueinem deterministischen Primzahltest der Komplexität O((log n) 5 ).Ein Einschub zur (verallgemeinerten) Riemannschen Vermutung: Für s ∈R, s > 1 gilt:∑n∈N1n s = ∏p prim11 − p −s (Euler-Produkt)Für s ∈ C : ∑ n∈N 1 nkonvergiert absolut für alle s mit Re(s) > 1. Die Riemannscheζ-Funktion ζ(s) ist in C\{0} unendlich oft differenzierbar <strong>und</strong>sstimmt auf Re(s) > 1 mit ∑ n∈N 1 nüberein (analytische Fortsetzung). ζshat Nullstellen bei −2, −4, −6, . . . <strong>und</strong> Nullstellen mit Re(s) = 1 2 .Die Riemannsche Vermutung besagt, dass dies die einzigen Nullstellensind. Die verallgemeinerte Riemannsche Vermutung besagt, dass dies fürverallgemeinerte ζ-Funktionen (sogenannte Dirichlet’sche L-Funktionen)ebenso gilt.37


Kapitel 4: Klassische Methoden4.4.8 BemerkungWie erzeugt man k-Bit-Primzahlen möglichst zufällig (z.B. für RSA)? Zufallswahlenin [2 k−1 , 2 k − 1]: In [2 k−2 , 2 k−1 − 1] wähle a zufällig, bilde 2a + 1; diesliefert ungerade Zufallszahl in dem benötigten Intervall [2 k−1 , 2 k − 1].Wie groß ist die Wahrscheinlichkeit, auf diese Weise eine Primzahl zu finden:π(2 k ) − π(2 k−1 )2 k−1 ≈ 2k ln 2Im Schnitt braucht man k ln 22viele Versuche, um Primzahl zu finden [RSA: k =200; 70 Versuche]. Bei jedem Versuch: (1) Aussieben von kleinen Primzahlen;Erst wenn keine kleinen Primfaktoren existieren: (2) Miller-Rabin.38


5 Der Primzahltest von Agrawal,Kayal <strong>und</strong> SaxenaAugust 2002; AKS-Test (Agrawal, Kayal, Saxena): deterministischer, polynomialerPrimzahltest (Verbesserungen von Bernstein <strong>und</strong> H.W. Lenstra,jr.).Er beruht auf folgender Primzahlcharakterisierung:5.1 SatzSei a ∈ Z, n ∈ N, n ≥ 2, ggT(a, n) = 1. Dann gilt:n ist Primzahl ⇐⇒ (X + a) n ≡ X n + a (mod n)Im Folgenden: Z n = Z/nZ.(x+a) n ≡ x n +a mod n bedeutet also, dass (x+a) n <strong>und</strong> x n +a als Polynome inZ n [x] gleich sind (wobei man bei präziser Schreibweise a durch a+nZ ersetzenmuss).Beweis: In Z[X] (2.13) gilt:n−1∑ ( n)(X + a) n = X n + a n−i X i + a nii=1Folglich ( ist für n Primzahl: a n ≡ a (mod n) (Satz von Fermat, (2.27e) <strong>und</strong>n)i =n!i!(n−i)! . n prim ⇒ n ̸ |i!, n ̸ |(n−i)! ⇒ n| ( ) (ni für 1 ≤ i ≤ n−1 ⇒ n)i ≡ 0(mod n).Sei n zusammengesetzt <strong>und</strong> q ein( echter ) Primteiler von n, q k | n, q k+1 ∤ n.Koeffizient von X q in (X + a) n : nqa n−q .( ) nq k ̸ | =qteilerfremd zu q{ }} {n!(n − q)!q! = (n − q + 1) · · · · · (n − 1) ·nq!39


Kapitel 5: Der Primzahltest von Agrawal, Kayal <strong>und</strong> Saxenadarin ist q k−1 die höchste q-Potenz, die teilt.ggT(a, ( ) n) = 1, also q ̸ |a n−q( )⇒ nqa n−1 ≢ 0 (mod q k ), <strong>und</strong> insbesondere nqa n−q ≢ 0 (mod n).Bemerkung: Ist n Primzahl, so gilt die Aussage in (5.1) für alle a ∈ Z (diessieht man am Beweis).Möglicher Test: Multipliziere (X+1) n aus <strong>und</strong> teste die Koeffizienten (mod n).Komplexität: O(n) = O(2 log n ) – exponentiellIdee des AKS-Algorithmus: Teste Kongruenz (X + a) n ≡ X n + a (mod (X r −a, n)) mit geeignet gewähltem ”kleinen“ r.Was heißt das? (X + a) n ≡ X n + a (mod (X r − 1, n)) bedeutet, dass X r − 1die Differenz von (X + a) n <strong>und</strong> (X n + a) in Z n [X] teilt. Wir rechnen also inZ n [X]/(X r − 1)Z n [X]. Vertretersystem der Nebenklassen von (X r − 1)Z n [X]in Z n [X] sind die Polynome vom Grad ≤ r − 1. Man muss also r so wählen,dass es polynomial in log(n) ist.Ist n eine Primzahl, so erfüllt n die Kongruenz modulo n in (5.1), <strong>und</strong> daherauch die Kongruenz modulo (n, X r − 1), d.h. (X + a) n ≡ X n + a (mod n) ⇒(X + a) n ≡ X n + a (mod (X r − 1, n)). Allerdings könnte auch für zusammengesetzteZahlen n die Kongruenz modulo (n, X r − 1) für gewisse a erfüllt sein.Lösung von Agrawal, Kayal <strong>und</strong> Saxena: Für geeignetes r braucht man nurO(poly(log n)) viele a’s zu testen, um sagen zu können, dass n Primzahl ist.Wir geben den AKS-Algorithmus an <strong>und</strong> beweisen dann seine Korrektheit.Dazu führen wir folgende Bezeichnungen ein:f(X) = (X + a) n ∈ Z[X]f(X) → ˜f(X) ∈ (Z/nZ)[X](alle Koeffizienten reduzieren)→ ¯f(X) ∈ Z n [X]/(X r − 1)Z n [X]¯f = f (mod (n, X r − 1)) = a r X r−1 + · · · + a 0 + (X r − 1)Z n [x]□Für r, n ∈ N, ggT(r, n) = 1 definiere: o r (n) = ”Ordnung von n modulo r“o r (n) = o(n+rZ) = kleinstes d ∈ N mit (n+rZ) d = 1+rZ ⇔ n d ≡ 1 (mod r),d.h. o r (n) ist die Ordnung von n + rZ in (Z/rZ) ∗ .5.2 AKS-AlgorithmusEingabe: n > 140


Kapitel 5: Der Primzahltest von Agrawal, Kayal <strong>und</strong> Saxena1.) Wenn n = b c für b, c ∈ N, c > 1, so Ausgabe ”n ist zusammengesetzt“2.) Finde das kleinste r ∈ N mit ggT(n, r) = 1 <strong>und</strong> o r (n) > 4(log n) 23.) Wenn 1 < ggT(a, n) < n für ein a < r, so Ausgaben ist zusammengesetzt“”4.) Wenn r ≥ n, so Ausgabe n ist Primzahl“”5.) Für a = 1, . . .,⌊2 √ ϕ(r) log n⌋: Wenn (X+a) n ≢ X n +a (mod X r −1, n),so Ausgabe ”n ist zusammengesetzt“6.) Ausgabe ”n ist Primzahl“Bemerkung: Wenn man in Schritt 2 der Reihe nach alle r = 1, 2, . . . testet, sokann man Schritt 2 <strong>und</strong> Schritt 3 gleichzeitig durchführen.5.3 SatzAlgorithmus 5.2 gibt als Ausgabe ”n ist Primzahl“ aus, genau dann, wenn nPrimzahl ist.Die eine Richtung des Satzes ist leicht zu beweisen:5.4 LemmaIst n Primzahl, so gibt AKS-Algorithmus ”n ist Primzahl“ aus.Beweis: Falls n Primzahl ist, so gibt der Algorithmus in den Zeilen 1 <strong>und</strong>3 niemals n ist zusammengesetzt“ aus. Ist n Primzahl, so gilt nach Satz”5.1 für alle a mit ggT(a, n) = 1, dass (x + a) n ≡ X n + a mod n, also auch(X + a) n ≡ x n + a mod (x r − 1, n).Ist n bereits eine Primzahl, so gibt der Algorithmus in Zeile 5 nie n ist ”zusammengesetzt“ aus, denn X n + a ≡ (X + a) n (mod n) für alle a ∈ Z (vgl.Bemerkung nach 5.1).Also gibt der Algorithmus in Zeile 4 oder 6 n ist Primzahl“ aus. □”(Dazu ist noch zu zeigen: Algorithmus terminiert in Zeile 2. Dies wird in Lemma5.5 gezeigt.)Wir zeigen jetzt den schwierigen Teil von Satz 5.3, nämlich:Gibt der Algorithmus ”n ist Primzahl“ aus, so ist n Primzahl.41


Kapitel 5: Der Primzahltest von Agrawal, Kayal <strong>und</strong> SaxenaWir zeigen zunächst, dass der Algorithmus in Zeile 2 ein r findet, <strong>und</strong> zwar” schnell“.Dazu benötigen wir:Satz (Nair, 1982) Ist m ≥ 9, so ist kgV(1, 2, . . ., m) ≥ 2 m .(Der Beweis ist nicht sehr schwierig; siehe M. Nair, On Chebyshev-type inequalitiesfor primes. The American Mathematical Monthly 89, 126 – 129,1982.)5.5 LemmaEs gibt ein r ≤ ⌈16(logn) 5 ⌉ mit o r (n) > 4(log n) 2 .Beweis: Sei k := 4(log n) 2 . Seien r 1 , . . .,r t alle diejenigen Zahlen, für die gilt:o ri (n) ≤ k.(Für diese r i gilt: r i | n di − 1 für ein d i ≤ k; also gibt es nur endlich viele.)Jedes dieser r i teilt das folgende Produkt∏ ⌊k⌋i=1 (ni − 1) < n · n 2 · · · · · n ⌊k⌋ = n ⌊k⌋·(⌊k⌋+1)2 ≤ n k2 = n 16(log n)4 = 2 16(log n)5 .Nach Satz von Nair: kgV(1, 2, . . ., ⌈16 · (log n) 5 ⌉) ≥ 2 16·(log n)5 .Also gibt es eine Zahl r < ⌈16 · (log n) 5 ⌉, die ∏ ⌊k⌋i=1 (ni − 1) nicht teilt. Dann:o r (n) > k = 4(log n) 2 . □Wenn der Algorithmus in Zeile 4 ”n ist Primzahl“ ausgibt, (d. h. r ≥ n), soist n eine Primzahl, denn sonst hätte der Algorithmus in Zeile 3 einen Teilervon n gef<strong>und</strong>en.Also Annahme ab jetzt:Der Algorithmus gibt in Zeile 6 ”n ist Primzahl“ aus.Wir haben zu zeigen:Es gibt keinen Teiler von n, der größer als r ist.(Teiler ≤ r wären in Zeile 3 gef<strong>und</strong>en worden.)Also Zweite Annahme:Es existiert eine Primzahl p, r < p < n, mit p | n.Beachte: ggT(n, r) = 1 nach Zeile 2 des Algorithmus. Also p+rZ, n+rZ ∈ Z ∗ r .Sei l = ⌊2 √ ϕ(r) log n⌋ die Grenze für die Tests der a ′ s in Zeile 5.Dann:(x + a) n ≡ x n + a mod (x r − 1, n) für alle 1 ≤ a ≤ l.Also auch:42


Kapitel 5: Der Primzahltest von Agrawal, Kayal <strong>und</strong> Saxena(x + a) n ≡ x n + a mod (x r − 1, p) für alle 1 ≤ a ≤ l.Nach 5.1:(x + a) p ≡ x p + a mod (x r − 1, p) für alle 1 ≤ a ≤ l.□5.6 DefinitionSeien p <strong>und</strong> r wie oben, f ∈ Z[x] ein ganzzahliges Polynom.Eine Zahl m ∈ Z heißt p-artig für f(x), falls f(x) m ≡ f(x m ) mod (x r − 1, p).Also: n <strong>und</strong> p sind p-artig für alle x + a, 1 ≤ a ≤ l.Wir zeigen nun, dass p-artige Zahlen für ein festes Polynom abgeschlossen sindunter Multiplikation <strong>und</strong> dass umgekehrt die Menge aller Polynome, für dieeine feste Zahl p-artig ist, ebenfalls abgeschlossen ist unter Multiplikation.5.7 LemmaSind m, m ′ p-artig für ein Polynom f(x), so auch m · m ′ .Beweis: (1) (f(x)) mm′ ≡ (f(x m )) m′ mod (x r − 1, p).Aus f(x) m′ ≡ f(x m′ ) mod (x r − 1, p) folgt durch Ersetzen von x durch x mf(x m ) m′ ≡ f(x mm′ ) mod (x mr − 1, p).Da x r − 1 | x mr − 1, gilt auch(2) f(x m ) m′ ≡ f(x mm′ ) mod (x r − 1, p).Aus (1) <strong>und</strong> (2) folgt die Behauptung. □5.8 LemmaIst m p-artig für f(x) <strong>und</strong> g(x), so auch für f(x) · g(x).Beweis: (f(x) · g(x)) m = f(x) m · g(x) m ≡ f(x m )g(x m ) mod (x r − 1, p).Wir setzen jetzt:I = {n i · p j | i, j ≥ 0}P = { ∏ la=1 (x + a)fa | f a ≥ 0} (l = ⌊2 √ ϕ(r) log n⌋ wie oben)□43


Kapitel 5: Der Primzahltest von Agrawal, Kayal <strong>und</strong> SaxenaNach 5.7 <strong>und</strong> 5.8 gilt:Jede Zahl aus I ist p-artig für jedes Polynom aus P.Wir definieren nun zwei Gruppen G <strong>und</strong> H, die für den weiteren Beweis besonderswichtig sind.Definition der Gruppe GG := {k + rZ | k ∈ I} ⊆ Z ∗ rDa I abgeschlossen bezüglich Multiplikation ist, ist G Untergruppe von Z ∗ r .Es ist G = 〈p + rZ, n + rZ〉.Sei |G| = t. Dann ist t | ϕ(r) nach dem Satz von Lagrange, denn |Z ∗ r| = ϕ(r).Da o(n + rZ) = o r (n) > 4(log n) 2 <strong>und</strong> o(n + rZ) | |G| = t, folgt t > 4(log n) 2 .Bevor wir die Gruppe H definieren können, eine Vorbemerkung:Wir fassen x r − 1 als Polynom in Z p [x] auf. Es ist ggT(r, p) = 1, da r < p, pPrimzahl.Wir verwenden den folgenden Satz aus der Algebra (Stichwort: Kreisteilungspolynome;siehe z. B. R. Lidl, H. Niederreiter: Introduction to finite fieldsand their applications, Abschnitt 2.4):Satz:Es existiert ein irreduzibles Polynom h = h(x) ∈ Z p [x] mit(1) h(x) | x r − 1(2) ggT(h(x), x s − 1) = 1 für alle s | r, s < r.Es ist hZ p [x] ⊇ (x r − 1)Z p [x] <strong>und</strong> F = Z p [x]/hZ p [x] ist ein endlicher Körper(2.29.e). Außerdem ist F ⊇ Z p , wobei Z p identifiziert ist mit {c + hZ p [x] | c ∈Z p }.Jedem Polynom f aus Z[x] ist in natürlicher Weise ein Element f aus F zugeordnetals Bild der Hintereinanderausführung der beiden folgenden Homomorphismen:f ∈ Z[x] → ˜f ∈ Z p [x] → f = ˜f+hZ p [x] ∈ F, wobei der erste Homomorphismusdurch die Reduktion der Koeffizienten modulo p gegeben ist.Definition der Gruppe HH = {g + hZ p [x] | g ∈ P, g + hZ p [x] ≠ 0} ⊆ F ∗P ist abgeschlossen bezüglich Multiplikation, also ist H Untergruppe von F ∗ .Es ist H = 〈x + a | 1 ≤ a ≤ l, x + a ≠ 0〉.(x + a = 0 ist nur möglich, falls x + a (genauer ˜x + a) = h(x).)Wir zeigen nun: |H| ist groß im Vergleich zu t = |G|. Dies ist das entscheidendeLemma in der Arbeit von Agrawal, Kayal <strong>und</strong> Saxena.44


Kapitel 5: Der Primzahltest von Agrawal, Kayal <strong>und</strong> Saxena5.9 Lemma|H| ≥ ( )t+l−2t−1Beweis: x r ≡ 1 mod (x r −1, p), also auch x r ≡ 1 mod (h(x), p), d. h. x r = 1in F ∗ .Nach 2.9.d ist daher o(x) ein Teiler von r.Wäre o(x) = s, s < r, so wäre x s ≡ 1 mod (h(x), p), d. h. h(x) | x s − 1 inZ p [x], im Widerspruch zu (2) oben.Also gilt:(Man sagt dann auch: x ist primitive(a) o(x) = rr-te Einheitswurzel in F.)Wir zeigen nun:(b) Sind f, g ∈ P mit f ≠ g <strong>und</strong> grad f, grad g < t, so ist f ≠ g:Angenommen f = g. Sei m ∈ I.Dann f m = g m , d. h. f(x) m ≡ g(x) m mod (h(x), p).Da f, g ∈ P, m ∈ I, ist f(x) m ≡ f(x m ) mod (x r − 1, p), also auch f(x) m ≡f(x m ) mod (h(x), p) <strong>und</strong> analog für g. Also ist f(x m ) ≡ g(x m ) mod (h(x), p).Das bedeutet aber: x m ist Nullstelle von q(y) = f(y) − g(y) ∈ F[y].Da o(x) = r, gilt daher für beliebige m 1 , m 2 ∈ I mit m 1 + rZ ≠ m 2 + rZ, dassx m1 ≠ x m2 .Also hat q mindestens |G| = t viele verschiedene Nullstellen in F. Dies ist einWiderspruch, da grad q ≤ grad f < t.Also: f ≠ g.(c) x + 1, . . .,x + l sind paarweise verschiedene Elemente in F:Sei 1 ≤ i ≠ j ≤ l. Dann i ≠ j in Z p (d. h. genauer i ≢ j mod p), denn:l = ⌊2 √ ϕ(r) log n⌋ < 2 √ r log n ≤ r < p, wobei die vorletzte Ungleichungwegen r ≥ ϕ(r) ≥ o r (n) > 4(log n) 2 gilt.Daraus folgt (c).(d) Beweisabschluss:H enthält mindestens l −1 viele Elemente x + a i (nämlich alle x + j, 1 ≤ j ≤ l,außer evtl. ein x + a = 0, falls h(x) = x + a).Bildet man zwei verschiedene Polynome f <strong>und</strong> g vom Grad < t, die jeweilsProdukte von einigen x + a i sind, so ist f ≠ g nach (b).Wie viele solche Polynome gibt es? Dies ist genau die Anzahl der Auswahlenvon t−1 vielen Elementen aus {1, x−a 1 , . . . , x−a l−1 } mit Wiederholung ohneBerücksichtigung der Anordnung.Diese Anzahl ist ( ) (l+(t−1)−1t−1 = l+t−2t−1).45


Kapitel 5: Der Primzahltest von Agrawal, Kayal <strong>und</strong> SaxenaAlso: |H| ≥ ( )l+t−2t−1 .□Wir zeigen nun, dass |H| andererseits ”klein“ sein muss, wenn n nicht Potenzvon p ist.5.10 LemmaIst n keine Potenz von p, so |H| < 1 2 n2√t .Beweis: Setze I ′ = {n i · p j | o ≤ i, j ≤ ⌊ √ t⌋} ⊆ I.Angenommen, n i · p j = n i′ · p j′ . Ist i ≠ i ′ , etwa i > i ′ , so n i−i′ = p j′ −j , also nPotenz von p, Widerspruch.Damit i = i ′ <strong>und</strong> dann auch j = j ′ . Daher: |I ′ | = (⌊ √ t⌋ + 1) 2 > ( √ t) 2 = t.Es ist |G| = t. Also existieren m 1 , m 2 ∈ I ′ mit m 1 ≠ m 2 <strong>und</strong> m 1 +rZ = m 2 +rZ.Sei etwa m 1 > m 2 .Dann ist x m1−m2 ≡ 1 mod (x r − 1, p), also x m1 ≡ x m2 mod (x r − 1, p).Ist f ∈ P, so ist f(x) m1 ≡ f(x m1 ) ≡ f(x m2 ) ≡ f(x) m2 mod (x r − 1, p), <strong>und</strong>dann auch f(x) m1 ≡ f(x) m2 mod (h(x), p).Also gilt in F: f(x) m1 = f(x) m2 . Daher ist f(x) Nullstelle des Polynoms q ′ (y) =y m1 − y m2 ∈ F[y]. Folglich hat q ′ mindestens |H| viele Nullstellen in F. DieAnzahl der Nullstellen eines Polynoms über einem Körper ist aber höchstensso groß wie der Grad des Polynoms. Damit folgt:|H| ≤ grad q ′ = m 1 ≤ (n · p) ⌊√t⌋ < 1 2 n2√t . Dabei gilt die zweite Ungleichungnach Definition von I ′ <strong>und</strong> die letzte, da p | n, p ≠ n.Wir können nun den Beweis von Satz 5.3 abschließen.□5.11 LemmaGibt der AKS-Algorithmus ”n ist Primzahl“ aus, so ist n Primzahl.Wir benötigen zwei einfache Eigenschaften von Binomialkoeffizienten:(i) Ist c ≥ b ≥ a, so ( (ca)≥b)aInsbesondere: Ist c ≥ b ≥ 0, so ( ) (a+cc ≥ a+b)b(ii) ( )2a−1a ≥ 2 a für a ≥ 3.46


Kapitel 5: Der Primzahltest von Agrawal, Kayal <strong>und</strong> SaxenaBeweis von 5.11: Angenommen, der Algorithmus gibt ”n ist Primzahl“ inZeile 6 aus. Angenommen, n ist keine Primzahl.Dann gilt mit |G| = t, l = ⌊2 √ ϕ(r) log n⌋:|H| ≥ ( )t+l−2t−1(nach 5.9)≥ ( l−1+⌊2 √ tlog n⌋) ⌊2 √ tlog n⌋ (mit (i), da t > 4(log n) 2 ), also t > ⌊2 √ t log n⌋)≥ ( 2⌊2 √ t log n⌋−1) ⌊2 √ t log n⌋ (mit (i), da t ≤ ϕ(r) <strong>und</strong>daher l = ⌊2 √ ϕ(r)log n⌋ ≥ ⌊2 √ t log n⌋)≥ 2 ⌊2√ tlog n⌋(mit (ii))≥ 2 2√ t log n−1= 1 2 n2√t .Nach 5.10 ist also n eine Potenz von p. Also dann hätte der Algorithmus inZeile 1 ”n ist zusammengesetzt“ ausgegeben, Widerspruch. □5.12 SatzDer AKS-Algorithmus hat eine Bitkomplexität vonO((log n) 10,5 · poly(log log n)),also auch eine Bitkomplexität vonO((log n) 10,5+ε ) für jedes ε > 0Beweis: Komplexitätsanalyse für jeden Schritt:(1) Teste für c = 2, 3, . . .,log n, ob b ≤ √ n existiert mit b c = n. BinäreSuche: O(log( √ n)) für jedes c. Jeder Schritt: b c berechnen: O((log n) 3 )Bitoperationen (siehe Kapitel 3). Damit ergibt sich eine Komplexität fürdiesen Schritt von O((log n) 5 ).(2) Bis ⌈16(logn) 5 ⌉ hochzählen: ggT(n, r) hat O(log r log n) Bitoperationen(siehe Kapitel 3) oder O(log n · poly(log log n)).Teste alle d ≤ 4(log n) 2 , ob n d ≡ 1 (mod r). Für jedes d (für festes r)kostet dieser Test: O(log d) viele Multiplikationen in Z r , O((log r) 2 log d)viele Bitoperationen.Folglich O((log n) 2 ·poly(log log n)) Bitoperationen für festes r. Hochzählen:O((log n) 7 · poly(log log n))47


Kapitel 5: Der Primzahltest von Agrawal, Kayal <strong>und</strong> Saxena(4) O(logn)(5) Für festes a: O(log n) viele Polynommultiplikationen von Polynomen vomGrad < r, deren Koeffizienten Bitlänge O(log n) haben.Klassisch: Multiplikation zweier Polynome vom Grad < r benötigt O(r 2 )viele Multiplikationen in Z n .FFT-Methode: O(r log r) viele Multiplikationen in Z n (siehe hierzu [14]).Folglich O(r(log n) 2 (log n) 3 (log r)(log log n)) viele Bitoperationen.Insgesamt:O(r √ ϕ(r)(log n) 3 (log r)(log log n)) = O(r 3/2 (log n) 3 (log r)(log log n))Mit r = O((log n) 3 ) ergibt sich: O((log n) 10,5 · poly(log log n))Aufsummieren ergibt die angegebene Gesamtkomplexität.□Bemerkung: Verbesserungen des AKS-Algorithmus• Bernstein (2003): randomisierter Algorithmus; Erwartungswert derLaufzeit O((log n) 4+ε )• Lenstra <strong>und</strong> Pomerance (2003): Deterministischer Algorithmus mit LaufzeitO((log n) 6 · poly(log log n))• Weblinks:http://www.aimath.org/http://cr.yp.to/papers.htmlhttp://primes.utm.edu/(D.J. Bernstein)48


6 Pollards Rho-Methode zurFaktorisierung von ZahlenVorbemerkung: Nach Kap.5 kann man in polynomialer Zeit entscheiden, obeine Zahl zusammengesetzt ist oder nicht. Falls sie zusammengesetzt ist, weißman jedoch noch nichts über ihre Faktoren. Alle bekannten <strong>Faktorisierungsalgorithmen</strong>sind wesentlich zeitaufwändiger als <strong>Primzahltests</strong>. Man weiß bisheute nicht, ob es polynomiale <strong>Faktorisierungsalgorithmen</strong> gibt. Daher wirdman bei einer Zahl n, wenn man nicht schon weiß, dass sie zusammengesetztist, zunächst einen Primzahltest durchführen.Wir nehmen daher im Folgenden an: n ist zusammengesetzt.Ziel: Finde nicht-trivialen Faktor von n.Die Faktorisierung von n durch bloße Probedivisionen bis √ n erfordertO( √ n · (log n) 2 ) viele Bitoperationen. Der einfachste Faktorisierungsalgorithmus,der wirklich schneller ist, ist Pollards Rho-Methode.Gr<strong>und</strong>überlegung: Ist d | n, 1 < d < n, so gibt es mehr Restklassenals Restklassen mod d.mod nAbbildung 6.1: Idee der Pollard-Methode49


Kapitel 6: Pollards Rho-Methode zur Faktorisierung von ZahlenWählt man eine Zufallsfolge x j , so sollte es ”häufig“ passieren, dass d | x i − x j<strong>und</strong> n ∤ x i − x j . Dann: 1 < ggT(x i − x j , n) < n ist ein echter Teiler von n.Idee der Rho-Methode (Pollard, 1975)Wähle f : Z n → Z n (i.A. f(x) = x 2 ± 1),wähle Startwert x 0 (z.B. x 0 = 1 oder 2)Erzeuge Folge x 0 , x 1 = f(x 0 ), x 2 = f(x 1 ), . . . , x j+1 = f(x j )Sei d|n. Hoffnung: Finde x i ≠ x j mit x i ≡ x j (mod d) (dannggT(x i −x j , n) nicht-trivialer Teiler von n, falls x i ≢ x j (mod n)).Beispiel: n = 143 = 11·13, d = 11, f(x) = x 2 +1, x 0 = 2 ergibtFolge: 2, 5, 26, 105, 15, 83, 26 <strong>und</strong> periodisch weiter. Weiter ist2 ≡ 2 (mod 11), 5 ≡ 5 (mod 11), 26 ≡ 4 (mod 11), 105 ≡ 6 (mod 11), 15 ≡ 4(mod 11), 83 ≡ 5 (mod 11), also ist ggT(x 4 − x 2 , n) = ggT(15 − 26, 143) = 11.Nun kennt man aber d nicht, so dass man die Rechnung so nicht durchführenkann.Wie geht man (naiv) vor? Für jedes i berechne ggT(x i − x j , n) für alle j < i.Ist 1 ≠ ggT(x i − x j , n) ≠ n, so hat man einen echten Teiler von n gef<strong>und</strong>en.Obiges Beispiel:ggT(5 − 2, 143) = 1, ggT(26 − 2, 143) = 1, ggT(26 − 5, 143) = 1,ggT(105 − 2, 143) = 1, ggT(105 − 5, 143) = 1, ggT(105 − 26, 143) = 1,ggT(15 − 2, 143) = 13.Wie lange muss man warten, bis ein nicht-trivialer Teiler ggT(x i − x j , n) auftaucht?Wir beantworten diese Frage, indem wir für einen festen Teiler d vonn <strong>und</strong> eine ”zufällig“ gewählte Abbildung f : Z n → Z n beantworten, wann imDurchschnitt der erste Index k auftaucht mit x j ≡ x k (mod n) für ein j < k.6.1 PropositionSei d | n.Sei F = {f : Z n → Z n }.Für f ∈ F, x 0 ∈ Z n sei x j+1 = f(x j ) für alle j ∈ N. Sei λ ∈ R, λ > 0 <strong>und</strong>l = 1 + ⌊ √ 2λd⌋. Dann gilt:|{(x 0 , f) : x 0 ∈ Z n , f ∈ F, x i ≢ x j mod d ∀ 0 ≤ i ≠ j ≤ l}||{(x 0 , f) : x 0 ∈ Z n , f ∈ F}|≤ e −λ50


Kapitel 6: Pollards Rho-Methode zur Faktorisierung von ZahlenBeweis: Nenner: n n+1 , da n Möglichkeiten für x 0 , n n Möglichkeiten für f.Zähler: x 0 : n Möglichkeitenf(x 0 ) = x 1 : n − n d Möglichkeitenf(x 1 ) = x 2 : n − 2n d Möglichkeiten . . .f(x l−1 ) = x l : n − nl Möglichkeiten. Die Werte der Abbildung f an den Stellend≠ x 0 , x 1 , . . . , x l−1 sind beliebig wählbar, es existieren also n n−l Möglichkeiten.Insgesamt: n · (n ( )− d) n · · · · · n −nld · n n−l = n n+1 ∏ l( )j=1 1 −jdVerhältnis: ∏ lj=1für 0 < x < 1, ergibt:⎛l∏(ln ⎝ 1 −d) ⎞ j ⎠ =j=1(1 −jd). Logarithmieren <strong>und</strong> anwenden, dass ln(1 − x) < −xl∑j=1(ln 1 − j )


Kapitel 6: Pollards Rho-Methode zur Faktorisierung von ZahlenEs gilt: Existiert j 0 < k 0 mit 1 < ggT(x k0 − x j0 , n) < n, so existiert k ≤ 4k 0 ,so dass (6.2) im Schritt k einen nicht-trivialen Teiler von n findet.Beweis: Angenommen k 0 hat h Bits. Setze j = 2 h − 1, k = j + (k 0 − j 0 ). kist (h + 1)-Bit-Zahl. Im k-ten Schritt von (6.2) wird ggT(x k − x j , n) gebildet.Es ist x k0 ≡ x j0 (mod d) für einen echten Teiler d von n.f Polynom ⇒ f(x k0 ) ≡ f(x j0 ) mod d.x k = f k−k0 (x k0 ) ≡ f k−k0 (x j0 ) ≡ x j0+k−k 0≡ x j mod d.k < 2 h+1 = 4 · 2 h−1 ≤ 4k 0 .□(6.2) findet also vielleicht nicht das kleinste k, für das ein j < k existiert mit1 < ggT(x k − x j , n) < n, aber eines, was höchstens viermal so groß wie daskleinste ist.Beispiel: n = 4087, f(x) = x 2 + x + 1, x 0 = 2. Wir rechnen in Z n .x 1 = f(2) = 7 ggT(x 1 − x 0 , n) = ggT(7 − 2, 4087) = 1x 2 = f(7) = 57 ggT(x 2 − x 1 , n) = ggT(57 − 7, 4087) = 1x 3 = f(57) = 3307 ggT(x 3 − x 1 , n) = ggT(3307 − 7, 4087) = 1x 4 = f(3307) = 2745 ggT(x 4 − x 3 , n) = ggT(2745 − 3307, 4087) = 1x 5 = f(2745) = 1343 ggT(x 5 − x 3 , n) = ggT(1343 − 3307, 4087) = 1x 6 = f(1343) = 2626 ggT(x 6 − x 3 , n) = ggT(2626 − 3307, 4087) = 1x 7 = f(2626) = 3734 ggT(x 7 − x 3 , n) = ggT(3734 − 3307, 4087) = 614087 = 61 · 676.3 Komplexität der Rho-Methode (Heuristik)Sei d = p kleinster Primteiler der zusammengesetzten Zahl n. Verhält sich(x 0 , f) ”zufällig“, so kann nach (6.1) mit Wahrscheinlichkeit 1 − e −λ nachO( √ 2λp) vielen Schritten Kollision gef<strong>und</strong>en werden (x j0 ≡ x k0 mod p). Bei(6.2) vergrößert sich die Anzahl der Schritte maximal um Faktor 4. Bei festgewähltem λ (z.B. λ = 1000): O( √ p) = O(n 1 4) viele Schritte. Jeweils eine ggT-Berechnung: O((log n) 2 ) Bitoperationen. Erwartete Laufzeit: O(n 1 4 (log n) 2 ).52


7 Das quadratische SiebPomerance (1982,1985).Vielzahl von Varianten <strong>und</strong> Vorläufern (z.B. Dixon, 1981).Gr<strong>und</strong>idee: Fermat.7.1 Bemerkungn ungerade natürliche Zahl. Dann gibt es eine 1-1-Beziehung zwischen denFaktorisierungen n = a · b, a ≥ b > 0, von n <strong>und</strong> den Darstellungen n =t 2 − s 2 , s, t ∈ N 0 :n = a · b ⇒ t = a + b2 , s = a − b2n = t 2 − s 2 ⇒ n = (t + s)(t − s)⇒ n = t 2 − s 27.2 Fermat-Faktorisierung (Gr<strong>und</strong>version)Sei n = a · b, a, b etwa gleich groß, dann ist s = a−b2klein, t = a+b2in der Nähevon √ n (etwas größer).Teste für t = ⌈ √ n ⌉, ⌈ √ n ⌉ + 1, . . . bis t 2 − n = s 2 ein Quadrat ist.n = (t + s)(t − s) ist dann eine Faktorisierung.Beispiel: n = 200819⌈ √ n ⌉: 449 2 − 200819 = 782 ist keine Quadratzahl⌈ √ n ⌉ + 1 : 450 2 − 200819 = 1681 = 41 2⇒ n = (450 + 41)(450 − 41) = 491 · 409.Liegen a <strong>und</strong> b nicht nahe beieinander, so braucht (7.2) lange. Dann besserfolgendes Vorgehen:53


Kapitel 7: Das quadratische Sieb7.3 Fermat-Faktorisierung (erweiterte Version)Sei n eine ungerade zusammengesetzte Zahl.Wähle kleines k ∈ N (k ≤ 2√ n3). Ist k gerade, so sei 4 | k.Setze t = ⌈ √ kn⌉, ⌈ √ kn⌉ + 1, . . . bis t 2 − kn = s 2 ein Quadrat ist.Dann sind ggT(t + s, n) <strong>und</strong> ggT(t − s, n) nicht-triviale Teiler von n.Beweis: Es ist (t + s)(t − s) = kn.Angenommen, ggT(t + s, n) = 1. Dann t + s | k <strong>und</strong> n | t − s.Also: kn = t 2 − s 2 = (t + s)(t − s) > (t − s) 2 ≥ n 2 , k > n, Widerspruch.Derselbe Beweis funktioniert, wenn ggT(t − s, n) = n.Angenommen, ggT(t + s, n) = n.Dann n | t + s. Da t > s, folgt 2t > t + s ≥ n, d. h. t ≥ n+12 .Sei n = ab, a ≤ √ n, b ≥ √ n (möglich, da n zusammengesetzt).Wir betrachten zunächst den Fall, dass k ungerade ist.Dann ist kn = ( ka+b2) 2 − ( ka−b2) 2 . Beachte ka + b, ka − b sind gerade, da k, a, bungerade. Klar: ka+b2≥ √ kn.Da t die erste Zahl ≥ √ kn ist, für die t 2 − kn ein Quadrat ist, ist t ≤ ka+b2.Aus t ≥ n+12folgt dahera + b (nach Wahl von k)+ 1) ≤ ab (da a ≥ 3), Widerspruch.ab = n < n + 1 ≤ 2t ≤ ka + b ≤ 2√ n3≤ 2ab3 + b = b(2a 3Sei nun k gerade. Dann nach Voraussetzung k = 4 · k ′ .Es ist kn = (k ′ a + b) 2 − (k ′ a − b) 2 . Klar: k ′ a + b ≥ √ kn.Wie im obigen Fall ist dann t ≤ k ′ a + b.Aus t ≥ n+12folgtab = n < n + 1 ≤ 2t ≤ 2k ′ a + 2b = 1 2 ka + 2b ≤ 3√ 1 na + 2b ≤13ab + 2b =a + 2)b ≤ ab (da a ≥ 3), Widerspruch.( 1 3Da aus ggT(t−s, n) = 1 folgt, dass ggT(t+s, n) = n, ist auch ggT(t−s, n) = 1nicht möglich.BemerkungIn (7.3) wurde vorausgesetzt, dass für gerades k schon 4 ein Teiler von ksein muss, da ansonsten keine s <strong>und</strong> t mit kn = t 2 − s 2 existieren. Dennt 2 − s 2 = (t − s)(t + s) ist stets ungerade oder durch 4 teilbar.□54


Kapitel 7: Das quadratische SiebBeispiel: n = 141467Mit (7.2): 38 Versuche.Wähle in (7.3) k = 3, t = ⌈ √ 3n⌉ = 652, 653, . . .Bei 655: 655 2 − 3 · 141467 = 68 2ggT(655 + 68, 141467) = 241n = 241 · 587Verallgemeinerung: Gesucht sind s, t mit t 2 ≡ s 2 (mod n) <strong>und</strong> t ≢ ±s(mod n). Dann ist ggT(t + s, n) oder ggT(t − s, n) nichttrivialer Teilervon n.Hat man eine Chance, solche s, t zu finden?7.4 SatzSei n ungerade Zahl, p 1 , . . . , p r die verschiedenen Primteiler von n. Ist a einQuadrat mod n, a ≢ 0 (mod n), so gibt es genau 2 r viele b i mit b i ≢ b j(mod n) für i ≠ j <strong>und</strong> b 2 i ≡ a (mod n) (a + nZ hat 2r viele Quadratwurzeln inZ/nZ).Beweisskizze: Sei a + nZ = b 2 + nZ. Sei p | n, p α |n (p α | n, p α+1 ∤ n).In Z p hat a + pZ genau 2 Wurzeln: b + pZ, −b + pZ(p ≠ 2) (Z p ist Körper,ā = a + pZ, X 2 − ā ∈ Z p [X] hat höchstens zwei Nullstellen). Dann kann manzeigen: In Z p α sind b + p α Z, −b + p α Z die einzigen Wurzeln von a + p α Z.Der Chinesische Restesatz liefert 2 r viele Wurzeln (mod n).Beispiel: n = 15 – Wurzeln aus 4 (mod 15)? 2, −2 ≡ 13; 8, −8 ≡ 7 (allesmod n)Im Folgenden: a (mod n) (entgegen der üblichen Bezeichnungsweise) sei derbetragsmäßig kleinste Rest (mod n), das heißt die ganze Zahl im der Menge{− n−1n−12, . . . , 0, . . .,2}, die kongruent a (mod n) ist.7.5 DefinitionSei n ungerade zusammengesetzte Zahl.55


Kapitel 7: Das quadratische Sieba) Eine Faktorbasis ist eine Menge B = {p 1 , p 2 , . . .,p h } von Primzahlen (mitevtl. p 1 = −1)b) b ∈ Z heißt B-Zahl (auch B-glatt, B-smooth), falls b 2 (mod n) als Produktvon Zahlen aus B geschrieben werden kann.Beispiel: n = 4633, B = {−1, 2, 3}, dann sind 67, 68, 69 B-Zahlen:67 2 ≡ −144 (mod 4633)68 2 ≡ −9 (mod 4633)69 2 ≡ 128 (mod 4633)Gr<strong>und</strong>idee des quadratischen Siebs1) Ist b B-Zahl, b 2 (mod n) = ∏ hj=1 pαj J , α j ≥ 0.Ordne b den Vektor e = (ε 1 , . . . , ε 2 ) ∈ Z h 2 zu mit ε i = α i mod 2.2) Angenommen wir haben B-Zahlen b 1 , . . . , b r mit zugeordneten Vektorene i = (ε i1 , . . . , ε ih ) <strong>und</strong> ∑ hi=1 e i = 0 in Z h 2 .Sei a i ≡ b 2 i (mod n), a i = ∏ h. Dann:j=1 paij jr∏a i =i=1=h∏j=1⎛h∏⎝P ri=1pαijjj=1p γjj⎞⎠2(der Exponent jedes p j ist gerade)wobei γ j =P ri=1 αij2. Sei b = ∏ ri=1 b i mod n <strong>und</strong> c = ∏ hb 2 ≡r∏ r∏b 2 i ≡ a i ≡ c 2 (mod n)i=1i=1j=1 pγj j. Dann istHoffnung: b ≢ ±c√(mod n).n−1Sind alle |b i | ≤2 , so ist b i = ±a i <strong>und</strong> b = ∏ b i = ±c; dieser Fallhilft also nichts.Wählt man unter den B-Zahlen auch größere, so besteht die Chance nach(7.4), dass b ≢ ±c (mod n).3) Fragen: Wie wählt man B <strong>und</strong> wie erhält man genügend viele B-Zahlen,deren zugeordnete e-Vektoren sich zu 0 addieren (in Z h 2)?56


Kapitel 7: Das quadratische Sieb1. Möglichkeit: Wähle B = {−1, 2, 3, . . ., p h } die ersten h −1 Primzahlen<strong>und</strong> -1 (h nicht zu groß), beispielsweise n = 10 50 ; p h ≤ 10 6 .Wähle zufällig b ∈ N <strong>und</strong> überprüfe, ob b 2 mod n nur Primteiler inB hat (Prinzip des Dixon-Algorithmus).2. Möglichkeit: Wähle Zahlen b so, dass b 2 (mod n) betragsmäßig klein,z.B. b in der Nähe von √ kn für kleine k. Wähle B so, dass es diePrimteiler der kleinen Absolutbeträge der b 2 (mod n) enthält. (Diesist die Idee des Pomerance-Algorithmus.)In jedem Fall: Wann kann man sicher sein, dass man genug B-Zahlenhat, so dass die Summe einiger ihrer e-Vektoren Null wird? Falls |B| = h,so h + 1 viele, da dim Z h 2 = h (nichttriviale Linearkombinationen finden:Gauß-Algorithmus aus der linearen Algebra).Beispiel: n = 1829, B = {−1, 2, 3, 5, 7, 11, 13}. Wir suchen all die Zahlen b i inder Nähe von ⌈ √ 1829k⌉, für die b 2 i (mod n) Produkt von Primzahlen < 15 ist.Sei b 2 i = ∏ j pαij j . Die Tabelle enthält die α ij .b i −1 2 3 5 7 11 1342 1 − − 1 − − 143 − 2 − 1 − − −61 − − 2 − 1 − −74 1 − − − − 1 −85 1 − − − 1 − 186 − 4 − 1 − − −⇒1001001000100000001001000010100010100010002. + 6. Zeile: b 2 = (b 2 · b 6 ) 2 ≡ (2 3 · 5 1 ) 2 = c 2 (mod n)}43 · 86 ≡ 40 (mod n)2 3 · 5 1 b ≡ c (mod n) Pech!≡ 40 (mod n)1. + 2. + 3. + 5. Zeile: b 2 = (b 1·b 2·b 3·b 5 ) 2 ≡ ((−1)·2 1·31·71·131 ) 2 = c 2 (mod n)}b ≡ −370 (mod n)b ≢ c (mod n)c ≡ 901 (mod n)ggT(b + c, n) = ggT(531, 1829) = 59⇒ n = 59 · 31Algorithmus (Quadratisches Sieb) Input: n zusammengesetzt (ungerade), nkeine Primzahlpotenz.57


Kapitel 7: Das quadratische SiebWähle B = {−1,√p 1 , p 2 , . . .,p k } (erste k Primzahlen) bis zur Schranke y (üblicherweisey ≈ exp( √ lnnlnln n); n ≈ 10 50 , y ≈ 10 5 − 10 6 ).Teste Zahlen b in der Nähe von √ n, ob sie B-Zahlen sind. Hat man k + 1B-Zahlen gef<strong>und</strong>en, so bestimme lineare Abhängigkeit der ε-Vektoren (siehe(7.5)).Bilde dann b = ∏ b i mod n <strong>und</strong> c = ∏ p γjj mod n. Ist b ≢ ±c (mod n), soggT(b + c, n) nicht-trivialer Teiler von von n. Ist b ≡ ±c (mod n), so versucheneue lineare Abhängigkeit zu ermitteln oder erweitere B <strong>und</strong> erzeuge neueB-Zahlen.7.6 BemerkungDas Quadratische Sieb hat Komplexität von(O exp((1 + ε) √ )lnnln lnn)Dabei istexp((1 + ε) √ lnnln lnn) = n (1+ε)√ ln n ln ln nln nDa (1+ε)√ ln n lnln nln n→ 0 ist der Algorithmus subexponentiell.Entscheidend für die Abschätzung ist, wie schnell man B-Zahlen findet.ψ(x, y) = |{m ∈ N : m ≤ x, alle Primteiler von m sind ≤ y}|ψ(x, y)x≈ u −u , wobei u = lnxlnyZum Beispiel: n = 10 48 , y = 10 6 , u −u ≈ 6 · 10 −8Siehe hierzu: [6]. Mit dem Quadratischen Sieb wurden über 100-stellige Zahlenfaktorisiert.7.7 BemerkungDas Quadratische Sieb lässt sich verallgemeinern zum Zahlkörpersieb (Gr<strong>und</strong>idee:Pollard, 1987). Statt in Z wird in Ringen Z[X]/fZ[X] (f irreduziblesPolynom) gearbeitet: Untersuchung von bestimmten quadratischen Kongruenzen.58


Kapitel 7: Das quadratische SiebUnter gewissen unbewiesenen heuristischen Annahmen gilt für dessen Komplexität:(O exp(c 3√ lnn 3√ )(ln lnn) 2 )Einzelheiten: [3, 6.2]7.8 BemerkungEine Methode, um Zahlen b zu bestimmen, so dass |b 2 mod n| < 2 √ n (alsoklein, n kein Quadrat) ist, ist die Kettenbruchmethode.√ 1n = a0 +1a 1 +1a 2 +a 3 + . . .ist die Kettenbruchentwicklung von √ n. Nach dem iten Schritt erhält man aiEs ist |b 2 i mod n| < 2 √ n <strong>und</strong> Kandidat für B-Zahl.(Morrison - Brillhart, 1975)Einzelheiten: [6, Chapter V, § 4]b i.59


8 Faktorisierung mit elliptischenKurvenSei K ein Körper. Allgemein ist eine elliptische Kurve über K gegeben durcheine Gleichungy 2 + a 1 xy + a 3 y = x 3 + a 2 x 2 + a 4 x + a 6 , a i ∈ Kwobei die Kurve glatt sein soll. (Dies bedeutet, dass an keinem Punkt (x, y) überdem algebraischen Abschluss von K beide partiellen Ableitungen der Kurveverschwinden.) Die Bezeichnung der Koeffizienten, insbesondere das fehlendea 5 , hat historische Gründe <strong>und</strong> hat sich eingebürgert.Elliptische Kurven sind ein wichtiges Thema der Analysis <strong>und</strong> algebraischenGeometrie. Ihren Namen haben sie erhalten, weil sie in Verbindung stehen mitsog. elliptischen Integralen, die z. B. bei der Umfangsbestimmung von Ellipsenauftreten. Seit ca. 1985 haben elliptische Kurven aber auch eine wichtige Bedeutungim Zusammenhang mit kryptografischen Systemen, <strong>Primzahltests</strong> <strong>und</strong><strong>Faktorisierungsalgorithmen</strong> gewonnen. Auf Letzteres wollen wir hier eingehen.Wir werden im Folgenden nur elliptische Kurven über Körpern der Charakteristik≠ 2 <strong>und</strong> 3 (d. h. 1 + 1 ≠ 0, 1 + 1 + 1 ≠ 0) betrachten. In diesen Fällenlässt sich jede elliptische Kurve nach geeigneten Koordinatentransformationenauf eine einfache Form bringen, die wir für uns zur Definition von elliptischenKurven verwenden.8.1 DefinitionSei K ein Körper, Char K ≠ 2, 3.Eine elliptische Kurve über K ist gegeben durch eine Gleichungy 2 = x 3 + ax + b, a, b ∈ Kwobei 4a 3 + 27b 2 ≠ 0.(4 <strong>und</strong> 27 stehen für 4 · 1 <strong>und</strong> 27 · 1 in K).60


Kapitel 8: Faktorisierung mit elliptischen KurvenDie Bedingung 4a 3 + 27b 2 ≠ 0 entspricht der Glattheitsbedingung; sie ist äquivalentdamit, dass die kubische Gleichung auf der rechten Seite keine Mehrfachnullstellenbesitzt.Zur Veranschaulichung geben wir eine elliptische Kurve über R an:Abbildung 8.1: Addition auf elliptischen Kurven61


Kapitel 8: Faktorisierung mit elliptischen KurvenFür unsere Zwecke ist die wichtigste Eigenschaft elliptischer Kurven, dass manauf ihnen (d. h. auf der Menge der Punkte (x, y), die die Gleichung aus 8.1erfüllen) eine Addition definieren kann, so dass daraus eine abelsche Gruppeentsteht. Dabei muss dieser Menge noch ein weiterer ( ”unendlich ferner “)Punkt O hinzugefügt werden. Wir bezeichnen die Menge dieser Punkte, die zueiner elliptischen Kurve über K gehören, mit E(K).Für elliptische Kurven über R lässt sich die Addition auf E(R) geometrisch einfachveranschaulichen (<strong>und</strong> ebenso die Inversen). Das beruht im Wesentlichendarauf, dass die Gerade durch zwei Punkte P, Q(≠ O) auf E(R) mit verschiedenenx-Koordinaten die Kurve in genau einem weiteren Punkt trifft; dessenSpiegelbild an der x-Achse liegt auch auf E(R) <strong>und</strong> ist P + Q.Das neutrale Element ist der unendlich ferne Punkt O, das Inverse −P einesPunktes P ≠ O ist das Spiegelbild von P an der x-Achse. Für den Fall P = Qlässt sich die Addition P + P auch geometrisch beschreiben: an die Stelle derGerade durch P <strong>und</strong> Q tritt die Tangente an P. Wichtig ist, dass man diesegeometrische Definition der Addition auf elliptischen Kurven ßüber R auchalgebraisch beschreiben kann, d. h. die Koordinaten der Punkte P + Q bzw.−P lassen sich durch die Koordinaten von P <strong>und</strong> Q beschreiben.Diese Beschreibung der Addition lässt sich nun auf elliptische Kurven über beliebigenKörpern (der Charakteristik ≠ 2, 3) übertragen, <strong>und</strong> man kann zeigen,dass dadurch immer eine abelsche Gruppe definiert wird. Dies ist der Inhaltdes folgenden Satzes.8.2 SatzSei K ein Körper, Char K ≠ 2, 3, y 2 = x 3 +ax+b eine elliptische Kurve überK.Dann wird E(K) = {(x, y) ∈ K 2 : y 2 = x 3 + ax + b} ∪ {O} eine abelscheGruppe durch folgende Definition:(1) P + O = O + P = P für alle P ∈ E(K)(2) −O = O; ist P = (x, y), so ist −P = (x, −y).(3) Sind P = (x 1 , y 1 ), Q = (x 2 , y 2 ), x 1 ≠ x 2 , so hat P + Q die Koordinatenx 3 = ( y2−y1x 2−x 1) 2 − x 1 − x 2y 3 = ( y2−y1x 2−x 1)(x 1 − x 3 ) − y 1(4) Ist P = (x 1 , y 1 ), Q = (x 1 , y 2 ), so ist y 2 = ±y 1 .Ist y 2 = −y 1 (d. h. Q = −P), so ist P + Q = O.Ist y 2 = y 1 ≠ 0 (d. h. Q = P), so hat P + P die Koordinaten62


Kapitel 8: Faktorisierung mit elliptischen Kurvenx 3 = ( 3x2 1 +a2y 1) − 2x 1y 3 = ( 3x2 1 +a2y 1)(x 1 − x 3 ) − y 1Der Beweis dieses Satzes kann elementar durchgeführt werden, ist aber ziemlichmühsam. Insbesondere der Nachweis des Assoziativgesetzes ist aufwändig <strong>und</strong>erfordert mehrere Fallunterscheidungen.(Beweis siehe z. B.: Annette Werner, Elliptische Kurven in der Kryptographie,Springer, 2002)Für endliche Körper K, | K |= q (q ist also eine Primzahlpotenz nach 2.30 a)kann man eine gute Abschätzung der Größe | E(K) | für eine elliptische Kurvegeben. Dies ist ein tiefliegender Satz von Hasse (zum Beweis siehe z. B. J.Silverman, The Arithmetic of Elliptic Curves, Springer, 1986):8.3 Satz (Hasse)Sei K ein endlicher Körper, | K |= q, N =| E(K) | für eine elliptische Kurveüber K. Dann ist(q + 1) − 2 √ q ≤ N ≤ (q + 1) + 2 √ q.Zur Beschreibung der Faktorisierungsmethode mit elliptischen Kurven benötigenwir noch folgende Definition:8.4 DefinitionSei n ∈ N, a1b 1, a2b 2∈ Q, ggT(b 1 , n) = ggT(b 2 , n) = 1.a 1b 1≡ a2b 2mod n, falls a1b 1− a2b 2in gekürzter Form einen durch n teilbaren Zählerbesitzt.Beachte: Ist ggT(n, b) = 1, so ist b + nZ in Z/nZ invertierbar. Daher ist fürjedes a ∈ Z dann a b ≡ c mod n, wobei c eine durch a beindeutig bestimmteganze Zahl ist mit 0 ≤ c ≤ n. Wir bezeichnen diese Zahl auch mit a bmod n.Die Gr<strong>und</strong>idee der Faktorisierungsmethode mit elliptischen Kurven, die von H.W. Lenstra jr. 1986 entwickelt wurde, ist folgende:Angenommen wir haben eine Gleichung y 2 = x 3 + ax + b, a, b ∈ Z, <strong>und</strong> einenPunkt P = (x, y), der diese Gleichung erfüllt.Wir nehmen an, dass 4a 3 + 27b 2 ≠ 0.63


Kapitel 8: Faktorisierung mit elliptischen KurvenSei n eine zusammengesetzte Zahl, ggT(6, n) = 1. Wir setzen voraus, dassggT(4a 3 + 27b 2 , n) = 1 ist.Reduziert man die Koeffizienten a <strong>und</strong> b modulo p für einen Primteiler p vonn, so erhält man also eine elliptische Kurve über Z/pZ.Nun betrachten wir die obige Gleichung <strong>und</strong> reduzieren die Koeffizienten modulon. Über Z/nZ lässt sich mit den Gleichungen aus 8.2 keine Gruppenstrukturdefinieren, <strong>und</strong> zwar deshalb, weil die Divisionen in 8.2. (3) bzw. (4) nur möglichsind, falls die Nenner teilerfremd zu n sind. (Beachte: (Z/nZ) ∗ = {a + nZ |ggT(a, n) = 1} nach 2.22.b.)Dies ist aber gerade der entscheidende Punkt an Lenstras Methode. Man versuchtVielfache kP des Punktes P zu bilden, <strong>und</strong> zwar über Z/nZ entsprechendden Additionsregeln aus 8.2. Dabei muss man ein Verfahren zur Berechnung vonkP wählen (z. B. iterierte Verdopplung entsprechend der iterierten Quadrierungbei Potenzbildung, vgl. 3.4). Das geht so lange gut (vgl. Bemerkung nach8.4), solange nicht irgendwann ein Nenner r auftaucht, der nicht teilerfremd zun ist. Dann ist ggT(r, n) ≠ 1 ein Teiler von n, <strong>und</strong> falls ggT(r, n) ≠ n, hat maneinen nicht-trivialen Faktor von n gef<strong>und</strong>en (mit Euklidischem Algorithmus).Wann tritt ein solcher Fall ein?8.5 SatzSei n eine zusammengesetzte Zahl, ggT(6, n) = 1.Sei E eine elliptische Kurve, gegeben durch y 2 = x 3 + ax + b mit a, b ∈ Z,ggT(4a 3 + 27b 2 , n) = 1.Seien P 1 , P 2 Punkte auf E(Q) \ {O}, wobei die Nenner der Koordinaten teilerfremdzu n seien; es sei P 1 ≠ −P 2 .Dann gilt:Die Koordinaten von P 1 + P 2 haben (in gekürztem Zustand) Nenner, die teilerfremdzu n sind, genau dann, wenn es keine Primzahl p | n gibt mit P 1mod p = −(P 2 mod P). Dabei bezeichnen wir mit P mod p die Punkte aufder elliptischen Kurve über Z/pZ, die aus y 2 = x 3 + ax + b durch Reduktionder Koeffizienten a, b modulo p entsteht.Der Beweis dieses Satzes ist nicht schwierig, aber etwas langwierig, da man diemöglichen Fälle der Addition in 8.2 betrachten muss. Einen Beweis findet manz. B. in N. Koblitz, A Course in Number Theory and Cryptography, Springer(Prop. VI.3.1.).64


Kapitel 8: Faktorisierung mit elliptischen Kurven8.6 Lenstras AlgorithmusInput: n zusammengesetzte Zahl, ggT(n, 6) = 1, n keine echte Potenz.(1) Wähle Schranken B <strong>und</strong> C (z. B. B = 20, C = 100.000)(2) Wähle a, x, y ∈ Z, berechne b = y 2 − x 3 − ax mod n.Ist ggT(4a 3 +27b 2 , n) = g ≠ 1, n, so gebe g als nicht-trivialen Faktor vonn aus.Ist g = n, so wähle neue a, x, y.Ist g = 1, so ist P = (x, y) Punkt auf der elliptischen Kurve mit Koeffizientena, b.(3) Sei k = Π (p≤B) p αp mit α p maximal, so dass p αp ≤ C. Berechne mit denGleichungen aus 8.2 kP mod n, falls möglich.Tritt in einem Zwischenschritt bei der Berechnung von k 1 P = k 2 P +k 3 P(mod n) (k 1 ≤ k) ein Nenner r auf mit ggT(n, r) ≠ 1, so beende dieBerechnung von kP.Ist d =ggT(n, r) ≠ n, so gebe d als nicht-trivialen Faktor von n aus.Ist d = n, so wähle neue elliptische Kurve <strong>und</strong> neuen Punkt in (2) <strong>und</strong>wiederhole das Verfahren.8.7 Bemerkunga) Tritt in (3) der Fall auf, dass k 1 P = k 2 P +k 3 P modulo n nicht berechenbarist, so folgt aus 8.5, dass k 1 P mod p = O für einen Primteiler p | n.Dies tritt z. B. dann auf, wenn k 1 ein Vielfaches der Ordnung N vonE(Z/pZ) ist (zu der elliptischen Kurve y 2 = x 3 + ax + b, Koeffizientenreduziert modulo p). Nach dem Satz von Hasse, 8.3, ist N ∈ [(p + 1) −2 √ p, (p+1)+2 √ p]. Ist also C > (p+1)+2 √ p für einen Primteiler p vonn <strong>und</strong> ist N nur durch kleine Primzahlen teilbar (alle kleiner als B), so istk ein Vielfaches von N <strong>und</strong> wir werden in Schritt (3) bei dem Versuch,k 1 P mod n zu berechnen, einen Nenner r finden mit ggT(n, r) ≠ 1.ggT(n, r) = n wird nur auftreten, wenn für k 1 P mod O für alle p | n(dies folgt aus den Rechnungen, die man zum Beweis von 8.5 durchführenmuss). Das ist sehr unwahrscheinlich, vor allem, wenn n mehrere großePrimfaktoren besitzt.b) Der Vorteil des Lenstra-Algorithmus besteht vor allem darin, dass maneine große Anzahl von Wahlmöglichkeiten der elliptischen Kurve hat. Insbesonderewenn n relativ kleine Primteiler besitzt, werden diese schnellgef<strong>und</strong>en (vgl. a)).65


Kapitel 8: Faktorisierung mit elliptischen KurvenBeispiel: n = 5429, B = 3, C = 92(C wurde so gewählt, da für einen Primteiler p < √ n = 73 dann (p+1)+2 √ p


Erweitertes InhaltsverzeichnisEinführung 31 Faktorisierung <strong>und</strong> Primzahlerzeugung in der Kryptologie 51.1 Idee der Public-Key-Kryptographie . . . . . . . . . . . . . . . . 51.2 Das RSA-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . 61.3 Weitere Anwendungen . . . . . . . . . . . . . . . . . . . . . . . 72 Elementare Hilfsmittel aus der Algebra <strong>und</strong> Zahlentheorie 82.1 Definition: Gruppe . . . . . . . . . . . . . . . . . . . . . . . . . 82.2 Bemerkung: Eigenschaften von Gruppenelementen . . . . . . . 82.3 Beispiele: Gruppen . . . . . . . . . . . . . . . . . . . . . . . . . 92.4 Definition: Nebenklassen . . . . . . . . . . . . . . . . . . . . . . 92.5 Satz: Nebenklassen . . . . . . . . . . . . . . . . . . . . . . . . . 92.6 Bemerkung: Abelsche Gruppen . . . . . . . . . . . . . . . . . . 102.7 Satz: Faktorgruppe . . . . . . . . . . . . . . . . . . . . . . . . . 102.8 Beispiel: Faktorgruppen in den ganzen Zahlen . . . . . . . . . . 112.9 Satz: Zyklische Gruppen . . . . . . . . . . . . . . . . . . . . . . 112.10 Beispiel: Zyklische Gruppen . . . . . . . . . . . . . . . . . . . . 122.11 Definition: Ringe . . . . . . . . . . . . . . . . . . . . . . . . . . 122.12 Beispiele: Ringe . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.13 Bemerkung: Eigenschaften der Ringmultiplikation . . . . . . . . 132.14 Definition: Ideal . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.15 Satz: Faktorringe . . . . . . . . . . . . . . . . . . . . . . . . . . 132.16 Beispiel: Ideale <strong>und</strong> Faktorringe in den ganzen Zahlen . . . . . 132.17 Satz: Ideale in den ganzen Zahlen . . . . . . . . . . . . . . . . . 142.18 Satz: Euklidischer Algorithmus . . . . . . . . . . . . . . . . . . 142.19 Satz: Chinesischer Restsatz . . . . . . . . . . . . . . . . . . . . 152.20 Definition: Einheiten . . . . . . . . . . . . . . . . . . . . . . . . 162.21 Bemerkung: Einheitengruppe . . . . . . . . . . . . . . . . . . . 162.22 Satz: Eigenschaften von Einheitengruppen . . . . . . . . . . . . 162.23 Bemerkung: Bestimmung des Inversen . . . . . . . . . . . . . . 1767


Erweitertes Inhaltsverzeichnis2.24 Korollar zum kleinen Satz von Fermat . . . . . . . . . . . . . . 172.25 Definition: Polynomring . . . . . . . . . . . . . . . . . . . . . . 182.26 Satz: Eigenschaften des Polynomrings . . . . . . . . . . . . . . 182.27 Satz: Eigenschaften des Polynomringes . . . . . . . . . . . . . . 182.28 Korollar: Ideale im Polynomring . . . . . . . . . . . . . . . . . 192.29 Bemerkung: ggT in Polynomringen . . . . . . . . . . . . . . . . 192.30 Satz: Endliche Körper . . . . . . . . . . . . . . . . . . . . . . . 203 Komplexität gr<strong>und</strong>legender Algorithmen 223.1 Satz: Komplexität von arithmetischen Operationen . . . . . . . 223.2 Satz: Komplexität des euklidischen Algorithmus . . . . . . . . . 233.3 Bemerkung: Komplexität in Z/nZ . . . . . . . . . . . . . . . . 233.4 Proposition: Komplexität der Exponentiation . . . . . . . . . . 233.5 Satz: Erw. Eukl. Algorithmus in Polynomringen . . . . . . . . . 243.6 Bemerkung: Zusammengesetzte Zahlen ∈ NP . . . . . . . . . . 243.7 Satz: PRIMES ∈ NP . . . . . . . . . . . . . . . . . . . . . . . . 243.8 Satz: Primzahlkriterium . . . . . . . . . . . . . . . . . . . . . . 253.9 Korollar: Weiteres Primzahlkriterium . . . . . . . . . . . . . . . 253.10 Bemerkung: Bessere Abschätzungen . . . . . . . . . . . . . . . 264 Klassische Methoden 284.1 Testen auf Divisoren . . . . . . . . . . . . . . . . . . . . . . . . 284.2 Sieb des Eratosthenes . . . . . . . . . . . . . . . . . . . . . . . 284.3 Der Fermat-Test <strong>und</strong> Pseudoprimzahlen . . . . . . . . . . . . . 294.3.1 Definition: Pseudoprimzahl . . . . . . . . . . . . . . . . 304.3.2 Definition: Carmichael-Zahl . . . . . . . . . . . . . . . . 304.3.3 Satz: Fermat-Test . . . . . . . . . . . . . . . . . . . . . 314.3.4 Satz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.3.5 Satz: Carmichael-Zahlen . . . . . . . . . . . . . . . . . . 324.3.6 Primzahlsatz . . . . . . . . . . . . . . . . . . . . . . . . 324.4 Der Miller-Rabin-Test <strong>und</strong> starke Pseudoprimzahlen . . . . . . 324.4.1 Lemma: Primzahleigenschaft . . . . . . . . . . . . . . . 334.4.2 Definition: Starke Pseudoprimzahlen . . . . . . . . . . . 334.4.3 Satz: Anzahl von Zeugen gegen Primzahleigenschaft . . 344.4.4 Miller-Rabin-Test . . . . . . . . . . . . . . . . . . . . . . 354.4.5 Bemerkung: Verbesserung des Miller-Rabin-Tests . . . . 364.4.6 Satz: Wahrscheinlichkeit nach k Durchläufen . . . . . . 374.4.7 Bemerkung: Komplexitäten . . . . . . . . . . . . . . . . 374.4.8 Bemerkung: Erzeugung von Primzahlen . . . . . . . . . 385 Der Primzahltest von Agrawal, Kayal <strong>und</strong> Saxena 3968


Erweitertes Inhaltsverzeichnis5.1 Satz: Charakterisierung von Primzahlen . . . . . . . . . . . . . 395.2 AKS-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . 405.3 Satz: Korrektheit des AKS-Algorithmus . . . . . . . . . . . . . 415.4 Lemma: Ausgabe des AKS-Algorithmus . . . . . . . . . . . . . 415.5 Lemma: Existenz von r . . . . . . . . . . . . . . . . . . . . . . 425.6 Definition: p-Artigkeit . . . . . . . . . . . . . . . . . . . . . . . 435.7 Lemma: Multiplikativität der p-Artigkeit . . . . . . . . . . . . . 435.8 Lemma: Multiplikativität der p-Artigkeit . . . . . . . . . . . . . 435.9 Lemma: Ordnung von H . . . . . . . . . . . . . . . . . . . . . . 455.10 Lemma: Ordnung von H . . . . . . . . . . . . . . . . . . . . . . 465.11 Lemma: Korrektheit des AKS-Algorithmus . . . . . . . . . . . 465.12 Satz: Komplexität des AKS-Algorithmus . . . . . . . . . . . . . 476 Pollards Rho-Methode zur Faktorisierung von Zahlen 49Idee der Rho-Methode (Pollard, 1975) . . . . . . . . . . . . . . . . 506.1 Proposition: Erwartete Lauflänge der Rho-Methode . . . . . . . 506.2 Algorithmus zur Rho-Methode . . . . . . . . . . . . . . . . . . 516.3 Komplexität der Rho-Methode (Heuristik) . . . . . . . . . . . . 527 Das quadratische Sieb 537.1 Bemerkung: Darstellung von Zahlen . . . . . . . . . . . . . . . 537.2 Fermat-Faktorisierung (Gr<strong>und</strong>version) . . . . . . . . . . . . . . 537.3 Fermat-Faktorisierung (erweiterte Version) . . . . . . . . . . . . 547.4 Satz: Quadratwurzeln in Z n . . . . . . . . . . . . . . . . . . . . 557.5 Definition: B-Zahlen . . . . . . . . . . . . . . . . . . . . . . . . 557.6 Bemerkung: Komplexität des quadratischen Siebes . . . . . . . 587.7 Bemerkung: verallgemeinertes Quadratisches Sieb . . . . . . . . 587.8 Bemerkung: Kettenbruchmethode . . . . . . . . . . . . . . . . . 598 Faktorisierung mit elliptischen Kurven 608.1 Definition: Elliptische Kurve . . . . . . . . . . . . . . . . . . . . 608.2 Satz: Kurvengruppe . . . . . . . . . . . . . . . . . . . . . . . . 628.3 Satz (Hasse) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638.4 Definition: Äquivalenz von Brüchen . . . . . . . . . . . . . . . . 638.5 Satz: Koordinaten von Punkten . . . . . . . . . . . . . . . . . . 648.6 Lenstras Algorithmus . . . . . . . . . . . . . . . . . . . . . . . 658.7 Bemerkung: Eigenschaften der Koeffizienten . . . . . . . . . . . 658.8 Komplexität des Lenstra-Algorithmus . . . . . . . . . . . . . . 6669


IndexAKS-Algorithmus, 40Komplexität, 47Carmichael-Zahl, 30elliptische Kurve, 60Euklidischer Algorithmus, 14Faktorbasis, 55Faktorisierung mit elliptischen Kurven,63Komplexität, 66Faktorring, 13Fermat-Faktorisierung, 54Fermat-Test, 29Gruppe, 8Ideal, 13Index (einer Untergruppe), 9Komplexität, 22AKS-Algorithmus, 47arithmetische Operationen, 22elliptische Kurve, 66erw. euklidischer Algorithmusin Polynomringen, 24Euklidischer Algorithmus, 23Exponentiation, 23in Restklassenringen, 23Miller-Rabin-Test, 37quadratisches Sieb, 58Rho-Methode, 52Miller-Rabin-Test, 35Komplexität, 37Monte-Carlo-Test, 35Primzahlen erzeugen, 38Pseudoprimzahl, 30starke, 33Zeuge, 33Public-Key-Kryptographie, 5Quadratisches Sieb, 57Komplexität, 58Rho-Methode, 51Komplexität, 52Ring, 12Polynomring, 18RSA-Verfahren, 6SatzChinesischer Restsatz, 15Primzahlsatz, 32von Euler, 17von Fermat (kleiner), 17Sieb des Erathostenes, 28Testen auf Divisoren, 28Zahlkörpersieb, 58Zeuge gegen die Primzahleigenschaft,3370


NamensverzeichnisAdleman, Leonard, 6Agrawal, Manindra, 39Alford, W.R., 32Bach, 37Bernstein, D.J., 48Brillhart, J., 25Carmichael, R.D., 30Damgård, 37Davis, Martin, 26Diffie, Whitfield, 5Dixon, 53Erathostenes, 28Erdös, Paul, 30Fermat, Pierre de, 29, 53Granville, C., 32Hadamard, 32Hasse, Helmut, 63Hellman, Martin, 5Jones, James P., 27Karatsuba, A., 23Kayal, Neeraj, 39Landrock, 37Lenstra, H. W. jr., 63Li, Shuguang, 30Lucas, Édouard, 25Mairson, Harry G., 29Matijasevič, Yuri, 26Miller, Gary L., 32, 35Pollard, J.M., 49, 58Pomerance, C., 32, 37, 53Pratt, Stephen, 24Pritchard, Paul, 29Putnam, Hilary, 26Rabin, Michael O., 32, 35Rivest, Ronald L., 6Robinson, Julia, 26Sato, Daihachiro, 27Saxena, Nitin, 39Schönhage, Arnold, 22Selfridge, J.L., 25Shamir, Adi, 6Strassen, Volker, 22Wada, Hideo, 27Wiens, Douglas, 27de la Vallée Poussin, 3271

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!