2.2 Wie kann RSA gebrochen werden?
Es gibt einige mögliche Interpretationen, was es heißt, RSA
zu "brechen".
Den meisten Schaden richtet sicherlich eine Offenlegung des
privaten Schlüssels an. Dies erlaubt dem Angreifer, alle
Nachrichten zu lesen und Unterschriften zu fälschen.
Es drängt sich daher der Versuch auf, das öffentliche
Modul n in seine Primfaktoren p und q zu
zerlegen, denn aus p, q und dem öffentlichen
Exponenten e läßt sich leicht der private
Exponent d und somit der private Schlüssel errechnen.
Aber genau auf diesem schwierigen Problem der Faktorisierung von
n in seine genau zwei Primfaktoren beruht die Sicherheit
von RSA.
Ein anderer Weg, RSA zu brechen, besteht darin, einen Algorithmus zur
Berechnung der e-ten modularen Wurzel zu finden. Da
c = Me ist, ist die e-te
modulare Wurzel aus c bezüglich n gleich der
Nachricht M. Dieser Angriff gestatt es dem Angreifer,
Nachrichten zu entschlüsseln und Unterschriften zu fälschen,
ohne den privaten Schlüssel kennen zu müssen. Es ist bisher
nicht bekannt, ob dieser Ansatz äquivalent zur Faktorisierung ist
oder nicht. Es sind bis heute aber keine generellen Algorithmen
bekannt, die RSA in dieser Weise gefährlich werden
könnten.
Man sollte beachten, daß der RSA Algorithmus sehr
anfällig gegen gewählte Klartext-Angriffe
(Chosen-Plaintext Attack) ist. Dabei ist der Angreifer in der
Lage, jeden beliebigen Klartext mit dem privaten Schlüssel
des Opfers verschlüsseln bzw. signieren zu lassen und die
Ergebnisse wieder einzusehen. Durch einen Vergleich dieser Ergebnisse
läßt sich auf den verwendeten privaten Schlüssel
rückschließen.
Genauso steht es mit gewählten
Chiffretext-Angriffen (Chosen-Ciphertext Attack), bei
denen der Angreifer beliebige Chiffretexte erstellen und diese mit dem
privaten Schlüssel des Opfer entschlüsseln lassen kann.
Bei der Benutzung des RSA Algorithmus sollte also sehr darauf geachtet
werden, daß es einem Angreifer auf keinen Fall gelingen kann,
beliebige Texte ver- bzw. entschlüsseln zu lassen und wieder
einsehen zu können.
Außer diesen Angriffsmethoden, die RSA so brechen, daß der
Angreifer alle Nachrichten lesen und Unterschriften eines
bestimmten Schlüssels fälschen kann, gibt es weitere
Methoden, die eine einzelne Nachricht aufdecken können,
jedoch keine weiteren desselben Schlüsselpaares.
Der einfachste Angriff auf Einzelnachrichten ist das Erraten
eines Klartextes. Ein Angreifer errät zu einem Chiffrat
den Klartext und verschlüsselt ihn mit dem öffentlichen
Schlüssel des Empfängers. Stimmt seine Verschlüsselung
mit dem Chiffrat überein, so hat er vollkommen richtig
geraten.
Um sich gegen diese Art von Angriff zu schützen,
reicht es, jeweils einige zufällige Bits im Klartext
unterzubringen.
Eine andere Angriffsmöglichkeit auf eine Einzelnachricht ist dann
gegeben, wenn der Sender einen Text an mehrere Empfänger
verschlüsselt, die alle den gleichen kleinen öffentlichen
Exponenten haben. Weiß der Angreifer dies, so kann er die
Nachricht über den Chinesischen Restesatz gewinnen
[9]. Glücklicherweise genügt es, die Nachricht in nur
wenigen Füllbits an die verschiedenen Empfänger zu
verändern, um sich gegen diesen Angriff zu schützen.
Natürlich gibt es auch Angriffe, die nicht auf RSA selbst,
sondern auf eine unsichere oder fehlerhafte Implementation von RSA
zielen. Dies zählt jedoch nicht als ein "Brechen" von RSA, da
kein Schwachpunkt des Algorithmus selbst ausgenutzt wird. Wenn ein
Benutzer beispielsweise seinen privaten Schlüssel unsicher
abspeichert, so kann ihn ein Angreifer auffinden. Es kann nicht
deutlich genug gesagt werden, daß ein sicheres RSA-Kryptosystem
eine sichere Implementation voraussetzt. Mathematische Sicherheit, wie
die Wahl eines genügend großen Schlüssels, ist zwar
wichtig, aber nicht hinreichend.
Der RSA Algorithmus wird als sicher angesehen, wenn er richtig benutzt
wird, aber man muß bei der Benutzung auch sehr vorsichtig sein,
um sich gegen die genannten Attacken zu schützen.