# Betriebsmodus (Kryptographie)

Ein Betriebsmodus oder eine Betriebsart ist ein Verfahren, das beschreibt, wie mit einer Blockchiffre Nachrichten verschlüsselt werden. Erst die Kombination von Blockchiffre und Betriebsmodus erlaubt es, Nachrichten zu verschlüsseln, die länger sind als die Blocklänge. Üblicherweise wird dazu die Nachricht in mehrere Blöcke aufgeteilt und durch Padding auf eine passende Länge gebracht. Ein Initialisierungsvektor (IV) kann das Verfahren zusätzlich unabhängig vom verwendeten Schlüssel randomisieren.

## Klassische Betriebsarten
### Electronic Code Book Mode

Die einfachste Betriebsart ist, jeden Block unabhängig von den anderen zu verschlüsseln. Dieses Verfahren heißt Electronic Code Book Mode (ECB) und hat folgende Eigenschaften.
* Gleiche Nachrichtenblöcke werden auch gleich verschlüsselt.
* Eine Vertauschung von Blöcken im Chiffrat führt zur gleichen Vertauschung der Blöcke in der entschlüsselten Nachricht.
* Ein Fehler in einem Block beeinflusst nur die Entschlüsselung dieses Blocks.
Von der Verwendung des ECB-Modus wird daher abgeraten, es sei denn, es soll nur einmal ein einziger Nachrichtenblock verschlüsselt werden.

### Cipher Block Chaining Mode

Die Probleme des ECB können durch Cipher Block Chaining (CBC) behoben werden. Dabei wird ein Nachrichtenblock vor dem Verschlüsseln mit dem vorhergehenden Chiffratblock verknüpft. Für den ersten Block nimmt man hierzu einen Initialisierungsvektor. Da ein Chiffratblock nun von allen vorhergehenden Blöcken abhängt, ist eine Umordnung der Blöcke nicht mehr möglich, ohne die Entschlüsselung zu beeinträchtigen. Da die Verschlüsselung auch vom Initialisierungsvektor (IV) abhängt, werden zwei gleiche Nachrichten mit unterschiedlichen IVs auch unterschiedlich verschlüsselt. Dieser Modus hat außerdem folgende Eigenschaften.
* Eine Änderung eines Bits in einem Chiffratblock hat zur Folge, dass der entsprechende Klartextblock randomisiert wird, während im Klartext des darauffolgenden Blocks genau das gleiche Bit geändert wird.
* Ein Fehler in einem Block, z. B. bei der Übertragung des verschlüsselten Textes, wirkt sich nur auf den entsprechenden und den darauffolgenden Klartextblock aus.

### Propagating Cipher Block Chaining Mode

Dieser Modus (PCBC) unterscheidet sich von CBC dadurch, dass ein Klartextblock $P_{i}$ auch mit dem vorhergehenden Klartextblock $P_{i-1}$ verknüpft wird. Die Chiffratblöcke $C_{i}$ werden mit dem Schlüssel $K$ also berechnet zu
    $C_{0}=E_{K}(P_{0}\oplus {\text{IV}})$,
    $C_{i}=E_{K}(P_{i}\oplus P_{i-1}\oplus C_{i-1});\quad i\geq 1$.
Mit PCBC wirkt sich die Verfälschung eines Schlüsseltextblocks auf alle nachfolgenden Blöcke des Dechiffrats aus.

### Cipher Feedback Mode

Falls auch Nachrichten verschlüsselt werden sollen, deren Länge kein Vielfaches der Blocklänge ist, kann die Blockchiffre im Cipher Feedback Mode (CFB) als selbstsynchronisierende Stromchiffre verwendet werden. Hierbei wird zuerst ein Initialisierungsvektor verschlüsselt und das Ergebnis auf die Nachricht addiert. Die daraus resultierenden Bits des Chiffrats werden in das Klartextregister geschoben und verdrängen dort genauso viele Bits des IV. Das Ergebnis wird wieder verschlüsselt und auf die nächsten Nachrichtenbits addiert. Wie beim CBC-Modus hängt ein Chiffratbit von der Nachricht und den vorhergehenden Chiffratbits ab. Ein Fehler wirkt sich solange auf die Verschlüsselung aus, bis das fehlerhafte Bit aus dem Klartextregister geschoben wurde.

### Output Feedback Mode

Beim Output Feedback Mode wird im Unterschied zum Cipher Feedback Mode nicht ein Chiffratblock, sondern die Ausgabe der Verschlüsselungsfunktion als Feedback genutzt. Dadurch wird jede Fehlerfortpflanzung vermieden, und die Blockchiffre effektiv als synchrone Stromchiffre betrieben; der Schlüsselstrom ist unabhängig von der Nachricht. Das bedeutet auch, dass für jede Nachricht ein anderer Initialisierungsvektor benutzt werden muss, da der gesamte Schlüsselstrom nur von ihm abhängt.

### Counter Mode

Eine Vereinfachung des Output Feedback Modes ist der Counter Mode, bei dem anstelle eines Feedbacks eine Folge natürlicher Zahlen verschlüsselt wird. Damit ist es möglich, einen Block zu entschlüsseln, ohne vorher die anderen Blöcke entschlüsseln zu müssen.

### XTS

XTS verwendet einen Tweak als zusätzliche Eingabe, damit gleiche Nachrichtenblöcke nicht gleich verschlüsselt werden. Der Einsatzzweck von XTS ist Festplattenverschlüsselung.

## Authenticated Encryption-Modi

Authenticated-Encryption-Modi sind Betriebsmodi, die zusätzlich die Nachrichtenintegrität sichern. Alle drei genannten Verfahren bieten AEAD (Authenticated Encryption with Associated Data), d. h. sie ermöglichen die Authentifizierung nicht nur der verschlüsselten, sondern beliebiger weiterer Daten.

### Counter Mode mit CBC-MAC

CCM ist die Kombination von Counter Mode mit einem CBC-MAC. Ein Nachteil ist, dass für jeden Nachrichtenblock zwei Operationen der Blockchiffre nötig sind.

### Galois/Counter Mode

GCM ist ein authentifizierter Verschlüsselungsmodus mit assoziierten Daten. Die Authentifizierung wird durch parallel zur Verschlüsselung laufende Multiplikationen im Galoiskörper $\operatorname {GF} \left(2^{128}\right)$ realisiert.

### EAX-Modus

EAX steht für encrypt-then-authenticate-then-translate (verschlüsseln dann authentifizieren dann übersetzen). Der Modus benötigt wie CCM zwei Blockchiffre-Operationen pro Nachrichtenblock, hat aber ansonsten einige technische Vorteile.