Algorithmische Zahlentheorie und Public Key Kryptographie (Forster)

Werbung
Algorithmische Zahlentheorie und Public Key
Kryptographie (Forster)
Mitgeschrieben von Bernhard Weiß
Mitschrift aus dem SoSe 2009
1
INHALTSVERZEICHNIS
I
Inhaltsverzeichnis
1 Fibonacci-Zahlen
1.1 Schneller Algorithmus zur Berechnung der Fibonacci Zahlen . . . . .
1
1
2 Der Euklidische Algorithmus
2.1 Integritätsbereiche . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Euklidische Ringe . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
6
8
3 Der Restklassenring Z/n
10
4 Die multiplikative Gruppe (Z/m)∗ , Primitivwurzel
13
5 Quatratische Reste. Reziprozitätsgesetzt
19
6 Primzahltest
27
7 Faktorisierungs-Algorithmen
7.1 (p-1)-Faktorisierungs-Verfahren . . . . . . . . . . . . . . . . . . . . .
7.2 Das Fermatsche Faktorisierungs-Verfahren . . . . . . . . . . . . . . .
33
33
34
8 Einführung in die Kryptographie
39
9 Block-Verschlüsselungs-Verfahren
42
Inhaltsverzeichnis
1
1
Fibonacci-Zahlen
Definition 1.1
Die Fibonacci-Zahlen werden rekursiv definiert durch:
fib(0) := 0 fib(1) := 1
fib(n + 2) := fib(n + 1) + fib(n)
fib(n) 0 1 1 2 3 5 8 13 21 34
n
0 1 2 3 4 5 6 7 8 9
Matrix Schreibweise:
fib(n + 1)
1 1
fib(n)
=
fib(n)
1 0
fib(n − 1)
1 1
A :=
1 0
fib(n + 1)
n fib(1)
=A
fib(n)
fib(0) fib(n)
fib(0)
= An
wobei fib(−1) = 1
fib(n − 1)
fib(−1)
fib(1) fib(0)
=E
fib(0) fib(−1)
Satz 1.1
Es gilt:
n
fib(n + 1)
fib(n)
1 1
n
=A =
fib(n)
fib(n − 1)
1 0
Korollar 1.2
fn+1 fn−1 − fn2 = (−1)n
Insbesondere sind fn+1 , fn teilerfremd.
gcd(fn+1 , fn ) = 1
1.1
Schneller Algorithmus zur Berechnung der Fibonacci Zahlen
Satz 1.3
Sei G eine Halbgruppe mit Einselement (multiplikativ geschrieben)
Sei nPeine natürliche Zahl mit Binär Darstellung
n = di=0 bi 2i , bi ∈ {0, 1}, bd = 1
abgekürzt:
n = (bd , . . . b0 )2
Für ein Element x ∈ G kann die Potenz xn mit hächstens 2d Multiplikationen in G
Bemerkung 1.1
Das Naive Ferfahren zur berechnung von xn benötigt n − 1 Multiplikationen.
Exponentielle Komplexität in Anzahl von Stellen von n.
Das Schnelle Verfahren hat Lineare Komplexität
2
Beweis nk := (bd , . . . , bd−k )2
n0 = 1; nd = n
Wir berechnen
der Reihe nach xni
(
2nk
falls bd−k−1 = 0
nk+1 =
2nk + 1 falls bd−k−1 = 1
Sei xi := xni
Dann ist(x0 = x
falls bd−k−1 = 0
x2k
xk+1 =
2
xk · x falls bd−k−1 = 1
Daraus folgt Behauptung.
1 FIBONACCI-ZAHLEN
Explizite Formel für die Fibonacci Zahlen
Ansatz zur Lösung der Rekursionsgleichung:
fn+2 = fn+1 + fn
Ansatz: fn = λn ( λ geeignet)
⇔λ2 = λ +q
1 ⇔λ2 − λ − 1 = 0
√
1 2
1
λ1/2 = 21 ±
5)
+
1
=
(1
±
2
2
Jede Linearkombination xn = c1 λn1 +c2 λn2 Ergibt eine Lösung der Rekursiongleichung.
Wähle c1 und c2 so dass die Anfangsbedinungen x0 = 0, x1 = 1 erfüllt sind.
n
n
Dann gilt fib(n)
√ = c1 λ1 + c2 λ2 ∀n ≥ 0
1
λ1 = 2 (1 + 5) =: g Goldener Schnitt
λ2 = − g1 = 1 − g
Es ergibt sich:
n
)
fib(n) = √15 (g n − (−1)
gn
Es folgt:
gn
)
fib(n) = round( √
5
Satz 1.4
1. fib(2n − 1) = fib(n)2 + fib(n − 1)2
2. fib(2n) = fib(n)2 + 2 fib(n) fib(n − 1)
fn+1 fn
1 1
n
Beweis
= A ,A =
fn fn−1
1 0
2n
n n
Aus A = A A folg
f2n+1 f2n
fn+1 fn
fn+1 fn
=
f2n f2n−1
fn fn−1
fn fn−1
⇒f2n = fn fn+1 + fn−1 fn ⇒ fn f (fn + fn−1 )fn−1 fn
2
f2n−1 = fn2 + fn−1
3
2
Der Euklidische Algorithmus
Definition 2.1
Für ganze Zahlen x, y definiert man:
x|y∃q ∈ Z : x = qy
Bemerkung 2.1
1. y|0∀y ∈ Z
2. 0|x ⇔ x = 0
3. z|y&y|x ⇒ z|x
4. y|x&x|y ⇔ x = ±y
In diesem heißen x, y assoziiert
Beweis „⇐„: Trivial
„⇒„:
Falls x = 0 folgt mit 2., dass y = 0 (y = 0 ⇒ x = 0 analog)
Sei also nun x 6= 0 6= y
y|x ⇒ x = q2 y
x|y ⇒ y = q1 x
⇒x = q2 q1 x
q1 ,q2 ∈Z
Mit Kürzungssatz: 1 = q2 q1 =⇒ q1 = q2 = ±1
5. y|x1 & y|x2 ⇒ y|(λ1 x1 + λ2 x2 ) ∀λ1 , λ2 ∈ Z
6. y|1 ⇔ y = ±1
7. 1|x∀x ∈ Z
Definition 2.2 (Größter gemeinsamer Teiler)
Eine ganze Zahl d heißt größter gemeinsamer Teiler der ganzen Zahlen x, y ⇔
1. d|x&d|y (gemeinsamer Teiler)
2. ∀d0 gemeinsamer Teiler von x, y ⇒d0 |d
Bezeichnung: gcd(x, y)
meistens wird er nichtnegative Repräsentatn gewählt.
Satz 2.1
Der größte gemeinsame Teiler zweier ganzer Zahlen ist (im Falle der existenz) bis
aufs Vorzeichen Eindeutig bestimmt.
Beweis Sind d1 , d2 zwei gcd so folgt aus definition:
d1 |d2 &d2 |d1 ⇒d1 = ±d2
4
2 DER EUKLIDISCHE ALGORITHMUS
Bemerkung 2.2
gcd(x, y) = gcd(y, x)
gcd(x, 0) = |x|
gcd(x, 1) = 1
gcd(x, x) = |x|
Definition 2.3
Für ganze Zahlen x, y bezeichne:
T (x, y)
die Menge aller gemeinsamer Teiler von x und y
Lemma 2.1
Seien x, y, λ ∈ Z
Dann gilt:
T (x, y) = T (x − λy, y)
Satz 2.2
Je zwei ganze Zahlen x, y esitzen einen größten gmeinsamen Teiler. Dieser Kann
durch den nachfolgenden Algorithmus berechnet werden.
Beweis ObdA x 6= 0, y 6= 0, x > 0, y > 0
x0 := x, x1 := y
Sukzessive Teilung mit Rest, bis der Rest null wird.
x0 = q1 x1 + x2 0 < x2 < x1
x1 = q2 x2 + x3 0 < x3 < x2
..
.
xk−2 = qk−1 xk−1 + xk 0 < xk < xk−1
xk−1 = qk xk + 0
Das Verfahren bricht nach endlich vielen Schritten ab.
Behauptung: xk ist gcd von x1 und x2
Beweis (der Behauptung) Aus dem Hilfssatz folgt:
T (x0 , x1 ) = T (x2 , x1 ) = T (x3 , x2 ) = . . . = T (0, xk )
⇒Behauptung
Bemerkung 2.3 (zur Komplexität des Eukl. Algor.)
Worst case:
Bestimmung des gcd zweier aufeinandererfolgender Fibonaccizahlen.:
fn+1 = fn + fn−1
fn = fn−1 + fn−2
..
.
f2 = f1 + f0
|{z}
=0
Inbesondere: gcd(fn+1 , fn ) = 1
Da die Fibonacci-Zahlen exponentiell mit dem Index wachsen, folgt:
5
n = O(log fn )
Also gilt für den Euklidischen Alg.:
Für die Anzahl der Schritte k gilt:
k = O(log |y|)
Die Anzahl der Nötigen Schritte wird durch eine Lineare Funktion der Stellenzahl
von min(|x|, |y|) nach oben abgeschätzt.
⇒Lineare Komplexität
Satz 2.3 (Satz von Bézout)
Seien x, y ∈ Z und d = gcd(x, y)
⇒∃λ, µ ∈ Z :
d = λx + µy
Korollar 2.4
Zwei ganze Zahlen x, y sind genau dann teilerfremd (d.h. gcd(x, y) = 1)
⇔∃λ, µ ∈ Z : 1 = λx + µy
Beweis (Satz von Bézout) Mittels Erweiterten Euklidischen Algor.
x0 = q 1 x1 + x2
..
.
xi−1 = qi xi + xi+1
xi = xi+1 xi+1 + xi+2
..
.
Wir zeigen Induktiv, dass sich alle xi als ganzzahlige Linearkombination
xi = λi x0 + µi x1
schreiben Lassen.
Induktionsanfang: x0 = 1x0 + 0x1
x1 = 0x0 + 1x1
Induktionsschritt: xi−1 = λi−1 x0 + µi−1 x1
xi = λi x0 + µi x1
Aber xi+1 = xi−1 − qi xi
(λi+1 , µi+1 ) = (λi−1 , µi−1 ) − qi · (λi , µi )
Bemerkung 2.4
Man definiert analog den ggT von x1 , . . . , xn ∈ Z.
gcd(x1 , . . . , xn ) = gcd(gcd(x1 , . . . , xn−1 ), xn )
Es existieren λ1 , . . . , . . . λn ∈ Z mit
X
xi = gcd(x1 , . . . xn )
i=1
Definition 2.4 (Kleinstes gemeinsames Vielfaches)
Die Zahl v heißt kgV von x, y ∈ Z wenn gilt
6
2 DER EUKLIDISCHE ALGORITHMUS
1. x|v&y|v (gemeinsames Vielfaches)
2. Ist w irgend ein gemeinsames Vielfaches von x, y so folgt
v|w
Bemerkung 2.5
Das kgV ist (Im Falle der Existenz) bis aufs Vorzeichen eindeutig bestimmt
Beweis Sind v1 und v2 kleinstes gemeinsames Vielfache so folgt nach Def.
v1 |v2 und v2 |v1
⇒v1 = ±v2
Satz 2.5
In Z besitzen zwei Elemente x, y steths ein kleinstes gemeinsames Vielfaches. es gilt:
lcm(0, 0) = 0
xy
falls (x, y) 6= (0, 0)
lcm(x, y) =
gcd(x, y)
Beweis Wir können annehmen x 6= 0, y 6= 0
Sei d := gcd(x, y)
v := xy
d
zeige: v = lcm(x, y)
1. x|x yd und y| xd y
d.h. v ist gemeinsames Vielfaches.
2. Sei x|w, y|w zeige: v|w:
w = αx, w = betay
d = λx + µy
1 = λ xd + µ yd ⇒α = λα xd + µα yd = λβ yd + µα yd =
= (λβ + µβ) yd
y
⇒ d |α ⇒ xy
|αx = w
d
2.1
Integritätsbereiche
Definition 2.5
Ein Integritätsberecih ist ein kommutativer Ring mit Einselement, der Nullteilerfrei
ist. d.h.
xy = 0 ⇒ (x = 0 oder y = 0)
Beispiel 2.1
Z, Q (allgemein jeder Körper)
Ist K ein Körper (z.b. K = Q)
so ist der Polynomring
n
X
K[X] = {
ci X i ci ∈ K, n ≥ 0}
i=1
2.1 Integritätsbereiche
7
EIn Integritätsbereich.
Ring der Ganzen Gaußschen Zahlen
Z[i] := {n + mi : n, m ∈ Z} ⊂ C
Z[i] ist integritätsbereich
Definition 2.6
Ein Element u eines Integritätsbreich R heißt Einheit wenn u in R invertierbar ist,
d.h. wennv ∈ R existieren, sodass uv = 1
Bemerkung 2.6
1. ±1 sind immer Einheiten.
2. In Z sind ±1 die einzign Einheiten.
3. in Z[i] sind ±1, ±i die einzigen Einheiten
4. in einem Körper K ist jedes Element 6= 0 eine Einheit.
5. Die Einheiten in K[X] sind die konstanten Polynome 6= 0
Satz 2.6
Die Menge aller Einheiten eines Integritätsbereiches R bilden eine multiplikative Gruppe die mit R∗ bezeichnet wird.
Definition 2.7
Ein Element x ∈ R \ (R∗ ∪ {0}) eines Integritätsbereich R heißt
1. Irreduzibel , wenn für jede Zerlegung
x = yz, y, z ∈ R
gilt: y ∈ R∗ oder z ∈ R∗
2. prim , wenn aus x|a · b
folgt: x|a oder x|b
a, b ∈ R
Bemerkung 2.7
Die Begriffe irreduziben und prim stimmen nicht in jedem Integriätsbereich überein.
Beispiel:
√
R = Z[ −3]
Behauptung:√
Das Element
√ 2 ist irreduibel, aber nicht prim in R
denn: 2|(1 + √−3)(1 − −3) = 4√
Aber 2 - (1 + −3) und 2 - (1 − −3)
Bemerkung 2.8
Es gilt stets: prim ⇒irreduziebel.
Satz 2.7
in Z sind die Begriffe irreduzibel und prim äquivalent.
8
2 DER EUKLIDISCHE ALGORITHMUS
Beweis Sei p irreduzibel und es gelte p|xy
Falls p|x sind wir fertig.
Falls p - x dann sind p und x Teilerfremd.
Bezout
=⇒ ∃λ, µ ∈ Z mit:
λp + µx = 1
⇒λpy + µ xy = y
|{z}
=αp
d.h. (λy + µα)p = y
Satz 2.8
In Z gilt der Satz von der Eindeutigen Primfaktorzerlegung.
d.h. jede
Qnganze Zahl x ∈ Z \ 0 lässt sich schreiben als.
x = ± ν=1 pν , n ≥ 0
mit Primzahlen pν > 0
Diese Zerlegung ist bis auf Umordnung eindeutig bestimmt.
Q
Q
Beweis OBdA x > 0 Annahme x = nν=1 pν = µ=1 mqµ
Induktion nach n
n = 0 Klar
Induktionsschritt
(n-1)-> n
Qm
pn | µ=1 qµ
Also muss pn einen der Faktoren teien. OBdA(sonst umnumeriereung): pn |pm
⇒pQn = qm Q
m−1
⇒ n−1
µ=1 qµ
ν=1 pν =
Hierauf induktionsvoraussetzung anwenden.
2.2
Euklidische Ringe
Definition 2.8
Ein euklidischer Ring ist ein Integritätsbereich R mit einer Funktion
ν : R \ {0} → N
sodass gilt: Zu jedem Paar x, y ∈ R mit y 6= 0 gibt es Elemente q, r ∈ R sodass:
x = qy + r
Wobei r = 0 oder ν(r) < ν(y)
Bemerkung 2.9
In jedem euklidischen Ring R besitzen je zwei Elemente x, y ∈ R einen größten
gemeinsamen Teiler d der mit dem euklidischen Algorytmus bestimmt werden kann.
d ist bis auf Einheiten eindeutig bestimmt.
Beispiel 2.2
Z[i] ist euklidisch mit ν(n + mi) = n2 + m2
K[X] ist euklidich mit ν(f (X)) = deg f (X)
2.2 Euklidische Ringe
9
Definition 2.9
Seien x, y ∈ Z \ 0 Für eine Primzahl pbezeichne
ordp (x) = max{n ≥ 0 : pn |x}
Damit gilt:
Q
x = u · p∈¶ pOrdp (x)
Dabei ist u = ±1 und
¶ = {2, 3, 5, 7, 11, 13, . . .} die Menge aller Primzahlen.
Alle bis auf endliche viele Faktoren sind = 1, also ist das Produkt in Wirklichkeit
endlich.
Es gilt:
x|y ⇔ Ordp (x) ≤ Ordp (y)∀p ∈ ¶
Daraus folgtQfür den ggT:
gcd(x, y) = p∈¶ pmin(Ordp (x),Ordp (y))
Q
lcm(x, y) = p∈¶ pmax(Ordp (x),Ordp (y))
Ensprechendes gilt für gcd(x1 , . . . , xn ), lcm(x1 , . . . xn )
10
3
3 DER RESTKLASSENRING Z/N
Der Restklassenring Z/n
Definition 3.1 (Kongruenzen)
Sei m eine ganze Zahl. Für Ganze Zahlen x, y definiert man
x≡y
mod m
⇔x − y ∈ mZ d.h. m|x − y
Bemerkung 3.1 (Regeln)
1. x ≡ y mod m ⇔ x ≡ mod (−m)
D.h. man kann sich auf m ≥ 0 beschränken.
2. x ≡ y mod 0 ⇔ x = y
3. x ≡ y mod 1 ∀x, y ∈ Z
Also: Die einzigen interessanten Fälle sind Kongruenzen modulo m ≥ 2
Satz 3.1
Die Kongruenz modulo m ist eine Äquivalenzrelation auf Z
Definition 3.2 (Kongruenzklassen)
Eine ganze Zahl x modulo m besteht aus allen ganzen Zahlen, die zu x modulo m
kongruent sind.
[x]m oder (x mod m)
Wenn klar ist welches m gemeint ist, auch x oder [x].
[x]m = x + mZ = {y|x ≡ y mod m}
[0]m = mZ
Man nennt x einen Repräsentanten der Restklasse.
Die Menge alle Restklassen modulo m wird mit
Z/mZ oder kurz Z/m bezeichnet.
Für m > 0 gilt also:
Z/m = {0, 1, . . . m − 1}
Addition und Multiplkation von Restklassen:
x+y =x+y
x · y = x · y Diese Abbildungen sind Wohldefiniert. (Beweis wird nicht ausgeführt)
Satz 3.2
Die Menge der Restklassen Z/m bildet bzgl. der oben definierten Addition und Multiplikation einen kommutativen Ring mit Einselement.
Die natürliche Abbildung
%Z → Z/m, %(x) = [x]m
ist ein surjektiven Ring-Homomorphismus
Satz 3.3
Ein Element x ∈ Z/n ist genau dann invertierbar (in Z/m) wenn x und m teilerfremd
sind.
11
Beweis
1. Sei gcd(x, m) = 1 ⇒λx + µm = 1
⇒λx = 1 − µm
⇒λx ≡ 1 mod m
=⇒λ · x = 1
2. Sei x invertierbar in Z/m
⇒∃z ∈ Z, sodass zx = 1
d.h. zx = 1 + km mit k ∈ Z
⇒zx − km = 1
⇒gcd(x, m) = 1
Bemerkung 3.2 (Bezeichnungen)
(Z/m)∗ Bezeichnet die multiplikative Gruppe der Invertierbaren Elemente von Z/m
Korollar 3.4
Z/m ist genau dann Körper, wenn m eine Primzahl ist.
p Prim ⇒
Fp = Z/p
Andere Bezeichnung: Fp = GF (p) (Galoisfeld)
Definition 3.3 (Eulersche Phi-Funktion)
Für m ≥ 1 setzt man:
ϕ(m) := #(Z/m)∗
ϕ(m) = #{x ∈ Z : 0 < x ≤ m mit gcd(x, m) = 1}
Insbesondere ϕ(1) = 1
Sei p prim. k ≥ 1
ϕ(p) = p − 1
ϕ(pk = pk − pk−1 = pk−1 (p − 1) oder pk (1 − p1 )
Definition 3.4 (Direktes Produkt von Ringen)
A1 , . . . Ar Ringe.
A := A1 × . . . × Ar
Addition und Multiplikation komponentenweise.
Nullelement: (0, . . . , 0)
Einselement: (1, . . . , 1)
Satz 3.5
Sei m|n dann hat man einen Natürlichen Ringhomomorphismus
Z/n → Z/m; [x]n 7→ [x]m
Satz 3.6 (Chinesischer Restsatz)
Seien m1 , . . . mr paarweise Teilerfremde natürliche Zahlen und m := m1 · . . . · mr
Dann ist die Abbildung
Φ : Z/m → Z/(m1 ) × . . . Z/(mr )
[x]m 7→ ([x]m1 , . . . , [x]mr )
ein Ringisomorphismus
12
3 DER RESTKLASSENRING Z/N
Beweis Φ ist Ring Homomorphismus. X
Nur noch zu Zeichen, dass Φ bijektiv.
Da die linke und rechte endliche Menge mit m = m1 · . . . · mr Elementen sind, reicht
es zu zeigen, dass Φ injektiv ist oder dass Φ surjektiv ist.
1. Zeige, dass Φ injektiv ist. Es genügt dass Φ−1 (0) = {0}
Sei x ∈ ker φ. d.h. φ(x) = 0
⇒ mj |x für alle j
teilerf remd
=⇒ m|x d.h. x = 0
(Beweis konstruktiv)
2. Zeige: dass Φ surjektiv ist.
Sei
e1 := (1, 0, . . . , 0)
..
.
er := (0, . . . , 0, 1)
Konstruiere Element ui ∈ Z/m mit Φ(ui ) = ei
Eigenschaft von ui :
ui ≡ 1 mod mi
ui ≡ 0 mod mjQ
i 6= j
Sei Dazu zi := i6=j mj
Dann gilt zi ≡ 0 mod mj , ∀j 6= i
und zi 6= 0 mod mi
und es gilt sogar: gcd(zi , mi ) = 1
Daher ist zi invertierbar modulor mi
d.h. ∃λi ∈ Z : λi zi ≡ 1 mod mi
Setze nun ui := λi zi Q
Sei jetzt (x1 , . . .P
, xr ) ∈ (Z/mj ) beliebig vorgegeben.
Setze nun y := rj=1 xj uj ∈ Z/m
Dann gilt φ(y) = (x1 , . . . , xr )
Bemerkung 3.3 (Klassische Formulierung)
Seien m1 , . . . m2 paarweise teilerfremd.
Dann ist für jedes r-tupel a1 , . . . ar das System der Kongruenzen
x ≡ a1 mod m1
..
.
x ≡ ar mod mr
lösbar. Die Lösung ist modulor m := m1 · · · . . . · · · mr eindeutig bestimmt.
Korollar 3.7
Mit derselben Voraussetzung gilt:
∼
=
(Z/m)∗ −→ (Z/m1 )∗ × . . . × (Z/mr )∗
Insbesondere gilt für paarweise teilerfremde mj :
ϕ(m1 · · · . . . · · · mr )ϕ(m1 ) · . . . · · · ϕ(mr )
13
Spezialfall:
Sei n ∈ N
und n = pk11 · . . . · pkr r
∼
= Q
Dann gilt Z/n =−→ rj=1 Z/mj
∼
= Q
und (Z/n)∗ −→ (Z/mj )∗
Q
k
und ϕ(n) = rj=1 ϕ(pj j
Satz 3.8 Q
ϕ(n) = n p|n (1 − p1 )
k
k
k −1
k
Beweis ϕ(pj j ) = pj j − pj j = pj j (1 −
Q
Q
k
k Q
ϕ(pj j = rj=1 (pj j ) rj=1 (1 − p1j )
4
1
)
pj
Die multiplikative Gruppe (Z/m)∗, Primitivwurzel
Satz 4.1 (Lagrange)
Sei G eine endliche Gruppe und H ⊂ G eine Untergruppe.
Dann gilt:
#H ist ein Teiler von #G
Dabei bezeichne #M die Anzahl der Elemente einer endlichen Menge M
Für endliche grupen schreibt man auch
Ord(G) = #G
Beweis Wir betrachten die Nebenklassen von H d.h. die Mengen:
xH := {xh : h ∈ H}x ∈ G
Für diese Nebenklassen gilt genau eine der Alternatien:
1. x1 H = x2 H
2. x1 H ∩ x2 H = ∅
Denn: sei (2.) nicht der Fall dann gibt es ein z ∈ x1 H ∩ x2 H
z = x1 h1 = x2 h2 , hi ∈ H
Zeige x1 H ⊂ x2 H
Ein beliebiges y ∈ x1 H lässt sich schreiben als:
y = x1 h
x1 = x2 h2 h−1
1
Also: y = x2 h2 h−1
1 h ∈ x2 H
Analog zeigt man x2 H ⊂ x1 H
Jede Nebenklasse xH hat ebensoviele Elemente wie H. Aus der aussage Oben folgt:
˙ rH
G = x1 H P
∪˙ . . . ∪x
r
⇒#G = j=1 #(xj H) = r · (#H)
14
4 DIE MULTIPLIKATIVE GRUPPE (Z/M )∗ , PRIMITIVWURZEL
Bemerkung 4.1 (Bezeichnung)
Ord(G)
=: [G : H]
Ord(H)
Index von H in G
Definition 4.1
x ∈ G, G endliche Gruppe:
Ord(x) := min{n ≥ 1| xn = e}
< x >:= {xn | n ∈ N} sei die von x erzeugte Untergruppe
Definition 4.2
Eine Gruppe G heißt zyklisch, falls es ein Element g ∈ G gibt, sodass:
< g >= G
g heißt erzeugendes Element (Generator) von G
Für jedes Element x ∈ G ist die Untergruppe H :=< x > zyklisch.
Satz 4.2
Sei G eine endliche Gruppe und x ∈ G dann gilt
Ord(x)| Ord(G)
xOrd(G) = e
Beweis 1. Behauptung folgt aus Satz von Lagrange
die 2. Behauptung:
Ord(x) · r = Ord(G) für ein r ∈ N
xOrd(G) = xOrd(x)r = (xOrd(x) )r = er = e
Satz 4.3 (Euler)
Sei m ≥ 2 und x eine zu m teilerfremde ganze Zahl, dann gilt:
xϕ(m) ≡ 1 mod m
Beweis die multiplikative Gruppe (Z/m)∗ hat die Ordung ϕ(m)
Satz 4.4 (kleiner Satz von Fermat)
sei p eine Primzahl und x eine ganze zahl mit p - x dann gilt
xp−1 ≡ 1
mod p
Andere Formulierung p prim x ∈ Z beliebig.
xp ≡ x mod p
Definition 4.3
Eine ganze Zahl g heißt Primitivwurzel modulo m :⇔
g zu m teilerfremd ist und (Z/m)∗ =< g >. d.h. Ord(g) = ϕ(m)
15
Satz 4.5
Sei x Element einer (endlichen abelschen) Grupe G mit Ordnung m. Sei k eine zu m
teilerfremde ganze Zahl. Dann hat xk ∈ G ebenfalls die Ordnung m.
Beweis (xk )m = xkm = (xm )k = 1
⇒Ordnung von xk ist ein Teiler von m
⇒Angenommen, die Rondung von xk wäre ein echter Teiler m0 von m
Dann sind k und m0 teilerfremd.
0
0
1 = (xk )m = xkm und Ord(x) = m ⇒ m|km0
Da m und k teielrfremd sind, so folgt: m|m0
⇒m = m0
Korollar 4.6
x ∈ G, Ord(x) = m; l ∈ Z beliebig ⇒Ord(xl ) =
Beweis d := gcd(l, m)
m1 := md
Dann Hat xd die Ordnung m1
Nun ist m1 und dl sind
teilerfremd.
l
Also nach Satz: Ord (xd ) d
m
gcd(l,m)
= Ord(xd ) = m1 =
m
gcd(l,m)
Satz 4.7
Seien x, y zwei Elemente einer endlichen abelschen Gruppe mit Ord(x) = k, Ord(y) =
l
Falls k und l teilerfremd sind gilt:
Ord(xy) = k · l
Beweis
1. (xy)kl = xkl y kl = (xk )l (y l )k = 1
Daraus folgt dass Ord(xy)|kl
2. ANgenommen Ord(xy) währe ein echter Teiler von kl
⇒ Ord(xy) = k 0 l0 mit k 0 |k, l0 |l
ObdA sei k 0 < k
0 0
0
0
0
0
Es gilt (xy)k l = 1 = (xy)k l = (xl )k (y l )k = (xl )k
Da gcd(l, Ord(x)) = 1 hat xl ebenfalls Ordnung k
0
Widerspruch zu (xl )k = 1
Satz 4.8 (Gauß)
Sei G ⊂ K ∗ eine endliche Untergruppe der multiplikativen Gruppe Eines Körpers K.
Dann ist G zyklisch, dh.h. es gilt ein ζ ∈ G sodass
G = hζi
16
4 DIE MULTIPLIKATIVE GRUPPE (Z/M )∗ , PRIMITIVWURZEL
Beweis Ord(G) =: m = q1k1 . . . qrkr die Kanonische Primfaktorzerlegung.
k
Es genügt zu zeigen,
dass es Elemente xj ∈ G gibt mit Ord(xj ) = qj j
Q
Dann hat g := xj die Ordnung m
Beweis dieser Aussage:
Zur Vereinfachung lassen wir den Index j weg.
Sei q eine Primzahl und k ≥ 1 mit q k km (d.h. q k ist die höchste Potenz von q die in
m aufgeht)
m
Wähle ein z ∈ G mit z q 6= 1
Korollar 4.9
Zu jeder Primzahl p existiert eine Primitivwurzel g modulo p
Beweis Satz Anwenden auf K = Z/p und
G = (Z/p)∗
m
Die Anzahl der Elemente z ∈ G mit z q = 1 ist höchstens gleich
mindestens m −
( mq )
m
qk
= m(1 −
1
)
q
Elemente mit z
m
q
m
q
also gibt es
6= 1
Definiere x := z
Behauptung: Ord(x) = q k
Beweis davon:
m
k
k
xq = (z qk )q = z m = 1
Es folgt, dass die Ordnung von X ein Teiler von q k ist.
Wäre die Ord(x) = q l mit l < k, so würde folgen
m
m
k−1
l
k−1
= z q 6= 1 Widerspruch
1 = q q ⇒ 1 = xq
= (z qk )q
Korollar 4.10
Zu Jeder Primzahl p existiert eine Primitivwurzel g modulo p
Satz 4.11
Sei p eine Primzahl
Eine Ganze Zahl g mit p - g ist genau dann eine Primitivwurzel modulo p wenn gilt:
p−1
∀q|p − 1
g q 6=≡ mod p
Beweis Die bedinung ist trivialerweise notwendig
Die Bedinung ist hinreichend weil:
in jedem Fall gilt:
g p−1 ≡ 1 mod p
Wäre die Ordnung von g ein echt kleiner als p − 1
r := Ord(Z/p)∗ ((g) > p − 1
so gäbe es einen Primteiler q|p − 1 mit r| p−1
⇒ 1 = gr ⇒ g
q
p−1
q
≡ 1 Widerpspruch.
Satz 4.12
Es gibt geneu ϕ(p − 1) Primitivwurzeln modulo p
Beweis Sei g eine Primitivwurzel
Ein Element g1 = g k ist genau dann Primitivwurzel wen gcd(k, p − 1) = 1
17
Bemerkung 4.2
Ist p − 1 = q1k1 . . . qkkr
die kanonische Primfaktorzerlegung
von p − 1 so gilt:
Qr
1
ϕ(p − 1) = (p − 1) i=1 (1 − q )
j
Qr
ϕ(p−1)
1
d.h. p−1 = j=1 (1 − qj )
Bemerkung 4.3 (Vermutung von Artin)
Die Zahl 2 ist Primitivwurzeln von unendlich vielen Primzahlen p.
Satz 4.13
Unter Annahme der Erweiterten Riemanschen Vermutung gibt es eine Konstante
c > 0 sodass für jede Primzahl p eine Primitivwurzel g existiert mit g ≤ c(log p)2
Definition 4.4
Sophie German Primzahl-Paare
q und p := 2q + 1 prim
Primitivwurzeln modulo Primzahlpotenz
Satz 4.14
Sei p eine ungerade Primzahl und g eine Primitvwurzel
1. g ist genau dann Primitivwurzel
mod p
mod p2 , wenn g p−1 6≡ 1 mod p2
2. Falls g p−1 ≡ 1 mod p2 so ist g̃ := g + p Primitivwurzel modulo p2
Beweis
1. Die Bedinung ist Notwendig (T rivialerweise)
Hinreichend:
Aus der Bedinung folgt:
g p−1 = 1 + ap (in Z)
mit p - a
Annahme: g währe keine Primitivwuzel mod p2
Dann ist Ord(Z/p2 )∗ ) (g) ein echter Teiler von Ord(Z/p2 )∗ ) = (p − 1)p Es gäbe
daher einen Primteiler q|(p − 1)q
(p−1)p
dass g q ≡ 1 mod p2
1. Fall: q = p
(p−1)p
Aber g q = g p−1 6≡ 1 nach voraussetzung D.h. dieser Fall tritt nicht auf.
2. Fall:
q|p − 1
Da p teilerfremd zu p − 1 ist g p ebenfalls Primitivwurzel modulo p
p−1
⇒(g p ) q 6≡ 1 mod p
p−1
⇒(g p ) q 6≡ 1 mod p2
2. Sei g p−1 ≡ 1 mod p2
⇒g̃ p−1 = (g + p)p−1 = g p−1 + (p − 1)pg p−2 mod p2
(gilt wegen Binomischen Lehrsatz und p2 in jedem weitern Summanden)
4 DIE MULTIPLIKATIVE GRUPPE (Z/M )∗ , PRIMITIVWURZEL
18
Aber (p − 1)pg p−2 6≡ 0 mod p2
⇒g̃ p−1 6≡ 1 mod p2
⇒Behauptung.
Satz 4.15
Sei p eine ungerade Primitivzahl und k ≥ 2 Eine gNze Zahl ist dann Primitiwurzel
dann Primitivwurzel modulo pk wenn sie Primitivwurzel modulo p2 ist.
Beweis Eine Implikation ist trivial. Zur Umkehrung: Sei also vorausgesetzt, dass g
Primitivwurzel modulor p2 ist. Dann gilt:
g p−1 = 1 + ap, p - a
k−2
Dann gilt für alle k ≥ 2 : g (p−1)p = 1 + apk−1 mod pk
Durch Induktion: k → k + 1
k−2
Wir können annahmen : g (p−1)p = 1 + apk−1
Potenzierung mit p:
Binom
g p−1 pk−1 = (1 + apk−1 )p = 1 + apk mod pk+1
Daraus folgt dass g PW mod pk d.h. dass g in (Z/pk )∗ die Ordnung.
Ord(Z/pk )∗ = (p − 1)pk−1 hat. Dies ist gleichbedeutend damit, dass für jeden Primteiler q|(p − 1)pk−1
gilt
g (p−1)
pk
q
6≡ 1 mod pk
Bemerkung 4.4
Für (Z/2k )∗
(Z/2)∗){1} zyklisch
(Z/4)∗ = {pm1 zyklisch
(Z/8)∗ = {1, 3, 5, 7} ist nicht zyklisch.
Hier gilt.
für alle x ∈ (Z/8)∗
Hier gilt:
x2 ≡ 1 mod 8 für alle x ∈ (Z/8)∗
Also ist diese Grupe nicht Zyklisch.
Es folgt:
(Z/2k )∗ ist nicht zyklisch für k ≥ 3
Es gilt Ord(Z/2k )∗ = 2k−1
Für x ∈ (Z/2k )∗ gilt:
k−2
x2 ≡ 1 mod 2k
Für das Element 5 ∈ (Z/2k )∗ , k ≥ 3 gilt:
Ord(Z/2k )∗ (5) = 2k−2
Es gilt genauer.
Die Abbildung:
(Z/2) × (Z/2k−2 ) → (Z/2k )∗
(, ν) 7→ (−1) 5ν
Ist Bijektiv und ein Gruppenhomo.
19
5
Quatratische Reste. Reziprozitätsgesetzt
Definition 5.1
Eine Zahl a heißt quadratische Rest modulo m, falls die gleichung
x2 ≡ a mod m lösbar ist mit x ∈ Z
Bemerkung 5.1 (Spezialfall)
m = p 6= 2
sq : F∗p → F∗p ; x 7→ x2
Es gilt: sq(xy) = sq(x) sq(y)
⇒sq ist Gruppenhomo.
Im(sq) ⊂ F∗p ist Untergruppe aller Quadrate.
ker(sq) = {±1}
Da # ker = 2 folgt # Im = p−1
2
Es gibt also genausoviele nichtquadrate wie Quadrate.
QR · QR = QR
QR · N R = N R
N R · QR = N R
N R · N R = QR
( p· )
sqr
1 → {±1} → F∗p −→ F∗p −→ {±1} → 1
Ist eine exakte Sqeuenz.
Definition 5.2
Sei p eine
( ungerade Primzahl nd a eine ganze Zahl mit p - a
1
falls aquadratischer Rest
a
:=
p
−1 sonst
Man setzt noch ap = 0 falls p|a
Satz 5.1 (Euler-Kriterium)
Sei p eine ungerade Primzahl.
Dann gilt
für
alle a ∈ Z
p−1
a
a 2 ≡ p
mod p
Beweis Falls p|a sind beide Seiten gleich 0 mod p
Sei also p - a
1. Sei a QR mod p, d.h. ∃x∈ Z : x2 ≡ a mod p
p−1
⇒a 2 ≡ xp−1 ≡ 1 = ap
2. Sei a NR Wähle g Primitivwurzel.
Dann gilt a ≡ g ν , (ν ungerade. sonst a Quadrat.)
ν = 2k + 1
p−1
p−1
p−1
a 2 ≡ g 2 ·(2k+1) ≡ (g (p−1) )k · g 2 ≡ −1
| {z } |{z}
=1
=−1
20
5 QUATRATISCHE RESTE. REZIPROZITÄTSGESETZT
Definition 5.3
Sei p ungerade Primzahl
}
H(p) := {1, 2, . . . p−1
2
Bemerkung 5.2
Jede Zahl a mit p - a ist Modulo p äquivalent zu genau einem Element von H(p) ∪
−H(p)
Definition 5.4
Für a ∈ Z mit p - a seien Funktionen
a : H(p) → {±1},
σa : H(p) → H(p)
definiert durch:
ax = a (x)δa (x) mod p
für alle x ∈ H(p)
Bemerkung 5.3
σa ist bijektiv, d.h. eine Permutation
Lemma 5.1 (Gauss)
Sei p ungerade Primzahl und a ∈ Z mit p - a. Dann gilt:
Y
a
=
a (x)
p
x∈H(p)
Anders ausgedrückt:
Die Zahl a ist QR bzw NR, je nachdem die Anzahl der absolut kleinsten Reste der
Zahlen 1a, . . . , p−1
a die Negativ sind, gerade bzw ungerade ist.
2
Q
Q
Q
Q
Q
Q
Beweis x∈H(p) ax = x∈H(p) a (x)σa (x) ≡ x∈H(p) x∈H(p) σa (x) ≡ x∈H(p) a (x) y∈H(p) y
Q
Q
p−1 Q
⇒a 2
=
(x)
a
x∈H(p)
x∈H(p)
x∈H(p) x
Q
p−1
⇒ a 2 ≡ x∈H(p) a (x)
Satz 5.2 (Ergänzungs-Sätze zum quadratischen Reziprozitätsgesetz)
Sei p ungerade Primzahl.
1.
2.
−1
p
2
p
Beweis
= (−1)
= (−1)
p−1
2
p2 −1
8
(
1
=
−1
falls p ≡ 1 mod 4
falls p ≡ 3 mod 4
(
1
=
−1
falls p ≡ ±1 mod 8
falls p ≡ ±3 mod 8
1. Euler-Kriterium
21
2. Alle x ∈ H(p) werden mit 2 multipliziert.
Es Entstehen die Zahlen:
2, 4, 6, . . . p − 1
Welche dieser Zahlen haben negativen absolu kleinsten Rest?
Alle Zahlen < p2 haben pos abs kleinsten Rest
Alle Zahlen > p2 und < p negativen.
x hat positiven absolut kleinsten Rest ⇔ 2x < p2 ⇔ x < p4
x hat negativen abs. kleinsten Rest ⇔ 2x > p2 ⇔ x > p4 Fallunterscheidung
(a) p = 8k + 1 #H(p) = 4k
positiv absolu kleinste Reste: 2k
negative
absolut kleinste Reste: 2k
⇒ p2 = +1
(b) p = 8k + 3 #H(p) = 4k + 1
positiven absolu kleinsten Reste: 2k
negativen
absolut kleinste Reste: 2k + 1
⇒ p2 = −1
(c) p = 8k + 5 #H(p) = 4k + 2
positive absolut kleinsten Reste: 2k + 1
negativen
absolut kleinste Reste: 2k + 1
2
⇒ p = −1
(d) p = 8k + 7 #H(p) = 4k + 3
positive absolut kleinste Reste: 2k + 1
ngative
absolu kleinste Reste: 2k + 2
⇒ p2 = +1
Definition 5.5
Für eine ganze zahl ν > 0 sei
Iν := {x ∈ R : (ν − 1) p2 < x < ν p2
Es gilt: Der Absolut kleinste Rest von ka genau dann negativ, wenn ka ∈ Iν , ν gerade.
Sei rν die Anzahl der ka, k ∈ H(p) die in Iν liegen. Dann ist:
p
p
rν = bν 2a
c − b(ν − 1) 2a
c
(keine der zahlen ka liegt auf dem Rand eines der Intervalle, da a und p teilerfremd
sind)
Beispiel 5.1
p = 13; a = 5
H(p) = {1, 2, 3, 4, 5, 6}
Lemma
5.2
Pba2c
a
= (−1)m mit m = k=1 bk ap c − b(k − 21 ) ap c
p
22
5 QUATRATISCHE RESTE. REZIPROZITÄTSGESETZT
Satz 5.3
Seien p 6= q zwei ungerade Primzahlen und a eine nicht durch p teilbare ganze zahl
mit
p ≡ ±q mod 4a
Dann gilt:
a
a
=
p
q
P
Beweis ap = (−1)m , m = 1≤2νa (s2ν − ssν−1 )
p
mitsµ = bµ 2a
c
P
0
a
= (−1)m , m0 = 1≤2νa (s02ν − s0sν−1 )
q
q
mit s0µ = bµ 2a
c
Sei nun q ≡ p mod 4a
d.h. q = p + 4al
q
p
p
p
c = bµ( 2a
+ 2l)c = bµ 2a
c + 2µl ≡ bµ 2a
c ≡ sµ mod 2
⇒ s0µ = bµ − 2a
0
Esfolgt
m ≡m mod 2
a
⇒ p = aq
Sei nun q ≡ −p mod 4a
d.h. q = 4al − p mit l ∈ Z
(. . . ) ⇒
Satz 5.4 (Quadratisches Reziprozitätsgesetz)
Seien p 6= q ungerade Primzahlen.
Dann gilt:
p−1 q−1
q
p
= (−1) 2 2
q
p
D.h. pq = pq falls p ≡ 1 mod 4 oder q ≡ 1 mod 4
p
q
=
−
falls p ≡ 3 mod 4 und q ≡ 3 mod 4
q
p
Beweis
1. Sei p ≡ q4
ObdA sei p > q
Dann
q + 4t
gilt:
p = p−1
p−q
−q
q
t
4t
2
=
=
=
=
(−1)
p
p
p
p p 4t+q
t
4t
=
=
q = pq
q
q
Nach
satz gilt:
vorherigem
t
t
= p
q
  q
falls p ≡ 1 mod 4
p
⇒ pq =
− q
falls p ≡ 3 mod 4
p
23
2. p 6≡ q mod 4
⇒p + q ≡ 0 mod 4
p +q =4t,t > 0
p+q
4t
t
=
=
= pq
p
p
p
t
= 4tq = p+q
= pq
q
q
Definition 5.6 (Fermat-Zahlen)
n
Fn := 22 + 1 Die n-te Fermat Zahl.
für n ≤ 4 sind diese Prim.
Aber 641|F5
Lemma 5.3
Sei n > 1 und Fn Prim dann ist 3 Primitivwurzel modulo Fn
Beweis
Wir zeigen zunächst, dass 3 ein qudaratischer Nicht-Rest modulot Fn ist.
3
= Fn 3 = 32 = −1
Fn
n
n
Fn ≡ 1 mod 4, Fn = 22 + 1 ≡ (−1)2 + 1 ≡ 2 mod 3
Euler Fn −1
=⇒ 3 2 ≡ −1 mod Fn
n
Die multiplikative Gruppe Z/Fn∗ hat 22 Elemente
Die Ordnung eines Beliebigen Elements ζ ∈ Z/Fn∗ ist eine Zweierpotenz
Spezialfall ζ = 3
n
2n −1
Behauptung Ord 3 = Fn − 1 = 22 denn sonst wäre 32
≡ 1 mod Fn aber dies ist
≡ −1
Satz 5.5
Fn ist genau dann eine Primzahl, wenn
3
Fn −1
2
2n −1
= 32
≡ −1
mod Fn
Beweis Bedinung ist notwendig nach dem vorherigen Satz.
Die Bedinnung ist hinreichend:
2n
Denn es Folgt 3Fn −1 = 32 ≡ 1 mod Fn
n
⇒ Ord Z/Fn (3)|22
n
Andererseits ist Ord(3) nicht kleiner von 22
n
⇒3 erzeugt in (Z/Fn )∗ eine Untergruppe der Ordnung 22 = Fn − 1 ⇒Z/Fn Körper
⇒Fn prim.
Satz 5.6
Jeder mögliche Primteiler einer Fermatzahl p|Fn
k · 2n+2 + 1 mit k ≥ 1
Bemerkung 5.4
Anwendung auf F5 haben die Teiler die Gestalt:
p = k27 + 1 = 128k + 1
n ≥ 5 hat die Gestalt: p =
24
5 QUATRATISCHE RESTE. REZIPROZITÄTSGESETZT
p = 129, 257, 385, 513, 641, . . .
für k = 1, 2, 4 ensteht keine Primzahl.
257 = F3
aber allgemein gcd(Fn , Fm ) = 1
Also 257 - F5
Also 641 ist der erste zu Testende Teiler. Um zu Testen ob p := k2n+2 + 1 ein Teiler
n
von Fn ist, genügt es zu untersuhen, ob 22 ≡ −1 mod p ist
Dies spielt sich in (Z/p)∗ ) ab.
Definition 5.7
sei m ≥ 3 ungerade.
m = p1 · . . . · p r
die Primzahlzerlegung.(pj ) nicht notwendig paarweise verschieden.
a
m
Anmerkung:
A QR modulo m, gcd(a, m) = 1 =⇒
Die Umkehrung
gilt
jedoch nicht.
2
2
2
Bsp: 15 = 5 5 = −1 − 1 = 1
Aber 2 ist kein Quadrat modulo 15.
:=
r Y
a
j=1
a
m
pj
=1
Bemerkung
5.5
(Eigenchaften)
a
1. m
= mb falls a ≡ b mod m
b
a
2. ab
=
m
m
m
a
a
= ka m
für ungerade m, k ≥ 3
3. km
4.
a
m
= 0 ⇔ gcd(a, m) 6= 1
Satz 5.7 (Rez. Gesetz für Jacobi)
m−1
= (−1) 2
1. −1
m
2.
2
m
= (−1)
m2 −1
8
3. sind k, m teilerfremd. ungerade Zahlen ≥ 3
so folgt:
m
m−1 k−1
k
= (−1) 2 2
m
k
Bemerkung 5.6
Berechnung
des
Legendresymbols.
85
170
2
85
= 211 211 = − 211
= −
211 2
− 3 =1
211
85
= −
41
85
= −
85
41
= −
3
41
= −
41
3
=
25
Wurzelziehen modulo p
1. p ≡ 3 mod 4
p−1
Sei ap = 1 d.h. a 2 ≡ 1 mod p
p+1
⇒a 2 ≡ a mod p Setze x := a
⇒x2 = a
p+1
4
2. Sei p≡5 mod 8 Nach Euler:
p−1
1 = ap = a 2 mod p
(
+1
p−1
⇒a 4 =
−1
(
a
p+3
⇒a 4 =
−a
(
p+3 2
a
=
⇒ a 8
−a
Im ersten Fall sind wir fertig.
p+3
im Zweiten Fall gilt für x0 := a 8
Dass x20 = −a
Es fehlt noch eine Quadratwurzel aus −1
Zweiter
Ergänzungssatz:
2
= −1 (gilt für p ≡ ±3 mod 8)
p
p−1
p−1
4
⇒ 2 2 = −1 Für j := 2
Lösung: x := jx0 mod p
gilt j 2 = −1
3. p ≡ 1 mod 8
t
Schreibe
p − 1 = 2 u Nach Voraussetzung gilt:
t−1
1 = ap = (au )2
t−1
Setze ξ := au Damit ist ξ 2 = 1
d.h. ξ ist eine 2t−1 te Einheitswurzel.
u+1
Setze x0 := a 2
Dann gilt:
x20 = au+1 = ξ · a
Wir benötigen also eine Quadratwurzel aus ξ Wähle einen Quadratischen Nichtrest c mod p (Da die Hälfte aller Elemente Quadratische Nichtreste sind, findet
man schnell durch Probieren eine solche Zahl)
α := xu
Behauptung: α ist eine primitive 2t -te Einheitswurzel in (Z/p)∗ , d.h. d.h. die
Ordung von α ist 2t Beweis:
t
t
α2 = c2 u = cp−1 = 1
⇒Ordnung von α istein Teile von 2t
p−1
t−1
Aber α2 = c 2 = pc = −1
⇒β := α2 ist eine Primitive 2t−1 te Einheitswurzel.
26
5 QUATRATISCHE RESTE. REZIPROZITÄTSGESETZT
Also Existiert ein ν, so dass ξ = β ν = (αν )2
d.h. wir haben eine Quadratwurzel aus ξ gefunden.
Falls t klein ist findet man ν durch probieren.
Falls t groß ist.
27
6
Primzahltest
kleiner Satz von Fermat
Ist p prim und a nicht durch p teilbar so foglt:
ap−1 ≡ 1 mod p
Test für zusammengesetzte Zahlen aus gcd(a, N ) = 1 folgt
aN −1 6≡ 1 mod N folgt dass N keine Primzahl ist.
Definition 6.1
Eine ungerade Nicht-Primzahl N ≥ 9
heißt Carmichael − Zahl, wenn für alle a ∈ (Z/N )∗ gilt:
aN −1 ≡ 1 mod N
Es gibt Carmichael-Zahlen z.b: 561, 1105, 1729
Satz 6.1
Eine Zusammengesetzte Zahl N ≥ 9 ist genau dann eine Carmichael-Zahl, wenn
1. N ist quadratfrei
2. für jeden Primteiler p|N gilt:
p − 1|N − 1
Beweis Die Bedinungen sind Hinreichend.
N = p1 · . . . · pr pj paarweise verschieden.
Nach Chin.Reststz:
(Z/N )∗ ∼
= (Z/p1 )∗ × . . . × (Z/pr )∗
a∼
= (a1 , . . . , ar )
−1
−1
aN −1 ∼
, . . . aN
)
= (aN
1
r
pj −1
aber aj
= 1 mod pj
Da pj − 1|N − 1 folgt daraus:
−1
aN
≡ 1 mod pj
j
⇒aN −1 ≡! mod N
Zur Notwendigkeit sind einige Vorbereitungen nötig.
Satz 6.2
Sei G eine (multiplikative) Zyklische Gruppe der ordnung r
Weiterhin sei m eine ganze Zahl und
H := {x ∈ G : xm = 1}
Ord(H) = gcd(r, m)
r
⇒ [G : H] = gcd(r,m)
Beweis Sei g ∈ G erzeugendes Element.
x = gk
xm = 1 ⇔ g km = 1 ⇔ r|km
sei d := gcd(r, m)
28
6 PRIMZAHLTEST
r|km ⇔ dr |k md ⇔ dr |k
⇔ k = ν kd mit einem ν
r
r
⇒H = {1, g d , . . . , g (d−1) d }
⇒Ord(H) = d = gcd(r, m)
Korollar 6.3
Sei N eine ungerade Zahl mit Primfaktorzerlegung
N = pk11 . . . pkl l
(Z/N )∗ ∼
= (Z/p1 )∗ × . . . × (Z/pl )∗
Die Gruppen (Z/pki i ) sind zyklisch
Sei C := {x ∈ (Z/N )∗ : xN −1 = 1}
C∼
= C1 × . . . × Cl wobei:
Ci := {x ∈ (Z/pki i )∗ : X N −1 = 1}
Nach dem vorherigen Satz gilt:
Ord(Ci ) = gcd(pki i −1 (pi − 1), N − 1) = gcd(pi − 1, N − 1)
p
ki −1
(p −1)
i
i
Also [(Z/pki ) : Ci ] = gcd(p
i −1,N −1)
Q pki i −1 (pi −1)
⇒[(Z/N )∗ : C] = i gcd(p
Damit kann die Notwendigkeit der Bedinnungen
i −1,N −1)
für Carmichael-Zahlen
( bewiesen werden: N Carmichael-Zahl genau dann wenn:
pki 1 −1 = 1also Quadratfrei
[(Z/N )∗ : C] = 1 ⇒
gcd(pi − 1, N − 1) = pi − 1 ⇒ pi − 1|N − 1
Satz 6.4
Eine Carmichael-Zahl besitzt mindesten 3 Primfaktoren.
Beweis N = pq Sei eine Carmicaelzahl ⇒p 6= q
N − 1 = pq − 1 = (p − 1)q + (q − 1)
ObdA p > q
Aus p − 1|N − 1 Folgt p − 1|q − 1 Widerspruch.
Die kleinste Carmichael-Zahl mit 4 Primfaktoren ist 41041 = 7 · 11 · 13 · 41
Satz 6.5 (Granvilee)
Es gibt unendlich viele Carmichael-Zahlen.
Satz 6.6
Eine ungerade Zahl N ≥ 3 ist genau dann prim wenn es eine Zahl g mit folgenden
Eigenschaften gibt:
1. g N −1 ≡ 1 mod N
2. Für jeden Primteiler q|N − 1 gilt:
N −1
g q 6≡ 1 mod N
Beweis Aus 1. und 2. Folgt dass die Ordnugn von (Z/N )∗ gleich N-1 ist ⇒Z/N
Körper ⇒N Primzahl
29
Problem: Man braucht alle Primteiler von N − 1 Und: Suche nach g.
Falls N primzahl , so ist g eine
modulo N:
Q Primitivwurzel
1
Es gilbt ϕ(N − 1) = (n − 1) q|N −1 (1 − q )
Solcher Primitivwurzeln.
Man findet durch Probieren Schell eine solche Zahl.
Satz 6.7 (Poklington-Lehmer)
sei N ≥ 3 ungerade und N − 1 = RF
Q
wobei F = ri=1 pki i kan Primfak.zerl.
Zu jedem i ∈ {1, . . . r} gebe es eine Zahl ai mit
−1
1. aN
≡ 1 mod N
i
N −1
pi
2. gcd(ai
− 1, N ) = 1
Daraus folgt:
Jeder Primteiler q|N hat die gestalt:
q = kF 1 + 1,
k∈Z
ist Insbesondere F ≥ R so folgt, dass N prim ist.
Beweis Sei q|N ein Primteiler.
in Z/q gilt dann:
−1
aN
≡ 1 mod q
i
n−1
p
ai i 6≡ 1 mod q daruas folgt:
pki i | OrdZ/q∗ (ai ) Mit Hilfssatz:
Sei G eine Gruppe, x ∈ G. m ≥ 1. Es gelte pk |m (p prim, k ≥ 1)
Falls
1. xm = 1
m
2. x p 6= 1
Folgt dass pk | Ord(x)
Beweis des Hilfssatzes:
Aus 1. folgt s Ord(x) = m = p(m/p)
p - s (andernfalls wäre Ord(x)|m/p)
pk |m = s Ord(x)
p - s ⇒ pk | Ord(x)
Weiter mti dem Beweis:
⇒pki i |q −
Q1 ki
⇒ F = pi |q − 1
⇒ q − 1 = kF ⇒ Beh.
Spezialfall:
N − 1 = R · p p Prim R < p
N ist genau Dann prim, wenn ein a existiert mit
30
6 PRIMZAHLTEST
1. aN −1 ≡ 1 mod N
2. gcd(aR − 1, N ) = 1
Dies kann man zur konstruktion großer Primzahlen benutzen.
Satz 6.8
sei N ≥ 3 ungerade. Genau dann ist N prim, wenn für alle a ∈ Z mit gcd(a, N ) = 1
N −1
mod N
gilt: a 2 ≡ Na
Beweis Bedinung Notwendig (Euler Kriterium).
Bedinung hinreichend:
Es folgt dass N prim ist oder eine Carmichael Zahl.
Annahme: N Carmichael Zahl, N = p1 . . . pr
∼
=Φ
(Z/N )∗ −→ (Z/p1 )a st × . . . × (Z/pr )∗
Sei g Primitivwurzel modulo p1
insbesondere:
g
= −1
p1
∗
Es gibt ein a ∈ (Z/N )Q
mit
Φ(a) = (g,
1,
.
.
.
,
1)
∈
(Z/pi )∗
a
) = pg1 = −1
N
N −1
Aber a 2 6≡ −1
N −1
N −1
Denn Φ(a 2 ) = (g 2 , 1, . . . 1) 6= (−1, . . . , −1) Widerspruch.
Bemerkung 6.1 (Salovay/Strassen-Test)
sei N ≥ 3 ungerade. Um zu testen, ob N Prim ist, wähle man ein zufäliges a mit
1 < a ≤ N − 1 Dann berechne man gcd(a, N ) := d
Falls d 6= 1, ist N sicher nicht prim. Test beendet.
Andernfalls berechne man
N −1
a 2 mod N und Na
Falls diese 6= mod N sind ist N sicher keine Primzahl.
Andernfalls ist N wahrscheinlich prim. mit Fehlerwahrscheinlichkeit ≤ 12
Zur Verringerung der Fahlerwahrscheinlichkeit wiederhole man den Test mit einem
neuen Unabhängig gewählten a.
Nach n-maligen Wiederholen hat man die Fehlerwahrscienlichkeit 21n
Definition 6.2
Sei N eine zusammengesetzte Zahl. Ein a ∈ (Z/N )∗ heißt Falscher Zeuge für die
N −1
Primalität von N falls, a 2 ≡ Na
mod N
Satz 6.9
N −1
#{a ∈ Z/N ∗ : a 2 ≡
a
n
} ≤ 12 ϕ(N )
N −1
Beweis TSS := {a ∈ Z/N ∗ : a 2 ≡ na }
ist eine Untergruppe von (Z/N )∗ .
Aber wir wissen (wenn N nicht prim ist) dass TSS 6= (Z/N )∗
⇒Behauptung.
31
Miller/Rabin Test
Satz 6.10
Eine Ungerade Zahl N = 2t u + 1 (u ungerade)
ist genau dann prim, wenn für jedes a mit gcd(a, N ) = 1 gilt:
Entweder:
au ≡ 1 mod N
oder a2ku ≡ −1 mod N für k ∈ {0, . . . t − 1}
Beweis Sei vorausgesetzt, dass N prim ist wir zeigen, dass eine der Eigenschafen
gilt.
Nach fertmat gilt:
aN −1 ≡ 1 mod N
t−1
aN −1 = (a2 u )2 ≡ 1 mod N
Da im Körper Z/N die gleichung x2 = 1 nur die Lösungen ±1 besitzt folgt:
t−1
a2 u ≡ ±1 mod N
Im Falle ≡ −1 sind wir fertig.
t−1
Falls aber a2 n ≡ 1 mod N
und t > 1 hat man :
t−2
(a2 u )2 ≡ 1 mod N
t−1
⇒a2 u ≡ ±1 mod N
⇒usw.
Umkehrung. Gelte also eine der beiden Bedinnungen für jedes a
⇒aN −1 ≡ 1 mod N
Also ist N prim oder eine Carmichael-Zahl.
Die letztere Möglichkeit ist zum Widerpsruch zu führen.
N = p1 p2 . . . pr pj paarweise verschieden.
(Z/N )∗ ∼
= (Z/p1 )∗ × . . . (Z/pr )∗
a∼
= (g1 , 1, . . . 1)
g1 Primitivwurzel modulo p1
Für diese Zahl gilt:
N −1
a 2ν 6≡ −1 mod N für ν = 1, . . . t
und au 6≡ 1 mod N
da g1u 6≡ 1 mod p1
Denn wäre g1u ≡ 1 mod p1
so würde folgen: p1 − 1|u wider spruch da p1 − 1 gerade
Satz 6.11 (Miller)
Unter Annahme einer Veralltemeinerten Riemanschfen Vermutung genügt es die Bedinnungen nur für alle a mit 1 ≤ a ≤ C(log N )2 Nachzuprüfen, wobei C > 0 eine
von N unabhängige Konstante ist.
Wobei nach E.Bach gilt mit erweiterten Riemannscher Vermutung, kann die Konstante C = 2 gewählt werden.
32
6 PRIMZAHLTEST
Prob. Test von Miller/Rabin
k
TM R := {a ∈ (Z/N )∗ mit au ≡ 1 mod N oder a2 u ≡ −1 mod N für ein k ≤ t − 1}
Ist N > 9 eine zusammengesetze ungerade Zahl, so gilt für die Menge TM R der falschen
Zeugen bzwl Miller Rabin tests:
#TM R ≤ 14 ϕ(N )
Beweis C := {a ∈ (Z/N )∗ : aN −1 ≡ 1 mod N }
Sei s ∈ {0, . . . t − 1} die größte Zahl, so dass es ein x ∈ (Z/N )∗ gibt mit:
s
x2 u ≡ −1 mod N
(für s=0 ist (−1)u ≡ −1 mod N )
s
C ± (s) := {a ∈ (Z/N )∗ : a2 u ≡ ±1}
s+1
C ± (s) ⊂ C(s + 1) := {a ∈ Z/N ∗ : a2 u ≡ 1}
Es gilt:
TM R ⊂ C ± (s) ⊂ C(s + 1) ⊂ C ⊂ (Z/N )∗
Außer eventuell
TM R sind alle Mengen Gruppen.
Qr
ki
Sei N = Q
i=1 pi
∗
(Z/N ) = ri=1 (Z/pki i )∗
Q
Q
s
s+1
C(s + 1) = {x ∈ (Z/pki i )∗ : x2 u ≡ 1} = ri=1 {x ∈ (Z/pki i )∗ : x2 u ≡ ±1}
⇒[C(s + 1) : C±(s)] = 2r−1
Falls r ≥ 3 folgt #TM R ≤ 41 ϕ(N )
Falls r = 2 Dann ist N keine Carmichael-Zahl:
⇒ [(Z/N )∗ : C] ≥ 2
⇒[Z/N )∗ : C ± (s)] ≥ 4 ⇒Behauptung.
Es ist noch der Fall r = 1 d.h. N = pk zu untersuchen.
C = {u ∈ (Z/pk )∗ : aN −1 ≡ 1 mod N }
pk (p−1)
≥ pk−1 ≥ p
[Z/pk )∗ : C] = gcd(p−1,N
−1)
Aber p 6= 3, da N > 32 folgt: pk−1 ≥ 5
33
7
Faktorisierungs-Algorithmen
7.1
(p-1)-Faktorisierungs-Verfahren
Sei N eine ungerade zusammengesetzte Zahl. Und sei p|N ein (unbekannter) Primfaktor.
Dann gilt:
ap−1 ≡ 1 mod p für alles a mit p - a
Daraus folgt für jedes Q mit p − 1|Q dass;
aQ ≡ 1 mod p
⇒ gcd(aQ − 1, N ) > 1
Falls: d := gcd(aQ − 1, N ) < N , ist dann ein teiler von N gefunden.
d = N ⇔ aQ ≡! mod N
Wir suchen also ein Q, so dass
Q
aQ ≡ 1 mod p aber
1 mod N
Qr a k6≡
sei dazu p − 1 = i=1 qi i
Falls alle qiki ≤ B für eine gewisse schranke B sind, kann man ein geeignetes Q = Q(B)
wie folgt wählen:
Y
Q(B) :=
q α(q,B)
q≤B
mit α(q, B) := max{α : q α ≤ B}
Damit gilt p − 1|Q(B)
Faktorisieruns-Verfahren:
1. Wähle (auf gut Glück) eine Schranke B > 0
Q
2. Berechne Q(B) = q≤B q α(q,B)
3. Berechne
d := gcd(aQ − 1, N )
Falls 1 < d < N hat man einen Teiler von N gefunden.
Bemerkung 7.1
1. aQ braucht nur mod N berechnet werden.
2. Das Verfahren hat Erfolgschancen, falls p − 1 Produkt relativ kleiner Primzahlpotenzen ist.
(Dies ist nur für spezielle Primzahlen der Fall)
3. Abschätzugn
Q von Q(B):
Q1 (B) := q≤B
Pq
log Q1 (B) =
q≤B log q = Θ(B) ∼ B (Tschebischefsche Theta-Funktion)
Primzahlsatz:
Die Dichte der Primzahlen von der Größenordnung x ist asymptotisch gleich
1
log x
34
7 FAKTORISIERUNGS-ALGORITHMEN
Es folgt:
Q1 (B) ∼ eB
√
√
Q(B) = Q1 (B)Q1 ( B)Q1 ( k B) . . .
P
P
1
log Q(B) =
log Q1 (B k ) =
q k log q = Ψ(B) ∼ B (Tschebischefsche Psi
Funktion)
Zusammenfassend: Die Anzahl der Binärstellen von B von Q(B) Wächst linear
mit B
Optimierung des (p-1)-Verfahrens
1. Schrittweise Vergrößerung der Schranke B
B1 < B2 < . . .
Q(B1 )|Q(B2 | . . .
Q(Bk )
aQ(Bk ) = aQ(Bk−1 ) Q(Bk−1 )
2. Big-Prime Variation
Es kann sein dass fast alle Primpotenzenvon p − 1 kleinergleich einer gewählten
Schranke B sind mit einer einzigen Ausnahme, einer sogenannten big prime
q ∗ |p − 1 q ∗ > B
p − 1|Q(B)q ∗
Es muss
∗dann nur noch
Q(B) q
a
mod N
Berechnet werden. Der Wert von q ∗ ist natürlich unbekannt.
Man lege eine Weitere Big-Prime Schranke B ∗ > B fast und untersuche alle
Primzahlen q ≤ B ∗
Sei b := aQ (B) mod N
q1 < q2 < . . . < qm ≤ B ∗
bqν = bqν−1 · bqν −qν−1 = bqν1 bδν
wobei δν = qν − qν−1
Sei δ ∗ := maxν≤m {qν − qν−1 }
Dann st δ ∗ relativ klein.
Außerdem sind alle δν (bis auf (3-2)) gerade.
Man berechne im VOraus alle Potenzen b2k , 2k ≤ δ ∗
Dann können die bqν ausgehend von bq1 durch Einfache Multiplikationen berechnet werden.
7.2
Das Fermatsche Faktorisierungs-Verfahren
Sei N √
eine ungerade zusammengesetzte Zahl
x0 = d N e
Für k = 0, 1, . . .
Sei xk := x0 + k
Berechne x2k − N = dk
Solange bis dk = yk2 eine Quadratzahl ist.
Dann gilt:
7.2 Das Fermatsche Faktorisierungs-Verfahren
35
x2k − N = yk2
⇒N = x2k − yk2 = (xk + yk )(xk − yk )
Satz 7.1
Jede Faktorzerlegung von N (ungerade, nicht prim) entsteht auf diese Weise.
Beweis N = uv OBda u ≥ v
Das Gleichungssystem:
x + y = u; x − y = v
Hat die Lösung:
; y = u−v
x = u+v
2
2
Das Fermatsche Verfahren funktioniert gut, wenn die Fakotren u und v nahe bei
liegen.
√
N
Bemerkung 7.2
x2k+1 = (xk + 1)2 = x2k + 2xk + 1
⇒dk+1 = dk + 2xk + 1
2xk + 1 = (2xk−1 + 1) + 2
Beispiel 7.1
N= 989 x0 = 25 = 32
x20 = 1024
x20 − N = 35
x21 − N = 35 + 65 = 100 = 102
⇒ 989 = (33 + 10)(33 − 10) = 43 · 23
Es genügt x, y zu finden mit x2 ≡ y 2 mod N
mit x 6≡ ±y mod N
Dann hat man (x + y)(x − y) = kN
Dann erhält man einen Fakotr von N durch gcd(x + y, N ) oder gcd(x − y, N )
Bemerkung 7.3 (Quadratisches Sieb)
Basis Version:
Man kombiniere mehrere Rest:
x21 − N = u1
x22 − N = u2
..
.
x2k − N = uk
⇒ui ≡ x2i mod N
Durch Produktbildung,
so dass:
Q
Q
X 2 = ( xi )2 = ui = U 2
Die rechte Seite ein Quadrat wird.
(X + U )(X − U ) ≡ 0 mod N
Damit man die Rechte Seit zu einem Quadrat Kombinieren kann, bestimme man eine
Fakotrbasis aus kleinen Primzahlen p1 , . . . pr .
36
7 FAKTORISIERUNGS-ALGORITHMEN
Man Q
wähle nur solche ui die sich mit dieser Faktorbasis zerlegen lassen.
ui = rν=1 pανPiν
Q
Q
i αiν
u i = ν pν Q
Das
P Produkt ui ist genau dann Ein Quadrat, wenn für alle ν gilt:
i αiν ≡ 0 mod 2
Umformulierung:
Sei βiν := αiν mod 2 ∈ F2
Dann ist ist dies ein homogenes Gleichungsystem über F2
Man
P sucht eine nicht triviale Lösung des Gleichungssystems:
i βi νxi = 0
OB sich die Reste u = x2 − N mit der Faktorbasis zerlegen lassen, wird durch eine
Siebmethode entschieden.
Q(X) := X 2 − N
Wann ist Q(X) durch eine Primzahl p aus der Faktorbasis teilbar?
⇔ x2 ≡ N mod p
Eine Notwendige Bedinnung dafür ist dass Np = 1 (für ungerades p)
Man
nimmt also nur solche ungeraden Primzahlenin die Faktorbasis auf, für die
N
=1
p
IN diesem Fall hat die Kongruenz x2 ≡ N mod p
Zwei Lösungen ±x0 mod p
Diese Lösung lässt sich mit dem Wuzelziehverfahren bestimmen.
Die Allgemeine Lösung der Kongruenz der Relation p| Q(x) = x2 − N
ist dann ±x0 + mp, m ∈ Z
Mna nimmt in die Fakotrbasis
auf die Pseudoprimzahl p0 := −1, p1 := 2 sowie weitere
N
Primzahlenpν mit p = 1
Bemerkung 7.4 (Optimierungen)
1. Man wähle ein M > 0 und setze für das Siebintervall S := [x0 − M, x0 + M ]
√
wobei x0 = d N e
Frü jedes x ∈ S berechne man, (einen groben Wert) von log Q(x) = log(x2 − N )
Jedes mal wenn Q(x) durch die Primzahl pj der Fakotrbasis teilbar ist (festgestellt durch Sieben) subtrahiere man log pj
Falls alle Primzahlen der Fakotrbasis behandelt worden sind, sehe man nach für
welche Stellen x nach der Subtraktion fast der Wert 0 entstanden ist. Man bestätige durch Probedivision ob Q(x) tatsächlich mit der Fakotrbasis Fakotrisieren
lässt.
2. Big Prime Variation:
Falls ein Q(x) Produkt von Primzahlen ua sder Faktorbasis und einer weiteren
größerenQPrimzahl ist.
Q(x) = ν pαν ν p
wird dieses Resultat abgespeichert.
Falls später bei iener anderen Fakotrisierung
Q α0
Q(x0 ) = ν pν ν p
7.2 Das Fermatsche Faktorisierungs-Verfahren
37
dieselbe big prime auftritt, kann man beide Faktorisiereungen kombinieren.
Q α +α0
Q(x)Q(x0 ) = ν pν ν ν p2
3. Small prime variation.
Man sieht nicht nach kleinen Primzahlen und nicht nach Promzahlpotenzen.
4. Multipolinomiales Quadratisches Sieb Satt des einzigen Polynoms Q(x) = x2 −
N benützt man mehrere Polynome der Gestallt
Q(x) = ax2 + 2bx + c
!
mit der Diskriminante ∆ := b2 − ac = N
aQ(x) = a2 x2 + 2abx + ac = (ax + b)2 − b2 + ac = (ax + b)2 − N
D.h. Falls Q(x) durch p teilbar ist folgt:
(ax + b)2 ≡ N mod p
aQ(x) als Funktion der rellen Variablen x hat sein Minimum an der Stelle
x0 = − ab
Der Wert von aQ(x0 ) an dieser Stelle ist −N also ist der Wert Q(x0 ) gleich −N
a
Man wählt M so dass Q(x0 ± M ) = Na
!
aQ(x0 + M ) = a2 M 2 − N = N
d.h. √
a2 M 2 ≈ 2N
2N
a≈ M
Damit ist im Siebintervall:
p
N
|Q(x)| ≤ |a|
≈ M n2
Wie kann man die bedinnung b2 − ac = N erfüllen? ⇒b2 ≡ N mod a
D.h. a muss so gewählt werden, dass N ein quadratischer Rest moduo a wird.
Falls dies der Fall ist gibt ein ein b mit b2 ≡ N mod a d.h. b2 − N = ac für ein
gewisse Zahl c damit ist
dann Q(x) bestimmt.
Wähle a prim. und Na = 1 oder a = q 2 mit q prim und
N
q
=1
Dann ist N quadrat modulo q, also auch Quadrat modulo q 2
Q
α
Durch das Sieben erhällt man jetzt xν ∈ S sodass Q(xν ) = (−1)α0ν rj=1 pj jν
wobei pj Primzahlen aus der Faktorbasis
⇒aQ(xν ) = q 2 Q(xν ) = a(xν + b)2 − N
yν := axν + bQ
α
⇒ q 2 (−1)α0ν pj jν ≡ yν2 mod N
Multipliziere mit dem Inversen von q mod N
man erhällt eine
Q Kongruenz:
α
zν2 ≡ (−1)α0ν j pj jν mod N
Durch Lösen
Pr des Linearen Gleichungssystems:
α0ν ζ0 + j=1 αjν ζj ≡ 0 mod 2 (ζj ∈ {0, 1})
erhällt man eine Kungruenz :
Z 2 ≡ U 2 mod N
Falls Z 6≡ U mod N ist gcd(Z + U, Z − u) =: d ein Teiler von N
Durh die geeignete Wahlen der Parameter (größe der Faktorbasis, Länger des
Siebes) Lässt sich zeigen dass das MPQS eine asymtptische Komplexität ∼
38
7 FAKTORISIERUNGS-ALGORITHMEN
√
O e log(N ) log log N (1+o(1))
Dies ist nicht polynomial in log N , aber besser als exponentiell, also subexponentiell,
Bspiel für exponentielle
√ komplexität:
1
elog N = N,√e 2 log N = N (Probedivision)
1
e 4 log N = 4 N (Pollardsches Rho-Verfahren)
39
8
Einführung in die Kryptographie
Definition 8.1
Ein Kryptosystem ist ein Quintupel
(P, C, K, (Ek )k∈K , (Dk )k∈K ) bestehend aus
• Menge P (Klartexte, plaintexts)
• Menge C (Geheimtexte, ciphertexts)
• Menge K (Schlüssel, keys)
• Familie von Verschlüsselungsfunktionen
Ek : P → C, k ∈ K
• Famile von Entschlüsselungsfunktionen
Dk : C → P, k ∈ K
mit folgender Eigenschaft Dk (Ek (x)) = x für alle x ∈ P, k ∈ K
Bemerkung 8.1 (Klassische (VorComputer) Kryptographie)
Hier ist meistens P = Folgen von Buchstaben eines Alphabets {A, . . . , Z} Satzzeichen,
Zwischenräume werden unterdrückt.
C ebenso, oder besonderes Alphabet.
Bemerkung 8.2 (Moderne Kryptographie)
Hier meist P = C = ∪n∈N (Z/2)n
Symetrische Kryptograhie-Verfahren:
Der Schlüssel muss dem Sender und Empfänger bekannt sein, der Schlüssel muss vor
dritten geheim gehalten werden. Asymetrische(oder Public-Key) Kryptographie
Der Schlüssel besteht aus 2 Teilen k = (e, d)
Teil e (public key) Darf bekannt sein sein
e wird zur Verschlüsselung verwendet Teil d (private key) ist nur dem Empfänger der
Nachricht bekannt, er deint zur Entschlüsselung.
Im Prinzip kann d aus e berechnet werden, aber die praktische Berechnung ist im
abwartbarer Zeit nicht durchführbar.
Dagegen ist es einfach, e aus d zu berechnen. (Einwegfunktion Funktion, trapdoor
function)
Beispiel 8.1 (Klassische Verfahren)
1. Caesar-Shift
P = C = G = {A, . . . , Z} ∼
= Z/26 = {0, . . . 25}
s∈Z
cs : G → G; x 7→ (x + s) mod 26
z.b. s = 3 : A 7→ D, B 7→ E, . . . Z 7→ C
Entschlüsselung:
(cs )−1 = c−s
Kryptoanalysis: Häufigkeitsanalyse.
40
8 EINFÜHRUNG IN DIE KRYPTOGRAPHIE
2. Verallgemeinerung beliebige Permutation π : G → G
Spezielle Permutationen, gegeben durch ein schlüsselwort:
A B C D E F G H I J K
P E T R A B C D G H
3. Bigram-Substitution


B I G R A
M M S U b 

4. Transposition 
 S T I T U
T I O N
7→ BM ST IM T IGSIORU T N ABU
5. Vignere-Verschlüsselung Klartext: x1 . . . xn
Schlüsselwort k1 . . . kr
Geheimtext entsteht durch:
zi = (xi + ki mod r ) mod 26
Bei bekannter Schlüssellänge Häufigkeits-Untersuchung von Text Teilen x1 xr+1 x2r+1 . . .
Caesar Shift um k1
x2 xr+2 x2r+2 . . . Caesar Shift um k2
Spezialfall: r = 1 ist Caesar Shift. Buchstabenhäufigkeiten:
Deutsch
mit ü = ue , etc.
E
N
I
R
S
A
T
D
17,5 9,8 7,7 7,5 6,8 6,5 6,1 4,8
Englisch:
E
T
A
O
I
N
S
R
12,5 9,2 8,0 7,6 7,2 7,1 6,5 6,1
6. Rotormaschinen, Enigma. Scheiben, die jeweils eine Permutation
πi : Z/26 → Z/26
realisieren.
Sei τ : Z/26 → Z/26; x 7→ (x + 1) mod 26
Die Translation um 1.
Durch Drehung der Scheibe i um k Positionen erhält man die Permutation:
τ −k ◦ πi τ k
Mit den Scheiben 1, 2, 3 in Positionen k1 , k2 , k3 erhällt man die Permutation:
Π(k1 ,k2 ,k3 ) = (τ −k3 π3 τ k3 )(τ −k2 π2 τ k2 )(τ −k1 π1 τ k1 )
Jede Zahl m mit 0 ≤ m < 263 = 17576 lässt sich eindeutig darstellen als:
m = k3 · 262 + k2 · 26 + k1
(0)
(0)
(0)
mit gewissen m0 = k3 262 + k2 26 + k1 wird der i-te Buchstabe des Klartextes
verschlüsselt mit der Permuation. Π[m0 +i] wobei
Π[m] = Π(k1 ,k2 ,k3 ) für m = 262 k3 + 26k2 + k1
41
Literatur dazu
Kahn: The Code Breakers - MacMillan 1967
F.L. Bauer: Entzifferte Geheimnisse - Springer Verlag
S. Singh : The Code Book
Das One-Time-Pad (Vernam 1916)
Klartext (x1 x2 . . . xn ) ∈ (Z/2)n
Schlüssel = One -Time Pad (k1 . . . kn ) ∈ (Z/2)n
Geheimtext (z1 , . . . zn ) ∈ (Z/2)n
ist die Addition des Klartextes mit dem OTP modulo 2
Definition 8.2 (Shanons Modell)
Kryptosystem:
(P, C, K, (Ek )k∈K , (Dk )k∈K )
Es seien außerdem Wahrscheinlichkeits-Verteilungen auf der Menge P und auf K
gegeben.
Seien P, K endlich.
¶plain : P → R+ = [0, ∞[
¶key : K → R+
P
P
x∈K ¶key (x) = 1
x∈P ¶plain (x) = 1;
Daraus lässt sich eine Wahrscheinlichkeitsverteilung auf C ableiten.
Für z ∈ C istP
dann:
¶Cypher (z) = (x,k)∈P×K ¶plain (x)¶key (k)
Ek (x)=z
Bedingte Wahrscheinlichkeiten:
¶
(x,z)
¶plain|cypher (x|z) = plain,cypher
¶cypher (z)
Wahrscheinlichkeit des Klartextes x unter der Bedinnung, dass der Geheimtext z ist.
Ein Kryptosystem mit ¶plain , ¶key liefert perfekte Sicherheit :⇔
¶plain (x) = ¶plain|cypher (x|z)
∀x ∈ P, z ∈ C
Satz 8.1
Sei P = C = K = (Z/2)N
Ek (x) := x ⊕ k
Dk (z) := z ⊕ k
1
Sei ¶plain beliebig und ¶key (k) = |K|
= 2−N
Dieses System bietet perfekte Sicherheit im sinne von Shannon
Beweis
1. Behaupung: ¶chyper (z) = 2−N
Beweis:
P
P
¶CypherP
(z) = x+k=z ¶plain (x)¶key (k) = 2−N k ¶plain (z + k) =
= 2−N x ¶plain (x) = 2−N
2. ¶plain|cyhper (x|z) = ¶plain (x) Beweis hierfür:
¶plain,cypher (x, z) = ¶plain (x) · ¶key (x + z)
42
9 BLOCK-VERSCHLÜSSELUNGS-VERFAHREN
(da k := x + z der eindeutig bestimmte Schlüssel ist der x in z überführt)
¶plain,cypher = 2−N ¶plain (x)
2−N ¶plain (x)
¶plain|cypher =
= ¶plain (x)
2−N
9
Block-Verschlüsselungs-Verfahren
S
P = n≥0 (Z/2)n
bei einem Block-verschlüsselungsverfahren, wird der Klartext in Blöcke einer Festen
Länge r unterteilt und die Blöcke werden einzelnd verschlüsselt.
Typischerweise: r = 64 bit (=8 bytes) oder r = 128 bit
(Z2 := Z/2)
Ek : Zr2 → Zr2
−1
Dk := Ek
Beispiele: DES, 3-DES (r=64)
AES (r=128 oder 192 oder 256)
Advanced Encryption Standard
Schlüssellänge für AES ist 128 bzw 192 bzw 256
für DES 56.
Herunterladen