Cryptology Academy · Lektion

ECB vs. CBC: Muster und IVs

Demonstrieren Sie den ECB-Pinguin-Angriff und erfahren Sie, warum CBC mit einem zufälligen IV erforderlich ist.

Lektion 2 von 413 Schritte

ECB vs. CBC: Muster und IVs ist eine kostenlose Cryptology Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cryptology Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Willkommen

ECB und CBC sind zwei Modi für Blockchiffren. ECB ist wegen der Preisgabe von Mustern bekanntermaßen unsicher. CBC mit einem zufälligen IV ist deutlich sicherer. Sehen wir uns beide im Detail an.

ECB-Modus: Electronic Codebook

ECB verschlüsselt jeden Block unabhängig: Ci = AES(K, Pi). Derselbe Klartextblock ergibt jedes Mal denselben Chiffretextblock. Blöcke innerhalb einer Nachricht oder über mehrere Nachrichten hinweg sind identisch, wenn der Inhalt übereinstimmt.

Der ECB-Pinguin

Der „ECB-Pinguin“ ist eine klassische Demonstration: Verschlüsseln Sie ein PNG-Bild von Tux, dem Linux-Pinguin, mit AES-ECB. Das Ergebnis sieht weiterhin wie der Pinguin aus – gleichfarbige Bereiche werden in dieselben Muster verschlüsselt.

ECB-Schwachstelle: Block-Wiedergabe

Im ECB-Modus kann ein Angreifer Chiffretextblöcke umordnen, ohne den Schlüssel zu kennen: - Blöcke sind unabhängig - Blöcke umordnen → entschlüsselten Klartext umordnen - Blöcke duplizieren → Inhalte duplizieren - Blöcke löschen → Inhalte entfernen

CBC-Modus: Cipher Block Chaining

CBC verknüpft jeden Klartextblock per XOR mit dem vorherigen Chiffretextblock, bevor er verschlüsselt wird: C0 = AES(K, P0 XOR IV) Ci = AES(K, Pi XOR C(i-1)) Derselbe Klartext an unterschiedlichen Positionen ergibt unterschiedlichen Chiffretext.

Initialisierungsvektor (IV)

Der IV ist das „C(-1)“ für den ersten Block. Er muss: - für jede Nachricht zufällig und eindeutig sein - nicht geheim sein (er wird zusammen mit dem Chiffretext übertragen) - niemals mit demselben Schlüssel wiederverwendet werden Ein vorhersehbarer IV beeinträchtigt die Sicherheit von CBC.

CBC-Entschlüsselung

Pi = AES_Dec(K, Ci) XOR C(i-1) P0 = AES_Dec(K, C0) XOR IV Beachten Sie: Für die Entschlüsselung von Block i werden nur Ci und C(i-1) benötigt. Blöcke können parallel entschlüsselt werden (anders als bei der Verschlüsselung).

CBC-Bit-Flipping-Angriff

Das Umkehren von Bit i in Block Ci bewirkt: (1) einen beschädigten Pi und (2) ein vorhersehbares Umkehren von Bit i in P(i+1). Ohne Authentifizierung kann ein Angreifer bestimmte Klartextbits ändern, wenn ihre Position bekannt ist.

BEAST-Angriff auf TLS 1.0 (2011)

BEAST nutzte die Verwendung vorhersehbarer IVs durch TLS 1.0 bei CBC aus. Der letzte Block eines Datensatzes wurde als IV für den nächsten verwendet. Der von Rizzo und Duong demonstrierte Angriff erzwingt Browser-Upgrades auf TLS 1.1 oder höher.

Warum CBC Authentifizierung benötigt

CBC-Verschlüsselung ohne MAC ermöglicht Bit-Flipping- und Padding-Oracle-Angriffe. Kombinieren Sie CBC immer mit HMAC (Encrypt-then-MAC) oder wechseln Sie zu AES-GCM (AEAD bereits integriert).

Praktisches CBC in Python

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes import os iv = os.urandom(16) key = os.urandom(32) cipher = Cipher(algorithms.AES(key), modes.CBC(iv)) enc = cipher.encryptor() ciphertext = enc.update(padded_plaintext) + enc.finalize()

Schnelltest

Warum gibt der ECB-Modus Informationen über die Struktur des Klartexts preis?

Zusammenfassung

ECB ist gefährlich, CBC ist besser, benötigt aber Authentifizierung. Als Nächstes untersuchen wir den CTR-Modus – damit wird AES zu einer Stromchiffre.
Kostenlos starten

Lerne Cryptology Academy mit einem KI-Tutor — kostenlos

Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.

Kurse
67
Lektionen
261

Häufig gestellte Fragen

Ist die Lektion „ECB vs. CBC: Muster und IVs“ kostenlos?

Ja — der vollständige Text von „ECB vs. CBC: Muster und IVs“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cryptology Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cryptology Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „ECB vs. CBC: Muster und IVs“?

Demonstrieren Sie den ECB-Pinguin-Angriff und erfahren Sie, warum CBC mit einem zufälligen IV erforderlich ist. Du übst Cryptology Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cryptology Academy zu starten?

Keine Vorkenntnisse erforderlich. Cryptology Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „ECB vs. CBC: Muster und IVs“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cryptology Academy-Lektion Code schreiben und ausführen?

Ja. Jede Cryptology Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Grundlagen von Blockchiffren und Padding
  2. ECB vs. CBC: Muster und IVs
  3. CTR-Modus und Verhalten von Stromchiffren
  4. GCM und authentifizierte Verschlüsselung
← Zurück zu Cryptology Academy