Verfahren der Kryptographie, Teil 5: Betriebsarten für Blockchiffren
DES verschlüsselt 64 Bit lange Klartextblöcke. Da die zu verschlüsselnden Daten i.d.R. deutlich länger sind und nicht zwingend Blockweise vorliegen, wurden verschiedene Betriebsarten für Blockchiffren wie DES entwickelt und teilweise genormt.
Elektronisches Codebuch (ECB)
Die einfachste Betriebsart einer Blockchiffre besteht darin, die zu verschlüsselnde Nachricht in Blöcke passender Größe aufzuspalten und diese unabhängig voneinander zu ver- und entschlüsseln, siehe Abbildung 1. Dieses Verfahren wird als Elektronisches Codebuch (electronic codebook, ECB) bezeichnet.
Abb. 1: Elektronisches Codebuch (ECB) (Klick für großes Bild)
Ein Fehler bzw. eine Manipulation eines Schlüsseltextblocks betrifft immer nur den zugehörigen Klartextblock.
Der Nachteil dieser Betriebsart ist, dass bei deterministischen Blockchiffren gleiche Klartextblöcke zu gleichen Schlüsseltextblöcken führen, was die Kryptanalyse erleichtert.
Blockchiffre mit Blockverkettung (CBC)
Bei einer Blockchiffre mit Blockverkettung (cipher-block chaining, CBC) wird vor dem Verschlüsseln jedes außer des ersten Blocks der Schlüsseltext des vorhergehenden Blocks zum Klartext modular addiert und beim Entschlüsseln entsprechend subtrahiert, siehe Abbildung 2.
Abb. 2: Blockchiffre mit Blockverkettung (cipher-block
chaining, CBC) (Klick für großes Bild)
Ein Fehler bzw. eine Manipulation eines Schlüsseltextblocks betrifft nur den zugehörigen Klartextblock und seinen Nachfolger (aufgrund der Speicherung und erneuten Verwendung des betroffenen Schlüsseltextblocks). Danach hat sich die Entschlüsselung durch ihre geringe Speichertiefe wieder mit der Verschlüsselung synchronisiert und die folgenden Blöcke werden korrekt entschlüsselt.
Ein Angreifer kann erkennen, ob zwei Klartexte mit den gleichen Blöcken beginnen, da dann auch die Schlüsseltexte gleich beginnen. Um dies zu verhindern, kann der Zwischenspeicher mit einem zufälligen Wert initialisiert werden. Dieser muss dann ebenso wie der Schlüssel beim Entschlüsseln bekannt sein.
Schlüsseltextrückführung (CFB)
Bei der Schlüsseltextrückführung (cipher feedback, CFB) wird statt des Klartexts der Inhalt eines Schieberegisters mit der Blockchiffre verschlüsselt und ein Teil des Ergebnisses beim Verschlüsseln modular zum Klartext addiert bzw. beim Entschlüsseln subtrahiert, siehe Abbildung 3. Das Verfahren wird Schlüsseltextrückführung genannt, da der Schlüsseltext in die Schieberegister geschoben, also rückgeführt wird.
Der Initialisierungswert des Schieberegisters muss ebenso wie der Schlüssel bei der Entschlüsselung bekannt sein.
Abb. 3: Schlüsseltextrückführung (cipher feedback, CFB) (Klick für großes Bild)
Das Bild zeigt den allgemeinen Fall, bei dem der Schlüsseltext nicht direkt in das Schieberegister übernommen, sondern zuvor durch eine Auswahleinheit angepasst wird.
Ein Fehler bzw. eine Manipulation des Schlüsseltextstroms wirkt sich so lange auf den entschlüsselten Klartext aus, bis alle falschen Schlüsseltextzeichen das Schieberegister passiert haben.
Ergebnisrückführung (OFB)
Bei der Ergebnisrückführung (output feedback, OFB) wird im Gegensatz zur Schlüsseltextrückführung nicht der Schlüsseltext, sondern das Ergebnis (output) der Blockverschlüsselung in das Schieberegister rückgeführt, siehe Abbildung 4.
Abb. 4: Ergebnisrückführung (output feedback, OFB) (Klick für großes Bild)
Das Bild zeigt wieder den allgemeinen Fall, bei dem das Ergebnis der Blockverschlüsselung nicht direkt in das Schieberegister übernommen, sondern zuvor durch eine Auswahleinheit angepasst wird.
Ein Fehler bzw. eine Manipulation des Schlüsseltextstroms betrifft immer nur die jeweils zugehörigen Klartextzeichen. Es ergibt sich also keine Fehlererweiterung.
Counter-Mode (CTR)
Der Counter-Mode (CTR) weist im Vergleich zu den anderen Betriebsarten eine Besonderheit auf: Der Initialisierungsvektor wird aus einer für jede Verschlüsselung neu zu wählenden Zufallszahl (Nonce), die mit einem mit jedem weiteren Block hochgezählten Zähler verknüpft wird, gebildet. Die Verknüpfung kann zum Beispiel durch einfaches Anhängen des Zählers (Konkatenation), Addition oder XOR-Verknüpfung erfolgen.
Bei der Verschlüsselung wird zunächst der aus Nonce und Zähler gebildete Initialisierungsvektor ctri mit dem Schlüssel S verschlüsselt: Verschlüsselung(S, ctri). Danach wird dieser "Zwischenschlüssel" über XOR mit dem Klartext verknüpft, um den Schlüsseltext zu erhalten:
Schlüsseltextblocki = Klartextblocki ⊕ Verschlüsselung(S, ctri)
Die Entschlüsselung erfolgt analog: Zuerst wird der gleiche Initialisierungsvektor wie bei der Verschlüsselung ctri mit dem Schlüssel S verschlüsselt: Verschlüsselung(S, ctri). Danach wird dieser "Zwischenschlüssel" über XOR mit dem Schlüsseltext verknüpft, um den Klartext zu erhalten:
Klartextblocki = Schlüsseltextblocki ⊕ fVerschlüsselung(S, ctri)
Für den Ablauf der Ver- und Entschlüsselung siehe Abbildung 5.
Abb. 5: Counter-Mode (CTR) (Klick für großes Bild)
Ein Fehler bzw. eine Manipulation des Schlüsseltextstroms wirkt sich nur auf die entsprechenden Bits des Klartextstroms aus. Die Vorteile des CTR-Mode ist der wahlfreie Zugriff auf jeden verschlüsselten Block und die Möglichkeit, sämtliche Ver- und Entschlüsselungsoperationen parallel durchzuführen.
Der Einsatz der Betriebsarten
Aus jeder symmetrischen oder asymmetrischen deterministischen Blockchiffre kann mit ECB, CBC und CFB eine selbstsynchronisierende und mit OFB oder CTR eine synchrone Stromchiffre konstruiert werden.
Die Betriebsarten ECB, CBC, CFB und OFB wurden u.a. in FIPS PUB 81 und ISO/IEC 10116 genormt. In der NIST Special Publication 800-38A, "Recommendations for Block Cipher Modes of Operation, Methods and Techniques" (PDF) werden sie für alle von FIPS zugelassenen Blockchiffren erneut spezifiziert und um den Counter-Mode (CTR) erweitert.
Eine Erweiterung des Counter-Mode ist der Galois/Counter Mode, bei dem zur Verschlüsselung die Authentifikation der Daten hinzu kommt.
Ab der nächsten Folge wird der Nachfolger des DES-Verfahrens, der Advanced Encryption Standard AES, vorgestellt.
Trackbacks
Dipl.-Inform. Carsten Eilers am : Kryptographie - Ein Überblick
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Drucksache: PHP Magazin 1.18 - Welche Kryptoverfahren sollte man verwenden bzw. meiden?
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Drucksache: Windows Developer 1.18 - Sicherheit von Kryptoverfahren
Vorschau anzeigen
entwickler.de am : PingBack
Die Anzeige des Inhaltes dieses Trackbacks ist leider nicht möglich.Dipl.-Inform. Carsten Eilers am : Drucksache: Entwickler Magazin 1.19: Wie sicher sind die Mobilfunknetze?
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Drucksache: Mobile Technology Digital Volume 34 - Mobile Security - Wie sicher sind die Mobilfunknetze?
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Drucksache: Windows Developer 3.19 - Wie sicher sind die Mobilfunknetze?
Vorschau anzeigen