Was ist RSA?
Bei der Versendung von Daten über das Internet besteht vermehrt der Bedarf, eine verschlüsselte Verbindung zu verwenden. Je sensibler die Inhalte sind, desto sicherer muss ausgeschlossen werden, dass Dritte diese mitlesen oder verändern können. Auch ist es vor der Übertragung wichtig, dass man gewiss sein kann, überhaupt mit dem richtigen Empfänger zu kommunizieren. Verschlüsselung und das daraus abgeleitete Prinzip der Zertifikate, sind ein probates Mittel. Doch bei der Kommunikation mit externen Stellen muss zunächst einmal der Schlüssel geschützt ausgetauscht werden. Hierfür sind asymmetrische Verschlüsselungsverfahren wie RSA geeignet.
Herkunft und Entwicklung von RSA
Die Bezeichnung RSA stammt von den Anfangsbuchstaben der Erfinder: Rivest, Shamir und Adleman. Das Verfahren wurde bereits 1977 entwickelt und ist, mit leichten Modifizierungen und Verlängerungen der empfohlenen Schlüssellänge, bis heute im Einsatz. Ursprünglich wollten die drei Mathematiker nur beweisen, dass das ein Jahr zuvor vorgestellte Diffie-Hellman-Verfahren zum Schlüsseltausch Angriffspunkte aufweist. Dabei entdeckten sie eine darauf basierende Methode, für die sie keine Schwachstelle fanden und veröffentlichten sie als RSA. Zwischen 1983 und 2000 bestand ein Patent dafür.
Symmetrische und asymmetrische Verschlüsselung
Verschlüsselung beschreibt grundsätzlich die Kodierung von klartextlichen Daten. Diese können ihrerseits auch binär vorliegen. Die Transformation muss nach festgeschriebenen Operationen, dem Algorithmus, und anhand eines festgelegten Schlüssels erfolgen. Dies haben alle Verschlüsselungsverfahren gemeinsam.
Bei einem symmetrischen Verfahren wird derselbe Schlüssel für die Ver- und Entschlüsselung verwendet. Dies bringt das Problem mit sich, dass er auf beiden Seiten vorliegen muss. Eine unverschlüsselte Übertragung, vor Aufbau der verschlüsselten Verbindung, verbietet sich natürlich. Ein Angreifer könnte den Schlüssel ebenfalls abfangen und seinerseits alle Daten en- und dekodieren.
Besonderheiten
Die Besonderheit bei asymmetrischen Verfahren hingegen ist, dass zwei unterschiedliche Schlüssel verwendet werden. Es gibt einen privaten und einen öffentlichen Schlüssel. Es ist möglich, den mit einem der beiden verschlüsselte Datenbestand mit dem jeweils anderen zu entschlüsseln. Dies bringt zwei sinnvolle Anwendungszwecke mit sich. Der Absender kann seine Inhalte mit dem öffentlichen Schlüssel enkodieren und sich sicher sein, dass nur der Besitzer des privaten Schlüssels in der Lage ist, sie wieder zu dekodieren.
Sichere Verbindungen
Da der Inhalt auch ein Schlüssel für ein symmetrisches Kodierungsverfahren (im Gegenssatz zum RSA) sein kann, ist dies gut geeignet, um eine sichere Verbindung aufzubauen. Steht diese Verbindung, sind beide Seiten im Besitz des korrekten Schlüssels und können verschlüsselt kommunizieren.
Die zweite Variante besteht darin, dass der Absender den versendeten Inhalt mit seinem privaten Schlüssel enkodiert. Der Empfänger kann sich den korrekten öffentlichen Schlüssel gefahrlos vom Absender herunterladen und damit den Datenbestand dekodieren. Ist der Inhalt lesbar, steht fest, dass er vom korrekten Absender stammt.
Details zu RSA
Dem Verfahren liegt das Prinzip einer Einwegfunktion zugrunde. Also einer Funktion, die nicht ohne Weiteres umkehrbar ist, wenn bestimmte Parameter nicht bekannt sind. RSA macht sich die Schwierigkeit bei der Faktorisierung von Primzahlen zunutze. Wird aus zwei ausreichend großen Primzahlen durch Multiplikation ein sehr großes Produkt erzeugt, ist es nur mit hohem Aufwand möglich, die verwendeten Faktoren zu errechnen. Beide erzeugten Schlüssel werden zudem noch mittels der Modulo-Operation, der Bestimmung des Rests einer ganzzahligen Division, bearbeitet. Die verwendeten Primzahlen werden gelöscht oder beim privaten Schlüssel verwahrt. Danach ist es möglich, durch eine sogenannte Falltür-Funktion, mit nur einem der beiden Schlüssel Inhalte zu entschlüsseln, die mit dem anderen Schlüssel verschlüsselt wurden.
Die Sicherheit des Systems hängt allerdings von der Länge der Schlüssel ab. Erst ab einer Größe von 2048 Bit kann zur Zeit von einer Komplexität ausgegangen werden, die mit der verfügbaren Rechenleistung in absehbarer Zeit nicht zu knacken ist. Dies ist nicht unerheblich, da die Dauer der Rechenoperationen bei der Kodierung sich mit zunehmender Schlüssellänge entsprechend verlängert.
Welche Anwendungen nutzen RSA?
Aufgrund des notwendigen Rechenaufwands ist das Verfahren nicht zweckdienlich, wo schnell große Datenmengen auszutauschen sind. Daher eignet es sich vorrangig für die Authentifizierung und, wie bereits erwähnt, für den Schlüsseltausch.
Dies ist allerdings bei sehr vielen bekannten Anwendungen der Fall. Das Webprotokoll HTTPS nutzt RSA zu diesem Zweck. Auch die Authentifizierung des Webservers, über dessen X.509-Zertifikat, läuft mit diesem Verfahren. Es findet zudem Verwendung bei TLS und damit bei der gesicherten Übertragung von E-Mails. Auch die Verschlüsselung von Mails mittels OpenPGP und S/MIME wird mittels RSA durchgeführt.
Bei der Verschlüsselung von Smartcards und RFID-Chips wird die Methode ebenfalls verwendet.
Welche Schwächen hat RSA?
RSA ist gegenüber symmetrischen Methoden wie AES oder 3DES etwa um das Hundertfache langsamer. Weiterhin ist es theoretisch angreifbar und nur eine ausreichend große Schlüssellänge schützt praktisch davor, die Schlüssel errechnen zu können. Da sich die Hardwareleistung immer noch erheblich in Richtung leistungsfähigerer Komponenten entwickelt, muss dies bei der Auswahl der Schlüssellänge berücksichtigt werden. Ansonsten kann eine Hard- oder Software, die RSA verwendet, mit der Zeit unsicher werden.
Alternative Verschlüsselungsmöglichkeiten
Es wurden weitere asymmetrische Verfahren wie Rabin, Chor-Rivest und Elgamal vorgestellt, die zum Teil auch einen ähnlichen Ansatz wie RSA haben. Jedoch hat sich bislang keines als ernsthafte Alternative durchsetzen können.
Da der Schlüsseltausch zur Initiierung einer schnelleren symmetrischen Methode nur eine sehr begrenzte Zeit beansprucht, können zudem bislang problemlos ausreichend lange Schlüssel verwendet werden.
- Über den Autor
- Aktuelle Beiträge
Daniel Faust ist Redakteur im Content-Team der Biteno und betreut den Blog der Biteno GmbH.