Kapitel 2: Zahlentheoretische Algorithmen Gliederung 1 - fbi.h

Werbung
Kapitel 2: Zahlentheoretische Algorithmen
Gliederung
1.
2.
3.
4.
5.
2/1, 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 dieses Kapitels
 Fahrplan
•
•
•
•
2/1, Folie 2
Motivation
•
Kryptosysteme
•
Kryptosysteme mit öffentlichen Schlüsseln
Ein Beispiel (/* Kryptosystem nach Rabin */)
Grundlagen aus der Zahlentheorie
Abgeleitete algorithmische Fragestellungen
•
Berechnung von modularen Potenzen
•
Berechnung von modularen Inversen
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Motivation
 Problemstellung
•
•
2/1, Folie 3
zwei Personen: Lucy und Charly B.
Lucy will an Charly B. eine geheime Nachricht m über einen
unsicheren Kanal schicken
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme
 Illustration
Nachricht
Verschlüsselung
Kryptotext
unsicherer
Kanal
mit Hilfe eines
Schlüssels e
2/1, Folie 4
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Entschlüsselung
mit Hilfe eines
Schüssels d
Effiziente Algorithmen
Nachricht
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme
 Modellierung
•
•
•
Menge M der zulässigen Nachrichten
Menge K der zulässigen Kryptotexte
Menge S der zulässigen Schlüssel
•
•
Familie der zulässigen Verschlüsselungsfunktionen Es: M → K mit s ∈ S
Familie der zulässigen Entschlüsselungsfunktionen Ds: K → M mit s ∈ S
•
zugrunde liegende Randbedingung
•
2/1, Folie 5
für jeden Schlüssel e ∈ S gibt es einen passenden Schlüssel d ∈
S, so daß für alle Nachrichten m ∈ M gilt: Dd(Ee(m)) = m
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme
 Ein einfaches Beispiel
•
•
•
M ist die Menge aller Texte in deutscher Sprache
K ist die Menge aller endlicher Folgen von geordneten Paaren (x,y)
natürlicher Zahlen
S ist die Menge aller Bücher deutscher Sprache
•
(zeichenweise) Verschlüsselung mit einem Buch s
•
•
(paarweise) Entschlüsselung mit einem Buch s
•
2/1, Folie 6
um einen Buchstaben z zu verschlüsseln, wird eine Seite x des
Buchs s aufgeschlagen und ein Position y auf Seite x bestimmt, an
der z vorkommt (/* im Klartext wird z durch das Paar (x,y) ersetzt */)
um Paar (x,y) zu entschlüsseln, wird der Buchstabe z bestimmt, der
auf Seite x an Position y steht (/* im Kryptotext wird das Paar (x,y)
durch den Buchstaben z ersetzt */)
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme
 Ein einfaches Beispiel (/* cont. */)
•
Lucie und Charly B. einigen sich vorab über das Buch s, welches sie
aktuell zum Verschlüsseln und Entschlüsseln verwenden wollen
•
wenn beide dasselbe Buch s verwenden (/* d.h. es gilt e = d = s */), so
gilt offenbar für alle m ∈ M gilt: Dd(Ee(m)) = m
... typisch:
•
•
2/1, Folie 7
© 2009 Prof. Steffen Lange
Lucie und Charly benutzen denselben Schlüssel
(/* Stichwort: symmetrische Kryptosysteme */)
die verwendeten Schlüssel sind nur für die
Kommunikation zwischen Lucie und Charly B. geeignet
(/* Stichwort: klassische Kryptosysteme */)
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Klassische Kryptosysteme
 Eigenschaften
•
die beteiligten Personen müssen sich vorab über das verwendete
Kryptosystem und die verwendeten Schlüssel e und d zum Ver- und
Entschlüsseln einigen (/* in vielen Fällen gilt e = d */)
•
ein Schlüsselpaar (e,d) wird einem Paar von kommunizierenden
Personen (/* und in vielen Fällen - aus Gründen der Sicherheit - auch
nur für eine Kommunikation */) zugeordnet
Anforderungen:
•
•
2/1, Folie 8
© 2009 Prof. Steffen Lange
Sicherheit des verwendeten Kryptosystems
sichere Verteilung der Schlüssel
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln
 Grundidee
•
•
jeder beteiligten Person P wird ein Schlüsselpaar (ep,dp) zugeordnet,
wobei der Schlüssel ep zum Verschlüsseln öffentlich bekannt gemacht
wird und der Schlüssel dp zum Entschlüsseln von P geheim gehalten
wird
will irgendeine andere Person P‘ mit der Person P kommunizieren, so
verwendet sie zum Verschlüsseln einer Nachricht an P den öffentlich
bekannten Schlüssel ep von P
Anforderungen:
•
2/1, Folie 9
© 2009 Prof. Steffen Lange
-
Sicherheit des verwendeten Kryptosystems
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln
 Illustration
Nachricht
Kryptotext
Verschlüsselung
unsicherer
Kanal
mit Hilfe des öffentlichen
Schlüssels ecb von Charly B.
Nachricht
Verschlüsselung
2/1, Folie 10
© 2009 Prof. Steffen Lange
-
HDa/FbI
Nachricht
mit Hilfe des privaten
Schüssels dcb von Charly B.
Kryptotext
unsicherer
Kanal
mit Hilfe des öffentlichen
Schlüssels ecb von Charly B.
Entschlüsselung
Entschlüsselung
Nachricht
mit Hilfe des privaten
Schüssels dcb von Charly B.
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln
 Anmerkungen
•
damit der gesamte Ansatz funktioniert, müssen allen teilnehmenden
Personen die öffentlichen Schlüssel der anderen Personen und die
verwendeten Verschlüsselungsverfahren bekannt sein
... das Mehr an Sicherheit, daß man sich dadurch verspricht, daß
neben der verwendeten Schlüsseln auch das verwendete Kryptosystem „geheim“ gehalten wird, gibt es nicht mehr
... es werden so genannte „chosen-plaintext“ Angriffe möglich
2/1, Folie 11
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln
 Konsequenzen - Anforderungen
Nachricht
Verschlüsselung
Kryptotext
unsicherer
Kanal
mit Hilfe des öffentlichen
Schlüssels ecb von Charly B.
Entschlüsselung
Nachricht
mit Hilfe des privaten
Schüssels dcb von Charly B.
•
... für alle Nachrichten m ∈ M gilt: Ddcb(Eecb(m)) = m
•
offenbar ist die Entschlüsselungsfunktion Ddcb(.) äquivalent zur
Umkehrfunktion E-1ecb(.) der Verschlüsselungsfunktion Eecb(.)
... das Kryptosystem ist sicher, wenn die verwendete
Verschlüsselungsfunktion Eecb(.) ganz bestimmte
Eigenschaften hat (/* Stichwort: Einwegfunktion */)
2/1, Folie 12
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln
 Idee hinter dem Begriff Einwegfunktion
•
•
es seien M die Menge der zulässigen Nacrichten und K die Menge der
zulässigen Kryptotexte
es sei E: M → K eine umkehrbar eindeutige Funktion von M nach K
•
wenn E(.) als Verschlüsselungsfunktion verwendet werden will, so muß
•
•
•
2/1, Folie 13
es „leicht“ sein, die Funktion E(.) zu berechnen (/* das ist der Job
von Lucie, wenn sie Charly B. eine Nachricht schicken will */)
es „schwierig“ sein, die zugehörige Umkehrfunktion E-1(.) zu
berechnen (/* das ist der Job eines Angreifers, der die
verschlüsselte Nachricht „knacken“ will */)
es „leicht“ sein, die zugehörige Umkehrfunktion E-1(.) zu
berechnen, wenn man über zusätzliche Informationen verfügt
(/* das ist der Job von Charly B., wenn er die empfangene
Nachricht entschlüsselt */)
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln
 Anmerkungen
•
•
in jedem guten Buch zur Komplexitätstheorie/Kryptographie findet man
exakte Definitionen der verwendeten Begriffe „leicht“ und „schwierig“
dahinter stecken folgende Vorstellungen
•
•
„leicht“ bedeutet, daß es einen Algorithmus gibt, der die jeweilige
Funktion in polynomieller Zeit berechnet (/* die Komplexität ist
also O(nr) für ein r ∈ N */)
„schwierig“ bedeutet, daß es nicht einmal einen randomisierten
Algorithmus gibt, der die jeweilige Funktion in polynomieller Zeit
berechnet (/* randomisiert heißt, daß der Algorithmus mit hoher
Wahrscheinlichkeit das richtige Ergebnis berechnet */)
... bisher ist für keine Funktion nachgewiesen worden, daß sie eine
Einwegfunktion ist
... aber es gibt einige Kandidaten, die man auch in der Praxis
verwendet
2/1, Folie 14
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln - Das Rabin Kryptosystem
 Grundidee
•
•
es sei n ∈ N mit n > 0
es seien M und K jeweils gleich der Menge aller natürlicher Zahlen z
mit z < n
... jeder Text kann als natürliche Zahl kodiert werden
... falls die einem Text zugeordnete Zahl zu groß ist, zerlegt man sie
in Blöcke kleinerer Zahlen, die separat verschlüsselt werden
•
es wird die folgende Verschlüsselungsfunktion En: M → K verwendet
En(m) = k mit k < n und k ≡ m2 mod n
2/1, Folie 15
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln - Das Rabin Kryptosystem
 Anmerkungen zur verwendeten Verschlüsselungsfunktion
•
die Verschlüsselungsfunktion En(.) ist leicht zu berechnen
•
aber, die Verschlüsselungsfunktion En(.) ist nicht umkehrbar eindeutig, d.h.
es zu einem gegebenen k ∈ K mehrere m ∈ M mit En(m) = k gibt
... die Anzahl hängt von der Wahl von n ab (/* im besten Fall gibt es
genau zwei m mit En(m) = k */)
•
es wird davon ausgegangen, daß es im allgemeinen schwierig ist, die
Umkehrfunktion E-1n(.) zu berechnen
... das hängt von der Wahl von n ab (/* falls n eine Primzahl ist bzw.
die Primfaktoren von n bekannt sind, geht es „leicht“, wenn die
benutzen Primzahlen bestimmte Eigenschaften haben */)
2/1, Folie 16
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln - Das Rabin Kryptosystem
 Details (/* Festlegung des Schlüsselpaars */)
•
•
... Lucie, Linus und andere wollen geheime Nachrichten an Charly B.
schicken
das Charly B. zugeordnete Schlüsselpaar (ecb,dcb) wird wie folgt gebildet
•
•
•
Charly B. wählt zwei große Primzahlen p und q mit
p ≡ 3 mod 4 und q ≡ 3 mod 4 aus
Charly B. wählt als seinen öffentlichen Schlüssel ecb die
Zahl ecb = n = p*q
Charly B. wählt als seinen privaten Schlüssel dcb das Paar
dcb = (p,q)
... große Primzahlen (/* Sicherheit des Kryptosystems */)
... Rest 3 bei Teilung durch 4 (/* macht das Entschlüsseln für
Charly B. „leicht“ */)
2/1, Folie 17
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln - Das Rabin Kryptosystem
 Details (/* Verschlüsselung */)
2/1, Folie 18
•
es sei m ∈ M die geheime Nachricht, welche Lucie an Charly B.
•
verschicken will
Lucie verwendet den öffentlichen Schlüssel ecb = n von Charly B.
•
Lucie bestimmt die Zahl k < n mit k ≡ m2 mod n,
•
d.h. es gilt Eecb(m) = k
Lucie schickt k an Charly B
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln - Das Rabin Kryptosystem
 Details (/* Entschlüsselung */)
•
es sei k ∈ K die verschlüsselte Nachricht, welche Charly B. von Lucie
•
erhalten hat
Charly B. verwendet seinen privaten Schlüssel dcb = (p,q)
•
Charly B. bestimmt die natürlichen Zahl mp < p und mq < q
mp ≡ k(p+1)/4 mod p und mq ≡ k(q+1)/4 mod q
•
Charly B. bestimmt ganze Zahlen zp und zq mit zpp + zqq = 1
•
Charly B. bestimmt die natürlichen Zahlen s1,t1 < n mit
s1 ≡ (zpp*mq + zqq*mp) mod n und t1 ≡ (zpp*mq - zqq*mp) mod n
•
Charly B. bestimmt unter den Zahlen s1,s2 = n - s1, t1 und
t2 = n - t1 diejenige Zahl z, die eine sinnvolle Nachricht darstellt,
d.h. es gilt z = Ddcb(k) = E-1ecb(k)
2/1, Folie 19
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln - Das Rabin Kryptosystem
 Ein Beispiel (/* Festlegung des Schlüsselpaars */)
•
•
•
2/1, Folie 20
Charly B. wählt die Primzahlen p = 43 und q = 47
der öffentliche Schlüssel ecb von Charly B. ist dann die
Zahl n = 43*47 = 2021
der private Schlüssel dcb von Charly B. ist dann das Paar (43,47)
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln - Das Rabin Kryptosystem
 Ein Beispiel (/* Verschlüsselung */)
•
2/1, Folie 21
•
es sei m = 741 die geheime Nachricht, die Lucie an Charly B.
verschicken will
offenbar gilt 7412 = 549081 ≡ 1390 mod 2021
•
also schickt Lucy die Zahl k = 1390 an Charly B.
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln - Das Rabin Kryptosystem
 Ein Beispiel (/* Entschlüsselung */)
2/1, Folie 22
•
•
es gilt mp = 1390(43+1)/4 = 139011 ≡ 10 mod 43
es gilt mq = 1390(47+1)/4 = 139012 ≡ 36 mod 47
•
für zp = -12 und zq = 11 gilt zpp + zqq = -12*43 + 36*11 = 1
•
•
es gilt s1 ≡ (zpp*mq + zqq*mp) = -12*43*36 + 11*47*10 ≡ 741 mod 2021
es gilt t1 ≡ (zpp*mq - zqq*mp) = -12*43*36 - 11*47*10 ≡ 506 mod 2021
•
also ist eine der Nachrichten s1 = 741, s2 = n - s1 = 1280, t1 = 506 und
t2 = n - t1 = 1515 diejenige Nachricht, die Lucie an Charly B. verschickt
hat
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln - Das Rabin Kryptosystem
 Anmerkungen (/* Überblick */)
•
Korrektheit
Weshalb gilt z = Ddcb(k) = E-1ecb(k), d.h. z2 ≡ k ≡ m2 mod n?
(/* siehe nächster Foliensatz */)
•
Sicherheit
Weshalb glaubt man, daß sich ohne Kenntnis des privaten
Schlüssels dcb die Umkehrfunktion E-1ecb(.) nur „schwer“
berechnen läßt?
•
Verwendbarkeit
... Mehrdeutigkeit
... algorithmische Fragestellungen (/* Schwerpunkt */)
2/1, Folie 23
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln - Das Rabin Kryptosystem
 Anmerkungen (/* Sicherheit */)
•
es gelten „im Prinzip“ die folgenden Zusammenhänge
Jeden Algorithmus, mit dem man die Primfaktoren des verwendeten
öffentlichen Schlüssels ecb von Charly B. bestimmen kann, kann man
verwenden, um das Kryptosystem von Rabin zu brechen.
Jeden Algorithmus, mit dem man das Kryptosystem von Rabin brechen
kann, kann man verwenden, um die Primfaktoren des verwendeten
öffentlichen Schlüssels ecb von Charly B. zu bestimmen.
... beide Probleme (/* das Kryptosystem von Rabin zu brechen; die
Primfaktoren zu bestimmen */) sind „äquivalent“
... es wird allgemein angenommen, daß das Problem, die Primfaktoren
einer zusammengesetzten Zahl n = pq zu bestimmen, ein „schwieriges“
Problem ist
2/1, Folie 24
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Kapitel 2: Zahlentheoretische Algorithmen
Kryptosysteme mit öffentlichen Schlüsseln - Das Rabin Kryptosystem
 Anmerkungen (/* Mehrdeutigkeit */)
•
•
es ist zu erwarten, daß unter den vier Nachrichten, die Charly B. beim
Entschlüsseln als mögliche Kandidaten für die an ihn geschickte
Nachricht bestimmt, nur eine Nachricht eine „sinnvolle“ Nachricht
darstellt
wenn einem das zu wenig ist, kann man fordern, daß die an Charly B. zu
schickenden Nachrichten eine spezielle Struktur haben (/* bestimmte
Blöcke wiederholen, ... */)
... damit würde man aber „Sicherheit“ verlieren (/* das Problem,
das Kryptosystem von Rabin zu brechen, ist nicht mehr länger
„äquivalent“ zum Problem, die Primfaktoren einer zusammengesetzten Zahl n = pq zu bestimmen */)
2/1, Folie 25
© 2009 Prof. Steffen Lange
-
HDa/FbI
-
Effiziente Algorithmen
Herunterladen