Anhang I: Kurzskriptum zur Zahlentheorie

Werbung
Anhang I zur Vorlesung Kryptologie:
Elementare Zahlentheorie
von
Peter Hellekalek
Fakultät für Mathematik, Universität Wien, und
Fachbereich Mathematik, Universität Salzburg
Tel: +43-(0)662-8044-5310
Fax: +43-(0)662-8044-137
e-mail: [email protected]
web: http://random.mat.sbg.ac.at/
Wien, 24. April 2009
Inhaltsverzeichnis
1 Teilbarkeit
3
2 Verteilung der Primzahlen
8
3 Kongruenzen
10
4 Literaturempfehlungen
14
2
1
Teilbarkeit
Teiler, Vielfaches
a, b ∈ Z
b teilt a, wenn gilt: ∃c ∈ Z : a = b · c
b heißt ein Teiler von a, a heißt ein Vielfaches von b
. . . b|a
Größter gemeinsamer Teiler
a, b ∈ Z
d heißt der größte gemeinsamer Teiler von a und b, wenn gilt:
1. d ∈ N
2. d|a und d|b
3. wenn e|a und e|b ⇒ e|d
. . . (a, b), ggT(a, b)
Teilerfremd
Zwei ganze Zahlen a und b mit (a, b) = 1 heißen teilerfremd.
. . . teilerfremd
Frage
Seien a, b ∈ Z gegeben: wie berechnet man (a, b)?
Antwort: mit dem Euklidschen Algorithmus!
Division mit Rest
a∈Z
b∈N
⇒
∃q, r eindeutig bestimmt, sodass gilt:
a = q · b + r, 0 ≤ r < b
[falls b ∈ Z, b < 0: rechnen mit −b]
. . . Division mit Rest
3
Euklidscher Algorithmus
a∈Z
b∈N
⇒
a
b
r0
= q0 · b + r0
= q1 · r0 + r1
= q2 · r1 + r2
..
.
0 ≤ r0 < b
0 ≤ r1 < r0
0 ≤ r2 < r1
rk
= qk+2 · rk+1 + rk+2
..
.
0 ≤ rk+2 < rk+1
rn
rn+1
= qn+2 · rn+1 + rn+2
= qn+3 · rn+2
0 < rn+2
rn+3 = 0
. . . Euklidscher Algorithmus
Eigenschaften des größten gemeinsame Teilers
Wir notieren einige wichtige Eigenschaften von (a, b):
• Der größte gemeinsame Teiler von a und b ist der letzte nicht verschwindende Rest
im Euklidschen Algorithmus.
• (a, b) ist eindeutig bestimmt.
• ∃ m0 , n0 ∈ Z : (a, b) = m0 · a + n0 · b
(Wir erhalten ein derartiges Paar m0 , n0 durch “Zurückrechnen” im Euklidschen
Algorithmus.)
a
b
,
=1
•
(a, b) (a, b)
Beispiele
Finde (6172530,6279) und bestimme m0 , n0 .
6172530 = 983 · 6279 + 273
6279 = 23 · 273
273 ist der letzte nicht verschwindende Rest und damit der größte gemeinsame Teiler von
6172530 und 6279. Als Linearkombination ergibt sich aus obiger Berechnung:
273 = 1 · 6172530 + (−983) · 6279
Finde (111,39) und bestimme m0 , n0 .
111 = 2 · 39 + 33
39 = 1 · 33 + 6
33 = 5 · 6 + 3
6=2·3
4
Damit ist (111, 39) = 3. Für die Bestimmung von m0 und n0 scheint eine etwas länglichere
Rückeinsetzung leider unumgänglich:
3 = 33 − 5 · 6 =
= 33 − 5 · (39 − 33) =
= (−5) · 39 + 6 · 33 =
= (−5) · 39 + 6 · (111 − 2 · 39) =
= 6 · 111 + (−17) · 39
Es gibt eine Variante des Euklidischen Algorithmus, bei der die Rückeinsetzung entfällt,
der sogenannte erweiterte Euklidische Algorithmus.
Erweiterter Euklidischer Algorithmus
Seien a und b zwei natürliche Zahlen mit a ≥ b. Dann gilt:
1. Die durch den folgenden Algorithmus festgelegten Zahlen qi , ri , mi und ni sind
eindeutig bestimmt.
2. Der Algorithmus bricht nach endlich vielen Schritten ab.
3. Für den letzten nicht verschwindenden Rest rk gilt
rk = (a, b) = mk a + nk b.
Die Startwerte des Algorithmus sind wie folgt definiert:
r0 = a
m0 = 1
n0 = 0
r1 = b
m1 = 0
n1 = 1
Die weiteren Zahlen qi (i ≥ 2) und ri sind wie im klassischen Euklidischen Algorithmus
definiert. Die Zahlen mi und ni sind wie folgt definiert:
ri = ri−2 − qi ri−1 ,
wobei qi =
ri−2 ri−1
mi = mi−2 − qi mi−1 ,
ni = ni−2 − qi ni−1 .
Lineare diophantische Gleichung
Dieser Typ von Gleichung ist ähnlich leicht zu lösen wie in der linearen Algebra.
1. Definition
a, b, c ∈ Z, nicht alle gleich Null
a·x+b·y =c
2. Lösbarkeitsbedingung
Gleichung (1) ist lösbar ⇐⇒ (a, b)|c
5
(1)
3. Allgemeine Lösung
Sei x0 , y0 eine bestimmte Lösung von (1). Man nennt ein derartiges Paar x0 , y0
eine partikuläre Lösung der Gleichung (1). Die allgemeine Lösung x, y der linearen
diophantischen Gleichung (1) kann dann sofort angegeben werden. Wir setzen dazu
a0 = a/(a, b) und b0 = b/(a, b). Für jede Lösung x, y der Gleichung (1) gilt die
Beziehung
x
y
= x0 + b0 · t
0
= y0 − a · t,
(2)
mit t ∈ Z, beliebig
4. Lösungsmethode
4.1 Überprüfen die Lösbarkeitsbedingung (a, b)|c. Wenn nicht erfüllt: Fertig! Wenn
erfüllt: nächster Schritt
4.2 Mittels Euklidschem Algorithmus:
Bestimmen zwei Zahlen m0 , n0 ∈ Z : m0 · a + n0 · b = (a, b)
c
4.3 Sei c0 =
(a, b)
4.4 Setzen x0 = c0 · m0 , y0 = c0 · n0 .
Wegen c = c0 · (a, b) sind wir damit fertig, wir haben eine partikuläre Lösung
x0 , y0 der Gleichung (1) gefunden. Damit kann man sofort die allgemeine
Lösung angeben, siehe dazu die Beziehung (2).
. . . lineare diophantische Gleichung
Beispiel
Bestimme alle Lösungen der linearen diophantischen Gleichung
111x + 39y = 12
(3)
1. Überprüfen die Lösbarkeitsbedingung: (111, 39) = 3 | 12.
2. Mittels Euklidschem Algorithmus:
111 · 6 + 39 · (−17) = 3
3. Sei c0 =
12
=4
(111, 39)
4. Setzen x0 = 4 · 6 = 24, y0 = 4 · (−17) = −68.
Wir haben damit eine partikuläre Lösung (x0 , y0 ) der Gleichung (3) gefunden: (24,
-68). Damit kann man sofort die allgemeine Lösung angeben, siehe dazu die Beziehung (2):
x = 24 + 13 · t
(4)
y = −68 − 37 · t,
6
mit t ∈ Z, beliebig
Primzahl
Eine ganze Zahl p heißt eine Primzahl, wenn gilt:
1. p ∈ N
2. p > 1
3. b|a ⇒ |b| ∈ {1, a}
Bezeichne P die Menge der Primzahlen, P = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, . . . }
. . . Primzahlen, P
Fundamentalsatz der Zahlentheorie
Für alle n ∈ N gilt:
α2
αr
1
n = pα
1 · p2 · . . . · pr
mit pi prim und αi ∈ N, pi 6= pj für i 6= j.
. . . Primfaktorzerlegung (PFZ)
Eulersche ϕ-Funktion
Für n ∈ N definieren wir
ϕ(n) = # {a, 1 ≤ a ≤ n : (a, n) = 1}
Eigenschaften von ϕ
p prim
⇒ ϕ(p) = p − 1
⇒ ϕ(pα ) = pα − pα−1
n=
1
pα
1
·
2
pα
2
· ... ·
r
pα
r
p, q prim , p 6= q
Speziell:
(α ∈ N)
α2
αr
1
PFZ ⇒ ϕ(n) = ϕ(pα
1 ) · ϕ(p2 ) · . . . · ϕ(pr )
⇒ ϕ(p · q) = (p − 1) · (q − 1)
Eine kleine Tabelle zu ϕ
n
ϕ
n
ϕ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
. . . Eulersche ϕ-Funktion
7
2
Verteilung der Primzahlen
Die Funktion π(x)
Wir definieren
π(x) = #{p prim : p ≤ x}
(x ∈ R)
. . . π(x)
Einfache Überlegungen
Bereits Gauss führte derartige Rechnungen durch:
x
π(10x )
1
2
3
4
5
6
7
8
9
10
11
12
4
25
168
1229
9592
78498
664579
5761455
50847534
455052511
4118054813
37607912018
10x
π(10x )
2.5
4.0
6.0
8.1
10.4
12.7
15.0
17.4
19.7
22.0
24.3
26.6
x
π(10x )
1
2
3
4
5
6
7
8
9
10
11
12
4
25
168
1229
9592
78498
664579
5761455
50847534
455052511
4118054813
37607912018
10x / log 10x
π(10x )
1.09
0.87
0.86
0.88
0.91
0.92
0.93
0.94
0.95
0.95
0.96
0.96
Primzahlsatz
De la Vallée-Poussin und Hadamard (1896)
lim
n→∞
π(n)
=1
n/ log n
. . . Primzahlsatz
Tschebyscheff et al.
Um 1856 bewies Tschebyscheff die Ungleichung
0.98 ·
n
n
< π(n) < 1.11 ·
log n
log n
8
∀ n hinreichend groß
Primzahlen mit L Binärstellen
Aufgabe: Wie groß ist die Wahrscheinlichkeit pL , dass eine ungerade Zahl mit L Stellen
in der dyadischen Entwicklung prim ist?
Abschätzungen für pL
Es gilt (log2 bezeichnet den Logarithmus zur Basis 2)
aL < pL < bL
mit
aL = 2 · log2 e ·
L − 2 − 5/2 log2 e
(L − 1/2 log2 e)(L − 1 − 3/2 log2 e)
bL = 2 · log2 e ·
L − 2 + 1/2 log2 e
(L − 3/2 log2 e)(L − 1 − 1/2 log2 e)
und
Wir haben dabei nicht die Ungleichung von Tschebyscheff oder den Primzahlsatz verwendet, sondern die Funktion π(x) durch x/(ln x − 1/2) nach unten und durch x/(ln x − 3/2)
nach oben abgeschätzt. Diese Abschätzung stammt von Rosser und Schoenfeld (1962)
und gilt für x ≥ 67.
L
256
384
512
640
768
1024
2048
4096
aL
0.011194
0.007480
0.005616
0.004496
0.003749
0.002813
0.001408
0.000704
bL
0.011387
0.007565
0.005664
0.004527
0.003770
0.002825
0.001411
0.000705
Anmerkung
Zur Abschätzung der Wahrscheinlichkeit pL wird sonst meist der Primzahlsatz verwendet
und der Wert π(x) durch die Zahl x/ log x ersetzt. Dies ist wesentlich ungenauer als die
von uns gewählte Methode.
9
3
Kongruenzen
Kongruente Zahlen
Sei m ∈ N, m ≥ 2 fest.
a, b ∈ Z
a heißt kongruent b modulo m, wenn m|a − b.
Die Zahl m heißt der Modul der Kongruenz.
. . . a ≡ b (mod m)
. . . a ≡ b(m)
Anmerkungen
Es gilt
• a ≡ b (mod m) ⇐⇒ ∃k ∈ Z :
a=b+k·m
• a und b lassen bei der Division durch m denselben Rest
Rechenregeln für Kongruenzen
Sei a ≡ b (mod m), c ≡ d (mod m). Dann gelten folgende Rechenregeln
1. ra + sc ≡ rb + sd (mod m) ∀r, s ∈ Z
2. ac ≡ bd (mod m)
3. an ≡ bn (mod m) ∀n ∈ Z, n ≥ 0
4. f (a) ≡ f (b) (mod m) ∀f ∈ Z[X]
(f ∈ Z[X]: f ist ein Polynom mit ganzzahligen Koeffizienten)
5. t ∈ Z, t|m
⇒ a ≡ b (mod |t|)
6. k ∈ Z, k 6= 0
a ≡ b (mod m) ⇔ ak ≡ bk
7. ac ≡ bc (mod m), d = (c, m)
⇒ a ≡ b (mod
(mod |k|m)
m
d)
Spezialfall: (c, m) = 1
ac ≡ bc (mod m) ⇒ a ≡ b (mod m)
8. a ≡ b (mod mi ),
i = 1, . . . , r ⇔ a ≡ b (mod [m1 , . . . , mr ])
Spezialfall: (mi , mj ) = 1 für i 6=
Qjr
a ≡ b (mod mi ) ⇔ a ≡ b (mod i=1 mi )
10
Restklassen modulo m
Sei a ∈ Z. Alle ganzen Zahlen b, die kongruent zu a modulo m sind, fassen wir zu einer
Menge zusammen, der Restklasse von a modulo m:
a = {b ∈ Z : a ≡ b (mod m)}
. . . Restklasse modulo m
Restklassenring modulo m
Die Menge der Restklassen modulo m wird mit Zm bezeichnet,
Zm = {0, 1, . . . m − 1}.
Wir können zwei Restklassen a und b addieren und multiplizieren, wie wir dies mit ganzen
Zahlen machen (obwohl es sich hier um Mengen und nicht um Zahlen handelt!):
a+b
= a+b
a·b
= a·b
(Zm , +, ·) ist ein kommutativer Ring mit Einselement, der Restklassenring modulo m
. . . Restklassenring modulo m
Wichtiger Spezialfall
(Zm , +, ·) ist ein Körper ⇐⇒ m prim
Wichtige Beziehungen
Zwischen den Mengen a und den ganzen Zahlen a besteht eine wichtige Beziehung:
a ≡ b (mod m)
⇐⇒
a=b
⇐⇒
a und b lassen bei der Division durch m denselben Rest
Prime Restklasse modulo m
Eine Restklasse a ∈ Zm mit (a, m) = 1
. . . prime Restklasse
Prime Restklassengruppe
Wir bezeichnen die Menge der primen Restklassen modulo m mit dem Symbol Z∗m . Dann
ist (Z∗m , ·) eine kommutative Gruppe. Sie wird die prime Restklassengruppe modulo m
genannt und besitzt ϕ(m) Elemente.
. . . prime Restklassengruppe
Wichtiger Spezialfall
Wenn m = p prim ist, dann ist (Z∗p , ·) zyklisch und besitzt Elemente a, deren Potenzen
ak die ganze Gruppe erzeugen:
Z∗p = ak : k = 0, 1, . . . , p − 2
Ein solches Element a von Zp∗ heißt ein erzeugendes Element.
11
Primitivwurzel modulo m
Eine ganze Zahl a mit den beiden Eigenschaften
• (a, m) = 1
∗
• die Restklasse a erzeugt Zm
nennt man eine Primitivwurzel modulo m.
. . . Primitivwurzel modulo m
Diskreter Logarithmus
Sei p prim und sei a eine Primitivwurzel modulo m.
Für eine ganze Zahl b mit (b, m) = 1 heißt die kleinste natürliche Zahl k mit
ak ≡ b (mod m)
der diskrete Logarithmus von b zur Basis a modulo m.
. . . diskreter Logarithmus
Satz von Euler
Sei a ∈ Z mit (a, m) = 1.
Dann gilt
aϕ(m) ≡ 1
(mod m).
. . . Satz von Euler
Satz von Fermat
Sei p prim. Dann gilt
ap−1 ≡ 1
(mod p).
. . . Satz von Fermat
12
Lineare Kongruenz
Unter einer linearen Kongruenz modulo m versteht man eine Kongruenz der Form
ax ≡ b (mod m)
Es sind alle modulo m inkongruenten Zahlen x zu bestimmen, die diese Kongruenz
erfüllen.
. . . Lineare Kongruenz
Lösungsmethode
Die Lösungsmethode sieht wie folgt aus:
1. Überprüfen die Lösbarkeitsbedingung: (a, m)|b.
2. Sei d := (a, m).
Dann bestimmen wir (z.B. mit dem Euklidschen Algorithmus) eine Lösung (x1 , y1 )
der linearen diophantischen Gleichung
ax − my = d.
3. Das Paar (x0 , y0 ) = (x1 · b/d, y1 · b/d) löst die diophantische Gleichung
ax − my = b.
Damit ist x0 eine Lösung der linearen Kongruenz.
4. Die Gesamtheit aller modulo m inkongruenten Lösungen ist gegeben durch
m
m
m
· 2, . . . , x0 +
· (d − 1),
wobei d = (a, m).
x0 , x0 + , x0 +
d
d
d
(5)
Wichtiger Spezialfall
Wenn (a, m) = 1, dann ist die Lösung x0 eindeutig modulo m.
Beispiel
Bestimme alle Lösungen der linearen Kongruenz
111x ≡ 12
(mod 39)
(6)
1. Überprüfen die Lösbarkeitsbedingung: (111, 39) = 3 | 12.
2. Mittels Euklidschem Algorithmus: 111 · 6 − 39 · 17 = 3
Das Paar (x1 , y1 ) = (6, 17) löst daher diese lineare diophantische Gleichung.
b
12
=
= 4. Wir setzen x0 = 4 · 6 = 24 und haben damit eine Lösung
d
(111, 39)
x0 der linearen Kongruenz (6) gefunden.
3. Es gilt
Damit kann man sofort die allgemeine Lösung der linearen Kongruenz angeben,
siehe dazu die Beziehung (5):
39
39
= 37, 24 +
· 2 = 50 ≡ 11 (mod 39).
3
3
Die Menge der modulo 39 inkongruenten Lösungen der linearen Kongruenz (5)
lautet daher der Größe nach geordnet:
24, 24 +
11, 24, 37.
13
4
Literaturempfehlungen
Bücher
Es gibt viele Bücher zur Kryptographie, für fast alle Interessen und Vorkenntnisse.
1. Einführende Lehrbücher
Ein sehr gut passendes Buch für Informatiker ist das Lehrbuch von Ertel[4]. Wesentlich mathematischer ist der Inhalt von Buchmann[3]. Beutelspacher[2] gibt eine
angenehm lesbare Einführung in die wesentlichen Konzepte.
2. Monographien
Für praktisch interessierte Leser (Zielgruppe: Informatiker und Praktiker) eignet
sich Schneier [6]. Ebenfalls empfehlenswert und mathematisch gehaltvoller ist das
Werk von Stinson[8]. Ich empfehle Ihnen Trappe und Washington[9]. Eine Fundgrube für konkrete Beispiele und zahlreiche Anmerkungen zu klassischen Chiffren
ist das Werk von Bauer[1]. Wie bei jeder Fundgrube bedarf es einiger Mühe bei
der Orientierung. Das Handbook of Applied Cryptography [5] ist ein umfassendes
Standardwerk und vor allem für Spezialisten interessant.
3. Zum Schmöckern
Ein besonders interessantes Buch, das man auch Laien empfehlen kann, ist das
Werk von Singh [7]
Literatur
[1] F. L. Bauer. Decrypted Secrets. Springer, Berlin, 1997.
[2] A. Beutelspacher. Kryptologie. Vieweg, Braunschweig, 1996.
[3] J. Buchmann. Einführung in die Kryptographie. Springer Verlag, 1999.
[4] W. Ertel. Angewandte Kryptographie. Vieweg, Braunschweig, 2001.
[5] A. J. Menezes, P. C. van Oorschot, and S.A. Vanstone. Handbook of Applied Cryptography. CRC Press, Boca Raton, 1997.
[6] B. Schneier. Applied Cryptography. Wiley, New York, second edition, 1996.
[7] S. Singh. Geheime Botschaften. DTV München, 2001.
[8] D. R. Stinson. Cryptography. Chapman and Hall/CRC Press, Boca Raton, 3rd edition,
2006.
[9] W. Trappe and L. Washington. Introduction to Cryptography with Coding Theory.
Pearson Prentice Hall, 2nd edition, 2006.
14
Herunterladen