Electronic Code Book (ECB)
Was ist Electronic Code Book (ECB)?
Das Electronic Code Book (ECB) ist ein einfacher Verarbeitungsmodus mit einer Blockverschlüsselung, der meist bei symmetrischer Verschlüsselung verwendet wird. Es handelt sich um eine unkomplizierte Methode zur Verarbeitung einer Reihe von sequenziell aufgelisteten Nachrichtenblöcken.
Der eingegebene Klartext wird in zahlreiche Blöcke unterteilt. Die Blöcke werden einzeln und unabhängig voneinander mit dem Verschlüsselungsschlüssel verschlüsselt (Chiffretext). Dadurch kann jeder verschlüsselte Block auch einzeln entschlüsselt werden. ECB unterstützt einen separaten Verschlüsselungsschlüssel für jeden Blocktyp.
In ECB hat jeder Klartextblock einen definierten entsprechenden Chiffretextwert und umgekehrt. Identische Klartexte mit identischen Schlüsseln werden also immer zu identischen Chiffretexten verschlüsselt. Das bedeutet, dass wenn Klartextblöcke P1, P2 und so weiter mehrfach mit demselben Schlüssel verschlüsselt werden, die ausgegebenen Chiffretextblöcke immer identisch sind.
Mit anderen Worten: Der gleiche Klartextwert führt immer zum gleichen Chiffretextwert. Dies gilt auch für Klartexte mit teilweise identischen Abschnitten. Beispielsweise haben Klartexte, die identische Kopfzeilen eines Briefes enthalten und mit dem gleichen Schlüssel verschlüsselt wurden, teilweise identische Chiffretextabschnitte.

Für jeden beliebigen Schlüssel kann ein Codebuch mit Chiffretexten für alle möglichen Klartextblöcke erstellt werden. Im ECB-Modus umfasst die Verschlüsselung lediglich das Nachschlagen des Klartexts beziehungsweise der Klartexte und die Auswahl des entsprechenden Chiffretextes beziehungsweise der entsprechenden Chiffretexte. Dieser Vorgang ähnelt der Zuweisung von Codewörtern in einem Codebuch. Der Begriff „Codebuch“ leitet sich übrigens von den kryptografischen Codebüchern ab, die während des amerikanischen Bürgerkriegs verwendet wurden.
In Bezug auf die Fehlerkorrektur wirken sich Bitfehler in einem Chiffretextblock nur auf die Entschlüsselung dieses Blocks aus. Eine Verkettungsabhängigkeit spielt keine Rolle. Eine Neuanordnung der Chiffretextblöcke führt lediglich zu einer Neuanordnung der entsprechenden Klartextblöcke. Die Entschlüsselung bleibt davon unberührt.
Data Encryption Standard vs. Electronic Code Book
Der Data Encryption Standard (DES), der Anfang der 1970er Jahre von IBM entwickelt wurde, wurde 1977 zum offiziellen Federal Information Processing Standard (FIPS) erklärt. DES kann fünf Modi zur Verschlüsselung von Daten verwenden. ECB ist einer davon und der ursprüngliche Modus von DES.

Drei weitere Modi, Cipher Block Chaining (CBC), Cipher Feedback (CFB) und Output Feedback (OFB), wurden der FIPS-Veröffentlichung 81 hinzugefügt. Ein fünfter Modus, der Counter Mode, wurde später der NIST Special Publication 800-38a hinzugefügt. Diese Modi unterscheiden sich in ihren Konstruktionsprinzipien, zum Beispiel Block versus (emulierter) Stream, Verwendung von Initialisierungsvektoren und die Wahrscheinlichkeit, dass Verschlüsselungsfehler auf nachfolgende Blöcke übertragen werden.
Von den fünf DES-Modi ist ECB der einfachste und schwächste, da sich durch die Wiederholung des Klartexts auch der Chiffretext wiederholt. Dadurch kann jeder leicht die geheimen Schlüssel ableiten, um die Verschlüsselung zu knacken und den Chiffretext zu entschlüsseln. ECB kann außerdem offensichtliche Klartextmuster im resultierenden Chiffretext hinterlassen.
Die Buchstaben ECB nach einer Verschlüsselung wie DES oder AES – DES-ECB oder AES-ECB – weisen auf die Verwendung des ECB-Modus hin.
Was sind die Nachteile des Electronic Code Book?
Die ECB verwendet einfache Substitution anstelle eines Initialisierungsvektors oder einer Verkettung. Diese Eigenschaften machen sie einfach zu implementieren. Dies ist jedoch auch ihr größter Nachteil. Zwei identische Klartextblöcke führen zu zwei entsprechend identischen Chiffretextblöcken, was sie kryptologisch schwach macht.
ECB eignet sich nicht für kleine Blockgrößen – beispielsweise für Blöcke kleiner als 40 Bit – und identische Verschlüsselungsmodi. Bei kleinen Blockgrößen können bestimmte Wörter und Ausdrücke im Klartext häufig wiederholt werden. Das bedeutet, dass der Chiffretext Muster aus demselben Klartext enthalten (und damit verraten) kann und dass sich dieselben sich wiederholenden Teilblöcke des Chiffretextes ergeben können. Wenn die Klartextmuster offensichtlich sind, bietet dies Angreifern die Möglichkeit, die Muster zu erraten und einen Codebook-Angriff durchzuführen.
Die Sicherheit von ECB ist schwach, kann jedoch durch Hinzufügen von zufälligen Pad-Bits zu jedem Block verbessert werden. Größere Blöcke (64 Bit oder mehr) würden wahrscheinlich genügend einzigartige Merkmale (Entropie) enthalten, um einen Codebook-Angriff unwahrscheinlich zu machen.
Electronic Code Book und Internetsicherheit
ECB wurde ursprünglich entwickelt, um Nachrichten zu verschlüsseln, die nie mehr als einen einzigen Block umfassen, beispielsweise um Schlüssel für andere Vorgänge zu verschlüsseln. Die Verwendung von ECB für Nachrichten, die länger als ein Block sind, führt jedoch zu einer Offenlegung eines Bits pro Block.
Ein Beispiel für dieses Problem ist die Verschlüsselung von Fotos. Trotz der Verschlüsselung lässt die Beschaffenheit des ECB die Umrisse des Fotos deutlich erkennen.
Dies liegt nicht daran, dass die Verschlüsselung selbst versagt hat, sondern daran, dass sie in einer Weise verwendet wird, die nicht vorgesehen war. Internetprotokolle, die einen Betriebsmodus verwenden, der ursprünglich nicht für die Verschlüsselung mehrerer Blöcke konzipiert war, führen zu Sicherheitsrisiken im System.