www.wikidata.de-de.nina.az
RSA Rivest Shamir Adleman ist ein asymmetrisches kryptographisches Verfahren das sowohl zum Verschlusseln als auch zum digitalen Signieren verwendet werden kann 1 Es verwendet ein Schlusselpaar bestehend aus einem privaten Schlussel der zum Entschlusseln oder Signieren von Daten verwendet wird und einem offentlichen Schlussel mit dem man verschlusselt oder Signaturen pruft Der private Schlussel wird geheim gehalten und kann nicht mit realistischem Aufwand aus dem offentlichen Schlussel berechnet werden Inhaltsverzeichnis 1 Geschichte 2 Verfahren 2 1 Einwegfunktionen 2 2 Erzeugung des offentlichen und privaten Schlussels 2 2 1 Beispiel 2 3 Verschlusseln von Nachrichten 2 3 1 Beispiel 2 4 Entschlusseln von Nachrichten 2 4 1 Beispiel 2 5 Signieren von Nachrichten 2 6 RSA mit dem Chinesischen Restsatz 2 7 RSA ist kein Primzahltest 3 Sicherheit 3 1 Beziehung zwischen RSA und dem Faktorisierungsproblem 3 2 Schwierigkeit des Faktorisierungsproblems 3 3 Schwierigkeit des RSA Problems 3 4 Angriffe gegen das unmodifizierte RSA Verfahren Textbook RSA 3 5 Padding 3 6 Chosen Ciphertext Angriff 3 7 Sicherheit hybrider Verfahren 4 Vollstandiges Beispiel 4 1 Anmerkung 4 2 Vorarbeiten 4 3 Schlusselerzeugung 4 4 Verschlusselung 4 5 Entschlusselung 4 6 Signatur 4 7 Verifikation 4 8 Programmierung 5 Anwendung 5 1 Hybride Verfahren 5 2 Anwendungsgebiete 6 Literatur 7 Weblinks 8 EinzelnachweiseGeschichte BearbeitenNachdem Whitfield Diffie und Martin Hellman im Jahr 1976 eine Theorie zur Public Key Kryptografie veroffentlicht hatten 2 versuchten die drei Mathematiker Ronald L Rivest Adi Shamir und Leonard Adleman am MIT die Annahmen von Diffie und Hellman zu widerlegen Nachdem sie den Beweis bei verschiedenen Verfahren durchfuhren konnten stiessen sie schliesslich auf eines bei dem sie keinerlei Angriffspunkte fanden Hieraus entstand 1977 RSA das erste veroffentlichte asymmetrische Verschlusselungsverfahren Der Name RSA steht fur die Anfangsbuchstaben ihrer Familiennamen Da Adleman seinen Anteil als gering einschatzte und anfangs gar nicht als Autor genannt werden wollte kam es zur nicht alphabetischen Reihenfolge der Autoren und damit zur Abkurzung RSA 3 Bereits Anfang der 1970er Jahre war im britischen GCHQ von Ellis Cocks und Williamson ein ahnliches asymmetrisches Verfahren entwickelt worden welches aber keine grosse praktische Bedeutung erlangte und aus Geheimhaltungsgrunden nicht wissenschaftlich publiziert wurde 4 RSA konnte daher 1983 zum Patent angemeldet werden 5 obgleich es nicht das erste Verfahren dieser Art war Das Patent erlosch am 21 September 2000 Verfahren BearbeitenDas Verfahren ist mit dem Rabin Verschlusselungsverfahren verwandt Da es deterministisch arbeitet ist es unter Umstanden fur bestimmte Angriffe anfallig In der Praxis wird RSA daher mit dem Optimal Asymmetric Encryption Padding kombiniert Einwegfunktionen Bearbeiten Hauptartikel Einwegfunktion Funktionen bei denen eine Richtung leicht die andere Umkehrfunktion schwierig zu berechnen ist bezeichnet man als Einwegfunktionen engl one way function Beispielsweise ist nach aktuellem Wissensstand die Faktorisierung einer grossen Zahl also ihre Zerlegung in ihre Primfaktoren sehr aufwandig wahrend das Erzeugen einer Zahl durch Multiplikation von Primzahlen recht einfach und schnell moglich ist Spezielle Einwegfunktionen sind Fallturfunktionen engl trapdoor one way function die mit Hilfe einer Zusatzinformation auch ruckwarts leicht zu berechnen sind Die Verschlusselung und die Signatur mit RSA basieren auf einer Einwegpermutation mit Falltur engl trapdoor one way permutation kurz TOWP einer Fallturfunktion die gleichzeitig bijektiv also eine Permutation ist Die Einwegeigenschaft begrundet warum die Entschlusselung bzw das Signieren ohne den geheimen Schlussel die Falltur schwierig ist Erzeugung des offentlichen und privaten Schlussels Bearbeiten Die Schlussel bestehen aus den drei Zahlen e d displaystyle e d nbsp und N displaystyle N nbsp Man nennt N displaystyle N nbsp den RSA Modul e displaystyle e nbsp den Verschlusselungsexponenten und d displaystyle d nbsp den Entschlusselungsexponenten Das Zahlenpaar e N displaystyle e N nbsp bildet den offentlichen Schlussel public key und das Paar d N displaystyle d N nbsp den privaten Schlussel private key Diese Zahlen werden durch das folgende Verfahren erzeugt Wahle zufallig und stochastisch unabhangig zwei Primzahlen p q displaystyle p neq q nbsp Diese sollen die gleiche Grossenordnung haben aber nicht zu dicht beieinander liegen sodass der folgende Rahmen ungefahr eingehalten wird 0 1 lt log 2 p log 2 q lt 30 displaystyle 0 1 lt log 2 p log 2 q lt 30 nbsp 6 In der Praxis erzeugt man dazu solange Zahlen der gewunschten Lange und fuhrt mit diesen anschliessend einen Primzahltest durch bis man zwei Primzahlen gefunden hat Berechne den RSA Modul N p q displaystyle N p cdot q nbsp Berechne die Eulersche f Funktion von N displaystyle N nbsp f N p 1 q 1 displaystyle varphi N p 1 cdot q 1 nbsp Wahle eine zu f N displaystyle varphi N nbsp teilerfremde Zahl e displaystyle e nbsp fur die gilt 1 lt e lt f N 1 displaystyle 1 lt e lt varphi N 1 nbsp Berechne den Entschlusselungsexponenten d displaystyle d nbsp als multiplikativ Inverses von e displaystyle e nbsp bezuglich des Moduls f N displaystyle varphi N nbsp was mit dem erweiterten euklidischen Algorithmus erfolgen kann Es soll also die Kongruenz gelten e d 1 mod f N displaystyle e cdot d equiv 1 pmod varphi N nbsp Die Zahlen p displaystyle p nbsp q displaystyle q nbsp und f N displaystyle varphi N nbsp werden nicht mehr benotigt und konnen nach der Schlusselerstellung geloscht werden Es ist jedoch relativ einfach diese Werte aus e displaystyle e nbsp d displaystyle d nbsp und N displaystyle N nbsp zu rekonstruieren p q f N displaystyle p q varphi N nbsp und d displaystyle d nbsp mussen geheim gehalten werden Da die Primzahltests inzwischen ausreichend schnell sind wahlt man heutzutage zuerst einen kleinen Exponenten e displaystyle e nbsp mit 2 16 lt e lt 2 64 displaystyle 2 16 lt e lt 2 64 nbsp und verwirft bei der Erzeugung die Primzahlen p q displaystyle p q nbsp fur die p 1 q 1 displaystyle p 1 q 1 nbsp nicht teilerfremd zu e displaystyle e nbsp sind Die Wahl eines e displaystyle e nbsp kleiner als die Fermat Zahl F 4 2 16 1 65537 displaystyle F 4 2 16 1 65537 nbsp kann zu Angriffsmoglichkeiten fuhren etwa in Form des von Johan Hastad publizierten Broadcast Angriffs bei dem der Versand einer Nachricht an mehrere Empfanger zu einer Dechiffrierung uber den chinesischen Restsatz fuhren kann 7 Wenn d displaystyle d nbsp weniger als ein Viertel der Bits des RSA Moduls hat kann d displaystyle d nbsp sofern nicht bestimmte Zusatzbedingungen erfullt sind mit einem auf Kettenbruchen aufbauenden Verfahren effizient ermittelt werden 8 Bei der Wahl eines Exponenten e displaystyle e nbsp kleiner als 2 64 displaystyle 2 64 nbsp ist diese Moglichkeit jedoch ausgeschlossen Beispiel Bearbeiten Man wahlt den Exponenten e 23 displaystyle e 23 nbsp Man wahlt p 11 displaystyle p 11 nbsp und q 13 displaystyle q 13 nbsp fur die beiden Primzahlen Die Zahlen p 1 10 displaystyle p 1 10 nbsp und q 1 12 displaystyle q 1 12 nbsp sind teilerfremd zum Exponenten e 23 displaystyle e 23 nbsp Der RSA Modul ist N p q 143 displaystyle N p cdot q 143 nbsp Damit bilden e 23 displaystyle e 23 nbsp und N 143 displaystyle N 143 nbsp den offentlichen Schlussel Die eulersche f Funktion hat den Wert f N f 143 p 1 q 1 120 displaystyle varphi N varphi 143 p 1 q 1 120 nbsp Berechnung der Inversen zu e displaystyle e nbsp modulo f N displaystyle varphi N nbsp Es gilt e d k f N 1 ggT e f N displaystyle e cdot d k cdot varphi N 1 operatorname ggT e varphi N nbsp im konkreten Beispiel 23 d k 120 1 ggT 23 120 displaystyle 23 cdot d k cdot 120 1 operatorname ggT 23 120 nbsp Mit dem erweiterten euklidischen Algorithmus berechnet man nun die Faktoren d 47 displaystyle d 47 nbsp und k 9 displaystyle k 9 nbsp und somit ist d 47 displaystyle d 47 nbsp der private Schlussel wahrend k displaystyle k nbsp nicht weiter benotigt wird Verschlusseln von Nachrichten Bearbeiten nbsp VerschlusselungUm eine Nachricht m displaystyle m nbsp zu verschlusseln verwendet der Absender die Formel c m e mod N displaystyle c equiv m e pmod N nbsp und erhalt so aus der Nachricht m displaystyle m nbsp den Geheimtext c displaystyle c nbsp Die Zahl m displaystyle m nbsp muss dabei kleiner sein als der RSA Modul N displaystyle N nbsp Beispiel Bearbeiten Es soll die Zahl 7 verschlusselt werden Der Sender benutzt den veroffentlichten Schlussel des Empfangers N 143 displaystyle N 143 nbsp e 23 displaystyle e 23 nbsp und rechnet 2 7 23 mod 143 displaystyle 2 equiv 7 23 pmod 143 nbsp Das Chiffrat ist also c 2 displaystyle c 2 nbsp Entschlusseln von Nachrichten Bearbeiten nbsp EntschlusselungDer Geheimtext c displaystyle c nbsp kann durch modulare Exponentiation wieder zum Klartext m displaystyle m nbsp entschlusselt werden Der Empfanger benutzt die Formel m c d mod N displaystyle m equiv c d pmod N nbsp mit dem nur ihm bekannten Wert d displaystyle d nbsp sowie N displaystyle N nbsp Beispiel Bearbeiten Fur gegebenes c 2 displaystyle c 2 nbsp wird berechnet 7 2 47 mod 143 displaystyle 7 equiv 2 47 pmod 143 nbsp Der Klartext ist also m 7 displaystyle m 7 nbsp Signieren von Nachrichten Bearbeiten Um eine Nachricht m displaystyle m nbsp zu signieren wird vom Sender auf die Nachricht die RSA Funktion mit dem eigenen privaten Schlussel d displaystyle d nbsp angewendet Zum Prufen wendet der Empfanger auf die Signatur m d mod N displaystyle m d bmod N nbsp mit Hilfe des offentlichen Schlussels des Senders e displaystyle e nbsp die Umkehrfunktion an und vergleicht diese mit der zusatzlich ubermittelten unverschlusselten Nachricht m displaystyle m nbsp Wenn beide ubereinstimmen ist die Signatur gultig und der Empfanger kann sicher sein dass derjenige der das Dokument signiert hat auch den privaten Schlussel besitzt und dass niemand seit der Signierung das Dokument geandert hat Es wird also die Integritat und Authentizitat garantiert vorausgesetzt der private Schlussel ist wirklich geheim geblieben Aufgrund der Homomorphieeigenschaft von RSA ist dieses Signaturverfahren jedoch ungeeignet Liegen zwei Signaturen m 1 d displaystyle m 1 d nbsp m 2 d displaystyle m 2 d nbsp vor so kann ein Angreifer daraus durch Multiplizieren die Signatur der Nachricht m 1 m 2 displaystyle m 1 m 2 nbsp berechnen Sogar aus nur einer Signatur m d displaystyle m d nbsp kann ein Angreifer beliebig viele Nachrichten Signatur Paare erzeugen m c e m d c displaystyle m cdot c e m d cdot c nbsp ist ein solches Paar fur beliebige c displaystyle c nbsp Dieses Problem kann umgangen werden indem nicht die Nachricht selbst signiert wird Stattdessen wird mit einer zusatzlich zum Signaturverfahren spezifizierten kollisionsresistenten Hashfunktion H displaystyle H nbsp der Hash Wert H m displaystyle H m nbsp der Nachricht m displaystyle m nbsp berechnet Dieser wird mit dem privaten Schlussel signiert um die eigentliche Signatur zu erhalten Der Empfanger kann die so erhaltene Signatur mit dem offentlichen Schlussel verifizieren und erhalt dabei einen Wert h displaystyle h nbsp Diesen vergleicht er mit dem von ihm selbst gebildeten Hashwert H m displaystyle H m nbsp der ihm vorliegenden Nachricht m displaystyle m nbsp Wenn beide Werte H m h displaystyle H m h nbsp ubereinstimmen kann mit hoher Wahrscheinlichkeit davon ausgegangen werden dass die Nachricht fehlerfrei ubertragen wurde und nicht gefalscht ist Auch diese Modifikation erfullt allerdings nicht die modernen Sicherheitsanforderungen daher werden Verfahren wie RSA PSS verwendet um mit RSA zu signieren Siehe auch Elektronische Unterschrift und Full Domain Hash RSA mit dem Chinesischen Restsatz Bearbeiten Mit Hilfe des Chinesischen Restsatzes konnen Nachrichten effizienter entschlusselt oder signiert werden Weil der Modul N displaystyle N nbsp sehr gross ist sind auch die im Rechner verwendeten Bitdarstellungen der Zahlen sehr lang Der Chinesische Restsatz erlaubt es die Berechnungen statt in einer Gruppe der Grosse N displaystyle N nbsp gleichzeitig in den zwei kleineren Gruppen der Grosse p displaystyle p nbsp und q displaystyle q nbsp auszufuhren und das Ergebnis danach wieder zusammenzusetzen Da hier die Zahlen wesentlich kleiner sind ist diese Berechnung insgesamt schneller Diese Variante wird nach der englischen Bezeichnung des Chinesischen Restsatzes CRT Chinese remainder theorem auch CRT RSA genannt Der private Schlussel besteht dann im Gegensatz zu dem was im Rest dieses Artikels angenommen wird aus folgenden Komponenten N displaystyle N nbsp der RSA Modul d displaystyle d nbsp der Entschlusselungsexponent p displaystyle p nbsp die erste Primzahl q displaystyle q nbsp die zweite Primzahl ungleich p d p d mod p 1 displaystyle d p d bmod p 1 nbsp haufig dmp1 genannt d q d mod q 1 displaystyle d q d bmod q 1 nbsp haufig dmq1 genannt und q I n v q 1 mod p displaystyle q Inv q 1 bmod p nbsp haufig iqmp genannt Eine Nachricht m displaystyle m nbsp wird dann wie folgt signiert m 1 m d p mod p displaystyle m 1 m d p bmod p nbsp m 2 m d q mod q displaystyle m 2 m d q bmod q nbsp s q I n v m 1 m 2 mod p q m 2 displaystyle s q Inv m 1 m 2 bmod p q m 2 nbsp Aus der letzten Gleichung sieht man sofort dass s mod q m 2 displaystyle s bmod q m 2 nbsp und s mod p q I n v q m 1 m 2 m 2 mod p m 1 displaystyle s bmod p q Inv q m 1 m 2 m 2 bmod p m 1 nbsp Die Signatur s displaystyle s nbsp stimmt also sowohl mod p displaystyle bmod p nbsp als auch mod q displaystyle bmod q nbsp mit m d displaystyle m d nbsp uberein daher ist nach dem Chinesischen Restsatz s m d mod N displaystyle s m d bmod N nbsp Bemerkung Die Identitat s m d mod p displaystyle s m d bmod p nbsp sieht man so Modulo p gilt s m d p m d k p 1 m d m p 1 k m d displaystyle s m d p m d k p 1 m d m p 1 k m d nbsp Die letzte Identitat folgt aus dem kleinen fermatschen Satz Analog erhalt man s m d mod q displaystyle s m d bmod q nbsp RSA ist kein Primzahltest Bearbeiten Wenn p q displaystyle p neq q nbsp Primzahlen sind funktioniert das RSA Verfahren Umgekehrt kann aber aus dem funktionierenden RSA Verfahren nicht geschlossen werden dass der Modul N displaystyle N nbsp das Produkt zweier Primzahlen p displaystyle p nbsp und q displaystyle q nbsp ist denn mit Carmichael Zahlen funktioniert das Verfahren auch Sicherheit BearbeitenPublic Key Verschlusselungs Verfahren wie RSA werden in der Praxis immer als hybride Verfahren in Verbindung mit symmetrischen Verfahren verwendet Bei der Analyse der Sicherheit im praktischen Einsatz mussen die Sicherheit des Public Key Verfahrens und die praktische Sicherheit des Gesamtsystems betrachtet werden Angriffe auf das RSA Verfahren erfolgen oft uber Seitenkanale Das Gesamtsystem kann unsicher sein wenn nur eine Komponente beispielsweise ein Computer kompromittiert wurde Beziehung zwischen RSA und dem Faktorisierungsproblem Bearbeiten Bei der Kryptoanalyse des RSA Verfahrens unterscheidet man zwischen zwei Problemen RSA Problem R S A P displaystyle mathrm RSAP nbsp Gegeben sind der offentliche Schlussel N e displaystyle N e nbsp sowie der Geheimtext c displaystyle c nbsp Gesucht wird der Klartext m displaystyle m nbsp wobei gilt m e c mod N displaystyle m e equiv c pmod N nbsp Das Problem liegt hier in der Schwierigkeit e displaystyle e nbsp te Wurzeln modulo N displaystyle N nbsp zu ziehen was zur Bestimmung der Nachricht m displaystyle m nbsp notwendig ist RSA Schlusselproblem R S A P displaystyle mathrm RSAP nbsp Gegeben ist der offentliche Schlussel N e displaystyle N e nbsp Gesucht wird der geheime Schlussel d displaystyle d nbsp wobei gilt e d 1 mod f N displaystyle ed equiv 1 pmod varphi N nbsp Das Problem liegt hier in der Schwierigkeit die Eulersche f Funktion von N displaystyle N nbsp ohne Kenntnis der Faktoren p und q zu berechnen Folgende Beziehungen zwischen den RSA Problemen und F A C T O R I N G displaystyle mathrm FACTORING nbsp dem Faktorisierungsproblem sind bekannt R S A P p R S A P p F A C T O R I N G displaystyle mathrm RSAP leq p mathrm RSAP p mathrm FACTORING nbsp Die Beziehung R S A P p R S A P displaystyle mathrm RSAP leq p mathrm RSAP nbsp ist trivial denn wenn man den privaten Schlussel hat kann man damit wie oben jeden beliebigen Geheimtext entschlusseln Ob die Umkehrung gilt ist zurzeit unbekannt Auch die Beziehung R S A P p F A C T O R I N G displaystyle mathrm RSAP leq p mathrm FACTORING nbsp ist trivial denn wenn man N p q displaystyle N pq nbsp faktorisiert hat kann man damit leicht f N p 1 q 1 displaystyle varphi N p 1 q 1 nbsp berechnen und dann mit dem euklidischen Algorithmus zu gegebenem offentlichen Schlussel den zugehorigen privaten Schlussel effizient berechnen wie in der Schlusselerzeugung Fur die Beziehung F A C T O R I N G p R S A P displaystyle mathrm FACTORING leq p mathrm RSAP nbsp ist schon lange ein probabilistischer Polynomialzeitalgorithmus bekannt Vor kurzem wurde gezeigt dass sich diese Reduktion im balancierten RSA d h p displaystyle p nbsp und q displaystyle q nbsp haben gleiche Bitlange auch deterministisch durchfuhren lasst Der Beweis verwendet das Coppersmith Verfahren zur Bestimmung von Nullstellen eines irreduziblen bivariaten Polynoms mit ganzzahligen Koeffizienten welches sich auf eine Gitterbasenreduktion zuruckfuhren lasst Da alle gangigen Implementierungen balanciertes RSA verwenden ist in der Praxis das Brechen des geheimen Schlussels nur mit der Kenntnis des offentlichen Schlussels genau so schwer wie das Faktorisieren von N displaystyle N nbsp Wegen R S A P p F A C T O R I N G displaystyle mathrm RSAP leq p mathrm FACTORING nbsp ist im Fall der zusatzlichen Kenntnis eines Geheimtexts die Schwierigkeit des Faktorisierungsproblems von zentralem Interesse Schwierigkeit des Faktorisierungsproblems Bearbeiten Man mochte N p q displaystyle N pq nbsp fur sehr grosse Primzahlen p displaystyle p nbsp und q displaystyle q nbsp faktorisieren Diese Primfaktorzerlegung ist fur grosse Zahlen mit den heute bekannten Verfahren praktisch nicht durchfuhrbar Es ist aber nicht bewiesen dass es sich bei der Primfaktorzerlegung um ein prinzipiell schwieriges Problem handelt Mit dem Quadratischen Sieb wurde 1994 die Zahl RSA 129 mit 129 Dezimalstellen in 8 Monaten von ca 600 Freiwilligen faktorisiert Mit der Methode des Zahlkorpersiebs wurde im Jahr 2005 von Wissenschaftlern der Friedrich Wilhelms Universitat Bonn die im Rahmen der RSA Factoring Challenge von RSA Laboratories vorgegebene 200 stellige Dezimalzahl RSA 200 in ihre zwei grossen Primfaktoren zerlegt 9 Die ersten RSA Zahlen bis RSA 500 wurden entsprechend der Anzahl der Dezimalstellen benannt weitere RSA Zahlen nach der Anzahl der Binarstellen Die Faktorisierung begann Ende 2003 und dauerte bis Mai 2005 Unter anderem kam ein Rechnerverbund von 80 handelsublichen Rechnern an der Universitat Bonn zum Einsatz Im November 2005 zahlten RSA Laboratories fur die Faktorisierung von RSA 640 einer Zahl mit 640 Bits bzw 193 Dezimalstellen eine Pramie von 20 000 US Dollar 10 Obwohl mittlerweile fur das Faktorisieren der RSA Challenge Zahlen keine Pramien mehr gezahlt werden wurde im Dezember 2009 die Zahl RSA 768 faktorisiert 11 Fur die Faktorisierung von RSA 1024 309 Dezimalstellen oder gar RSA 2048 617 Dezimalstellen waren 100 000 bzw 200 000 ausgelobt die RSA Laboratories haben im Mai 2007 die RSA Factoring Challenge beendet nachdem die o g Wissenschaftler der Universitat Bonn im selben Monat eine 1039 Bit Mersennezahl 312 Dezimalstellen faktorisiert hatten 12 Aufgrund der ungleichen Stellenzahl der Faktoren war das aber wesentlich leichter als eine RSA Zahl gleicher Lange zu faktorisieren Die wachsende Rechenleistung moderner Computer stellt fur die kurzfristige Sicherheit von RSA im Wesentlichen kein Problem dar zumal diese Entwicklung vorhersehbar ist Der Nutzer kann bei der Erzeugung seines Schlussels darauf achten dass der wahrend der Dauer der beabsichtigten Verwendung nicht faktorisiert werden kann Nicht vorhersehbare Entwicklungen wie die Entdeckung deutlich schnellerer Algorithmen oder gar Schaffung eines leistungsfahigen Quantencomputers der die Faktorisierung von Zahlen durch Verwendung des Shor Algorithmus effizient durchfuhren konnte bergen zumindest fur die mittel und langfristige Sicherheit der verschlusselten Daten gewisse Risiken Zum konkreten Sicherheitsniveau bestimmter Schlussellangen gibt es unterschiedliche Aussagen 13 Laut Bundesnetzagentur sind fur RSA basierte Signaturen bis Ende 2020 Schlussel mit einer Mindestlange von 1976 Bit geeignet Empfehlung 2048 Bit Fur Signaturverfahren nach den Anforderungen aus 17 Abs 1 bis 3 SigG fur die die besten bekannten Angriffe auf dem Problem der Faktorisierung grosser Zahlen oder auf dem Problem der Berechnung diskreter Logarithmen in endlichen Korpern beruhen RSA und DSA werden Schlussellangen von mindestens 3 000 Bit verpflichtend werden um perspektivisch mindestens ein Sicherheitsniveau von 120 Bit zu etablieren 6 Schwierigkeit des RSA Problems Bearbeiten In einigen Spezialfallen kann man das RSA Verfahren brechen ohne das Faktorisierungsproblem gelost zu haben Der Angriff von Wiener bei balanciertem RSA lost das RSA Schlusselproblem effizient unter der Annahme dass der private Schlussel nur eine geringe Bitlange aufweist genauer d lt 1 3 N 4 displaystyle d lt tfrac 1 3 sqrt 4 N nbsp Wiener verwendete dabei die Tatsache dass unter der Abschatzung fur d displaystyle d nbsp der Bruch k d displaystyle tfrac k d nbsp fur eine ganze Zahl k displaystyle k nbsp in der Kettenbruchentwicklung von e N displaystyle tfrac e N nbsp auftaucht Die Schranke wurde mit Mitteln der Gitterbasenreduktion auf d lt N 0 292 displaystyle d lt N 0 292 nbsp verbessert Auch das RSA Problem kann unter einigen Annahmen effizient ohne Faktorisieren gelost werden Der Angriff von Hastad ermittelt einen Klartext der mit kleinem Verschlusselungsexponenten etwa e 3 displaystyle e 3 nbsp fur mehrere Empfanger vor dem Verschlusseln speziell aufbereitet wurde etwa wenn die Nummer des Empfangers in den Klartext codiert wurde Dieser Angriff verwendet die Coppersmith Methode um kleine Nullstellen eines Polynoms in einer Unbestimmten zu berechnen welche wiederum auf Gitterbasenreduktion beruht Angriffe gegen das unmodifizierte RSA Verfahren Textbook RSA Bearbeiten RSA ist in der oben beschriebenen Version die auch als Textbook RSA bekannt ist weder als Verschlusselungs noch als Signaturverfahren geeignet da es in beiden Fallen auf gravierende Weise unsicher ist und als Signaturverfahren auch keine langen Nachrichten signieren kann Die RSA Verschlusselung ist deterministisch Das erlaubt es einem Angreifer einen Klartext zu raten ihn mit dem offentlichen Schlussel zu verschlusseln und dann mit einem Chiffrat zu vergleichen Dies kann insbesondere bei sehr kurzen Nachrichten wie Ja und Nein sehr praktikabel und verheerend sein Hieraus folgt dass unmodifiziertes RSA nicht IND CPA sicher ist heute eine absolute Minimalanforderung an Verschlusselungsverfahren Wenn der Klartext m displaystyle m nbsp und der Verschlusselungsexponent e displaystyle e nbsp so klein sind dass sogar c m e lt N displaystyle c m e lt N nbsp ist dann kann ein Angreifer die e displaystyle e nbsp te Wurzel aus c displaystyle c nbsp ziehen und das Chiffrat auf diese Weise entschlusseln Wurzelziehen ist nur modulo einer grossen Zahl schwierig aber in diesem Fall kann c displaystyle c nbsp als ganze Zahl betrachtet werden Wenn dieselbe Nachricht m displaystyle m nbsp zu mehreren Empfangern geschickt wird die zwar alle unterschiedliche und teilerfremde Moduli N i displaystyle N i nbsp benutzen aber als offentlichen Schlussel den gleichen Exponenten e displaystyle e nbsp dann kann aus e displaystyle e nbsp Nachrichten m e mod N 1 m e mod N l displaystyle m e bmod N 1 ldots m e bmod N l nbsp mit dem Chinesischen Restsatz m e mod N i displaystyle m e bmod prod N i nbsp berechnet werden Weil m e lt N i displaystyle m e lt prod N i nbsp nach Voraussetzung ist m lt N i displaystyle m lt N i nbsp fur alle i displaystyle i nbsp kann diese Zahl wieder als in den ganzen Zahlen liegend aufgefasst werden und Wurzelziehen ist dort einfach Dieser Angriff wird nach seinem Entdecker Johan Hastad als Hastads Angriff bezeichnet 14 Da die RSA Funktion x x d mod N displaystyle x mapsto x d bmod N nbsp multiplikativ ist d h x y d x d y d mod N displaystyle xy d x d y d bmod N nbsp gilt kann man aus jedem Chiffrat m e displaystyle m e nbsp ein weiteres gultiges Chiffrat m e r e m r e displaystyle m e r e mr e nbsp erzeugen Wenn man den Besitzer des zugehorigen geheimen Schlussels davon uberzeugen kann diese Zahl zu entschlusseln oder zu signieren kann man aus dem Ergebnis m r displaystyle mr nbsp leicht m displaystyle m nbsp gewinnen Dieselbe Eigenschaft erlaubt auch einen Angriff auf das Signaturverfahren Aus bekannten Klartext Signaturpaaren s 1 m 1 d s k m k d displaystyle s 1 m 1 d ldots s k m k d nbsp lassen sich weitere gultige Signaturen s s i mod N displaystyle s prod s i bmod N nbsp zu Nachrichten m m i mod N displaystyle m prod m i bmod N nbsp berechnen Padding Bearbeiten Um solche Angriffe zu verhindern werden bei RSA Verschlusselung und RSA Signatur sogenannte Padding Verfahren eingesetzt Standards fur Padding Verfahren fur RSA werden z B in PKCS 1 oder ISO 9796 definiert Diese nutzen aus dass die Lange des Klartextes bzw Hash Wertes deutlich kleiner als die Lange von N displaystyle N nbsp ist und fugen dem Klartext bzw dem Hash Wert vor der Verschlusselung oder Signatur eine Zeichenfolge R mit vorgegebener Struktur an die unter mehreren moglichen zufallig gewahlt wird und dadurch das Chiffrat randomisiert Es wird also die RSA Funktion nicht auf die Nachricht M displaystyle M nbsp oder auf den Hash Wert h M displaystyle h M nbsp angewendet sondern auf den Klartext bzw seinem Hashwert mit angehangtem R displaystyle R nbsp In der Regel enthalt R displaystyle R nbsp eine Angabe uber die Lange der Nachricht oder des Hash Wertes oder eine eindeutige Zeichenfolge die den Beginn von R displaystyle R nbsp kennzeichnet Dies erleichtert nicht nur die Dekodierung sondern erschwert auch Angriffe Padding Verfahren konnen fur die Berechnung von R displaystyle R nbsp auch Zufallszahlen und Hashfunktionen verwenden Einige moderne Paddingverfahren beispielsweise das Optimal Asymmetric Encryption Padding OAEP oder das Probabilistic Signature Scheme PSS verwenden kryptographische Hashfunktionen um den Klartext vor der Verschlusselung weiter zu randomisieren und sind unter idealisierenden Annahmen an die verwendete Hashfunktion beweisbar sicher unter der RSA Annahme 15 16 Chosen Ciphertext Angriff Bearbeiten Daniel Bleichenbacher stellte 1998 einen Angriff auf die in PKCS 1 v1 spezifizierte RSA Verschlusselung vor Dabei nutzte er aus dass PKCS 1 v1 ein Nachrichtenformat vorgibt und einige Implementierungen nach dem Entschlusseln Fehlermeldungen ausgeben falls dieses Format nicht eingehalten wurde Um den Angriff gegen ein Chiffrat c displaystyle c nbsp durchzufuhren wahlt man eine Zahl s displaystyle s nbsp und berechnet daraus ein neues Chiffrat s e c displaystyle s e c nbsp Bei dem Nachrichtenformat sind die ersten zwei Bytes 00 und 02 wenn also keine Fehlermeldung kommt weiss man dass sowohl bei der ursprunglichen Nachricht m displaystyle m nbsp als auch bei der neuen Nachricht s m displaystyle sm nbsp die ersten beiden Bytes 00 02 sind Mehrfache Wiederholung mit geschickt gewahlten s displaystyle s nbsp erlauben es nach und nach den gesamten Klartext aufzudecken 17 RSA nach PKCS 1 ab Version 2 ist immun gegen diesen Angriff Sicherheit hybrider Verfahren Bearbeiten RSA wird aus Effizienzgrunden in der Regel in Hybridverfahren mit symmetrischen Verfahren kombiniert Zur hybriden Verschlusselung wird zufallig ein Sitzungsschlussel fur ein symmetrisches Verschlusselungsverfahren generiert der dann per RSA verschlusselt und zusammen mit der Nachricht ubertragen wird Zum Signieren wird nicht die gesamte Nachricht sondern nur ein Hash Wert signiert Fur die Sicherheit von RSA sind Primzahlen mit mehreren hundert Dezimalstellen mindestens 2048 Bit erforderlich Damit konnen symmetrische Schlussel jeder ublichen Lange verschlusselt werden Gangige Verfahren zur symmetrischen Verschlusselung basieren beispielsweise auf der Blockchiffre AES mit einer Schlussellange von 128 192 oder maximal 256 Bit Eine sichere Hashfunktion wie SHA 2 erzeugt Hashwerte mit einer Lange von 224 bis 512 Bit Damit lassen sich Signaturverfahren mittels RSA realisieren die nur einen Signaturschritt benotigen Die Sicherheit des Gesamtsystems hangt sowohl im Fall der Verschlusselung als auch der Signatur von der Sicherheit beider verwendeter Verfahren ab Da bei RSA fur ein ahnliches Sicherheitsniveau wie beim symmetrischen Verfahren deutlich langere Schlussel notig sind wird die Sicherheit des Hybridverfahrens meistens von der Sicherheit des Public Key Verfahrens bestimmt Vollstandiges Beispiel BearbeitenAnmerkung Bearbeiten RSA direkt auf Texte anzuwenden birgt erhebliche Risiken RSA wird deshalb anders als im Beispiel in der Praxis praktisch nur in Kombination mit anderen Verfahren verwendet Siehe Hybride Verschlusselung und Abschnitt Angriffe gegen das unmodifizierte RSA Verfahren Um das Beispiel ubersichtlich zu halten wurden relativ kleine Primzahlen verwendet Zur sicheren Verschlusselung werden typischerweise mindestens 600 stellige N displaystyle N nbsp empfohlen 18 Vorarbeiten Bearbeiten Die oben genannten Schritte sollen nun an einem vollstandigen Beispiel erlautert werden Um einen Text zu verschlusseln mussen zunachst Buchstaben in Zahlen umgewandelt werden Dazu verwendet man in der Praxis zum Beispiel den ASCII Code Hier sei willkurlich die folgende Zuordnung gewahlt Leerzeichen 00 A 01 B 02 C 03 usw Daruber hinaus sei angenommen dass jeweils drei Zeichen zu einer Zahl zusammengefasst werden Die Buchstabenfolge AXT wird also zu 012420 Die kleinste zu verschlusselnde Zahl ist dann 000000 drei Leerzeichen die grosste 262626 ZZZ Der Modul N p q displaystyle N p cdot q nbsp muss also grosser als 262626 sein Klartext W I K I P E D I A Kodierung 23 09 11 09 16 05 04 09 01 Schlusselerzeugung Bearbeiten Zunachst werden geheim zwei Primzahlen gewahlt beispielsweise p 307 displaystyle p 307 nbsp und q 859 displaystyle q 859 nbsp Damit ergibt sich N p q 263713 displaystyle N p cdot q 263713 nbsp f N p 1 q 1 262548 displaystyle varphi N p 1 cdot q 1 262548 nbsp e 1721 displaystyle e 1721 nbsp zufallig teilerfremd zu f N displaystyle varphi N nbsp d 1373 displaystyle d 1373 nbsp das multiplikative Inverse zu e mod f N displaystyle e pmod varphi N nbsp mit Hilfe des erweiterten euklidischen Algorithmus Offentlicher Schlussel e 1721 displaystyle e 1721 nbsp und N 263713 displaystyle N 263713 nbsp Privater Schlussel d 1373 displaystyle d 1373 nbsp und N 263713 displaystyle N 263713 nbsp Verschlusselung Bearbeiten Cn Kne mod N fur n 1 2 3 C1 2309111721 mod 263713 001715 C2 0916051721 mod 263713 184304 C3 0409011721 mod 263713 219983 Entschlusselung Bearbeiten Kn Cnd mod N fur n 1 2 3 K1 0017151373 mod 263713 230911 K2 1843041373 mod 263713 091605 K3 2199831373 mod 263713 040901 Signatur Bearbeiten Cn Knd mod N C1 2309111373 mod 263713 219611 C2 0916051373 mod 263713 121243 C3 0409011373 mod 263713 138570 Verifikation Bearbeiten Kn Cne mod N K1 2196111721 mod 263713 230911 K2 1212431721 mod 263713 091605 K3 1385701721 mod 263713 040901 Die Berechnung der modularen Exponentiation kann durch binare Exponentiation Square and multiply beschleunigt werden 7 23 mod 143 7 2 2 7 2 7 2 7 mod 143 2 displaystyle 7 23 bmod 143 left left left 7 2 right 2 cdot 7 right 2 cdot 7 right 2 cdot 7 bmod 143 2 nbsp Dabei wendet man nach jedem Rechenschritt auf die zu handhabenden Zahlen die Modulo Operation mod an um die Zwischenergebnisse moglichst klein zu halten Aus dem Klartext 7 erhalten wir somit den Geheimtext 2 Programmierung Bearbeiten Das folgende Programm in der Programmiersprache C zeigt die Implementierung des RSA Verfahrens mit p 223 displaystyle p 223 nbsp q 127 displaystyle q 127 nbsp und e 121 displaystyle e 121 nbsp was den privaten Schlussel d 5317 displaystyle d 5317 nbsp ergibt Das Programm gibt den verschlusselten und den entschlusselten Text in diesem Beispiel Werde Mitglied bei Wikipedia auf der Konsole aus include lt iostream gt using namespace std berechnet aus dem offentlichen Schlussel e den privaten Schlussel das multiplikative Inverse von e modulo phi unsigned getPrivateKey unsigned e unsigned phi unsigned a phi b e unsigned d 0 u 1 while b 0 unsigned q a b unsigned x b Variable zum Zwischenspeichern b a q b a x x u u d q u d x if a gt 1 cout lt lt Fehler e und phi nicht teilerfremd lt lt endl exit 1 return d Diese Funktion berechnet die Potenz a b modulo n unsigned modularPower unsigned a unsigned b unsigned n unsigned res b amp 1 a 1 b gt gt 1 while b a a a n if b amp 1 res res a n b gt gt 1 return res Diese Funktion ver oder entschlusselt den Klartext text elementweise mit dem Schlussel key void RSA unsigned text int len unsigned n unsigned key for int i 0 i lt len i for Schleife die die Zeichen des Textes durchlauft unsigned c modularPower text i key n ver bzw entschlusselt text i text i c int main unsigned p 223 die Primzahlen p und q unsigned q 127 unsigned n p q unsigned e 121 Der offentlichen Schlussel unsigned phi p 1 q 1 unsigned d getPrivateKey e phi Erzeugt den privaten Schlussel const char klartext Werde Mitglied bei Wikipedia unsigned text 100 int len 0 while klartext len text len klartext len len RSA text len n e Verschlusseln Ausgabe des verschlusselten Texts auf der Konsole for int i 0 i lt len i cout lt lt lt lt text i cout lt lt n RSA text len n d Entschlusseln Ausgabe des Dechiffrats for int i 0 i lt len i cout lt lt char text i cout lt lt n Anwendung BearbeitenHybride Verfahren Bearbeiten Hauptartikel Hybride Verschlusselung RSA ist im Vergleich zu Verfahren wie 3DES und AES mindestens um den Faktor 100 langsamer In der Praxis wird RSA daher meist nur zum Austausch eines Schlussels fur die symmetrische Verschlusselung benutzt Fur die Verschlusselung der Daten werden dann symmetrische Verfahren eingesetzt Damit sind die Vorteile beider Systeme vereint einfacher Schlusselaustausch und effiziente Verschlusselung Anwendungsgebiete Bearbeiten Internet und Telefonie Infrastruktur X 509 Zertifikate Ubertragungs Protokolle IPsec TLS SSH WASTE E Mail Verschlusselung OpenPGP S MIME Authentifizierung franzosischer Telefonkarten Kartenzahlung EMV RFID Chip auf dem deutschen Reisepass Electronic Banking HBCILiteratur BearbeitenJohannes Buchmann Einfuhrung in die Kryptographie Springer Verlag Berlin 1999 ISBN 3 540 66059 3 Der Dialog der Schwestern In c t Nr 25 1999 Liegt auch dem E Learning Programm CrypTool bei Alexander May Computing the RSA Secret Key is Deterministic Polynomial Time Equivalent to Factoring In Advances in Cryptology Crypto 2004 Lecture Notes in Computer Science Band 3152 Springer Verlag 2004 S 213 219 Dan Boneh Twenty Years of Attacks on the RSA Cryptosystem In Notices of the American Mathematical Society AMS Band 46 Nr 2 1999 S 203 213 Alfred Menezes Paul C van Oorschot Scott A Vanstone Handbook of Applied Cryptography CRC Press 1996 ISBN 978 0 8493 8523 0 archive org Thomas H Cormen Charles E Leiserson Charles E Leiserson Clifford Stein Introduction to Algorithms 2nd Auflage MIT Press and McGraw Hill 2001 ISBN 978 0 262 03293 3 S 881 887 Weblinks Bearbeiten nbsp Wikibooks Beweisarchiv Korrektheit des RSA Kryptosystems Lern und Lehrmaterialien Erklarung von RSA vom Fachbereich Mathematik der Universitat Wuppertal Einfache Erklarung von RSA mit Online Beispielen von Hans G Mekelburg Arbeit uber RSA mit Schwerpunkt in der Informatik Nicht mehr online verfugbar Archiviert vom Original am 18 August 2012 abgerufen am 18 August 2012 RSA Codebeispiel in Scheme vom Massachusetts Institute of Technology Beispiel zur RSA Verschlusselung vorgerechnet von Joachim Mohr Interaktive Prasentation des RSA Verfahrens von CrypTool Whitfield Diffie and Martin E Hellman New Directions in Cryptography IEEE Transactions on Information Theory Vol IT 22 No 6 November 1976 Video RSA Einfuhrung Christian Spannagel 2012 zur Verfugung gestellt von der Technischen Informationsbibliothek TIB doi 10 5446 19815 Video RSA Konstruktion der Schlussel Christian Spannagel 2012 zur Verfugung gestellt von der Technischen Informationsbibliothek TIB doi 10 5446 19816 Video RSA Ver und Entschlusselung Christian Spannagel 2012 zur Verfugung gestellt von der Technischen Informationsbibliothek TIB doi 10 5446 19817 Video RSA Beispiel Teil 1 Christian Spannagel 2012 zur Verfugung gestellt von der Technischen Informationsbibliothek TIB doi 10 5446 19813 Video RSA Beispiel Teil 2 Christian Spannagel 2012 zur Verfugung gestellt von der Technischen Informationsbibliothek TIB doi 10 5446 19814 Einzelnachweise Bearbeiten R L Rivest A Shamir and L Adleman A Method for Obtaining Digital Signatures and Public Key Cryptosystems mit edu PDF Whitfield Diffie Martin E Hellman New Directions in Cryptography stanford edu PDF Gina Kolata Leonard Adleman Hitting the High Spots Of Computer Theory In The New York Times 13 Dezember 1994 ISSN 0362 4331 nytimes com C C Cocks A note on non secret encryption 1973 Memento vom 27 Februar 2008 im Internet Archive Patent US4405829 Cryptographic communications system and method Veroffentlicht am 20 September 1983 Anmelder Massachusetts Institute of Technology Erfinder Ronald L Rivest Adi Shamir Leonard Adleman a b Bundesnetzagentur fur Elektrizitat Gas Telekommunikation Post und Eisenbahnen Bekanntmachung zur elektronischen Signatur nach dem Signaturgesetz und der Signaturverordnung Ubersicht uber geeignete Algorithmen vom 21 Januar 2014 BAnz AT 20 02 2014 B4 D Boneh Twenty Years of Attacks on the RSA Cryptosystem In Notes of the AMS Band 46 Nr 2 Februar 1999 S 203 213 PDF MJ Wiener Cryptanalysis of short RSA secret exponents In IEEE Transactions on information theory Band 36 Nr 3 Mai 1990 S 553 558 doi 10 1109 18 54902 RSA Labs RSA 200 is factored Memento vom 18 November 2007 im Internet Archive MathWorld RSA 640 Factored RSA Labs RSA 768 is factored Archivierte Kopie Memento vom 22 Februar 2015 im Internet Archive http www keylength com en compare Johan Hastad Solving Simultaneous Modular Equations of Low Degree In SIAM Journal on Computing Band 17 Nr 2 1988 S 336 341 Solving Simultaneous Modular Equations of Low Degree What is OAEP englisch What is PSS PSS R englisch Daniel Bleichenbacher Chosen Ciphertext Attacks Against Protocols Based on the RSA Encryption Standard PKCS 1 In CRYPTO 98 1998 S 1 12 doi 10 1007 BFb0055716 Kryptographische Verfahren Empfehlungen und Schlussellangen PDF 1 4 830kiB Nicht mehr online verfugbar In BSI Bundesamt fur Sicherheit in der Informationstechnik 10 Februar 2014 S 15 28 archiviert vom Original am 22 Februar 2014 abgerufen am 13 Juli 2014 Tabelle 1 2 und Tabelle 3 1 empfehlen Schlussellangen von 2000Bit fur RSA Abgerufen von https de wikipedia org w index php title RSA Kryptosystem amp oldid 237889950