RSA ist ein Verfahren oder Algorithmus zur Verschlüsselung elektronischer Daten, der verschiedene Schlüssel zum Ver- und Entschlüsseln verwendet, wobei der Schlüssel zum Entschlüsseln nicht oder nur mit hohem Aufwand aus dem Schlüssel zum Verschlüsseln berechenbar ist. Der Schlüssel zur Verschlüsselung kann daher veröffentlicht werden. Solche Verfahren werden als asymmetrische oder Public-Key-Verfahren bezeichnet. Er ist nach seinen Erfindern Ronald L. Rivest, Adi Shamir und Leonard Adleman benannt.
Durch Public-Key-Systeme entfällt die Notwendigkeit, den Schlüsselaustausch gegen Abhören zu härten, da nur der öffentliche Schlüssel ausgetauscht werden muss. Es bleibt aber ein wesentliches Problem, da weiterhin sicherzustellen ist, dass der öffentliche Schlüssel tatsächlich von der Person stammt, mit der geheime Botschaften ausgetauscht werden sollen. In Praxis ist dies oft nur dann möglich, wenn zugleich auch die Geheimhaltung gewährleistet werden kann.
Falls die Kommunikation zwar nicht abhörsicher ist, aber kein Zweifel über die Identität des Partners besteht und die Nachricht nicht von einem Dritten verändert werden kann, ist der Schlüsselaustausch beim Public-Key-Verfahren problemlos. Allerdings ist dies auch mit anderen Verfahren möglich.
Dazu kann der Schlüssel aus vielen Teilschlüsseln zusammengesetzt werden. Eine Hashfunktion wie SHA-1 erlaubt es, aus vielen längeren Teilschlüsseln ein Komprimat zu errechnen, welches als Schlüssel für die symmetrische Verschlüsselung benutzt werden kann. Die Teilschlüssel können zu unterschiedlichen Zeiten und mit höchst unterschiedlichen Methoden ausgetauscht werden.
Nachdem Whitfield Diffie und Martin Hellman eine Theorie zur Public-Key-Kryptografie veröffentlicht hatten, versuchten die drei Mathematiker Rivest, Shamir und Adleman, die Annahmen von Diffie und Hellmann zu widerlegen. Nachdem sie den Beweis bei verschiedenen Verfahren durchführen konnten, stießen sie schließlich auf eines, bei dem sie keinerlei Angriffspunkte fanden. Hieraus entstand dann RSA.
Das Verfahren wurde 1977 entwickelt und basiert auf dem aktuellen Wissensstand, dass die Faktorisierung einer großen Zahl, also ihre Zerlegung in ihre Primfaktoren, eine sehr aufwändige Angelegenheit ist, während das Erzeugen einer Zahl durch Multiplikation zweier Primzahlen recht einfach ist. Wenn nun eine Nachricht einem Empfänger verschlüsselt zugeleitet werden soll, generiert dieser einen öffentlichen Schlüssel. Der Nachrichtenabsender verwendet diesen öffentlich bekanntgemachten Schlüssel, indem er damit seine Botschaft verschlüsselt. Nur der Empfänger kann diese „dekodieren“, da nur er die „Zusammensetzung“ des von ihm erzeugten (öffentlichen) Schlüssels kennt.
Das Verfahren ist mit dem Rabin-Verschlüsselungsverfahren verwandt.
Ein Zahlenbeispiel:
Gewöhnlich wird in der Praxis der private Schlüssel etwas ausführlicher gespeichert, da diese Form der Speicherung das Entschlüsseln von Krypttexten effizienter macht (mit Hilfe des Chinesischen Restsatzes). Der private Schlüssel besteht daher dann, im Gegensatz zu dem, was im Rest dieses Artikels angenommen wird, aus folgenden Komponenten:
Verschlüsselung (asymmetrisches Kryptosystem).png
Um eine Nachricht zu verschlüsseln, verwendet der Absender die Formel
und erhält so aus dem Klartext den Geheimtext .Dabei wendet man nach jedem Rechenschritt auf die zu handhabenden Zahlen die Modulo-Operation (kurz: mod) an, um die Ergebnisse möglichst „klein“ zu halten.
Aus dem Klartext 7 ist somit der Geheimtext 2 geworden.
Entschlüsselung (symmetrisches und asymmetrisches Kryptosystem).png
Der Geheimtext kann durch modulare Exponentiation wieder zum Klartext entschlüsselt werden. Der Empfänger benutzt die Formel
mit dem nur ihm bekannten Wert sowie .Aus wird also wieder .
Siehe auch Schnelles Potenzieren
Da asymmetrische Verfahren nicht geeignet sind, um größere Datenmengen zu verschlüsseln, wird in der Praxis nicht die Nachricht selbst mit dem privaten Schlüssel verschlüsselt. Stattdessen wird der Hashwert der Nachricht berechnet. Dieser bildet, meist zusammen mit einigen technisch notwendigen Informationen, wie zum Beispiel das verwendete Hashverfahren, die Eingabe der Verschlüsselung mit dem privaten Schlüssel. Diese liefert die eigentliche Signatur. Der Empfänger kann nun mit dem öffentlichen Schlüssel und der Signatur bestimmen. Anschließend kann er selber den Hashwert der Nachricht bestimmen und mit dem in gespeicherten vergleichen. Wenn die beiden Werte übereinstimmen, kann mit hoher Sicherheit davon ausgegangen werden, dass die Nachricht fehlerfrei übertragen wurde und nicht gefälscht ist.
Siehe auch Elektronische Unterschrift
Public-Key-Verfahren wie RSA werden in der Praxis immer als hybride Verfahren in Verbindung mit symmetrischen Verfahren verwendet. Bei der Analyse der Sicherheit muss die Sicherheit des Public-Key-Verfahrens und die praktische Sicherheit des Gesamtsystems betrachtet werden.
Folgende Beziehungen zwischen den RSA-Problemen und , dem Faktorisierungsproblem, sind bekannt:
Die Beziehung ist trivial, denn wenn man den privaten Schlüssel hat, kann man damit wie oben jeden beliebigen Geheimtext entschlüsseln. Ob die Umkehrung gilt, ist zur Zeit unbekannt.
Auch die Beziehung ist trivial, denn wenn man faktorisiert hat, kann man damit leicht berechnen, und dann mit dem euklidischen Algorithmus zu gegebenem öffentlichen Schlüssel den zugehörigen privaten Schlüssel effizient berechnen, wie in der Schlüsselerzeugung.
Für die Beziehung ist schon lange ein probabilistischer Polynomialzeitalgorithmus bekannt. Vor kurzem wurde gezeigt, dass sich diese Reduktion im balancierten RSA (d.h. und haben gleiche Bitlänge) auch deterministisch durchführen lässt. Der Beweis verwendet das Coppersmith-Verfahren zur Bestimmung von Nullstellen eines irreduziblen bivariaten Polynoms mit ganzzahligen Koeffizienten, welches sich auf eine Gitterreduktion zurückführen lässt.
Da alle gängigen Implementierungen balanciertes RSA verwenden, ist in der Praxis das Brechen des geheimen Schlüssels nur mit der Kenntnis des öffentlichen Schlüssels genau so schwer wie das Faktorisieren von . Wegen ist im Fall der zusätzlichen Kenntnis eines Geheimtexts die Schwierigkeit des Faktorisierungsproblems von zentralem Interesse.
Man möchte für sehr große Primzahlen und faktorisieren. Diese Primfaktorzerlegung ist für große Zahlen mit den heute bekannten Verfahren praktisch nicht durchführbar. Es ist aber nicht bewiesen, dass es sich bei der Primfaktorzerlegung um ein prinzipiell schwieriges Problem handelt. Im Gegenteil, mit dem Quadratischen Sieb wurden bereits Zahlen mit über 100 Stellen faktorisiert. Mit der Methode des Zahlkörpersiebs wurde im Jahr 2005 von Wissenschaftlern der Universität Bonn die im Rahmen der RSA Factorization Challenge von RSA Laboratories vorgegebene 200-stellige Dezimalzahl RSA-200 in ihre zwei großen Primfaktoren zerlegt. Die Faktorisierung begann Ende 2003 und dauerte bis Mai 2005. Unter anderem kam ein Rechnerverbund von 80 handelsüblichen Rechnern an der Universität Bonn zum Einsatz. Im November 2005 zahlten RSA Laboratories für die Faktorisierung von RSA-640, einer Zahl mit 640 Bits bzw. 193 Dezimalstellen, eine Prämie von 20.000 US-Dollar. Dies ist noch ein gutes Stück von den mindestens 300 Dezimalstellen heute üblicher RSA-Schlüssel entfernt. Jedoch weisen die dabei verwandten Faktorisierungsverfahren ein deutlich subexponentielles (obwohl superpolynomielles) Laufzeitverhalten auf, so dass in näherer Zukunft möglicherweise auch deutlich größere Zahlen mit diesen Methoden faktorisiert werden könnten.
Für die Faktorisierung von RSA-1024 (309 Dezimalstellen) oder gar RSA-2048 (617 Dezimalstellen) sind 100.000 $ bzw. 200.000 $ ausgelobt. Die wachsende Rechenleistung moderner Computer stellt für die kurzfristige Sicherheit von RSA wesentliches kein Problem dar, zumal diese Entwicklung vorhersehbar ist: Der Nutzer kann bei der Erzeugung seines Schlüssels darauf achten, dass er während der Dauer der beabsichtigten Verwendung nicht faktorisiert werden zu kann. Nicht vorhersehbare Entwicklungen, wie die Entwicklung deutlich schnellerer Algorithmen oder gar eines leistungsfähigen Quantencomputers bergen zumindest für die mittel- und langfristige Sicherheit der verschlüsselten Daten gewisse Risiken.
In einigen Spezialfällen kann man das RSA-Verfahren brechen, ohne das Faktorisierungsproblem gelöst zu haben. Der Angriff von Wiener bei balanciertem RSA löst das RSA-Schlüsselproblem effizient unter der Annahme, dass der private Schlüssel nur eine geringe Bitlänge aufweist, genauer . Wiener verwendete dabei die Tatsache, dass unter der Abschätzung für der Bruch (für eine ganze Zahl ) in der Kettenbruchentwicklung von auftaucht. Die Schranke wurde mit Mitteln der Giterreduktion auf
Auch das RSA-Problem kann unter einigen Annahmen effizient ohne Faktorisieren gelöst werden. Der Angriff von Håstad ermittelt einen Klartext, der mit kleinem Verschlüsselungsexponent (etwa ) für mehrere Empfänger vor dem Verschlüsseln speziell aufbereitet wurde, etwa wenn die Nummer des Empfängers in den Klartext codiert wurde. Dieser Angriff verwendet die Coppersmith-Methode, um kleine Nullstellen eines Polynoms in einer Unbestimmten zu berechnen, welche wiederum auf Giterreduktion basiert.
Bei der Signatur wird nicht die gesamte Nachricht sondern nur ein Hashwert signiert. Der symmetrische Schlüssel bzw. der Hashwert sind dabei relativ kurz. Für den symmetrischen Schlüssel gilt also
Daher kann der symmetrische Schlüssel mit einer einzigen RSA-Verschlüsselung verschlüsselt werden. Für die Sicherheit von RSA sind Primzahlen mit über 100 Stellen erforderlich. Daher könnte ein symmetrischer Schlüssel mit über 200 Stellen verschlüsselt werden.
Als sehr sicher eingestufte Algorithmen zur symmetrischen Verschlüsselung gelten 3DES und AES. Diese verwenden 112, 128 oder maximal 168 Bit oder etwa 40 Dezimalstellen. Damit ist eine Brute-Force-Angriff faktisch auszuschließen. Eine sichere Hashfunktion wie SHA-1 erzeugt Funktionswerte mit lediglich 160 Bit entsprechend etwa 50 Dezimalstellen bzw. 40 Hexadezimalziffern. Damit lassen sich Signaturverfahren mittels RSA realisieren, die nur einen Verschlüsselungsschritt benötigen.
Die Sicherheit und die Performance des Gesamtsystems werden durch die Sicherheit des Public-Key-Verfahrens limitiert, sofern nur als sicher eingestufte Algorithmen verwendet werden und die Wahl des Schlüssel als hinreichend zufällig betrachtet werden kann.
Dabei ist
Die Aussage, dass gilt, ist gleichbedeutend mit der Existenz einer ganzen Zahl mit . Außerdem ist wegen der Multiplikativität von .
Nach Wahl von und ist nun , denn für ist nichts zu zeigen.
Im Fall gilt
Im Fall dürfen wir ohne Einschränkung annehmen, dass . Wir erhalten folgende zwei Kongruenzen:
Es ist nicht notwendig derart zu bestimmen, dass die Kongruenz erfüllt wird.
Vielmehr reicht es aus derart zu bestimmen, dass die Kongruenz erfüllt wird. Der Vorteil bei diesem Verfahren liegt in der Größe des Modulus für die Berechnung von , weil dieser nun kleiner geworden ist und dadurch die Berechnung von schneller durchgeführt werden kann.
Für die Zahlen und ergibt 120. Das kleinste gemeinsame Vielfache von und ist lediglich 60 (es muss ja ein Teiler von 120 sein) und somit maximal halb so groß wie das Ergebnis der φ-Funktion, da und zumindest den Faktor 2 gemeinsam haben. In Binärdarstellung ist somit das kgV zumindest um ein Bit kürzer.
Beweis
Der Beweis läuft großteils analog zum Beweis für das originale RSA-System. Es existiert lediglich folgender Unterschied.
Da das kgV ein Vielfaches von und ist, gelten folgende zwei Regeln:
Wir unterscheiden drei Fälle.
Fall 1:
Hierbei erhalten wir zwei Kongruenzen:
Nach dem chinesischem Restsatz folgt nun .
Fall 2:
Nach dem Chinesischen Restsatz folgt wiederum .
Fall 3:
analog zu Fall 2
Wenn und Primzahlen sind, funktioniert das RSA-Verfahren. Umgekehrt kann aber aus dem funktionierenden RSA-Verfahren nicht geschlossen werden, dass und Primzahlen sind, denn bei Carmichael-Zahlen funktioniert das Verfahren, obwohl Carmichael-Zahlen keine Primzahlen sind.
Beweis
Gegeben:
Zu zeigen:
Betrachten wir nun den Primteiler
Fall 1:
Fall 2:
Betrachten wir nun die Primteiler von
Fall 1:
Fall 2:
Unabhängig von der Zahl folgt aus dem dem chinesischem Restsatz, dass .
Dieser Beweis hält offensichtlich auch dann stand, wenn das Produkt von zwei Carmichael-Zahlen ist.
Klartext: W I K I P E D I A Kodierung: 230911 091605 040901
(zufällig, teilerfremd zu )
(das multiplikative Inverse zu mit Hilfe des Erweiterten euklidischen Algorithmus)
Öffentlicher Schlüssel: und
Geheimer Schlüssel: und
Cn = Kne mod N für n=1,2,3(,...) C1 = 2309111721 mod 263713 C1 = 001715 C2 = 0916051721 mod 263713 C2 = 184304 C3 = 0409011721 mod 263713 C3 = 219983
RSA | RSA | RSA | RSA | RSA | RSA | RSA | Rivest Shamir Adleman | RSA | RSA | RSA-eljárás | RSA | RSA | RSA | RSA暗号 | RSA 암호 | RSA | RSA (cryptografie) | RSA (kryptografia) | RSA | RSA | RSA | RSA | RSA | RSA | Açık anahtarlı şifreleme | RSA (mã hóa) | RSA加密演算法
This article is licensed under the GNU Free Documentation License.
It uses material from the
"RSA-Kryptosystem".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world