Algorithmische Kryptographie - Lehrstuhl für Informatik der RWTH

Werbung
Algorithmische Kryptographie
Walter Unger, Dirk Bongartz
Lehrstuhl für Informatik I
28. Januar 2005
Teil I
Mathematische Grundlagen
Einleitung
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Endliche Körper F(q)
Definitionen
Legendre-Symbol und Jacobi-Symbol
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Notationen
• R : Menge der reellen Zahlen
• Q : Menge der rationalen Zahlen
• Z : Menge der ganzen Zahlen
• N : Menge der natürlichen Zahlen (ohne 0)
• N0 : N ∪ {0}
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
3/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Definition:
• Es seien a, b ∈ Z.
• a teilt b, wenn es ein d ∈ Z gibt mit b = da.
• a heißt dann Teiler oder Faktor von b.
• Man schreibt dann a | b.
• Ist a kein Teiler von b, so schreibt man a 6 | b.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
4/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Definition:
• Es seien a, b ∈ Z.
• Eine ganze Zahl d ∈ N0 heißt größter gemeinsamer Teiler von a und
b, falls
1. d | a und d | b.
2. Für jedes c ∈ Z mit c | a und c | b gilt c | d.
• Kurzschreibweise: d = ggT(a, b)
• a, b ∈ Z heißen teilerfremd, wenn ggT(a, b) = 1.
Bemerkung:
ggT(m, 0) = ggT(0, m) = |m| für alle m ∈ Z.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
5/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Definition:
• Es seien a, b ∈ Z.
• Ein m ∈ N0 heißt kleinstes gemeinsames Vielfaches von a und b,
falls
1. a | m und b | m.
2. Für jedes c ∈ Z mit a | c und b | c gilt m | c.
• Kurzschreibweise: m = kgV(a, b)
Bemerkung:
kgV(m, 0) = kgV(0, m) = 0 für alle m ∈ Z.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
6/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Definition:
• Es sei m ∈ N, m > 2.
• Für a, b ∈ Z setzt man:
• a ≡ b (mod m)
• Sprechweise: ,,a kongruent b modulo m”
• genau dann wenn m | a − b .
• Die Zahl m heißt der Modul.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
7/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Satz:
• Sei m ∈ N, m > 2.
• Die Relation ≡ (mod m) ist eine Äquivalenzrelation auf Z.
• Die Äquivalenzklassen sind genau die Mengen
[a]m = {a + km | k ∈ Z}
für a ∈ {0, 1, . . . , m − 1}.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
8/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Definition:
• [a]m heißt die Restklasse von a modulo m.
• Sei x ∈ Z.
• Der kleinste nicht-negative Rest von x modulo m,
• d.h. a ∈ {0, 1, . . . , m − 1} mit a ≡ x (mod m),
• wird mit x mod m bezeichnet.
Äquivalente Definition:
• Sei m ∈ N, m > 2.
• Bezeichne bxc die größte ganze Zahl 6 x. Dann gilt:
jx k
· m.
x mod m = x −
m
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
9/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Definition:
• Eine Zahl p ∈ N heißt Primzahl,
• wenn p > 1 und wenn
• p als positive Teiler nur 1 und p besitzt.
• Eine Zahl n ∈ N, die keine Primzahl ist, heißt komposit.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
10/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Satz:
• Jede natürliche Zahl läßt sich ausdrücken als ein Produkt von
nichttrivialen Potenzen unterschiedlicher Primzahlen,
n = p1e1 · p2e2 · . . . · pkek .
• Bis auf die Reihenfolge der Faktoren ist diese Primfaktorzerlegung
eindeutig.
Bemerkung:
• Bisher sind keine effizienten Algorithmen zur Primfaktorzerlegung
einer Zahl p ∈ N bekannt,
• nicht einmal für den einfachen Fall, daß n = p · q, p, q prim.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
11/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
1. Ansatz:
Seien a, b ∈ N mit
a =
Y
piei
,
b =
16i6k
Y
pifi ,
16i6k
wobei p1 , . . . , pk Primzahlen sind und ei , fi ∈ N0 . Dann gilt
Y min(e ,f )
i i
pi
.
ggT(a, b) =
16i6k
Bemerkung:
Ansatz erscheint nicht effizient, da Primfaktorzerlegung von a und b
notwendig.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
12/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
2. Ansatz: Euklidischer Algorithmus
Beobachtung:
d | a und d | b
⇔ d | a und d | b mod a. (direkt aus Definition)
EUCLID(a, b)
{a, b ∈ N0 }
(1)
(2)
(3)
(4)
if (a = 0) then
return(b)
else
return(EUCLID(a, b mod a)).
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
13/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Beispielrechnung:
ggT(180, 146)
= ggT(146, 34)
= ggT(34, 10)
=
=
ggT(10, 4)
ggT(4, 2)
=
=
ggT(2, 0)
2.
Aufwand:
O((log a) · (log b)) Bit-Operationen.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
14/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Bemerkung:
Eine leicht modifizierte Version des Euklidischen Algorithmus berechnet
mit demselben Zeitaufwand x, y ∈ Z mit
ggT(a, b) = xa + yb.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
15/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Folgerung 1:
• Falls ggT(a, m) = 1, existieren x, y ∈ Z mit
1 = xa + ym ,
also mit xa ≡ 1 (mod m).
• Die Zahl x mod m wird als das Inverse von a mod m bezeichnet.
• Schreibweise: a−1 (mod m).
• Formal korrekt: [a]−1
m unter Betrachtung des Restklassenrings
Z/mZ.
• Berechnungsaufwand analog zum Euklidischen Algorithmus.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
16/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Folgerung 2:
• Falls ggT(a, m) = 1, läßt sich die Kongruenz
az ≡ b
(mod m)
mit O((log m)2 ) Aufwand berechnen.
• Um z zu finden, berechne zunächst a−1 (mod m) und multipliziere
anschließend mit b (mod m).
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
17/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Satz:
• Addition und Subtraktion (mod m) lassen sich mit O(log m)
Bit-Operationen berechnen. Beachte, daß für 0 6 a, b < m gilt:
½
a+b
falls a + b < m
(a + b) mod m =
a + b − m falls a + b > m.
• Multiplikation (mod m) läßt sich mit O((log m)2 ) Bit-Operationen
berechnen.
[Schulalgorithmus]
Beobachtung:
½
e−1
ae =
a·a ,
(ae/2 )2 ,
Lehrstuhl für Informatik I
falls e ungerade
falls e gerade
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
18/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Beobachtung:
POWER(a, e, m)
{a, e, m ∈ N0 , m > 2}
(1)
(2)
(3)
(4)
(5)
(6)
(7)
if e = 0 then return(1)
else if e mod 2 = 0 then
t ← POWER(a, e/2, m)
return(t 2 mod m)
else
t ← POWER(a, e − 1, m)
return(a · t mod m)
Aufwand:
O((log e) · (log m)2 ) [statt O(e · (log m)2 ) für naiven Ansatz]
Bemerkung:
Zahlen werden nie größer als m2 .
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
19/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Beispielrechnung:
3
Lehrstuhl für Informatik I
31
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
mod 43
30
=
(3 · 3 ) mod 43
=
(3 · 9 ) mod 43
=
(3 · 9 · 9 ) mod 43
=
(3 · 9 · 81 ) mod 43
=
(3 · 9 · (−5) ) mod 43
=
(−135 · 5 ) mod 43
=
(−6 · 5 ) mod 43
=
(−6 · 125 ) mod 43
=
(−6 · (−4) ) mod 43
=
(−6 · 16) mod 43
=
(−96) mod 43
=
(−10) mod 43
=
33.
15
14
7
7
6
6
2
2
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
20/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Definition:
• ϕ(1) := 1.
• Für m > 2 definiere
ϕ(m) := |{a ∈ Z | 0 6 a 6 m − 1; ggT(a, m) = 1}|
Satz:
1. Für jede Primzahl p und jedes b ∈ N ist ϕ(p b ) = p b − p b−1 .
2. Sind m, n ∈ N teilerfremd, so gilt ϕ(m · n) = ϕ(m) · ϕ(n).
Folgerung:
ϕ(m) ist leicht zu berechnen, falls die Primfaktorzerlegung von m
bekannt ist.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
21/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Satz [Euler]:
Es seien m ∈ N und a ∈ Z teilerfremd.
1. Dann ist aϕ(m) ≡ 1 (mod m).
Satz [Fermat]:
Es sei p eine Primzahl.
1. Für jedes a ∈ Z mit p 6 | a ist ap−1 ≡ 1 (mod p).
2. Für jedes a ∈ Z ist ap ≡ a (mod p).
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
22/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Satz [Chinesischer Restsatz]:
• Es seien m1 , m2 , . . . , mn ∈ N paarweise teilerfremd,
• es seien a1 , a2 , . . . , an ∈ Z;
Qn
• es sei M := i=1 mi .
• Dann existiert ein eindeutig bestimmtes x0 ∈ {0, 1, . . . , M − 1} mit
x0 ≡ a1 (mod m1 )
x0 ≡ a2 (mod m2 )
..
.
x0 ≡ an (mod mn )
• Es gilt:
Lehrstuhl für Informatik I
=
{x ∈ Z | x ≡ ai (mod mi ) für i = 1, 2, . . . , n}
.
{x ∈ Z | x ≡ x0 (mod M)}
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
23/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Algorithmus:
1. Berechne M = m1 · m2 · . . . · mn .
2. Für 1 6 i 6 n: Berechne Mi =
M
mi
.
3. Für 1 6 i 6 n: Berechne Ni = Mi−1 (mod mi ).
{z.B. mit Euklidischem Algorithmus. Beachte: ggT(Mi , mi ) = 1.}
4. Für 1 6 i 6 n: Berechne ei = Mi · Ni .
{Nun gilt für 1 6 i 6 n: ei = Mi · Ni ≡ 1 (mod mi ).
ei = Mi · Ni ≡ 0 · Ni = 0 (mod mj ) , falls j 6= i.}
¢
¡P n
5. Berechne x0 =
i=1 ei ai mod M.
{Nun gilt für 1 6 i 6 n: x0 ≡ ei ai ≡ ai (mod mi ).}
Aufwand:
O((log M)2 ) Bit-Operationen.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
24/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bestimmung des größten gemeinsamen Teilers
Effiziente Berechnung von ae mod m
Eulersche ϕ-Funktion
Definition:
Es sei K 6= ∅ eine Menge mit 2 Verknüpfungen
(a, b) 7→ a + b : K × K → K und (a, b) 7→ a · b : K × K → K .
K = (K , +, ·) heißt Körper, wenn gilt:
1. (K , +) ist abelsche Gruppe (d.h. + ist assoziativ, kommutativ,
neutrales Element bzgl. + ist 0K . Jedes Element besitzt ein Inverses
bzgl. +).
2. (K , ·) ist kommutatives Monoid (d.h. · ist assoziativ, kommutativ,
neutrales Element bzgl. · ist 1K ).
3. Es gilt das folgende Distributivgesetz: Für alle a, b, c ∈ K ist
a · (b + c) = a · b + a · c.
4. 1K 6= 0K .
5. Jedes Element außer 0K besitzt ein Inverses bzgl. ·.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
25/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Definitionen
Legendre-Symbol und Jacobi-Symbol
Endliche Körper
• F(q): Endlicher Körper mit q Elementen, wichtig in der
Kryptographie
• Bekannt: q = p h für eine Primzahl p und h ∈ N.
• Eine geeignete Darstellung der Elemente von F(q) wird später
behandelt.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
26/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Definitionen
Legendre-Symbol und Jacobi-Symbol
Definition:
1. Für einen Körper K heißt K ∗ := K \{0} die Einheitengruppe von K .
Die Einheitengruppe von F(q) wird mit F ∗ (q) bezeichnet.
2. Ein Element g ∈ F ∗ (q) heißt ein erzeugendes Element (bzw.
Generator) von F ∗ (q), g.d.w. für jedes a ∈ F ∗ (q) existiert ein
x ∈ Z mit g x = a (in F ∗ (q)).
3. Für ein Element a ∈ F ∗ (q) heißt ord(a) := min{r ∈ N | ar = 1} die
Ordnung von a.
Bemerkung:
1. Es gibt genau ϕ(q − 1) Generatoren g .
2. Die Zahl x heißt auch der diskrete Logarithmus von a zur Basis g .
3. Es ist bekannt, daß die Berechnung des diskreten Logarithmus
(wenn g , a und q bekannt sind) so schwer ist wie Faktorisierung.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
27/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Definitionen
Legendre-Symbol und Jacobi-Symbol
Definition:
• Sei p Primzahl, p > 2.
• Sei a ∈ F ∗ (p).
• Falls ein x ∈ F ∗ (p) existiert mit a = x 2 , so heißt a quadratischer
Rest modulo p.
• Ansonsten heißt a quadratischer Nichtrest modulo p.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
28/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Definitionen
Legendre-Symbol und Jacobi-Symbol
Bemerkungen:
• Sei p Primzahl, p > 2.
• Da F ∗ (p) ∼ (Z/pZ)∗ , ist a mit 1 6 a 6 p − 1 ein quadratischer
Rest modulo p, g.d.w. die Kongruenz
x 2 ≡ a (mod p)
hat eine Lösung x.
• x heißt auch Quadratwurzel von a modulo p. Mit x ist auch −x
Quadratwurzel von a modulo p.
• Weiter gibt es dann (p − 1)/2 quadratische Reste und (p − 1)/2
quadratische Nichtreste modulo p.
• Die quadratischen Reste lassen sich berechnen als (i 2 ) mod p für
1 6 i 6 (p − 1)/2.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
29/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Definitionen
Legendre-Symbol und Jacobi-Symbol
Beispiel:
p=7
ord(1) = 1
ord(2) = 3
ord(3) = 6
(21 = 2, 22 = 4, 23 = 1)
(31 = 3, 32 = 2, 33 = 6, 34 = 4, 35 = 5, 36 = 1)
ord(4) = 3
ord(5) = 6
ord(6) = 2
Erzeugende Elemente: 3,5
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
30/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Definitionen
Legendre-Symbol und Jacobi-Symbol
Nachtrag:
• F ∗ (q) ist zyklisch.
• Es gibt ϕ(q − 1) erzeugende Elemente in F ∗ (q).
• Die Aussage, daß jedes Element in F ∗ (p) erzeugendes Element ist,
ist falsch! (s.o. für p = 7)
• Ein erzeugendes Element in F ∗ (p) heißt auch Primitivwurzel
modulo p.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
31/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Definitionen
Legendre-Symbol und Jacobi-Symbol
Definition:
Sei a ∈ Z, p Primzahl, p > 2. Das Legendre-Symbol ( pa ) ist definiert als


µ ¶
a
=

p
0, falls p|a
1, falls a quadratischer Rest modulo p [∃x : x 2 ≡ a
−1, falls a quadratischer Nichtrest modulo p
(mod p)]
Theorem:
[Eulersches Kriterium]
Sei a ∈ Z, p Primzahl, p > 2. Dann gilt:
( pa ) ≡ a(p−1)/2 (mod p).
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
32/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Definitionen
Legendre-Symbol und Jacobi-Symbol
Theorem:
Seien p, q Primzahlen, p, q > 2. Seien a, b ∈ Z. Dann gilt:
1. ( p1 ) = 1
(p−1)/2
2. ( −1
)
=
(−1)
=
p
½
1, falls p ≡ 1 (mod 4)
−1, falls p ≡ 3 (mod 4)
a
b
3. ( ab
)
=
(
)
·
(
p
p
p)
4. ( pa ) = ( pb ), falls a ≡ b (mod p)
5.
a2
(p)
= 1, falls p 6 | a
6. ( p2 ) = (−1)(p
2
−1)/8
=
½
1, falls p ≡ 1, 7 (mod 8)
−1, falls p ≡ 3, 5 (mod 8)
7. Quadratisches Reziprozitätsgesetz:
(
−( pq ), falls p ≡ q ≡ 3 (mod 4)
(p−1) (q−1)
( qp ) = (−1) 2 2 · ( pq ) =
( pq ), sonst
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
33/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Definitionen
Legendre-Symbol und Jacobi-Symbol
Erweiterung
Ziel:
Effiziente Berechnung von ( pa ).
Hierzu:
Verallgemeinerung des Legendre-Symbols.
Definition:
• Sei a ∈ Z und n ∈ N ungerade.
• Sei n = p1e1 . . . pkek die Primfaktorzerlegung von n.
• Dann ist das Jacobi-Symbol ( na ) definiert als:
³a´
n
Lehrstuhl für Informatik I
=
µ
a
p1
Walter Unger, Dirk Bongartz
¶e1
· ... ·
µ
a
pk
¶ek
.
Algorithmische Kryptographie
34/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Definitionen
Legendre-Symbol und Jacobi-Symbol
Theorem:
Seien m, n ∈ N ungerade. Seien a, b ∈ Z. Dann gilt:
1. ( 1a ) = 1
a
b
2. ( ab
)
=
(
)
·
(
n
n
n)
a
3. ( mn
) = ( ma ) · ( na )
4. ( na ) = ( bn ), falls a ≡ b (mod n)
5. ( n1 ) = 1
6.
( −1
n )
= (−1)
(n−1)/2
7. ( n2 ) = (−1)(n
2
−1)/8
½
1, falls n ≡ 1 (mod 4)
−1, falls n ≡ 3 (mod 4)
½
1, falls n ≡ 1, 7 (mod 8)
−1, falls n ≡ 3, 5 (mod 8)
=
=
8. Quadratisches Reziprozitätsgesetz:
( mn ) = (−1)
Lehrstuhl für Informatik I
(m−1) (n−1)
2
2
· ( mn )
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
35/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Definitionen
Legendre-Symbol und Jacobi-Symbol
Bemerkung:
• ( na ) = 1 6⇒ a ist quadratischer Rest modulo p.
2
• sp.: ( 15
) = ( 23 ) · ( 25 ) = (−1) · (−1) = 1, aber 6 ∃x : x 2 ≡ 2 (mod 15).
Aufgabe:
Berechne ( na ) für a ∈ Z, n ∈ N ungerade.
Algorithmus:
Falls a < 0 : ( na ) = (−1)(n−1)/2 · ( −a
n )
n
)
Falls a > n : ( na ) = ( a mod
n
Berechne ( na ) für 0 < a < n.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
36/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Definitionen
Legendre-Symbol und Jacobi-Symbol
Beobachtung:
Seien a ∈ Z, n ∈ N ungerade mit 0 < a < n.
1. Sei a = 2e · n0 , n0 ungerade. Dann gilt:
µ e 0 ¶ µ ¶e µ 0 ¶
³a´
n
2 ·n
2
·
=
=
n
n
n
n
=
=
2. ( n0 ) =
½
Lehrstuhl für Informatik I
(−1)
(−1)
2
e· n 8−1
e· n
2 −1
8
· (−1)
· (−1)
(n−1) (n0 −1)
2
2
n−1 n0 −1
2
2
³n´
· 0
¶
µ n
0
n mod n
0
0
mit
0
<
n
mod
n
·
<
n
n0
1, falls n = 1
0, sonst
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
37/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Definitionen
Legendre-Symbol und Jacobi-Symbol
Algorithmus:
JACOBI(a, n)
{0 6 a < n; n ungerade}
1) t ← 1
2) while (a 6= 0) do
3)
while (a mod 2 = 0) do
4)
a ← a/2
5)
if (n mod 8 = 3) or (n mod 8 = 5) then
t ← −t
6)
interchange(a, n)
7)
if (a mod 4 = 3) and (n mod 4 = 3) then t ← −t
8)
a ← a mod n
9) if (n = 1) then return(t) else return(0)
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
38/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Definitionen
Legendre-Symbol und Jacobi-Symbol
Beispiel:
„
−2819
4177
«
=
=
=
=
« „
«
„
«
„
«
„
«
„
« „
«
2819
2819
4177
1358
2
679
·
=
=
=
=
·
4177
4177
4177
2819
2819
2819
2819
„
«
„
«
„
«
„
«
„
«
„
«
679
2819
103
679
61
103
−
=+
=
=−
=−
=−
2819
679
679
103
103
61
„ «
„ «„ «
„ «
„ «
„ «
„ «
42
2
21
61
19
21
2
−
=−
=
=
=
=
61
61
61
21
21
19
19
−1
„
−1
(Da 4177 Primzahl, ist also −2819 quadratischer Nichtrest modulo 4177.)
Aufwand:
O((log a) · (log n)). (Analyse analog zum Euklidischen Algorithmus)
Beachte:
¡a¢
Berechnung von n erfolgt ohne Faktorisierung von a oder n (außer dem
Herausziehen von 2er-Potenzen).
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
39/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Definitionen
Legendre-Symbol und Jacobi-Symbol
Bemerkung:
1. JACOBI(a, n) stellt einen effizienten Test dar zur Bestimmung, ob a
quadratischer Rest modulo p, falls p Primzahl.
2. Dies liefert jedoch kein effizientes Verfahren, um eine Quadratwurzel
von a modulo p (d.h. x mit x 2 ≡ a (mod p)) zu berechnen. (Es gibt
jedoch ein effizientes probabilistisches Verfahren hierzu.)
3. Man kennt keinen effizienten Test zur Bestimmung, ob a
quadratischer Rest modulo n, falls n beliebig. (selbst wenn n = p · q)
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
40/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Satz
n = p · q, p, q prim, p, q > 2, p 6= q.
Es gilt:
• a quadratischer Rest mod n ⇔ a quadratischer Rest mod p ∧ a
quadratischer Rest mod q.
³ ´ ³ ´
³ ´
³ ´ ³ ´
¡a¢
a
a
a
a
• n = +1 ⇔ p · q = +1 ⇔ p = q = +1 ∨ pa =
³ ´
a
q = −1.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
41/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Satz
Man kann zeigen:
• Für ¡genau
die Hälfte der Zahlen a mit 0 < a < n und ggT(a, n)=1
¢
gilt na = +1.
¡a¢
• Für die andere Hälfte gilt: n = −1.
¡a¢
• Genau die Hälfte der Zahlen, die n = +1 erfüllen, sind
quadratische Reste modulo n, und zwar genau die, für die
µ ¶ µ ¶
a
a
=
= +1.
p
q
Die andere Hälfte, d.h. diejenigen, für die
µ ¶ µ ¶
a
a
=
= −1 ,
p
q
sind quadratische Nichtreste modulo n.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
42/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bemerkung:
• Es ist kein effizientes Verfahren bekannt, um die beiden obigen Fälle
zu unterscheiden,
• d.h. um zu bestimmen, ob a quadratischer Rest modulo n ist, es sei
denn, man kennt die Faktorisierung von n.
• (In letzterem Falle verwendet man 1.)
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
43/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Beispiel:
n = 15, p = 3, q = 5.
a mit
³ ´
a
ggT (a, n) = 1
p
1
2
4
7
8
11
13
14
Lehrstuhl für Informatik I
+
−
+
+
−
−
+
−
a quadratischer
³ ´
a
q
¡a¢
n
Rest mod n
+
−
+
−
−
+
−
+
+
+
+
−
+
−
−
−
+
−
+
−
−
−
−
−
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
44/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Annahme:
Man weiß, daß a, 0 < a < n, quadratischer Rest modulo n. D.h.
∃x : x 2 ≡ a
(mod n)
Sehr wichtige Aufgabe in der Kryptographie:
Finde x, d.h. eine Quadratwurzel von a modulo n.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
45/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Folgerungen:
• n = p · q, p, q prim, p, q > 2, p 6= q.
• a quadratischer Rest modulo n
• ⇒ x 2 ≡ a (mod n)
• ⇒ p · q = n | (x 2 − a)
• ⇒ p | (x 2 − a) ∧ q | (x 2 − a)
• ⇒ x 2 ≡ a (mod p) ∧ x 2 ≡ a (mod q)
• ⇒ a quadratischer Rest mod p und q
• ⇒ ∃y , z : (±y )2 ≡ a (mod p) ∧ (±z)2 ≡ a (mod q)
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
46/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Bemerkung:
• y und z können probabilistisch in Polynomzeit berechnet werden.
• ⇒ Für x muß gelten:
x ≡ ±y (mod p) ∧ x ≡ ±z (mod q).
• Der chinesische Restsatz liefert 4 Quadratwurzeln von a modulo n.
• (z.B.: ∃ eindeutig bestimmtes x ∈ {0, 1, . . . , n − 1} mit x ≡ y
(mod p) ∧ x ≡ z (mod q)
• ⇒ x 2 ≡ y 2 ≡ a (mod p) ∧ x 2 ≡ z 2 ≡ a (mod q)
• ⇒ p | (x 2 − a) ∧ q | (x 2 − a)
• ⇒ n = p · q | (x 2 − a) (da p, q teilerfremd)
• ⇒ x 2 ≡ a (mod n)
• ⇒ x Quadratwurzel modulo n)
• Es gilt: Die 4 Quadratwurzeln lassen sich schreiben als
±u, ±w , wobei u 6≡ ±w
(mod n).
u und w wie oben werden als unterschiedliche Quadratwurzeln
modulo n bezeichnet.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
47/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
2 wichtige Fakten für die Kryptographie:
1. Die Kenntnis zweier unterschiedlicher Quadratwurzeln u und w
derselben Zahl a modulo n erlaubt die Faktorisierung von n. (D.h.
die Kenntnis eines quadratischen Restes a modulo n erlaubt
probabilistisch die Faktorisierung von n in Polynomzeit.)
2. Falls p ≡ q ≡ 3 (mod 4), so besitzen zwei unterschiedliche
Quadratwurzeln u und w derselben Zahl a modulo n verschiedene
Jacobi-Symbole:
³w ´
³u ´
=−
.
n
n
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
48/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
1. Beweis:
1. Es gilt: (u + w )(u − w ) = u 2 − w 2 ≡ a − a = 0 (mod n).
2. ⇒ n | (u + w ) · (u − w )
3. Da u 6≡ ±w (mod n), gilt: n 6 | (u + w ) ∧ n 6 | (u − w ).
4. ⇒ ggT(u + w , n) ∈ {p, q} (Läßt sich effizient berechnen mittels
Euklidischem Algorithmus.)
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
49/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
2.Beweis:
1. Es gilt: u 2 ≡ a ≡ w 2 (mod n).
⇒
⇒
2.
u 2 ≡ w 2 (mod p) ∧ u 2 ≡ w 2 (mod q)
(i) u ≡ w (mod p) ∧ u ≡ w (mod q)
oder (ii) u ≡ w (mod p) ∧ u ≡ −w (mod q)
oder (iii) u ≡ −w (mod p) ∧ u ≡ w (mod q)
oder (iv ) u ≡ −w (mod p) ∧ u ≡ −w (mod q)
3. Da u 6≡ ±w (mod n), gilt (ii) oder (iii). Da p ≡ q ≡ 3 (mod 4),
folgt:
³u ´ µu ¶ µu ¶
=
·
n
p
q
 ³ ´ ³ ´ ³ ´ ³ ´ ³ ´
¡w ¢
w
−1
w
 wp · −w
= p · q · q =(−1) · n , falls u ≡ w (mod p)
q
³ ´ ³ ´ ³ ´ ³ ´ ³ ´
=
 −w · w = −1 · w · w =(−1) · ¡ w ¢, falls u ≡ −w (mod p
p
q
p
p
q
n
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
50/1009
Einleitung
Endliche Körper F(q)
Detaillierte Betrachtung des kryptographisch wichtigen Falls
Literatur
1. H. Delfs, H. Knebl: Introduction to Cryptography. Springer 2002.
(Appendix A)
2. A. Steger: Diskrete Strukturen 1. Springer 2001.
3. S. Y. Yan: Number Theory for Computing. Springer 2000.
4. Eric Bach, Jeffrey Shallit: Algorithmic Number Theory, Volume I:
Efficient Algorithms. MIT Press, 1996.
5. Friedrich Ischebeck: Einladung zur Zahlentheorie.
B.I. Wissenschaftsverlag, 1992.
6. Neal Koblitz: A Course in Number Theory and Cryptography.
Springer Verlag, 1987.
Lehrstuhl für Informatik I
Walter Unger, Dirk Bongartz
Algorithmische Kryptographie
51/1009
Herunterladen