Public-Key Kryptographie- Public-Key Verschlüsselung - Hybride Kryptosysteme - Sicherheit von Public-Key Verfahren - Der RSA-Algorithmus Public-Key VerschlüsselungSelbst mit dem besten und schnellsten Krypto-Algorithmus bleibt das Problem der Schlüsselübertragung vom Sender zum Empfänger bestehen. Es muss erst ein "sicherer" Kanal zur Übertragung des Schlüssels gefunden werden, was in der Praxis nahezu unmöglich ist. Daher ist auch die One Time Pad (kurz OTP) Variante der Vigenère ähnlichen Verfahren, zwar eine prinzipiell unknackbare Methode, aber so gut wie nie praktikabel, da der Schlüssel erst sicher übertragen werden muss. Genau hier greifen die Public-Key Algorithmen und bieten eine praktikable Lösung für dieses Problem: Sender und Empfänger besitzen nicht den selben Schlüssel (wie bei den symmetrischen Verschlüsselungsverfahren), sondern ein Schlüssel ist öffentlich und der zweite nur dem Besitzer bekannt. Public-Key Verfahren werden daher auch als asymmetrische Verfahren bezeichnet. Die Schlüssel treten also paarweise auf, der eine wird als Chiffrier- schlüssel der andere als Dechiffrierschlüssel bezeichnet. Das entscheidende ist nun, dass es nicht möglich ist aus Chiffrier- oder Deschiffrierschlüssel den jeweils anderen Schlüssel zu bestimmen. Mathematisch wird dies durch sog. Einwegfunktion mit Hintertür realisiert, dabei ist die Verschlüsselung die mathematisch 'einfache' Richtung, die mit Hilfe des öffentlichen Schlüssels, dem Chiffrier- schlüssel, durchgeführt wird. Jeder kann mit diesem Schlüssel beliebige Nachrichten verschlüsseln. Die Entschlüsselung jedoch ist die mathematisch 'schwierige' Richtung. Diese Richtung muss so 'schwer' sein, dass sie nur mit der Hilfe des privaten Schlüssels, dem Deschiffierschlüssel, möglich ist, nicht aber durch Computer in einem bestimmten (möglichst großen) Zeitraum. Prinzipiell ist jedoch auch der 'schwierige' Weg mathematisch berechenbar, jedoch muss der Aufwand größer sein als ein Brute Force Angriff. Eine Übertragung einer Nachricht sieht dann folgendermaßen aus: 1. Typ1 sendet Typ2 seinen öffentlichen Schlüssel. 2. Typ2 chiffriert die Nachricht für Typ1 mit dem öffentlichen Schlüssel von Typ1 und sendet die chiffrierte Nachricht an Typ1. 3. Typ1 dechiffriert die Nachricht mit seinem privaten Schlüssel. ...und es muss nichts "geheim" übertagen werden, das Problem der symmetrischen Verfahren tritt nicht auf. Hybride KryptosystemeEin Nachteil dieses Verfahrens ist, dass es langsam ist. Dagegen sind symmetrische Algorithmen in aller Regel etwa 1000 mal schneller, so auch DES[Hardware] im Vergleich zu RSA[Hardware] (DES[Software] ist 'nur' etwa 100 mal schneller als RSA[Hardware]). Ein weiterer Nachteil ist die möglichkeit eines Chosen-Plaintext Angriff, daher wird in der Praxis meist eine Variante des einfachen Public-Key- Verfahrens eingesetzt: Es wird hier nicht direkt mit dem öffentliche Schlüssel chiffriert, sondern mit einem Sitzungsschlüssel, der mit Hilfe eines symmetrischen (daher schnellen) Algorithmus erzeugt wurde. Mit dem werden dann die Nachrichten verschlüsselt und der Sitzungsschlüssel wird mit dem öffentlichen Schlüssel des Empfängers chiffriert übertragen. Eine Übertragung des Sitzungsschlüssel sieht dann folgendermaßen aus: 1. Typ1 sendet Typ2 seinen öffentlichen Schlüssel. 2. Typ2 generiert einen zufälligen Sitzungsschlüssel, chiffriert ihn mit dem öffentlischen Schlüssel von Typ1 und schickt ihn so an Typ1. 3. Typ1 dechiffriert Typ2 Nachricht mit seinem privaten Schlüssel und erhält den Sitzungsschlüssel. 4. Nun können weitere Nachrichten mit gleichem Sitzungsschlüssel chiffriert werden. Sicherheit von Public-Key VerfahrenDer RSA-AlgorithmusRSA ist das mit Abstand populärste Public-Key-Verfahren, es wurde 1978 von seinen Erfindern Ron Rivest, Adi Shamir und Leonard Adlerman erfunden und nach ihnen benannt [Abstract RSA78]. Es ist ein relativ einfacher Algorithmus und war bis September 2000 patentiert. Jetzt ist er ohne Lizenzgebühren frei verwendbar. Der Algorithmus besteht aus zwei Teilen: Der eigentlichen Verschlüsselung und der wichtigen Schlüsselerzeugung. Die Schlüsselerzeugung 1. Wähle zufällig zwei große Primzahlen p und q mit einer Länge zwischen 384 und 512 Bit. 2. Berechne n = pq (n hat dann eine Länge von 512 bis 1024 Bit) 3. Wähle eine kleine ungerade natürliche Zahl e, die zu phi(n) = (p - 1)(q - 1) relativ prim ist, d.h es gilt ggT(e, phi(n)) = 1. 4. Berechne d als Lösung der Gleichung ed = 1 mod phi(n). d existiert und ist eindeutig bestimmt, man schaue in ein Mathematikbuch für den Beweis. d kann mit Hilfe des erweiterten Euklidischen Algorithmus berechnet werden. d und n sind ebenfalls relativ prim zueinander. 5. Das Paar P = (e, n) ist der öffentliche Schlüssel. 6. Das Paar S = (d, n) ist der private Schlüssel. Hinweis: p und q werden nicht mehr benötigt, dürfen allerdings auch nicht bekannt gegeben werden! Die Verschlüsselung Man zerlege die Nachricht M in Blöcke, die kleiner als n sind (bei binären Daten wird die größe Zweierpotenz, die kleiner als n ist gewählt. Die Verschlüsselung sieht dann so aus: E(M) = M^e mod n Die Enschlüsselung eines Chiffretext C: D(C)) = C^d mod n dies ist möglich da: C^d = (M^e)^d = M^(ed) = M^(k(p-1)(q-1) + 1) = MM^(k(p-1)(q-1)) = M * 1 = M; alles mod n Das bedeutet E und D sind invers zueinander! Sicherheit speziell von RSA Man sieht daher, dass RSA auf der mathematischen Schwierigkeit beruht, große Zahlen in ihre Primfaktoren zu zerlegen. Bemerkenswert ist, dass die Primfaktor- zerlegung gleichzeitig der bisher effizienteste Angriff auf RSA ist. Es wurde allerdings immer noch nicht Bewiesen, dass die Sicherheit von RSA auf dem Problem der Primfaktorzerlegung beruht, es ist daher theorisch möglich, dass es einen einfacheren Angriff gibt C ohne d aus e und n M zu berechnen. Wie schon gesagt ist es natürlich sehr wichtig, dass p und q unbekannt bleiben und nicht zu erraten sind. p und q müssen daher möglichst zufällig aus einer möglichst großen Menge von Primzahlen gewählt werden. Hier ein Beweis der zeigt, dass offenbar die Primfaktorzerlegung nicht der effizienteste Angriff auf RSA ist: <news:slrnat4eo7.p0.lutz%40taranis.iks-jena.de>, daher basiert RSA auf der 'praktischen Unmöglichkeit der diskreten Logarithmen in endlichen zusammengesetzen Ringen'. Lutz Donnerhacke in: <news:slrnasvrlj.pd.lutz@taranis.iks-jena.de> |
Copyright © 1997-2004 Oliver Gobin -
Version 2.0 vom 12.2002 -
Haftungsausschluss -
Impressum
Kommentare, Änregungen und Feedback zur Website oder zu den Texten und
Quellcodes bitte an: og@ogobin.org oder direkt
ins Gästebuch.
Diese Seite ist XHTML 1.0
und CSS konform.
This page was rendered in 0.012192 seconds