Verfahren der Kryptographie, Teil 9: RSA als digitales Signatursystem
Das RSA-Verfahren kann nicht nur wie bereits beschrieben als Verschlüsselungs- bzw. Konzelationssystem verwendet werden, sondern auch als Authentifikationssystem oder digitales Signatursystem. Und das funktioniert so:
Die Bezeichnungen aus der
Beschreibung
des RSA-Verfahrens als Konzelationssystem werden zunächst
umbenannt:
Aus dem Chiffrierschlüssel c wird der Testschlüssel t, und
aus dem Dechiffrierschlüssel d wird der Signierschlüssel s.
Das Signieren geschieht dann durch modulare Exponentiation mit s,
für den Klartextblock m also durch die Berechnung von
ms mod n.
Das Testen erfolgt durch modulare Exponentiation der Signatur mit
t und anschließenden Vergleich des Ergebnisses mit dem dazu
gehörenden Textblock. Für den Klartextblock m mit der
Signatur ms also durch
(ms)t mod n = m ?
Den Einsatz von RSA als digitalem Signatursystem zeigt Abbildung 1.
Abb. 1: RSA als digitales Signatursystem
Angriffe 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.
Es ist noch ein weiterer passiver Angriff möglich:
Kennt der Angreifer die Signaturen m1s und m2s unter den Textblöcken m1 und m2, kann er durch modulare Multiplikation eine dritte Signatur m3s und einen passenden Textblock m3 berechnen:
m3s := m1s * m2s mod n
und
m3 := m1 * m2 mod n
m3s ist eine Signatur von m3, denn es gilt m1s * m2s = (m1 * m2)s, da RSA eine multiplikative Struktur besitzt.
Auch dieser Angriff erlaubt kein selektives Brechen, der Angreifer kann sich nicht gezielt eine Nachricht aussuchen, deren Signatur er fälschen möchte. Zum selektiven Brechen ist ein aktiver Angriff notwendig:
- Der Angreifer wählt den Textblock m3 nach seinen Wünschen.
- Er wählt ein beliebiges m1, zu dem mod n ein multiplikatives Inverses m1-1 existiert.
- Er berechnet m2 := m3 * m1-1 mod n.
- Er lässt m1 und m2 signieren und
- erhält m1s und m2s als Ergebnis zurück.
- Er berechnet m3s := m1s * m2s mod n
Das entspricht ausgeschrieben bzw. eingesetzt:
m1s * m2s mod n = m1s * (m3 * m1-1)s mod n
= m1s * m3s * m1-1s mod
= m3s
Die Grundidee dieses Angriffs besteht darin, die gewünschte Nachricht m3, die der Angreifer signieren lassen möchte, so mit einer vorbereiteten Zufallszahl rt zu multiplizieren, dass das Opfer sie signiert, 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 zum Beispiel dann möglich, wenn ein Programm automatisch agiert.
Wie derartiger Angriffe verhindert werden wird in der nächsten Folge beschrieben. Dann geht es auch um den Einsatz von RSA im Rahmen eines hybriden Verschlüsselungsverfahrens.
Trackbacks
Dipl.-Inform. Carsten Eilers am : Verfahren der Kryptographie, Teil 10: RSA absichern
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Kryptographie - Ein Überblick
Vorschau anzeigen
www.ceilers-news.de am : PingBack
Die Anzeige des Inhaltes dieses Trackbacks ist leider nicht möglich.