Public Key Kryptographie

Transcription

Public Key Kryptographie
Public Key Kryptographie
Georg Stütz
4. Dezember 2007
Inhaltsverzeichnis
1 Einführung
1.1 Anwendungsbeispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Unterschiede zwischen symmetrischen und asymmetrischen Verfahren . . . . .
1.3 Beispiele für Public-Key Verfahren . . . . . . . . . . . . . . . . . . . . . . . .
2
2
2
3
2 Einwegfunktionen
2.1 Schnelle Exponentiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Das diskrete Logarithmus Problem . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Beispiele für Einweg und trap-door Funktionen: . . . . . . . . . . . . . . . . .
3
3
4
4
3 Diffie-Hellman Schlüsseltauschverfahren
3.1 Das Verfahren . . . . . . . . . . . . . . .
3.2 Das Diffie Hellman Problem . . . . . . .
3.3 Janusangriff (Man in the middle Attack)
3.4 Bestimmung eines Generators von F∗p . .
.
.
.
.
4
4
5
5
5
4 Massey Omura Kryptosystem
4.1 Das Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
6
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
Einführung
Public-Key Verfahren sind asymmetrische Verschlüsselungsverfahren. Der erste Ansatz zur
Public-Key Kryptographie wurde 1976 von Whitefield Diffie und Martin Hellman durch das
nach ihnen benannte Schlüsseltauschverfahren gesetzt.
Der wesentliche Unterschied zwischen symmetrischen und asymmetrischen Verschlüsselungsverfahren ist, dass bei symmetrischen Verschlüsselungsverfahren derselbe Schlüssel zur Ver
und Entschlüsselung verwendet wird. Bei asymmetrischen Verfahren hingegen sind der Verschlüsselungsschlüssel ek und Entschlüsselungsschlüssel dk nicht identisch. Der Schlüssel ek
ist öffentlich. Er wird deshalb auch public-key genannt. Der Schlüssel dk hingegen muss
geheimgehalten werden und wird daher auch als private-key bezeichnet. Näheres dazu lässt
sich in [4] im Abschnitt 3.3 nachlesen.
1.1
Anwendungsbeispiel
Zwei Teilnehmer A und B eines Kommunikationsnetzwerks wollen sich, ohne Kenntnis eines
gemeinsamen geheimen Schlüssels, mithilfe von einem symmetrischen Verschlüsselungsverfahren sicher unterhalten. Da es ihnen nicht möglich ist, sich persönlich zu treffen, um den
Schlüssel auszutauschen, verwenden sie ein Public-Key Verfahren, um einen gemeinsamen
geheimen Schlüssel zu generieren.
Asymmetrische Verschlüsselungsverfahren werden heutzutage zum Beispiel im E-Mail Verkehr
mit open PGP (Pretty Good Privacy) oder S/MIME (Secure / Multipurpose Internet Mail
Extensions), sowie in verschlüsselten Client-Server Anwendungen mittels https angewandt.
1.2
Unterschiede zwischen symmetrischen und asymmetrischen Verfahren
• Während bei symmetrischen Verfahren die Anzahl der benötigten Schlüssel,
um eine
sichere Kommunikation zwischen je zwei Teilnehmern zu gewährleisten, n2 = n(n+1)
2
ist, so steigt die Anzahl der Schlüssel bei Public-Key Verfahren linear mit der Anzahl
der Teilnehmer.
• Betrachtet man die Zeit, um ein Wort fixer Länge zu verschlüsseln, so sind asymmetrische
Verfahren im Gegensatz zu symmetrischen Verfahren ungefähr um den Faktor 1000
langsamer. Dieses Problem wird in der Praxis meist durch Anwendung hybrider Verfahren
umgangen. Das bedeutet, dass ein gemeinsamer geheimer Schlüssel, mithilfe eines publickey Verfahrens erzeugt oder ausgetauscht wird, und anschließend über symmetrische
Verfahren verschlüsselt wird.
• Ein weiterer Unterschied zwischen den beiden Verfahrensklassen ist die Schlüssellänge.
So werden bei symmetrischen Verfahren meist Schlüssel mit einer Länge zwischen 56
und 128 Bit verwendet, wohingegen die Schlüssellänge bei asymmetrischen Verfahren
zwischen 384 und 2304 Bit beträgt.
• Da bei asymmetrischen Verfahren die alleinige Kenntnis des public-keys nutzlos für
die Entschlüsselung einer Nachricht ist, müssen hier keine besonderen Vorkehrungen
bei der Übermittlung des public-keys getroffen werden. Bei symmetrischen Verfahren
hingegen muss auf einen sicheren Schlüsseltausch wertgelegt werden, da die Sicherheit
der privaten Kommunikation auf der Geheimhaltung des Schlüssels beruht.
2
• Ein weiterer Vorteil von asymmetrischen Verfahrens ist, dass jeder Teilnehmer nur den
eigenen Schlüssel geheimhalten muss. Bei symmetrischen Verfahren hingegen muss jeder
Teilnehmer, um die Sicherheit des Systems zu wahren, alle Schlüssel geheimhalten.
Symmetrisch
Public-Key
hoch
niedrig
Verschlüsselungsgeschwindigkeit
Schlüsselanzahl bei n
Teilnehmern
1.3
n
2
=
n∗(n−1)
2
Schlüssellänge
kurz (64, 128, 256 Bit)
Schlüsselgenerierung
einfach
n
relativ lang (1024, 2048
Bit)
aufwändig
Beispiele für Public-Key Verfahren
• Sicherheit der Verschlüsselung basiert auf der Schwierigkeit der Faktorisierung großer
Zahlen
– RSA
– Rabin-Kryptosystem
• Sicherheit der Verschlüsselung basiert auf dem Diskreten Logarithmus Problem
– Elgamal-Kryptosystem
– Diffie Hellmann Schlüsseltausch
2
Einwegfunktionen
Eine Funktion wird als schwierig bezeichnet, soferne sie nicht in polynomialer Zeit berechenbar
ist.
Die folgenden beiden Definitionen stammen aus [2] Kapitel 2.
Definition 2.1 Eine Funktion f : D −→ B bei der sich f (x) ∀x ∈ D einfach berechnen
lässt, während es für fast alle y ∈ Im(f ) schwierig ist, ein Urbild von y (d.h. f (x) = y) zu
bestimmen, wird als Einwegfunktion bezeichnet.
Definition 2.2 Eine Einwegfunktion f : D −→ B bei der sich mit Kenntnis einer Zusatzinformation (trap-door) auch f −1 (y) einfach berechnen lässt, wird als trap-door Funktion
bezeichnet.
2.1
Schnelle Exponentiation
Die Methode der schnellen Exponentiation oder auch binäre Exponentiation genannt ist ein
Verfahren, mit dem sich Zahlen schnell potenzieren lassen, indem versucht wird, Rechenoperationen einzusparen.
P
Da jede Zahl e eine eindeutige Darstellung als e = ni=0 bi 2i mit bi ∈ 0, 1 besitzt, lässt sich ae
0
1
2
n
als ab0 2 · ab1 2 · ab2 2 · · · abn 2 = ab0 (ab1 (. . . (abn−1 (abn )2 )2 . . . )2 )2 schreiben. Dadurch
Pn lässt sich
e
die Berechnung
P von a von ursprünglich e − 1 Multiplikationen auf logbec + 1 + i=0 (bi ) − 2 =
logbec + 1 + ni=0 (bi ) − 1 Multiplikationen reduzieren.
3
2.2
Das diskrete Logarithmus Problem
Die Aufgabenstellung: Seien in einer Gruppe die Elemente b und y := bx gegeben, wie kann
”
man eine Potenz a von b finden sodass ba = y ? “, wird als diskreter Logarithmus Problem
bezeichnet. Diese Berechnung ist für fast alle Basen b schwierig, wohingegen die diskrete
Exponentiation effizient berechenbar ist.
2.3
Beispiele für Einweg und trap-door Funktionen:
1. fg,N : x 7→ g x mod N ist eine Einwegfunktion. Die Funktion f ist ∀x ∈ N in polynomialer
Zeit berechenbar. Die Umkehrfunktion f −1 = logg (y) ist für y ∈ Im(f ) jedoch nach
derzeitigem Wissensstand nicht in polynomialer Zeit berechenbar.
2. fk,N : x 7→ xk mod N ist eine trap-door Funktion, wenn die beiden folgenden Bedingungen erfüllt sind.
1. N besitzt die Faktorisierung N = pq mit p und q prim.
2. ggT(k, ϕ(N )) = 1 wobei ϕ(N ) = (p − 1)(q − 1)
Dann kann das Inverse k −1 von k mod ϕ(N ) mithilfe des erweiterten euklidischen
Algorithmus schnell berechnet werden. Durch Kenntnis von k beziehungsweise von k −1
kann die Funktion f einfach invertiert
Fall kk −1 ≡ 1 + lϕ(N ) mit
werden, da in diesem
l
−1
−1
≡ x1+lϕ(N ) ≡ x xϕ(N ) ≡ x · 1l ≡ x mod N .
l ∈ Z und daher (xk )k ≡ xkk
Weitere Beispiele befinden sich in [4] auf Seite 305.
3
Diffie-Hellman Schlüsseltauschverfahren
Das Diffie-Hellman Schlüsseltauschverfahren wurde 1976 von Whitefield Diffie und Martin
Hellman an der University of Stanford, basierend auf dem diskreten Logarithmus Problem,
entwickelt. Das Diffie-Hellman Verfahren dient nicht zum Verschlüsseln von Nachrichten,
sondern ermöglicht zwei Teilnehmern eines Kommunikationsnetzwerks sich einen gemeinsamen
geheimen Schlüssel zu übermitteln, um später ein klassisches Kryptographieverfahren anzuwenden. Dies war sozusagen die Geburtsstunde der Public-Key Kryprographie.
Definition 3.1 Sei p eine Primzahl, dann heißt Fp := Z mod p Primzahlkörper von p.
F∗p := F \ {0}
Definition 3.2 Sei p eine Primzahl. g ∈ Fp heißt Generator oder auch Primitivwurzel von
p wenn sich jedes Element aus F∗p als Potenz von g darstellen lässt. Für jede Primzahl p
existiert ein Generator g.
3.1
Das Verfahren
Zwei Teilnehmer A und B eines Kommunikationsnetzwerkes wollen über eine unsichere Leitung,
mittels eines symmetrischen Verschlüsselungsverfahrens miteinander kommunizieren. Dazu
müssen sich beide Teilnehmer einen gemeinsamen Schlüssel aushandeln. Dazu handeln sich
4
A und B zuerst eine große Primzahl p und eine Zahl g ∈ {1, 2, . . . , p − 1}, sodass g ein
Generator von Fp ist, über die unsichere Leitung aus. Weiters wählt A eine zufällige Zahl
a ∈ {1, 2, . . . , p − 1}, berechnet g a ∈ Fp und überträgt g a an B. B wählt sich unabhängig
von A eine zufällige Zahl b ∈ {1, 2, . . . , p − 1} und überträgt g b an A. g ab ∈ Fp ist nun der
gemeinsame geheime Schlüssel den A und B verwenden. Beide Teilnehmer können diesen
berechnen, da (g b )a = g ba = g ab = (g a )b ∈ Fp .
Ein Lauscher E hätte all diese Informationen (p, g, g a und g b ) mithören können, dennoch wäre
es ihm nicht in vertretbarer Zeit möglich den Schlüssel g ab zu bestimmen. Dies führt uns zu
folgender Aufgabenstellung.
3.2
Das Diffie Hellman Problem
Die Aufgabensetellung: Seien in einer Gruppe die Elemente g, g a und g b gegeben, welchen
”
Wert hat g ab “, wird als Diffie Hellman Problem bezeichnet. Das Problem ist offensichtlich
lösbar, wenn das diskrete Logarithmus Problem lösbar ist. Es ist nicht bekannt, ob dieses
Problem gleichwertig zum diskreten Logarithmus Problem ist.
Eine genauere Beschreibung samt einem anschaulichen Beispiel befindet sich in [4] auf Seite
310.
3.3
Janusangriff (Man in the middle Attack)
Als Man in the middle Attack oder auch Janusangriff (vom doppelköpfigen Ianus einer röm.
Gottheit), wird eine Angriffsform auf Rechnernetze bezeichnet, bei dem sich der Angreifer
physikalisch oder meist logisch zwischen zwei Kommunikationsteilnehmern befindet. Dadurch
erhält der Angreifer die komplette Kontrolle über den Datenverkehr der beiden Teilnehmer.
Der Angreifer täuscht hierbei den beiden Kommunikationspartnern ihr jeweiliges Gegenüber
vor, wodurch sich auch die Beziehung zum doppelköpfigen Ianus erklärt.
Wenn sich bei einem Diffie Hellman Schlüsseltausch zwischen den Teilnehmern A und B,
ein Angreifer M durch die oben beschriebene Angriffsmethode einschleust, so verliert das
Verfahren an Sicherheit. Dem Angreifer M ist es danach möglich, den Teilnehmern statt g a
und g b die Information g m zu übertragen. Dadurch generieren A und B zwei unterschiedliche
geheime Schlüssel, wodurch es dem Angreifer hingegen nun möglich ist, mit A durch g am und
mit B durch g bm verschlüsselt zu kommunizieren.
Um sich in der Praxis vor einem derartigen Angriff zu schützen, werden meist zusätzliche
Authentifizierungsverfahren, wie z.B. digitale Signaturen oder Message Authentication Codes,
verwendet.
3.4
Bestimmung eines Generators von F∗p
Für eine kleine Primzahl p, lässt sich ein Generator von F∗p durch sukzessives ausprobieren
von g ∈ {2, 3, . . . , p − 1} finden.
Eine weitere Methode besteht darin, ein zufälliges a ∈ F∗p zu wählen und zu überprüfen, ob
dieses ein Generator von F∗p ist. Die Chancen, ein solches a zufällig zu finden, sind relativ gut,
da es in F∗p genau ϕ(p − 1) Generatoren gibt.
Zum Beispiel ist im Fall, dass p − 1 = 2q, für eine weitere Primzahl q, die Wahrscheinlichkeit
ϕ(2q)
q−1
1
einen Generator zu finden ϕ(p−1)
p−1 = 2q = 2q ≈ 2 .
Für den allgemeinen Fall, dass p − 1 6= 2q ist, lässt sich ϕ(p − 1) nach unten durch ϕ(p − 1) ≥
p−1
∗
6 ln ln(p−1) abschätzen. Dadurch ist die Wahrscheinlichkeit, dass ein zufällig gewältes a ∈ Fp
5
1
ein Generator ist ≥ 6 ln ln(p−1)
.
Zu überprüfen bleibt, ob ein gewähltes a ein Generator von F∗p ist. Nehmen wir für die
folgenden Überlegungen an, dass die Faktorisierung von p−1 also die Ordnung von F∗p bekannt
ist.
m
Lemma 3.1 Sei m ∈ N und gelte g m = 1 sowie g p 6= 1 für jeden Primteiler p von m. Dann
ist m die Ordnung von g.
Dadurch lässt sich bei gegebener Faktorisierung von p − 1 einfach überprüfen ob a ein
Generator von F∗p ist. Falls die Faktorisierung von p−1 nicht bekannt ist, so ist die Überprüfung
wesentlich aufwändiger.
Eine genauere Beschreibung mit Beispielen befindet sich in [6] im Kapitel 6.
4
Massey Omura Kryptosystem
Das Massey Omura Verfahren ist ein Verschlüsselungsverfahren, das Teilnehmern ermöglicht,
ohne sich vorher über einen gemeinsamen geheimen Schlüssel zu einigen, Nachrichten verschlüsselt auszutauschen.
Das Verfahren ist in [1] beschrieben.
4.1
Das Verfahren
Ähnlich dem Diffie Hellman Schlüsseltausch Verfahren einigen sich beim Massey Omura
Kryptosystem die Teilnehmer am Beginn auf eine Primzahl p. Weiters wählt sich jeder
Teilnehmer eine Zahl e ∈ Fp , sodass diese relativ prim zu ϕ(p) = p−1 ist, d.h. ggT(e, p−1) = 1.
Nun berechnen sich die Teilnehmer zu ihrem e durch Anwendung des erweiterten euklidischen
Algorithmus ein d = e−1 mod p − 1.
Falls nun ein Teilnehmer A einem Teilnehmer B eine Nachricht N schicken möchte, so
berechnet A den Wert N eA und sendet diese Information an B. B kann zu diesem Zeitpunkt
die Nachricht nicht entschlüsseln, da ihm dA unbekannt ist. Er berechnet jedoch (N eA )eB =
N eA eB und sendet diese Information modulo p zu A zurück. A berechnet sich nun durch
potenzieren mit dA , (N eA eB )dA = N (eA dA )eB = N eB . Durch nochmaliges zurücksenden der
Information N eB kann sich B durch potenzieren mit dB die Nachricht entschlüsseln.
Die Idee hinter diesem Verfahren ist eigentlich einfach, dennoch sollte es nicht ohne ein
entsprechendes Signatur oder Authentifizierungsverfahren angewandt werden, da es wie beim
Diffie Hellman Schlüsseltausch einem Angreifer M möglich ist, sich durch die Man-in-themiddle Attacke sich als B auszugeben.
Weiters zu bemerken ist, dass es einem Teilnehmer B, nachdem er mehrere Paare (N und
N eA ) empfangen hat, aufgrund des diskreten Logarithmus Problems nicht möglich ist, den
Verschlüsselungsschlüssel eA von A zu berechnen.
6
Literatur
[1] Neal Koblitz A Course in Number Theory and Cryptography, Springer, 1994, 2. Edition.
[2] A. Beutelspacher, J. Schwenk, K. Wolfenstetter Moderene Verfahren der Kryptographie
Vieweg 2006, 6.Auflage.
[3] B. Ryabko, A. Fionov Basics of contemporary cryptography for IT Practitioners, World
Scientific 2005, Vol 1.
[4] Song Y. Yan Number Theory for Computing, Springer 2000.
[5] Richard A. Mollin An introduction to Cryptography, Chapman & Hall/CRC 2001.
[6] Eike Best Grundbegriffe der Kryptographie 2004
http://theoretica.informatik.uni-oldenburg.de/∼best/publications/
kry-Mai2005.pdf
7

Documents pareils