Zum Inhalt springen

Kryptologie/Angriff auf das RSA-Verschlüsselungsverfahren

Aus Wikiversity


Einleitung

In einigen Spezialfällen kann man das RSA-Kryptosystem brechen, ohne das Faktorisierungsproblem gelöst zu haben[1][2]. Ein solches Beispiel von vielen ist der Low-Exponent-Angriff[3]. Es handelt sich dabei um keinen direkten Angriff auf das RSA-Kryptosystem. Stattdessen nutzt man die falsche Verwendung des RSA-Kryptosystems in bestimmten Kontexten[4]. Wir wollen dies am Beispiel des Low-Exponent-Angriffs veranschaulichen[5].

Low-Exponent-Angriff

Formal beruht der Low Exponent-Angriff auf dem folgenden Satz[5]:

Satz Low-Exponent-Angriff

Seien und paarweise teilerfremd, sowie mit , wobei .

Es gelte außerdem nach dem Verschlüsselungsalgorithmus des RSA-Verschlüsselungsverfahrens mit .

Dann gilt:

[5].

Beweis Low-Exponent-Angriff

Teilerfremdheit und chinesischer Restsatz
Teilerfremdheit
Zwei ganze Zahlen und , wobei mindestens einer der beiden Zahlen ungleich Null ist,

heißen teilerfremd, wenn [6]. Betrachten wir mehr als zwei Zahlen, dann

nennen wir diese paarweise teilerfremd, wenn je zwei beliebige von diesen Zahlen zueinander teilerfremd sind[7][6].

Chinesische Restsatz
Seien paarweise teilerfremd in , und .

Dann existiert eine Lösung , sodass für jedes die Kongruenz

gilt.

Darüber hinaus ist jedes genau dann eine Lösung der Kongruenz ,

wenn gilt mit [8].

Betrachten wir eine Zahl .

Es gilt nach Voraussetzung und .

Es ist also und .

Dieses System hat nach dem chinesischen Restsatz die eindeutige Lösung

[5].

Low-Exponent-Angriff auf das RSA-Verschlüsselungsverfahren

Angenommen ein Sender schickt einen Klartext an mehrere Empfänger und unter diesen Empfängern , und gibt es mindestens Empfänger, die - beispielsweise aus Effizienzgründen - den Verschlüsselungsexponenten verwenden. Es ist einem Angreifer, der die zugehörten Geheimtexten , und abfängt, möglich den Klartext mit Hilfe des chinesischen Restsatzes zu bestimmen, denn der Angreifer weiß, dass folgendes System existiert:

,

,

.

Wir nehmen an, dass , und teilerfremd sind, da die Primfaktoren von , und zufällig gewählt wurden. Außerdem soll gelten , da wir sonst die Bedingungen des RSA-Verschlüsselungsverfahren verletzen.

Nun wendet der Angreifer den chinesischen Restsatz an und erhält die Lösung des Systems mit [3].

Es kann den Geheimtext nun, nach dem Satz zum Low-Exponent-Angriff, entschlüsseln, indem der Angreifer nach auflöst:

.

Bemerkung: Es gibt noch viele weitere potenzielle Angriffe auf das RSA-Kryptosystem und bei Interesse kann man diverse Übersichtsarbeiten, wie beispieleweise Twenty Years of Attacks on the RSA Cryptosystem von D. Boneh[9] studieren.

Lernaufgabe

Aufgabe 1

Nützliche Definitionen und Sätze
Chinesische Restsatz
Seien paarweise teilerfremd in , und .

Dann existiert eine Lösung , sodass für jedes die Kongruenz

gilt.

Darüber hinaus ist jedes genau dann eine Lösung der Kongruenz ,

wenn gilt mit [8].

Erweiterte euklidische Algorithmus
Der erweiterte euklidische Algorithmus wird auf zwei Zahlen angewandt und besteht aus zwei Teilen:
  1. Berechnung des (auch als euklidischer Algorithmus bekannt[10]),
  2. Berechnung zweier ganzer Zahlen und , welche die Gleichung erfüllen[11].
Kongruenz
Seien und , dann gilt [12].
Satz Low Exponent Angriff
Seien und paarweise teilerfremd, sowie mit , wobei .

Es gelte außerdem nach dem Verschlüsselungsalgorithmus des RSA-Verschlüsselungsverfahrens

mit . Dann gilt: [5].

Sie sind Kryptoanalyst in einem Kriminalfall und sollen herausfinden um wie viel Uhr die kriminellen Übergabe heute stattfinden wird.

Sie haben folgende Geheimtexte mit vermutlich identischem Klartext abgefangen und die zugehörige Kongruenz aufgestellt. Alle drei Geheimtexte wurden mit dem Verschlüsselungsexponenten verschlüsselt.

Berechnen Sie mittels des Low-Exponent-Angriff den Klartext.

Lösung
Wir nehmen an, dass die Voraussetzungen des Low-Exponent-Angriffs erfüllt sind.

Es gilt also und .

Wir können nun den chinesischen Restsatz anwenden und wir stellen die zugehörigen Gleichungen auf:

, da ,

, da ,

, da .

Die gesuchte Lösung mit lautet:

.

Um die Lösung zu bestimmen, wenden wir den erweiterten euklidischen Algorithmus an:

Wir beginnen mit

, wegen

, wegen

.

Nun folgt die zweite Gleichung

, wegen

, wegen

, wegen

Zuletzt noch die dritte Gleichung

, wegen

Wir erhalten die Lösung

.

Man kann nun optional kontrollieren, dass die folgenden Kongruenzen tatsächlich stimmen.

Da , müssen wir noch ein kleineres mit finden.

Da nach dem Satz zum Low-Exponent-Angriff gilt:

.

Die Übergabe wird folglich vermutlich um 19 Uhr stattfinden.

Aufgabe 2

Erläutern Sie bis zu zwei Möglichkeiten, wie der Low-Exponent-Angriff in Aufgabe 1 hätte unterbunden werden können.

Lösung
1. Möglichkeit

Betrachtet man den Satz zum Low-Exponent-Angriff, so stellt man fest, dass für den Low-Exponent-Angriff die Anzahl der Kongruenzen mit identischem Verschlüsselungsexponenten mindestens ebenfalls dem Verschlüsselungsexponenten entsprechen muss. Man könnte also einen größeren Exponenten wählen, sodass die Anzahl der Kongruenzen des Systems kleiner ist.

Bemerkung: In der Praxis gilt als besonders gut geeignet, da die Zahl einen guten Kompromiss aus maximaler Sicherheit und effizientem Rechnen darstellt[13].

2. Möglichkeit

Alternativ kann man eine andere Voraussetzung des Satzes zum Low-Exponent-Angriff verletzten, nämlich die Bedingung, dass der Klartext für alle Kongruenzen des System identisch sein muss. Man könnte also den Inhalt eines jeden Klartextes personalisieren, beispielsweise durch eine personalisierte Anrede, damit .

Bemerkung: Die Verletzung der Voraussetzung kann jedoch sogar erreicht werden, ohne den tatsächlichen Inhalt des Klartextes zu verändern. Hierfür wird in der Praxis ein variables Element (z.B. Zeitstempel, Zufallszahl, etc.) mit dem Klartext verrechnet und erst danach mit dem Verschlüsselungsexponenten verschlüsselt[3].

Lernempfehlung

Kursübersicht
Übergeordnete Lerneinheit
11: Kryptoanalyse
Vorherige Lerneinheit Aktuelle Lerneinheit
12: Sicherheit des RSA-Kryptosystems 13: Angriff auf das RSA-Verschlüsselungsverfahren

Literatur

  1. Seite „RSA-Kryptosystem“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 15. Dezember 2019, 19:39 UTC. URL: https://de.wikipedia.org/w/index.php?title=RSA-Kryptosystem&oldid=194933568 (Abgerufen: 27. Januar 2020, 14:29 UTC; Formulierung verändert)
  2. Boneh, D. (1999). Twenty Years of Attacks on the RSA Cryptosystem. 46(2), 11. S. 203.
  3. a b c Moore, J. H. (1988). Protocol failures in cryptosystems. Proceedings of the IEEE, 76(5) (S. 594–602). S. 597.
  4. Moore, J. H. (1988). Protocol failures in cryptosystems. Proceedings of the IEEE, 76(5) (S. 594–602). S. 594.
  5. a b c d e Buchmann, J. (2016). Einführung in die Kryptographie (6. Aufl.). Springer. S. 175.
  6. a b Burton, D. M., & Dalkowski, H. (2005). Handbuch der elementaren Zahlentheorie mit über 1000 Übungsaufgaben und ihren Lösungen. Heldermann Verlag. S. 26.
  7. Seite „Teilerfremdheit“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 26. September 2019, 13:33 UTC. URL: https://de.wikipedia.org/w/index.php?title=Teilerfremdheit&oldid=192615323 (Abgerufen: 10. Januar 2020, 13:56 UTC; Formulierung verändert)
  8. a b Shoup, V. (2008). A Computational Introduction to Number Theory and Algebra (2. Aufl.). S. 23.
  9. https://www.ams.org/notices/199902/boneh.pdf 21.01.2020 15:05
  10. Lehman, E., Leighton, T., & Meyer, A. R. (2010). Mathematics for computer science. Technical report, 2006. Lecture notes. S. 249.
  11. Kurzweil, H. (2008). Endliche Körper: Verstehen, rechnen, anwenden (2., überarb. Aufl). Springer. S. 57.
  12. Buchmann, J. (2016). Einführung in die Kryptographie (6. Aufl.). Berlin, Heidelberg: Springer. S. 37.
  13. Blakley, B., & Blakley, G. R. (1979). SECURITY OF NUMBER THEORETIC PUBLIC KEY CRYPTOSYSTEMS AGAINST RANDOM ATTACK, II. Cryptologia, 3(1) (S. 29–42). S. 38.