Wie das RSA-Verfahren als Authentikationssystem eingesetzt wird, erfahren Sie in dieser Folge. Alle bisher vorgestellten Verfahren wurden am Beispiel der Verschlüsselung beschrieben, dienten also dem Erreichen des Schutzziels "Vertraulichkeit" (siehe About Security #1). Verschlüsselungssysteme werden auch als Konzelationssysteme bezeichnet (siehe About Security #66). Im Folgenden soll nun das Erreichen des Schutzziels "Integrität" näher betrachtet werden. Dabei geht es um die Frage, ob Daten bei der Übertragung verändert wurden oder nicht. Die dazu verwendeten Systeme werden Authentikationssysteme genannt.
Authentikationssysteme
Bei einem Authentikationssystem wird die Nachricht um einen Prüfwert erweitert, den so genannten Message Authentication Code (MAC), der in Abhängigkeit von einem geheimen Schlüssel aus der Nachricht berechnet wird. Bei einem symmetrischen Authentikationssystem berechnet der Empfänger seinerseits den MAC und vergleicht ihn mit dem übertragenen Wert. Stimmen beide überein, wurde die Nachricht nicht verändert.
k(x) ist dabei eine Abkürzung. Heißt der Kodierungsalgorithmus code (), so berechnet der Sender code (k,x) =: MAC. Der Empfänger der Nachricht (nun bestehend aus x und MAC) testet dann, ob MAC = code (k,x) ist.
N E U ! Security
aktuell
Täglich aktuelle Security-Infos!
Ein symmetrisches Authentikationssystem hat dieselben Nachteile beim Schlüsselaustausch wie symmetrische Konzelationssysteme. Asymmetrische Authentikationssysteme dagegen vereinfachen den Schlüsselaustausch analog zu asymmetrischen Konzelationssystemen, indem sie einen geheimen Schlüssel zur Berechnung des MAC verwenden, der dann mit dem dazugehörenden öffentlichen Schlüssel geprüft werden kann. Der größte Vorteil asymmetrischer Systeme ist aber, dass nicht nur die Integrität der Nachricht, sondern auch die Identität des Senders überprüft werden kann. Dies ist bei symmetrischen Systemen nicht möglich: Jeder, der den (einzigen) Schlüssel besitzt, kann den MAC berechnen. Bei asymmetrischen Systemen kann dies nur derjenige, der den geheimen Schlüssel besitzt. Asymmetrische Authentikationssysteme werden daher auch als (digitale) Signatursysteme bezeichnet.
s(x) ist ebenfalls eine Abkürzung. Die Signierfunktion sign (s,x) erzeugt die Unterschrift U. Der Empfänger der Nachricht (bestehend aus x und U) berechnet dann test (t,x,U), das Ergebnis lautet "richtig" oder "falsch".
RSA als digitales Signatursystem
Die Bezeichnungen aus About Security #76 werden umbenannt: Aus c wird t, aus d wird s.
Das Signieren geschieht dann durch modulare Exponentiation mit s,
für den Klartextblock m also durch die Berechnung
von
mod n.
Das Testen erfolgt durch modulare Exponentiation der Unterschrift mit
t und anschließendem Vergleich des Ergebnisses mit
dem dazu
gehörenden Textblock. Für den Klartextblock m mit
der
Signatur
also durch
mod n = m ?
Angriff auf diese Anwendung
Wird RSA wie beschrieben eingesetzt, kann ein Angreifer Signaturen fälschen, indem er rückwärts rechnet: Er wählt eine Signatur, exponentiert sie modular mit t und erhält den passenden Textblock. Dieser passive Angriff bricht RSA als digitales Signatursystem zwar existenziell, aber nicht selektiv: Der Angreifer kann nicht zu einer gewünschten Nachricht die Signatur fälschen.
Aber auch ein selektives Brechen ist möglich, allerdings ist dafür ein aktiver Angriff notwendig. Zunächst soll jedoch ein weiterer passiver Angriff beschrieben werden:
Kennt der Angreifer die Signaturen
und
unter den Textblöcken
und
,
kann er durch modulare Multiplikation eine
dritte Signatur
und einen passenden Textblock
berechnen:

und

ist eine Signatur von
,
denn es gilt
:
RSA besitzt eine multiplikative Struktur.
Dieser Angriff erlaubt kein selektives Brechen. Dafür ist ein aktiver Angriff notwendig, der im Folgenden beschrieben wird.
- Der Angreifer wählt den Textblock
nach seinen Wünschen. - Er wählt ein beliebiges
, zu dem mod n ein
multiplikatives Inverses
existiert. - Er berechnet
. - Er lässt
und
unterschreiben - und erhält
und
als Ergebnis zurück. - Er berechnet
Die Grundidee dieses Angriffs besteht darin, die gewünschte Nachricht
,
die der Angreifer signieren lassen möchte, so mit einer vorbereiteten
Zufallszahl
zu multiplizieren, dass das Opfer sie unterschreibt, ohne den
tatsächlichen Inhalt zu erkennen. Der Angreifer muss die erhaltene
Signatur dann nur noch durch r dividieren.
Ähnlich erfolgt ein entsprechender Angriff auf RSA als Konzelationssystem: Der Angreifer tarnt den zu entschlüsselnden Schlüsseltextblock durch eine Zufallszahl und lässt ihn entschlüsseln.
Beide Angriffe funktionieren nur, wenn RSA wie beschrieben eingesetzt wird und das Opfer vorgelegte Nachrichten signiert bzw. entschlüsselt, ohne auf ihren Inhalt zu achten. Letzteres ist z.B. dann möglich, wenn ein Programm automatisch agiert.
Die Verhinderung derartiger Angriffe wird in der nächsten Folge beschrieben. Dann geht es auch um den Einsatz von RSA im Rahmen eines hybriden Verschlüsselungsverfahrens.
Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen!
About Security – Übersicht zum aktuellen Thema "Kryptographie – RSA"
- About Security #76: Kryptographie – Das RSA-Verfahren
- About Security #77: Kryptographie – RSA als Authentikationssystem
- About Security #78: Kryptographie – Hybride Verfahren

















Kommentare