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