RC4


RC4

RC4, ARC4 oder Arcfour ist eine Stromverschlüsselung, die mit Standards wie HTTPS, SSH 1 und WEP bzw. WPA weite Verbreitung gefunden hat.

RC4 (Ron's Code 4) wurde 1987 von Ronald L. Rivest entwickelt, ist eine Marke von RSA Security und offiziell geheim (Security by Obscurity). ARC4 (Alleged RC4) oder Arcfour geht auf eine anonyme Veröffentlichung von Quelltext im Jahr 1994 zurück und ist Open Source.

Inhaltsverzeichnis

Beschreibung

Eine Zufallsfolge wird aus einem nur einmalig zu verwendenden Schlüssel erzeugt. Der Klartext wird Bit für Bit per XOR mit der Zufallsfolge verknüpft, um die Daten zu verschlüsseln.

Der Zufallsgenerator verwendet eine so genannte S-Box, eine zufällig gewählte Permutation oder Substitution der Zahlen 0 bis 255. Die S-Box wird in einem ersten Schritt aus dem geheimen Schlüssel berechnet und anschließend zur Berechnung der Zufallsfolge verwendet. Nach jedem Berechnungsschritt werden zwei Werte der S-Box vertauscht.

Die Sicherheit eines solchen Verfahrens ist nur gewährleistet, wenn sich die Zufallsfolge nicht wiederholt. Daher darf der Schlüssel bzw. das Passwort nur einmalig verwendet werden. Für die Besetzung der S-Box und die Werte zweier weiterer Variablen gibt es ca. 21684 Möglichkeiten. Was einer Schlüssellänge von 210 (1684/8) Zeichen entsprechen würde. Nach dem Geburtstagsparadoxon ist zu erwarten, dass es Schlüssel mit einer Schlüssellänge von ((1684/2)/8) 105 Zeichen gibt, die identische Permutationen der S-Box erzeugen. Bekannt sind mittlerweile mindestens zwei 24 Zeichen (192 Bit) lange Schlüssel, die zur gleichen Permutation der S-Box führen. Damit gibt es zwei verschiedene Schlüssel, die zur gleichen Verschlüsselungsfolge führen[1].

Der Algorithmus ist sehr einfach mit praktisch jeder Hard- und Software zu implementieren und sehr effizient berechenbar. Die Verarbeitungsgeschwindigkeit des DES ist selbst in kleinsten Mikrocontrollern meist ausreichend. Der Schlüssel beim DES und anderen Blockchiffren wie dem AES (CBC-Mode) kann im Gegensatz zum RC4 auch mehrfach verwendet werden. Vergleichbare Stromchiffren wie SEAL sind vergleichbar schnell und gelten als sicher.

Im WEP wurde der einmalige Schlüssel durch einfaches Zusammensetzen eines festen geheimen Schlüssels und eines Session Key bestimmt. In diesem Fall ist es jedoch möglich, den festen geheimen Schlüssel abzuleiten. Falls der Schlüssel mit einer Hash-Funktion quasi zufällig gewählt wird, kann der RC4 aber weiterhin als sicher betrachtet werden.

Bei Microsoft-Windows-Systemen, welche an eine NT-Domäne angebunden sind, wird das Anmeldepasswort, welches der Benutzer in der GINA-Oberfläche eingibt, nach vorangegangener Aushandlung eines Schlüssels per RC4-HMAC verschlüsselt und durch einen Kerberos-Frame an den Server übertragen. Die Aushandlung des Schlüssels findet während der Meldung „Netzwerkverbindungen werden vorbereitet“ statt.

Algorithmus

Die Nachschlagephase von RC4 bei einem Alphabet der Größe eines Bytes. Das Ausgabebyte wird von den Werten S[i] und S[j] ausgewählt, diese werden addiert modulo 256 gerechnet.

Kern des Verfahrens ist die so genannte S-Box, eine zufällige Vertauschung oder Permutation des Standard-Alphabets (Byte-Werte 0-255). Mittels der S-Box wird eine Zufallsfolge erzeugt, die Bit für Bit durch Addition modulo 2, auch XOR-Verknüpfung genannt, mit dem Nachrichtenstrom verknüpft wird. Die S-Box wird zunächst als identische Abbildung vorbesetzt, so dass S[i] = i für i=0 bis 255 gilt.

Die initiale Belegung der S-Box kann mit dem folgenden Pseudo-Code beschrieben werden. Die S-Box wird dabei aus dem Schlüssel k der Länge L Byte berechnet:

 k[]: gegebene Schlüssel-Zeichenfolge der Länge 5 bis 256 Byte
 L := Länge des Schlüssels in Byte
 s[]: Byte-Vektor der Länge 256
 Für i = 0 bis 255
   s[i] := i
 j := 0
 Für i = 0 bis 255
   j := (j + s[i] + k[i mod L]) mod 256
   vertausche s[i] mit s[j]


Die anschließende Berechnung der Zufallsfolge erfolgt analog:

 klar[]: gegebene Klartext-Zeichenfolge der Länge X
 schl[]: Vektor zum Abspeichern des Schlüsseltextes
 i := 0
 j := 0
 Für n = 0 bis X-1
   i := (i + 1) mod 256
   j := (j + s[i]) mod 256
   vertausche s[i] mit s[j]
   zufallszahl := s[(s[i] + s[j]) mod 256]
   schl[n] := zufallszahl XOR klar[n]


Zum Entschlüsseln verwendet man den gleichen Algorithmus, wobei der Schlüsseltext anstelle des Klartextes eingegeben wird. Zwei XOR-Verknüpfungen mit derselben Zufallszahl heben sich gegenseitig auf, und als Ausgabe entsteht wieder der Klartext.

Nennenswerte Schwächen des Verfahrens liegen allein in der Initialisierung der S-Box begründet. Bei einer zufällig gewählten S-Box als Ausgangspunkt der Berechnung ist das Verfahren trotz seiner Einfachheit gegenwärtig (Jan. 2011) praktisch nicht zu knacken.

Sicherheit

RC4 liefert sehr effizient eine Pseudozufallszahlenfolge, die mit dem Nachrichtenstrom durch XOR verknüpft wird (bei der zweiten XOR-Verknüpfung erscheint wieder das Original). Die Folge kann im Prinzip beliebig lang gemacht werden, in der Praxis der Nachrichtenübertragung treten jedoch Synchronisationsverluste auf, so dass neu aufgesetzt werden muss. Der dabei verwendete neue Schlüssel besteht aus einem offen übertragenen Teil und einem geheimen Teil. Der offene Teil sorgt für eine andere Zahlenfolge, der geheime Teil garantiert die Sicherheit.

In der WEP-Anwendung wird die Folge ab dem ersten Byte verwendet. Genau für dieses Byte besteht aber eine Simulationsmöglichkeit: die Initialisierung des Algorithmus wird nachvollzogen und dabei das nächste Schlüsselbyte des geheimen Schlüssels „geraten“. Die Wahrscheinlichkeit, dass das nun auszugebende erste Byte der Zahlenfolge in der weiteren Initialisierung nicht mehr verändert wird, ist relativ groß. Hat man genügend viele Neusynchronisationen mit neuen offenen Schlüsselteilen aufgezeichnet, so fällt ein richtig geratenes Schlüsselbyte statistisch auf. Man fährt so fort, bis alle geheimen Schlüsselbytes ermittelt sind. Das erste Byte der Zahlenfolge erhält man aus dem Datenstrom, da die Klartexte der ersten Bytes der Datagramme aus den Datenübertragungsprotokollen bekannt sind.

Der Angriff gelingt nur, wenn das erste Byte zur Verfügung steht. Das Verwerfen der ersten fünf bis zehn Bytes ist für die Wiederherstellung der Sicherheit ausreichend. Bei der Neuauflage der Protokolle (WPA) wurde aber auch direkt ein anderes Verschlüsselungsverfahren eingeführt, da die XOR-Stromverschlüsselung weitere Angriffsmöglichkeiten bietet: ist der Aufbau eines Datensatzes bekannt, besteht nämlich die Möglichkeit der Fälschung. Beispielsweise werden bei Banküberweisungen Kontonummer, Betrag usw. immer an der gleichen Position stehen, Kontonummern und Beträge sind relativ systematisch aufgebaut. Durch ein einfaches XOR mit entsprechend berechneten Masken lassen sich Beträge und Kontonummern verändern (z. B. 1000 addieren), wobei der Betrug nur mit einer gewissen Wahrscheinlichkeit auffällt. Allerdings besteht für den Angreifer lediglich die Möglichkeit der ungezielten Fälschung. Er kann kein bestimmtes Zielkonto angeben und auch den verschlüsselten Text nicht lesen. Diese Art des Angriffs existiert bei Blockchiffren wie DES oder AES in ähnlicher Form, denn je nachdem welcher Modus gewählt wurde lassen sich die Datenblöcke löschen, kopieren oder austauschen. Beim einen Modus sind die Blöcke voneinander abhängig und bei dem anderen nicht.

Weblinks

Quellen

  1. Mitsuru Matsui. Key Collisions of the RC4 Stream Cipher. Fast Software Encryption 2009, in Lecture Notes in Computer Science Nummer 5665. Seiten 38—50. 2009. Springer Verlag. (Präsentation (engl.))

Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • RC4 — (англ. Rivest Cipher 4 или англ. Ron’s Code, также известен как ARCFOUR или ARC4 (англ. Alleged RC4))  потоковый шифр, широко применяющийся в различных системах защиты информации в компьютерных сетях (например, в протоколах… …   Википедия

  • Rc4 — (auch bekannt als ARC4 oder ARCFOUR) ist eine einfache Stromchiffre. Er wurde 1987 von Ronald L. Rivest (Ron s Code 4) für RSA Data Security Inc. (heute RSA Security) entwickelt und von vielen bekannten Unternehmen und in einer Vielzahl von… …   Deutsch Wikipedia

  • RC4 —   [Abk. für Rivest Cipher 4, dt. »Rivest Verschlüsselung 4«, oder auch für Ron s Code 4], ein 1987 von Ronald L. Rivest für die Firma RSA Data Security Inc. (heute RSA Security) entwickeltes Verfahren zur Datenverschlüsselung. Den zugrunde… …   Universal-Lexikon

  • RC4 — In cryptography, RC4 (also known as ARC4 or ARCFOUR meaning Alleged RC4, see below) is the most widely used software stream cipher and is used in popular protocols such as Secure Sockets Layer (SSL) (to protect Internet traffic) and WEP (to… …   Wikipedia

  • RC4 —  Ne doit pas être confondu avec Route coloniale 4. Schéma d un tour de RC4 RC4 est un algorithme de chiffrement à flot conçu en 1987 par Ronald Rivest, l un des inventeurs du …   Wikipédia en Français

  • RC4 — Diagrama del algoritmo RC4. Dentro de la criptografía RC4 o ARC4 es el sistema de cifrado de flujo Stream cipher más utilizado y se usa en algunos de los protocolos más populares como Transport Layer Security (TLS/SSL) (para proteger el tráfico… …   Wikipedia Español

  • RC4 — Rivest Cypher algorithm version (199)4 Verschlüsselungsalgorithmus mit 128bit Schlüssel, siehe auch RC5 …   Acronyms

  • RC4 — ● ►en sg. np. m. ►CRYPTO Rivest Cypher 4. algorithme de chiffrement en continu à clés symétriques et de longueur variable. Utilisé pour chiffrer des fichiers ainsi que des communications, par exemple via SSL …   Dictionnaire d'informatique francophone

  • RC4 — Rivest Cypher algorithm version (199)4 Verschlüsselungsalgorithmus mit 128bit Schlüssel, siehe auch RC5 …   Acronyms von A bis Z

  • RC4 — abbr. Rivest Cipher / Ron s Code 4 (Verschluesselung) …   United dictionary of abbreviations and acronyms