18.11.2013 Aufrufe

Kurzskript zur elementaren Zahlentheorie und RSA - Institut für ...

Kurzskript zur elementaren Zahlentheorie und RSA - Institut für ...

Kurzskript zur elementaren Zahlentheorie und RSA - Institut für ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Universität Paderborn<br />

Fakultät <strong>für</strong> Elektrotechnik, Informatik <strong>und</strong> Mathematik<br />

<strong>Institut</strong> <strong>für</strong> Mathematik<br />

Elementare <strong>Zahlentheorie</strong><br />

&<br />

<strong>RSA</strong><br />

Eine kurze Wiederholung im Rahmen der Vorlesung<br />

“Mathematik <strong>für</strong> Informatiker I”<br />

(Wintersemester 2006/2007)<br />

Kai Gehrs<br />

gehrs@mupad.de<br />

Paderborn, 14. Februar 2007


Inhaltsverzeichnis<br />

Vorbemerkung 2<br />

1 Gr<strong>und</strong>lagen 2<br />

1.1 “Repeated Squaring” (Effizientes Potenzieren) . . . . . . . . . . 2<br />

1.2 Der Euklidische Algorithmus . . . . . . . . . . . . . . . . . . . . 3<br />

1.3 Restklassenringe <strong>und</strong> modulares Rechnen . . . . . . . . . . . . . 6<br />

2 Die Eulersche ϕ-Funktion 9<br />

2.1 Einige gruppentheoretische Resultate . . . . . . . . . . . . . . . 9<br />

2.1.1 Der Satz von Lagrange. . . . . . . . . . . . . . . . . . . . 10<br />

2.1.2 Der Satz von Euler. . . . . . . . . . . . . . . . . . . . . . 10<br />

2.1.3 Der kleine Satz von Fermat. . . . . . . . . . . . . . . . . 10<br />

3 Das <strong>RSA</strong>-Verfahren 11<br />

4 Ausgewählte Übungsaufgaben mit Lösungen 13<br />

4.1 Aufgabe 16: (Primfaktoren) . . . . . . . . . . . . . . . . . . . . 14<br />

4.2 Aufgabe 17: (Restklassen modulo Primpotenzen) . . . . . . . . 14<br />

4.3 Aufgabe 19: (Einheiten, Nullteiler <strong>und</strong> Partitionen) . . . . . . . 15<br />

4.4 Aufgabe 20: (Satz von Wilson) . . . . . . . . . . . . . . . . . . 15<br />

4.5 Aufgabe 23: (Modulares Rechnen) . . . . . . . . . . . . . . . . 16<br />

Literaturverzeichnis 17


2 1 GRUNDLAGEN<br />

Vorbemerkung<br />

Bei den vorliegenden Notizen handelt es sich um einen Auszug aus einem Skript<br />

über elementare Kryptographie. Diese Notizen wurden also nicht explizit <strong>für</strong> die<br />

Vorlesung “Mathematik <strong>für</strong> Informatiker I” geschrieben, sondern entstammen<br />

einem teilweise allgemeineren Kontext.<br />

Die hier angeführten Argumentationen <strong>und</strong> Beweise <strong>zur</strong> Begründung der<br />

Korrektheit bestimmter Beispiele <strong>und</strong>/oder Resultate sind zum Teil von<br />

Prof. Dr. Henning Krause im Rahmen der Vorlesung in der vorliegenden<br />

Form oder Notation nicht behandelt worden. Ferner erheben diese Notizen<br />

keinen Anspruch darauf, Algorithmen wie etwas den Erweiterten Euklidischen<br />

Algorithmus oder das Wiederholte Quadriere (“Repeated Squaring”) exakt<br />

in der Form darzustellen, wie die Resultate auf den Folien der Vorlesung von<br />

Prof. Dr. Henning Krause zu finden sind. Daher ist das Studium des Inhalts<br />

dieses <strong>Kurzskript</strong>s auch nicht relevant <strong>für</strong> die anstehenden Prüfungsklausuren<br />

im eigentlichen Sinne.<br />

Es ist lediglich so, dass die vorliegenden Notizen als Ergänzung zu der Zusatzübung<br />

Elementare <strong>Zahlentheorie</strong> vom 13.02.2007 gedacht sind. Wer also<br />

gerne noch einmal bestimmte Resultate in Form eines Fließtextes wiederholen<br />

möchte, kann dieses <strong>Kurzskript</strong> (auch unter Auslassen der hier angegebenen Beweise)<br />

noch einmal zu Wiederholungszwecken nutzen. Fassen Sie diese Notizen<br />

also einfach als optionales Bonusmaterial auf.<br />

1 Gr<strong>und</strong>lagen<br />

1.1 “Repeated Squaring” (Effizientes Potenzieren)<br />

In einer Reihe kryptographischer Verfahren ist es von essentieller Wichtigkeit,<br />

dass man effizient auch große Potenzen von Gruppenelementen berechnen kann.<br />

Das in diesem Abschnitt kurz vorgestellte Verfahren kann universell in einer<br />

beliebigen Gruppe G verwendet werden, um x k <strong>für</strong> ein Element x ∈ G <strong>und</strong> k ∈ N<br />

zu berechnen. Aus diesem Gr<strong>und</strong> geben wir den Algorithmus <strong>zur</strong> Berechnung<br />

solcher Potenzen auch zunächst in sehr allgemeiner Form an.<br />

Algorithmus 1.1. (“Repeated Squaring”) Sei G eine Gruppe, x ∈ G <strong>und</strong><br />

k ∈ N. Ferner sei k = ∑ n−1<br />

i=0 k i · 2 i die Binärdarstellung der Zahl k mit k n−1 = 1.<br />

(1) Setze y := x.


1.2 Der Euklidische Algorithmus 3<br />

(2) Für i = n − 2, . . . , 0 berechne:<br />

y := y 2<br />

Ist k i = 1, so berechne zusätzlich y := y · x.<br />

(3) Gebe y = x k aus.<br />

Anstatt eines Korrektheitsbeweises, bei dem man die Gültigkeit einer entsprechend<br />

geschickt gewählten Invariante nachweist, betrachten wir ein kleines Beispiel:<br />

Beispiel 1.2. Sei G eine Gruppe <strong>und</strong> x ∈ G. Wir wollen x 20 mit Hilfe von<br />

Algorithmus 1.1 berechnen. Es ist k 4 k 3 k 2 k 1 k 0 = 10100 die Binärdarstellung der<br />

Zahl 20. Zuerst setzen wir y := x. Wegen k 3 = 0 setzen wir y := y 2 = x 2 <strong>und</strong><br />

verzichten auf eine zusätzliche Multiplikation mit x. Im nächsten Schritt ist k 2 =<br />

1 zu betrachten. Wir berechnen also zuerst y := y 2 = x 4 <strong>und</strong> dann zusätzlich<br />

y := y · x = x 5 . Wegen k 1 = k 0 = 0 sind die nächsten beiden auszuführenden<br />

Schritte y := y 2 = x 10 <strong>und</strong> zuletzt ist der Wert von y ein weiteres Mal zu<br />

quadrieren: y := y 2 = x 20 .<br />

1.2 Der Euklidische Algorithmus<br />

Zur Erinnerung stellen wir diesem Abschnitt die folgenden beiden <strong>elementaren</strong><br />

Definitionen voran:<br />

Definition 1.3. Sei R ein Ring. Dann heißt a ein Teiler von b, a | b, falls es ein<br />

r ∈ R gibt mit b = r · a.<br />

Definition 1.4. Sei R ein euklidischer Ring (d.h. ein Ring, in dem man zwei<br />

Elemente per Division mit Rest durcheinander dividieren kann).<br />

(i) Dann heißt d ∈ R ein größter gemeinsamer Teiler von a, b ∈ R, d =<br />

ggT(a, b), falls d | a <strong>und</strong> d | b <strong>und</strong> <strong>für</strong> alle s ∈ R mit s | a <strong>und</strong> s | b stets<br />

s | d folgt.<br />

(ii) Ein Element k ∈ R heißt kleinstes gemeinsames Vielfaches von a <strong>und</strong> b,<br />

k = kgV(a, b), falls a | k <strong>und</strong> b | k <strong>und</strong> <strong>für</strong> alle l ∈ R mit a | l <strong>und</strong> b | l<br />

stets k | l folgt.<br />

Für R = Z sprechen wir häufig von “dem” größten gemeinsamen Teiler <strong>und</strong><br />

meinen damit den eindeutig bestimmten positiven größten gemeinsamen Teiler<br />

zweier ganzer Zahlen. Gleiches gilt <strong>für</strong> das kleinste gemeinsame Vielfache zweier<br />

ganzer Zahlen. Im folgenden Lemma fassen wir ohne Beweis einige der wesentlichen<br />

Eigenschaften des größten gemeinsamen Teilers ganzer Zahlen zusammen:


4 1 GRUNDLAGEN<br />

Lemma 1.5. Seien a, b, c ∈ Z. Dann gilt:<br />

(i) ggT(a, b) = |a| genau dann, wenn a | b.<br />

(ii) ggT(a, a) = ggT(a, 0) = |a| <strong>und</strong> ggT(a, 1) = 1.<br />

(iii) Kommutativität: ggT(a, b) = ggT(b, a).<br />

(iv) Assoziativität: ggT(a, ggT(b, c)) = ggT(ggT(a, b), c).<br />

(v) Distributivität: ggT(c · a, c · b) = |c| · ggT(a, b).<br />

(vi) Gilt |a| = |b|, so folgt stets ggT(a, c) = ggT(b, c).<br />

(vii) Ist g = ggT(a, b), g > 0, so existieren s, t ∈ Z mit g = s · a + t · b.<br />

Die Darstellung Lemma 1.5 (vii) liefert der Erweiterte Euklidische Algorithmus,<br />

der in einem beliebigen euklidischen Ring durchgeführt werden kann. Wir geben<br />

ihn der Einfachheit halber nur <strong>für</strong> ganze Zahlen an. Die hier vorgestellte Version<br />

kann aber leicht in eine Version <strong>für</strong> Polynome “umgeschrieben” werden, wenn<br />

man die entsprechenden Ungleichungen als Ungleichungen über den Grad der<br />

betrachteten Polynome interpretiert.<br />

Vorab aber noch ein kleines Lemma, das uns beim Beweis der Korrektheit des<br />

Algorithmus sehr nützlich sein wird:<br />

Lemma 1.6. Seien a, b ∈ Z. Dann gilt: ggT(a, b) = ggT(a mod b, b).<br />

Beweis. Division mit Rest liefert a = q · b + (a mod b). Es gilt: ggT(a, b) teilt<br />

sowohl a als auch b, also auch a mod b = a − q · b <strong>und</strong> damit ggT(a mod b, b).<br />

Umgekehrt teilt ggT(a mod b, b) sowohl a mod b als auch b <strong>und</strong> damit auch a = q·<br />

b + (a mod b). Wir erhalten also ggT(a, b) | ggT(a mod b, b) <strong>und</strong> ggT(a mod b, b) |<br />

ggT(a, b). Daraus folgt die Behauptung.<br />

Algorithmus 1.7. (Erweiterter Euklidischer Algorithmus (EEA)) Seien<br />

a, b ∈ Z mit |a| ≥ |b|.<br />

(1) Setze r 0 := a, r 1 := b, s 0 := 1, s 1 := 0, t 0 := 0, t 1 := 1 <strong>und</strong> i := 1.<br />

(2) Wiederhole den folgenden Schritt, bis r l+1 = 0 gilt <strong>für</strong> ein l ∈ N 0 :<br />

Berechne q i := r i−1 quot r i als ganzzahligen Quotienten von r i−1 <strong>und</strong><br />

r i .<br />

r i+1 := r i−1 − q i · r i (d.h. r i+1 = r i−1 mod r i )


1.2 Der Euklidische Algorithmus 5<br />

s i+1 := s i−1 − q i · s i<br />

t i+1 := t i−1 − q i · t i<br />

i := i + 1<br />

(3) Gebe r l , s l <strong>und</strong> t l aus.<br />

Dann ist r l ein größter gemeinsamer Teiler von a <strong>und</strong> b <strong>und</strong> es gilt r l = s l·a+t l·b.<br />

Beweis. (Korrektheit) Der Erweiterte Euklidische Algorithmus 1.7 terminiert,<br />

denn es gilt <strong>für</strong> r i mit i ≥ 2 die Ungleichung 0 ≤ r i = r i−2 mod r i−1 < r i−1 ≤ a.<br />

Damit bilden die Reste r i eine streng monoton fallende Folge ganzer Zahlen, die<br />

nach unten durch 0 beschränkt ist, d.h. der Algorithmus muss terminieren. Wir<br />

zeigen nun, dass <strong>für</strong> alle i gilt:<br />

s i · a + t i · b = r i .<br />

Für i = 0 <strong>und</strong> i = 1 ist die Behauptung klar per Definition von r 0 , r 1 , s 0 , s 1 , t 0 , t 1 .<br />

Sei nun i ≥ 2. Dann folgt per Induktion:<br />

s i · a + t i · b = (s i−2 − q i−1 · s i−1 ) · a + (t i−2 − q i−1 · t i−1 ) · b<br />

= (s i−2 · a + t i−2 · b) − (q i−1 · s i−1 · a + q i−1 · t i−1 · b)<br />

= r i−2 − q i−1 · (s i−1 · a + t i−1 · b)<br />

= r i−2 − q i−1 · r i−1<br />

= r i<br />

Damit folgt <strong>für</strong> i = l mit s l · a + t l · b = r l die behauptete Darstellung. Es bleibt<br />

zu zeigen, dass r l in der Tat ein größter gemeinsamer Teiler von a <strong>und</strong> b ist. Mit<br />

Lemma 1.6 <strong>und</strong> a = (a quot b) · b + (a mod b) = q 1 · b + r 2 folgt ggT(a, b) =<br />

ggT(a mod b, b) = ggT(r 2 , b) = ggT(r 2 , r 1 ). Wegen r i+1 = r i−1 mod r i folgt<br />

ggT(r i−1 , r i ) = ggT(r i−1 mod r i , r i ) = ggT(r i+1 , r i ). Wegen r l+1 = 0 <strong>und</strong><br />

r l = ggT(r l+1 , r l ) folgt per Rekursion r l = ggT(r 2 , r 1 ) = ggT(a, b).<br />

Wir betrachten ein Beispiel:<br />

Beispiel 1.8. Seien a = 126 <strong>und</strong> b = 35. zunächst definieren wir r 0 := 126,<br />

r 1 := 35, s 0 := 1, s 1 := 0, t 0 := 0 <strong>und</strong> t 1 := 1. Dann folgen wir der Vorschrift<br />

aus 1.7:<br />

i = 1<br />

q 1 = r 0 quot r 1 = 126 quot 35 = 3<br />

r 2 = r 0 − q 1 · r 1 = 126 − 3 · 35 = 21<br />

s 2 = s 0 − q 1 · s 1 = 1 − 3 · 0 = 1<br />

t 2 = t 0 − q 1 · t 1 = 0 − 3 · 1 = −3


6 1 GRUNDLAGEN<br />

i = 2<br />

q 2 = r 1 quot r 2 = 35 quot 21 = 1<br />

r 3 = r 1 − q 2 · r 2 = 35 − 1 · 21 = 14<br />

s 3 = s 1 − q 2 · s 2 = 0 − 1 · 1 = −1<br />

t 3 = t 1 − q 2 · t 2 = 1 − 1 · (−3) = 4<br />

i = 3<br />

q 3 = r 2 quot r 3 = 21 quot 16 = 1<br />

r 4 = r 2 − q 3 · r 3 = 21 − 1 · 14 = 7<br />

s 4 = s 2 − q 3 · s 3 = 1 − 1 · (−1) = 2<br />

t 4 = t 2 − q 3 · t 3 = −3 − 1 · 4 = −7<br />

i = 4<br />

q 4 = r 3 quot r 4 = 14 quot 7 = 2<br />

r 5 = r 3 − q 4 · r 4 = 14 − 2 · 7 = 0<br />

Damit folgt: ggT(126, 35) = r 4 = 7 <strong>und</strong> 7 = 2 · 126 + (−7) · 35.<br />

1.3 Restklassenringe <strong>und</strong> modulares Rechnen<br />

Restklassenringe ganzer Zahlen sind <strong>für</strong> uns die algebraische Struktur, in der<br />

wir später in kryptographischen Verfahren rechnen wollen. Gr<strong>und</strong>legend ist die<br />

folgende Definition.<br />

Bemerkung <strong>und</strong> Definition 1.9. Sei N ∈ N, N ≥ 2. Auf dem Ring der<br />

ganzen Zahlen Z definieren wir die Relation ∼ N vermöge<br />

a ∼ N b :⇐⇒ N | a − b.<br />

Die Relation ∼ N ist eine Äquivalenzrelation, so dass wir die Äquivalenzklassen<br />

nach ∼ N betrachten können. Die Klasse von a ∈ Z modulo N definieren wir als<br />

a mod N := [a] N := {b ∈ Z | b ∼ N a}.


1.3 Restklassenringe <strong>und</strong> modulares Rechnen 7<br />

Als Repräsentanten <strong>für</strong> a mod N wählen wir immer die kleinste nicht-negative<br />

ganze Zahl z mit 0 ≤ z ≤ N − 1 aus der Menge {b ∈ Z : N | (b − a)}. Die<br />

Menge der Äquivalenzklassen nach der Äquivalenzrelation ∼ N bezeichnen wir<br />

mit Z N . Wir definieren <strong>für</strong> a 1 mod N, a 2 mod N ∈ Z N eine Addition <strong>und</strong> eine<br />

Multiplikation wie folgt:<br />

a 1 mod N + a 2 mod N = (a 1 + a 2 ) mod N,<br />

a 1 mod N · a 2 mod N = (a 1 · a 2 ) mod N.<br />

Mit der so definierten Addition <strong>und</strong> Multiplikation wird Z N zu einem kommutativen<br />

Ring mit Nullelement 0 mod N <strong>und</strong> Einselement 1 mod N, der als Restklassenring<br />

von Z modulo N bezeichnet wird. Z N hat N Elemente. Ein bezüglich<br />

der Multiplikation invertierbares Element a mod N bezeichnen wir als Einheit<br />

modulo N. Die Menge aller Einheiten von Z N wird mit Z × N bezeichnet.<br />

Beispiel 1.10. Sei N = 6. Dann besteht Z N = Z 6 aus den Restklassen 0 mod 6,<br />

1 mod 6, 2 mod 6, 3 mod 6, 4 mod 6 <strong>und</strong> 5 mod 6. Es gilt:<br />

2 mod 6 + 3 mod 6 = (2 + 3) mod 6 = 5 mod 6,<br />

4 mod 6 + 5 mod 6 = (4 + 5) mod 6 = 9 mod 6 = 3 mod 6,<br />

2 mod 6 · 2 mod 6 = (2 · 2) mod 6 = 4 mod 6,<br />

2 mod 6 · 3 mod 6 = (2 · 3) mod 6 = 6 mod 6 = 0 mod 6,<br />

5 mod 6 · 5 mod 6 = (5 · 5) mod 6 = 25 mod 6 = 1 mod 6.<br />

Wir wollen uns nun ein wenig genauer mit dem Ring Z N = {k mod N | k ∈<br />

{0, . . . , N −1}} <strong>für</strong> ein N ∈ N beschäftigen. Unter anderem im Rahmen des <strong>RSA</strong><br />

Verfahrens 3.1 sind wir an den Einheiten Z × N<br />

modulo einer Zahl N interessiert.<br />

Es gilt:<br />

Lemma 1.11. Für N ∈ N gilt Z × N<br />

Worten erhalten wir:<br />

= {k mod N | ggT(k, N) = 1}. Mit anderen<br />

k ist invertierbar modulo N genau dann, wenn ggT(k, N) = 1.<br />

Beweis. Es sei r ∈ Z × N . Dann gibt es ein l ∈ Z× N<br />

mit r · l ≡ 1 mod N, d.h. r · l =<br />

m · N + 1 <strong>für</strong> ein m ∈ N. Folglich ist r · l − m · N = 1 <strong>und</strong> ggT(r, N) | 1. Es folgt<br />

ggT(r, N) = 1. Umgekehrt liefert <strong>für</strong> r mod N ∈ {k mod N | ggT(k, N) = 1}<br />

der Erweiterte Euklidische Algorithmus 1.7 die Darstellung 1 = s · r + t · N mit<br />

s, t ∈ Z. Reduktion modulo N liefert s mod N als Inverses von r mod N.


8 1 GRUNDLAGEN<br />

Bevor wir den Algorithmus explizit angeben, betrachten wir noch ein kleines<br />

Beispiel:<br />

Beispiel 1.12. Gesucht sei das modulare Inverse von 23 mod 110. Der Erweiterte<br />

Euklidische Algorithmus 1.7 liefert uns die Darstellung<br />

Reduktion modulo 110 liefert also<br />

1 = −43 · 23 + 9 · 110.<br />

1 mod 110 ≡ (−43 mod 110) · (23 mod 110) + (9 mod 110) · (110 mod 110)<br />

} {{ }<br />

=0 mod 110<br />

≡ (−43 mod 110) · (23 mod 110)<br />

≡ (67 mod 110) · (23 mod 110),<br />

also gilt (23 mod 110) −1 ≡ (67 mod 110).<br />

Der Beweis des obigen Lemmas ist konstruktiv <strong>und</strong> liefert uns unmittelbar den<br />

folgenden Algorithmus <strong>zur</strong> Berechnung modularer Inverser. In Wirklichkeit ist<br />

der folgende Algorithmus ein wenig allgemeiner formuliert. Als Eingabe werden<br />

k, N ∈ N erwartet. Ausgabe ist dann entweder das modulare Inverse von k<br />

modulo N, falls k invertierbar modulo N ist, oder “k ist nicht invertierbar<br />

modulo N”.<br />

Algorithmus 1.13. (Berechnung des modularen Inversen) Sei N ∈ N<br />

<strong>und</strong> k ∈ Z N .<br />

(1) Berechne mit Hilfe des Erweiterten Euklidischen Algorithmus 1.7 die Darstellung<br />

g = ggT(k, N) = s · k + t · N.<br />

(2) Ist g = 1, so gebe s mod N aus. Andernfalls gebe “k ist nicht invertierbar<br />

modulo N” aus.<br />

Die Korrektheit des Algorithmus folgt aus Lemma 1.11.<br />

Als weitere Folgerung aus den bisherigen Ergebnissen erhalten wir:<br />

Korollar 1.14. Der Ring Z N ist ein Körper genau dann, wenn N eine Primzahl<br />

ist.


2 Die Eulersche ϕ-Funktion <strong>und</strong> einige ihrer<br />

Eigenschaften<br />

Wir wollen in diesem Abschnitt die Eulersche ϕ-Funktion einführen <strong>und</strong> einige<br />

der Eigenschaften dieser Funktion beweisen, die <strong>für</strong> uns im kryptographischen<br />

Anwednungskontext von Nutzen sein werden.<br />

Definition 2.1. Sei N ∈ N. Dann ist die Eulersche ϕ-Funktion definiert durch<br />

ϕ(N) := #{1 ≤ x ≤ N | ggT(x, N) = 1}.<br />

Lemma 2.2. Für jede Primzahl p ∈ N gilt: ϕ(p) = p − 1.<br />

Beweis. Es gilt {1 ≤ x ≤ p | ggT(x, p) = 1} = {1, . . . , p − 1}. Dies zeigt die<br />

Behauptung.<br />

Lemma 2.3. Sei p ∈ N eine Primzahl <strong>und</strong> e ∈ N. Dann gilt: ϕ(p e ) = (p − 1) ·<br />

p e−1 .<br />

Beweis. In der Menge {1, . . . , p e } sind genau p e−1 Zahlen Vielfache von p. Folglich<br />

gilt ϕ(p e ) = p e − p e−1 = (p − 1) · p e−1 .<br />

Satz 2.4. Sei N = p e 1<br />

1 · . . . · p er<br />

r<br />

Primpotenzen. Dann gilt:<br />

die Zerlegung von N in paarweise teilerfremde<br />

ϕ(N) = (p 1 − 1) · p e 1−1<br />

1 · . . . · (p r − 1) · p er−1<br />

r<br />

Beweis. Nach Lemma 2.3 gilt: ϕ(p e i<br />

i ) = (p i − 1) · p e i−1<br />

i <strong>für</strong> 1 ≤ i ≤ r. Da die zu<br />

N teilerfremden Elemente aus {1, . . . , N} gerade den invertierbaren Elementen<br />

modulo N entsprechen, liefert uns der Chinesische Restsatz wegen Z × ∼ N = Z × p e 1<br />

. . .×Z × p er<br />

r<br />

die Behauptung, denn ϕ(N) = #Z × N = ∏ r<br />

i=1 #Z× p e i<br />

i<br />

2.1 Einige gruppentheoretische Resultate<br />

= ∏ r<br />

i=1 ϕ(pe i<br />

i ).<br />

Wir wollen in diesem Abschnitt die <strong>für</strong> uns wichtigsten gruppentheoretischen<br />

Resultate zusammenfassen. Die meisten Beweise lassen wir einfach weg <strong>und</strong><br />

verweisen auf die im Anhang zitierte Literatur.<br />

Zur Erinnerung:<br />

Definition 2.5. Die Anzahl der Elemente einer Gruppe G bezeichnen wir stets<br />

mit #G <strong>und</strong> nennen #G die Ordnung von G. G heißt eine endliche Gruppe,<br />

wenn #G < ∞.<br />

9<br />

1<br />

×


10 2 DIE EULERSCHE ϕ-FUNKTION<br />

2.1.1 Der Satz von Lagrange.<br />

Der Satz von Lagrange macht eine wichtige Aussage über die möglichen Ordnungen<br />

von Untergruppen einer gegebenen endlichen Gruppe.<br />

Satz 2.6. (Satz von Lagrange) Sei G eine endliche Gruppe. Dann gilt:<br />

(i) Die Ordnung jeder Untergruppe H von G teilt die Ordnung von G,<br />

d.h. #H | #G.<br />

(ii) Für jedes Element x ∈ G gilt: x #G = 1.<br />

Dabei bezeichnet 1 in (ii) das neutrale Element bezüglich der Verknüpfung auf<br />

G.<br />

2.1.2 Der Satz von Euler.<br />

Wir erinnern uns, dass <strong>für</strong> N ∈ N der Wert der Eulerschen ϕ-Funktion an<br />

der Stelle N gerade die Anzahl der zu N teilerfremden Zahlen aus {1, . . . , N}<br />

ist. Die in Z N bezüglich der Multiplikation invertierbaren Elemente sind genau<br />

durch diejenigen Restklassen gegeben, deren Repräsentanten teilerfremd zu N<br />

sind. Folglich besteht die Gruppe Z × N<br />

aus genau ϕ(N) Elementen. Mit anderen<br />

Worten:<br />

Lemma 2.7. Für N ∈ N gilt: #Z × N = ϕ(N).<br />

Unmittelbar aus diesem Resultat <strong>und</strong> dem Satz von Lagrange 2.6 folgt das<br />

nächste Theorem, das auf Leonard Euler <strong>zur</strong>ückgeht:<br />

Satz 2.8. (Satz von Euler) Für jedes x ∈ Z × N gilt xϕ(N) = 1.<br />

= ϕ(N) <strong>und</strong> dem Satz von La-<br />

Beweis. Die Behautpung folgt sofort aus #Z × N<br />

grange 2.6 (ii).<br />

2.1.3 Der kleine Satz von Fermat.<br />

Aus dem Satz von Euler wiederum ergibt sich unmittelbar das nächste Resultat:<br />

Satz 2.9. (Kleiner Satz von Fermat) Sei p eine Primzahl. Dann gilt <strong>für</strong> alle<br />

x ∈ Z p \ {0}: x p−1 = 1.<br />

Beweis. Es ist ϕ(p) = p − 1 nach 2.2. Da p prim ist, gilt Z × p = Z p \ {0}. Nach<br />

dem Satz von Euler 2.8 erhalten wir daher <strong>für</strong> alle x ≠ 0: 1 = x ϕ(p) = x p−1 .


11<br />

3 Das <strong>RSA</strong>-Verfahren<br />

Sender <strong>und</strong> Empfänger werden traditioneller Weise stets mit den Namen Alice<br />

<strong>und</strong> Bob versehen. Alice <strong>und</strong> Bob kommunizieren über einen offenen Kanal<br />

(z.B. das Internet) <strong>und</strong> Bob möchte Alice eine Nachricht übersenden derart,<br />

dass eine dritte, böswillige Person Eve, die den Kanal abhört, die Nachricht<br />

nicht verstehen kann. Die bezeichnende Vorgehensweise ist dann die folgende:<br />

Bob möchte Alice eine Nachricht x schicken. Dazu benutzt Bob eine Verschlüsselungsfunktion<br />

enc K (Encryption), mit deren Hilfe er ein y := enc K (x) erzeugt.<br />

K bezeichne dabei den Schlüssel, den Bob zum Verschlüsseln der Nachricht benutzt.<br />

Dann schickt Bob y an Alice <strong>und</strong> (vorausgesetzt die Nachricht y wird<br />

bei der bloßen Übermittlung nicht verfälscht) Alice kann dann mit Hilfe einer<br />

Funktion dec S (Decryption) aus y den Klartext x = dec S (y) berechnen, wobei<br />

S ihren privaten Schlüssel zum Entschlüsseln von Nachrichten bezeichnet.<br />

Schematisch ergibt sich also der folgende Ablauf:<br />

Bob berechnet y = enc K (x)<br />

Bob sendet y<br />

−−−−−−−→<br />

Eve hört mit<br />

Alice berechnet x = dec S (y)<br />

Folgende Voraussetzungen sollte man vernünftigerweise verlangen:<br />

1. Bob kann die Nachricht effizient (d.h. in polynomieller Zeit in der Codierungslänge<br />

der Eingabe <strong>für</strong> seine Verschlüsselungsfunktion dec K ) verschlüsseln<br />

2. Eve kann den Wert von y = enc K (x) zwar abhören, sollte jedoch nicht<br />

in der Lage sein, ohne Kenntnis der Funktion dec S (die von Alice geheim<br />

gehalten werden muss – genauer gesagt muss Alice ihren privaten Schlüssel<br />

S geheim halten) x aus y in polynomieller Zeit berechnen zu können<br />

3. Alice kann mit Hilfe von dec S effizient aus y den Wert x berechnen<br />

Das <strong>RSA</strong>-Kryptosystem ist nach seinen Erfindern R. L. Rivest, A. Shamir <strong>und</strong><br />

L. M. Adleman benannt. Es handelt sich bei diesem Verfahren um ein asymmetrisches<br />

oder Public-Key-Kryptosystem. Der Ablauf des <strong>RSA</strong>-Verfahrens wird<br />

wieder in unserem Model als Kommunikation zwischen Alice <strong>und</strong> Bob formuliert.<br />

Wenn Bob an Alice eine mit <strong>RSA</strong> verschlüsselte Nachricht, die wir uns<br />

als natürliche Zahl vorstellen, schicken möchte gehen beide nach dem folgenden<br />

Protokoll vor:<br />

Protokoll 3.1. (Das <strong>RSA</strong>-Verfahren) Gegeben sei ein Sicherheitsparameter<br />

n ∈ N. Bevor Alice <strong>und</strong> Bob miteinander kommunizieren können, trifft Alice die<br />

folgenden Vorbereitungen:


12 3 DAS <strong>RSA</strong>-VERFAHREN<br />

(1) Alice wählt zufällig zwei verschiedene Primzahlen p <strong>und</strong> q im Intervall<br />

[⌈2 n−1<br />

2 ⌉, ⌊2 n 2 ⌋].<br />

(2) Sie berechnet N := p · q <strong>und</strong> ϕ(N) = (p − 1) · (q − 1).<br />

(3) Dann wählt sie e ∈ R {2, . . . , ϕ(N) − 2} mit ggT(e, ϕ(N)) = 1.<br />

(4) Alice bestimmt d mit e · d ≡ 1 mod ϕ(N).<br />

(5) Schließlich veröffentlicht sie K := (N, e) als ihren öffentlichen Schlüssel<br />

<strong>und</strong> hält das Paar S := (N, d) geheim.<br />

(6) Die Werte p, q <strong>und</strong> ϕ(N) löscht Alice.<br />

Angenommen Bob möchte an Alice die Nachricht x mit x ∈ {0, . . . , N − 1}<br />

schicken:<br />

(7) Bob berechnet y := x e mod N <strong>und</strong> schickt y an Alice.<br />

Alice kann dann die Nachricht y wie folgt entschlüsseln:<br />

(8) Alice berechnet x ⋆ := y d mod N.<br />

Dann gilt x ⋆ = x.<br />

Beweis. (Korrektheit) Wir müssen x ⋆ = x zeigen. Ist x ∈ Z × N<br />

, so folgt die<br />

Behauptung unmittelbar aus dem Satz von Euler 2.8 <strong>und</strong> e · d ≡ 1 mod ϕ(N),<br />

denn ist e · d − 1 = k · ϕ(N) <strong>für</strong> ein k ∈ N, so folgt: x ⋆ ≡ x e·d ≡ x e·d−1 ·<br />

x ≡ (x ϕ(N) ) k · x ≡ 1 · x ≡ x mod N. Für ein allgemeines x ∈ Z N gilt ebenso<br />

x e·d ≡ x e·d−1 · x ≡ x k·ϕ(N) · x ≡ x k·(p−1)·(q−1) · x mod N. Wir erhalten also x e·d ≡<br />

(x (p−1) ) k·(q−1) · x ≡ x mod p <strong>und</strong> x e·d ≡ (x (q−1) ) k·(p−1) · x ≡ x mod q, wobei die<br />

Identitäten <strong>für</strong> x ≡ 0 mod p <strong>und</strong> x ≡ 0 mod q trivialerweise richtig sind <strong>und</strong> <strong>für</strong><br />

x ≢ 0 mod p <strong>und</strong> x ≢ 0 mod q aus dem kleinen Satz von Fermat 2.9 folgen. Da<br />

p <strong>und</strong> q teilerfremd sind <strong>und</strong> beide x e·d − x teilen, folgt auch N | x e·d − x, also<br />

x e·d − x ≡ 0 mod N <strong>und</strong> damit die Behauptung.<br />

Beispiel 3.2. Betrachten wir die Primzahlen<br />

p = 13 <strong>und</strong> q = 7,<br />

so ergibt sich in der Notation von oben:<br />

N = 91.


13<br />

Wegen ϕ(p · q) = (p − 1) · (q − 1) folgt<br />

Geben wir uns<br />

ϕ(N) = 72.<br />

e = 47<br />

als Bestandteil des öffentlichen Schlüssels vor, so ergibt sich der private Schlüssel<br />

d als modulares Inverses von e modulo ϕ(N), also als Inverses von 47 modulo 72.<br />

Zur Berechnung von d verwenden wir daher den Erweiterten Euklidischen Algorithmus<br />

1.7. Dieser liefert bei Eingabe von a = 72 <strong>und</strong> b = 47 die Elemente<br />

1, −15, 23, d.h.<br />

1 = ggT(72, 47) = (−15) · 72 + 23 · 47.<br />

Reduktion der gesamten Gleichung modulo ϕ(N) = 72 liefert<br />

also<br />

d.h.<br />

1 mod 72 ≡ (−15 mod 72) · (72 mod 72) +(23 mod 72) · (47 mod 72),<br />

} {{ }<br />

≡0 mod 72<br />

ist der gesuchte private Schlüssel.<br />

1 mod 72 ≡ (23 mod 72) · (47 mod 72),<br />

d = 23<br />

Nehmen wir nun an, wir hätten die verschlüsselte Botschaft<br />

x ⋆ = 32<br />

empfangen <strong>und</strong> sollten diese entschlüssel. Dann berechnen wir<br />

x ≡ (x ⋆ ) d ≡ (32 mod 91) 23 ≡ 37 mod 91<br />

mit Hilfe des Algorithmus 1.1 <strong>für</strong> “Repeated Squaring” (die Binärdarstellung<br />

von d <strong>für</strong> das Repeated Squaring ist 1 0 1 1 1).<br />

4 Ausgewählte Übungsaufgaben mit Lösungen<br />

In der Nummerierung der Aufgaben auf den schriftlichen Übungsblättern diskutieren<br />

wir noch einmal einige ausgewählte Aufgaben zu dem Themenkomplex<br />

“Elementare <strong>Zahlentheorie</strong>”:


14 4 AUSGEWÄHLTE ÜBUNGSAUFGABEN MIT LÖSUNGEN<br />

4.1 Aufgabe 16: (Primfaktoren)<br />

Es sei n ∈ N keine Primzahl. Zeigen Sie, dass es eine Primzahl p gibt mit p | n<br />

<strong>und</strong> p ≤ ⌈ √ n ⌉. Dabei bezeichnet ⌈a⌉ <strong>für</strong> eine beliebige reelle Zahl a die kleinste<br />

ganze Zahl g, so dass g ≥ a gilt (“Aufr<strong>und</strong>en” auf die nächst größere ganze Zahl).<br />

Musterlösung:<br />

Da n keine Primzahl ist, gibt es a <strong>und</strong> b mit 1 < a, b < n <strong>und</strong> n = a · b. Nach dem<br />

Satz über die Primfaktorzerlegung gibt es Primzahlen p 1 <strong>und</strong> p 2 mit p 1 | a <strong>und</strong> p 2 | b.<br />

Wären p 1 , p 2 > ⌈ √ n ⌉, so folgte ⌈ √ n ⌉ 2 < p 1 · p 2 ≤ a · b = n. Andererseits ist aber<br />

n 2 ≤ ⌈ √ n ⌉ 2 , was einen Widerspruch ergibt. Also ist p 1 oder p 2 kleiner oder gleich<br />

⌈ √ n ⌉.<br />

4.2 Aufgabe 17: (Restklassen modulo Primpotenzen)<br />

Es sei p eine Primzahl <strong>und</strong> k ∈ N. Wir betrachten die Menge der Restklassen<br />

Z p k. Zu a ∈ {0, 1, 2, . . . , p k − 1} sei<br />

α 0 + α 1 · p + . . . + α k−1 · p k−1<br />

die p-adische Darstellung der Zahl a (also insbesondere α i ∈ {0, 1, 2, . . . , p − 1}<br />

<strong>für</strong> alle i). Man nennt a eine Einheit modulo p k , wenn a <strong>und</strong> p k teilerfremd sind,<br />

d.h. wenn ggT(a, p k ) = 1 gilt.<br />

(i) Zeigen Sie, dass a genau dann eine Einheit modulo p k ist, wenn α 0 ≠ 0<br />

gilt.<br />

(ii) Wie viele solcher Einheiten gibt es in Z p k? Begründen Sie Ihre Antwort<br />

schlüssig.<br />

Musterlösung:<br />

(i) Es ist a genau dann eine Einheit modulo p, wenn ggT(a, p) ≥ p. Dies ist aber<br />

genau dann der Fall, wenn <strong>für</strong> a = α 0 + α 1 · p + . . . + α k−1 · p k−1 gilt, dass α 0 ≠ 0 ist.<br />

(ii) Nach Teil (i) wissen wir, dass a genau dann eine Einheit modulo p ist, wenn<br />

α 0 ≠ 0 gilt. Die Zahlen α 1 , . . . , α k−1 aus der p-adischen Zahldarstellung von a können<br />

wir also beliebig aus der Menge {0, 1, 2, . . . , p − 1} wählen <strong>und</strong> erhalten mit<br />

α 0 + α 1 · p + . . . + α k−1 · p k−1<br />

immer eine Einheit modulo p, sofern nur α 0 ≠ 0 gilt. Daher gibt es genau<br />

(p − 1) · p · . . . · p = (p − 1) · p k−1<br />

} {{ }<br />

(k−1)-mal


4.3 Aufgabe 19: (Einheiten, Nullteiler <strong>und</strong> Partitionen) 15<br />

Einheiten. Diese Zahl stimmt natürlich mit ϕ(p k ) überein, d.h. mit anderen Worten<br />

haben wir gezeigt, dass gilt:<br />

ϕ(p k ) = (p − 1) · p k−1 .<br />

4.3 Aufgabe 19: (Einheiten, Nullteiler <strong>und</strong> Partitionen)<br />

Sei m ∈ N, m ≥ 2. Es sei ferner N (Z m ) die Menge aller Nullteiler von Z m .<br />

Zeigen Sie, dass {N (Z m ), Z × m} eine Partition von Z m ist.<br />

Musterlösung:<br />

Wäre Z × m ∩ N (Z m ) ≠ ∅, so gäbe es ein Element [a] m ∈ Z m mit [a] m ∈ Z × m <strong>und</strong><br />

[a] m ∈ N (Z m ). Dann ist dieses Element verschieden von [0] m , da [0] m /∈ Z × m. Wegen<br />

[a] m ∈ Z × m gibt es ein [b] m ∈ Z × m mit [1] m = [a] m · [b] m . Ferner gibt es wegen [a] m ∈<br />

N (Z m ) ein [n] m ∈ N (Z m ), [n] m ≠ [0] m , mit 0 = [n] m · [a] m . Multiplikation von<br />

[1] m = [a] m · [b] m mit [n] m liefert:<br />

[n] m = [n] m · [a] m · [b] m = ([n] m · [a] m<br />

} {{ }<br />

=[0] m<br />

) · [b] m = [0] m .<br />

Widerspruch zu [n] m ≠ [0] m . Also folgt Z × m ∩ N (Z m ) = ∅.<br />

Um zu zeigen, dass Z m = Z × m ∪ N (Z m ) gilt, genügt es zu zeigen, dass jedes bezüglich<br />

der Multiplikation in Z m nicht invertierbare Element ein Nullteiler von Z m ist. Sei<br />

[x] m ∈ Z m \ Z × m, 0 ≤ x ≤ m − 1. Ist [x] m = [0] m , so ist [x] m ein Nullteiler. Ist [x] m ≠<br />

[0] m , so gibt es einen echten Teiler g > 1 mit g | x <strong>und</strong> g | m (wäre ggT(x, m) = 1, so<br />

wäre [x] m ja invertierbar, also ein Element von Z × m). Dann gibt es k, l ∈ {2, . . . , m−1}<br />

mit m = k · g <strong>und</strong> x = l · g. Es folgt:<br />

k · x ≡ m k · (l · g) ≡ m (k · g) · l ≡<br />

}{{} m m · l ≡ m 0.<br />

=m<br />

Wegen k ∈ {2, . . . , m − 1}, folgt [k] m ≠ [0] m . Damit ist aber [x] m ein Nullteiler von<br />

Z m . Dies zeigt die Behauptung.<br />

4.4 Aufgabe 20: (Satz von Wilson)<br />

Sei p eine Primzahl.<br />

(i) Bestimmen Sie alle x ∈ {0, 1, 2, . . . , p − 1} <strong>für</strong> die p ein Teiler von x 2 − 1<br />

ist.


16 4 AUSGEWÄHLTE ÜBUNGSAUFGABEN MIT LÖSUNGEN<br />

(ii) Verwenden Sie (i), um zu zeigen, dass <strong>für</strong> eine beliebige Primzahl p stets<br />

gilt:<br />

1 + 1 · 2 · 3 · . . . · (p − 1) ≡ p 0.<br />

Musterlösung:<br />

(i) Sei x ∈ {1, . . . , p−1}. Wir müssen zeigen, dass aus x 2 ≡ p 1 bereits folgt: x = 1 oder<br />

x = p−1. Es gilt x 2 ≡ p 1 genau dann, wenn x 2 −1 ≡ p 0 genau dann, wenn p ein Teiler<br />

von x 2 − 1 = (x − 1) · (x + 1) ist. Wegen der Eindeutigkeit der Primfaktorzerlegung<br />

<strong>und</strong> da p eine Primzahl ist, muss p ein Teiler von x − 1 oder x + 1 sein. Wegen<br />

x ∈ {1, . . . , p − 1} ist dies nur möglich <strong>für</strong> x = 1 oder x = p − 1. Also sind nur [1] p<br />

<strong>und</strong> [p − 1] p in Z × p bezüglich der Multiplikation zu sich selbst invers.<br />

(ii) Für p = 2 ist Behauptung richtig, denn<br />

2−1<br />

∏<br />

i ≡ 2 1 ≡ 2 −1.<br />

i=1<br />

Sei also nun p ≥ 3. Wir definieren die Menge<br />

M := { a ∈ {1, . . . , p − 1} | [a] p ist in Z × p nicht zu sich selbst invers } .<br />

Nach Teil (i) gilt: Z × p = {[1] p , [p − 1] p } ∪ {[a] p | a ∈ M}. Da in Z × p bezüglich der<br />

Multiplikation jedes Element ein Inverses besitzt (Z p = Z × p ∪ {[0] p } ist ein Körper),<br />

gibt es zu jedem [a] p ∈ Z × p \ {[1] p , [p − 1] p } ein b ∈ M, so dass [b] p bezüglich der<br />

Multiplikation invers zu [a] p ist. Folglich ist das Produkt über alle Elemente von M<br />

kongruent 1 modulo p, d.h. ∏<br />

m ≡ p 1.<br />

Damit folgt:<br />

p−1<br />

m∈M<br />

∏<br />

i ≡ p 1 · (p − 1) ·<br />

i=1<br />

Dies zeigt die Behauptung.<br />

∏<br />

m∈M<br />

m ≡ p p − 1 ≡ p −1.<br />

4.5 Aufgabe 23: (Modulares Rechnen)<br />

Sei p ≥ 2 eine Primzahl. Zeigen Sie, dass <strong>für</strong> ein beliebiges Element<br />

a ∈ {1, . . . , p − 1} gilt: a p−1<br />

2 ≡ p 1 oder a p−1<br />

2 ≡ p −1.


LITERATUR 17<br />

Musterlösung:<br />

Sei a ∈ {1, . . . , p − 1}. Wir setzen y := a p−1<br />

2 <strong>und</strong> müssen zeigen, dass y ≡ p 1 oder<br />

y ≡ p −1. Nach dem Kleinen Satz von Fermat folgt:<br />

y 2 = (a p−1<br />

2 ) 2 = a p−1 ≡ p 1.<br />

Also ist y eine der Lösungen der Gleichung z 2 ≡ p 1. Da Z p ein Körper ist, hat die<br />

Gleichung z 2 ≡ p 1 maximal zwei verschiedene Lösungen. Da sowohl 1 als auch p − 1<br />

Lösungen der Gleichung sind, folgt y = 1 oder y = p − 1. Damit gilt aber y ≡ p 1 oder<br />

y ≡ p p − 1 ≡ p −1.<br />

Literatur<br />

[1] J. A. Buchmann, Introduction to Cryptography, Undergraduate Texts in Mathematics,<br />

second edition, Springer-Verlag, 2001<br />

[2] J. Blömer, Vorlesungen zum <strong>RSA</strong>-Verfahren, Universität Paderborn, 2002<br />

[3] J. Blömer, Vorlesungen zu Algorithmen in der <strong>Zahlentheorie</strong>, Universität<br />

Paderborn, 2002<br />

[4] S. Bosch, Algebra, Springer Lehrbuch, 3. Auflage, Springer-Verlag, 1999<br />

[5] P. B<strong>und</strong>schuh, <strong>Zahlentheorie</strong>, Springer Lehrbuch, 2. Auflage, Springer-<br />

Verlag, 1992<br />

[6] H. Cohen, A Course in Computational Algebraic Number Theory, Graduate<br />

Texts in Mathematics 138, Springer-Verlag, 1993<br />

[7] J. Daemen, V. Rijmen, AES Proposal: The Rijndael Block Cipher, Document<br />

version 2 vom 03.09.1999, erhältlich im Web<br />

[8] J. von <strong>zur</strong> Gathen, Cryptography I, Skript zu den Vorlesungen <strong>zur</strong> Kryptographie,<br />

Universität Paderborn, Version vom März 2002<br />

[9] J. von <strong>zur</strong> Gathen & J. Gerhard, Modern Computer Algebra, Cambridge<br />

University Press 1999<br />

[10] G. Hardy, E. Wright, <strong>Zahlentheorie</strong>, R. Oldenbourg, München, 1958, Übersetzung<br />

ins Deutsche des Orginaltitels An Introduction to the Theory of<br />

Numbers erschienen bei Cambridge University Press


18 LITERATUR<br />

[11] K. Ireland, M. Rosen, A Classical Introduction to Modern Number Theorie,<br />

Graduate Texts in Mathematics 84, Second Edition, Springer-Verlag, 1990<br />

[12] K.-H. Kiyek, F. Schwarz, Lineare Algebra, Teubner Studienbücher Mathematik,<br />

B. G. Teubner, 1999<br />

[13] N. Koblitz, A Course in Number Theory and Cryptograpy, Graduate Texts<br />

in Mathematics 114, Second Edition, Springer-Verlag, 1994<br />

[14] U. Krengel, Einführung in die Wahrscheinlichkeitstheorie <strong>und</strong> Statistik,<br />

Vieweg Studium – Aufbaukurs Mathematik, 5. Auflage, Vieweg Verlag, 2000<br />

[15] H. Kurzweil, B. Stellmacher, Theorie der endlichen Gruppen – Eine<br />

Einführung, Springer Lehrbuch, 1. Auflage, Springer-Verlag, 1998<br />

[16] A. J. Menezes, P. C. van Oorschot, S. A. Vanstone, Handbook of Applied<br />

Cryptography, CRC Press, Boca Raton, Florida, 1997<br />

[17] G. Scheja, U. Storch, Lehrbuch der Algebra (Unter Einschluß der Linearen<br />

Algebra) Teil 1, Mathematische Leitfäden, B. G. Teubner, 1994<br />

[18] G. Scheja, U. Storch, Lehrbuch der Algebra Teil 2, Mathematische<br />

Leitfäden, B. G. Teubner, 1994<br />

[19] A. Weil, Basic Number Theory, Die Gr<strong>und</strong>lehren der Mathematischen Wissenschaften<br />

in Einzeldarstellungen Vol. 144, Springer-Verlag, 1973

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!