Harte Nüsse - Verschlüsselungsverfahren und ihre Anwendungen

Stromchiffrierungen und Chiffriermoden

Inhaltsverzeichnis

Neben den Blockalgorithmen gibt es noch eine Familie ganz anderer Verschlüsselungsverfahren, die so genannten Stromchiffrierungen. Bei ihnen wird aus einem geheimen Schlüssel ein pseudozufälliger Bitstrom erzeugt und per bitweisem XOR mit dem Klartext verknüpft. Der Empfänger braucht diese Operation nur zu wiederholen, um aus dem Geheimtext den Klartext zu erzeugen.

Von der Arbeitsweise her entspricht das einem One-Time Pad, allerdings setzt jenes echten Zufall voraus. Die Qualität einer Stromchiffrierung kann daran gemessen werden, wie „zufällig“ der Schlüsselstrom ist. Solche Stromchiffren waren traditionell Domäne des Militärs. Man erzeugt den Schlüsselstrom oft mittels Hardware (rückgekoppelte Schieberegister, vgl. [1, 2]) und erreicht damit sehr hohe Geschwindigkeiten. Eine populäre zivile Anwendung ist der Algorithmus A5, mit dem der Datenverkehr von GSM-Handys chiffriert wird. Es geht aber auch in Software - der unter anderem beim SSL-Protokoll verwendete Algorithmus RC4 ist ein Beispiel hierfür. In Software sind jedoch Blockalgorithmen im Allgemeinen schneller, weil heutige Prozessoren Einheiten von 32 oder 64 Bit parallel verarbeiten und bei kleineren Bitmengen ineffizienter werden.

Beim OFB-Modus (Output Feedback) wird ein zufälliger Block IV immer wieder chiffriert und der so erzeugte Bitstrom per XOR mit dem Klartext verknüpft. Das ist günstig für Echtzeitanwendungen.

Stromchiffrierungen haben den Vorteil, dass man den Schlüsselstrom im Voraus berechnen und daher bit- oder byteweise chiffrieren und sofort übertragen kann. Sie sind also ideal, um etwa Tastendrücke verschlüsselt zu senden (bei einem Blockalgorithmus müsste dazu jeweils auf die Blocklänge „aufgerundet“ werden). Nachteilig ist allerdings, dass der gleiche Schlüsselstrom niemals wiederverwendet werden darf, denn sonst sind gefährliche Angriffe möglich. Außerdem besteht die Gefahr, dass durch so genanntes „Bit umkippen“ gezielt Teile des Klartextes verfälscht werden können: Ändert ein Angreifer ein Bit im Geheimtext, so ändert es sich auch im Klartext. Das liegt in der Natur der XOR-Operation und kann nur durch zusätzliche Prüfsummen erkannt werden.

Beim CBC-Modus (Cipher Block Chain) werden die Klartextblöcke vor dem Chiffrieren per XOR mit dem letzten Geheimtext verknüpft. Das verbirgt Klartextstrukturen und ist zum Beispiel bei Dateiverschlüsselungen üblich.

Jeder Blockalgorithmus lässt sich ebenso als Stromchiffrierung verwenden, beispielsweise im so genannten OFB-Modus (Output Feedback). Dazu wird ein Block „IV“ immer wieder chiffriert und der entstehende Datenstrom als Schlüsselstrom verwendet. „IV“ steht hier für „Initialisierungsvektor“, eine etwas unglückliche Bezeichnung für einen zufälligen, nicht geheimen Startblock.

In der Regel wendet man bei Blockalgorithmen allerdings den CBC-Modus (Cipher Block Chain) an. Das Ergebnis der letzten Chiffrierung wird dabei zunächst per XOR mit dem nächsten Klartextblock verknüpft und erst dieses Ergebnis chiffriert. Dadurch wird die Klartextstruktur zerstört, über die man beim simplen blockweisen Verschlüsseln noch Aussagen machen könnte (beispielsweise würde 1 KByte Nullen 128 gleiche 64-Bit-Geheimtextblöcke erzeugen). Vor- und Nachteile der bekannten Chiffriermoden sind in [1, Kap. 9.11] detailliert dargelegt.