Der Miller-Rabin Primzahltest Florian Rienhardt Alle Rechte vorbehalten.
|
|
- Georg Bauer
- vor 7 Jahren
- Abrufe
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
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
Mehr3: 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,
MehrKryptographie 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
Mehr7 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
MehrPrimzahltests 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
MehrHallo 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
MehrDiskrete 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
MehrAlgorithmentheorie 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
MehrGewinnung 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
MehrZahlentheorie, 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
MehrProbabilistische 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
MehrProseminar 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
MehrWas 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.
MehrPrimzahltest 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 ω
MehrKapitel 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
MehrProbabilistische 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
MehrGewinnung 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
MehrQuadrate 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
MehrDefinition 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
MehrZahlentheorie, 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
MehrRandomisierte 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
MehrPollards 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
Mehr3.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,
Mehr3 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
MehrKapitel 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
MehrWS 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
MehrAlgorithmen 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:
MehrEinfü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:
MehrPRIMHEITSZERTIFIKATE 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
MehrPrimzahlzertifikat 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
MehrPrimzahlen 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
MehrWS 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
MehrPrimzahltest 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 / Modulare Arithmetik Motivation Rechenregeln schnelle Potenzierung Gemeinsame Teiler euklidischer
MehrPrimzahlen 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
MehrGrundlagen 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
MehrPublic 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
Mehr31 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
MehrMathematische 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............................
MehrKryptographie 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
MehrDr. 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
MehrDr. 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
MehrDer 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
MehrInterim. 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
MehrVorkurs 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
MehrZahlentheorie, 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
MehrProseminar 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.................................
MehrVortrag 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
MehrKryptographie und Codierungstheorie
Proseminar zur Linearen Algebra Kryptographie und Codierungstheorie Thema: Faktorisierungsalgorithmen (nach der Fermat'schen Faktorisierungsmethode) Kettenbruchalgorithmus (Continued Fraction Method) Quadratisches
MehrPrimzahlen 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
MehrDiskrete 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
Mehr5 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.
MehrEffiziente 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
Mehr4 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..............
MehrOrdnen 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
MehrEinfü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
MehrPrima 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,
MehrDer 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
MehrEl. 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
MehrVorlesung 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
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
Mehr1.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
Mehr1 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 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
Mehr9. 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
MehrVorlesung 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
MehrDiskreter 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
Mehr1.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
MehrGrundlegendes 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
Mehr6. 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
MehrZahlentheorie, 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
MehrDer 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........................
MehrDer 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
MehrFaktorisierung 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
MehrDie 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
Mehr8. 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
MehrZahlentheorie. 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.
MehrExponentiation: 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:
MehrErweiterter 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:
Mehrp 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
Mehr4 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
MehrSchleifeninvarianten. 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
MehrU. 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
MehrStichpunktezettel 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
MehrPraktikum 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
MehrPseudo-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
MehrMathematische 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].
MehrReferat 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
MehrGliederung. 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) =
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
MehrZahlentheorie 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
MehrLenstras 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
MehrPublic-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
MehrVorlesung 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:
Mehr2: 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,
MehrMusterlö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.
MehrKanonische 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
MehrSeminararbeit 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
MehrMersennesche 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