Primzahlen - Hochschule Darmstadt | Main /...

63
Grundlagen Primzahltests Interessantes Fazit Quellen Primzahlen Sascha Dame Proseminar: Implementierung mathematischer Algorithmen 09.01.2014 Sascha Dame

Transcript of Primzahlen - Hochschule Darmstadt | Main /...

Page 1: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Primzahlen

Sascha Dame

Proseminar:Implementierung mathematischer Algorithmen

09.01.2014

Sascha Dame

Page 2: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Inhaltsverzeichnis

1 Grundlagen

2 PrimzahltestsSieb des EratosthenesSieb des AtkinFermatscher PrimzahltestMiller-Rabin-TestLucas-Lehmer-TestWeitere Primzahltests

3 Interessantes

4 Fazit

5 Quellen

Sascha Dame

Page 3: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

GrundlagenWas ist eine Primzahl?

Definition (Primzahl)

Eine Zahl p ∈ N mit p > 1, die nur triviale Teiler besitzt,bezeichnet man als Primzahl .

Alternativ: Eine Zahl p ∈ N mit genau 2 Teilern heißtPrimzahl .

Definition (prim, zusammengesetzt)

Eine Zahl p ∈ N heißt prim, wenn sie eine Primzahl ist.

Andernfalls heißt sie zusammengesetzt.

Die Zahlen 0 und 1 sind weder prim noch zusammengesetzt.

Sascha Dame

Page 4: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

GrundlagenEigenschaften von Primzahlen

Primzahlen lassen sich nicht als Produkt von zwei verschiedenennaturlichen Zahlen darstellen.

Bis die auf 2 sind alle Primzahlen ungerade.

Primzahlen > 3 haben eine der folgenden Formen:p = 4k + 3 oder p = 4k + 1p = 6k + 1 oder p = 6k − 1 mit k ∈ N

Allerdings ergeben diese Formeln nicht fur jedes k eine Primzahl!

Sei p prim und p = 4k + 1 ⇒ p = a2 + b2 mit a, b ∈ Z

Weitere Eigenschaften werden bei den Primzahltests ersichtlich.

Sascha Dame

Page 5: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

GrundlagenSatze, Lemmata, Vermutungen I

Satz (Satz von Euklid)

Es gibt unendlich viele Primzahlen.

“Es gibt mehr Primzahlen als jede vorgelegte Anzahl vonPrimzahlen“ (Buch der Elemente(IX, Proposition 20)

Satz (Fundamentalsatz der Arithmetik - Euklid)

Jede positive Zahl lasst sich als Produkt von Primzahlen schreiben.Diese Darstellung ist bis auf ihre Reihenefolge eindeutig.

Sascha Dame

Page 6: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

GrundlagenSatze, Lemmas, Vermutungen II

Lemma (Lemma von Euklid)

Ist ein Produkt zweier naturlicher Zahlen durch eine Primzahlteilbar, so ist mindestens einer der Faktoren durch sie teilbar.

Anmerkung: Diese Eigenschaft geht in den komplexen ganzenZahlen verloren!

Faktorisierungsverfahren

Rho-Methode

Polland p-1

(p+1)-Faktorisierung

Kettenbruchen

Elliptische Kurven

Sascha Dame

Page 7: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

GrundlagenSatze, Lemmas, Vermutungen III

Vermutung (Starke/binare Goldbachsche Vermutung)

Jede gerade Zahl großer als 2 kann als Summe zweier Primzahlengeschrieben werden.

Bisher bis 4 · 1018 bewiesen (Stand April 2012) [1].

Vermutung (schwache/ternare Goldbachsche Vermutung)

Jede ungerade Zahl großer als 5 kann als Summe dreier Primzahlengeschrieben werden.

Sascha Dame

Page 8: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Inhaltsverzeichnis

1 Grundlagen

2 PrimzahltestsSieb des EratosthenesSieb des AtkinFermatscher PrimzahltestMiller-Rabin-TestLucas-Lehmer-TestWeitere Primzahltests

3 Interessantes

4 Fazit

5 Quellen

Sascha Dame

Page 9: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Primzahltest

Definition (Primzahltest)

Ein mathematisches Verfahren, um festzustellen, ob eine gegebene Zahln ∈ N prim oder zusammengesetzt ist, wird als Primzahltest bezeichnet.

Sascha Dame

Page 10: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Inhaltsverzeichnis

1 Grundlagen

2 PrimzahltestsSieb des EratosthenesSieb des AtkinFermatscher PrimzahltestMiller-Rabin-TestLucas-Lehmer-TestWeitere Primzahltests

3 Interessantes

4 Fazit

5 Quellen

Sascha Dame

Page 11: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Sieb des EratosthenesWer hat es erfunden?

Das Sieb des Eratosthenes wurde nach dem griechischenMathematiker Eratosthenes von Kyrene benannt.

Er wird oft als der Erfinder dieses Verfahrens bezeichnet, dabeifuhrte er nur den Begriff “Sieb“ zu seiner Zeit ein.

Wer den Algorithmus entdeckt/erfunden hat, ist unbekannt.

[B1]

Eratosthenes von Kyrenezwischen 276 und 273 v. Chr. in Kyrene; † um 194 v. Chr

Sascha Dame

Page 12: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Sieb des EratosthenesWas macht es?

Das Sieb des Eratosthenes “siebt“ bis zur einer beliebigen Zahl nalle nicht-prim-Zahlen aus.

Dadurch entsteht eine Liste mit Primzahlen.

Sascha Dame

Page 13: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Sieb des EratosthenesWie funktioniert es?

1 Zahlen von 2 bis n notieren.

2 Alle Vielfachen von 2 markieren.

3 Zur nachsten unmarkierten Zahl gehen.

4 Beim Quadrat dieser Zahl beginnend alle Vielfachen markieren.

5 Wiederholen der Schritte 3 und 4 bis einschließlich√n.

6 Jede unmarkierte Zahl ist prim.

Sascha Dame

Page 14: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Sieb des EratosthenesZeig mal!

Beispiel: n = 30

2 3 4 5 6

7 8 9 10 11 12

13 14 15 16 17 18

19 20 21 22 23 24

25 26 27 28 29 30

Sascha Dame

Page 15: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Sieb des EratosthenesImplementierung

1 void eratosthenes2 (unsigned __int64 max , bool numbers [])

2 {

3 unsigned __int64 limit = sqrt(double(max ));

4

5 numbers [0] = numbers [1] = false;

6 numbers [2] = true;

7

8 for(unsigned __int64 i = 3; i <= max; i+=2)

9 numbers[i] = true;

10

11 for(unsigned __int64 i = 4; i <= max; i+=2)

12 numbers[i] = false;

13

14 for(unsigned __int64 i = 3; i <= limit; i+=2)

15 for(unsigned __int64 j = i; numbers[i] && i*j <= max; j+=2)

16 numbers[i*j] = false;

17 }

Sascha Dame

Page 16: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Inhaltsverzeichnis

1 Grundlagen

2 PrimzahltestsSieb des EratosthenesSieb des AtkinFermatscher PrimzahltestMiller-Rabin-TestLucas-Lehmer-TestWeitere Primzahltests

3 Interessantes

4 Fazit

5 Quellen

Sascha Dame

Page 17: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Sieb von AtkinWer hat es erfunden?

Das Sieb von Atkin wurde im Jahr 2004 von A.O.L Atkin und Daniel J.Bernstein entwickelt.

Arthur Oliver Lonsdale Atkin

* 31. Juli 1925; † 28. Dezember 2008.

War ein britisch-US-amerikanischer Mathematiker.

Daniel Julius Bernstein:

* 29. Oktober 1971.

Ist ein deutsch-amerikanischer Mathematiker, Kryptologe undProgrammierer.

Sascha Dame

Page 18: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Sieb von AtkinWer hat es erfunden?

[B2] [B3]

Sascha Dame

Page 19: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Sieb von AtkinWas macht es?

Das Sieb von Atkin ist eine verbesserte Form des Siebs vonEratosthenes.

Hier werden anfangs bestimmte Modulo 12 Reste aussortiert undanschließend alle Vielfachen von Primzahlquadraten gestrichen.

Am Ende verbleibt wieder eine Liste mit Primzahlen.

Sascha Dame

Page 20: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Sieb des AtkinWie funktioniert es?

1 Zahlen von 2 bis n notieren.

2 Bis auf 2, 3 und 5 werden alle markiert.

3 Berechne fur jede Zahl z > 5 : Rest = z mod 12.

Wenn der Rest 1 oder 5 ist, wird die Markierung fur jedeLosung der Gleichung z = 4x2 + y2 geandert.Wenn der Rest 7 ist, wird die Markierung fur jede Losung derGleichung z = 3x2 + y2 geandert.Wenn der Rest 11 ist, wird die Markierung fur jede Losung derGleichung z = 3x2 − y2 mit x > y geandert.

4 Von vorne beginnend: Nachste unmarkierte Zahl wahlen.

5 Diese Zahl quadrieren und alle Vielfachen davon markieren.

6 Wiederholen der Schritte 4 und 5 bis einschließlich√n.

7 Jede unmarkierte Zahl ist prim.

Sascha Dame

Page 21: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Sieb des AtkinZeig mal!

Beispiel: n = 30

2 3 4 5 6

7 8 9 10 11 12

13 14 15 16 17 18

19 20 21 22 23 24

25 26 27 28 29 30

Sascha Dame

Page 22: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Sieb des AtkinImplementierung I

1 void atkin(unsigned int max , bool numbers [])

2 {

3

4 unsigned int limit = ceil(sqrt(double(max )));

5 unsigned int n;

6

7 for(unsigned int i = 0; i <= max; i++)

8 numbers[i] = false;

Sascha Dame

Page 23: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Sieb des AtkinImplementierung II

10 for(unsigned int x = 1; x <= limit; x++)

11 {

12 for(unsigned int y = 1; y <= limit; y++)

13 {

14 n = 4*x*x + y*y;

15 if((n <= max) && (n % 12 == 1 || n % 12 == 5))

16 numbers[n] = !numbers[n];

17

18 n = 3*x*x + y*y;

19 if(n <= max && n % 12 == 7)

20 numbers[n] = !numbers[n];

21

22 n = 3*x*x - y*y;

23 if(x > y && n <= max && n % 12 == 11)

24 numbers[n] = !numbers[n];

25 }

26 }

Sascha Dame

Page 24: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Sieb des AtkinImplementierung III

28 numbers [3] = true;

29

30 for(unsigned int k = 5; k <= limit; k+=2)

31 {

32 if(numbers[k])

33 {

34 unsigned int i = 1;

35

36 while(i*k*k <= max)

37 numbers [(i++)*k*k] = false;

38 }

39 }

40 }

Sascha Dame

Page 25: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Inhaltsverzeichnis

1 Grundlagen

2 PrimzahltestsSieb des EratosthenesSieb des AtkinFermatscher PrimzahltestMiller-Rabin-TestLucas-Lehmer-TestWeitere Primzahltests

3 Interessantes

4 Fazit

5 Quellen

Sascha Dame

Page 26: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Fermatscher PrimzahltestWer hat es erfunden?

Der Fermatsche Primzahltest basiert auf den “kleinen Satz von Fermat“(im 17. Jahrhundert formuliert von Pierre de Fermat).

Pierre de Fermat

* in der zweiten Halfte des Jahres 1607; † 12. Januar 1665.

War ein franzosischer Mathematiker.

[B4]

Pierre de Fermat

Sascha Dame

Page 27: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Fermatscher PrimzahltestWas macht es?

Satz (Kleiner Satz von Fermat)

Sei a ∈ Z und p eine Primzahl, dann gilt folgende Kongruenz:ap ≡ a (mod p)

Sollte a kein Vielfaches von p sein, gilt außerdem: ap−1 ≡ 1 (mod p)

Definition (a-PRP-Zahl)

Eine Zahl n ∈ N heißt a-PRP Zahl (engl. probable prime), genaudann, wenn sie zu a teilerfremd ist und folgende Bedingung erfullt:an−1 = 1 (mod n)

Eine a-PRP Zahl ist wahrscheinlich eine Primzahl.

Definition (a-Pseudo-Primzahl)

Eine Zahl n ∈ N die a-PRP-Zahl aber zusammengesetzt ist, nenntman a-Pseudo-Primzahl.

Sascha Dame

Page 28: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Fermatscher PrimzahltestWie funktioniert es?

1 Bestimmen der zu untersuchenden Zahl n.

2 Basis a mit 1 < a < n wahlen.

3 Wenn n und a nicht teilerfremd ⇒ n ist zusammengesetzt.

4 Wenn an−1 (mod n) 6= 1 (Kleiner Satz von Fermat)

Dann: n ist zusammengesetzt.Sonst: n ist a-PRP.

Sascha Dame

Page 29: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Fermatscher PrimzahltestFehlerwahrscheinlichkeit

Wahrscheinlichkeit fur eine a-Pseudo-Primzahl liegt bei hochstens 12 .

Wenn man dies mit genugend vielen Basen erfolgreich wiederholt,sinkt die Wahrscheinlichkeit auf hochstens 1

2s .

Ab s > 25 ist die Wahrscheilichkeit von einem Blitz getroffen zuwerden großer als dass der Test ein falsches Ergebnis liefert.

Sascha Dame

Page 30: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Fermatscher PrimzahltestZeig mal!

Beispiel: n = 11 und n = 9

Sascha Dame

Page 31: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Fermatscher PrimzahltestImplementierung

1 bool fermat(BigInteger number , BigInteger base)

2 {

3 BigInteger check;

4

5 if(number < 2)

6 false;

7

8 check = powMod(base , number -1, number );

9

10 if(check != 1)

11 return false;

12

13 return true;

14 }

Sascha Dame

Page 32: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Inhaltsverzeichnis

1 Grundlagen

2 PrimzahltestsSieb des EratosthenesSieb des AtkinFermatscher PrimzahltestMiller-Rabin-TestLucas-Lehmer-TestWeitere Primzahltests

3 Interessantes

4 Fazit

5 Quellen

Sascha Dame

Page 33: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Miller-Rabin-TestWer hat es erfunden?

1974 entdeckte John L. Selfridge diesen Algorithmus.

Benannt wurde er allerdings nach Gary L. Miller und Michael O.Rabin, die diesen 1976 veroffentlichen.

John Lewis Selfridge

* 17. Februar 1927; † 31. Oktober 2010.

War ein US-amerikanischer Mathematiker.

Gary Lee Miller

* 20. Jahrhundert.

Ist ein US-amerikanischer Informatiker.

Michael Oser Rabin

* 1. September 1931.

Ist ein israelischer Informatiker

Sascha Dame

Page 34: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Miller-Rabin-TestWer hat es erfunden?

[B5] [B6]

Sascha Dame

Page 35: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Miller-Rabin-TestWas macht es?

Definition (a-SPRP-Zahl)

Eine Zahl n ∈ N mit n = d · 2exp + 1 heißt a-SPRP Zahl (engl.strong probable prime), genau dann, wenn sie zu a teilerfremd istund eine der folgenden Bedingungen erfullt:ad = 1 (mod n) oder ad·2

r

= −1 (mod n) mit 1 ≤ r ≤ exp

Eine a-SPRP Zahl ist sehr wahrscheinlich eine Primzahl.

Definition (Starke a-Pseudo-Primzahl)

Eine Zahl n ∈ N die a-SPRP-Zahl aber zusammengesetzt ist, nenntman starke a-Pseudo-Primzahl.

Jede starke a-Pseudo-Primzahl ist auch eine a-Pseudo-Primzahl.

Sascha Dame

Page 36: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Miller-Rabin-TestWie funktioniert es?

1 Bestimmen der zu untersuchenden Zahl n.

2 Basis a mit 1 < a < n wahlen.

3 Setze: d = n − 1 und exp = 0

4 d wird halbiert, bis es ungerade ist.exp wird dabei jedes mal um 1 hochgezahlt.

5 Wenn ad mod n = 1 oder −1 ⇒ n ist a-PRP.

6 Sonst wenn ∀r ∈ N, 1 ≤ r ≤ exp : ad·2r

mod n 6= −1

Dann: n ist zusammengesetztSonst: n ist a-PRP.

Sascha Dame

Page 37: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Miller-Rabin-TestFehlerwahrscheinlichkeit

Wahrscheinlichkeit fur eine a-starke-Pseudo-Primzahl liegt beihochstens 1

4 .

Wenn man dies mit genugend vielen Basen erfolgreich wiederholt,sinkt die Wahrscheinlichkeit auf hochstens 1

4s .

Ab s > 12 ist die Wahrscheilichkeit von einem Blitz getroffen zuwerden großer als dass der Test ein falsches Ergebnis liefert.

Sascha Dame

Page 38: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Miller-Rabin-TestZeig mal!

Beispiel: n = 11 und n = 21

Sascha Dame

Page 39: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Miller-Rabin-TestImplementierung I

1 bool millerRabin(BigInteger number , BigInteger base)

2 {

3 BigInteger d = number -1;

4 BigInteger exp = 0;

5 BigInteger check;

6

7 if(number == 2)

8 return true;

9

10 if(number < 2)

11 return false;

12

13 if(number % 2 == 0)

14 return false;

15

16 while(d % 2 == 0)

17 {

18 d /= 2;

19 exp ++;

20 }

Sascha Dame

Page 40: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Miller-Rabin-TestImplementierung II

22 check = powMod(base , d, number ); //a^d mod n

23

24 if(check == 1 || check == number -1)

25 return true;

26

27 for(BigInteger k = 1; k < exp; k++)

28 {

29 //a^{d*2^k} mod n

30 check = powMod(base , d*bigPow(2,k), number );

31

32 if(check == number -1)

33 return true;

34 }

35 return false;

36 }

Sascha Dame

Page 41: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Inhaltsverzeichnis

1 Grundlagen

2 PrimzahltestsSieb des EratosthenesSieb des AtkinFermatscher PrimzahltestMiller-Rabin-TestLucas-Lehmer-TestWeitere Primzahltests

3 Interessantes

4 Fazit

5 Quellen

Sascha Dame

Page 42: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Lucas-Lehmer-TestWer hat es erfunden?

1930 von Derrick Lehmer formuliert

Geht auf Edouard Lucas zuruck.

Derrick Henry Lehmer

* 23. Februar 1905; † 22. Mai 1991

War ein US-amerikanischer Mathematiker, spezialisiert aufZahlentheorie.

Francois Edouard Anatole Lucas

* 4. April 1842; † 3. Oktober 1891.

War ein franzosischer Mathematiker.

Sascha Dame

Page 43: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Lucas-Lehmer-TestWer hat es erfunden?

[B7] [B8]

Sascha Dame

Page 44: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Lucas-Lehmer-TestWas macht es?

Definition (Mersenne-Primzahl)

Sei p prim. Eine Primzahl der Form Mp = 2p − 1 heißt dannMersenne-Primzahl.

Definition (Lucas-Folge)

Eine Folge mit s1 = 4 und sk+1 = s2k − 2 wird als Lucas-Folgebezeichnet.

siehe auch Definition im Vortrag Goldener Schnitt von DarioJotanovic.

Sascha Dame

Page 45: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Lucas-Lehmer-TestWie funktioniert es?

1 Bestimmen einer Primzahl p > 2.

2 Setze Mp = 2p − 1.

3 Berechne sp−1.

4 Wenn sp−1 mod Mp = 0, dann ist Mp prim .

Sascha Dame

Page 46: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Lucas-Lehmer-TestZeig mal!

Beispiel: p = 5 und p = 11

Sascha Dame

Page 47: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Lucas-Lehmer-TestImplementierung

1 bool lucasLehner(BigInteger prim)

2 {

3 BigInteger m = bigPow(2, prim) - 1;

4 BigInteger s = 4;

5

6 for(BigInteger k = 2; k <= prim -1; k++)

7 {

8 //(a+b) mod m = [(a mod m) + (b mod m)] mod m

9 s = (powMod(s,2,m) - (BigInteger (2)%m)) % m;

10 }

11

12 if(s == 0)

13 return true;

14

15 else

16 return false;

17 }

Sascha Dame

Page 48: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Lucas-Lehmer-TestTop 10 Mersenne-Primzahlen

Zahl Anzahl der Ziffern Jahr

23.021.377 − 1 909.526 1998

26.972.593 − 1 2.098.960 1999

213.466.917 − 1 4.053.946 2001

220.996.011 − 1 6.320.430 2003

224.036.583 − 1 7.235.733 2004

225.964.951 − 1 7.816.230 2005

230.402.457 − 1 9.152.052 2005

232.582.657 − 1 9.808.358 2006

243.112.609 − 1 12.978.189 2008

257.885.161 − 1 17.425.170 2013

[2]

Sascha Dame

Page 49: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Weitere Primzahltests

Probedivision

APRCL-Test

Solovay-Strassen-Test

Lucas-Test

Pocklington-Primzahl-Test

AKS-Methode (mit polynomieller Laufzeit)

Sascha Dame

Page 50: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Inhaltsverzeichnis

1 Grundlagen

2 PrimzahltestsSieb des EratosthenesSieb des AtkinFermatscher PrimzahltestMiller-Rabin-TestLucas-Lehmer-TestWeitere Primzahltests

3 Interessantes

4 Fazit

5 Quellen

Sascha Dame

Page 51: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

InteressantesBegriffe

Elitare Primzahlen

Fastprimzahlen

Gluckliche Primzahlen

Gute Primzahlen

Pierpont-Primzahlen

Prothsche Primzahlen

Schwache Primzahlen

Sophie-Germain-Primzahlen

Wall-Sun-Sun-Primzahlen

Sascha Dame

Page 52: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

InteressantesThemenbereiche

Primzahllucken

Primzahl-Zwillinge, -Drillinge etc.

“Primzahlformeln“

Symmetrische und vollstandige Primzahlen

Riemannsche Zeta-Funktion

Zusammenhang zwischen Natur und Primzahlen [Z1]

Zikaden und Primzahlen [Z2]

Primzahlen im chemischen Aufbau der Natur [Z3]

Primzahlen im Aufbau der DNS [Z4]

Verschlusselung: RSA-Verfahren [Z5]

Sascha Dame

Page 53: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Inhaltsverzeichnis

1 Grundlagen

2 PrimzahltestsSieb des EratosthenesSieb des AtkinFermatscher PrimzahltestMiller-Rabin-TestLucas-Lehmer-TestWeitere Primzahltests

3 Interessantes

4 Fazit

5 Quellen

Sascha Dame

Page 54: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Fazit

Primzahlen ubernehmen ahnliche Rolle, wie die chemischenElemente im Periodensystem.

Eventuelle Moglichkeit eines auf Primzahlen basierendenZahlensystems.

Weiterentwicklungen bzw. Optimierungen von Primzahltests werdenstandig fortgefuhrt.

Zusammenhange zwischen Natur und Primzahlen sind ersichtlich.

Primzahlen sind und bleiben eine mathematische Spielerei.

Sascha Dame

Page 55: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Alles hat ein Ende, nur die Wurst hat zwei!

VIELEN DANK!(wer das liest, muss klopfen!)

Sascha Dame

Page 56: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

Inhaltsverzeichnis

1 Grundlagen

2 PrimzahltestsSieb des EratosthenesSieb des AtkinFermatscher PrimzahltestMiller-Rabin-TestLucas-Lehmer-TestWeitere Primzahltests

3 Interessantes

4 Fazit

5 Quellen

Sascha Dame

Page 57: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

QuellenAllgemein

http://primzahlen.zeta24.com/

http://primzahlen.zeta24.com/de/primzahltests.php

http://de.wikipedia.org/wiki/Primzahl

http://de.wikibooks.org/wiki/Mathematik:

_Zahlentheorie:_Warum_1_keine_Primzahl_ist

http://did.mat.uni-bayreuth.de/~wn/ss_01/beller/

Seminar/HTML/pz4.htm

http://www.primzahlen.de/

http://www.mathematische-basteleien.de/primzahl.htm

[1] http://de.wikipedia.org/wiki/Goldbachsche_Vermutung

Sascha Dame

Page 58: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

QuellenPrimzahltests - Siebe

Eratosthenes:

http://www.imn.htwk-leipzig.de/~jahn/Cprog/

Alg_Inf_Jahr_pdf/eratosth.pdf

http://upload.wikimedia.org/wikipedia/commons/b/bc/

Eratosthenes.jpg

Atkin:

http://de.wikipedia.org/wiki/A._O._L._Atkin

http://de.wikipedia.org/wiki/Daniel_J._Bernstein

http://de.wikipedia.org/wiki/Sieb_von_Atkin

http://dotnet-snippets.de/snippet/das-sieb-von-atkin/

1426

Sascha Dame

Page 59: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

QuellenPrimzahltests - Fermat, Miller-Rabin

Fermat:

http://primzahlen.zeta24.com/de/

fermatscher_primzahltest.php

http://de.wikipedia.org/wiki/Fermatscher_Primzahltest

http://www.uni-protokolle.de/Lexikon/

Fermatscher_Primzahltest.html

MillerRabin:

http://primzahlen.zeta24.com/de/

miller_rabin_primzahltest.php

http://de.wikipedia.org/wiki/Miller-Rabin-Test

http://miller-rabin.appspot.com/

Sascha Dame

Page 60: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

QuellenPrimzahltests - Lucas-Lehmer

Lucas-Lehmer:

[2] http://de.wikipedia.org/wiki/Mersenne-Primzahl

http://www.mathe.tu-freiberg.de/~hebisch/cafe/

mersenneprim.html

http://de.wikipedia.org/wiki/Derrick_Lehmer

http://de.wikipedia.org/wiki/Lucas-Lehmer-Test

Sascha Dame

Page 61: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

QuellenBilder

[B1] http://upload.wikimedia.org/wikipedia/commons/thumb/b/bc/Eratosthenes.jpg/200px-Eratosthenes.jpg

[B2] http://www.riverforest.com/ArchiveImages/18157a.jpg

[B3] http://commons.wikimedia.org/wiki/File:Dan_Bernstein_27C3.jpg

[B4] http://commons.wikimedia.org/wiki/File:Pierre_de_Fermat.jpg

[B5] http://de.wikipedia.org/wiki/Michael_O._Rabin

[B6] http://www.cs.cmu.edu/~glmiller/Pictures/bust.jpg

[B7] http://commons.wikimedia.org/wiki/File:Derrick_Henry_Lehmer.jpg

[B8] http://commons.wikimedia.org/wiki/File:Elucas_1.png

Sascha Dame

Page 62: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

QuellenProgrammier-Hilfe

BigInteger:

http://de.wikipedia.org/wiki/Integer_(Datentyp)

https://mattmccutchen.net/bigint/

Modulo:

http://community.topcoder.com/tc?

module=Static&d1=tutorials&d2=primalityTesting

http://www.infler.de/forum/viewtopic.php?

t=6427&sid=91b1704fe4bbf932f589fcf42d3bcb62

Sascha Dame

Page 63: Primzahlen - Hochschule Darmstadt | Main / HomePagefbmn.h-da.de/~tksprosem/uploads/Main/DamePraesentation.pdf · Grundlagen Primzahltests Interessantes Fazit Quellen Grundlagen S¨atze,

Grundlagen Primzahltests Interessantes Fazit Quellen

QuellenInteressantes

http://www.faz.net/aktuell/wissen/physik-chemie/

hardys-vermutung-primzahlen-ohne-ende-1172066.html

[Z1] http://www.3sat.de/page/?source=/hitec/156496/index.html

[Z2] http://www.heise.de/tp/artikel/28/28863/1.html

[Z2] http://www.envipro.de/Ausbildung/PrimzahlenZikaden.pdf

[Z2] http://wwwb.sixbreak.de/quizfrage/die-biologie-der-primzahlen-warum-ist-die-zahl-der-jahre-die-zwischen-zwe

[Z3] http://www.primzahlen.de/primzahlen/chemie.pdf

[Z4] http://www.primzahlen.de/primzahlen/dns.pdf

[Z5] http://www.scoberlin.de/content/media/http/informatik/rsa/rsavollmer.pdf

Sascha Dame