Der Miller-Rabin Primzahltest Florian Rienhardt Alle Rechte vorbehalten.

Größe: px
Ab Seite anzeigen:

Download "Der Miller-Rabin Primzahltest Florian Rienhardt Alle Rechte vorbehalten."

Transkript

1 1 Der Miller-Rabin Primzahltest Der Miller-Rabin Primzahltest Florian Rienhardt Alle Rechte vorbehalten. Zusammenfassung Für viele moderne Computeranwendungen, etwa für die Kryptographie, benötigt man zufällig gewählte Primzahlen bestimmter Größe, meist zwischen 128 und 4096 Bit. Bei Zahlen dieser Größenordnungen kann man jedoch nicht mehr die Schulmethode zur Überprüfung der Primalität einer gegebenen Zahl anwenden; Es bedarf hier einiger mathematischer Tricks und Transformationen, mit deren Hilfe man Primzahlen von zusammengesetzten Zahlen unterscheiden kann. Im Folgenden wird der Miller-Rabin Primzahltest vorgestellt, ein probabilistisches Verfahren, mit dessen Hilfe man mit einer voraussagbaren Wahrscheinlichkeit einen Primzahlkandidaten erkennen kann. Der Miller-Rabin Primzahltest wird folgend Stück für Stück entwickelt und anhand ausgesuchter Beispiele genau erläutert. Abschließend wird eine Analyse des Algorithmus folgen, deren Hauptaugenmerk auf der Fehlerwahrscheinlichkeit liegt. 1 1 Grundlage des vorliegenden Dokuments ist das Buch von T.H. Cormen, C.E. Leiserson und R.L. Rivest: Introduction to Algorithms, MIT Press/McGraw-Hill (1990). Diese Arbeit versteht sich nicht als formale (rein wissenschaftliche) Darstellung der Thematik, sondern richtet sich an interessierte Nicht-Mathematiker.

2 2 Der Miller-Rabin Primzahltest 1. Einführende Betrachtungen Für viele moderne Computeranwendungen, etwa für die Kryptographie, benötigt man zufällig gewählte Primzahlen bestimmter Größe (meist zwischen 128 und 4096 Bit). Glücklicherweise sind große Primzahlen nicht selten, so dass es nicht all zu viel Zeit kostet, aus einer Menge zufällig gewählter Zahlen, einen Primkandidaten zu finden. Für die Frage der Häufigkeit von Primzahlen gibt es die Funktion π(n), welche die Anzahl der Primzahlen n angibt. So gilt z.b. für π(10) = 4. Wie wir schon aus der Schule wissen, sind dies die Zahlen 2, 3, 5 und 7. Der Gauß'sche 2 Primzahlsatz liefert uns eine statistische Aussage über einen Bereich in dem Primzahlen liegen können, es gilt: lim π(n) = 1, so dass gilt 1*π(n) = n n (n/ln(n)) ln(n) Die Formel lässt sich auf die einfache Aussage zurückführen, dass der Quotient n/ln(n) asymptotisch äquivalent zu π(n) ist dies ist die Kernaussage des Primzahlsatzes. Mit dem Beweis dieser Approximation stellt sich ein weiteres Problem, welches erst am Ende des neunzehnten Jahrhunderts gelöst wurde. Im Jahre 1848 zeigte Tschebyschow ( ), dass der Grenzwert lim π(n) n (n/ln(n)) falls dieser existiert, den Wert 1 hat, was den Beweis des Primzahlsatzes bedeuten würde. Tschebyschow konnte diesen leider nicht finden. Erst 1896 bewiesen die Mathematiker Hadamard ( ) und De La Vallée Poussin ( ) unabhängig voneinander den Primzahlsatz. Wir können diese Approximation nutzen, um zu bestimmen, wie viele Zahlen wir in einer Umgebung von n zufällig wählen müssen, so dass eine davon prim ist. Möchten wir z.b. eine 512-Bit lange Zahl finden, so müssen wir in etwa ln(2 512 ) = 354,8913, also ~355 Zahlen in der Umgebung von n bestimmen, um eine Primzahl zu finden. Nachdem wir nun wissen, dass Primzahlen nicht all zu selten sind, müssen wir uns nun ein Verfahren überlegen, mit dem man feststellen kann, ob eine zufällig gewählte Zahl tatsächlich prim ist. Eine einfache Methode ist die so genannte Probedivision (engl. trial-testing). Die Grundidee dieses Verfahrens ist, n sukzessive durch Primzahlen 2, 3, 5, 7, 11,..., n zu teilen. Wenn es keine Teiler gibt, so ist die Zahl prim, wenn es Teiler gibt, so ist sie nicht prim, in diesem Falle liefert uns dieses Verfahren dann auch gleich die sog. Primfaktoren (d.h. die Primteiler) der zusammengesetzten Zahl. Die Faktorisierung von zusammengesetzten Zahlen soll uns an dieser Stelle allerdings nicht weiter beschäftigen. Weitere Informationen hierzu findet man z.b. in dem eingangs genannten Buch von Cormen, Leiserson und Rivest. Die Probedivision bietet den Vorteil, dass sie auf jeden Fall beweist, ob eine Zahl prim ist oder nicht. Leider ist dieses Verfahren nur bei relativ kleinen Zahlen effizient zu gebrauchen, da der Rechenaufwand exponentiell steigt. Ist n binär kodiert, so ergibt sich für eine Bitlänge von δ ein Aufwand von O( n) 2 ( δ /2). 2 C. Friedrich Gauß ( ).

3 3 Der Miller-Rabin Primzahltest Nehmen wir an, dass eine gegebene Zahl 58 Bit benötigt, dann müssen im Falle einer Primzahl etwa Tests durchgeführt werden, bis die Probedivision ein Ergebnis liefert. Nehmen wir an, dass ein Rechner in einer Sekunden 1000 Überprüfungen durchführen kann, dann bräuchte er in etwa 6 Tage, um mittels der Probedivision eindeutig zu bestätigen, dass diese Zahl prim ist. Dies macht das Verfahren praktisch nutzlos, da das trial-testing bei großen Zahlen, wie man sie heute bei vielen Computerapplikationen benötigt, wegen der langen Berechnungszeit nicht einsetzbar ist, müssen wir uns eine andere Methode für den Primzahltest ausdenken. Der französische Jurist und Mathematiker Fermat hilft uns mit einem kleinen aber wichtigen Satz: nur dann, wenn n prim ist. Beweis: a (n-1) 1 (mod n), a [2..n-1] Schreiben wir rein zufällig folgendes Produkt auf: Dies kann man umformen, und zwar Teilt man nun durch (n-1)!, so erhält man (1*a)*(2*a)*(3*a)*...*[(n-1)*a] (n-1)!* a (n-1), dies bedeutet, dass (n-1)! * a (n-1) (n-1)! (mod n) gilt. a (n-1) 1 (mod n). Was bringt uns der Satz von Fermat? Nun, wir müssen nur ein a [2..n-1] finden, so dass a (n- 1) 1 (mod n) gilt und wir können ausschließen, dass n eine Primzahl ist. In diesem Fall spielt die Zahl a die Rolle eines Belastungszeugen (engl. witness) dafür, dass n eine zusammengesetzte Zahl ist. Natürlich rechnet man nicht alle a [2..n-1] durch, da der Rechenaufwand ähnlich hoch wird, wie beim anfangs erwähnten trial-testing. Meistens nimmt man für a = 2 an, so dass sich folgende Programmfunktion ergeben könnte:

4 4 Der Miller-Rabin Primzahltest Funktion fermat_witness Eingabe: Ausgabe: Zahl n true falls ein Zeuge gefunden ist, false sonst function fermat_witness(n: integer): boolean begin if (2 (n-1) mod n = 1) then return false // kann prim sein else return true // ist auf keinen Fall prim end Liefert diese Funktion als Ergebnis true, so können wir absolut sicher sein, dass n keine Primzahl ist. 3 Liefert die Funktion jedoch false zurück, kann es sich unter Umständen um eine so genannte Pseudoprimzahl zur Basis 2 handeln, dies sind zusammengesetzte Zahlen, die den Fermat-Test zur Basis 2 bestehen. Nun stellt sich natürlich die Frage, wie viele dieser Pseudoprimzahlen existieren. Glücklicherweise sind dies sehr wenige. Nehmen wir z.b. alle Primzahlen 2 p , so existieren im genannten Intervall gerade einmal 22 dieser Pseudoprimzahlen. Man kann beweisen, dass die Chance, zufällig gerade so eine Pseudoprimzahl zu treffen, gegen 0 geht, wenn n wächst. Was wäre, wenn man andere Basen verwendet, so könnten wir statt Basis 2 die 3 nehmen, oder? Leider kommen wir da vom Regen in die Traufe, da auch Pseudoprimzahlen zur Basis 3, z.b existieren. Es existieren sogar zusammengesetzte Zahlen, die diesen Test für mehrere Basen bestehen. Ferner gibt es zusammengesetzte Zahlen, die den Fermat-Test für alle Basen b Zn* unbeschadet überstehen. 5 Diese Zahlen nennt man Carmichael-Zahlen, benannt nach Robert D. Carmichael ( ), der sie erstmals um 1910 beschrieb. Die ersten Carmichael Zahlen sind 561 (3x11x17), 1105, 1729, 2465, Dass dies stimmt, kann man mit einem guten Taschenrechner oder mit einer funktionalen Programmiersprache wie Haskell einfach durch nachrechnen prüfen. So liefert Haskell für folgende Eingabe Main> ([x x <-[2..560], x (560) `mod` 561 == 1]) == ([x x <-[2..560], ggt(x,561)== 1]) true. D.h., die Menge der Elemente von Z561* ist identisch mit der Menge der Zahlen aus Z561*, für die gilt x (560) 1 (mod 561). 3 Der Zeuge 2 bestätigt uns sozusagen, dass n ein falscher Fünfziger ist. 4 Andere Beispiele: 341 = ist eine 2-PRP, 91 = ist eine 3-PRP, 217 = ist eine 5-PRP und 25 = ist eine 7-PRP. 5 Zn * := {a Z n : ggt(a, n) = 1}

5 5 Der Miller-Rabin Primzahltest Wie Basis-2-Pseudoprimzahlen sind Carmichael-Zahlen extrem selten, es gibt nur 255 aus , dies ist jedoch kein Grund, sie nicht weiter zu beachten. Wir müssen unseren fermat_witness Algorithmus demzufolge so absichern, dass er sich nicht hinters Licht führen lässt.

6 6 Der Miller-Rabin Primzahltest 2. Der Miller-Rabin Primzahltest Ziel ist im Folgenden, aus Fermats Kriterium ein stärkeres herzuleiten, das nicht nur notwendig, sondern auch hinreichend für die Primalität einer gegebenen Zahl n ist. Diese Verfeinerung führt zum Miller-Rabin Primzahltest 6. Dieser Test basiert auf den Überlegungen von Miller, auf deren Grundlage Rabin in den 80'er Jahren des zwanzigsten Jahrhunderts den nach ihnen genannten Test entwickelte. Dieses Testverfahren löst die Probleme unserer ersten Funktion durch folgende Modifikationen: i) Wir benutzen weiterhin den Fermat-Test, verwenden mehrere echt zufällig 7 gewählte Basen und nicht nur eine, außerdem muss n ungerade sein, da ohnehin nur ungerade Zahlen prim sein können. ii) Eine Zahl x gilt ebenfalls als Belastungszeuge für n, wenn x 2 1 (mod n) ist, aber x 1 und x -1 n-1. 8 Wir stellen uns zunächst die Frage, wie man den Fermat-Test und die Suche nach der nicht trivialen Quadratwurzel von 1 geschickt verbinden kann. Nehmen wir an, dass die zu prüfende Zahl n = 561 sei 9, damit ist unser n-1 = 560. Sehen wir uns zunächst die binäre Darstellung der Zahl 560 an: = 560 ( = u) Betrachten wir die letzen vier in Fettdruck gehaltenen Nullen. Streichen wir diese vier Nullen und schieben die übrig bleibenden Stellen um 4 (=t) nach rechts, dann erhalten wir = 35 die Zahl 35. Um wieder (n-1) = 560 zu erhalten, rechnen wir einfach (2 4 ) * 35 = 16 * 35 = 560. Was soll das? Nun, mit diesem kleinen Trick können wir den Fermat-Test und die Suche nach einer nicht-trivialen Quadratwurzel sehr geschickt kombinieren. Wir berechnen zunächst a 35 mod n, dann quadrieren wir dieses Ergebnis 4-mal und können während wir Quadrieren, feststellen, ob eine nicht-triviale Quadratwurzel der 1 existiert. 6 Gary Miller entwickelte den Test um 1976, verwendete hierzu aber die damals noch unbewiesene Riemann-Hypothese. Michael Rabin gelang es dann 1980 auch dieses Manko zu beheben und stellte den Test auf eine sichere mathematische Basis. 7 Hier sollte man ggf. kryptografisch starke PRNG verwenden, die üblichen PRNG heute eingesetzter Programmiersprachen sollten vor allem im Bereich der Kryptografie nicht verwendet werden. 8 Wenn n eine Primzahl ist, dann ist Zn ein Körper. In einem Körper hat jede quadratische Gleichung höchstens zwei verschiedene Lösungen (das werde ich hier aber nicht beweisen). Nun hat aber in Zn* die quadratische Gleichung x 2 1 (mod n) schon die beiden Lösungen x = 1 und x = -1 n-1. Da n > 2 vorausgesetzt werden kann, sind diese auch verschieden. Gibt es nun eine weitere Lösung x, dann kann Z n kein Körper sein. Ist Z n kein Körper, folgt messerscharf, dass n auch keine Primzahl sein kann. Findet man ein x 1 und x -1, mit x 2 1 (mod n), spricht man von einer nicht-trivialen Quadratwurzel von 1 mod n. 9 also eine Carmichealzahl

7 7 Der Miller-Rabin Primzahltest Sei a = 2, dann sieht die Berechnung des Miller-Rabin Primzahltest für n = 561 in etwa so aus: i) 2 35 (mod 561) = (mod 561) = 263 ii) (mod 561) = (mod 561) = 166 iii) (mod 561) = (mod 561) = 67 iv) 67 2 (mod 561) = (mod 561) = 1 Wir haben soeben eine nicht-triviale Quadratwurzel gefunden, d.h. n ist keine Primzahl, was ja stimmt, da unser n = 561, wie wir wissen, eine Carmichael-Zahl, war. Die folgende Funktion witness realisiert den Fermat-Test zur Basis a. Die Berechnung von a (n-1) mod n wird wie folgt realisiert: i) Bestimme eine ungerade Zahl u und eine Zahl t, so dass gilt (2 t )*u = (n-1). Dies funktioniert stets, da n laut Voraussetzung ungerade ist, muss (n-1) gerade sein, daher lässt sich stets eine ungerade Zahl u und eine Zahl t finden, so dass (2 t )*u =(n-1) gilt. ii) iii) Berechne nun a u mod n, dann quadriere dieses Ergebnis t mal. Nach jedem Quadrieren des Zwischenergebnisses x wird jedoch zusätzlich geprüft, ob das Ergebnis 1 ist. War das zuvor berechnete x 1 und x n-1, so ist ein Belastungszeuge gefunden, durch den n als zusammengesetzt entlarvt wird, und die Funktion bricht mit dem Rückgabewert true ab. Zum Schluss wird wie im Fermat-Test geprüft, ob a (n-1) mod n 1 ist. Wenn ja, wird true zurückgegeben, d.h. Belastungszeuge gefunden, sonst false. Eine Realisierung als Programm könnte wie folgt aussehen:

8 8 Der Miller-Rabin Primzahltest Funktion witness Eingabe: Ausgabe: Zahl a, Zahl n true falls ein Zeuge dafür, dass n nicht prim, false sonst function witness(a, n: integer): boolean begin n-1 := (2 t )*u, wobei t > 1 und u ungerade x0 := modular_exp(a,u,n); for i := 1 to t do begin xi := 2 xi-1 mod n; if (xi = 1 and xi-1 <> 1 and xi-1 <> n-1) then return true; end if (xt <> 1) then return true // a ist Belastungszeuge gegen Primalität else return false; // a ist kein Belastungszeuge end Bei der Zahl n = 561 liefert der Fermat-Test mit dem Zeugen 2 nicht das Ergebnis, dass n zusammengesetzt ist. Die Funktion witness dagegen findet eine nicht-triviale Quadratwurzel, wie wir bereits oben gesehen haben. Damit lässt sich 561 als zusammengesetzt identifizieren. Der Miller-Rabin Primzahltest besteht nun schlicht aus einem s-maligen Aufruf der Funktion witness mit zufällig gewählten Zeugen a {1,..., n-1}.

9 9 Der Miller-Rabin Primzahltest Funktion is_miller_rabin_prime Eingabe: Ausgabe: Zahl n, Anzahl der Versuche s true falls Miller-Rabin prim, false sonst function is_miller_rabin_prime(n, s: integer): boolean begin end for j := 1 to s do begin end a := random(2,n-1); if (witness(a,n)) then return false; //100% nicht prim return true; //[(½ s )*100]% miller-rabin prim Der Miller-Rabin Algorithmus ein so genannter Monte-Carlo-Algorithmus. Monte Carlo-Algorithmen laufen schneller als deterministische Algorithmen, sie liefern aber mit einer gewissen Wahrscheinlichkeit ein falsches Ergebnis. Monte-Carlo Algorithmen gehören zur Klasse sog. probabilistischer Algorithmen, dies sind Algorithmen, in denen der Zufall eine wichtige Rolle spielt. In probabilistischen Algorithmen werden Zufallszahlen ermittelt, anhand derer eine Entscheidung gefällt wird, dadurch läuft ein solcher Algorithmus jedes Mal anders, auf diese Weise wird dann versucht eine Lösung zu finden. Deterministische Algorithmen brauchen dagegen oft sehr viel Zeit um Ergebnisse zu liefern, siehe beispielsweise trial-divison. Natürlich besteht die Gefahr, dass die Ergebnisse solcher Monte-Carlo Algorithmen nicht immer richtig sind, aus diesem Grunde sollte man stets bestimmen, wie hoch die Chance ist, ein falsches Ergebnis zu erhalten. Dies werden wir im nun folgenden Abschnitt auch machen.

10 10 Der Miller-Rabin Primzahltest 3. Fehlerrate des Miller-Rabin Primzahltest Im Gegensatz zum einfacheren Fermat-Test gibt es beim Miller-Rabin Primzahltest keinen schlechten Input in Form einer Carmicheal-Zahl oder Pseudo-X-Primzahl. Alles ist abhängig von der Anzahl der Tests und dem Glück bei der zufälligen Wahl der Basen a. Um nun zu beweisen, dass die Anzahl der so genannten Entlastungszeugen (n-1)/2 beträgt, werde ich kurz Lagrange`s Theorem angeben: Wenn (S, x) eine endliche Gruppe ist und (S',x) eine Untergruppe von (S,x), dann S' S, d.h. S' ist ein Divisor von S. Eine Untergruppe S' heißt echte (nicht-triviale) Untergruppe, wenn S' S bzw. S' {e} gilt. Ist S' eine nicht-triviale Untergruppe einer endlichen Gruppe S, so gilt S' S /2. In Bezug auf Miller-Rabin heißt das, dass die Anzahl der Entlastungszeugen (n-1)/2 ist. Das wiederum bedeutet, dass die Anzahl der Belastungszeugen mindestens (n-1)/2 ist. Wir müssen nun zeigen, dass es eine echte Untergruppe von Zn* gibt, die alle Nichtbelastungszeugen enthält. 10 Eine solche Untergruppe besitzt, wie wir wissen (n-1)/2 Elemente. Um dies zu zeigen, teilen wir den Beweis in zwei Fälle auf: 1. Fall: Es gibt ein x Zn*, so dass x (n-1) 1 (mod n) gilt. Mit anderen Worten: n ist keine Carmichael- Zahl, dieser Fall tritt in der Praxis übrigens am Häufigsten auf. Wir definieren die Menge der Entlastungszeugen mit E = {b Zn* b (n-1) 1 (mod n)} B ist nicht leer, da 1 E. Da E unter der Multiplikation mod n abgeschlossen ist, können wir sagen, dass E eine Untergruppe von Zn* ist. Man beachte, dass jeder Entlastungszeuge E ist, da a der folgenden Gleichung genügt a (n-1) 1 (mod n). Damit kann x nicht Element von E sein, da es aber Zn* ist, gilt x Zn* - E, damit ist E eine echte/nicht-triviale Untergruppe von Zn*. Daraus folgt, dass in E maximal (n-1)/2 Elemente (Entlastungszeugen) enthalten sind. 2. Fall: Für alle x Zn* gilt x (n-1) 1 (mod n). Mit anderen Worten: n ist eine Carmichael-Zahl, dieser Fall ist äußerst selten, trotzdem ist der Miller-Rabin Primzahltest in der Lage, diesen zu erkennen, anders als die Testverfahren, die nur auf dem kleinen Satz von Fermat basieren. Da n Carmichael-Zahl ist (damit keine Potenz einer Primzahl), können wir diese zusammengesetzte Zahl auch in der Form n1n2 schreiben, wobei n1 und n2 ungerade, relativ prim zueinander und > 1 sind. Das könnte dann wie folgt aussehen: 10 Zn * ist hierbei definiert als: Z n * := {a Z n : ggt(a, n) = 1}

11 11 Der Miller-Rabin Primzahltest damit ist n = p1 e 1 * p2 e 2 *... * pr e r, n1 = p1 e 1 und n2 = p2 e 2 *... * pr e r. Überlegen wir uns nun, wie unsere echte Untergruppe von Entlastungszeugen aussehen muss. Auf jeden Fall enthält B alle Elemente x, für die gilt x (n-1) 1 (mod n). Könnten da noch andere Elemente drin sein? JA. Überlegen wir uns kurz, welche Zahlen bei unserem Miller-Rabin witness-test auftreten können. Entweder sind nach Berechnung von x u mod n alle Zahlen = 1 (diese Zahlen sind bereits in B oder sie sind x (n-1) 1 und x (n-1) -1 n-1, dieser Fall interessiert uns hier aber nicht. Interessanter ist der Fall, dass an einer Stelle unserer Berechnungen (n-1) -1 herauskommt. Wieso? Na ja, -1 wird, soweit wir noch mal quadrieren zu 1 und gehört daher auch zur Gruppe B. Es folgt also: B = {x Zn*: x [(2^i)*u] +/- 1 (mod n)} für i aus [0,...,t] Wir zeigen nun, dass es ein w gibt, das folgendes erfüllt w [(2^i)*u] -1 (mod n1) w [(2^i)*u] 1 (mod n2), wobei i aus [0,...,t] ist. Daraus folgt aber, dass w [(2^i)*u] 1 (mod n1) ist, sowie w [(2^i)*u] -1 (mod n2), dies impliziert, dass w [(2^i)*u] +/- 1 (mod n). Wie kommt man auf w [(2^i)*u] +/- 1 (mod n)? Korollar (welches hier nicht bewiesen wird): a z (mod n), g.d.w. a z (mod n1), a z (mod n2),..., a z (mod ni) wobei n1,..,ni paarweise prim zueinander sind. Nachdem wir aber voraussetzten, dass w [(2^i)*u] -1 (mod n1) sowie w [(2^i)*u] 1 (mod n2) wird die gerade aufgestellte Forderung nicht erfüllt. Daher kann dieses w nicht Element der Gruppe B = {x Zn*: x [(2^i)*u] +/- 1 (mod n)} für i aus [0,...,t]} sein. Daher ist B eine echte/nicht-triviale Untergruppe, so dass B (n-1)/2. Was bedeutet dies jetzt für den Miller-Rabin Primzahltest? Beim ersten Durchlauf ist die Chance ½ (das ½ kommt von der Gruppenordnung, die ja maximal (n-1)/2 ist, also in etwa die Hälfte der Elemente von Zn* ), dass wir fälschlicherweise einen Entlastungszeugen erwischen, der behauptet n sei prim, obwohl dies nicht der Fall ist. Testen wir erneut, ist die Chance wieder ½, nachdem wir aber schon zuvor getestet haben, ergibt sich Aufgrund der Produktwahrscheinlichkeit eine Chance von 1/4, 1/8, 1/16, usw. Bei s Durchläufen kommt man daher auf [( ½ ) s ]*100 % Fehlerwahrscheinlichkeit.

12 12 Der Miller-Rabin Primzahltest Bereits für s = 50 erhalten wir eine Fehlerwahrscheinlichkeit von weniger als 8, e-14%. Es wäre schier ein Unding, wenn diese Zahl doch zusammengesetzt ist und der Miller-Rabin Primzahltest versagt hat aber es kann sein. An dieser Stelle sei angemerkt, dass man die Fehlerwahrscheinlichkeit sogar auf (1/4) s abschätzen kann, dies würde allerdings den Rahmen dieser Arbeit sprengen. Der hier dargestellte Beweis folgt dem in von Cormen, Leiserson und Rivest: Introduction to Algorithms, MIT Press/McGraw-Hill (1990) dargestellten. Einen Beweis zur Abschätzung auf (1/4) s findet man z.b. in N. Blum, Theoretische Informatik Eine anwendungsorientierte Einführung, Oldenburg-Verlag, (2001).

13 13 Der Miller-Rabin Primzahltest 4. Weitere Informationen Stimmt das? Behauptung : Wenn a (n-1) 1 (mod n), für a = 1, dann ist n eine Primzahl. Interessante Webseiten Unter dem URL findet der interessierte Leser weitere Informationen zur Thematik, außerdem kann man auf der Webseite mit einem sog. Java-Applet Zahlen mittels Miller-Rabin Primzahltest auf ihre Primalität testen. Eine formale Darstellung findet man auf den Seiten der Wikipedia unter dem URL Weiterführende Literatur T.H. Cormen, C.E. Leiserson und R.L. Rivest: Introduction to Algorithms, MIT Press/McGraw-Hill (1990) Song Y. Yan: Number theory for computing, Springer-Verlag, (2002) N. Blum, Theoretische Informatik, Oldenburg-Verlag, (2001) A. Beutelspacher, Lineare Algebra, Vieweg-Verlag, (2001) Einige Carmichael-Zahlen Es sei darauf hingewiesen, dass es im Internet (man suche z.b. mit Google) weitaus größere Listen von Carmichael-Zahlen gibt.

14 14 Der Miller-Rabin Primzahltest

15 15 Der Miller-Rabin Primzahltest Haskell Mit dem folgenden Programm für den Haskell-Interpreter Hugs2001 kann man selbst evaluieren, ob eine gegebene Zahl carmichael ist. Es ist mir bewusst, dass es bessere Methoden für diesen einfachen Test gibt, zugegeben gibt es weitere Eigenschaften für Carmichael-Zahlen, die eine weitaus leichtere Bestimmung dieser zulässt, im Rahmen dieser kurzen Arbeit habe ich allerdings darauf verzichtet. ggt(x,y) x == 0 = y y == 0 = x x > 0 = ggt(y,x `mod` y) carmichael x = [y y <-[2..(x-1)], ((y^(x-1)) `mod` x == 1)] == [y y <-[2..x], (ggt(x,y)== 1)]

Probabilistische Primzahltests

Probabilistische Primzahltests 23.01.2006 Motivation und Überblick Grundsätzliches Vorgehen Motivation und Überblick Als Primzahltest bezeichnet man ein mathematisches Verfahren, mit dem ermittelt wird, ob eine gegebene Zahl eine Primzahl

Mehr

3: Zahlentheorie / Primzahlen

3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 96 3: Zahlentheorie / Primzahlen 3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 97 Definition 37 (Teiler, Vielfache, Primzahlen,

Mehr

Kryptographie und Komplexität

Kryptographie und Komplexität Kryptographie und Komplexität Einheit 4.2 Primzahltests 1. Deterministische Primzahltests 2. Der Primzahltest von Solovay-Strassen 3. Der Milner-Rabin Test Wozu Primzahltests? RSA Schlüssel benötigen sehr

Mehr

7 Die Sätze von Fermat, Euler und Wilson

7 Die Sätze von Fermat, Euler und Wilson 53 7 Die Sätze von Fermat, Euler und Wilson Es gibt einige Sätze aus der elementaren Zahlentheorie, die Spezialfälle von Aussagen über endliche Gruppen sind. Z.B. gilt für ein beliebiges Element x einer

Mehr

Primzahltests und Faktorisierung. Primzahltests. Nuria Brede Universität Potsdam - Kryptographie SoSe 2005 Seite 1

Primzahltests und Faktorisierung. Primzahltests. Nuria Brede Universität Potsdam - Kryptographie SoSe 2005 Seite 1 Primzahltests und Faktorisierung Primzahltests Primzahltests Nuria Brede 16.06.2005 16.06.2005 Universität Potsdam - Kryptographie SoSe 2005 Seite 1 Primzahltests und Faktorisierung Primzahltests Inhalt

Mehr

Hallo Welt für Fortgeschrittene

Hallo Welt für Fortgeschrittene Hallo Welt für Fortgeschrittene Zahlentheorie, Arithmetik und Algebra 1 Florian Habur Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Modulare Arithmetik Rechenregeln Fast Exponentiation

Mehr

Diskrete Mathematik 1

Diskrete Mathematik 1 Ruhr-Universität Bochum Lehrstuhl für Kryptologie und IT-Sicherheit Prof. Dr. Alexander May M. Ritzenhofen, M. Mansour Al Sawadi, A. Meurer Lösungsblatt zur Vorlesung Diskrete Mathematik 1 WS 008/09 Blatt

Mehr

Algorithmentheorie Randomisierung. Robert Elsässer

Algorithmentheorie Randomisierung. Robert Elsässer Algorithmentheorie 03 - Randomisierung Robert Elsässer Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

Gewinnung und Test großer Primzahlen

Gewinnung und Test großer Primzahlen 16. Mai 2007 1 Einführung 2 Primzahlgewinnung 3 Primzahlentest 4 Aktuelles 5 Appendix 1 Einführung Anwendung Notation und Grundlagen Ordnung Eulersche φ-funktion Kleiner Satz von Fermat Anwendung Verwendung

Mehr

Zahlentheorie, Arithmetik und Algebra I

Zahlentheorie, Arithmetik und Algebra I Zahlentheorie, Arithmetik und Algebra I Ulrich Rabenstein 18.06.2013 Ulrich Rabenstein Zahlentheorie, Arithmetik und Algebra I 18.06.2013 1 / 34 1 Modulare Arithmetik 2 Teiler 3 Primzahlen Ulrich Rabenstein

Mehr

Probabilistische Primzahltests

Probabilistische Primzahltests Probabilistische Primzahltests Daniel Tanke 11. Dezember 2007 In dieser Arbeit wird ein Verfahren vorgestellt, mit welchem man relativ schnell testen kann, ob eine ganze Zahl eine Primzahl ist. Für einen

Mehr

Proseminar SS08 - Miller-Rabin-Primzahltest

Proseminar SS08 - Miller-Rabin-Primzahltest Proseminar SS08 - Miller-Rabin-Primzahltest von Technische Unviersität München Vorlesung Perlen der Informatik 2, 2008 Professor Tobias Nipkow 17. April 2008 Inhaltsverzeichnis 1 Einleitung 3 2 Primzahltests

Mehr

Was können Schüler anhand von Primzahltests über Mathematik lernen?

Was können Schüler anhand von Primzahltests über Mathematik lernen? Was können Schüler anhand von Primzahltests über Mathematik lernen? Innermathematisches Vernetzen von Zahlentheorie und Wahrscheinlichkeitsrechnung Katharina Klembalski Humboldt-Universität Berlin 20.

Mehr

Primzahltest für Mersenne-Primzahlen

Primzahltest für Mersenne-Primzahlen Primzahltest für Mersenne-Primzahlen Satz Lucas-Lehmer Test Sei n = 2 p 1 N für p P\{2}. Wir definieren die Folge S k durch S 1 = 4 und S k = S 2 k 1 2. Falls n S p 1, dann ist n prim. Beweis: Seien ω

Mehr

Kapitel 3: Die Sätze von Euler, Fermat und Wilson. 8 Der Satz von Euler

Kapitel 3: Die Sätze von Euler, Fermat und Wilson. 8 Der Satz von Euler Kapitel 3: Die Sätze von Euler, Fermat und Wilson In diesem Kapitel wollen wir nun die eulersche -Funktion verwenden, um einen berühmten Satz von Euler zu formulieren, aus dem wir dann mehrere interessante

Mehr

Probabilistische Algorithmen

Probabilistische Algorithmen Probabilistische Algorithmen Michal Švancar Gerardo Balderas Hochschule Zittau/Görlitz 21. Dezember 2014 Michal Švancar, Gerardo Balderas (HSZG) Probabilistische Algorithmen 21. Dezember 2014 1 / 40 Inhaltsverzeichnis

Mehr

Gewinnung und Test großer Primzahlen

Gewinnung und Test großer Primzahlen Gewinnung und Test großer Primzahlen Martin Heinzerling 16. Mai 2007 Zusammenfassung Dieser Vortrag entstand im Rahmen des Proseminars Kryptographische Grundlagen der Datensicherheit SS-2007 der Technischen

Mehr

Quadrate und Wurzelziehen modulo p

Quadrate und Wurzelziehen modulo p Quadrate und Wurzelziehen modulo p Sei im Folgenden p eine Primzahl größer als. Wir möchten im Körper Z p Quadratwurzeln ziehen. Die Quadrierabbildung Q :Z p Z p ist aber nicht surjektiv, daher gibt es

Mehr

Definition der Kolmogorov-Komplexität I

Definition der Kolmogorov-Komplexität I Definition der Kolmogorov-Komplexität I Definition: Die Komplexität K A (x) eines Wortes x V + bezüglich des Algorithmus A ist die Länge der kürzesten Eingabe p {0, 1} + mit A(p) = x, d.h. in formalisierter

Mehr

Zahlentheorie, Arithmetik und Algebra

Zahlentheorie, Arithmetik und Algebra Zahlentheorie, Arithmetik und Algebra Seminar Hallo Welt für Fortgeschrittene 2008 Matthias Niessner June 20, 2008 Erlangen 1 von 29 Matthias Niessner Zahlentheorie, Arithmetik und Algebra Übersicht 1

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

Pollards Rho-Methode zur Faktorisierung

Pollards Rho-Methode zur Faktorisierung C A R L V O N O S S I E T Z K Y Pollards Rho-Methode zur Faktorisierung Abschlusspräsentation Bachelorarbeit Janosch Döcker Carl von Ossietzky Universität Oldenburg Department für Informatik Abteilung

Mehr

3.3 Laufzeit von Programmen

3.3 Laufzeit von Programmen 3.3 Laufzeit von Programmen Die Laufzeit eines Programmes T(n) messen wir als die Zahl der Befehle, die für die Eingabe n abgearbeitet werden Betrachten wir unser Programm zur Berechnung von Zweierpotenzen,

Mehr

3 Primzahlen. j,... stets Primzahlen. 3.1 Satz. Jedes a > 1 ist als Produkt von Primzahlen darstellbar (Primfaktorzerlegung. n=1

3 Primzahlen. j,... stets Primzahlen. 3.1 Satz. Jedes a > 1 ist als Produkt von Primzahlen darstellbar (Primfaktorzerlegung. n=1 3 Primzahlen Die Zahl 1 hat nur einen positiven Teiler, nämlich 1. Jede Zahl a > 1 hat mindestens zwei positive Teiler: 1 und a. Definition. Eine Primzahl ist eine Zahl a > 1, welche nur die Teiler 1 und

Mehr

Kapitel 6: Das quadratische Reziprozitätsgesetz

Kapitel 6: Das quadratische Reziprozitätsgesetz Kapitel 6: Das quadratische Reziprozitätsgesetz Ziel dieses Kapitels: die Untersuchung der Lösbarkeit der Kongruenzgleichung X also die Frage, ob die ganze Zahl Z eine Quadratwurzel modulo P besitzt. Im

Mehr

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0809

Mehr

Algorithmen auf Zeichenketten

Algorithmen auf Zeichenketten Algorithmen auf Zeichenketten Rabin-Karp Algorithmus Christoph Hermes hermes@hausmilbe.de Zeichenketten: Rabin-Karp Algorithmus p. 1/19 Ausblick auf den Vortrag theoretische Grundlagen... Zeichenketten:

Mehr

Einführung in die Zahlentheorie

Einführung in die Zahlentheorie Einführung in die Zahlentheorie von Peter Hellekalek Institut für Mathematik Universität Salzburg Hellbrunner Straße 34 A-5020 Salzburg, Austria Tel: +43-(0)662-8044-5310 Fax: +43-(0)662-8044-137 e-mail:

Mehr

PRIMHEITSZERTIFIKATE UND TEST VON PROTH Seminar Primzahltests von zur Gathen & Müller & Krummel

PRIMHEITSZERTIFIKATE UND TEST VON PROTH Seminar Primzahltests von zur Gathen & Müller & Krummel PRIMHEITSZERTIFIKATE UND TEST VON PROTH Seminar Primzahltests von zur Gathen & Müller & Krummel Christian Viergutz Sommersemester 2003 Zusammenfassung. Dieser Artikel befasst sich mit Beweisen für die

Mehr

Primzahlzertifikat von Pratt

Primzahlzertifikat von Pratt Primzahlzertifikat von Pratt Daniela Steidl TU München 17. 04. 2008 Primzahltests in der Informatik "Dass das Problem, die Primzahlen von den Zusammengesetzten zu unterscheiden und letztere in ihre Primfaktoren

Mehr

Primzahlen und Programmieren

Primzahlen und Programmieren Primzahlen Wir wollen heute gemeinsam einen (sehr grundlegenden) Zusammenhang zwischen Programmieren und Mathematik herstellen. Die Zeiten in denen Mathematiker nur mit Zettel und Stift (oder Tafel und

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Primzahltest in Polynomialzeit Der Algorithmus von Agrawal, Kayal und Saxena

Primzahltest in Polynomialzeit Der Algorithmus von Agrawal, Kayal und Saxena Primzahltest in Polynomialzeit Der Algorithmus von Agrawal, Kayal und Saxena 1. Worum geht es? Das Problem, um das es geht, heißt PRIMES. Es entscheidet für eine vorgegebene Zahl n > 2 die Frage, ob n

Mehr

. Zahlentheorie, Arithmetik und Algebra I. Tobias Polzer. Tobias Polzer Zahlentheorie, Arithmetik und Algebra I.. /

. Zahlentheorie, Arithmetik und Algebra I. Tobias Polzer. Tobias Polzer Zahlentheorie, Arithmetik und Algebra I.. / Zahlentheorie, Arithmetik und Algebra I Tobias Polzer Tobias Polzer Zahlentheorie, Arithmetik und Algebra I / Modulare Arithmetik Motivation Rechenregeln schnelle Potenzierung Gemeinsame Teiler euklidischer

Mehr

Primzahlen und Pseudoprimzahlen

Primzahlen und Pseudoprimzahlen 1 Primzahlen und Pseudoprimzahlen Holger Stephan Weierstraß Institut für Angewandte Analysis und Stochastik (WIAS), Berlin 20. Tag der Mathematik 9. Mai 2015, Beuth Hochschule für Technik Berlin Primzahlen

Mehr

Grundlagen der Arithmetik und Zahlentheorie

Grundlagen der Arithmetik und Zahlentheorie Grundlagen der Arithmetik und Zahlentheorie 1.0 Teilbarkeit In diesem Abschnitt werden wir einerseits die ganzen Zahlen an sich studieren und dabei besonders wichtige Zahlen, die Primzahlen, entsprechend

Mehr

Public Key Kryptographie

Public Key Kryptographie 3. Juni 2006 1 Algorithmen für Langzahlen 1 RSA 1 Das Rabin-Kryptosystem 1 Diskrete Logarithmen Grundlagen der PK Kryptographie Bisher: Ein Schlüssel für Sender und Empfänger ( Secret-Key oder symmetrische

Mehr

31 Polynomringe Motivation Definition: Polynomringe

31 Polynomringe Motivation Definition: Polynomringe 31 Polynomringe 31.1 Motivation Polynome spielen eine wichtige Rolle in vielen Berechnungen, einerseits weil oftmals funktionale Zusammenhänge durch Polynome beschrieben werden, andererseits weil Polynome

Mehr

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................

Mehr

Kryptographie und Komplexität

Kryptographie und Komplexität Kryptographie und Komplexität Einheit 4.4 Semantische Sicherheit 1. Sicherheit partieller Informationen 2. Das Verfahren von Rabin 3. Sicherheit durch Randomisierung Semantische Sicherheit Mehr als nur

Mehr

Dr. Ing. Wilfried Dankmeier Eppstein im Taunus,

Dr. Ing. Wilfried Dankmeier Eppstein im Taunus, Modulare Quadratwurzeln beim Fiat-Shamir-Verfahren zur Authentikation (zu Grundkurs Codierung, 3. Auflage 2006, Vieweg Verlag, ISBN 3-528-25399-1, Unterkapitel 5.10, Seiten 303 ff) update vom 20.03.1996

Mehr

Dr. Ing. Wilfried Dankmeier Eppstein im Taunus,

Dr. Ing. Wilfried Dankmeier Eppstein im Taunus, Modulare Quadratwurzeln beim Fiat-Shamir-Verfahren zur Authentikation (zu Grundkurs Codierung, 3. Auflage 2006, Vieweg Verlag, ISBN 3-528-25399-1, Unterkapitel 5.10, Seiten 303 ff) update vom 20.03.1996

Mehr

Der Primzahltest von Agrawal, Kayal und Saxena. Dr. Gerold Jäger

Der Primzahltest von Agrawal, Kayal und Saxena. Dr. Gerold Jäger Der Primzahltest von Agrawal, Kayal und Saxena Dr. Gerold Jäger Habilitationsvortrag Christian-Albrechts-Universität zu Kiel Institut für Informatik 19. Januar 2011 Dr. Gerold Jäger Habilitationsvortrag

Mehr

Interim. Kapitel Einige formale Definitionen

Interim. Kapitel Einige formale Definitionen Kapitel 1 Interim Da ich keine Infos über Titel und Nummerierungen anderer Kapitel dieser Vorlesung habe, nenne ich dies einfach mal Kapitel 1. 17.11.04 1.1 Einige formale Definitionen Wir rekapitulieren

Mehr

Vorkurs Mathematik. Prof. Udo Hebisch WS 2017/18

Vorkurs Mathematik. Prof. Udo Hebisch WS 2017/18 Vorkurs Mathematik Prof. Udo Hebisch WS 2017/18 1 1 Logik 2 1 Logik Unter einer Aussage versteht man in der Mathematik einen in einer natürlichen oder formalen Sprache formulierten Satz, für den eindeutig

Mehr

Zahlentheorie, Arithmetik und Algebra I

Zahlentheorie, Arithmetik und Algebra I Zahlentheorie, Arithmetik und Algebra I Viktoria Ronge 04.06.2014 Viktoria Ronge Zahlentheorie, Arithmetik und Algebra I 04.06.2014 1 / 63 Übersicht 1 Modulare Arithmetik 2 Primzahlen 3 Verschiedene Teiler

Mehr

Proseminar Datensicherheit & Versicherungsmathematik RSA-Verfahren

Proseminar Datensicherheit & Versicherungsmathematik RSA-Verfahren Proseminar Datensicherheit & Versicherungsmathematik RSA-Verfahren Herwig Stütz 2007-11-23 1 Inhaltsverzeichnis 1 Einführung 2 2 Das RSA-Verfahren 2 2.1 Schlüsselerzeugung.................................

Mehr

Vortrag zum Proseminar: Kryptographie

Vortrag zum Proseminar: Kryptographie Vortrag zum Proseminar: Kryptographie Thema: Oliver Czernik 6.12.2005 Historie Michael Rabin Professor für Computerwissenschaft Miller-Rabin-Primzahltest Januar 1979 April 1977: RSA Asymmetrisches Verschlüsselungssystem

Mehr

Kryptographie und Codierungstheorie

Kryptographie und Codierungstheorie Proseminar zur Linearen Algebra Kryptographie und Codierungstheorie Thema: Faktorisierungsalgorithmen (nach der Fermat'schen Faktorisierungsmethode) Kettenbruchalgorithmus (Continued Fraction Method) Quadratisches

Mehr

Primzahlen im Schulunterricht wozu?

Primzahlen im Schulunterricht wozu? Primzahlen im Schulunterricht wozu? Franz Pauer Institut für Fachdidaktik und Institut für Mathematik Universität Innsbruck Tag der Mathematik Graz 6. Februar 2014 Einleitung Eine (positive) Primzahl ist

Mehr

Diskrete Mathematik. Christina Kohl Georg Moser Oleksandra Panasiuk Christian Sternagel Vincent van Oostrom

Diskrete Mathematik. Christina Kohl Georg Moser Oleksandra Panasiuk Christian Sternagel Vincent van Oostrom Diskrete Mathematik Christina Kohl Georg Moser Oleksandra Panasiuk Christian Sternagel Vincent van Oostrom Institut für Informatik @ UIBK Sommersemester 2017 Zusammenfassung Zusammenfassung der letzten

Mehr

5 Harte zahlentheoretische Probleme

5 Harte zahlentheoretische Probleme 5 Harte zahlentheoretische Probleme Die folgende Tabelle gibt einen Überblick über kryptologisch relevante zahlentheoretische Berechnungsprobleme. Effizient bedeutet dabei mit polynomialem Aufwand lösbar.

Mehr

Effiziente Algorithmen mit Python. D. Komm, T. Kohn

Effiziente Algorithmen mit Python. D. Komm, T. Kohn Effiziente Algorithmen mit Python D. Komm, T. Kohn Copyright c 2017, ABZ, ETH Zürich http://www.abz.inf.ethz.ch/ Version vom 7. September 2017. Effiziente Algorithmen mit Python 3 1 Effizienz Effizient

Mehr

4 Das RSA public-key System der Kryptographie 5

4 Das RSA public-key System der Kryptographie 5 Inhaltsverzeichnis 1 Kurze Einführung 1 2 Teibarkeit,größter gemeinsamer Teiler und der Algorithmus von Euklid 2 2.1 Der euklidische Algorithmus................... 3 2.2 Laufzeit des euklidischen Algorithmus..............

Mehr

Ordnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1)

Ordnen Sie die folgenden Funktionen nach ihrer asymptotischer Komplexität in aufsteigender Reihenfolge: i=1 4i + n = 4 n. i=1 i + 3n = 4 ( n(n+1) für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder Tutoraufgabe (Asymptotische Komplexität): Ordnen Sie die folgenden Funktionen nach

Mehr

Einführung in Algebra und Zahlentheorie Lösungsvorschläge zur Klausur vom Aufgabe 1 (6 Punkte)

Einführung in Algebra und Zahlentheorie Lösungsvorschläge zur Klausur vom Aufgabe 1 (6 Punkte) Aufgabe 1 (6 Punkte) Einführung in Algebra und Zahlentheorie svorschläge zur Klausur vom 23.09.2016 a) Bestimmen Sie das multiplikativ inverse Element zu 22 in Z/61Z. b) Finden Sie ein x Z mit folgenden

Mehr

Prima Zahlen? Primzahlen

Prima Zahlen? Primzahlen Prima Zahlen? Primzahlen 10. Dezember 2009 Willi More willi.more@uni-klu.ac.at I n s t i t u t f ü r M a t h e m a t i k Überblick 1/ Primzahlen 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,

Mehr

Der euklidische Algorithmus für ganze Zahlen

Der euklidische Algorithmus für ganze Zahlen Der euklidische Algorithmus für ganze Zahlen Ein unverzichtbares Verfahren in der Kryptographie ist der euklidische Algorithmus. In diesem Kapitel stellen wir die erste Version für ganze Zahlen vor. Sei

Mehr

El. Zahlentheorie I: Der kleine Satz von Fermat

El. Zahlentheorie I: Der kleine Satz von Fermat Vorlesung 7 Universität Münster 25. September 2007 El. In Vorlesung 4 haben wir Modulo-Arithmetik behandelt. Definition Sei n N 1. Auf Z ist eine Äquivalenzrelation Kongruenz modulo n definiert durch x

Mehr

Vorlesung 7. Tilman Bauer. 25. September 2007

Vorlesung 7. Tilman Bauer. 25. September 2007 Vorlesung 7 Universität Münster 25. September 2007 El. In Vorlesung 4 haben wir Modulo-Arithmetik behandelt. Definition Sei n N 1. Auf Z ist eine Äquivalenzrelation Kongruenz modulo n definiert durch x

Mehr

Übung zur Vorlesung Berechenbarkeit und Komplexität

Übung zur Vorlesung Berechenbarkeit und Komplexität RWTH Aachen Lehrgebiet Theoretische Informatik Reidl Ries Rossmanith Sanchez Tönnis WS 2012/13 Übungsblatt 7 26.11.2012 Übung zur Vorlesung Berechenbarkeit und Komplexität Aufgabe T15 Entwickeln Sie ein

Mehr

1.2 Eigenschaften der ganzen Zahlen

1.2 Eigenschaften der ganzen Zahlen Lineare Algebra I WS 2015/16 c Rudolf Scharlau 13 1.2 Eigenschaften der ganzen Zahlen Dieser Abschnitt handelt von den gewöhlichen ganzen Zahlen Z und ihren Verknüpfungen plus und mal. Man kann die natürlichen

Mehr

1 Vorbereitung: Potenzen 2. 2 Einstieg und typische Probleme 3

1 Vorbereitung: Potenzen 2. 2 Einstieg und typische Probleme 3 Das vorliegende Skript beschäftigt sich mit dem Thema Rechnen mit Kongruenzen. Das Skript entsteht entlang einer Unterrichtsreihe in der Mathematischen Schülergesellschaft (MSG) im Jahr 2013. Die vorliegende

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Organisation Vorlesung: Montag 11 13 Uhr Marius Kloft RUD 26, 0 115 Mittwoch 11 13 Uhr Marius Kloft

Mehr

9. Primitivwurzeln. O. Forster: Einführung in die Zahlentheorie

9. Primitivwurzeln. O. Forster: Einführung in die Zahlentheorie 9. Primitivwurzeln 9.1. Satz. Sei G eine zyklische Gruppe der Ordnung m und g G ein erzeugendes Element. Das Element a := g k, k Z, ist genau dann ein erzeugendes Element von G, wenn k zu m teilerfremd

Mehr

Vorlesung Diskrete Strukturen Die natürlichen Zahlen

Vorlesung Diskrete Strukturen Die natürlichen Zahlen Vorlesung Diskrete Strukturen Die natürlichen Zahlen Bernhard Ganter WS 2009/10 Alles ist Zahl? Wenn in der modernen Mathematik alles auf Mengen aufgebaut ist, woher kommen dann die Zahlen? Sind Zahlen

Mehr

Diskreter Logarithmus und Primkörper

Diskreter Logarithmus und Primkörper Diskreter Logarithmus und Primkörper Neben dem RSA-Verfahren ist die ElGamal-Verschlüsselung 8 ein weiteres klassische Public-Key-Verfahren, welches von Taher ElGamal auf der Konferenz CRYPTO 84 vorgestellt

Mehr

1.8 Shift-And-Algorithmus

1.8 Shift-And-Algorithmus .8 Shift-And-Algorithmus nutzt durch Bitoperationen mögliche Parallelisierung Theoretischer Hintergrund: Nichtdeterministischer endlicher Automat Laufzeit: Θ(n), falls die Länge des Suchwortes nicht größer

Mehr

Grundlegendes der Mathematik

Grundlegendes der Mathematik Kapitel 2 Grundlegendes der Mathematik (Prof. Udo Hebisch) 2.1 Logik Unter einer Aussage versteht man in der Mathematik einen in einer natürlichen oder formalen Sprache formulierten Satz, für den eindeutig

Mehr

6. Vorlesung. Rechnen mit Matrizen.

6. Vorlesung. Rechnen mit Matrizen. 6. Vorlesung. Rechnen mit Matrizen. In dieser Vorlesung betrachten wir lineare Gleichungs System. Wir betrachten lineare Gleichungs Systeme wieder von zwei Gesichtspunkten her: dem angewandten Gesichtspunkt

Mehr

Zahlentheorie, Arithmetik und Algebra 1

Zahlentheorie, Arithmetik und Algebra 1 Zahlentheorie, Arithmetik und Algebra 1 Monika Huber 24.6.2015 Monika Huber Zahlentheorie, Arithmetik und Algebra 1 24.6.2015 1 / 52 Übersicht Modulare Arithmetik Größter gemeinsamer Teiler Primzahlen

Mehr

Der kleine Satz von Fermat

Der kleine Satz von Fermat Der kleine Satz von Fermat Luisa-Marie Hartmann 5. Mai 2017 Inhaltsverzeichnis 1 Einleitung 3 2 Hauptteil 4 2.1 Prime Restklassengruppen............................ 4 2.2 Ordnung von Gruppenelementen........................

Mehr

Der Primzahlsatz. Es gibt eine Konstante A, so daß f(x) g(x) Ah(x) für alle genügend großen x.

Der Primzahlsatz. Es gibt eine Konstante A, so daß f(x) g(x) Ah(x) für alle genügend großen x. Der Primzahlsatz Zusammenfassung Im Jahr 896 wurde von Hadamard und de la Vallée Poussin der Primzahlsatz bewiesen: Die Anzahl der Primzahlen kleiner gleich verhält sich asymptotisch wie / log. Für ihren

Mehr

Faktorisierung ganzer Zahlen mittels Pollards ρ-methode (1975)

Faktorisierung ganzer Zahlen mittels Pollards ρ-methode (1975) Dass das Problem, die Primzahlen von den zusammengesetzten zu unterscheiden und letztere in ihre Primfaktoren zu zerlegen zu den wichtigsten und nützlichsten der ganzen Arithmetik gehört und den Fleiss

Mehr

Die Primheit von Primzahlen kann man effizient verifizieren. oder. Primes NP. Die Zahl

Die Primheit von Primzahlen kann man effizient verifizieren. oder. Primes NP. Die Zahl Historisches Die Zahl Die Primheit von Primzahlen kann man effizient verifizieren oder Primes NP n = 114381625757888867669235779976146612010218296721242 362562561842935706935245733897830597123563958705

Mehr

8. Woche Quadratische Reste und Anwendungen. 8. Woche: Quadratische Reste und Anwendungen 163/ 238

8. Woche Quadratische Reste und Anwendungen. 8. Woche: Quadratische Reste und Anwendungen 163/ 238 8 Woche Quadratische Reste und Anwendungen 8 Woche: Quadratische Reste und Anwendungen 163/ 238 Quadratische Reste Ḋefinition Quadratischer Rest Sei n N Ein Element a Z n heißt quadratischer Rest in Z

Mehr

Zahlentheorie. Vorlesung 14. Fermatsche Primzahlen

Zahlentheorie. Vorlesung 14. Fermatsche Primzahlen Prof. Dr. H. Brenner Osnabrück SS 2008 Zahlentheorie Vorlesung 14 Fermatsche Primzahlen Definition 14.1. Eine Primzahl der Form 2 s + 1, wobei s eine positive natürliche Zahl ist, heißt Fermatsche Primzahl.

Mehr

Exponentiation: das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element

Exponentiation: das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element Problemstellung Banale smethode : das Problem Gegeben: (multiplikative) Halbgruppe (H, ), Element a H, n N Aufgabe: berechne das Element a n = } a a a {{ a } H n (schreiben ab jetzt a n statt a n ) Hinweis:

Mehr

Erweiterter Euklidischer Algorithmus

Erweiterter Euklidischer Algorithmus Erweiterter Euklidischer Algorithmus Algorithmus ERWEITERTER EUKLIDISCHER ALG. (EEA) EINGABE: a, b N 1 If (b = 0) then return (a, 1, 0); 2 (d, x, y) EEA(b, a mod b); 3 (d, x, y) (d, y, x a b y); AUSGABE:

Mehr

p Z >1 ist Primzahl, wenn gilt Euklid:

p Z >1 ist Primzahl, wenn gilt Euklid: Grundlegende Tatsachen über den Ring Z Z; +, ist ein nullteilerfreier Ring Divisionseigenschaft a Z, b Z > q, r Z : a = b q + r, r < b Arithmetik Grundlegende Tatsachen über den Ring Z Euklidischer Algorithmus

Mehr

4 Kryptologie. Übersicht

4 Kryptologie. Übersicht 4 Kryptologie Übersicht 4.1 Der erweiterte euklidische Algorithmus................................ 38 4.2 Rechnen mit Restklassen modulo p................................... 39 4.3 Der kleine Satz von

Mehr

Schleifeninvarianten. Dezimal zu Binär

Schleifeninvarianten. Dezimal zu Binär Schleifeninvarianten Mit vollstandiger Induktion lasst sich auch die Korrektheit von Algorithmen nachweisen. Will man die Werte verfolgen, die die Variablen beim Ablauf eines Algorithmus annehmen, dann

Mehr

U. Rausch, 2010 Ganze Zahlen 1

U. Rausch, 2010 Ganze Zahlen 1 U. Rausch, 2010 Ganze Zahlen 1 Ganze Zahlen 1 Einleitung Als ganze Zahlen bezeichnet man die natürlichen Zahlen 1, 2,, 4,..., die Null 0 und die negativen ganzen Zahlen 1, 2,, 4,... Wir verabreden die

Mehr

Stichpunktezettel fürs Tutorium

Stichpunktezettel fürs Tutorium Stichpunktezettel fürs Tutorium Moritz und Dorian 11. November 009 1 Kleiner Fermat Behauptung. Seien a, b N relativ prim und b eine Primzahl. Dann ist a b 1 = 1. Beweis. Wir definieren die Funktion f

Mehr

Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1

Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1 Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1 1 Primzahltest 1.1 Motivation Primzahlen spielen bei zahlreichen Algorithmen, die Methoden aus der Zahlen-Theorie verwenden, eine zentrale Rolle. Hierzu

Mehr

Pseudo-Zufallsgeneratoren basierend auf dem DLP

Pseudo-Zufallsgeneratoren basierend auf dem DLP Seminar Codes und Kryptografie SS 2004 Struktur des Vortrags Struktur des Vortrags Ziel Motivation 1 Einleitung Ziel Motivation 2 Grundlegende Definitionen Zufallsgeneratoren 3 Generator Sicherheit 4 Generator

Mehr

Mathematische Grundlagen der Kryptografie (1321)SoSe 06

Mathematische Grundlagen der Kryptografie (1321)SoSe 06 Mathematische Grundlagen der Kryptografie (1321)SoSe 06 Nachklausur am 30.9.2006: Lösungsvorschläge zu den Aufgaben zu Aufgabe I.1 (a) Der Geheimtext als Folge von Elementen aus Z/26Z ist [13, 0, 22, 3].

Mehr

Referat Algorithmische Anwendungen WS 06/07

Referat Algorithmische Anwendungen WS 06/07 Referat Algorithmische Anwendungen WS 06/07 Primzahlfaktorisierung Team C_gelb_ALA0607 Inga Feick, 11034165, inga.feick@web.de Marc Kalmes, 11025526, ai233@gm.fh-koeln.de 23.01.2007 Problemstellung Dieses

Mehr

Gliederung. Algorithmen und Datenstrukturen I. Eine wichtige Frage. Algorithmus. Materialien zur Vorlesung. Begriffsbestimmung EUKLID Primzahltest

Gliederung. Algorithmen und Datenstrukturen I. Eine wichtige Frage. Algorithmus. Materialien zur Vorlesung. Begriffsbestimmung EUKLID Primzahltest Gliederung Algorithmen und Datenstrukturen I Materialien zur Vorlesung D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Winter 2009/10,

Mehr

(1 + o(1)) n ln(n) π(n) =

(1 + o(1)) n ln(n) π(n) = Satz 164. (Euklid): Es gibt unendlich viele Primzahlen Beweis. (Widerspruch:) Angenommen, es gäbe nur k < viele Primzahlen p 1,...,p k. Es ist dann q := (p 1 p 2... p k ) + 1 eine Zahl, die nicht durch

Mehr

Zahlentheorie I - Tipps & Lösungen. Aktualisiert: 15. Oktober 2016 vers Teilbarkeit

Zahlentheorie I - Tipps & Lösungen. Aktualisiert: 15. Oktober 2016 vers Teilbarkeit Schweizer Mathematik-Olympiade smo osm Zahlentheorie I - Tipps & Lösungen Aktualisiert: 15. Oktober 2016 vers. 1.2.0 1 Teilbarkeit Einstieg 1.1 Zeige, dass 900 ein Teiler von 10! ist. Tipp: Schreibe 900

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

Public-Key-Verschlüsselung und Diskrete Logarithmen

Public-Key-Verschlüsselung und Diskrete Logarithmen Public-Key-Verschlüsselung und Diskrete Logarithmen Carsten Baum Institut für Informatik Universität Potsdam 10. Juni 2009 1 / 30 Inhaltsverzeichnis 1 Mathematische Grundlagen Gruppen, Ordnung, Primitivwurzeln

Mehr

Vorlesung Sicherheit

Vorlesung Sicherheit Vorlesung Sicherheit Dennis Hofheinz ITI, KIT 12.05.2014 1 / 26 Überblick 1 Hashfunktionen Erinnerung Angriffe auf Hashfunktionen Zusammenfassung Hashfunktionen 2 Asymmetrische Verschlüsselung Idee Beispiel:

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

Musterlösung zur Probeklausur zur Angewandten Diskreten Mathematik Dr. Hartmut Lanzinger, Hans- Peter Reck

Musterlösung zur Probeklausur zur Angewandten Diskreten Mathematik Dr. Hartmut Lanzinger, Hans- Peter Reck Musterlösung zur Probeklausur zur Angewandten Diskreten Mathematik Dr. Hartmut Lanzinger, Hans- Peter Reck Gesamtpunktzahl: 114 Punkte, 100 Punkte= 100 %, keine Abgabe 1. Es seien m = 1155 und n = 1280.

Mehr

Kanonische Primfaktorzerlegung

Kanonische Primfaktorzerlegung Mathematik I für Informatiker Zahlen p. 1 Kanonische Primfaktorzerlegung Jede natürliche Zahl n kann auf eindeutige Weise in der Form n = p α 1 1 pα 2 2... pα k k geschrieben werden, wobei k N 0, α i N

Mehr

Seminararbeit zur Zahlentheorie. Die Gaußschen Zahlen

Seminararbeit zur Zahlentheorie. Die Gaußschen Zahlen Universität Paderborn WS 2007/2008 Warburger Str. 100 33098 Paderborn Seminararbeit zur Zahlentheorie Die Gaußschen Zahlen Tatjana Linkin, Svetlana Krez 20. November 2007 INHALTSVERZEICHNIS 1 Inhaltsverzeichnis

Mehr

Mersennesche Primzahlen

Mersennesche Primzahlen Mersennesche Primzahlen Michael E. Pohst Technische Universität Berlin Die Zahlen von Mersenne Zu einer natürlichen Zahl n wird die zugehörige Mersennezahl M n als M n = 2 n 1 definiert. Für n = 2, 3,

Mehr