Kapitel 2: Zahlentheoretische Algorithmen Gliederung 1 - fbi.h

Werbung
Kapitel 2: Zahlentheoretische Algorithmen
Gliederung
1.
2.
3.
4.
5.
2/2, Folie 1
Asymptotische Notationen
Zahlentheoretische Algorithmen
Sortierverfahren
String Matching
Ausgewählte Datenstrukturen
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Gliederung des Abschnitts Grundlagen aus der Zahlentheorie
 Fahrplan
•
•
•
elementare Grundbegriffe
eine Folgerung aus dem chinesischen Restesatz
der kleine Satz von Fermat
... wir wollen nur soviel Zahlentheorie einführen, damit wir die
Korrektheit des Ansatzes zur Realisierung der Entschlüsselung
beim Kryptosystem von Rabin nachweisen können
•
2/2, Folie 2
Korrektheit des Kryptosystems von Rabin
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Elementare Grundbegriffe aus der Zahlenthorie
 zentrale Begriffe und Bezeichnungen
•
es seien a,b, ... ganze Zahlen
•
•
•
•
a teilt b, falls es ein k mit b = a*k gibt
jede Zahl a ≥ 2, die nur die trivialen Teiler 1 und a hat, heißt Primzahl
jede Zahl a ≥ 2, die keine Primzahl ist, heißt zusammengesetzte Zahl
für jedes a und jedes n ≥ 0 existieren eindeutig bestimmte ganze Zahlen q
und r mit 0 ≤ r < n, so daß a = q*n + r gilt
... r nennt man den Rest von a bei Teilung durch n (/* wir
schreiben r = a mod n */)
... wenn a und b bei Teilung durch n denselben Rest
lassen, so schreiben wir a ≡ b mod n
2/2, Folie 3
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Grundbegriffe aus der Zahlentheorie
 Grundlegende Eigenschaften
•
es seien a,b und n ganze Zahlen mit n ≥ 0
•
dann gilt:
(1)
(2)
2/2, Folie 4
© 2009 Prof. Steffen Lange
(a + b) mod n ≡ (a mod n) + (b mod n)
(a * b) mod n ≡ (a mod n) * (b mod n)
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Grundbegriffe aus der Zahlentheorie
 Quadratische Reste
•
es seien a und n ganze Zahlen mit n ≥ 0
•
a ist ein quadratischer Rest bzgl. n, falls es eine Zahl b mit 0 < b < n gibt,
so daß gilt: b2 ≡ a mod n
... b nennt man auch eine Quadratwurzel von a
Beispiel: n = 7
2/2, Folie 5
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
1
2
3
4
5
6
1
1
2
3
4
5
6
2
2
4
6
1
3
5
3
3
6
2
5
1
4
4
4
1
5
2
6
3
5
5
3
1
6
4
2
6
6
5
4
3
2
1
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Grundbegriffe aus der Zahlentheorie
 Eigenschaften Quadratischer Reste
•
es seien a und n ganze Zahlen mit n ≥ 0
•
•
nicht jedes a ist ein quadratischer Rest
wenn n eine Primzahl und a ein quadratischer Rest bzgl. n ist, dann
hat a genau zwei Quadratwurzeln b und b‘ mit 0 < b,b‘ < n, wobei
b‘ ≡ n - b mod n gilt
Beispiel: n = 7
2/2, Folie 6
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
a
b
b‘
1
1
6
2
2
5
4
3
4
Kapitel 2: Zahlentheoretische Algorithmen
Grundbegriffe aus der Zahlentheorie
 Eigenschaften Quadratischer Reste (cont.)
•
es seien a eine ganze Zahlen, p und q Primzahlen und n = pq
•
wenn a ein quadratischer Rest bzgl. n ist, so ist a auch ein quadratischer
Rest bzgl. p und q
wenn a ein quadratischer Rest bzgl. n ist, dann hat a höchstens vier
Quadratwurzeln
•
Beispiel: p = 3 und q = 5
2/2, Folie 7
•
es gilt 22 ≡ 72 ≡ 82 ≡ 132 ≡ 4 mod pq
•
•
es gilt 22 ≡ 72 ≡ 82 ≡ 132 ≡ 1 mod p und 12 ≡ 22 ≡ 1 mod p
es gilt 22 ≡ 72 ≡ 82 ≡ 132 ≡ 4 mod q und 22 ≡ 32 ≡ 4 mod q
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Eine Folgerung aus dem chinesischen Restesatz
 Einordnung
•
beim chinesischen Restesatz geht es darum, simultan Kongruenzen zu
lösen
•
beispielsweise könnte man daran interessiert sein, ein Zahl x zu finden,
die bei Teilung durch p = 5 den Rest 2 und bei Teilung durch q = 13
den Rest 3 läßt (/* x = 42 hat diese Eigenschaft */)
... der chinesische Restesatz sagt, daß man - wenn p und q
keinen gemeinsamen Teiler haben - es eine eindeutig
bestimmte Zahl x < pq mit den gewünschten Eigenschaften
gibt (/* außerdem zeigt er noch einen Weg, wie man x
bestimmen kann */)
2/2, Folie 8
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Eine Folgerung aus dem chinesischen Restesatz
 Interessierender Zusammenhang
2/2, Folie 9
•
•
•
es seien p und q Primzahlen und x eine ganze Zahl mit 0 < x < p*q
es seien mp = x mod p und mq = x mod q
ferner seien zp und zq ganze Zahlen, so daß zpp + zqq = 1 gilt
•
Dann gilt:
© 2009 Prof. Steffen Lange
x ≡ (zpp*mq + zqq*mp) mod pq
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Eine Folgerung aus dem chinesischen Restesatz
 Nachweis der Eigenschaft
•
es seien c1 und c2 so gewählt, daß x = c1p + mp und x = c2q + mq
•
offenbar gilt:
zppmq + zqqmp = zpp*(x - c2q) + zqq*(x - c1p)
= - zpp*c2q - zqq*c1p + x*(zpp + zqq)
= - zpp*c2q - zqq*c1p + x
•
außerdem gilt:
zpp*c2q ≡ 0 mod pq und zqq*c1p ≡ 0 mod pq
•
also erhalten wir:
(zpp*mq + zqq*mp) mod pq = (-zpp*c2q - zqq*c1p + x) mod pq
≡ (-zpp*c2q mod pq) + (-zqq*c1p mod pq) + (x mod pq)
≡ 0 + 0 + (x mod pq) ≡ x mod pq
2/2, Folie 10
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Der kleine Satz von Fermat
 Grundaussage
•
es seien p eine Primzahl und a eine ganze Zahl mit 0 < a < p
•
Dann gilt:
a(p-1) ≡ 1 mod p
a
x6
1
1
2
64 =7*9 + 1
3
729 = 7*14 + 1
4
4096 = 7*585 + 1
5
15625 = 7*2232 +1
6
46656 = 7*6665 + 1
Beispiel: p = 7
2/2, Folie 11
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Korrektheit des Kryptosystems von Rabin
 Zur Erinnerung
•
es seien p und q Primzahlen mit p ≡ 3 mod 4 und q ≡ 3 mod 4
•
•
es sei m die Nachricht, die Lucie an Charly B. schicken will
es sei k die von Lucie verschickte verschlüsselte Nachricht, d.h. k ist so
gewählt, daß k ≡ m2 mod pq gilt
 Entschlüsselung (/* Schritt 1 */)
2/2, Folie 12
•
Charly B. bestimmt zunächst natürliche Zahlen mp < p und mq < q mit
mp ≡ k(p+1)/4 mod p und mq ≡ k(q+1)/4 mod q
•
Dann gilt:
© 2009 Prof. Steffen Lange
mp2 ≡ k mod p und mq2 ≡ k mod q
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Korrektheit des Kryptosystems von Rabin
 Korrektheit der Eigenschaft (/* Schritt 1 */)
•
offenbar gilt:
(k(p+1)/4)2 = k(p+1)/2 = k(p-1)/2 * k
•
außerdem folgt aus m2 ≡ k mod p*q auch m2 ≡ k mod p
•
also gilt: k(p-1)/2 ≡ (m2)(p-1)/2 mod p ≡ m(p-1) mod p ≡ 1 mod p
•
zusammen ergibt sich:
mp2 ≡ (k(p-1)/2 * k) mod p
≡ (k mod p) * (k(p-1)/2 mod p)
≡ (k mod p) * (1 mod p) ≡ k mod p
2/2, Folie 13
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Korrektheit des Kryptosystems von Rabin
 Entschlüsselung (/* Schritt 2 */)
•
•
Charly B. bestimmt ganze Zahlen zp und zq mit zpp + zqq = 1
Charly B. bestimmt die natürlichen Zahlen s1,t1 < pq mit
s1 ≡ (zpp*mq + zqq*mp) mod pq und t1 ≡ (zpp*mq - zqq*mp) mod pq
sowie die Zahlen s2 = pq - s1 und t2 = pq - t1
•
Dann gilt:
s12 ≡ k mod pq, s22 ≡ k mod pq
t12 ≡ k mod pq und t22 ≡ k mod pq
... da k ein quadratischer Rest ist und p und q Primzahlen sind, gibt es
keine anderen Quadratwurzeln von k bzgl. p außer s1, s2, t1 und t2
... also muß eine dieser Zahlen gleich der von Lucie verschlüsselten
Nachricht m sein
2/2, Folie 14
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Korrektheit des Kryptosystems von Rabin
 Korrektheit der Eigenschaft (/* Schritt 2 */)
•
es sei x derart gewählt, daß mp ≡ x mod p und mq ≡ x mod q gilt
(/* also gilt natürlich auch mp2 ≡ x2 mod p und mq2 ≡ x2 mod q */)
•
zusammen mit der Folgerung aus dem chinesischen Restesatz ergibt
sich:
(zpp*mq + zqq*mp) ≡ x mod pq
•
also gilt auch (zpp*mq + zqq*mp)2 ≡ x2 mod pq
•
indem wir x durch k ersetzen, erhalten wir wie gewünscht:
s12 = (zpp*mq + zqq*mp)2 ≡ k mod pq
2/2, Folie 15
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Korrektheit des Kryptosystems von Rabin
 Korrektheit der Eigenschaft (/* Schritt 2, cont. */)
•
um zu zeigen, daß t1 die gewünschte Eigenschaft hat, kann man wie
folgt argumentieren
•
aus (zpp*mq + zqq*mp)2 ≡ k mod pq folgt durch einfaches Umformen
(/* binomische Formel anwenden */), daß außerdem gilt:
(zpp*mq)2 + (zqq*mp)2 ≡ k mod pq
•
außerdem gilt:
(zpp*mq)2 + (zqq*mp)2 = (zpp*mq - zqq*mp)2 + 2*zpp*mq*zqq*mp
•
also muß auch gelten: t1 = (zpp*mq - zqq*mp)2 ≡ k mod pq
•
für s2 und t2 folgt die gewünschte Eigenschaft aus dem folgenden
Zusammenhang
Wenn x2 ≡ y mod z, so gilt auch (z - x)2 ≡ y mod z.
2/2, Folie 16
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Herunterladen