Algorithmische Zahlentheorie und Public Key

Werbung
Algorithmische Zahlentheorie und Public Key
Kryptographie (Forster)
Mitgeschrieben von Bernhard Weiß
Mitschrift aus dem SoSe 2009
1
INHALTSVERZEICHNIS
Inhaltsverzeichnis
Inhaltsverzeichnis
I
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
8 EINFÜHRUNG IN DIE KRYPTOGRAPHIE
(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
43
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
Dk := Ek−1
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.
Erwünschte Eigenschaften von Block verschlüsselungsverfahren:
• Verändert man im Klartext ein einzziges Bit, so werden im Zugehörigen Geheimtext z = Ek (x) ungefähr die Hälfte aller Bits verändert.
• Verändert man im Schlüssel k nur ein einziges Bit, so werden im Gehiemext
ungefähr die Hälfte aller Bits verändert.
• Bei gegebenen Paar von Klartext und zugehörigen Geheimtext gibt es kein
wesentlich effizienteres Verfahren, den schlüssel als dei Brute-Force-Methode
(d.h. Durchprobieren aller möglichen Schlüssel)
Insbesondere muss die Verschlüsselungsfunktion nicht-linear sein.
Beispiel in dem die letzte Eigenschaft nicht der Fall ist:
112
Double-DES zwei unabhängige Schlüssel k1 , k2 ∈ Z56
2 , (k1 , k2 ) ∈ Z2
x 7→ DESk2 (DESk1 (x)) =: z
Meet in the middle Angriff.
Bilde alle möglichen Verschlüsselungen mit k ∈ Z56
2 von x
Sowie alle möglichen Entschlüsselungen mit k ∈ Z56 von z
Suche nun eine Kollision sodass DESk1 (x) = DESk−1
(z)
2
⇒DESk2 (DESk1 (x)) = z
Man braucht nur 2 · 256 = 257 Schlüssel durchzuprobieren um sicher auf eine Kollision
zu treffen.
Desshlab benutzt man 3-DES :
DESk3 ◦ DESk2 ◦ DESk1 (x)
oder DESk1 ◦ DESk−1
◦ DESk1 (x)
2
Wegen Meet in the Middle Angriff ist die 2. Variante kaum Schäwcher als die erste
Variante.
Beschreibung von AES (Riyndeal)
Bytes (Menge aller Elemente von Z82 ) werden identifziert mit der Menge der Elemente
des Körper F28 = GF (256)
44
9 BLOCK-VERSCHLÜSSELUNGS-VERFAHREN
F28 = F2 [X]/(f (X))
mit f (x) := X 8 + X 4 + X 3 + X + 1 irreduzibles Polynom
Elemente von F82 können repräsentiert werden durch eindeutig bestimmte Polynome
vom Grad ≤ 7
g(X) = α7 X 7 + . . . + α1 X0 + α0
αν ∈ F2 = {0, 1}
Diesem Polynom wird der Bitvektor α7 α6 . . . α0 ∈ Z82
zugeordnet.
Addition entspricht bitweiser Addition modulo 2
Multiplikation über Multiplikation der Repräsentierenden Polynome mit Reduktion
modulo f (X)
Ein Block in AES von 128 bits = 16 Bytes
(x0 , .
. . , x1 5) ∈ F16
256 wird
 als 4 × 4 matrix repräsentiert:
x0 x4 x8 x12
x1 x5 x9 x13 

S=
x2 x6 x10 x14  ∈ M (4 × 4, F256 )
x3 x7 x11 x15
Ein Schlüssel der Länge 128 bits wird ebenso als Matrix repräsentiert
Au den (globalen) Schlüssel k ∈ M (4 × 4, F256 ) = M4 (F256 ) werden insgesammt 11
Runden Schlüssel.
K[i], i = 0, . . . , 10
K[i] ∈ M4 (F256 )
zugeordnet.
Der Klartext wird in 10 Runden verändert. Vor Begin der 10 Runden:
S 7→ S + K[0] (Add RoundKey)
for i = 1 to 9 do:
Bytesub(S);
ShiftRows(S);
MixCullums(S);
AddRoundKey(S,K[i]);
end;
(schlussrunde:)
ByteSub(S);
SchiftRows(S)
AddRoundKey(S; K[10])
Bytesub wird komponentenweise auf jeden Koffizienten der State-Matrix angewendet:
σF256(→ F256 bijektiv
x−1 falls x 6= 0
x 7→
0
sonst
Anschließend eine affin-lineare Transf über F2
45


 
1 1 1 1 1 0 0 0
0
0 1 1 1 1 1 0 0 
1

 

 
0 0 1 1 1 1 1 0 
1


 
ξ7


0
0 0 0 1 1 1 1 1
 .. 

  Bemerkung: x−1 = x254
x =  .  7→ 
x
+

0
1
0
0
0
1
1
1
1


 
ξ0
1 1 0 0 0 1 1 1 
0


 
1 1 1 0 0 0 1 1 
1
1 1 1 1 0 0 0 1
1




a0 b 0 c 0 d 0
a0 b0 c0 d0
a1 b1 c1 d1 


 7→  b1 c1 d1 a1 
ShiftRows: 
a2 b2 c2 d2 
 c2 d2 a2 b2 
a3 b 3 c 3 d 3
d 3 a3 b 3 c 3
Mix Culums:


02 03 01 01
01 02 03 01

S 7→ 
01 01 02 03 S ( in Hexadezimaler schreibweise)
03 01 01 02
Die Umkehrabbildung:
Addroundkey(S,K[10])
for i=1 to 9 do
Bytesub−1 (S)
ShiftRows−1 (S)
MixColums−1 (S)
Addroundkey[10-i]
end;
Bytesub−1 (S)
Shiftrows−1 (S)
Addroundkey(S;K[0])
Betriebsmodi von Block verschlüsselungen
(modes of operation)
Ek : Zr2 → Zr2 Verschlüsselungsfunktion für einen Block
x = (x1 , . . . xn ), xi ∈ Zr2
ECB-Modus (electronic code book)
Geheimtext z = (z1 , . . . , zn ) mit zi = Ek (xi ) CBC-Modus (cipher block chaining)
initialisierungs-Vekotr iv ∈ Zr2
sollte für jede Verschlüsselung eines Textes neu zufällig gewählt werden.
z0 := iv, zi := Ek (xi + zi−1 )
Entschlüsselung. xi = Ek−1 (zi ) + zi−1
Gleiche blöcke des Klartextes werden im Allgemeienn verschiedene Geheimtext-Blöcke.
CFB-Modus (cypher feed back)
z0 := iv
zi := Ek (zi−1 ) + xi
Entschlüsselung:
46
9 BLOCK-VERSCHLÜSSELUNGS-VERFAHREN
xi = zi + Ek (zi−1 )
OFB-Modus (output feed back):
z0 := u0 := iv
ui := Ek (ui−1 )
zi := xi + ui
Die folge (u1 , . . .) spielt dei Rolle eines One-Time Pads.
Im OFB-Modus darf bei der Berechnung der ui kein Fehler auftreten sonst werden
alle Nachfolgenden Blöcke falsch entschlüsselt.
s-bit Varianten von CFB und OF B
s |r
Meist: r = 8l, s = 8
Hier ist der Klartextx = (x1 , . . . xn ) ∈ (Zs2 )n
Für einen Block ξ = (ξr−1 . . . ξ1 ξ0 ) ∈ Zr2
Bezeichne Ls (ξ) = (ξr−1 ξr−2 ξr−s ) ∈ Zs2
s-CFB:
u0 := iv
zi := Ls (Ek (ui−1 )) + xi ∈ Zs2
ui := Shs (ui−1 )kzi
Shs shift um s bits nach Links
k ist die concetation.
ui−1 = (ηr−1 . . . η0 ) ∈ Zr2
zi = (ζs−1 . . . ζ0 ) ∈ Zs2
Shs (ui−1 )||zi = (ηr−s−1 . . . η1 η0 ζs−1 . . . ζ0 ) ∈ Zs2
s-OFB:
u0 := iv, ui = Ek (ui−1 ) zi := Ls (Ek (ui−1 )) + xi
47
10
Das RSA-Kryptosystem
Rivest, Shamir, Adleman 1978
(Ellis, Cocks 1973)
Aufstellung eines RSA-Systems:
Alice wählt zwei große (zufällige) Primzahlen p 6= q ( mindestens 512 bit d.h. p, q ∼
2512 )
N := p · q
Weiter qählt ALive eine Zahl e ≥ 3mit
gcd(e, ϕ(N )) = 1
ϕ(N ) = (p − 1)(q − 1)
Mit dem erweiterten Euklidischen Algorithmus berechnet Alice ein d mit
ed = 1 mod ϕ(N )
Alice Veröffentlicht (N, e) als Public Key.
und hält p, q, ϕ(N ), d geheim.
Private Key (N, d)
p, q, ϕ(N ) sind im Weiteren nicht nötig und können vernichtet werden.
Bob, der im Besitz des Public öffentlichen Schlüssels ist, kann eine Nachricht wie folgt
Verschlüsseln und an Alice Senden:
1. Nachricht wird als Element x ∈ Z/N aufgefasst.
(nötigenfalls mehrere xν ∈ Z/N )
N ∼ 21024 entspricht 128 Bytes
2. Bob Berechnet
y := xe mod N und sendet diesen Geheimtext an Alice.
Alice entschlüsselt diesen Geheimtext mit dem Decryption Exponent d
Satz 10.1
Es gilt (xe )d ≡ x für alle x ∈ Z/N
Beweis Falls gcd(x, N ) = 1 liegt x ∈ (Z/N )∗
Da #(Z/N )∗ )ϕ(N ) folgt
xϕ(N ) ≡ 1
aber ed = 1 + λϕ(N )
also: xed = x1+λϕ(N ) = x1 (xϕ(N ) )λ = x
Falls gcd(x, N ) 6= 1
Falls x = 0 trivial.
Falls p|x
Z/N ∼
= (Z/p) × (Z/q), x ∼
= (0, x2 )
ϕ(N )
q−1
x2 = 1 ⇒ x2
= 1 ⇒xed = x mod N
Bemerkung 10.1
Der Anteil der Elemente von Z/N , die nicht teilerfremd zu N sind ist:
N −ϕ(N )
1
= pq−(p−1)(q−1)
= p+q−1
= p1 + 1q − pq
∼ 2−511
N
pq
pq
48
10 DAS RSA-KRYPTOSYSTEM
p, q, ϕ(N ) müssen deshalb geheimgehalten werden, weil sonst jeder aus dem öffentlichen Schlüssel den privaten Schlüssel berechnen kann.
Die Sicherheit von RSA hängt davon ab, dass es schwer ist , große zahlen zu faktorisieren.
Die Faktoren p, q sollten so beschaffen sein, dass weder p − 1 noch q − 1 produkt von
Kleinen Primzahlotenzen ist.
Damit das Fermatsche Faktorisierungsverfahren nicht anwendbar ist, dürfen p und q
keinen zu kleinen Abstand haben.
Fallen:
Falls bekannt ist, dass der Klartext aus einer kleinen Menge
{xν : ν ∈ I} mit #I < 109
von Möglichkeiten entnommen ist, kann man bei bekannten Geheimtext y einfach alle
Möglichkeiten E(xν ) = yν
durchprobieren, bis man auf auf die Gleichheit y = yν stößt.
Gegenmaßnahme:
Padding mit Zufallsbits.
1. Low exponent attak.
Angenommen, mehrere Benutzer A1 , . . . A3 haben für ihr RSA system den Encryption exponent e = 3 (aber verschiedene N1 , N2 , N3 )
Wenn Bob die selbe Nachricht x an A1 , A2 , A3 sendet, sind die Geheimtexte
xi = xe mod Ni
Der Klartext kann auf folgende Weise von Eve berechnet werden.
Nach dem Chinesischen Restsatz besitzt das System:
y ≡ yi mod Ni
Eine eindeutig bestimmte Lösung y mod N = N1 N2 N3
Voraussetzung dafür is, dass N1 , N2 , N3 paarweise teilerfremd sind.
Andernfalls ist ein nicht trivialer gemeinsamer Teiler, etwa p = gcd(N1 , N2 ) und
leicht berechenbar, das heißt das Krypto-System ist gebrochen.
Wir nehmen an, dass N1 , N2 , N3 ∼ 2l
⇒N ∼ 2l
0 < y1 y2 y3 < 23l
Man kann die dritte wurzel aus y in Z ziehen.
es gilt y = x3 als ganze Zahl.
Bemerkung wäre die Nachricht mit Zufallsbits ergänzt worden wären, wäre dieser Angriff nicht möglich.
Man wählt heute meist größere Verschlüsselungsexponenten.
z.b:
e = 216 + 1 = 65537
Bemerkung 10.2
Das RSA System wird in der Praxis meist nur zum Austuasch eines ßitzungsßchlüsels für ein symetrischen Kryptographie Verfahren (wie AES, 3-DES, Rc6, CAST, . . .)
verwendet.
49
11
Diskreter Logarithmus
Sei G eine endliche zyklische Gruppe der Ordnung m und sei g ∈ G ein erzeugendes
Element.
Dann hat man die Exponentialabbildung:
expg : Z/m → G; k 7→ g k
expg ist ein Gruppen Isomorphismus der Additiven Gruppe (Zm , +) auf (G, ·)
Die Umkehrabbildung: logg : G → Z/m heißt diskreter Logarithmus (in G zur Basis
g)
Beispiel 11.1
G = Fq∗ wobei q Primzahl oder Primzahlpotenz ist. g erzeugendes Element (Primitivwurzel)
expg : Z/(q − 1) → F∗q
logg : F∗q → Z/(q − 1)
Im Fall q = p Prim heißt der Lograrythmus Index.
Unterschied zum Klassischen Logarithmus:
R∗+ → (R, +)
Beim DL ist das Ziel keine Additive Untergruppe von Fq
G0 beliebige Gruppe.
g ∈ G0
G :=< g >
die von g aufgespannte zyklische Untergruppe
Eliptische Kurven über endlichen Körpern oder Untergruppen davon.
Bemerkung 11.1
Während im allgemeinen die Exponentialfunktion effizient berechnet werden kann,
ist das für den diskreten Logarithmus nicht der Fall.
Dies wird für Public-Key-Kryptosysteme benutzt.
Diffie-Hellman-Schlüsselaustausch
Sei G endliche Gruppe mit Erzeuger g, Ord(G) = m (öffentlich bekannt)
Alice wählt α ∈ Z/m und berechnet a := g α und übermittelt Bob a.
Bob analog, β und berechnet b := g β und übermittelt b an Alice.
Der gemeinsame Schlüssel ist
K = bα = g αβ = aβ
Kann von Alice und Bob berechnet werden.
In der Praxis ist z.B. G = F∗p mit p ∼ 21024
Meist
eine kryptographische Hash-Funktion angewandt:
S wird auf K noch
r
h : m≥1 Z2 m → Z/2 mit festem r, z.b. r = 128 oder r = 160 angewandt.
Falls Eve das Diskrete Logarithmus Problem lösen kann, kann sie den Schlüssel K
berechnen.
α = logg (a); K = bα
50
11 DISKRETER LOGARITHMUS
β = logg (b); K = aβ
Diefie Hellman-Problem
DH-Problem
Gegeben a = g α , b = g β
Gesucht g αβ
DL ⇒DH (Umkehrung?)
Methoden zur Berechnung des DL
Bemerkung 11.2 (Giant-Step-Baby-Step-Verfahren von Shanks)
zyklische Gruppe G der Ordnung m mit Generator g
Gegeben x ∈ G.
√
Gesucht: k ∈ Z/m mit g k = x Sei R := d me dann kann die gesuchte Zahl k
dargestellt werden als k = λr + µ mit 0 ≤ λ, µ < r
Dann ist g k = x ist gleichwertig mit g λr+µ = x
⇔(g r )λ = xg −µ
Zuerste werden die Giant steps berechnet:
(g r )0 , (g r )1 , (g r )2 , . . . (g r )r−1
und Abgespeichert (z.b. Hashtabelle)
Dann werden die Babysteps berechnet:
xg −0 , xg −1 , . . . , x(g −1 )µ , . . .
Bis man auf eine Kollision stößt.
⇒ k := λr + µ = logg (x)
p
Anzahl der Multiplikationen O( (m))
11.1
Pohlig-Hellman-Reduktion
Falls die Ordnung m von der G keine Primzahl ist, kann man das DL Problem in G
zurückführen auf das DL Problem in Zyklischen Gruppen der Primzahlordnung pi ,
wobei m = pk11 . . . pkr r Zurückführen auf Primzahl-Potenzen Sei m = m1 m2 . . . mr
Wobei die mi paarweise Teilerfremd sind.
Behauptung:
Die Abbildung: Ψi : G → G; x 7→ xm/mi
Bildet G auf eine zyklische Untergruppe Gi der Ordnung mi ab.
Diese Untergruppe hat das erzeugende Element gi := g m/mi
Insgesammt erhällt man einen Gruppen Isomorphismus:
(Ψ1 , . . . , Ψr ) : G → G1 × . . . × Gr
Zur Umkehrabbildung:
gcd( mm1 , . . . mmr = 1
⇒1 = λ1 mm1 . . . λr mmr
Φ Q
(x1 , . . . , xr ) =⇒ xλi i
11.1 Pohlig-Hellman-Reduktion
51
ΨΦ = id
xi = xm/mi ∈ Gi , gi = g m/mi
xi = giνi
P
Q
Q
λν m
x = xλi = giλi νi = g i i mi
i
2. Zurückführung auf Primzahl-Ordnung
Sei g eine zyklische Gruppe der Ordnung pk , p prim k > 1
1 ⊂ G1 ⊂ G2 ⊂ . . . ⊂ Gk = G
Gl sei Untergruppe der Ordnung pl
k−l
Gl ist bild von G unter der Abbildung x 7→ xp
k−l
ist g Erzeuger von G so ist gl := g p Erzeuger von Gl .
k−l
Definiere xl = xp
Induktiv wird das Problem in Gl gelöst.
G1 hat Primzahlordnung p
l →l+1
ξ 7→ ξ p
{1} → G1 →
Gl+1
→ Gl → {1}
−νl
xl+1
7→ xl = glνl Also liegt gl+1
xl+1 ∈ G1
−νl
gl+1
xl+1 7→
1
−νl
Nach Induktionsvoraussetzung für l = 1 erhalte ich µl mit gl+1
xl+1 = g1µl
⇒Behauptung.
Subexponentielles Verfahren
Bzw: Index Kalkühl in (Z/p)∗
Sei g eine Primitivwurzel modulo p und x ∈ Z/p∗
Gesucht: logg (x)
Man wähle eine Faktorbasis aus allen Primzahlen q ≤ B wobei B eine vorgegebene
Schranke ist.
q1 = 2, q2 = 3, . . . , qr
Zuerst werden die Logarithem der Fakotrbasis Bestimmt.
Zuerst werden die Logarithmen der Faktorbasis bestimmt.
Man betrachtet Potenzen:
g α mod p
mit zufallszahlen α ∈ Z/(p − 1)
bis man auf ein Ergebnis stößt das Mithilfe der Fakotrbasis verzelgt werden kann.
g α = q1k1 . . . qrkr mod p
Man wiederholt diese Prozedur mit weiteren zufallsexponenten und erhält eine Reihe
von Kongruenzen:
i1
g αi ≡ q1kP
. . . qr kir mod p
⇒αi ≡ ri=1 kij log qj mod (p − 1)
i = 1, 2, . . . r∗ ≥ r Dies ist ein lineares Gleichugnssystem für Unbekannten log qj , j =
1 . . . r über dem Ring R = Z/(p − 1)
Falls r = r∗ lässt scih das Geleichungsystem Schreiben als:
52
11 DISKRETER LOGARITHMUS


log q1


K  ...  = α1 . . . αr
log qr
mit der Quadratischen Matrix K = (kij ) ∈ Mr (Z/(p − 1)
Die Matrix K ist genau dann invertierbar, wenn det K invertierbar in R = Z/(p − 1)
ist, d.h. wenn gcd(det k, p − 1) = 1
Bemerkung 11.3
Sei K # die Matrix der alg Komp. von K (adjunkte Matrix, K̃)
K # K = det KE
K # ∈ Mr (R)
#
Es folgt
 durchMultiplikation mit K :
log q1
β1
 .. 
#
det K  .  = K α1 . . . αr =
. . . βr
log qr
Also det(K) log qj = βj
Lemma 11.1
Gegene sei die Kongruenz:
(1)
ax ≡ b mod m
Falls gcd(a, m) = 1 ist die Kongruenz modulo m lösbar.
Sei nun d := gcd(a, m) > 1
Dann ist die Kongruenz (1) genau dann lösbar wenn d|b
In diesem Fall gibt es genau eine Lösung modulo m.
Beweis Sei a = a1 d, b = b1 d, m = m1 d
ax = b mod m
⇔(2)a1 x ≡ b1 mod m1
Da gcd(a1 , m1 ) = 1 also besitzt (2) eine Eindeutige Lösung x modulo m1 .
Diese Lösung x ist auch Lösung modulo m
Bemerkung 11.4
Eine natürliche zahl x heißt B-Glatt, wenn alle Primteiler q|x die Bedinnung q ≤ B
1
genügen. Faustregel: Sei u > 1 Und B = x u
Dann ist die Wahrscheinlichkeit, dass x B-Glatt ist ungefähr u1u
Man kann zeigen, dass bei geeigneter Wahl von B die komplexität des Index-Kalküls.
Wie berehnet man log x falls die Logarithmen der Faktorbasis bekannt sind?
Man wählt zufallsexponenten y ∈ Z/(p − 1)
und berechnet xg γ mod p
bis man auf eine Zerlegeung:
xg γ = q1l1 . . . qrlr mod p
stößt. Dann rilt:P
logg (x) = −y + ri=1 lj log qj mod (p − 1)
Bemerkung 11.5
Damit das DL Problem in F∗p genügend schwierig ist.
53
12
Digitale Signaturen
MessageDigest (kryptographische Hash-Funktion) h : ∪n≥0 Zn2 → Zr2
r fest typischerweise r = 128 oder r = 160 , r = 192, r = 256
Diese Hash-Funktion soll folgende Eigenschaften haben:
0. h(x) soll effizient berechnet werden können.
1. Es ist Praktisch unmöglich aus ξ = h(x) wieder x zurückzugewinnen.
2. Es ist unmöglich irgendein x0 zu bestimmen mit h(x0 ) = ξ
3. Es ist praktisch unmöglich irgend zwei Elemente z1 , z2 ∈ Un≥0 Zn2 zu finden mit
h(z1 ), h(z2 )
(starke Kollisionsresistenz)
(Dazu muss r genügend groß sein, b̈irthday attak¨)
r ≥ 160 oder mehr
Brute Force Angriff bentigt im Allgemeinen 280 Schritte
r
(allgemein 2 2 Schritte)
Bekannte Message Digest:
MD5 (128 Bit) nicht ganz koll-resistent
SHA-1 (160 Bit)
SHA-256 (256 Bit)
Secure Hash-Algorithm Nist.
RSA-Signatur
(N, e) öffentlicher Schlüssel
(N, d) privater Schlüssel von Alice
Alice signiert ein Dokument x ∈ Zn2 wie folgt:
1. ξ := M D(x) ∈ Zr2
2. σ := ξ d mod N Signatur von x
Bob Kann die Unterschrift verifizieren:
1. Er Berechnet σ e mod N und ξ := M D(x)
Er akzieptiert dei Unterschrift, falls σ e = ξ
Digitale Signatur soll fälschungssicher und unverleugbar sein.
Oscar kann die Unterschrift von Alice fälschen, falss er in Besitz des privaten Schlüssels kommt. Z.B. wenn er aus (N, e) den Entschlüsselungsexponenten d berechnen
kann. z.B. wenn er N faktorisieren kann.
54
12 DIGITALE SIGNATUREN
Angriff mit dem Geburtstags-Paradoxon
falls die Länge des Message-Digests nicht genügend groß ist.
Länge (MD) = r Bit
r
Brute Force angriff der Komplexität ∼ 2 2
Zwei Dokumente x1 und x2 seien gegeben.
x1 Schuldschein. $100
x2 Schuldschein $1000000
r
Oscar verändert x1 auf mehr als 2 2 Möglicheiten (ohne den Sinn zu verändern duch
hinzufügen oder Weglassen von Spaces und Tabs)
Dasselbe macht er mit x2
Nach dem Geburtstags-Pradoxon kann er erwarten, dassM D(x01 ) = M D(x02 ) =: ξ für
geeinete Varianten. Er legt x01 Alice zur Unterschrift vor.
Nach Fälligkeite der Schuld behautet Oscar, Alice habe Schuldschein x2 unterschrieben.
Die Signaturen von x01 und x002 sind identisch.
ElGamal-Signatur
G = hgi zyklische Gruppe mit Erzeuger g der Ordnung m
ΨG → Z/m Abbildung.
Alice wählt eine Zufallszahl a ∈ Z/m und berechnet
A := g a ∈ G
Öffentlich sind: (G, ψ, g, A)
Sei x ein Dokument, das von Alice signiert werden soll.
Sie berechnet zuerst einen Message Digest.
ξ = M D(x) ∈ Z/m
Alice wählt eine neue Zufallszahl k ∈ (Z/m)∗ und Berechnet r := g k ∈ G
und s := k −1 (ξ − aψ(r)) ∈ Z/m
signatur (x) = (r,s)
Verifikaition.
Bob akzieptiert die Signatur als echt falls.
AΨ(r) rs = g ξ mit ξ = M D(x)
Falls Alice die Signatur ordnungsgemäß erstelt hat ist die s erfüllt.
Aψ(r) = g aψ(r)
rs = g ks = g ξ−aψ(r)
Für jede Unterschfit muss Alice eine neue Zufallszahl wählen.
Annahme:
Alice signiert zwei Dokumente x1 , x2 mithilfe derselben Zufallszahl k ∈ (Z/m)∗
sign(x1 ) = (r, s1 ), sign(x2 ) = (r, s2 )
r = gk
si = k −1 (ξi − aψ(r)), ξi = M D(xi )
s1 − s2 = k −1 (ξ1 − ξ2 )
Oscar kennt s1 , s2 , ξ1 , ξ2 kann also k berechnen.
55
Falls ξ1 − ξ2 invertierbar odulo m ist kann er daraus k −1 und damit k berechnen. und
draus (falls ψ(r) invertierbar ) auch den geheimen Exponenten a.
Falls gcd(ξ2 − ξ1 , m) =: d > aber d klein dann gibt es d möglichkeiten für k −1 die
Oscar ausprobieren kann.
Falls Oscar das DL Problem in G lösen kann, kann er ebenfalls den Geheimen Exponenten a berechnen und damit die UNterschfit fälschen.
Beispiele: Für ElGamel-Signatur-Systeme:
1. G = F∗p , #G = p − 1
Damit das DL-Problem in G schwer ist sollte p ∼ 21024
oder größer sein, außerdem sollte möglichst.
p−1
=: q eine Primzahl sein.
2
(q, p) Sophie Germain Paar.
2. DSA Digital Sinature Algorithm ist Variante von ElGamal
G ist eine Zyklische Untergruppe, der Primahlordnung q
von F∗p
q ∼ 2160 , p ∼ 21024 oder größer
q|p − 1, d.h. p = kq + 1 mit k der größenordnung 21024−160
Man wählt zuerst die Primzahl q.
Nach dem Dirirchletschen Primzahlsatz gibt es Dazu Primzahlen p der geänschten Größe.
3. G Elliptische Kurve über einem Endlcihen Körper
56
13 ELIPTISCHE KURVEN
13
Eliptische Kurven
Eine Eliptische Kurve ist eine singularitätenfreie algebraische Kurve 3. Ordnung in
der Projektiven Ebene P2 (K) über einem Körper K.
Der affine Teil der eliptischen Kurve über einem Körper der Charaktersistik > 2 ist
äquivalent zu einer Kurve die durch die Gleichung:
y 2 = P (x)
gegeben wird, wobei P (x) ein Polynom 3. Grades ohne mehrfache nullstellen ist.
Falls Char K > 3 kann man die Gleiching in die Gestalltt:
y 2 = x3 + ax + b
annehmen wobei:
∆ := 4a3 + 27b2 6= 0
Satz 13.1
Sei K Körper mit Char k 6= 2, 3
Hat das Polynom P (x) = x3 + ax + b ∈ K[x] eine mehrfache Nullstelle ξ0 ∈ K1 in
einem Erweiterungskörper K1 ⊃ K
Dann liegt die Nullstelle schon in K.
Dies ist genau dann der Fall, wenn ∆ := 4a3 + 27b2 = 0
Beweis
1. P habe mehrfache Nullstelle ξ0
P = (x − ξ0 )2 (x − ξ1 ) mit einem ξ1 ∈ k1
Daraus folgt
(a) 2ξ0 + ξ1 = 0
(b) ξ02 + 3ξ0 ξ1 = a
(c) ξ02 ξ1 = −b
Aus (a) folgt ξ1 = −2ξ0
in (b) einsgesetzt egibt:
(α) − 3ξ02 = a
in (c) eingesetzt folgt:
(β) ξ1 a = 3b
Falls a = 0 folgt b = 0 Also P (X) = X 3 hat die Dreifache Nullstelle ξ0 = 0 ∈ K
und ∆ = 0
Sei also a 6= 0
3b
, ξ0 = − 2a
∈K
⇒ξ1 = 3b
a
2
(α) ⇒ a = −3ξ0
(β)⇒b = −2ξ0 31 (−3)ξ02 = 2ξ03
⇒ a3 = −27ξ06 ; b2 = 4ξ6
⇒ 4a3 + 27b2 = 0
2. Es Gelte 4a3 + 27b2 = 0
Fall a = 0Trivial
Sei also a 6= 0
3b
; ξ0 := − 2a
Definiere ξ1 = 3b
a
Dann gilt: P (x) = (x − ξ0 )2 (x − ξ1 )
13.1 Die Projektive Vervollständigung
57
Definition 13.1
Sei F (X, Y ) ∈ K[X, Y ] Dies Definiert eine Kurve CF = {(x, y) ∈ K 2 : F (x, y) = 0}
∂F
∂F
(x0 , y0 ) = ∂Y
(x0 , y0 ) = 0
Ein Punkt (x0 , y0 ) ∈ CF heißt singulär, wenn ∂X
Satz 13.2
Die durch das Polynom F (X, Y ) = Y 2 − P (X) ∈ K[X, Y ] mit Char K 6= 2, 3 , P
Polynom 3. Grades. gegeben Kurve ist genau dann singularitätenfrei (im Affinen),
wenn P (X) keine mehrfachen Nullstellen hat.
∂F ∂F
Beweis ( ∂X
, ∂y ) = (−P 0 (X), 2Y )
Sei (x0 , y0 ) ein Punkt der Kurve
∂F ∂F
, ∂y )(x0 , y0 ) = (−P 0 (x0 ), −2y0 )
( ∂X
Angenommen (x0 , y0 ) sei singulärer Punkt ⇒y0 = 0, P (0 (x0 ) = 0
Außerdem y02 = P (x0 ) ⇒P (x0 ) = 0
Da P (x0 ) = P 0 (x0 ) = 0 ist x0 eine mindestens 2-fache Nullstelle von P
Die Umkehrung ist Trivial.
13.1
Die Projektive Vervollständigung
¶2 (K) = {(x0 , x1 , x2 ) ∈ K 3 \ {0}}/∼
mit sim: (x0 , x1 , x2 ) ∼ (y0 , y1 , y2 ) ⇔ ∃λ ∈ K ∗ : λxi = yi ∀0 ≤ i ≤ 2
Die Äquivalenzklasse von (x0 , x1 , x2 ) ∈ K 3 \ {0} wird mit (x0 : x1 : x2 ) bezeichnet.
Die Projektive Eben ¶2 (K) ist eine Erweiterung der affinen Ebene A2 (K) = K 2 bzgl.
der Einbettung
inj.
Φ0 : K 2 −→ ¶2 (K); (x, y) 7→ (1 : x : y)
Der Rest ¶2 (K) \ Φ0 (K 2 ) = {(0 : x : y) ∈ ¶2 (K)}
|
{z
}
g∞ unendlichferne Gerade
g∞ ∼
= P1 (K) = {(x0 , x1 ) ∈ K 2 \ 0/ ∼
Die Projektive Gerade ¶1 (K) lässt sich darstellen als Vereinigung, der Affinen Geraden A1 (K) = K 1 mit einem unendlich fernen Punkt (0, 1)
A1 (K) ∼
= {(1 : x) ∈ ¶1 (K)}
¶1 (K) \ A1 (K) = {(0, 1)}
Bemerkung 13.1
¶1 (C) ist nichts anderes als die Riemansche Zahlenkugel.
C ∪ {∞}
Andere Mögliche Einbettungen von A2 (K) :
Φ1 : (u, v) 7→ (u : 1 : v)
Φ2 : (s, t) 7→ (s : t : 1)
Ui := Φi (K 2 ) Damit gilt:
¶2 (K) = U0 ∪ U1 ∪ U2 affine Überdeckung von ¶2 (K)
Bemerkung 13.2 (Projektive Vervollständigung einer Kurve)
Projektive vervollständigung einer affinen algebraischen Kurve, die durch ein Polynom
F (X1 , X2 ) ∈ K[X1 , X2 ] vom grad d gegeben wird. F (x0 , x1 , x2 )K[x0 , x1 , x2 ]
58
13 ELIPTISCHE KURVEN
Sei Wie folgt definiert:
F (x0 , x1 , x2 ) := xd0 F ( xx10 , xx02 ) ist ein homogenes Polynom von Grad d, d.h. von der
gesatlt:
P
ν2
ν0
ν0 +ν1 +ν2=d cν0 ν1 ν2 x0 x1 ν1 x2
Die Vervollständigung C von C ist definiert : C := {(x0 : x1 : x2 ) ∈ ¶2 (K) : F (x0 :
x1 : x2 ) = 0}
Es gilt außerdem:
F (1 : x1 : x2 ) = F (x1 , x2 )
Herunterladen