Public-Key-Kryptographie

Ähnliche Dokumente
Proseminar Schlüsselaustausch (Diffie - Hellman)

Kryptographie - eine mathematische Einführung

Wiederholung. Symmetrische Verfahren: klassische Verfahren / grundlegende Prinzipien: Substitution, Transposition, One-Time-Pad DES AES

Kryptographie und Komplexität

Kryptographie und Komplexität

WS 2009/10. Diskrete Strukturen

VI.4 Elgamal. - vorgestellt 1985 von Taher Elgamal. - nach RSA das wichtigste Public-Key Verfahren

VI. Public-Key Kryptographie

EINIGE GRUNDLAGEN DER KRYPTOGRAPHIE

Kryptograhie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik

VI.3 RSA. - RSA benannt nach seinen Erfindern R. Rivest, A. Shamir und L. Adleman. - vorgestellt erstes Public-Key Verschlüsselungsverfahren

Kurzskript MfI:AGS WS 2018/19 Teil II: Gruppen / Teil III: Ringe 34

Kryptographische Protokolle

Diskrete Strukturen Kapitel 5: Algebraische Strukturen (RSA-Verfahren)

Verschlüsselung durch Exponentiation (Pohlig, Hellman, 1976)

Mathematisches Kaleidoskop 2014 Materialien Teil 2. Dr. Hermann Dürkop

Regine Schreier

Public-Key Kryptographie mit dem RSA Schema. Torsten Büchner

Kryptographie. Nachricht

Public Key Kryptographie

Public-Key-Verschlüsselung und Diskrete Logarithmen

Übung GSS Blatt 6. SVS Sicherheit in Verteilten Systemen

El Gamal Verschlüsselung und seine Anwendungen

Anwendungen der Linearen Algebra: Kryptologie

Kryptologie. Bernd Borchert. Univ. Tübingen SS Vorlesung. Teil 10. Signaturen, Diffie-Hellman

IT-Sicherheit: Kryptographie. Asymmetrische Kryptographie

4 Der diskrete Logarithmus mit Anwendungen

n ϕ n

Hintergründe zur Kryptographie

Vorlesung Sicherheit

Einführung in die Kryptographie

Angewandte Kryptographie

Netzwerktechnologien 3 VO

4 Kryptologie. Übersicht

Technikseminar SS2012

Vorlesung Sicherheit

Elliptic Curve Cryptography

6: Public-Key Kryptographie (Grundidee)

Kryptographie und elliptische Kurven - oder: Wie macht man Mathematikern das Leben schwer?

Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik

Asymmetrische Algorithmen

3. Vortrag: Das RSA-Verschlüsselungsverfahren

Kryptographie eine erste Ubersicht

Kryptographie. ein erprobter Lehrgang. AG-Tagung Informatik, April 2011 Alfred Nussbaumer, LSR für NÖ. LSR für NÖ, 28. April 2011 Alfred Nussbaumer

Kryptographie Wie funktioniert Electronic Banking? Kurt Mehlhorn Adrian Neumann Max-Planck-Institut für Informatik

Wiederholung Symmetrische Verschlüsselung klassische Verfahren: Substitutionschiffren Transpositionschiffren Vigenère-Chiffre One-Time-Pad moderne

Einführung in die Kryptographie

2.4 Hash-Prüfsummen Hash-Funktion message digest Fingerprint kollisionsfrei Einweg-Funktion

3 Public-Key-Kryptosysteme

Diskreter Logarithmus und Primkörper

Ideen und Konzepte der Informatik Kryptographie

Aufgabe der Kryptografie

KRYPTOSYSTEME & RSA IM SPEZIELLEN

Public Key Kryptographie

AES und Public-Key-Kryptographie

7.3 Unizitätslänge. 8 Schlüsselaustausch und öffentliche Schlüssel

6.2 Asymmetrische Verschlüsselung

Kryptographie. nur mit. Freier Software!

Elliptische Kurven in der Kryptographie. Prusoth Vijayakumar / 16

Kryptographie und Komplexität

Satz von Euler. Satz von Euler. Korollar 1. Korollar 2 Kleiner Fermat. Sei (G, ) eine endl. abelsche Gruppe. Dann gilt a G = 1 für alle a G.

Satz von Euler. Satz von Euler. Korollar 1. Korollar 2 Kleiner Fermat. Sei (G, ) eine endl. abelsche Gruppe. Dann gilt a G = 1 für alle a G.

Algorithmentheorie Randomisierung. Robert Elsässer

Digitale Unterschriften mit ElGamal

Literatur. ISM SS 2017 Teil 8/Asymmetrische Verschlüsselung

SSL/TLS Sicherheit Warum es sich lohnt, sich mit Ciphersuites zu beschäftigen

Erste Vorlesung Kryptographie

9. Einführung in die Kryptographie

11. Das RSA Verfahren

4 Der diskrete Logarithmus mit Anwendungen

2.7 Digitale Signatur (3) 2.7 Digitale Signatur (4) Bedeutung der digitalen Signatur. Bedeutung der digitalen Signatur (fortges.)

Digitale Signaturen. Einführung und das Schnorr Signatur Schema. 1 Digitale Signaturen Einführung & das Schnorr Signatur Schema.

Public Key Kryptographie mit dem RSA Schema. Karsten Fischer, Sven Kauer

Vorlesung Diskrete Strukturen Gruppe und Ring

Was ist Kryptographie

Facharbeit. Public-Key-Verfahren(PGP) Stephan Larws Informatik 02

Transkript:

Kapitel 2 Public-Key-Kryptographie In diesem Kapitel soll eine kurze Einführung in die Kryptographie des 20. Jahrhunderts und die damit verbundene Entstehung von Public-Key Verfahren gegeben werden. Es soll dabei auf die grundlegenden Probleme von Private-Key Verfahren sowie die ersten Lösungsansätze eingegangen werden. 2.1 Entstehung Nach Ende des Zweiten Weltkriegs und mit Beginn des Informationszeitalters entstanden viele neue Verschlüsselungsalgorithmen, welche nach dem Kerckhoffs-Prinzip 1 entwickelt wurden. Dieses Prinzip verlangt, dass die Sicherheit eines Verschlüsselungsverfahrens nur von der Geheimhaltung des Schlüssels, jedoch nicht von der Geheimhaltung des Algorithmus abhängen darf. Damit wollte man verhindern, dass Verfahren, deren genaue Arbeitsweise nicht veröffentlicht wird, auf breiter Basis eingesetzt werden, da sich solche Verfahren in der Vergangenheit oftmals als sehr unsicher herausgestellt haben. Durch die Offenlegung der Verfahren konnten diese nun von verschiedenen Personen auf ihre Sicherheit hin untersucht werden. Dennoch konnten auch mit dem Kerckhoffs Prinzip zwei grundlegende Probleme für sämtliche Private-Key Verfahren also Verfahren, welche ausschließlich mit einem geheimen Schlüssel arbeiten, nicht gelöst werden: Möchten zwei Personen verschlüsselte Informationen austauschen, so müssen sie zunächst einen geheimen Schlüssel vereinbaren. Dies erweist sich als schwierig, wenn diese Personen keinen direkten Kontakt haben. Diese Schwierigkeit wird auch als Schlüsseltauschproblem bezeichnet. 1 Auguste Kerckhoffs (1835-1903), niederländischer Linguist und Kryptologe 5

Jede Person muss für alle Kommunikationspartner je einen geheimen Schlüssel verwalten. Bereits bei wenigen Partnern tritt dabei das Problem auf, dass diese Schlüssel z.b. in Schlüsselbüchern notiert werden müssen, so dass dies ein Sicherheitsrisiko darstellt. In der Literatur ist dies auch als Schlüsselverwaltungsproblem bekannt. Es stellte sich nun die Frage, ob es überhaupt möglich ist, dass zwei Kommunikationspartner über einen unsicheren Kanal 2 einen geheimen Schlüssel austauschen können, welcher auch nach der Übertragung geheim bleibt. Dies wurde oftmals verneint, da jede Person, welche den unsicheren Kanal abhört, genau die Informationen mitlesen kann, welche die Kommunikationspartner austauschen. Bis Mitte der 70er Jahre sollte es auf diese Fragestellung also keine zufriedenstellende Antwort geben. 2.1.1 Merkles Rätsel Im Jahr 1974 schlug der damalige Student Ralph Merkle folgendes Verfahren vor, mit welchem die Kommunikationspartner Alice und Bob 3 über einen unsicheren Kanal einen geheimen Schlüssel vereinbaren können. Es läuft dabei in folgenden Schritten ab: 1. Bob erzeugt n Nummern x 1,..., x n sowie zweimal n Schlüssel y 1,..., y n und k 1,..., k n. Es ist dabei zu beachten, dass die Nummern zufällig erzeugt werden, also dass zwischen diesen keine Abhängigkeit besteht. 2. Nun verschlüsselt er jedes Tupel (x i, y i ) (1 i n) mit dem dazugehörigen Schlüssel k i und erhält n Rätsel (als Verschlüsselungsverfahren kann dabei jeder symmetrische Algorithmus verwendet werden). 3. Jetzt sendet er alle Rätsel an seine Kommunikationspartnerin Alice. 4. Diese wählt ein zufälliges Rätsel k {1,..., n} aus, entschlüsselt dieses mit einem Bruteforce-Angriff, erhält (x k, y k ) und sendet x k wieder an ihren Kommunikationspartner. 5. Bob sucht den zu der Nummer x k zugehörigen Schlüssel y k heraus. Der Wert y k kann nun als geheimer Schlüssel für ein beliebiges symmetrisches Verschlüsselungsverfahren verwendet werden. Sollte eine Person die Kommunikation zwischen Alice und Bob mitlesen, so muss sie alle Rätsel 2 Unter einem unsicheren Kanal versteht man eine Verbindung, die jederzeit mitgehört werden kann 3 Alice und Bob sind Synonyme für Sender bzw. Empfänger 6

lösen, bis sie auf das Rätsel mit der Nummer x k stößt. Dafür sind im Durchschnitt aber etwa n 2 Rätsel notwendig, so dass sich für die einzelnen Parteien folgender Aufwand ergibt: Bob: Erzeugen von n Rätseln Alice: Entschlüsselung eines Rätsels mittels Bruteforce Angreifer: Entschlüsselung aller Rätsel, bis das Rätsel mit der Nummer x k gefunden ist Ertel [Ert01, S. 75f] gibt zu diesem Verfahren ein Zahlenbeispiel an, bei welchem er annimmt, dass Alice und ein Angreifer je ca. 10 4 Schlüssel pro Sekunde testen können und Bob 2 20 verschiedene Rätsel erzeugt. Somit ist Alice in der Lage, ihr gewähltes Rätsel in etwa zwei Minuten zu lösen, während ein Angreifer ungefähr 2 19 220 Sekunden (und somit etwa 636 10 4 Tage) benötigt, um das Rätsel mit der Nummer x k (und den dazugehörigen Schlüssel y k ) zu finden. Merkle hatte somit erstmals (auf etwas komplizierte Weise) gezeigt, dass es doch möglich ist, einen Schlüssel über einen unsicheren Kanal zu vereinbaren, ohne dass Angreifer diesen sofort ermitteln können. Diese Verfahren fand aber keine Anwendung, da das Verhältnis zwischen Aufwand des Angreifers und Aufwand für Alice und Bob zu gering ist, um in der Praxis als sicher zu gelten. 2.1.2 Diffie-Hellman-Schlüsselaustausch Whitfield Diffie und Martin Hellmann veröffentlichten zwei Jahre später in ihren Aufsatz New Directions in Cryptography (vgl. [WD76, S. 644-654]) einen weiteren Algorithmus, mit welchem zwei Kommunikationspartner über einen unsicheren Kanal einen geheimen Schlüssel vereinbaren können. Dieses Verfahren stellt allerdings eine Erweiterung zu dem Algorithmus von Merkle dar, da nun ein deutlich höherer Aufwand nötig ist, um Kenntnis vom Schlüssel zu erlangen. 1. Alice und Bob wählen eine große Primzahl p und eine Zahl g 2. Alice wählt eine Zufallszahl x, berechnet X = g x (mod p) und sendet dieses Ergebnis an ihren Partner 3. Bob wählt ebenfalls eine Zufallszahl y, bestimmt Y = g y (mod p) und sendet dies über den Kanal an Alice 7

4. Alice berechnet nun k = Y x (mod p); Bob hingegen k = X y (mod p) Nun gilt: k = Y x (mod p) = (g y (mod p)) x (mod p) = g y x (mod p) = (g x ) y (mod p) = X y (mod p) = k. Somit haben sich die beiden Kommunikationspartner auf einen geheimen Schlüssel k = k geeinigt. Dieses Verfahren kann als sicher angesehen werden, weil zwar die Werte X = g x (mod p) und Y = g y (mod p) öffentlich bekannt sind, jedoch x und y geheim bleiben. Diese Zahlen sind jedoch nötig, um X y (mod p) bzw. Y x (mod p) zu bestimmen, können aber durch Lösen der entsprechenden Gleichungen bestimmt werden. Diese Gleichungen sind aber als Problem des diskreten Logarithmus bekannt, für welches bis heute kein effizientes Lösungsverfahren bekannt ist. In ihrem Aufsatz definierten die Autoren ebenfalls erste Forderungen an Public-Key Kryptosysteme, konnten aber noch kein konkretes System nennen. Nach der Veröffentlichung dieser Postulate entstand ein Wettlauf um die Entwicklung des ersten Public-Key Kryptosystems, welches Rivest, Shamir und Adleman mit der Definition des RSA-Verfahrens 1978 gewinnen sollten. 2.2 Schlüsselverwaltung Neben dem RSA-Verfahren wurden einige weitere Public-Key Kryptosysteme entwickelt, welche alle die folgenden Eigenschaften teilen: Jeder Benutzer besitzt einen öffentlichen Schlüssel K o, welcher öffentlich zugänglich gemacht wird. Er wird dazu benutzt, dass jede andere Person diesem Benutzer eine verschlüsselte Nachricht zukommen lassen kann. Weiterhin hat jeder Benutzer einen zu dem öffentlichen Schlüssel passenden privaten Schlüssel K p, welcher nicht veröffentlicht werden darf. Dies wird gefordert, da der Besitzer dieses privaten Schlüssels Nachrichten, welche mit dazugehörigen öffentlichen Schlüssel kodiert wurden, dekodieren kann. Es muss praktisch unmöglich sein, den privaten Schlüssel aus dem öffentlichen Schlüssel in polynomieller Zeit abzuleiten. Public-Key Verfahren greifen auf Funktionen mit bestimmten Eigenschaften zurück (siehe Kapitel 3), um dies zu gewährleisten. Da die Public-Key Kryptographie sowohl das Schlüsselaustausch als auch das Schlüsselverwaltungsproblem löst, ist es für jeden Benutzer nun ohne 8

weiteres möglich, seinen öffentlichen Schlüssel zu veröffentlichen. Die Vereinbarung eines Schlüssel über einen sicheren Kanal ist somit überflüssig. Zur Hinterlegung der öffentlichen Schlüssel eignen sich sogenannte Keyserver, welche mit Telefonbüchern verglichen werden können. Jeder Benutzer speichert dabei seinen Benutzernamen und seinen öffentlichen Schlüssel auf diesem Server, so dass andere Benutzer dieser Person unter Kenntnis dieses Schlüssels eine kodierte Nachricht zukommen lassen können. Es bleibt allerdings zu erwähnen, dass bei der Hinterlegung des öffentlichen Schlüssels sichergestellt werden muss, dass die Person, die einen Schlüssel hinterlegen möchte, sich auch als diejenige identifizieren kann. Dazu wird auf sogenannte Zertifizierungsstellen zurückgegriffen, wie in Buchmann [Buc01, S. 209f] beschrieben ist. 9