Electronic Code Book Mode (ECB Mode) ist eine Betriebsart (Modus, Mode) für Blockverschlüsselungen. Der Name des Modus rührt daher, dass Codebücher über die Zuordnung von Chiffretexten und Klartexten erstellt werden können.
Ein Betriebsmodus erlaubt es, mit einem Blockverschlüsselungsalgorithmus wie beispielsweise Data Encryption Standard (Blocklänge 64 Bit) oder der Advanced Encryption Standard (Blocklänge 128 Bit) mehr als einen Block zu verschlüsseln.
ECB ist der einfachste Betriebsmodus, denn die Klartextblöcke werden unabhängig voneinander verschlüsselt. Dadurch ergeben, bei gleichem Schlüssel, gleiche Klartextblöcke immer den gleichen Geheimtextblock. Dies ist auch der große Nachteil dieses Verfahrens, denn dadurch bleiben Klartextmuster erhalten. In nachfolgenden Abbildungen ist die Struktur des ECB bei der Ver- und Entschlüsselung dargestellt:
Wenn man eine Grafik damit verschlüsselt, die nur aus einigen schwarzen Linien besteht, und dabei 0 (Bit) für Weiß und 1 (Bit) für Schwarz steht, wird man sehr viele Blöcke finden, die nur aus 0 bestehen. Alle diese Blöcke sind dann auch im Geheimtext gleich. Dadurch könnte man die Zeichnung bis auf ein paar Millimeter Abweichung rekonstruieren, ohne den Schlüssel zu kennen.
Dieses Problem lässt sich anhand der folgenden Grafik anschaulich verdeutlichen, die einmal im ECB-Modus und einmal in einem anderen Verschlüsselungsmodus mit Blockverkettung, wie zum Beispiel CBC-Modus, verschlüsselt wurde:
Original | Verschlüsselt im ECB-Modus | Verschlüsselt in einem verketteten Modus |
Durch die fehlende Blockverkettung bleiben einheitliche und großflächige Bereiche, welche sich über mehrere Blöcke erstrecken, im Chiffrat immer noch erkennbar. Damit bietet er eine einfache Angriffsfläche für statistische Analysen. Zu den grundsätzlichen Problemen gehört, dass der ECB-Modus die Häufigkeit von Blöcken im unverschlüsselten Text durch die fehlende Blockverkettung nicht ausreichend verwischt.
Diese negativen Effekte des ECB-Modus sind unabhängig von der konkreten Blockverschlüsselung – auch eine an sich als „sicher“ geltende Blockverschlüsselung kann durch Einsatz im Betriebsmodus ECB in einer konkreten Anwendung „unsicher“ werden. Die Implementierung und Anwendung des unsicheren ECB-Modus erfolgt von Entwicklern meist aus Unkenntnis der Zusammenhänge und eröffnet so Sicherheitsschwachstellen, welche leicht vermeidbar wären. Generell sollte ein Blockchiffre nie im ECB-Modus betrieben werden, wenn mehr als ein Block verschlüsselt werden soll.
Ein Vorteil von ECB besteht darin, dass auf einzelne verschlüsselte Elemente direkt zugegriffen werden kann, ohne andere verschlüsselte Teile berücksichtigen zu müssen. Dementsprechend kann auch das Verschlüsseln mehrerer Blöcke problemlos parallelisiert erfolgen, weil bei der Verschlüsselung eines Blocks nicht auf das Ergebnis des Vorherigen gewartet werden muss.
Literatur
- Bruce Schneier: Angewandte Kryptographie. Protokolle, Algorithmen und Sourcecode in C. (Der Klassiker). Pearson Studium, München u. a. 2006, ISBN 3-8273-7228-3.