• Keine Ergebnisse gefunden

Das asymmetrische Verschl¨ usselungsverfahren RSA

wesentli-che Grund ist, dass eine Weiterverarbeitung von Daten nur stattfinden sollte, wenn der Sender der Daten bekannt ist, also das Schutzziel Datenauthentizit¨at als erstes gepr¨uft wird. Dieses Vorgehen verhindert beispielsweise die Entschl¨usselung von Schadsoftware. Bitte beachten Sie auch, dass Vertraulichkeit ein anderes Schutzziel ist als Datenauthentizit¨at bzw. Integrit¨at. MAC-Verfahren m¨ussen nicht die Vertraulichkeit garantieren, sie k¨onnen problemlos im Klartext versendet werden.

Wir m¨ochten noch einmal auf das kryptographische Grundprinzip Trenne, wo du trennen kannst hinweisen. Konkret bedeutet das f¨ur Secure Messaging, dass f¨ur Verschl¨usselung und MAC verschiedene Schl¨ussel genutzt werden sollten. Wird der Schl¨ussel f¨ur ein Verfahren kompromit-tiert, ist nicht automatisch das zweite Verfahren betroffen.

Zusammengefasst sollte Secure Messaging f¨ur eine Klartextnachrichtmwie folgt genutzt wer-den: Alice nutzt einen Schl¨usselkf¨ur den MAC undef¨ur die symmetrische Verschl¨usselung. Beide Schl¨ussel sind verschieden. Sie versendet die beiden Datenstrukturen

c:=E(m, e) sowie MAC(c, k).

Der Empf¨anger Bob pr¨uft zun¨achst den MAC. Nur wenn dieser g¨ultig ist, wird c entschl¨usselt.

Andernfalls wirdcverworfen.

3.6 Das asymmetrische Verschl¨ usselungsverfahren RSA

Bevor wir die asymmetrische Verschl¨usselung am prominentesten Verfahren RSA erkl¨aren, soll die Funktionsweise der Public-Key-Verschl¨usselung noch einmal kurz dargelegt werden. Wie in Abschnitt 2.2.2 beschrieben, wird die Verschl¨usselung und Entschl¨usselung des Klartextes mit zwei unterschiedlichen Schl¨usseln, einem Schl¨usselpaar, durchgef¨uhrt. Inhaber des Schl¨usselpaares ist derEmpf¨anger. Der Sender nutzt den ¨offentlichen Schl¨ussel des Empf¨angers, um den vertraulich zu

¨ubermittelnden Klartext zu verschl¨usseln. Der Empf¨anger nutzt nach der Erhalt des Chiffretextes seinen privaten Schl¨ussel, um diesen zu entschl¨usseln.

An dieser Stelle wollen wir auf ein g¨angiges Missverst¨andnis hinweisen. Asymmetrische Ver-schl¨usselungsverfahren gelten weder als sicherer noch sind sie ein Ersatz f¨ur symmetrische Ver-fahren. Die Sicherheit der asymmetrischer Verfahren beruht auf einem anderen Paradigma, im Wesentlichen soll das Schl¨usselaustauschproblem gel¨ost werden.

Ein bedeutender Unterschied zu symmetrischen Verfahren stellt der zugrundeliegende Algo-rithmus dar. W¨ahrend bei der symmetrischen Verschl¨usselung Permutationen und Substitutionen als Basisfunktionen im Rahmen von Rundenfunktionen verwendet werden, basiert die Sicherheit eines Public-Key-Verfahrens auf einerEinwegfunktion mit Fallt¨ur. Im Englischen heißt eine solche FunktionTrapdoor one way function. Den BegriffEinwegfunktionkennen Sie bereits aus dem Kon-text von Hashfunktionen (siehe Definition 21). Eine Einwegfunktionf ist durch zwei wesentliche Eigenschaften charakterisiert:

• Funktionswerte von f sind effizient berechenbar.

• Die Umkehrfunktion von f ist praktisch nicht berechenbar. Zu einem Funktionswert f(m) ist es also praktisch nicht m¨oglich,mzu finden.

Im Zusammenhang mit einem Public-Key-Verfahren besitztf nun aber eineFallt¨ur: Mit zus¨ atzli-chem Wissen l¨asst sich auch die Umkehrfunktion effizient berechnen. Dieses Wissen ist der private Schl¨ussel.

Eine heutige Trapdoor one way function basiert auf einem schwierigen mathematischen Pro-blem, meist aus der Zahlentheorie. Ohne Kenntnis des privaten Schl¨ussels ist das Problem praktisch nicht l¨osbar. Kandidaten f¨ur eine solche schwere mathematische Problemstellung sind:

• Faktorisierungsproblem großer nat¨urlicher Zahlen: die Asymmetrie besteht darin, dass die Multiplikation von ganzen Zahlen deutlich einfacher ist als das Faktorisieren (d.h. das Zer-legen einer gegebenen ganzen Zahl in ihre Primfaktoren). Im Englischen spricht man vom Integer Factorisation Problem (IFP).

• Das diskrete Logarithmusproblem: das Potenzieren von Elementen ist deutlich einfacher als die Berechnung eines Logarithmus. Im Englischen spricht man vomDiscrete Logarithm Pro-blem (DLP).

Das am h¨aufigsten eingesetzte und wichtigste Public-Key-Verfahren ist dasRSA-Verfahren. Es wurde 1978 publiziert und ist benannt nach seinen drei Erfindern Ron Rivest (MIT, USA), Adi Shamir (Weizmann Institute, Israel) und Leonard Adleman (Stanford University, USA). Es gilt als das erste bekannte asymmetrische Verschl¨usselungsverfahren. Die Sicherheit von RSA h¨angt zusammen mit der vermuteten Schwierigkeit des Faktorisierens großer Zahlen (die tats¨achliche Schwierigkeit ist also bisher nicht bewiesen). Das Faktorisierungsproblem im Kontext von RSA bedeutet:

• Gegeben: Zusammengesetzte nat¨urliche Zahln=p·q∈N,p,qPrimzahlen.

• L¨osung:Finde die beiden Primfaktorenpundq.

Auf RSA werden wir im Folgenden eingehen. Zuerst werden die notwendigen mathematischen Grundlagen in Abschnitt 3.6.1 vorgestellt. Anschließend stellen wir in Abschnitt 3.6.2 das Prinzip der RSA-Verschl¨usselung vor und verdeutlichen es an einem Beispiel. Zum Abschluss betrachten wir in Abschnitt 3.6.3 noch Sicherheistaspekte von RSA.

3.6.1 Mathematische Grundlagen von RSA

In diesem Abschnitt besch¨aftigen wir uns mit den mathematischen Grundlagen, die RSA oder andere kryptographische Verfahren nutzen und die Sie daher kennen lernen. Ausgangspunkt von RSA ist die Modulorechnung, die wir nun besprechen. Dazu m¨ochten wir als Alltagsbeispiel die umgangssprachliche Angabe der Uhrzeit nennen. Wenn Sie um 15 Uhr nach der Uhrzeit gefragt werden, antworten Sie sicher oft, dass es 3 Uhr sei. Sie geben die Uhrzeit also nur mittels Zahlen im Bereich 1 bis 12 Uhr an. Ist es ’sp¨ater’ als 12 Uhr, ziehen Sie einfach 12 von der Nachmittagsuhrzeit ab. Mathematisch teilen Sie die Uhrzeit durch 12 mit Rest. Diesen Rest geben Sie als Uhrzeit an.

Also entspricht 14 Uhr der Uhrzeit 2 Uhr am Nachmittag und 20 Uhr der Uhrzeit 8 Uhr am Abend. Anders ausgedr¨uckt ist die Differenz der beiden unterschiedlichen Angaben der Uhrzeit durch zw¨olf teilbar: 14−2 ist durch zw¨olf ebenso teilbar wie 20−8. Das f¨uhrt uns zu Definition 25.

Definition 25 (Modulorechnung). Es seiena, b, n∈Zgegeben, n >0. Dann heißt akongruent zubmodulon, fallsb−adurchnteilbar ist. In diesem Fall schreibt man a≡bmodn. Die Zahl nheißt der Modulus.

In unserem Uhrzeitbeispiel gilt n= 12, aund b sind dann die beiden Varianten, die Uhrzeit anzugeben (also im 12- bzw. 24-Stundenzyklus). Allgemein kann man sich klar machen, dass a≡bmodngenau dann gilt, wennaundbjeweils bei Division durchnden gleichen Rest lassen.

In Beispiel 14 sehen wir uns einige konkrete Zahlenbeispiele an.

Beispiel 14(Modulorechnung). 1. 13≡28 mod 5, weil28−13 = 15durch5 teilbar ist.

2. 166≡100 mod 9, weil 100−16 = 84nicht durch9 teilbar ist.

3. 15≡ −13 mod 7, weil −13−15 =−28durch7 teilbar ist.

4. −5≡13 mod 6, weil13−(−5) = 18durch6 teilbar ist.

In einer h¨oheren Programmiersprache gibt es denModulooperator, geschrieben als%. Er erh¨alt als Eingabe eine ganze Zahlaund eine nat¨urliche Zahln. Der Aufrufa % nliefert als R¨uckgabe den Rest der ganzzahligen Divisiona / n, wobei der Rest das gleiche Vorzeichen hat wiea.

3.6. DAS ASYMMETRISCHE VERSCHL ¨USSELUNGSVERFAHREN RSA 61 Sehen wir uns wichtige Rechenregeln der Modulorechnung an. Dazu seiena, b, c, d, n∈Z gege-ben,n >0. Es geltea≡cmodnundb≡dmodn. Dann gilt:

a+b ≡ c+dmodn (3.3)

a·b ≡ c·dmodn. (3.4)

Die Formeln sagen aus, dass wir zur Berechnung der Summe oder des Produkts modulonfrei sind in der Wahl, ob wir a oder c bzw. b oderd w¨ahlen. Zu gegebenen aund b werden wir uns also immer Zahlen c und d aussuchen, f¨ur die die Berechnung sehr einfach ist. Typischerweise w¨ahlt man einfach den Rest, der sich bei Division durch nergibt. Auch dazu geben wir in Beispiel 15 eine Beispielrechnung an.

Beispiel 15(Rechenregeln der Modulorechnung). Es seien die beiden ganzen Zahlena= 345und b= 6789sowie der Modulusn= 5gegeben. Wir sollena+bmodn sowiea·bmodn bestimmen.

Dazu nutzen wir die Rechenregeln der Modulorechnung. Zun¨achst istadurchnteilbar, wir w¨ahlen also c= 0 (denn a ist durch nmit Rest 0 teilbar). Weiterhin w¨ahlen wir d= 4(denn b l¨asst bei Division durchn den Rest4). Damit erhalten wir:

1. 345 + 6789≡0 + 4 mod 5, also a+b≡4 mod 5.

2. 345·6789≡0·4 mod 5, alsoa·b≡0 mod 5.

Kontrollaufgabe 21(Modulorechnung). Bestimmen Sie bitte jeweils ohne technische Hilfsmittel die kleinste nicht-negative ganze Zahl a, die jeweils die gegebene Kongruenz l¨ost:

1. a≡307 mod 30 2. a≡ −307 mod 30 3. a≡12345678 mod 3.

Kontrollaufgabe 22 (Effiziente Modulorechnung). Berechnen Sie ohne technische Hilfsmittel:

1. 3456 + 9875 mod 3 2. −100·57 mod 11

Im RSA-Verfahren spielen Berechnungen der Form memodneine wichtige Rolle. Dabei istn eine große ganze Zahl. Diese Berechnung heißtmodulare Exponentiation. Um den Wertmemodn effizient zu berechnen, kann die folgende Regel angewendet werden: anstatt zuerst die (exorbitant) große ganze Zahl me zu berechnen und erst am Ende modulo n zu reduzieren, kann nach den Rechenregeln f¨ur die Modulorechnung in jedem Zwischenschritt modulon reduziert werden. Das Beispiel 16 zeigt eine solche Umformung.

Beispiel 16(Modulare Exponentation). Wir berechnen den Ausdruck38mod 7in einer effizien-ten Weise:

38 = 34·34 = 81·81

≡ 4·4 = 16

≡ 2 mod 7.

Dabei haben wir81≡4 mod 7sowie 16≡2 mod 7 ausgenutzt.

Eine effiziente RSA-Implementierung minimiert die Anzahl der Multiplikationen modulo n.

Dazu gibt es einen einfachen Algorithmus, derschnelle Exponentiation heißt. Wir werden diesen hier nicht erkl¨aren, bei Interesse finden Sie diesen in jeder Standardliteratur.

3.6.2 RSA-Verschl¨ usselung

Die RSA-Verschl¨usselung besteht – wie auch ein allgemeines Public-Key-Verschl¨usselungsverfahren – aus drei Schritten. Dazu nehmen wir wie ¨ublich an, dass Alice ein elektronisches Dokumentm verschl¨usselt – und damit vertraulich – an Bob schicken will. Die einzelnen Schritte daf¨ur sind:

1. Setup: das ist ein vorbereitender Schritt, der unabh¨angig von der Verschl¨usselung des Do-kumentsmist. Im Setup wird das Schl¨usselpaar erzeugt.

2. Verschl¨usselung: Alice verschl¨usseltmzum zugeh¨origen Chiffretextc und sendet diesen an Bob.

3. Entschl¨usselung: Bob entschl¨usselt c zum zugeh¨origen Klartext m. Dazu nutzt er seinen geheimen Schl¨ussel.

Wir erl¨autern die drei Schritte im Folgenden und beginnen mit dem Setup. Bob f¨uhrt folgende Schritte durch:

1. Er w¨ahlt zwei ungef¨ahr gleich große, unterschiedliche Primzahlenpundqaus. Diese h¨alt er geheim. Daher schreiben wir diese rot.

2. Bob berechnet auspundqseinenRSA-Modulusn=p·q. Er ver¨offentlichtn. Daher schreiben wir den Modulus gr¨un.

3. Bob w¨ahlt seinen ¨offentlichen Exponenten e aus: diesen Exponenten ben¨otigt die Senderin Alice beim Verschl¨usseln. Damit der unten dargestellte Ver- und Ent-schl¨usselungsalgorithmus funktioniert, muss eine zahlentheoretische Bedingung erf¨ullt sein:

ggT(e,(p−1)·(q−1)) = 1. (3.5)

Das bedeutet, dass der gr¨oßte gemeinsame Teiler der beiden Zahlenesowie (p−1)·(q−1) den Wert 1 hat.

4. Bob berechnet seinengeheimen Exponentend: der geheime Exponent ist die eindeutige Zahl dmit

e·d≡1 mod (p−1)·(q−1) 1≤d≤(p−1)·(q−1). (3.6) Wichtig ist die Beobachtung, dass zwarnunde¨offentlich bekannt sind, dass aber die Zahld in Gleichung (3.6) nur von Bob bestimmt werden kann, weil zur Berechnung von (p−1)(q−1) die Kenntnis der geheim gehaltenen Primzahlenpsowieqnotwendig ist. Kenntnis vonpoder q ist die Fallt¨ur der RSA Trapdoor one way function.

5. Bobs ¨offentlicher Schl¨ussel ist das Paar (n,e), sein geheimer Schl¨ussel ist (p,q,d). Zwar wer-denpsowieqkonzeptionell nicht weiter ben¨otigt, sobald Bobdkennt, aus Effizienzgr¨unden speichern aber viele Anwendungen auch die beiden Primfaktoren, weil die Berechnungen zun¨achst modulo dieser beiden Primzahlen durchgef¨uhrt werden.

Alice besorgt sich Bobs ¨offentlichen Schl¨ussel (n,e) und verschl¨usselt damit ihren Klartextm wie folgt:

c≡memodn. (3.7)

Mittels RSA k¨onnen also Klartexteinheiten 1≤ m ≤ n verschl¨usselt werden. Ist eine Klartext-einheit gr¨oßer, m¨ussen wir einen der bekannten Blockmodi verwenden. Den Chiffretext c schickt Alice ¨uber ein ungesichertes Netzwerk an Bob, daher giltcals ¨offentlich bekannt.

Will Bob diese vertrauliche Nachricht von Alice lesen, dann entschl¨usselt er den erhaltenen Chiffretextcmit Hilfe seines geheimen Schl¨ussels (p,q,d) wie folgt:

m≡cd modn. (3.8)

3.6. DAS ASYMMETRISCHE VERSCHL ¨USSELUNGSVERFAHREN RSA 63 Wie oben erw¨ahnt, werden aus Effizienzgr¨unden oft zun¨achstm≡cdmodpsowiem≡cdmodq berechnet und daraus das Ergebnis modulonbestimmt (denn die Primfaktoren vonnhaben nur ungef¨ahr halbe Bitl¨ange). Dazu ben¨otigt die Applikation aber die beiden Primteiler, weshalb wir sie zu dem privaten Schl¨ussel hinzuz¨ahlen.

Um die Korrektheit von RSA zu zeigen, ben¨otigt man weiteres zahlentheoretisches Wissen.

Letztlich sind das aber relativ einfache und altbekannte mathematische Aussagen, die dabei re-levant sind. Die zentrale Eigenschaft ist, dass f¨ur ggT(m,n) = 1 die Eigenschaft m(p−1)(q−1) ≡ 1 modngilt. Wir setzenϕ(n)= (p−1)(q−1) und erhalten

(me)d=me·d=m1+k·ϕ(n)=m1·mk·ϕ(n)=m·

mϕ(n)k

≡m·1k≡mmodn.

F¨ur alle weiteren Klartextemmit ggT(m,n)>1 gilt diese Beziehung auch, sie m¨usste aber noch getrennt bewiesen werden.

Ein Beispiel zur RSA-Verschl¨usselung geben wir in Beispiel 17 an. Der Einfachheit halber nehmen wir sehr kleine Zahlen, die RSA-Parameter sind daher weit davon entfernt, praktisch sicher zu sein.

Beispiel 17 (RSA-Verschl¨usselung). Im ersten Schritt f¨uhren wir das RSA-Setup durch und ge-ben kleine RSA-Parameter an. F¨ur die Primzahlen p und q w¨ahlen wir p = 11 und q = 17.

Hieraus ergibt sich die RSA-Zahl n = p·q = 11·17 = 187. Nun m¨ussen wir den ¨offentlichen Verschl¨usselungsexponenten e bestimmen. Hierbei gilt die Voraussetzung 1 < e < ϕ(n) mit ϕ(n)= (p−1)(q−1). Der ¨offentliche Exponent muss teilerfremd zuϕ(n)sein, d.h. ggT(e,ϕ(n)) = 1 erf¨ullen. Um diese Bedingungn pr¨ufen zu k¨onnen, geben wir die Primfaktorisierung vonϕ(n)an:

ϕ(n)= (11−1)·(17−1) = 10·16 = 25·5.

F¨ure= 3,e= 7,e= 9usw. ist die Bedingung erf¨ullt. Wir w¨ahlen e= 7. Damit ist die Erstellung des ¨offentlichen Schl¨ussels (n,e)abgeschlossen.

Als n¨achstes muss der private Exponentdberechnet werden. Dieser erf¨ullt nach Gleichung(3.6) die Kongruenz

7·d≡1 mod 160.

In der Praxis verwendet man zur Berechnung von d den erweiterten Euklidischen Algorithmus.

Dieser liefert d= 23. Wir pr¨ufen das nach und erhalten 7·23 = 161≡1 mod 160.

Damit erhalten wir f¨ur das Schl¨usselpaar:

• Public Key: (n,e) = (187,7).

• Private Key (p,q,d) = (11,17,23).

Nachdem der ¨offentliche Schl¨ussel (187,7) an den Sender der Nachricht ¨ubertragen wurde, ver-schl¨usselt dieser die Nachricht m =kryptographie. Jedes Klartextzeichen stellt er entsprechend der folgenden Tabelle als eine Zahl dar:

a 3 h 10 o 17 v 24

b 4 i 11 p 18 w 25

c 5 j 12 q 19 x 26

d 6 k 13 r 20 y 27

e 7 l 14 s 21 z 28

f 8 m 15 t 22

g 9 n 16 u 23

Der mittels Dezimalzahlen kodierte Klartext lautet dann

mdec= 13 20 27 18 22 17 9 20 3 18 10 11 7.

Der Sender verschl¨usselt jedes Zeichen mittels der RSA-Verschl¨usselungci=mei modn. F¨ur den Klartextbuchstaben kergibt sich beispielsweise das Geheimtextzeichen

c0≡137= 131·132·134≡106 mod 187.

Der resultierende Geheimtext lautet

c= 106 147 124 171 44 85 70 147 130 171 175 88 182.

F¨ur die Entschl¨usselung der Nachricht wird f¨ur jedes Zeichenmi≡cdi modnberechnet.

3.6.3 Sicherheit von RSA

Nachdem Sie nun die Funktionsweise der RSA-Verschl¨usselung verstanden haben, gehen wir in diesem Abschnitt auf die Sicherheit des RSA-Verfahrens ein. Insbesondere stellen wir dar, wie ein Angreifer das RSA-Verfahren brechen kann und welche konkreten RSA-Parameter sich daraus ergeben.

Der Angreifer kennt die ¨offentlich bekannten Zahlenc,nunde, sein Ziel ist es, die ganze Zahl m zu berechnen, diec≡memodn erf¨ullt. Diese Aufgabe des Angreifers heißtRSA-Problem, es l¨asst sich wie folgt formulieren: finde zu einer vorgegebenen Zahlceinee-te Wurzel modulonvon c.

Doch wie kann der Angreifer das RSA-Problem l¨osen? Das RSA-Problem h¨angt eng mit dem Faktorisierungsproblem zusammen. Kennt der Angreifer n¨amlich die Primteiler von der RSA-Zahl n, dann kann erϕ(n)= (p−1)(q−1) und damit gem¨aß Gleichung (3.6) den geheimen Exponenten dberechnen. Der heute bekannte, effizienteste Weg zur L¨osung des RSA-Problems sieht also wie folgt aus:

1. L¨ose das Faktorisierungsproblem: Das heißt, berechne die Primfaktoren pund qder RSA-Zahln.

2. Berechne ϕ(n)= (p−1)·(q−1).

3. Berechne dgem¨aß Gleichung (3.6) mite·d≡1 modϕ(n).

4. Rekonstruiere den Klartext mittels m≡cdmodn.

Auch f¨ur RSA gilt die Sicherheitsschwelle von 100 Bit, d.h. der beste Faktorisierungsalgorith-mus Faktorisierungsalgorith-muss mindestens 2100elementare Operationen ben¨otigen, umnzu faktorisieren. Ein einfacher Ansatz w¨are die Probedivision:

• fori= 1 to√ n

• ifn/i∈Nstopp

• returni,n/i

Eine elementare Operation f¨ur die Probedivision ist ein Schleifendurchlauf. Um die Sicherheits-schwelle zu erreichen, muss daher √

n ≥ 2100 gelten, also n ≥ 2200. Es gibt aber deutlich bes-sere Faktorisierungsalgorithmen. Der heute bekannteste, effizienteste Faktorisierungsalgorithmus ist das allgemeine Zahlk¨orpersieb (im Englischen General Number Field Sieve, GNFS). Um das Sicherheitsniveau 100 Bit zu erreichen, ben¨otigen wir Primzahlen der Gr¨oße ca. 21000. Weil in der Informatik gerne mit Zweierpotenzen gearbeitet wird, erhalten wir f¨ur heutige sichere RSA-Parameter die in Merksatz 5 angegebene Gr¨oßenordnung.

3.6. DAS ASYMMETRISCHE VERSCHL ¨USSELUNGSVERFAHREN RSA 65 Merksatz 5 (Sichere RSA-Parameter). Ist (n,e) ein ¨offentlicher RSA-Schl¨ussel, dann ist aus heutiger Sicht die folgende Bedingung einzuhalten:

p≈21024≈q ⇒ n≈22048. nsollte also eine Bitl¨ange von mindestens2048haben.

An die Gr¨oße von e gibt es keine Sicherheitsanforderung (aber Gleichung (3.5) muss erf¨ullt werden). Aus Effizienzgr¨unden wird f¨ur egerne eine kleine Primzahl mit einfacher Zweierdarstel-lung gew¨ahlt, z.B.e= 24+ 1 = 17odere= 216+ 1 = 65537.

Wichtig f¨ur die Sicherheit von RSA ist, dass d in der Gr¨oßenordnung von n liegt. Diese Ei-genschaft ist aber typischerweise von selbst erf¨ullt (auch bei kleineme).

In Beispiel 18 gehen wir die einzelnen Schritte der L¨osung des RSA-Problems mittels des Faktorisierungsproblems an Hand von kleinen Zahlen durch.

Beispiel 18 (L¨osung des RSA-Problems). Ein Angreifer belauscht die vertrauliche Kommunika-tion zwischen Alice und Bob. Ihm liegt Bobs ¨offentlicher Schl¨ussel (n,e) sowie der Chiffretext c vor:

Bobs ¨offentlicher Schl¨ussel: (n,e) = (391,17), Chiffretext: c= 236.

Im ersten Schritt faktorisiert der Angreifer die RSA-Zahln. Wir wenden nicht das Zahlk¨orpersieb an, sondern finden die Primteiler mittels Probedivision. Es giltn= 17·23. Somit gilt p= 17und q= 23. Damit ergibt sich

ϕ(n)= (p−1)·(q−1) = 16·22 = 352.

Im n¨achsten Schritt ist Bobs privater Exponent d zu bestimmen mit d·e ≡ 1 modϕ(n). Dazu nutzt der Angreifer den erweiterten Euklidischen Algorithmus und erh¨alt d≡ 145 mod 352. Der folgende Test zeigt die Korrektheit:

d·e= 145·17 = 2465 = 7·352 + 1≡1 mod 352.

Abschließend berechnet der Angreifer den Klartext mittels

m≡cd≡236145= 23627+24+1≡23627·23624·236≡151 mod 391.

Die L¨osung des betrachteten RSA-Problems und damit der gesuchte Klartext lautet m= 151.

Zwar ist die theoretische Laufzeit des Zahlk¨orpersiebs als bestem Faktorisierungsverfahren bekannt, zur Bestimmung der tats¨achlichen praktischen Leistungsf¨ahigkeit von Faktorisierungsal-gorithmen gab es einen Wettbewerb, RSA-Zahlen zu faktorisieren5. Tabelle 3.3 zeigt einige RSA-Zahlen dieser RSA-Challenge mit einer L¨ange ab 530 Bit. Wie Sie sehen, ben¨otigt man einen entsprechend großen RSA-Modulus, damit das Faktorisierungsproblem f¨ur den Angreifer prak-tisch nicht l¨osbar ist. Tabelle 3.3 zeigt auch, dass mit der empfohlenen Bitl¨ange aus Merksatz 5 ein hinreichend großer Sicherheitsabstand erreicht wird.

Die Faktorisierung der RSA-Zahl RSA-768 wurde im Zeitraum August 2007 bis Dezember 2009

5http://www.emc.com/emc-plus/rsa-labs/historical/the-rsa-factoring-challenge.htm

RSA-Zahl (Bit) Status Datum der Faktorisierung Preisgeld

530 faktorisiert 2003 5.000 USD

576 faktorisiert 2003 10.000 USD

640 faktorisiert 2005 20.000 USD

663 faktorisiert 2005 20.000 USD

704 nicht faktorisiert – 30.000 USD

768 faktorisiert 2009 50.000 USD

1024 nicht faktorisiert – 100.000 USD

Tabelle 3.3: Faktorisierte RSA-Zahlen zwischen 530 und 1024 Bit.

durchgef¨uhrt. Die Zahl heißt RSA-768, weil der Modulusndie Bitl¨ange 768 besitzt. Es gilt n = 123018668453011775513049495838496272077285356959533479219732245\

215172640050726365751874520219978646938995647494277406384592519\

255732630345373154826850791702612214291346167042921431160222124\

0479274737794080665351419597459856902143413

= 334780716989568987860441698482126908177047949837137685689124313\

88982883793878002287614711652531743087737814467999489·

367460436667995904282446337996279526322791581643430876426760322\

83815739666511279233373417143396810270092798736308917

= p·q.

Die Schl¨ussell¨angen m¨ussen immer wieder kritisch gepr¨uft werden und neuen Entwicklungen Rechnung tragen. Allgemein sind Fortschritte in folgenden Bereichen zu erwarten:

1. Algorithmischer Fortschritt: Ein Forscher findet einen neuen, effizienteren Faktorisierungs-algorithmus. Zum Beispiel ist das Zahlk¨orpersieb effizienter als das Quadratische Sieb.

2. Fortschritt konventioneller Hardware: Nach dem Mooreschen Gesetz verdoppelt sich die Re-chenleistung alle 18 Monate. Das bedeutet, dass die Faktorisierung auf einer neuen Rechner-generation nach 18 Monaten nur noch ca. die H¨alfte der Zeit ben¨otigt.

3. Neuartige Hardware: Durch die Realisierung neuartiger Hardware auf Basis eines anderen Berechnungsmodells kann sich die Rechenzeit dramatisch verk¨urzen. So w¨urde die Realisie-rung eines Quantencomputers das Faktorisierungsproblem deutlich vereinfachen. Sollte ein solcher Quantencomputer mit hinreichend großen Registern gebaut werden k¨onnen, w¨are RSA gebrochen, weil f¨ur Quantencomputer effiziente Faktorisierungsmethoden bekannt sind.

Ob das aber so kommen wird, ist seit Jahren unklar.

Zusammengefasst gilt, dass die L¨osung des RSA-Problems h¨ochstens so schwer ist wie die Zerlegung der RSA-Zahl in ihre Primfaktoren. Denn aktuell l¨osen wir das RSA-Problem mittels Faktorisierung. Allerdings ist bis heute nicht bewiesen, ob das RSA-Problem oder das Faktorisie-rungsproblem wirklich schwer zu l¨osen ist. Jedoch ist zur Zeit kein Algorithmus bekannt, der das RSA-Problem oder die Faktorisierung von großen RSA-Zahlen in einem geeigneten zeitlichen Maß durchf¨uhren kann.

Kontrollaufgabe 23 (RSA-Problem vs. Faktorisierungsproblem). Beschreiben Sie, in welcher Beziehung das Faktorisierungsproblem und das RSA-Problem zueinander stehen.