Kryptologie/Angriff auf das RSA-Verschlüsselungsverfahren

Aus testwiki
Zur Navigation springen Zur Suche springen


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 e,c und N1,N2,Ne paarweise teilerfremd, sowie m mit 0mNj, wobei 0je.

Es gelte außerdem c=memodNj nach dem Verschlüsselungsalgorithmus des RSA-Verschlüsselungsverfahrens mit 0c<N1N2Ne.

Dann gilt:

c=me[5].

Beweis Low-Exponent-Angriff

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

heißen teilerfremd, wenn ggT(a,b)=1[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 c1,c2,,cv paarweise teilerfremd in , v und a1,a2,,av.

Dann existiert eine Lösung b, sodass für jedes i{1,2,,v} die Kongruenz

baimodci gilt.

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

wenn gilt gbmodc mit c=c1c2cv[8].

Betrachten wir eine Zahl c=me.

Es gilt nach Voraussetzung 0mNj und 0je.

Es ist also cmemodNj und 0c1<N1N2Ne.

c1memodN1

c2memodN2

cememodNe

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

c=c[5].

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

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

c1=m3modN1,

c2=m3modN2,

c3=m3modN3.

Wir nehmen an, dass N1, N2 und N3 teilerfremd sind, da die Primfaktoren von N1, N2 und N3 zufällig gewählt wurden. Außerdem soll gelten m<min{N1N2N3}, da wir sonst die Bedingungen des RSA-Verschlüsselungsverfahren verletzen.

Nun wendet der Angreifer den chinesischen Restsatz an und erhält die Lösung c=me des Systems ccimodNi mit i{1,2,3}[3].

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

m=c3.

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 c1,c2,,cv paarweise teilerfremd in , v und a1,a2,,av.

Dann existiert eine Lösung b, sodass für jedes i{1,2,,v} die Kongruenz

baimodci gilt.

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

wenn gilt gbmodc mit c=c1c2cv[8].

Erweiterte euklidische Algorithmus
Der erweiterte euklidische Algorithmus wird auf zwei Zahlen a,b angewandt und besteht aus zwei Teilen:
  1. Berechnung des ggT(a,b)=sa+tb (auch als euklidischer Algorithmus bekannt[10]),
  2. Berechnung zweier ganzer Zahlen s und t, welche die Gleichung ggT(a,b)=sa+tb erfüllen[11].
Kongruenz
Seien a,b und m, dann gilt abmodmm(ab)[12].
Satz Low Exponent Angriff
Seien e,c und N1,N2,Ne paarweise teilerfremd, sowie m mit 0mNj, wobei 0je.

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

mit 0c<N1N2Ne. Dann gilt: c=me[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 e=3 verschlüsselt.

m325mod51

m334mod65

m36mod77

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 ggT(51,65)=ggT(51,77)=ggT(65,77)=1 und m<51.

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

1=r151+s15005, da C1=6577,

1=r265+s23927, da C2=5177,

1=r377+s33315, da C3=5165.

Die gesuchte Lösung mit ei=siCi lautet:

c:=i=13ciei.

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

Wir beginnen mit 1=r151+s15005

5005=9851+7

51=77+2

7=32+1

1=732

1=73(5177), wegen 5005=9851+7

1=351+227

1=351+22(50059851), wegen 5005=9851+7

1=215951+225005

r1=2159,s1=22

e1=225005=110110.

Nun folgt die zweite Gleichung 1=r265+s23927

3927=6065+27

65=227+11

27=211+5

11=25+1

1=1125

1=112(27211), wegen 27=211+5

1=511227

1=5(65227)227, wegen 65=227+11

1=5651227

1=56512(39276065), wegen 3927=6065+27

1=72565123927

r2=725,s2=12

e2=123927=47124

Zuletzt noch die dritte Gleichung 1=r377+s33315

3315=4377+4

77=194+1

1=77194

1=7719(33154377), wegen 3315=4377+4

1=81877193315

r3=818,s3=19

e3=193315=62985

Wir erhalten die Lösung

c:=i=13ciei=25110110+3447124+6(62985)=772624.

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

77262425mod51

77262434mod65

7726246mod77

Da 772624>255255=516577, müssen wir noch ein kleineres c mit c[772624]255255 finden.

c=7726246859mod255255

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

m=c3

m=68593=685913=19.

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 e mindestens ebenfalls dem Verschlüsselungsexponenten e entsprechen muss. Man könnte also einen größeren Exponenten wählen, sodass die Anzahl der Kongruenzen des Systems kleiner e ist.

Bemerkung: In der Praxis gilt e=216+1=65537 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 m 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 m1m2.

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. 3,0 3,1 3,2 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. 5,0 5,1 5,2 5,3 5,4 Buchmann, J. (2016). Einführung in die Kryptographie (6. Aufl.). Springer. S. 175.
  6. 6,0 6,1 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. 8,0 8,1 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.