Kapitel 2. Elementare Zahlentheorie 2.1. Primfaktorzerlegung

Werbung
Kapitel 2. Elementare Zahlentheorie
2.1. Primfaktorzerlegung
Menge der ganzen Zahlen Z = {. . . , −3, −2, −1, 0, 1, 2, 3, . . .}
Addition
Z × Z −→ Z,
(a, b) 7−→ a + b
Inverse
Z −→ Z,
a 7−→ −a
Multiplikation
Z × Z −→ Z,
(a, b) 7−→ a · b
Ausgezeichnete Elemente 0, 1 ∈ Z
1
Rechenregeln: für a, b, c ∈ Z gelten
(a + b) + c
=
a + (b + c)
(+ ist assoziativ)
a+b
=
b+a
(+ ist kommutativ)
a+0
=
0+a=a
(0 ist neutrales Element bzgl. +)
a + (−a)
=
(−a) + a = 0
(Inverse bzgl. +)
(a · b) · c
=
a · (b · c)
(· ist assoziativ)
a·b
=
b·a
(· ist kommutativ)
a·1
=
1·a=a
(1 ist neutrales Element bzgl. ·)
a · (b + c)
=
a·b+a·c
(Distributivgesetz)
2
Definition. Eine Menge R mit Abbildungen
R × R −→ R,
R −→ R,
(a, b) 7→ a + b
a 7→ −a
R × R −→ R,
(a, b) 7→ a · b
und ausgezeichneten Elementen 0, 1 ∈ R, welche die obigen Rechenregeln erfüllen,
heißt ein
kommutativer Ring.
3
Beispiel. Die Mengen
Z = {ganze Zahlen}
Q = {rationale Zahlen}
R = {reelle Zahlen}
mit den üblichen Verknüpfungen + und · sind kommutative Ringe.
4
Definition. Sei R ein kommutativer Ring.
R heißt Körper, falls 0 6= 1 und für jedes a ∈ R \ {0} ein b ∈ R existiert mit
a · b = 1.
Bemerkung. Das Element b heißt das (multiplikativ) Inverse von a.
Beispiel.
Z ist kein Körper
Q und R sind Körper
5
Definition. Seien a, b ∈ Z.
a teilt b, geschrieben a | b, falls ein a0 ∈ Z existiert mit aa0 = b.
Schreibweise: a - b, falls nicht a | b.
Beispiel.
2 | 6,
6 | 12,
a | 0,
1 | a,
3-8
a|a
für alle a ∈ Z
6
Behauptung. Aus a | b und b | c
folgt
a | c.
Behauptung. Für a, b ∈ Z gilt: a | b und b | a =⇒ a = b oder a = −b.
Folgerung. | ist eine partielle Ordnung in N.
Behauptung. Seien a, b, c, d ∈ Z. Dann
(1) c | a und c | b =⇒ c | (a + b) und c | (a − b)
(2) c | a =⇒ (cd) | (ad)
7
Definition. Eine Primzahl ist eine ganze Zahl p mit p ≥ 2 und der Eigenschaft
a | p und a > 1 =⇒ a = p
für alle a ∈ Z.
Wir haben schon bewiesen (indirekter Beweis)
Satz. (Euklid) Es gibt unendlich viele Primzahlen.
Bemerkung. Die größte bis heute bekannte Primzahl (Sept. 2006) ist
232582657 − 1 (mit 980835 Dezimalstellen)
8
Variante des Prinzips der vollständigen Induktion.
Für jedes n ∈ N, n ≥ n0 , sei A(n) eine Aussage.
Es gelte:
Induktionsverankerung:
Induktionsschritt:
A(n0 ) ist wahr.
Für alle n ∈ N gilt:
Ist A(k) wahr für alle n0 ≤ k ≤ n, so ist A(n + 1) wahr.
Dann ist A(n) wahr für alle n ≥ n0 .
9
Satz. Jede Zahl n ∈ N, n ≥ 2, ist ein Produkt von endlich vielen Primzahlen.
Bemerkung. Die algorithmische Faktorisierung von ganzen Zahlen ist ein sehr
schwieriges Problem. Darauf beruhen heute einige Kryptosysteme.
10
Satz. Die Zerlegung einer Zahl n ∈ N, n ≥ 2, in Primzahlen ist eindeutig bis auf die
Reihenfolge der Primfaktoren. D.h. ist
n = p1 · p2 . . . p r = q 1 · q 2 . . . q s
mit r, s ≥ 1 und Primzahlen p1 , . . . pr , q1 , . . . , qs ,
so folgt r = s und es gibt eine bijektive Abbildung
α : {1, 2, . . . , r} −→ {1, 2, . . . , r}, sodass
pi = qα(i)
für 1 ≤ i ≤ r.
Beweis später.
11
2.2 Darstellung ganzer Zahlen
Definiere N0 = {0, 1, 2, 3, . . .}.
Satz. Zu (a, b) ∈ N20 mit b > 0 gibt es genau ein Paar (q, r) ∈ N20 mit
a = qb + r und 0 ≤ r < b
Bezeichnung:
q heißt der Quotient und r der Rest bei der Division von a durch b:
q = a quot b,
r = a rem b.
12
Algorithmische Beschreibung
Eingabe: a, b ∈ N0 , wobei b ≥ 2.
Ausgabe: Liste R (b-adische Darstellung von a)
R ←− ( ) {leere Liste}
while a 6= 0 do
r ←− a rem b
a ←− a quot b
leftappend r to R
end-while
end.
13
Definition. Sei b ∈ N, b ≥ 2. Seien a, l ∈ N.
Ein Tupel (rl−1 , rl−2 , . . . , r0 ) ∈ Nl0 mit rl−1 6= 0 und rk < b für 0 ≤ k < l, heißt
b-adische Darstellung von a ∈ N, falls
a = rl−1 bl−1 + rl−2 bl−2 + . . . + r1 b + r0 .
Man schreibt auch
a = (rl−1 rl−2 . . . r0 )b
und nennt b die Basis.
b = 2 Dual
b = 8 Oktal
b = 10 Dezimal
b = 16 Hexadezimal
14
Satz. Sei b ∈ N, b ≥ 2, a ∈ N0 .
Dann hat a eine b-adische Darstellung und diese ist eindeutig bestimmt.
Beispiel.
3081 = 3 · 103 + 0 · 102 + 8 · 101 + 1 · 100 = (3081)10
3081 = 211 + 210 + 23 + 20 = (110000001001)2
3081 = 12 · 162 + 9 · 160 = (C09)16
(Man schreibt hier A, B, C, D, E, F statt 10, 11, 12, 13, 14, 15.)
15
2.3 GGT und Euklidischer Algorithmus
Definition. Seien a, b ∈ Z. Eine Zahl c ∈ N0 heißt größter gemeinsamer Teiler
(ggT) von a und b, falls gilt:
(1) c | a und c | b
(2) ∀d ∈ Z (d | a und d | b =⇒ d | c)
Bemerkung. Der ggT ist eindeutig bestimmt (falls er existiert).
Bezeichnung c = ggT(a, b)
Definition. a, b ∈ Z heißen teilerfremd, falls ggT(a, b) = 1.
16
Gibt es immer einen ggT?
Wenn ja, wie berechnet man ihn (effizient)?
Lemma. Sei a = qb + r, wobei a, b, q, r ∈ Z.
Dann gilt ggT(a, b) = ggT(b, r).
17
Euklidischer Algorithmus
Eingabe: (a, b) ∈ N20 mit b 6= 0.
Ausgabe: ggT(a, b)
while b 6= 0 do
q ←− a quot b
r ←− a rem b
a ←− b
b ←− r
end-while
return(a)
end.
18
Der Algorithmus terminiert, weil b bei jedem Schleifendurchgang kleiner wird.
Der Algorithmus arbeitet korrekt (d.h. gemäß Spezifikation) aufgrund des Lemmas.
19
Definition. Der Absolutbetrag von a ∈ Z ist definiert als

 a
falls a ≥ 0,
|a| :=
 −a
sonst.
Bemerkung. ggT(a, b) = ggT(|a|, |b|) für a, b ∈ Z.
Folgerung. Für alle a, b ∈ Z existiert der ggT(a, b).
20
Zurück zum Beispiel a = 126, b = 35
126 = 3 · 35 + 21
35 = 1 · 21 + 14
21 = 1 · 14 + 7
14 = 2 · 7 + 0
21
1 · 126 + 0 · 35
= 126
0 · 126 + 1 · 35
= 35
1 · 126 + (−3) · 35 = 21 (= 126 − 3 · 35)
(−1) · 126 + 4 · 35
= 14 (= 35 − 21)
2 · 126 + (−7) · 35 = 7
(= 21 − 14)
Also für a = 126, b = 35
2 · a + (−7) · b = ggT(a, b)
Das geht allgemein!
22
Erweiterter Euklidischer Algorithmus
Eingabe: (a, b) ∈ N20 mit b 6= 0
Ausgabe: (d, s, t) ∈ Z3 mit d = ggT(a, b) und s · a + t · b = d
r0 ←− a; r1 ←− b
s0 ←− 1; t0 ←− 0
s1 ←− 0; t1 ←− 1
23
i ←− 1
while ri 6= 0 do
qi ←− ri−1 quot ri
si+1 ←− si−1 − qi si
ri+1 ←− ri−1 rem ri
ti+1 ←− ti−1 − qi ti
i ←− i + 1
end-while
return (ri−1 , si−1 , ti−1 )
24
Satz. Der Algorithmus durchlaufe bei Eingabe (a, b) ∈ N20 , b 6= 0, genau ` Schleifen
(` ∈ N0 ). Dann ist rl+1 = 0. Für 1 ≤ i ≤ ` + 1 gilt:
(1) ri < ri−1
falls i ≥ 2
(2) ggT(ri−1 , ri ) = ggT(a, b)
(3) si a + ti b = ri
Folgerung.
(i) Der Algorithmus terminiert.
(ii) Es gilt r` = ggT(a, b) und s` · a + t` · b = ggT(a, b).
25
Nachtrag: Eindeutigkeit der Primfaktorzerlegung.
Lemma. Seien a, b, p ∈ Z und p eine Primzahl. Dann gilt
p | (ab) =⇒ (p | a oder p | b).
Satz. Die Zerlegung einer Zahl n ∈ N, n ≥ 2, in Primzahlen ist eindeutig bis auf die
Reihenfolge der Primfaktoren. D.h. gilt
n = p1 · p2 . . . p r = q 1 · q 2 . . . q s
mit r, s ≥ 1 und Primzahlen p1 , . . . pr , q1 , . . . , qs ,
so folgt r = s und es gibt eine bijektive Abbildung
α : {1, 2, . . . , r} −→ {1, 2, . . . , r} so dass
pi = qα(i)
für 1 ≤ i ≤ r.
26
2.4 Rechnen modulo n
Definition. Sei m ∈ N, m ≥ 1. Zwei Zahlen a, b ∈ Z heißen kongruent modulo m,
falls m | (b − a).
Man schreibt dafür
a ≡m b
oder
a ≡ b (mod m).
Lemma.
(1) ≡m ist eine Äquivalenzrelation in Z.
(2) ≡m ist eine “Kongruenzrelation” in Z, d.h. für a, b, a0 , b0 ∈ Z gilt:
(a ≡m a0 ) ∧ (b ≡m b0 )
(a + b ≡m a0 + b0 ) ∧ (ab ≡m a0 b0 ).
=⇒
27
Definition. Für m, a ∈ Z, m ≥ 1, heißt die Äquivalenzklasse von a
[a]m := {x ∈ Z : x ≡m a}
die Restklasse von a modulo m.
Offensichtlich gilt
a ≡m a0
⇐⇒
[a]m = [a0 ]m .
Definition. Sei m ∈ N, m ≥ 1. Die Menge der Restklassen modulo m ist eine
Partition von Z. Sie wird mit Zm (oder Z/(m)) bezeichnet. Also
Zm = {[a]m : a ∈ Z}.
28
Lemma. Sei m ∈ N, m ≥ 1. Jede Restklasse modulo m enthält eine eindeutig
bestimmte Zahl r ∈ {0, 1, . . . , m − 1}, welche durch Division mit Rest gewonnen
wird:
a = qm + r,
0≤r<m
=⇒ a ≡m r
r ≡m r0
0 ≤ r, r0 < m
=⇒ r = r0
Folgerung. Zm = {[0]m , [1]m , . . . , [m − 1]m } und |Zm | = m.
29
Wir definieren folgende Operationen auf der Menge Zm (m ∈ N, m ≥ 1):
+ : Zm × Zm −→ Zm , ([a]m , [b]m ) 7−→ [a + b]m
− : Zm −→ Zm ,
[a]m 7−→ [−a]m
· : Zm × Zm −→ Zm , ([a]m , [b]m ) 7−→ [a · b]m
Behauptung. Diese Abbildungen sind wohldefiniert, d.h. sie hängen nicht von der
Wahl der Repräsentanten der Äquivalenzklassen ab.
30
Satz. Sei m ∈ N, m ≥ 1. Die Menge Zm mit den Abbildungen +, −, ·
ausgezeichneten Elementen [0]m , [1]m ist ein kommutativer Ring.
Man schreibt:
[a]m + [b]m := [a + b]m
−[a]m := [−a]m
[a]m · [b]m := [a · b]m
31
und den
Beweis. Es müssen die folgenden Rechenregeln gezeigt werden:
Für α, β, γ ∈ Zm gelten
(α + β) + γ
=
α + (β + γ)
α+β
=
β+α
α+0
=
0+α=α
α + (−α)
=
(−α) + α = 0
(Inverse bzgl. +)
(α · β) · γ
=
α · (β · γ)
(· ist assoziativ)
α·β
=
β·α
α·1
=
1·α=α
α · (β + γ)
=
α·β+α·γ
(+ ist assoziativ)
(+ ist kommutativ)
(0 ist Neutralelement von +)
(· ist kommutativ)
(1 ist Neutralement von ·)
(Distributivgesetz)
32
Bemerkung. Sei m ∈ N, m ≥ 1. Die Abbildung
f : Z −→ Zm ,
a 7−→ [a]m
erfüllt folgende Eigenschaften für a, b ∈ Z:
f (a + b) = f (a) + f (b)
f (−a) = −f (a)
f (a · b) = f (a) · f (b)
f (0) = [0]m , f (1) = [1]m
Allgemein nennt man eine Abbildung f : R → S zwischen kommutativen Ringen
mit diesen Eigenschaften einen Ringhomomorphismus.
Das obige f ist also ein surjektiver Ringhomomorphismus.
33
Definition. Sei R ein kommutativer Ring, a ∈ R.
(1) a heißt Einheit, falls es b ∈ R gibt mit a · b = 1 (b heißt Inverses von a).
(2) a heißt Nullteiler, falls es ein b ∈ R\{0} gibt mit a · b = 0.
Bemerkung.
(1) Ist a ∈ R eine Einheit, so ist sein Inverses eindeutig bestimmt. Dieses wird mit
a−1 bezeichnet.
(2) Sind a, b Einheiten, so auch a−1 und a · b. Ferner ist 1 eine Einheit.
(3) 0 ist ein Nullteiler.
Es gilt {a : a Einheit } ∩ {a : a Nullteiler } = ∅.
34
Bemerkung. Sei R ein kommutativer Ring. Dann
R ist ein Körper ⇐⇒ {a ∈ R : a Einheit } = R\{0}.
Bezeichnung:
R× : = {a ∈ R : a Einheit }
heißt die Einheitengruppe des Ringes R.
Was sind die Einheiten in Zm ?
Für welche m ist Zm ein Körper?
35
Satz. Sei m ∈ N, m ≥ 1. Dann
Z×
m = {[a]m : a ∈ Z, ggT(a, m) = 1}.
Ergänzung. Der Beweis zeigt, dass die Inversen mittels des erweiterten Euklidischen
Algorithmus berechnet werden können.
36
Satz. Sei m ∈ N, m ≥ 1. Der Restklassenring Zm ist genau dann ein Körper, wenn
m eine Primzahl ist.
Die endlichen Körper Zp sind außerordentlich wichtig in der Informatik.
Andere Bezeichnung dafür: Fp = Zp für eine Primzahl p.
Sie haben Anwendungen in:
- Codierungstheorie
- Kryptographie
- Komplexitätstheorie
- usw.
37
2.5 Satz von Euler und effizientes Potenzieren
Definition. Die Eulersche Phi-Funktion (L. Euler, 1707-1783) ist definiert durch
ϕ(m) := |Z×
m|
für m ∈ N, m ≥ 1.
Gemäß unserer Beschreibung von Z×
m gilt
ϕ(m) = |{a ∈ Z : 0 ≤ a < m, ggT(a, m) = 1}|.
Bemerkung. Für eine Primzahl p gilt ϕ(p) = p − 1, da ggT(a, p) = 1 für 1 ≤ a < p.
38
Satz. Für eine Primzahl p und e ∈ N, e ≥ 1, gilt
ϕ(pe ) = pe−1 (p − 1).
Bemerkung. Seien m, n teilerfremde Zahlen. Dann gilt
ϕ(mn) = ϕ(m)ϕ(n).
39
Satz von Euler. Seien a, m ∈ Z teilerfremd und m ≥ 1. Dann gilt
aϕ(m) ≡m 1.
Für den Beweis holen wir etwas aus.
40
Definition. Eine Menge G mit Abbildungen
G × G −→ G,
(a, b) −→ a ◦ b
G −→ G,
a −→ a
und einem ausgezeichneten Element e ∈ G heißt Gruppe, falls folgende
Rechenregeln für alle a, b, c ∈ G gelten:
(a ◦ b) ◦ c
=
a ◦ (b ◦ c)
(Assoziativität)
a◦e
=
e◦a=a
(neutrales Element)
a◦a
=
a◦a=e
(Inverse).
Gilt zusätzlich das Kommutativitätsgesetz
a ◦ b = b ◦ a für a, b ∈ G
so heißt G abelsch (oder kommutativ).
41
Beispiel. Sei R ein kommutativer Ring.
1. R ist mit den Festsetzungen
a ◦ b := a + b,
a := −a,
e := 0
eine abelsche Gruppe. Diese heißt die additive Gruppe des Rings und wird mit
(R, +) bezeichnet.
Beispiel: (Z, +), (Q, +), (R, +), (Zm , +)
42
2. R× = {a ∈ R : a Einheit in R} ist mit den Festsetzungen
a ◦ b := a · b,
a := Inverse von a,
e := 1
eine abelsche Gruppe. Diese heißt die Einheitengruppe des Rings und wird mit
(R× , ·) bezeichnet.
Beispiel:
(Z× = {−1, 1}, ·), (Q× = Q\{0}, ·)
Besonders interessant ist die Einheitengruppe Z×
m von Zm .
43
Man schreibt die Operation ◦ in G manchmal
additiv: a ◦ b = a + b, e = 0
oder
multiplikativ: a ◦ b = a · b, e = 1.
44
Definition. Sei G eine Gruppe mit multiplikativ geschriebener Operation. Die
Potenzen von g ∈ G werden rekursiv definiert durch
g0 : = 1
g n : = (g n−1 ) · g
für n ∈ N.
Außerdem definiert man für n ∈ N und g ∈ G
g −n := (g)n .
Bemerkung. g = g −1 . Mit Induktion zeigt man leicht das Potenzgesetz
g n · g m = g n+m
45
für n, m ∈ Z.
Bezeichnung. Eine Gruppe G heißt endlich, falls die Menge G endlich ist.
Satz. Sei G eine endliche abelsche Gruppe (multiplikativ geschrieben).
Dann gilt g |G| = 1 für alle g ∈ G.
46
Wenden diesen Satz auf die Gruppe G = Z×
m an.
Satz von Euler. Seien a, m ∈ Z teilerfremd und m ≥ 1. Dann gilt
aϕ(m) ≡m 1.
Der Satz von Euler liefert für eine Primzahl m = p folgendes Ergebnis:
Kleiner Satz von Fermat (1601-1655).
Für eine Primzahl p und a ∈ Z mit p - a gilt
ap−1 ≡p 1.
47
Algorithmus “Square and Multiply”
Eingabe: Gruppe G, g ∈ G, n ∈ N
Ausgabe: g n
x ← 1; y ← g; k ← n
{Kommentar: g n = y k · x}
while k > 0 do
if 2 | k then
y ← y 2 ; k ← k/2
else
x ← xy; y ← y 2 ; k ←
end-if
end-while
return(x)
end.
48
(k−1)
2
Behauptung. Sei n = α`−1 2`−1 + . . . + α1 2 + α0 mit a`−1 = 1, αi ∈ {0, 1}.
Für 1 ≤ i ≤ l gilt nach dem i-ten Schleifendurchgang
x=g
y=g
αi−1 2i−1 +...+α0
2i
k = α`−1 2`−1−i + . . . + αi+1 2 + αi
Dies folgt leicht mit Induktion nach i.
Insbesondere gilt nach dem `-ten Schleifendurchgang
x=g
α`−1 2`−1 +...+α0
= gn .
Die Ausgabe des Algorithmus ist also tatsächlich g n .
49
2.6 Das RSA Kryptosystem
• Bob möchte Alice eine geheime Nachricht übers Internet schicken.
• Dazu wird der Klartext x von Bob verschlüsselt zum chiffrierten Text y. Dieser
wird übers Internet verschickt. Anschließend entschlüsselt Alice den Text y.
• Traditionellerweise verwenden Alice und Bob zum Ver- und Entschlüsseln den
gleichen geheimen Schlüssel.
• Der sichere Schlüsselaustausch kann problematisch sein.
50
Revolutionäre Idee von Diffi und Hellmann (1976) der asymmetrischen
Kryptosysteme:
• Jeder Teilnehmer hat einen öffentlichen und einen privaten Schlüssel
• Ferner hat man in Abhängigkeit dieser Schlüssel eine
Verschlüsselungsfunktion E
(encrypt)
Entschlüsselungsfunktion D
(decrypt)
Gewünschte Eigenschaften
1. Korrekte Entschlüsselung:
Für jeden Klartext x gilt D(E(x)) = x.
2. Public Key Eigenschaft:
Aus dem privaten Schlüssel kann der öffentliche Schlüssel effizient berechnet
werden, aber nicht umgekehrt.
3. Die Funktion E und D sind effizient berechenbar.
51
Jeder Teilnehmer erzeugt für sich einen privaten Schlüssel und berechnet daraus den
öffentlichen Schlüssel. Der öffentliche Schlüssel wird publiziert.
Ist es überhaupt möglich, so ein System zu konstruieren?
Ja! Mittels Zahlentheorie.
52
RSA System
Seien p, q verschiedene Primzahlen, n = pq
Sei d ∈ N mit ggT(d, ϕ(n)) = 1,
d < ϕ(n).
Privater Schlüssel: (p, q, d).
Berechne e ∈ N mit
ed ≡ϕ(n) 1,
e < ϕ(n),
mittels dem erweiterten Euklidschen Algorithmus.
Öffentlicher Schlüssel: (n, e).
Verschlüsselungsfunktion E : Zn −→ Zn , x 7→ xe
Entschlüsselungsfunktion D : Zn −→ Zn , y 7→ y d
53
Die Funktionen E und D können mittels des Algorithmus “Square and Multiply”
effizient berechnet werden.
Korrekte Entschlüsselung?
Proposition. Seien e, d, n wie im RSA System. Dann gilt für alle x ∈ Z
xed ≡n x.
54
Zur “Sicherheit”
Satz. Die folgenden drei Probleme sind “polynomialzeitäquivalent“ (gegeben n)
(1) Faktorisierung von n
(2) Berechnen von ϕ(n)
(3) Berechnen von d
Wir verzichten auf den Beweis.
Die Faktorisierung von n = pq für Primzahlen p, q etwa gleicher Größe (z.B. 100
Dezimalstellen) gilt als sehr schwieriges Problem. Anderseits kann man leicht
Primzahlen dieser Größe erzeugen.
55
Herunterladen