Projects & Papers · Code Snippets · Links · About Page views:


Blockchiffriermodi


  Inhalt

Vorwort

Mit der Wahl des Chiffrieralgorithmus, der zur Verschlüsselung der Daten eingesetzt wird, wird auch die Blocklänge (z.B. 64 Bits bei DES) festgelegt, also die Länge an Daten, die bei einem Durchlauf des Algorithmus verschlüsselt wird. Um Daten variabler Länge zu verschlüsseln, muß eine Strategie gewählt werden, die eine mehrmalige Anwendung des Chiffrieralgorithmus erlaubt, ohne die Sicherheit der verschlüsselten Daten zu sehr zu beeinträchtigen. Zu diesem Zweck wurden vier verschiedene Blockchiffriermodi entworfen, die praktisch alle Einsatzgebiete der Verschlüsselung abdecken.


Electronic Codebook (ECB)

Electronic Codebook (ECB)

Dies ist der einfachste aller Modi. Bei diesem werden die Daten einfach Block um Block (mit der festgesetzten Blocklänge) mit dem Chiffrieralgorithmus und dem gewählten Schlüssel verschlüsselt. Da jedem Klartext-Block ein eindeutiger Chiffretext-Block zugeordnet wird, kann man sich diese Abbildung in einem gigantischen "Codebook" geschrieben vorstellen, weshalb sich der Name dieses Modus ergibt. Falls die Länge der Daten kein Vielfaches der Blocklänge ist, muß der letzte Block gepadded werden. Dabei ist wichtig, daß das Padding mit zufälligen Zeichen stattfindet, um eine Kryptoanalyse des Blockes zu erschweren.

Durch die einfache, blockweise Anwendung des Chiffrieralgorithmus ist dieser Modus relativ schnell, und die Ver- und Entschlüsselung ist parallel durchführbar. Aufgrund der Unabhängigkeit der Blöcke voneinander ergeben sich jedoch auch seine starken Nachteile. Muster im Klartext finden sich im Chiffretext wieder, weil gleichen Klartextblöcken gleiche Chiffretextblöcke zugeordnet sind, und Blöcke im Chiffretext können einfach wiederholt, entfernt, ersetzt, oder an anderen Positionen wieder eingefügt werden (Cut-and-Paste-Angriff). Ein Fehler in einem Block zerstört diesen, wirkt sich aber nicht auf andere aus. Synchronisationsfehler (Bitverlust) können nur behoben werden, wenn der Verlust einer ganzen Blocklänge entspricht.

Der ECB-Modus ist geeignet zur Übertragung von echt zufälligen Daten und einzelnen Werten (z.B. Schlüsseln). Des weiteren kann der Modus bei Public-Key-Verschlüsselung eingesetzt werden.


Cipher Block Chaining (CBC)

Cipher Block Chaining (CBC)

Um Muster im Klartext zu verbergen, wird bei diesem und bei den anderen Chiffriermodi der Output von den vorherigen Blöcken abhängig gemacht. Beim CBC-Modus wird dies erreicht, indem der Plaintext-Block mit dem vorherigen Chiffretext-Block bzw. initial mit dem sogenannten Initialisierungsvektor (IV) XOR-verknüpft wird. Der IV ist ein zufälliger Wert der Größe einer Blocklänge, der nur Sender und Empfänger bekannt sein darf (denn aufgrund der XOR-Eigenschaft wirkt sich eine Manipulation von Bits des IV direkt auf die Bits im 1. Block aus) und aus Sicherheitsgründen nur einmal verwendet werden sollte. Wie beim ECB-Modus muß der letzte Block gepadded werden.

Durch die Abhängigkeit der Blöcke untereinander werden nicht nur Muster verborgen und die Eingabe randomisiert, sondern auch eine Manipulation des Chiffretextes erschwert, da ein Block nur bei richtiger Abfolge der Blöcke korrekt dekodiert werden kann. Ein Entfernen von Blöcken am Ende bleibt jedoch unbemerkt. Eine weitere Auswirkung dieser Abhängigkeit ist, daß die Verschlüsselung nicht mehr parallel durchführbar ist (die Entschlüsselung jedoch schon). Ein Fehler im Chiffretext zerstört den betroffenen Block und wirkt sich auf die entsprechenden Bits im nächsten Block aus.

Der CBC-Modus eignet sich zur blockorientierten Übertragung von Daten und zur Authentifizierung und kann wie der ECB-Modus bei Public-Key-Verschlüsselung eingesetzt werden.


Cipher Feedback (CFB)

Cipher Feedback (CFB)

Obwohl alle Verschlüsselungsalgorithmen auf Blöcken konstanter Größe operieren (und die Daten daher bei den bisherigen Chiffriermodi gepadded werden müssen), kann mit den Feedback-Blockchiffriermodi eine Stromchiffrierung erreicht werden. Die Länge der Zeichen kann in Bitgröße gewählt werden (üblicherweise 8 Bits). Mit der Stromchiffrierung fällt zum einen das Padding weg, zum anderen können die Daten in Echtzeit verschlüsselt werden.

Beim CFB-Modus wird initial der IV mit dem Schlüssel kodiert und dann die obersten (most-significant) Bits des Outputs mit dem Plaintext-Zeichen XOR-verknüpft, wodurch sich das Chiffrezeichen ergibt. Der IV wird dann fortlaufend um die Anzahl der Bits pro Zeichen nach links geshiftet und mit den Bits des vorigen Chiffrezeichens von rechts aufgefüllt. Die Entschlüsselung funktioniert praktisch wie die Verschlüsselung, nur daß vor der XOR-Verknüpfung des Chiffrezeichen dieses in den IV geshiftet wird. Bemerkenswert ist, daß nur die Verschlüsselung des Verschlüsselungsalgorithmus benützt wird.

Wie beim CBC-Modus werden durch die Abhängigkeit der Zeichen voneinander Muster im Klartext verborgen und eine Manipulation des Chiffretextes erschwert. Auch hier ist nur die Entschlüsselung parallel ausführbar. Eine besondere Eigenschaft dieses Modus ist, daß er sich von Synchronisationsfehlern nach einer Blocklänge erholt, d.h. daß bei Verlust von Bits nach einer Blocklänge die Daten wieder korrekt dekodiert werden. Fehler im Chiffretext invertieren die entsprechenden Bits im Klartext und zerstören den darauffolgenden Block.

Als Stromchiffrierung dient der CFB-Modus zur zeichenorientierten Übertragung von Daten (z.B. Eingaben über Terminals) und zur Authentifizierung. Da nur die Verschlüsselung des Verschlüsselungsalgorithmus benützt wird, kann dieser Modus nicht bei Public-Key-Verschlüsselung eingesetzt werden.


Output Feedback (OFB)

Output Feedback (OFB)

Der OFB-Modus ist dem CFB-Modus aus dem vorangehenden Abschnitt sehr ähnlich, was bedeutet, daß auch dieser Modus - unabhängig von der Blockgröße des gewählten Verschlüsselungsalgorithmus - die Chiffrierung von Bit-Blöcken beliebiger Länge unterstützt.

Der einzige Unterschied liegt in der Berechnung der Initialisierungsvektoren: Nachdem r bits des Plaintextes mit dem verschlüsselten IV XOR-verknüpft wurden, wird der IV um r bits nach links geshiftet und mit den obersten r bits des verschlüsselten IVs aufgefüllt.

Dadurch ergeben sich folgende Konsequenzen:

  1. Die Berechnung der Initialisierungsvektoren ist unabhängig vom Plain- und Chiffretext.
  2. Bitfehler im Chiffretext wirken sich exakt auf das korrespondierende Bit im Plaintext aus und nicht auf den gesamten Block oder gar darauf folgende.

Aufgrund der Robustheit dieses Chiffrieralgorithmus gegen Fehler im Chiffretext eignet er sich besonders für Übertragungen über unzuverlässige Verbindungen. Diese Eigenschaft ist aber zugleich die größte Schwachstelle des Algorithmus, weil sie ihn anfällig für alle Arten von Bitmanipulationen und Known-Plaintext Attacken macht: kennt ein Angreifer den unverschlüsselten Text, kann er den Chiffrestrom mit diesem XOR-verknüpfen, um die Zufallsfolge zu erhalten, die aus dem Initialisierungsvektor berechnet wurde. Mit ihr können nun beliebige Texte XOR-verknüpft und als Chiffrestrom weitergeschickt werden. Der Empfänger der Nachricht hat (ohne weitere Hilfsmittel) keine Chance festzustellen, ob der entschlüsselte Chiffretext manipuliert wurde oder nicht.


Gegenüberstellung der Blockchiffriermodi

ECBCBCCFBOFB
Sicherheit
Muster verborgen und Eingabe randomisiertneinjajaja
sicher gegenüber Blockmanipulationenneintw.tw.nein
sicher gegenüber Bitmanipulationenjajajanein
Effizienz
Verschlüsselung parallelisierbarjaneinneinnein
Entschlüsselung parallelisierbarjajajanein
benötigt Paddingjajaneinnein
Fehleranfälligkeit
Bitfehler zerstört kompletten Blockjajajanein
stabil gegenüber Synchronisationsfehlernneinneinjanein


Entscheidungshilfe zur Anwendung

ECBÜbertragung von echt zufälligen Daten und einzelnen Werten (z.B. Schlüsseln), Public-Key-Verschlüsselung
CBCblockorientierte Übertragung, Authentifizierung, Public-Key-Verschlüsselung
CFBzeichenorientierte Übertragung (z.B. Terminals), Authentifizierung
OFBzeichenorientierte Übertragung über verrauschte Kanäle (z.B. Satellitenkommunikation)


Copyright 2002, Michael Noisternig, Nicolas Göll, Mark Rehbichler