Arcfour

Arcfour

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 Standards wie SSH 1, HTTPS und WEP bzw. WPA eingesetzt. Der Algorithmus war sieben Jahre lang geheim („security by obscurity“), bis 1994 der Quellcode anonym veröffentlicht wurde.

Inhaltsverzeichnis

Beschreibung

Eine Zufallsfolge wird aus einem nur einmalig zu verwendenden Schlüssel erzeugt. Der Klartext wird Byte für Byte 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. 21700 Möglichkeiten. Eine zufällige Wiederholung ist damit praktisch undenkbar.

Der Algorithmus ist sehr einfach mit praktisch jeder Hard- und Software zu implementieren und sehr effizient berechenbar. Die Verarbeitungsgeschwindigkeit des DES ist jedoch selbst in kleinsten Mikrokontrollern 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 verwendeten Alphabets. Das Alphabet basiert auf jedem beliebigen Zeichensystem der Größe 2n (so z. B. 28 für ein Byte). 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 alle Zeichen des verwendeten Alphabets 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 in Byte berechnet:

 Initialisierung:
 Setze j = 0
 Setze k[] = (Schlüssel-Zeichenfolge beliebiger Länge > 0 )
 Setze s[] = (sBox-Zeichenfolge der Länge 2^n)
 Für i = 0 bis LängeVon(s)
   s[i] = i
 j = 0
 Für i = 0 bis LängeVon(s)
   j = (j + s[i] + k[i mod LängeVon(k)]) mod LängeVon(s)
   vertausche(s[i],s[j])


Die anschließende Berechnung der Zufallsfolge erfolgt analog:

 Setze i = 0 und j = 0
 Wiederhole für alle Zeichen des Nachrichtenstroms
   i = (i + 1) mod LängeVon(s)
   j = (j + s[i]) mod LängeVon(s)
   vertausche(s[i],s[j])
   Zufallszeichen = s[(s[i]+s[j]) mod LängeVon(s)]
   ChiffreZeichen = Zufallszeichen XOR (nächstes Zeichen des Nachrichtenstroms)

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 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


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

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

  • Arcfour — Arcfour, signifiant « Allegedly RC4 » (« RC4 supposé ») est un algorithme de chiffrement symétrique équivalent à RC4. Jusqu en 1994, RC4 était un secret industriel conservé par RSA Data Security, Inc. Le code de l algorithme… …   Wikipédia en Français

  • ARCFOUR — Saltar a navegación, búsqueda RC4 Obtenido de ARCFOUR …   Wikipedia Español

  • 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 — 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 …   Deutsch Wikipedia

  • Ssh — im TCP/IP‑Protokollstapel: Anwendung SSH Transport TCP Internet IP (IPv4, IPv6) Netzzugang Ethernet Tok …   Deutsch 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

  • Secure Shell — SSH im TCP/IP‑Protokollstapel: Anwendung SSH Transport TCP Internet IP (IPv4, IPv6) Netzzugang Ethernet Token …   Deutsch Wikipedia

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

  • Topics in cryptography — This article is intended to be an analytic glossary , or alternatively, an organized collection of annotated pointers.Classical ciphers*Autokey cipher *Permutation cipher*Polyalphabetic substitution **Vigenère cipher*Polygraphic substitution… …   Wikipedia

  • PuTTY — infobox software name = PuTTY caption = PuTTY main configuration dialog on Windows developer = Simon Tatham latest release version = 0.60 latest release date = release date|2007|04|29 operating system = Cross platform programming language = C… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”