5 Randomisierte Algorithmen für Probleme aus der Zahlentheorie

Größe: px
Ab Seite anzeigen:

Download "5 Randomisierte Algorithmen für Probleme aus der Zahlentheorie"

Transkript

1 Stand: Vorlesung Randomisierte Algorithmen Dietzfelbinger 5 Randomisierte Algorithmen für Probleme aus der Zahlentheorie Zu Aussagen, die mit ( ) markiert sind, gibt es Beweise oder Anmerkungen im Anhang A. 5.1 Fakten aus der Zahlentheorie und grundlegende Algorithmen Fakt 5.1 (Division mit Rest). Zu x Z und m 2 gibt es ein r mit 0 r < m und ein q mit x = qm + r. Die Zahlen q und r sind eindeutig bestimmt. Die Zahl r ( Rest ) bezeichnen wir mit x mod m. Sie hat die Darstellung x qm, unterscheidet sich also von x um ein Vielfaches von m. Fakt 5.2 (( )). Für jedes m 2 bildet die Menge Z m = {0, 1,..., m 1} mit den Operationen Addition modulo m und Multiplikation modulo m einen Ring mit 1. Das heißt im Detail: Die Operationen + (mod m) und (mod m) führen nicht aus dem Bereich Z m heraus. Die Addition erfüllt alle Rechenregeln für Gruppen. Insbesondere hat jedes Element a ein additives Inverses a (beachte a = m a für 0 < a < m und 0 = 0). Die Multiplikation hat die 1 als neutrales Element und ist assoziativ; für Addition und Multiplikation gelten die Distributivgesetze. (Für weitere Details siehe Bemerkung A.1.) Lemma 5.3. Für jedes m 2 ist die Abbildung Z Z m, x x mod m, ein Homomorphismus; d. h. für x, y Z gilt: (i) (x + y) mod m = ((x mod m) + (y mod m)) mod m, (ii) (xy) mod m = ((x mod m)(y mod m)) mod m. Dieses Lemma wird hauptsächlich benutzt, um Rechnungen zu vereinfachen. Um einen arithmetischen Ausdruck auszuwerten (inklusive Potenzen), kann man auf beliebige Zwischenergebnisse die mod m-operation anwenden. 1

2 Beispiel: Um 13 7 mod 11 zu berechnen, rechnet man (13 mod 11) 7 mod 11 = (2 5 mod 11) 4 mod 11 = ( 1) 4 mod 11 = 7. Fakt 5.4. Für jedes m 2 gilt: x mod m = y mod m genau dann wenn x y durch m teilbar ist. Beispiel: 29 mod 12 = 53 mod 12 = 5 und = 24 ist durch 12 teilbar. Definition 5.5. (a) Für m, n Z, nicht beide gleich 0, sei ggt(m, n) die größte positive Zahl, die sowohl m als auch n teilt. (b) m, n Z, nicht beide gleich 0, heißen teilerfremd, wenn ggt(m, n) = 1 gilt, d. h. wenn keine Zahl > 1 beide teilt. Beispiel: (a) 21 und 25 sind teilerfremd. Es gilt ( 26) 25 = = 1. (b) Es gilt ggt(21, 35) = 7, und = 7. Es gibt einen effizienten Algorithmus zur Ermittlung des größten gemeinsamen Teilers: Algorithmus 5.1 (Euklidischer Algorithmus). Input: Zwei ganze Zahlen n und m. Methode: 1 a, b: integer; 2 if n m 3 then a n ; b m ; 4 else a m ; b n ; 5 while b > 0 repeat 6 (a, b) (b, a mod b); 7 return a. Fakt 5.6. Algorithmus 5.1 gibt ggt(n, m) > 0 aus, wenn n, m nicht beide 0 sind; wenn n = m = 0, ist die Ausgabe 0. Auf Eingabe n = 10534, m = ergibt sich der in Tab. 5.1 angegebene Ablauf. Die Zahlen a i und b i bezeichnen den Inhalt der Variablen a und b, nachdem die Schleife in Zeilen 5 6 i-mal ausgeführt worden ist. Die Ausgabe ist 46 = ggt(10534, 12742). Fakt 5.7. (a) Die Schleife in Zeilen 5 6 wird höchstens O(log(min{ n, m }))-mal ausgeführt. 2

3 i a i b i Tabelle 1: Ablauf des Euklidischen Algorithmus auf einem Beispiel (b) Die gesamte Anzahl von Bitoperationen für den Euklidischen Algorithmus ist O(log( n ) log( m )). Man beachte, dass log(n + 1) log n die Anzahl der Bits ist, die man braucht, um n aufzuschreiben. Damit hat der Euklidische Algorithmus bis auf einen konstanten Faktor denselben Aufwand wie die Multiplikation von n und m, wenn man die Schulmethode benutzt. Beispiel: (a) 21 und 25 sind teilerfremd. Es gilt ( 26) 25 = = 1. (b) Es gilt ggt(21, 35) = 7, und = 7. Die folgende nützliche Aussage verallgemeinert diese Beobachtung: Lemma 5.8 (( )... von Bezout). (a) Wenn m, n teilerfremd sind, gibt es x, y mit xm + yn = 1. (b) Für m, n Z, nicht beide gleich 0, gibt es x, y Z mit xm + yn = ggt(m, n). Die Koeffizienten x, y aus dem Lemma von Bezout kann man mit einer Erweiterung des Euklidischen Algorithmus sehr effizient berechnen. 3

4 Algorithmus 5.2 (Erweiterter Euklidischer Algorithmus). Eingabe: Ganze Zahlen n und m. Methode: 0 a, b, xa, ya, xb, yb, q: integer; 1 if n m 2 then a n ; b m ; 3 xa sign(n); ya 0; xb 0; yb sign(m); 4 else a m ; b n ; 5 xa 0; ya sign(m); xb sign(n); yb 0; 6 while b > 0 repeat 7 q a div b; 8 (a, b) (b, a q b); 9 (xa, ya, xb, yb) (xb, yb, xa q xb, ya q yb); 10 return (a, xa, ya); Im Algorithmus benutzen wir die Signumfunktion, die wie folgt definiert ist: 1, falls n > 0, sign(n) = 0, falls n = 0, 1, falls n < 0, die also erfüllt. (1) n = sign(n) n für alle n (2) Als Beispiel betrachten wir den Ablauf des Algorithmus auf der Eingabe (n, m) = (10534, 12742). Die Zahlen a i, b i, x a,i, y a,i, x b,i, y b,i bezeichnen den Inhalt von a, b,xa,ya,xb,yb nach dem i-ten Schleifendurchlauf. i a i b i x a,i y a,i x b,i y b,i q i

5 Die Ausgabe ist (46, 75, 62). Man überprüft leicht, dass gilt. Allgemein gilt: 46 = ggt(10534, 12742) = Fakt 5.9. (a) Wenn Algorithmus 5.2 auf Eingabe n, m, die nicht beide 0 sind, die Ausgabe (d, x, y) liefert, dann gilt d = ggt(n, m) = nx + my. (b) Die Anzahl der Schleifendurchläufe ist dieselbe wie beim gewöhnlichen Euklidischen Algorithmus. (c) Die Anzahl von Bitoperationen für Algorithmus 5.2 ist O(log( n ) log( m )). In jeder Struktur Z m spielen die Elemente, die ein multiplikatives Inverses haben, eine spezielle Rolle; sie erhalten eine spezielle Bezeichnung. Lemma 5.10 (( )). Für jedes m 2 und jedes a Z gilt: Es gibt ein b mit ab mod m = 1 genau dann wenn ggt(a, m) = 1. Beispiel: Aus ( 26) 25 = 1 folgt, dass 31 mod 25 = 6 ein multiplikatives Inverses zu 21 modulo 25 ist. Definition Für m 2 sei Z m := {a Z m ggt(a, m) = 1}. Fakt 5.12 (( )). Für jedes m 2 gilt: Z m mit der Multiplikation modulo m als Operation ist eine Gruppe. Beispiel: Z 21 = {1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19, 20} und Z 7 = {1, 2, 3, 4, 5, 6}. Am schönsten ist die Situation, wenn alle Zahlen < m in Z m liegen. Proposition 5.13 (( )). Für jedes m 2 gilt: m ist Primzahl Z m = {1,..., m 1} Z m ist ein Körper. Die zweite Äquivalenz ist dabei klar: Der Ring Z m ist nach Definition ein Körper genau dann wenn jedes Element von Z m {0} ein multiplikatives Inverses besitzt. Beispiel: Wir rechnen modulo 13 und geben für jedes a Z 13 das Inverse b sowie das Produkt a b an (das natürlich bei der Division durch 13 Rest 1 lassen muss). a b a b

6 14 ist keine Primzahl, und es gibt keine Zahl b mit 2 b mod 14 = 1; das heißt, dass 2 / Z 14 und daher, dass Z 14 kein Körper ist. Fakt 5.14 (Kleiner Satz von Fermat). Wenn m eine Primzahl ist, dann gilt: Beweis: Betrachte die Abbildung a m 1 mod m = 1, für jedes a Z m. g a : Z m x ax mod m Z m. Diese Abbildung ist injektiv, da für das zu a inverse Element b gilt: b g a (x) mod m = bax mod m = x. Also: Wir multiplizieren: {1,..., m 1} = {g a (1),..., g a (m 1)} (m 1) mod m = g a (1)... g a (m 1) mod m = a m 1 (1... (m 1)) mod m. Wenn wir beide Seiten mit dem Inversen von 1... (m 1) mod m multiplizieren, erhalten wir 1 = a m 1 mod m. Wir bemerken, dass auch die Umkehrung gilt: Wenn a m 1 mod m = 1 ist, d. h. a m 1 qm = 1 für ein q, dann folgt ggt(a, m) = 1. Wenn also a (Z m {0}) Z m, dann gilt auf jeden Fall a m 1 mod m 1. Ab hier soll p immer eine Primzahl bezeichnen. Normalerweise ist dabei p > 2, also p ungerade. 1 Wir notieren noch wesentliche Eigenschaften von teilerfremden Zahlen. Fakt 5.15 (( )). Wenn n und m teilerfremd sind, und sowohl m als auch n ist Teiler von a, dann ist nm Teiler von a. Sehr grundlegend ist folgende Aussage über teilerfremde Zahlenpaare (m, n), die im wesentlichen sagt, dass die Strukturen Z m Z n (mit komponentenweisen Operationen) und Z mn isomorph sind. Wir beginnen mit einem Beispiel, nämlich n = 3, m = 8, also nm = 24. Die folgende Tabelle gibt die Reste der Zahlen a {0, 1,..., 23} modulo 3 und modulo 8 an. Die Reste wiederholen sich zyklisch für andere a Z. 1 All primes are odd except 2, which is the oddest of all. (D. E. Knuth) 6

7 a a mod a mod a a mod a mod Wenn wir die Einträge in Zeilen 2 und 3 als 24 Paare in Z 3 Z 8 ansehen, erkennen wir, dass sie alle verschieden sind, also auch alle Möglichkeiten in {0, 1, 2} {0, 1,..., 7} abdecken. D. h.: Die Abbildung a (a mod 3, a mod 8) ist eine Bijektion zwischen Z 24 und Z 3 Z 8. Zudem spiegeln sich arithmetische Operationen auf den Elementen von Z 24 wieder in den Resten modulo 3 und 8. Beispielsweise liefert die Addition von (2, 7) und (2, 1) das Resultat (1, 0), das der Addition von 23 und 17 mit dem Resultat 40 = 16 mod 24 entspricht. Genauso ist (2 5 mod 3, 3 5 mod 8) = (2, 3), was der Beobachtung 11 5 mod 24 = 11 entspricht. Der Chinesische Restsatz sagt im wesentlichen, dass eine solche strukturelle Entsprechung zwischen den Resten modulo mn und Paaren von Resten modulo m, n immer gilt, wenn m und n teilerfremd sind. Fakt 5.16 (Chinesischer Restsatz). m und n seien teilerfremd. Dann ist die Abbildung Φ: Z nm x (x mod m, x mod n) Z m Z n bijektiv. Weiterhin: Wenn Φ(x) = (x 1, x 2 ) und Φ(y) = (y 1, y 2 ), dann gilt: (a) Φ(x + mn y) = (x 1 + m y 1, x 2 + n y 2 ); (b) Φ(x mn y) = (x 1 m y 1, x 2 n y 2 ); (c) Φ(x k mod (mn)) = ((x 1 ) k mod m, (x 2 ) k mod n), für k 0. (Dabei bezeichnen + j und j die Addition und die Multiplikation modulo j.) 7

8 Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr große Zahl sein (es kommt nur darauf an, dass ihre Binärdarstellung nicht so lang ist, dass sie nicht behandelbar ist): mod Wieso kann ein Computer das Ergebnis ( ) in Bruchteilen von Sekunden berechnen? Auf keinen Fall kann er n Multiplikationen durchführen. Algorithmus 5.3 (Schnelle modulare Exponentiation). Eingabe: Ganze Zahlen a, n 0, and m 1. Methode: 0 u, s, c: integer; 1 u n; 2 s a mod m; 3 c 1; 4 while u 1 repeat 5 if u ungerade then c (c s) mod m; 6 s s s mod m; 7 u u div 2; 8 return c; Hier ein Beispiel für den Ablauf: Dabei ist a = 2, n = 4321 Binärdarstellung b k... b 0 = ), m =

9 i s i b i c i = = = mod 101 = mod 101 = mod 101 = mod 101 = mod 101 = mod 101 = mod 101 = mod 101 = mod 101 = mod 101 = mod 101 = mod 101 = mod 101 = mod 101 = 89 Zeile 2 wird s mit a mod m = a 20 mod m initialisiert, und u mit n. Die Binärdarstellung von n soll b k... b 1 b 0 sein, mit b k = 1. In jedem Schleifendurchlauf wird u in Zeile 7 halbiert; wenn also Zeile 5 zum (i + 1)-sten Mal ausgeführt wird, enthält u die Zahl mit Binärdarstellung b k b k 1... b i. In Zeile 6 jedes Durchlaufs wird der Inhalt von s quadriert (modulo m); wenn also Zeile 5 zum (i + 1)-sten Mal ausgeführt wird, enthält s die Zahl s i = a 2i mod m. Das letzte Bit b i von u wird in Zeile 5 benutzt, um zu entscheiden, ob p mit s i multipliziert werden soll oder nicht. Mit vollständiger Induktion zeigt man, dass nach der i-ten Ausführung von Zeile 5 die Variable p die Zahl 0 j i, b j =1 a2j mod m enthält. Die Abarbeitung der Schleife hält, wenn u 0 geworden ist, was offenbar nach genau k + 1 Durchläufen der Fall ist. An dieser Stelle enthält p das gewünschte Ergebnis 0 j k, b j =1 a2j mod m = a n mod n. Lemma Die Berechnung von a n mod m benötigt O(log n) Multiplikationen und Divisionen modulo m von Zahlen aus dem Bereich {0,..., m 2 1}, und O((log n)(log m) 2 ) Bitoperationen. Bemerkung: Man kann denselben Algorithmus in einem beliebigen Monoid (Bereiche mit einer assoziativen Operation und einem neutralen Element) benutzen. Einen Monoid bilden zum Beispiel die natürlichen Zahlen mit der Multiplikation oder die Menge Σ über einem Alphabet Σ mit der Konkatenation. 9

10 5.2 Quadratische Reste und Quadratwurzeln modulo p Wir betrachten hier den Begriff des quadratischen Rests und der Quadratwurzeln modulo p, für Primzahlen p. Beispiel: Für p = 13 und p = 19 betrachten wir die Quadrate der Zahlen in Z p. a a a 2 mod a a 2 mod Wir bemerken, dass in beiden Fällen jede Zahl entweder keinmal oder zweimal als Quadrat vorkommt, dass infolgedessen genau 1 2 (p 1) Zahlen in Z p als Quadratzahlen auftauchen. Im Fall p = 13 ist 12 = 1 mod 13 eine Quadratzahl, im Fall p = 19 ist 18 = 1 mod 19 keine Quadratzahl. Es stellt sich die Frage, wie man zu gegebenem p und a ermitteln kann, ob a in Z p ein Quadrat ist (einfach, wenn man weiß, wie es geht) und wie man gegebenenfalls ein c mit c 2 mod p = a finden kann (eventuell nicht ganz so einfach). Bemerkung: In Z p spielt p 1 die Rolle von 1, dem additiven Inversen von 1. Definition Für eine ungerade Primzahl p sei QR p := {a Z p b Z p : b 2 mod p = a} die Menge der quadratischen Reste in Z p. Wir stellen einige auch für sich wichtige Hilfsaussagen bereit. Lemma Wenn p eine ungerade Primzahl ist, dann gilt b 2 mod p = 1, b Z p genau für b {1, 1} = {1, p 1}. Beweis: Offensichtlich gilt für jedes beliebige m 2, dass 1 2 mod m = und (m 1) 2 mod m = m(m + 2) + 1 mod m = 1 ist. Wenn b 2 mod p = 1, dann heißt das, dass im Körper Z p gilt: (b 1)(b + 1) = 0. Daher ist b 1 = 0 (also b = 1) oder b + 1 = 0 (also b = p 1). 10

11 Lemma Wenn p eine ungerade Primzahl ist und a QR p, dann gibt es genau zwei Zahlen b Z p mit b 2 mod p = a. Beweis: Nach Definition von QR p gibt es ein solches b. Dann gilt auch ( b) 2 mod p = b 2 mod p = a. Weil p ungerade ist, gilt b ( b) mod p = 2b mod p 0, also b b. Wenn c Z p beliebig ist mit b 2 mod p = a = c 2 mod p, dann ist (b 2 c 2 ) mod p = 0, also (b + c)(b c) mod p = 0. Das heißt: p teilt b c (dann ist b = c) oder p teilt b + c (dann ist b + c = p, also c = b). Das Polynom X 2 a kann im Körper Z p nicht mehr als zwei Nullstellen haben, also gibt es neben b und b keine weiteren Quadratwurzeln von a. Fakt Wenn p eine ungerade Primzahl ist und s 2, dann gilt: (a) Wenn d 1 ist, dann hat ein Polynom f(x) = X d + a d 1 X d a 1 X + a 0 in Z p höchstens d Nullstellen. (b) Für s 1 gibt es in Z p höchstens s Elemente b mit b s mod p = 1. Beweis: (a) Dies ist eine Tatsache, die in Körpern allgemein gilt. Man kann sich recht leicht überlegen, dass man für Nullstellen b 1,..., b k aus f(x) den Faktor (X b 1 ) (X b k ) ausklammern kann, d. h. f(x) = (X b 1 ) (X b k ) g(x) schreiben kann. Dann kann k nicht größer als der Grad d von f(x) sein. (b) Wenn b 1,..., b s+1 verschiedene Lösungen wären, hätte das Polynom X s 1 Grad s, aber > s Nullstellen, was (a) widerspricht. Die folgende Behauptung erlaubt es zu testen, ob a ein quadratischer Rest ist. Proposition 5.22 (( ) Eulersches Kriterium). Für jede ungerade Primzahl p und jedes a Z p gilt: (a) a (p 1)/2 mod p {1, 1}. (b) a QR p a (p 1)/2 mod p = 1. (Beweis in Anhang A.) Mit diesem Kriterium kann man mit einer schnellen Exponentiation testen, ob eine Zahl a quadratischer Rest modulo p ist oder nicht. Algorithmus 5.4 (Quadratzahltest). Input: Primzahl p, Zahl a mit 1 < a < p Methode: (1) Berechne z = a (p 1)/2 mod p; ( Schnelle Exponentiation ) (2) if z = 1 then return Quadrat else return Nichtquadrat. 11

12 Wir rechnen versuchsweise in Z 19, für 18 / QR 19 und 17 QR 19 : 18 9 mod 19 = ((( 1) 8 mod 19) 18) mod 19 = 18 1; 17 9 mod 19 = ((( 2) 8 mod 19) ( 2)) mod 19 = (256 ( 2)) mod 19 = (9 ( 2)) mod 19 = 1. Wir notieren eine leichte Folgerung aus dem Eulerschen Kriterium: Korollar Sei p eine ungerade Primzahl. Dann gilt: (a) Für a, b Z p und das Produkt c = ab mod p: a, b QR p c QR p ; a, b / QR p c QR p ; a QR p, b / QR p c / QR p. (b) Für a Z p und a 1 in Z p, das multiplikative Inverse von a: a QR p a 1 QR p. ((a) folgt durch Anwendung von Exponentiationsregeln und Proposition 5.22; (b) folgt aus a a 1 = 1 QR p und (a).) Wenn das so einfach geht kann man dann zu einer Quadratzahl a auch leicht eine Quadratwurzel b modulo p berechnen? Erstaunlicherweise gibt es hier zwei sehr verschiedene Fälle. Wir betrachten das Beispiel p = 19. Die Quadrate in Z p sind die 9 Zahlen 1, 4, 5, 6, 7, 9, 11, 16, 17. Wir berechnen a 5 mod 19 für diese Quadratzahlen: a b = a 5 mod b 2 mod Wir sehen: a 5 ist für jede der Quadratzahlen a eine Quadratwurzel. (Die andere ist natürlich dann (19 a 5 ) mod 19.) Dies ist kein Zufall. Die Zahl 5 ergibt sich aus p = 19 als 1 (p + 1). Diese Operation ist für alle Primzahlen möglich, die um 1 unter 4 einem Vielfachen von 4 liegen. Proposition Wenn p eine Primzahl ist derart, dass p + 1 durch 4 teilbar ist, dann ist für jedes a QR p die Zahl a (p+1)/4 mod p eine Quadratwurzel von a. 12

13 Beweis: ((a (p+1)/4 ) mod p) 2 mod p = (a (p+1)/2 ) mod p = (((a (p 1)/2 ) mod p) a) mod p = a, wobei wir Proposition 5.22(b) benutzt haben. Mit anderen Worten: Für die Primzahlen p {3, 7, 11, 19, 23, 31, 43, 47, 59,... } läuft das Ziehen von Quadratwurzeln auf eine schnelle Exponentiation mit Exponent 1 4 (p+ 1) hinaus. (Bitkomplexität O((log p) 3 ).) Wie steht es mit den anderen Primzahlen 5, 13, 17, 29, 37, 41, 53,...? Gibt es einen ähnlich effizienten Algorithmus zum Finden von Quadratwurzeln? Hier gibt es nochmals zwei Unterfälle. Wenn man leicht einen beliebigen quadratischen Nichtrest modulo p finden kann, dann kann man mit Hilfe eines deterministischen Algorithmus, der in Anhang B beschrieben ist, mit O((log p) 2 ) arithmetischen Operationen Quadratwurzeln finden. Dies ist der Fall, wenn p 5 durch 8 teilbar ist, weil dann stets 2 / QR p gilt (Ergebnis der Zahlentheorie im Zusammenhang mit dem Quadratischen Reziprozitätsgesetz ). Es bleiben die Primzahlen p, für die p 1 durch 8 teilbar ist, beispielsweise 17, 41, Interessanterweise kennt man für solche Primzahlen keinen deterministischen Algorithmus, der Quadratwurzeln modulo p berechnet und dazu Zeit (log p) O(1) braucht. Wir betrachten hier einen randomisierten Algorithmus für diese Aufgabe. Er funktioniert für alle Primzahlen der Form p, für die p 1 durch 4 teilbar ist. Idee: Gegeben ein a QR p, bezeichne eine Quadratwurzel von a mit. Die andere Quadratwurzel von a ist dann. Rechne mit (in Z p ) wie mit einer Unbekannten. Es entstehen Ausdrücke α + β, die man addieren, subtrahieren und multiplizieren kann. Höhere Potenzen von entstehen nicht, wenn 2 durch a ersetzt wird. Es gelten folgende Regeln: (α + β ) ± (γ + δ ) = (α ± γ) + (β ± δ) ; (3) (α + β ) (γ + δ ) = (αγ + βδ a) + (αδ + βγ). Wenn man diese Operationen implementieren will, stellt man ein Element α + β als (α, β) dar und rechnet wie in (3). Mit den in (3) angegebenen Operationen bildet die Menge der Paare (a, b) in Z p Z p einen Ring mit 1. Insbesondere besitzt die Multiplikation ein neutrales Element, nämlich (1, 0), und die Multiplikation ist kommutativ und assoziativ (prüft man leicht nach). Daher kann man das schnelle Exponentiationsverfahren anwenden, um symbolisch die Potenz (α + β ) i in log i Runden mit jeweils höchstens 10 Multiplikationen modulo p zu berechnen. Wesentlich ist die folgende Grundeigenschaft. Wenn man in der abstrakten Notation eine Gleichheit ausgerechnet hat, dann gilt sie für beide Wurzeln von a: 13

14 Wenn sich mit den Regeln von (3) (α + β ) i zu γ + δ berechnet und w 2 mod p = a ist, dann gilt (α + β w) i = γ + δ w. (Man setzt w für ein und verfolgt die symbolische Rechnung, aber nun in Z p.) Algorithmus 5.5 (Quadratwurzeln, randomisiert). Input: Primzahl p, wobei p 1 durch 4 teilbar ist; a {1,..., p 1} mit a (p 1)/2 mod p = 1. Methode: ( Finde b mit b 2 = a oder b 2 a / QR p : ) 1 repeat 2 b := Zufallszahl in {1,..., p 1}; 3 if b 2 mod p = a then return b; ( Glück gehabt! ) 4 until (b 2 a) (p 1)/2 mod p = p 1; ( b 2 a nicht-quadratischer Rest ) 5 (c + d ) (b + 1 ) (p 1)/2 ; 6 ( Schnelle Exponentiation mit Ausdrücken α + β, Regeln (3) ) 7 Berechne u = d 1 (im Körper Z p ); 8 ( Erweiterter Euklidischer Algorithmus ) 9 return {u, u}. Korrektheit: w sei eine Quadratwurzel von a, die andere ist dann w. Nach der obigen Vorüberlegung gilt (in Z p gerechnet), weil sowohl w 2 = a als auch ( w) 2 = a gilt: c + dw = (b + w) (p 1)/2 {1, 1} und (4) c dw = (b w) (p 1)/2 {1, 1}. Wir addieren diese beiden Gleichungen und erhalten: 2 c = (b + w) (p 1)/2 + (b w) (p 1)/2. (5) Andererseits ist (b 2 a) (p 1)/2 a = w 2 ein und erhalten = 1 (wegen Zeile 4 im Algorithmus). Wir setzen 1 = (b 2 w 2 ) (p 1)/2 = (b + w) (p 1)/2 (b w) (p 1)/2. Wegen (4) muss einer der Faktoren gleich 1 und der andere gleich 1 sein: {(b + w) (p 1)/2, (b w) (p 1)/2 } = {1, 1}. 14

15 Mit (5) folgt 2 c = 0, und damit c = 0, weil in Z p gilt, dass 2 = ist. Subtraktion der Gleichungen in (4) ergibt 2dw = (b + w) (p 1)/2 (b w) (p 1)/2. Die beiden Terme in der Differenz sind 1 und 1 (in irgendeiner Reihenfolge), also ist 2dw {2, 2}, oder (wieder weil 2 0): dw {1, 1}, d.h.: w {d 1, d 1 }, wobei das multiplikative Inverse in Z p berechnet wird. Weil nach der Ausgangssituation w und w die Quadratwurzeln von a sind, sind auf jeden Fall u = d 1 und u = d 1 diese Wurzeln. Rechenzeit: In der Laufzeit des Algorithmus gibt es drei entscheidende Komponenten: (i) Das Finden eines Elements b derart dass b Quadratwurzel von a (sehr unwahrscheinlich) oder b 2 a / QR p (ein nicht-quadratischer Rest ) ist; (ii) die Exponentiation zum Finden von (a+1 ) (p 1)/2 (die höchstens log p Schleifendurchläufe mit je höchstens 10 modularen Multiplikationen erfordert); (iii) der Aufwand für den erweiterten Euklidischen Algorithmus. Teile (ii) und (iii) haben Kosten, die einer festen Anzahl modularer Exponentiationen entspricht, also O(log p) Multiplikationen und Additionen. Für den ersten Teil ist zu überlegen, was die Dichte G p 1 = {b Z p b 2 = a b 2 a / QR p } p 1 der Menge G der guten Elemente in Z p ist. Behauptung: G = 1 (p + 3). 2 Beweis der Behauptung: Die Elemente w und w sind verschiedene und jedenfalls gute Elemente. Es geht also um die Anzahl der guten Elemente in der Menge ( Nicht- Wurzeln ) NW := Z p {w, w}. Wir definieren eine Funktion f : NW Z p durch f(b) := b + w b w (Arithmetik in Z p). Diese Funktion ist wohldefiniert, da b w, und sie nimmt den Wert 0 nicht an, da b w. Weiterhin wird der Wert 1 nicht angenommen (wenn b + w = b w, wäre 2w = 0, also w = 0), und der Wert 1 auch nicht (wenn b + w = (b w), wäre 15

16 2b = 0, also b = 0, was b Z p widerspricht). Also gilt: f : NW {2,..., p 2}. Man sieht leicht, dass f injektiv ist: b 1 + w b 1 w = b 2 + w b 2 w (b 1 + w)(b 2 w) = (b 2 + w)(b 1 w) b 1 b 2 wb 1 + wb 2 w 2 = b 1 b 2 + wb 1 wb 2 w 2 2w(b 2 b 1 ) = 0 b 1 = b 2, wobei wir 2 0 und w 0 benutzt haben. Aus der Injektivität folgt, dass f eine Bijektion zwischen NW und {2,..., p 2} ist. In der letzteren Menge gibt es (p 1)/2 2 quadratische Reste (weil 1 und p 1 quadratische Reste sind: (p 1)/2 ist gerade, daher ist ( 1) (p 1)/2 = 1), also p 3 ((p 1)/2 2) = (p 1)/2 nicht-quadratische Reste. Bleibt zu zeigen: b 2 a QR p b + w b w QR p. Das gilt, weil b 2 a = (b + w)(b w) ist, also (b + w)/(b w) = (b 2 a)/(b w) 2, und nach Korollar 5.23 die Menge der (nicht-)quadratischen Reste in Z p unter Division mit quadratischen Resten (hier (b w) 2 ) abgeschlossen ist. Wegen dieser Eigenschaft von f ist G = 2 + {u NW f(u) / QR p } = 2 + (p 1)/2 = (p + 3)/2. Damit ist die Behauptung bewiesen. Die Wahrscheinlichkeit, in Zeile 2 ein Element von G zu wählen, ist also (p + 3)/(2(p 1)) > 1. Damit ist die erwartete Anzahl 2 von Versuchen, bis ein geeignetes b gefunden wird, kleiner als 2. Bemerkung: Es gibt einen anderen randomisierten Algorithmus zur Ermittlung von Quadratwurzeln modulo p, der mit O((log p) 2 ) Multiplikationen modulo p (entsprechend einer logarithmischen Anzahl von schnellen Exponentiationen) auskommt. Dieser Algorithmus benutzt Randomisierung, um einen quadratischen Nichtrest zu finden; mit diesem Element wird dann deterministisch weiter gearbeitet. Siehe Anhang B. Bemerkung: Für Zahlen der Form n = p q für Primzahlen p, q ist kein effizienter Algorithmus zur Ermittlung von Quadratwurzeln modulo n bekannt (auch kein randomisierter!), wenn nur n und die Quadratzahl a (modulo n), nicht aber die Faktoren p und q Teil der Eingabe sind. 16

17 5.3 Der Miller-Rabin-Primzahltest In diesem Abschnitt lernen wir einen randomisierten Algorithmus kennen, der es erlaubt, zu einer gegebenen Zahl n zu entscheiden, ob n eine Primzahl ist oder nicht. Ein idealer Primzahltest sieht so aus: Eingabe: Eine natürliche Zahl n 3. Ausgabe: 0, falls n eine Primzahl ist; 1, falls n zusammengesetzt ist. Wozu braucht man Primzahltests? Zunächst ist die Frage Ist n eine Primzahl? eine grundlegende mathematisch interessante Fragestellung. Spätestens mit dem Siegeszug des RSA-Kryptosystems (siehe Vorlesung Public-Key-Kryptographie ) hat sich die Situation jedoch dahin entwickelt, dass man Algorithmen benötigt, die immer wieder neue vielziffrige Primzahlen (etwa mit Dezimalziffern bzw Bits) bereitstellen können. Den Kern dieser Primzahlerzeugungs-Verfahren (siehe Abschnitt 5.4) bildet ein Testverfahren, das eine gegebene Zahl n darauf testet, ob sie prim ist. In diesem Abschnitt beschreiben wir den randomisierten Primzahltest von Miller- Rabin. Dabei handelt es sich um einen Monte-Carlo-Algorithmus mit einseitigem Fehler. Das heißt: Auf Eingaben n, die Primzahlen sind, wird immer 0 ausgegeben; auf Eingaben n, die zusammengesetzt sind, gibt es eine gewisse (von n abhängige) Fehlerwahrscheinlichkeit. Der Miller-Rabin-Algorithmus hat Fehlerschranke 1. Wir beweisen nur die Fehlerschranke 1. Im Beweis benutzen wir einfache zahlentheoretische und gruppentheore- 4 2 tische Überlegungen. Eine zentrale Eigenschaft des Miller-Rabin-Tests ist seine Effizienz. Wir werden sehen, dass selbst bei Verwendung der Schulmethoden für Multiplikation und Division die Bitkomplexität des Primzahltests nur O((log n) 3 ) ist. Bemerkung: Der Miller-Rabin-Algorithmus stammt aus dem Jahr 1977; er folgte einem kurz vorher vorgestellten anderen randomisierten Primzahltest (Solovay- Strassen). Für diesen und andere randomisierte Primzahltests (z. B. Lucas-Lehmer) sei auf die Literatur verwiesen. Im Jahr 2002 stellten Agarwal, Kayal und Saxena einen deterministischen Algorithmus vor, der Primzahlen von zusammengesetzten Zahlen unterscheidet. Dieser Algorithmus stellte insofern einen gewaltigen Durchbruch dar, als er ein Jahrhunderte altes offenes Problem löste. Andererseits ist seine Laufzeit im Vergleich etwa zu dem hier diskutierten randomisierten Verfahren so hoch, dass nach wie vor die randomisierten Algorithmen benutzt werden, um für kryptographische Anwendungen Primzahlen zu erzeugen. 17

18 n n 1 mod n Tabelle 2: Primzahltest : Berechne 2 n 1 mod n Da gerade Zahlen leicht zu erkennen sind, beschränken wir im folgenden unsere Überlegungen auf ungerade Zahlen n Der Fermat-Test Wir rufen uns den kleinen Satz von Fermat (Fakt 5.14) ins Gedächtnis: n ist Primzahl und 1 a < n a n 1 mod n = 1. Wir können diese Aussage dazu benutzen, um Belege dafür zu finden, dass eine Zahl n zusammengesetzt ist: Wenn wir eine Zahl a mit 1 a < n finden mit a n 1 mod n 1, dann ist n definitiv keine Primzahl. Eine solche Zahl a nennen wir einen Fermat- Zeugen oder F-Zeugen für n (eigentlich genauer: einen F-Zeugen für die Tatsache, dass n keine Primzahl ist). Wir bemerken gleich, dass ein F-Zeuge belegt, dass es Faktoren k, l > 1 gibt mit n = k l, dass aber solche Faktoren nicht angegeben oder gefunden werden müssen. Dies wird von Primzahltests auch nicht geleistet. Nehmen wir zum Beispiel a = 2, berechnen also 2 n 1 mod n für einige n. (Mit schneller Exponentiation geht dies mit O((log n) 3 ) Bitoperationen.) Die Ergebnisse finden sich in Tabelle 2. Offensichtlich ist der Test ein sehr gutes Primzahlkriterium für ungerade Primzahlen n 39 erhalten wir 1, und für zusammengesetzte Zahlen n 39 erhalten wir ein Ergebnis 1. Man kann sich zudem leicht überlegen, dass 2 n 1 mod n für gerade n 4 niemals 1 sein kann (siehe Lemma 5.26). Mit etwas Geduld (oder einem einfachen Computerprogramm) prüft man nach, dass 2 für jede zusammengesetzte Zahl n 340 ein F-Zeuge ist. Es stellt sich aber heraus, dass für die zusammengesetzte Zahl 341 = gilt, dass mod 341 = 1 ist. Solange man nur den Wert mod 341 ansieht, erhält man keinen Hinweis darauf, dass 341 keine Primzahl sein könnte. Wir nennen daher 2 einen F-Lügner für 341, im Sinn der folgenden Definition. Definition Für eine ungerade zusammengesetzte Zahl n heißt ein a, 1 a n 1, ein F-Lügner, wenn a n 1 mod n = 1 ist. 18

19 Man sieht sofort, dass 1 und n 1 immer F-Lügner sind, weil 1 n 1 mod n = 1 und (n 1) n 1 ( 1) n 1 1 (mod n), weil n 1 gerade ist. Bei der Zahl 341 hilft es schon, a = 3 zu betrachten: es gilt mod 341 = 56, also ist 3 ein F-Zeuge für 341. Allgemein kann man sagen, dass es für jede zusammengesetzte Zahl n mindestens einen F-Zeugen geben muss. Dies geht aus der folgenden Umkehrung des kleinen Satzes von Fermat (Fakt 5.14) hervor. Lemma Sei n 2. (a) Wenn für 1 a < n und r 1 die Gleichung a r mod n = 1 erfüllt ist, dann ist a Z n. (b) Wenn a n 1 mod n = 1 für alle a, 1 a < n, dann ist n eine Primzahl. Beweis: (a) Wenn a r mod n = 1, dann ist a a r 1 mod n = 1, also a (a r 2 mod n) mod n = 1, also ist a Z n nach Lemma und Definition (b) Wenn a n 1 mod n = 1 für alle a, 1 a < n, gilt, dann folgt nach (a), dass Z n = {1,..., n 1}, also ist n eine Primzahl. Einige der F-Zeugen kann man direkt angeben: Wenn n keine Primzahl ist und ggt(n, a) > 1, dann ist a n 1 mod n 1. (Aus a n 1 x + ny = 1 folgt, dass a n 1 und n teilerfremd sind, also auch a und n.) Leider ist für manche zusammengesetzten Zahlen n die Menge {1,..., n 1} Z n = {a 1 a < n, gcd(a, n) > 1} äußerst dünn. Wenn zum Beispiel n = pq für zwei Primzahlen p und q ist, dann gilt gcd(a, n) > 1 genau dann wenn p oder q ein Teiler von a ist. Es gibt genau p + q 2 solche Zahlen a in {1,..., n 1}, was gegenüber n sehr klein ist wenn p und q annähernd gleich groß sind. Ein Beispiel: n = 91 = Tabelle 3 zeigt, dass es 18 Vielfache von 7 und 13 gibt (für größere p und q wird der Anteil dieser offensichtlichen F-Zeugen noch kleiner sein), und daneben weitere 36 F-Zeugen und 36 F-Lügner in {1, 2,..., 90}. In diesem Beispiel gibt es um einiges mehr F-Zeugen als F-Lügner. Wenn dies für alle zusammengesetzten Zahlen n der Fall wäre, wäre es eine elegante randomisierte Strategie, einfach zufällig nach F-Zeugen zu suchen. Dies führt zu unserem ersten Versuch für einen randomisierten Primzahltest. Algorithmus 5.6 (Fermat-Test). Input: Ungerade Zahl n 3. Method: 19

20 Vielfache von 7 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84 Vielfache von 13 13, 26, 39, 52, 65, 78 F-Zeugen in Z 91 2, 5, 6, 8, 11, 15, 18, 19, 20, 24, 31, 32, 33, 34, 37, 41, 44, 45, 46, 47, 50, 54, 57, 58, 59, 60, 67, 71, 72, 73, 76, 80, 83, 85, 86, 89 F-Lügner 1, 3, 4, 9, 10, 12, 16, 17, 22, 23, 25, 27, 29, 30, 36, 38, 40, 43, 48, 51, 53, 55, 61, 62, 64, 66, 68, 69, 74, 75, 79, 81, 82, 87, 88, 90 Tabelle 3: F-Zeugen und F-Lügner für n = 91 = Wähle a zufällig aus {2,..., n 2}; 2 if a n 1 mod n 1 3 then return 1; 4 else return 0. Die Laufzeitanalyse liegt auf der Hand: der teuerste Teil ist die Berechnung der Potenz a n 1 mod n durch schnelle Exponentiation, die nach den Ergebnissen von Lemma 5.17 O(log n) arithmetische Operationen und O((log n) 3 ) Bitoperationen benötigt. Weiter ist es klar, dass der Algorithmus einen F-Zeugen gefunden hat, wenn er 1 ausgibt, dass in diesem Fall also n zusammengesetzt sein muss. Umgekehrt ausgedrückt: Wenn n eine Primzahl ist, gibt der Fermat-Test garantiert 0 aus. Für n = 91 wird das falsche Ergebnis 0 ausgegeben, wenn einer der 34 F-Lügner a außer 1 und 90 gewählt wird. Die Wahrscheinlichkeit hierfür ist 34 = Ein einfaches Ergebnis aus der Gruppentheorie hat zur Folge, dass es für viele zusammengesetzte Zahlen n reichlich F-Zeugen gibt, so dass der Fermat-Test für diese n mit konstanter Wahrscheinlichkeit das korrekte Ergebnis liefern wird. Fakt Wenn G eine endliche Gruppe ist und H eine Untergruppe von G, dann ist H ein Teiler von G. Insbesondere: Wenn H echte Untergruppe von G ist, dann gilt H 1 2 G. (Der Beweis hierfür läuft etwa so: Die Äquivalenzrelation H, die durch a H b b 1 a H definiert ist, zerlegt die Menge G in Äquivalenzklassen ah = {ah h H}, 20

21 die sogenannten linken Nebenklassen. Die Anzahl G : H dieser Nebenklassen heißt der Index von H in G. Alle diese Nebenklassen haben die gleiche Kardinalität, weil für jedes a die Funktion H h ah ah eine Bijektion zwischen H und ah ist. Daraus folgt: G = H (G : H).) Hilfreich ist noch das folgende Untergruppenkriterium für endliche Gruppen. Fakt Wenn G eine endliche Gruppe mit neutralem Element 1 ist und A eine Teilmenge von G, derart dass (i) 1 A und (ii) A unter der Gruppenoperation G abgeschlossen ist, d. h., für a, b A gilt auch immer ab A, dann ist A eine Untergruppe von G. (Zum Beweis muss man sich nur überlegen, dass für jedes a A auch das Inverse a 1 in A liegt. Das sieht man so: Weil G endlich ist, können die Elemente 1 = a 0, a, a 2, a 3,... nicht alle verschieden sein. Also gibt es i < j mit a i = a j. Dann ist aber a j i = 1, also a a j i 1 = 1, und a j i 1 A wegen der Abgeschlossenheit.) Zurück zur Analyse des Fermat-Testes. Satz Wenn n 3 eine ungerade zusammengesetzte Zahl ist derart, dass es mindestens einen F-Zeugen a Z n gibt, dann liefert der Fermat-Test auf Eingabe n mit Wahrscheinlichkeit größer als 1 die korrekte Antwort 1. 2 Beweis: In Lemma 5.26(a) haben wir gesehen, dass die Menge L F n = {a 1 a < n, a n 1 mod n = 1} der F-Lügner für n eine Teilmenge von Z n ist. Wir zeigen, dass L F n sogar eine Untergruppe von Z n ist. Hierzu wenden wir Fakt 5.28 an: (i) 1 L F n, weil 1 n 1 = 1; (ii) L F n ist unter der Gruppenoperation in Z n abgeschlossen, nämlich der Multiplikation modulo n, denn wenn a n 1 mod n = 1 und b n 1 mod n = 1, folgt (ab) n 1 a n 1 b n (mod n). 21

22 Aus der Annahme, dass es in Z n mindestens einen F-Zeugen gibt, erhalten wir, dass L F n eine echte Untergruppe von Z n ist. Mit Fakt 5.27 folgt: L F n (ϕ(n) 1)/2 (n 2)/2. Daher ist die Wahrscheinlichkeit, dass ein aus {2,..., n 2} zufällig gewähltes a in L F n {1, n 1} liegt, höchstens (n 2)/2 2 n 3 = n 6 2(n 3) < 1 2, (6) wie gewünscht. Wie üblich verringern wir die Fehlerwahrscheinlichkeit durch Wiederholung. Algorithmus 5.7 (Iterierter Fermat-Test). Eingabe: Ungerade Zahl n 3, eine Zahl l 1. Methode: 1 repeat l times 2 a ein zufälliges Element von {2,..., n 2}; 3 if a n 1 mod n 1 then return 1; 4 return 0. Wenn die Ausgabe 1 ist, hat der Algorithmus einen F-Zeugen für n gefunden, also ist n zusammengesetzt. D. h.: Wenn n eine Primzahl ist, ist die Ausgabe 0. Andererseits: Wenn n zusammengesetzt ist, und es mindestens einen F-Zeugen a Z n gibt, dann ist nach Satz 5.29 die Wahrscheinlichkeit für die falsche Ausgabe 0 höchstens ( 1 l 2) = 2 l. Indem wir l genügend groß wählen, können wir die Fehlerwahrscheinlichkeit so klein wie gewünscht einstellen. Wenn es darum geht, zufällig gewählte Zahlen darauf zu testen, ob es sich um eine Primzahl handelt, dann ist der Fermat-Test eine sehr effiziente und zuverlässige Methode. Wir kommen darauf im folgenden Abschnitt nochmals zurück. Wenn man allerdings über die Herkunft der zu testenden Zahl n keine Information hat und eventuell damit rechnen muss, dass jemand (ein Gegenspieler ) absichtlich eine besonders schwierige Eingabe vorlegt, dann stößt der Fermat-Test an eine Grenze. Es gibt nämlich widerspenstige zusammengesetzte Zahlen, denen man mit diesem Test nicht beikommen kann, weil alle Elemente von Z n F-Lügner sind. Definition Eine ungerade zusammengesetzte Zahl n heißt eine Carmichael-Zahl, wenn a n 1 mod n = 1 für alle a Z n gilt. 22

23 Die kleinste Carmichael-Zahl ist 561 = Weitere kleine Carmichael-Zahlen sind 1105 = und 1729 = Erst im Jahr 1994 wurde bewiesen, dass es unendlich viele Carmichael-Zahlen gibt, genauer: wenn x genügend groß ist, dann gibt es in {n n x} mehr als x 2/7 Carmichael-Zahlen. Genaueres ist über den Anteil von Carmichael-Zahlen an den zusammengesetzten Zahlen nicht bekannt. (Alles deutet darauf hin, dass sie eher selten sind.) Wenn wir dem Fermat-Test eine Carmichael-Zahl n als Eingabe geben, ist die Wahrscheinlichkeit für die falsche Antwort 0 genau ϕ(n) 2 ϕ(n) n 3 n = ( 1 1 ). p p prim p teilt n Diese Wahrscheinlichkeit liegt nahe an 1, wenn n nur wenige und relativ große Primfaktoren hat. An solchen Carmichael-Zahlen besteht etwa im Bereich der Zahlen im Bereich [10 15, ] kein Mangel, wie ein Blick in entsprechende Tabellen zeigt. Zum Beispiel ist n = = eine Carmichael-Zahl mit ϕ(n)/n > Der Wiederholungstrick zur Wahrscheinlichkeitsverbesserung hilft hier leider auch nicht, denn wenn etwa p 0 der kleinste Primfaktor von n ist, und n nur 3 oder 4 Faktoren hat, dann sind Ω(p 0 ) Wiederholungen nötig, um die Fehlerwahrscheinlichkeit auf 1 2 zu drücken. Sobald p 0 mehr als 20 Dezimalstellen hat, ist dies undurchführbar. Für einen zuverlässigen, effizienten Primzahltest, der für alle Eingabezahlen funktioniert, müssen wir über den Fermat-Test hinausgehen. Interessanterweise ist dies praktisch ohne Effizienzverlust möglich. Wir stellen gleich eine Hilfsaussage über Carmichael-Zahlen bereit. Lemma Wenn n eine Carmichael-Zahl ist, dann ist n keine Primzahlpotenz. Beweis: Wir beweisen die Kontraposition: Wenn n = p l für eine ungerade Primzahl p und einen Exponenten l 2 ist, dann ist n keine Carmichaelzahl. Dazu genügt es, eine Zahl a Z n anzugeben, so dass a n 1 mod n 1 ist. Wir definieren: a := p l (Wenn z. B. p = 7 und l = 3 ist, ist n = 343 und a = = 50.) Man sieht sofort, dass a < p l = n ist, und dass a nicht von p geteilt wird, also a und n teilerfremd 23

24 sind; also ist a Z n. Nun rechnen wir modulo n, mit der binomischen Formel: a n 1 (p l 1 + 1) n 1 ( ) n 1 (p l 1 ) j (7) j 0 j n (p l 1)(p l 1 ) (mod n). (Die letzte Äquivalenz ergibt sich daraus, dass für j 2 gilt, dass (l 1)j l ist, also der Faktor (p l 1 ) j = p (l 1)j durch n = p l teilbar ist, also modulo n wegfällt.) Nun ist p l 1 nicht durch p teilbar, also ist (p l 1)(p l 1 ) nicht durch n = p l teilbar. Damit folgt aus (7), dass a n 1 1 (mod n) ist, also a n 1 mod n 1. Folgerung: Jede Carmichael-Zahl n lässt sich als n = n 1 n 2 schreiben, wo n 1 und n 2 teilerfremde ungerade Zahlen 3 sind. (Eine etwas genauere Untersuchung, die wir hier aber nicht benötigen, ergibt, dass die Primfaktoren einer Carmichael-Zahl n alle verschieden sein müssen, und dass n mindestens drei Primfaktoren haben muss. An dieser Tatsache sieht man schon, dass die Carmichael-Zahlen eher selten sind.) Nichttriviale Quadratwurzeln der 1 Aus Abschnitt 5.2, Lemma 5.19 wissen wir, dass für jede Primzahl p gilt: b 2 mod p = 1 b {1, p 1}. Diese Eigenschaft lässt sich in ein weiteres Zertifikat für zusammengesetzte Zahlen ummünzen: Wenn a 2 mod n = 1, aber a / {1, n 1}, dann ist n zusammengesetzt. Zahlen a mit a 2 mod n = 1, aber a / {1, n 1} heißen nichttriviale Quadratwurzeln der 1 modulo n. Beispielsweise sind alle Quadratwurzeln der 1 modulo 91 die Zahlen 1, 27, 64, and 90, davon sind 27 und 64 nichttrivial. Allgemeiner sieht man mit der Verallgemeinerung von Fakt 5.16 (Chinesischer Restsatz) auf r Faktoren leicht ein, dass es für ein Produkt n = p 1 p r aus verschiedenen ungeraden Primzahlen p 1,..., p r genau 2 r Quadratwurzeln der 1 modulo n gibt, nämlich die Zahlen a, 0 a < n, die a mod p j {1, p j 1}, 1 j r, erfüllen. Wenn n nicht sehr viele verschiedene Primfaktoren hat, ist es also aussichtslos, einfach zufällig gewählte a s darauf zu testen, ob sie vielleicht nichttriviale Quadratwurzeln der 1 sind. 24

25 a b 0 = a 81 b 1 = a 162 b 2 = a Tabelle 4: Potenzen a n 1 mod n mit Zwischenschritten, n = Der Miller-Rabin-Test Wir gehen zum Fermat-Test zurück, und sehen uns die dort durchgeführte Exponentiation a n 1 mod n etwas genauer an. Die Zahl n 1 ist gerade, daher kann man sie als n 1 = u 2 k schreiben, für eine ungerade Zahl u und ein k 1. Also gilt a n 1 ((a u ) mod n) 2k mod n, und wir können a n 1 mod n mit k + 1 Zwischenschritten berechnen: Mit b 0 = a u mod n; b i = (b 2 i 1) mod n, für i = 1,..., k, ist b k = a n 1 mod n. Beispielsweise erhalten wir für n = 325 = den Wert n 1 = 324 = In Tabelle 4 berechnen wir a 81, a 162 und a 324, alle modulo 325, für verschiedene a. Wir sehen, dass 2 ein F-Zeuge für 325 ist, der in Z 325 liegt, und dass 65 ein F-Zeuge ist, der nicht in Z 325 liegt. Dagegen sind 7, 32, 49, 126, 201 und 224 alles F-Lügner für 325. Wenn wir aber mod 325 mit zwei Zwischenschritten berechnen, dann entdecken wir, dass 51 eine nichttriviale Quadratwurzel der 1 ist, was beweist, dass 325 keine Primzahl ist. Ähnlich liefert die Berechnung mit Basis 224, dass 274 eine nichttriviale Quadratwurzel der 1 ist. Die entsprechenden Berechnungen mit 7, 32, or 49 dagegen liefern keine weiteren Informationen, weil (mod 325) und (mod 325). Auch die Berechnung der Potenzen von 126 liefert keine nichttriviale Quadratwurzel der 1, weil mod 325 = 1. 25

26 b 0 b 1 b k 1 b k Fall a n b n b n Tabelle 5: Potenzen a n 1 mod n berechnet mit Zwischenschritten, mögliche Fälle. Wie kann die Folge b 0,..., b k überhaupt aussehen? Wenn b i = 1 or b i = n 1, dann sind b i+1,..., b k alle gleich 1. Daher beginnt die Folge b 0,..., b k mit einer (eventuell leeren) Folge von Elementen / {1, n 1} und endet mit einer (eventuell leeren) Folge von 1en. Diese beiden Teile können von einem Eintrag n 1 getrennt sein, müssen aber nicht. Alle möglichen Muster sind in Tabelle 5 angegeben. Dabei steht für ein Element / {1, n 1}. Wir erkennen 4 Fälle: Fall 1a: b 0 = 1. Fall 1b: b 0 1, und es gibt ein i k 1 mit b i = n 1. In den Fällen 1a und 1b gilt sicher b k = 1; weder der kleine Satz von Fermat noch das Quadratwurzel-Kriterium liefern Information darüber, dass n keine Primzahl sein könnte. Fall 2: b k 1. Dann ist n zusammengesetzt, weil a ein F-Zeuge für n ist. Fall 3: b 0 1, aber b k = 1, und n 1 taucht in der Folge b 0,..., b k 1 nicht auf. Man betrachte das kleinste i 1 mit b i = 1. Dann ist b i 1 / {1, n 1}, aber b 2 i 1 mod n = 1, also ist b i 1 eine nichttriviale Quadratwurzel der 1 modulo n. Daher kann n keine Primzahl sein. In den Fällen 2 und 3 stellt das Element a einen Beleg dafür dar, dass n keine Primzahl ist. Wir kombinieren Fälle 2 und 3: b 0 1 und n 1 erscheint nicht in der Folge b 0,..., b k 1. Achtung: das letzte Folgenglied b k ist hier weggelassen. Es wird (interessanterweise) in dieser Formulierung irrelevant. 26

27 Wir definieren: Definition Sei n 3 ungerade. Wir schreiben n 1 = u 2 k, für u ungerade, k 1. Eine Zahl a, 1 a < n, heißt ein A-Zeuge für n, wenn a u mod n 1 und a u 2i mod n n 1 für alle i, 0 i < k. Wenn n zusammengesetzt ist und a ist kein A-Zeuge für n, dann heißt a ein A-Lügner für n. Lemma Wenn es einen A-Zeugen a für n gibt, dann ist n zusammengesetzt. Beweis: Wenn a ein A-Zeuge für n ist, dann trifft auf die Folge b i = a u 2i mod n, 0 i k, einer der Fälle 2 und 3 zu, also muss n zusammengesetzt sein. Wir kombinieren diese Beobachtung mit der Idee des Fermat-Tests, ein a aus {2,..., n 2} zufällig zu wählen, und erhalten so eine verbesserte Version dieses Tests. Historisch hat schon der russische Mathematiker M. Artjuhov 1966 vorgeschlagen, die Folge b i = a u 2i mod n, 0 i k, in einem Primzahltest für n zu benutzen. Im Jahr 1976 stellte G. M. Miller (amerikanischer Informatiker) einen deterministischen Algorithmus vor, der auf dieser Idee beruhte. Er testete die kleinsten O((log n) 2 ) Elemente a {2, 3,..., n 1} auf die Eigenschaft, A-Zeugen zu sein. Der Algorithmus hat polynomielle Laufzeit und liefert das korrekte Ergebnis, wenn die erweiterte Riemannsche Vermutung (ERH) stimmt, eine berühmte Vermutung aus der Zahlentheorie, die bis heute unbewiesen ist. Um 1980 schlug M. Rabin (israelischer Informatiker) und unabhängig Monier vor, Millers Algorithmus so zu modifizieren, dass die zu testende Zahl a zufällig gewählt wird, und bewies, dass dieser Algorithmus konstante Fehlerwahrscheinlichkeit haben wird. Es folgt die randomisierte Version des Tests von Miller, der auf dem Ansatz beruht, A(rtjuhov)-Zeugen zu suchen. Dieser Algorithmus heißt heute allgemein der Miller-Rabin-Test. Algorithmus 5.8 (Der Miller-Rabin-Primzahltest). Eingabe: Eine ungerade Zahl n 3. Methode: 1 Bestimme u ungerade und k 1 mit n 1 = u 2 k ; 2 wähle zufällig ein a aus {2,..., n 2}; 3 b a u mod n; ( mit schnellem Potenzieren ) 4 if b {1, n 1} then return 0; 5 for j from 1 to k 1 do ( wiederhole (k 1)-mal ) 6 b b 2 mod n; 7 if b = n 1 then return 0; 8 if b = 1 then return 1; 9 return 1. 27

28 Wie steht es mit der Laufzeit des Algorithmus? Man benötigt höchstens log n Divisionen durch 2, um u und k zu finden. (Zeile 1). (Wenn man benutzt, dass n normalerweise in Binärdarstellung gegeben sein wird, ist die Sache noch einfacher: k ist die Zahl der Nullen, mit der die Binärdarstellung von n 1 aufhört, u ist die Zahl, die durch den Binärstring ohne diese letzten Nullen dargestellt wird.) Die Berechnung von a u mod n mit schneller Exponentiation 3 benötigt O(log n) arithmetische Operationen und O((log n) 3 ) Bitoperationen (mit der Schulmethode für Multiplikation und Division). Die Schleife in Zeilen 5 8 wird höchstens k-mal durchlaufen; offenbar ist k log n. In jedem Durchlauf ist die Multiplikation modulo n die teuerste Operation. Insgesamt benutzt der Algorithmus O(log n) arithmetische Operationen und O((log n) 3 ) Bitoperationen. Wenn man die Laufzeit mit dem Fermat-Test vergleicht, und dazu die Details der schnellen Exponentiation ansieht, stellt man fest, dass die Multiplikationen modulo n in beiden Fällen exakt gleich aussehen, nur dass beim Miller-Rabin-Test unterwegs noch Zwischenergebnisse darauf getestet werden, ob sie gleich 1 oder gleich n 1 sind dies verursacht kaum Mehraufwand. Nun wenden wir uns dem Ein-/Ausgabeverhalten des Miller-Rabin-Tests zu. Lemma Wenn der Miller-Rabin-Test auf Eingabe n Ausgabe 1 liefert, dann ist n zusammengesetzt. Beweis: Sei a das Element von {2,..., n 2}, das im Algorithmus gewählt wird. Die Ausgabe sei 1. Wir zeigen, dass a ein A-Zeuge für n ist. (Dann wenden wir Lemma 5.33 an.) Wir betrachten die Folge b i = a u 2i mod n, 0 i k, wie oben. In Zeile 3 wird die Variable b mit b 0 initialisiert, und nachher wechselt der Inhalt von b von b i 1 = a u 2i 1 mod n auf b i = a u 2i mod n, wenn Zeile 6 zum i-ten Mal durchlaufen wird. Es gibt zwei Möglichkeiten, wie die Ausgabe 1 zustandekommmen kann. Fall (a): Es gibt ein i, 1 i k 1, so beim i-ten Durchlauf durch Zeile 7 der Algorithmus findet, dass b i = 1 ist. Wegen des Tests in Zeile 4 und der Tests in Zeilen 7 und 8, die (eventuell) im vorherigen Schleifendurchlauf durchgeführt wurden, wissen wir, dass b 0,..., b i 1 / {1, n 1}. Daher enthält b 0,..., b k 1 die Zahl n 1 nicht, also ist a ein A-Zeuge. Fall (b): Zeile 9 wird ausgeführt. Wegen des Tests in Zeile 4 und der Tests in Zeilen 8 und 9, die in jedem Schleifendurchlauf ausgeführt wurden, kommen 1 und n 1 in der Folge b 0,..., b k 1 nicht vor. Daher ist a ein A-Zeuge. 28

29 5.3.4 Fehlerschranke für den Miller-Rabin-Test Wir müssen nun noch das Verhalten des Miller-Rabin-Tests für den Fall analysieren, dass n eine zusammengesetzte (ungerade) Zahl ist. Wir beweisen, dass die Wahrscheinlichkeit, dass der Miller-Rabin-Test die (unerwünschte) Antwort 0 gibt, kleiner als 1 ist. Dazu wollen wir ähnlich vorgehen wie bei 2 der Analyse des Fermat-Tests für Nicht-Carmichael-Zahlen (Beweis von Satz 5.29). Dort haben wir gezeigt, dass die F-Lügner für solche n eine echte Untergruppe von Z n bilden. Hier ist es etwas schwieriger, weil die A-Lügner keine Untergruppe von Z n bilden müssen. Dies beheben wir dadurch, dass wir eine echte Untergruppe Bn A von Z n finden, die alle A-Lügner enthält. Wenn n keine Carmichael-Zahl ist, ist dies leicht. Lemma L A n L F n. Beweis: Sei a ein A-Lügner für n. Wenn a u mod n = 1 ist, ist erst recht a n 1 mod n = (a u ) 2k mod n = 1. Wenn (a u ) 2i mod n = n 1 ist für ein i mit 0 i < k, so ist a n 1 mod n = (n 1) 2k i mod n = 1, weil 2 k i eine gerade Zahl ist. Sei nun n ungerade, zusammengesetzt und keine Carmichael-Zahl. Aus Lemma 5.35 schließen genau wie im Beweis von Satz 5.29, dass der Anteil von A-Lügnern in {2,..., n 2} kleiner als 1 2 ist. Es bleibt der Fall, dass n eine Carmichael-Zahl ist. Wir definieren eine Menge Bn A. Sei i 0 das größte i 0 mit der Eigenschaft, dass es einen A-Lügner a 0 mit a u 2i 0 mod n = n 1 gibt. (Wir werden dieses a 0 weiter unten nochmals benutzen.) Weil u ungerade ist, gilt (n 1) u ( 1) u 1 (mod n), also gibt es ein solches i. Weil n eine Carmichael-Zahl ist, gilt a u 2k mod n = a n 1 mod n = 1 für alle a Z n, und daher 0 i 0 < k. Wir definieren: B A n = {a Z n a u 2i 0 mod n {1, n 1} }, (8) und zeigen, dass diese Menge die gewünschten Eigenschaften hat. Lemma (a) L A n B A n. (b) B A n ist Untergruppe von Z n. (c) Z n B A n. 29

5 Randomisierte Algorithmen für Probleme aus der Zahlentheorie

5 Randomisierte Algorithmen für Probleme aus der Zahlentheorie Stand: 03.02.2014 Vorlesung Randomisierte Algorithmen Dietzfelbinger 5 Randomisierte Algorithmen für Probleme aus der Zahlentheorie Zu Aussagen, die mit ( ) markiert sind, gibt es Beweise oder Anmerkungen

Mehr

5 Randomisierte Algorithmen für Probleme aus der Zahlentheorie

5 Randomisierte Algorithmen für Probleme aus der Zahlentheorie Stand: 29.12.2012 Vorlesung Randomisierte Algorithmen Dietzfelbinger 5 Randomisierte Algorithmen für Probleme aus der Zahlentheorie Zu Aussagen, die mit ( ) markiert sind, gibt es Beweise oder Anmerkungen

Mehr

Bsp: Die kleinsten Carmichael-Zahlen sind 561, 1105, 1729, Es gibt unendlich viele Carmichael-Zahlen (Beweis 1994).

Bsp: Die kleinsten Carmichael-Zahlen sind 561, 1105, 1729, Es gibt unendlich viele Carmichael-Zahlen (Beweis 1994). Primzahltest Wir wollen testen, ob eine gegebene Zahl n eine Primzahl ist Effizienter Algorithmus zum Faktorisieren ist unbekannt Kontraposition des Kleinen Satzes von Fermat liefert: Falls a n 1 1 mod

Mehr

Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein.

Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein. Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein. 3 1384788374932954500363985493554603584759389 mod 28374618732464817362847326847331872341234 Wieso kann ein

Mehr

Kryptographische Protokolle

Kryptographische Protokolle Kryptographische Protokolle Lerneinheit 2: Generierung von Primzahlen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2018/2019 15.11.2018 Einleitung Einleitung Diese Lerneinheit

Mehr

Algorithmische Kryptographie

Algorithmische Kryptographie Algorithmische Kryptographie Walter Unger Lehrstuhl für Informatik I 16. Februar 2007 Public-Key-Systeme: Rabin 1 Das System nach Rabin 2 Grundlagen Körper Endliche Körper F(q) Definitionen Quadratwurzel

Mehr

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

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

3: Primzahlen. 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen

3: Primzahlen. 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen 3: Primzahlen 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen Definition 40 (Teiler, Vielfache, Primzahlen, zusammengesetzte Zahlen) Seien a, b N. a ist ein Teiler von b ( a b ), falls es ein k N gibt

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

Miller-Rabin Test. Primzahl- und Zerlegbarkeitstests. Zeugen für die Zerlegbarkeit ganzer Zahlen

Miller-Rabin Test. Primzahl- und Zerlegbarkeitstests. Zeugen für die Zerlegbarkeit ganzer Zahlen Miller-Rabin Test Primzahl- und Zerlegbarkeitstests Sei N eine positive ganze Zahl. Wie kann man möglichst effizient feststellen, ob N eine Primzahl oder zerlegbar ist? Dies ist die Aufgabe von Primzahlund

Mehr

Kapitel 2. Elementare Zahlentheorie Primfaktorzerlegung

Kapitel 2. Elementare Zahlentheorie Primfaktorzerlegung Kapitel 2. Elementare Zahlentheorie 2.1. Primfaktorzerlegung Menge der ganzen Zahlen Z = {..., 3, 2, 1, 0, 1, 2, 3,...} Addition Inverse Multiplikation Z Z Z, Z Z, Z Z Z, (a, b) a + b a a (a, b) a b Ausgezeichnete

Mehr

Beispiel für simultane Kongruenz

Beispiel für simultane Kongruenz Beispiel für simultane Kongruenz Jetzt wollen wir das Lemma der letzten Einheit anwenden. Wenn man eine Zahl sucht, die kongruent zu y modulo m und kongruent zu z modulo n ist, so nehme man zam + ybn wobei

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

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

Miller-Rabin Test. Primzahl- und Zerlegbarkeitstests. Zeugen für die Zerlegbarkeit ganzer Zahlen

Miller-Rabin Test. Primzahl- und Zerlegbarkeitstests. Zeugen für die Zerlegbarkeit ganzer Zahlen Miller-Rabin Test Primzahl- und Zerlegbarkeitstests Sei N eine positive ganze Zahl. Wie kann man möglichst effizient feststellen, ob N eine Primzahl oder zerlegbar ist? Dies ist die Aufgabe von Primzahlund

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

Klausurtermin. Klausur Diskrete Mathematik I Do stündig

Klausurtermin. Klausur Diskrete Mathematik I Do stündig Klausurtermin Klausur Diskrete Mathematik I Do. 28.02.2008 3-stündig 07.12.2007 1 Wiederholung Komplexität modularer Arithmetik Addition: O(n) Multiplikation: O(n 2 ) bzw. O(n log 2 3 ) Exponentiation:

Mehr

ggt mit Euklid Satz: Um ggt(k, l) mit dem Euklidischen Algorithmus zu berechnen, braucht man höchstens log Φ k < 3 2 log 2 k rekursive Aufrufe.

ggt mit Euklid Satz: Um ggt(k, l) mit dem Euklidischen Algorithmus zu berechnen, braucht man höchstens log Φ k < 3 2 log 2 k rekursive Aufrufe. ggt mit Euklid Satz: Um ggt(k, l) mit dem Euklidischen Algorithmus zu berechnen, braucht man höchstens log Φ k < 3 2 log 2 k rekursive Aufrufe. Das heißt, um den ggt von zwei 1000-Bit-Zahlen zu ermitteln,

Mehr

Mathematisches Institut II Universität Karlsruhe Priv.-Doz. Dr. N. Grinberg

Mathematisches Institut II Universität Karlsruhe Priv.-Doz. Dr. N. Grinberg 1 Mathematisches Institut II 06.07.004 Universität Karlsruhe Priv.-Doz. Dr. N. Grinberg SS 05 Schnupperkurs: Ausgewählte Methoden zur Aufgabenlösung Vorlesung 5: Elementare Zahlentheorie: Teilbarkeit Primfaktorzerlegung

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

Wiederholung. Gruppen. Untergruppen. Gruppenisomorphismen. Ordnung: Gruppe, Element Satz von Euler: a ord(g) = 1 Elementordung teilt Gruppenordnung

Wiederholung. Gruppen. Untergruppen. Gruppenisomorphismen. Ordnung: Gruppe, Element Satz von Euler: a ord(g) = 1 Elementordung teilt Gruppenordnung Wiederholung Gruppen Ordnung: Gruppe, Element Satz von Euler: a ord(g) = 1 Elementordung teilt Gruppenordnung Untergruppen Satz von Lagrange Untergruppenordnung teilt Gruppenordnung Nebenklassen von Untergruppen

Mehr

Lösungen der Aufgaben

Lösungen der Aufgaben Lösungen der Aufgaben Aufgabe 1.3.1 Es gibt 42 mögliche Verschlüsselungen. Aufgabe 2.3.4 Ergebnisse sind 0, 4 und 4 1 = 4. Aufgabe 2.3.6 Da in Z 9 10 = 1 ist, erhalten wir x = c 0 + + c m = c 0 + + c m.

Mehr

Die Ringe Z n. Invertierbare Elemente ( Einheiten ) für n > 0 wird auf Z n = {0, 1, 2,..., n 1} definiert: n : Z n Z n Z n : (a, b) (a b) mod n

Die Ringe Z n. Invertierbare Elemente ( Einheiten ) für n > 0 wird auf Z n = {0, 1, 2,..., n 1} definiert: n : Z n Z n Z n : (a, b) (a b) mod n Definitionen Die Ringe Z n für n > 0 wird auf Z n = {0, 1, 2,..., n 1} definiert: Beispiel n = 15 + n : Z n Z n Z n : (a, b) (a + b) mod n n : Z n Z n Z n : (a, b) (a b) mod n 9 + 15 11 = 5 9 15 11 = 9

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

Fakultät für Informatik und Automatisierung, Technische Universität Ilmenau. Über Polynome mit Arithmetik modulo m.

Fakultät für Informatik und Automatisierung, Technische Universität Ilmenau. Über Polynome mit Arithmetik modulo m. 19 Fingerprinting Martin Dietzfelbinger Fakultät für Informatik und Automatisierung, Technische Universität Ilmenau Anhang: Über Polynome mit Arithmetik modulo m Dieser Abschnitt ergänzt Kapitel 19 Fingerprinting

Mehr

3 Public-Key-Kryptosysteme

3 Public-Key-Kryptosysteme Stand: 05.11.2013 Vorlesung Grundlagen und Methoden der Kryptographie Dietzfelbinger 3 Public-Key-Kryptosysteme 3.1 Verschlüsselung von Nachrichten Wir betrachten ganz einfache Kommunikationsszenarien.

Mehr

Kapitel 3 Elementare Zahletheorie

Kapitel 3 Elementare Zahletheorie Kapitel 3 Elementare Zahletheorie 89 Kapitel 3.1 Ganze Zahlen, Gruppen und Ringe 90 Die ganzen Zahlen Menge der ganzen Zahlen Z={..., 3, 2, 1,0,1,2,3,...} Es gibt zwei Operationen Addition: Z Z Z, (a,b)

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

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

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

Lineare Algebra I 5. Tutorium Die Restklassenringe /n

Lineare Algebra I 5. Tutorium Die Restklassenringe /n Lineare Algebra I 5. Tutorium Die Restklassenringe /n Fachbereich Mathematik WS 2010/2011 Prof. Dr. Kollross 19. November 2010 Dr. Le Roux Dipl.-Math. Susanne Kürsten Aufgaben In diesem Tutrorium soll

Mehr

Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen)

Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen) WS 2015/16 Diskrete Strukturen Kapitel 5: Algebraische Strukturen (Gruppen) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_15

Mehr

5 Grundlagen der Zahlentheorie

5 Grundlagen der Zahlentheorie 5 Grundlagen der Zahlentheorie 1 Primfaktorzerlegung Seienm, n N + := {k N k > 0} Man schreibt n n, gesprochen m teilt n oder m ist ein Teiler von n, wenn es eine positive natürliche Zahl k gibt mit mk

Mehr

Zahlentheorie I. Christoph Egger. 18. Juni Christoph Egger Zahlentheorie I 18. Juni / 32

Zahlentheorie I. Christoph Egger. 18. Juni Christoph Egger Zahlentheorie I 18. Juni / 32 Zahlentheorie I Christoph Egger 18. Juni 2010 Christoph Egger Zahlentheorie I 18. Juni 2010 1 / 32 Übersicht 1 Modulare Arithmetik Addition & Subtraktion Multiplikation schnelles Potenzieren 2 Teiler Definition

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

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

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

χ a : N + {0, 1, 1} {( a χ a (n) = χ a (n ). ψ(mn) < ψ(m)ψ(n).

χ a : N + {0, 1, 1} {( a χ a (n) = χ a (n ). ψ(mn) < ψ(m)ψ(n). September 007, Zahlentheorie 1 a) Formulieren Sie das quadratische Reziprozitätsgesetz einschließlich der Definitionen der Legendre- und Jacobi-Symbole. b) Für a Z \ {0} definieren wir durch χ a (n) =

Mehr

Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2015/16

Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2015/16 Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2015/16 21. Januar 2016 Definition 8.1 Eine Menge R zusammen mit zwei binären Operationen

Mehr

Kapitel III Ringe und Körper

Kapitel III Ringe und Körper Kapitel III Ringe und Körper 1. Definitionen und Beispiele Definition 117 Eine Algebra A = S,,, 0, 1 mit zwei zweistelligen Operatoren und heißt ein Ring, falls R1. S,, 0 eine abelsche Gruppe mit neutralem

Mehr

Kapitel 2: Multiplikative Funktionen. 3 Multiplikative Funktionen. Definition 2.1 (arithmetische Funktion, (vollständig) multiplikative Funktion)

Kapitel 2: Multiplikative Funktionen. 3 Multiplikative Funktionen. Definition 2.1 (arithmetische Funktion, (vollständig) multiplikative Funktion) Kapitel 2: Multiplikative Funktionen 3 Multiplikative Funktionen Definition 2.1 (arithmetische Funktion, (vollständig) multiplikative Funktion) (a) Eine Funktion α : Z >0 C heißt arithmetisch (oder zahlentheoretisch).

Mehr

Über Polynome mit Arithmetik modulo m

Über Polynome mit Arithmetik modulo m Über Polynome mit Arithmetik modulo m Um den Fingerprinting-Satz über die Fingerabdrücke verschiedener Texte aus dem 37. Algorithmus der Woche ( http://www-i1.informatik.rwth-aachen.de/~algorithmus/algo37.php

Mehr

Algorithmentheorie Randomisierung

Algorithmentheorie Randomisierung Algorithmentheorie 03 - Randomisierung Prof. Dr. S. Albers Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten

Mehr

PRIMES is in P. Ein Vortrag von Holger Szillat.

PRIMES is in P. Ein Vortrag von Holger Szillat. PRIMES is in P Ein Vortrag von Holger Szillat szillat@informatik.uni-tuebingen.de Übersicht Geschichte Notationen und Definitionen Der Agrawal-Kayal-Saxena-Algorithmus Korrektheit und Aufwand Fazit Geschichte

Mehr

Ganzzahlige Division mit Rest

Ganzzahlige Division mit Rest Modulare Arithmetik Slide 1 Ganzzahlige Division mit Rest Für a,b Æ mit a b gibt es stets eine Zerlegung von a der Form a = q b+r mit 0 r b 1. Hierbei gilt q = a b (salopp formuliert: b passt q-mal in

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

2: Restklassen 2.1: Modulare Arithmetik

2: Restklassen 2.1: Modulare Arithmetik 2: Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32, 64} Prüfziffern mod 10 oder mod 11... 71 S. Lucks Diskr Strukt.

Mehr

Kryptologie. Bernd Borchert. Univ. Tübingen SS Vorlesung. Teil 11. Primzahltests: Fermat, Miller-Rabin

Kryptologie. Bernd Borchert. Univ. Tübingen SS Vorlesung. Teil 11. Primzahltests: Fermat, Miller-Rabin Kryptologie Bernd Borchert Univ. Tübingen SS 2017 Vorlesung Teil 11 Primzahltests: Fermat, Miller-Rabin Primzahltests Problem: Gegeben n. Ist n Primzahl? Naive Methoden: Ausprobieren: gehe der Reihe nach

Mehr

Kanonische Primfaktorzerlegung

Kanonische Primfaktorzerlegung Kanonische Primfaktorzerlegung Jede natürliche Zahl Form kann auf eindeutige Weise in der geschrieben werden, wobei, für und Primzahlen sind. Dies ist die kanonische Primfaktorzerlegung von. Mathematik

Mehr

Primes ist in P Der AKS-Primzahltest

Primes ist in P Der AKS-Primzahltest Primes ist in P Der AKS-Primzahltest Hans-Gert Gräbe Institut für Informatik, Universität Leipzig 10. Oktober 2003 1 Anfang August 2002 verbreitete sich die Nachricht, dass einige bis dahin unbekannte

Mehr

2008W. Vorlesung im 2008W Institut für Algebra Johannes Kepler Universität Linz

2008W. Vorlesung im 2008W   Institut für Algebra Johannes Kepler Universität Linz Mathematik Institut für Algebra Johannes Kepler Universität Linz Vorlesung im http://www.algebra.uni-linz.ac.at/students/win/ml Inhalt Definierende Eigenschaften Definition 0 ist eine natürliche Zahl;

Mehr

In diesem Kapitel bestimmen wir die multiplikative Struktur der Einheitengruppe (Z/Z) von Z/Z für eine beliebige positive Zahl Z >0.

In diesem Kapitel bestimmen wir die multiplikative Struktur der Einheitengruppe (Z/Z) von Z/Z für eine beliebige positive Zahl Z >0. Kapitel 5: Die Einheitengruppe von Z/Z und Primitivwurzeln modulo In diesem Kapitel bestimmen wir die multiplikative Struktur der Einheitengruppe (Z/Z) von Z/Z für eine beliebige positive Zahl Z >0. 16

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

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 4: Zahlentheorie

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 4: Zahlentheorie Prof. Dr. Sebastian Iwanowski DM4 Folie 1 Referenzen zum Nacharbeiten: Diskrete Mathematik Sebastian Iwanowski FH Wedel Kap. 4: Zahlentheorie Beutelspacher 5 Lang 7, Biggs 20, 22, 23 (jeweils teilweise,

Mehr

= k 0+k 0 ( ). Wir addieren (0 k) zu den Seiten der Gleichung ( ): 0 = k 0.

= k 0+k 0 ( ). Wir addieren (0 k) zu den Seiten der Gleichung ( ): 0 = k 0. Def 4 Eine Menge K mit zwei Abbildungen + : K K K und : K K K (heißen Addition und Multiplikation; wir werden a b bzw a+b statt (a,b), +(a,b) schreiben) ist ein kommutativer Ring, falls: (R1) (K, +) ist

Mehr

Exponentiation: das Problem

Exponentiation: das Problem Problemstellung Exponentiation: 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

Karlsruher Institut für Technologie Institut für Algebra und Geometrie

Karlsruher Institut für Technologie Institut für Algebra und Geometrie Karlsruher Institut für Technologie Institut für Algebra und Geometrie PD Dr. Stefan Kühnlein Dipl.-Math. Jochen Schröder Einführung in Algebra und Zahlentheorie Übungsblatt 9 Aufgabe 1 (4 Punkte +) Sei

Mehr

Einführung in Algebra und Zahlentheorie Lösungsvorschlag zur Klausur am 16. Februar 2016

Einführung in Algebra und Zahlentheorie Lösungsvorschlag zur Klausur am 16. Februar 2016 Fakultät für Mathematik Institut für Algebra und Geometrie PD Dr. Stefan Kühnlein Dipl.-Math. oec. Anja Randecker Einführung in Algebra und Zahlentheorie Lösungsvorschlag zur Klausur am 16. Februar 016

Mehr

1.Vortrag: Rechnen mit Restklassen/modulo einer Zahl

1.Vortrag: Rechnen mit Restklassen/modulo einer Zahl Westfälische Wilhelms-Universität Münster Mathematik Sommersemester 2017 Seminar: Verschlüsselungs- und Codierungstheorie Leitung: Thomas Timmermann 1.Vortrag: Rechnen mit Restklassen/modulo einer Zahl

Mehr

Algebra. 1 = a u + b,

Algebra. 1 = a u + b, Fachbereich Mathematik Prof. Dr. Nils Scheithauer Walter Reußwig TECHNISCHE UNIVERSITÄT DARMSTADT WS 08/09 11. November 2008 Algebra 5. Übung mit Lösungshinweisen Aufgabe 23 Es sei R ein euklidischer Integritätsbereich.

Mehr

Seminar zum Thema Kryptographie

Seminar zum Thema Kryptographie Seminar zum Thema Kryptographie Michael Hampton 11. Mai 2017 Inhaltsverzeichnis 1 Einleitung 3 1.1 Konventionen.................................. 3 1.2 Wiederholung.................................. 3

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

Fibonacci-Zahlen und goldener Schnitt

Fibonacci-Zahlen und goldener Schnitt Fibonacci-Zahlen und goldener Schnitt Suche eine Darstellung der Form F n = x n für reelle Zahl x > 0. Aus der definierenden Gleichung folgt sofort x 2 = x + 1. Dann liefert die p-q-formel: x 1,2 = 1 2

Mehr

VI.3 RSA. - RSA benannt nach seinen Erfindern R. Rivest, A. Shamir und L. Adleman. - vorgestellt erstes Public-Key Verschlüsselungsverfahren

VI.3 RSA. - RSA benannt nach seinen Erfindern R. Rivest, A. Shamir und L. Adleman. - vorgestellt erstes Public-Key Verschlüsselungsverfahren VI.3 RSA - RSA benannt nach seinen Erfindern R. Rivest, A. Shamir und L. Adleman - vorgestellt 1977 - erstes Public-Key Verschlüsselungsverfahren - auch heute noch das wichtigste Public-Key Verfahren 1

Mehr

Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2017/18

Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2017/18 Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2017/18 9. November 2017 1/34 Beispiel 3.6 Wir können die rationalen Zahlen wie folgt konstruieren:

Mehr

1 Zahlentheorie. 1.1 Kongruenzen

1 Zahlentheorie. 1.1 Kongruenzen 3 Zahlentheorie. Kongruenzen Der letzte Abschnitt zeigte, daß es sinnvoll ist, mit großen Zahlen möglichst einfach rechnen zu können. Oft kommt es nicht darauf, an eine Zahl im Detail zu kennen, sondern

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

Literatur. [9-3] [9-4]

Literatur. [9-3]   [9-4] Literatur [9-1] Willems, Wolfgang: Codierungstheorie und Kryptographie. Mathematik Kompakt, Birkhäuser, 2008 [9-2] Socher, Rolf: Algebra für Informatiker. Hanser, 2012 [9-3] https://de.wikipedia.org/wiki/fermatscher_primzahltest

Mehr

3.5 Kryptographie - eine Anwendung der Kongruenzrechnung

3.5 Kryptographie - eine Anwendung der Kongruenzrechnung 1 3.5 Kryptographie - eine Anwendung der Kongruenzrechnung Das Wort Kryptographie leitet sich aus der griechischen Sprache ab, nämlich aus den beiden Worten κρυπτ oς(kryptos)=versteckt, geheim und γραϕɛιν(grafein)=schreiben.

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

1 Modulare Arithmetik

1 Modulare Arithmetik $Id: modul.tex,v 1.11 2012/04/16 19:15:39 hk Exp $ $Id: gruppen.tex,v 1.11 2012/04/17 10:30:56 hk Exp $ 1 Modulare Arithmetik 1.3 Restklassen Wir waren gerade damit beschäftigt eine Beispiele zum Rechnen

Mehr

3.5 Ringe und Körper. Diese Eigenschaften kann man nun auch. 1. (R, +) ist eine kommutative Gruppe. 2. Es gilt das Assoziativgesetz bezüglich.

3.5 Ringe und Körper. Diese Eigenschaften kann man nun auch. 1. (R, +) ist eine kommutative Gruppe. 2. Es gilt das Assoziativgesetz bezüglich. 3.5 Ringe und Körper Gehen wir noch mal zu den ganzen Zahlen zurück. Wir wissen: (Z, + ist eine Gruppe, es gibt aber als Verknüpfung noch die Multiplikation, es gibt ein neutrales Element bezüglich, es

Mehr

Lineare Algebra I (WS 13/14)

Lineare Algebra I (WS 13/14) Lineare Algebra I (WS 13/14) Alexander Lytchak Nach einer Vorlage von Bernhard Hanke 10.01.2014 Alexander Lytchak 1 / 9 Erinnerung: Zwei ganz wichtige Gruppen Für jede Gruppe (G, ) und jedes Element g

Mehr

Primes ist in P Der AKS-Primzahltest Notizen zum Vortrag auf dem MCAT-6 in Halle/S.

Primes ist in P Der AKS-Primzahltest Notizen zum Vortrag auf dem MCAT-6 in Halle/S. Primes ist in P Der AKS-Primzahltest Notizen zum Vortrag auf dem MCAT-6 in Halle/S. Hans-Gert Gräbe Institut für Informatik, Universität Leipzig 10. Oktober 2003 Anfang August 2002 verbreitete sich die

Mehr

RSA Parameter öffentlich: N = pq mit p, q prim und e Z RSA Parameter geheim: d Z φ(n)

RSA Parameter öffentlich: N = pq mit p, q prim und e Z RSA Parameter geheim: d Z φ(n) RSA Parameter { öffentlich: N = pq mit p, q prim und e Z RSA Parameter φ(n) geheim: d Z φ(n) mit ed = 1 mod φ(n). Satz RSA Parameter Generierung RSA-Parameter (N, e, d) können in Zeit O(log 4 N) generiert

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

Inhalt 2007W. Vorlesung im 2007W

Inhalt 2007W. Vorlesung im 2007W Institut für Algebra Johannes Kepler Universität Linz Vorlesung im http://www.algebra.uni-linz.ac.at/students/win/ml Inhalt Definierende Eigenschaften 0 ist eine natürliche Zahl; Zu jeder natürlichen Zahl

Mehr

Wiederholungsblatt zur Gruppentheorie

Wiederholungsblatt zur Gruppentheorie Wiederholungsblatt zur Gruppentheorie von Christian Elsholtz, TU Clausthal, WS 1999/2000 Um Ihnen zu helfen, die Gruppentheorie zu wiederholen, stelle ich hier einige wichtige Beispiele und einige Lösungen

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

Zahlen und elementares Rechnen

Zahlen und elementares Rechnen und elementares Rechnen Christian Serpé Universität Münster 7. September 2011 Christian Serpé (Universität Münster) und elementares Rechnen 7. September 2011 1 / 51 Gliederung 1 2 Elementares Rechnen 3

Mehr

Körper- und Galoistheorie

Körper- und Galoistheorie Prof. Dr. H. Brenner Osnabrück SS 2011 Körper- und Galoistheorie Vorlesung 10 Endliche Untergruppen der Einheitengruppe eines Körpers Wir wollen zeigen, dass die Einheitengruppe Z/(p), p Primzahl, zyklisch

Mehr

1 Grundlagen aus der Zahlentheorie

1 Grundlagen aus der Zahlentheorie Stand: 05.11.2013 Vorlesung Grundlagen und Methoden der Kryptographie Dietzfelbinger 1 Grundlagen aus der Zahlentheorie 1.1 Fakten aus der Zahlentheorie und grundlegende Algorithmen Unsere Zahlenbereiche:

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

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

Kongruenzen und Restklassenringe. 2. Kongruenzen und Restklassenringe

Kongruenzen und Restklassenringe. 2. Kongruenzen und Restklassenringe 2. Kongruenzen und Restklassenringe Kongruenzen Definition: Wir sagen a ist kongruent zu b modulo m schreiben a b mod m, wenn m die Differenz b-a te Beispiel: Es gilt 2 19 mod 21, 10 0 mod 2. Reflexivität:

Mehr

Diskrete Strukturen 5.9 Permutationsgruppen 168/558 c Ernst W. Mayr

Diskrete Strukturen 5.9 Permutationsgruppen 168/558 c Ernst W. Mayr Bemerkung: Der folgende Abschnitt Boolesche Algebren ist (im WS 2010/11) nicht Teil des Prüfungsstoffs, soweit nicht Teile daraus in der Übung behandelt werden! Diskrete Strukturen 5.9 Permutationsgruppen

Mehr

Zufallsprimzahlen und eine Revolution in der Kryptographie Stefan Edelkamp

Zufallsprimzahlen und eine Revolution in der Kryptographie Stefan Edelkamp Zufallsprimzahlen und eine Revolution in der Kryptographie Stefan Edelkamp Fakultät für Mathematik und Informatik Universität of Bremen Übersicht des Vortrags 1 Einfache Kryptosysteme 2 Einmalschlüssel

Mehr

8. Musterlösung zu Mathematik für Informatiker II, SS 2004

8. Musterlösung zu Mathematik für Informatiker II, SS 2004 8. Musterlösung zu Mathematik für Informatiker II, SS 2004 MARTIN LOTZ &MICHAEL NÜSKEN Aufgabe 8.1 (Polynomdivision). (8 Punkte) Dividiere a mit Rest durch b für (i) a = x 7 5x 6 +3x 2 +1, b = x 2 +1in

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

Unterlagen zu Polynomringen. Erhard Aichinger

Unterlagen zu Polynomringen. Erhard Aichinger Unterlagen zu Polynomringen Erhard Aichinger Linz, im November 2005 Alle Rechte vorbehalten 1 KAPITEL 1 Polynome und Körper 1. Körper DEFINITION 1.1. Ein kommutativer Ring mit Eins R R,,,, 0, 1 ist ein

Mehr

Thema: Die Einheitengruppe des Restklassenrings /n

Thema: Die Einheitengruppe des Restklassenrings /n RWTH Aachen Lehrstuhl D für Mathematik Betreuer: Prof. U. Schoenwaelder Hausaufsatz zur Vorlesung Algebra I im WS 99/00 Thema: Die Einheitengruppe des Restklassenrings /n Vorgelegt von Sascha Haarkötter

Mehr

Übung zur Vorlesung Diskrete Strukturen I

Übung zur Vorlesung Diskrete Strukturen I Technische Universität München WS 2002/03 Institut für Informatik Aufgabenblatt 8 Prof. Dr. J. Csirik 2. Dezember 2002 Brandt & Stein Übung zur Vorlesung Diskrete Strukturen I Abgabetermin: Tutorübungen

Mehr

Übungen zu Zahlentheorie, SS 2017

Übungen zu Zahlentheorie, SS 2017 Übungen zu Zahlentheorie, SS 017 Christoph Baxa 1) Finde alle positiven Teiler von a) 1799 b) 997. ) Zeige (a b) (a n b n ) für alle a, b Z und alle n N. 3) Zeige: Wenn m n dann (a m b m ) (a n b n ) (mit

Mehr

Zahlentheorie, Arithmetik und Algebra I. Felix Teufel Hallo Welt! -Seminar - LS 2

Zahlentheorie, Arithmetik und Algebra I. Felix Teufel Hallo Welt! -Seminar - LS 2 Zahlentheorie, Arithmetik und Algebra I Felix Teufel 26.07.2017 Hallo Welt! -Seminar - LS 2 Überblick Modulare Arithmetik Größter gemeinsamer Teiler Primzahlen Eulersche Φ-Funktion RSA Quellen 26.07.2017

Mehr