- Stream-cipher
-
Stromverschlüsselung (engl. stream cipher) ist ein kryptographischer Algorithmus, bei dem Zeichen des Klartextes mit den Zeichen eines Schlüsselstroms einzeln (XOR-bei nur zwei verschiedenen Zeichen) verknüpft werden. Der Schlüsselstrom ist eine pseudozufällige Zeichenfolge. Die meisten Stromchiffrierungen benutzen einen symmetrischen Schlüssel. Der Schlüssel bestimmt den Initialzustand des Systems.
Inhaltsverzeichnis
Anwendung
Eine Stromverschlüsselung ist im Gegensatz zum Blockchiffre nicht darauf angewiesen, dass sich erst genug zu verschlüsselnde Daten angesammelt haben, bis sie die Größe für einen Eingabeblock eines Blockchiffres erreicht haben, sondern kann jedes Klartextzeichen sofort in ein chiffriertes Ausgabezeichen übersetzen.
Dieses Zeichen oder Bit kann dann sofort über den unsicheren Kanal (unsicher im Sinn von abhörbar) zum Empfänger übertragen werden.
Daher sind Stromchiffren besonders für Echtzeitübertragungen geeignet (zum Beispiel Mobilfunk).
Arbeitsweise
Eine synchrone Stromchiffrierung generiert den Schlüsselstrom unabhängig vom Klar- oder Schlüsseltext. Das Output Feedback Mode (OFB) von Blockchiffren ist ein Beispiel für eine synchrone Stromchiffrierung. Im Gegensatz dazu hängt bei einem selbstsynchronisierenden Stromchiffre der Schlüsselstrom von vorhergehenden verschlüsselten Bits ab. Ein Beispiel für ein selbstsychronisierendes Stromchiffreverfahren ist das Cipher Feedback Mode (CFB) von Blockchiffren.
Synchrone Stromchiffren werden oft als lineare Schieberegister mit Rückkopplung (Linear Feedback Shift Register, LFSR) konstruiert. LFSR können einfach in Hardware implementiert werden, sind schnell und produzieren Pseudozufallsfolgen mit guten statistischen Eigenschaften.
Schieberegister mit Rückkopplung
Ein Schieberegister mit Rückkopplung besteht aus einem Schieberegister und einer Rückkopplungsfunktion. Das Schieberegister speichert eine Folge von n Bits. Die Rückkopplungsfunktion ist eine Abbildung von {0,1}n auf {0,1}. Wenn ein Bit ausgegeben werden soll, werden alle Bits im Schieberegister um einen Speicherplatz (sagen wir nach rechts) verschoben; das neue Bit am linken Ende des Schieberegisters wird abhängig von den anderen Bits berechnet. Dieser Vorgang zählt als ein Takt.
Das einfachste Schieberegister mit Rückkopplung ist das lineare Schieberegister mit Rückkopplung. Die Rückkopplungsfunktion ist die XOR-Verknüpfung bestimmter Bits des Registers. Diese Bits werden durch das Rückkopplungspolynom festgelegt. Schieberegister mit nichtlinearer Rückkopplung verwenden nichtlineare boolesche Funktionen.
Als Schlüsselstromgenerator auf der Grundlage von LFSRs nimmt man eine oder mehrere LFSR, die meist unterschiedlich lang sind und unterschiedliche Rückkopplungspolynome haben. Damit kombiniert man LFSRs zu nichtlinearen Generatoren. Diese generieren einen Schlüsselstrom.
Angriffe auf Stromverschlüsselungen
Hat ein Angreifer sowohl den Klartext als auch den Chiffretext, so kann er den Schlüsselstrom rekonstruieren. Weitere Nachrichten, die mit diesem Schlüsselstrom verschlüsselt werden, können also zumindest solange entschlüsselt werden, wie Bits im Schlüsselstrom vorliegen. Genau diese Lücke tritt bei der Verschlüsselung von drahtlosen Netzen mittels WEP auf.
Bei hohen Sicherheitsanforderungen ist eine Grundforderung, dass sich der Schlüsselstrom nicht wiederholen darf. Dies kann beispielsweise dadurch erreicht werden, dass eine Einwegfunktion zur Erzeugung des Schlüsselstroms implementiert wird und kein zyklischer Pseudozufallszahlengenerator. Stromchiffrierungen können dann nahezu die Sicherheit vom One-Time-Pad Verfahren erreichen.
Die wichtigsten kryptanalytischen Angriffe gegen LFSR sind der Korrelationsangriff und der algebraische Angriff. Der Korrelationsangriff bildet lineare Approximationen an die nichtlineare Funktion. Der algebraische Angriff nützt die Eigenschaften dünn besetzter Polynome aus.
Beispiele
Stromchiffrierungen, die effizient in Software implementiert werden können, sind zum einen die OFB- und die CFB- Modi von Blockchiffrierungen. Außer diesen existieren proprietäre Stromchiffrierungen, wie RC4, SEAL, A5 oder der Bluetooth-Standard E0.
Auch das Scrambling bei 1000Base-T wird durch Flusschiffre erreicht.
eSTREAM
Das eSTREAM-Projekt ermittelte zwischen Oktober 2004 und Mai 2008 in drei Phasen neue Stromchiffrierverfahren für zukünftige Standards. Es unterscheidet zwei Profile: Profil 1 sind Stromchiffren für Softwareanwendungen, Profil 2 sind Verfahren für Hardware mit limitierten Ressourcen.
Das endgültige Portfolio setzt sich wie folgt zusammen:
- Profil 1: HC-128, Rabbit (patentiert für kommerzielle Anwendung), Salsa20/12 und SOSEMANUK;
- Profil 2: F-FCSR-H v2, Grain v1, MICKEY v2 und Trivium.
In der Revision vom September 2008 wurde wegen Sicherheitsmängel F-FCSR-H aus dem Portfolio herausgenommen.
Literatur
- A. J. Menezes, P. C. van Oorschot, S. A. Vanstone: Handbook of Applied Cryptography. CRC Press, 1996, S. 181-222.
- Schneier, B.: Angewandte Kryptographie, Addison-Wesley, S.425-482, 1996.
Weblinks
- eSTREAM-Projekt
- Solitaire-Algorithmus von Bruce Schneier
- Klaus Pommerening: Bitstrom-Verschlüsselung, Fachbereich Mathematik der Johannes-Gutenberg-Universität
Siehe auch
Wikimedia Foundation.