XOR, Runden und Betriebsmodi — zehn Übungen dazu, warum AES Muster verwischt und ECB sie verrät.
Dein Fortschritt:
0 / 0 Aufgaben
1
Übungsaufgaben
Zehn interaktive Übungen zu AES, zum Aufbau einer Runde, zu XOR und zu den Betriebsmodi ECB und CBC. Jede Übung gibt dir sofort Rückmeldung; ab Aufgabe 4 helfen dir zwei gestufte Tipps.
A1
Kenndaten von AES
AFB I
Welche Aussagen über den Advanced Encryption Standard stimmen?
Mehrere Antworten sind richtig. Markiere alle zutreffenden und klicke dann auf „Prüfen“.
Blocklänge und Schlüssellänge sind zwei verschiedene Dinge: Der Block hat immer 128 Bit, der Schlüssel 128, 192 oder 256 Bit — mit 10, 12 bzw. 14 Runden. AES ist öffentlich (Kerckhoffs) und wurde in einem offenen Wettbewerb ausgewählt.
A2
Stimmt’s? — Fünferserie
AFB I
Fünf Behauptungen zu XOR, S-Box und Betriebsmodi.
Fünf Aussagen nacheinander. Eine falsche Einschätzung reicht — dann startest du die Serie mit „Neue Runde“ neu.
Aussage 1 von 5
Geheim ist nur der Schlüssel — Algorithmus und IV dürfen alle kennen. Konfusion (S-Box) und Diffusion (Permutation, Mischen) sind zwei verschiedene Aufgaben in einer Runde.
A3
Aufbau einer Runde
AFB I
Setze die Fachbegriffe an die richtige Stelle — ein Wort bleibt übrig.
Wort anklicken, dann Lücke anklicken (oder umgekehrt) — mit Tab und Enter geht es genauso. Ein Klick auf eine gefüllte Lücke legt das Wort zurück.
Eine Runde ersetzt zuerst kleine Bitgruppen mithilfe einer . Das verschleiert den Zusammenhang zwischen Schlüssel und Geheimtext und heißt . Danach legt eine die Bits um, sodass jedes Eingangsbit auf viele Ausgangsbits wirkt — das ist . Zum Schluss wird der Block per XOR mit dem verknüpft.
Der Initialisierungsvektor gehört nicht in die Runde, sondern zum Betriebsmodus CBC: Er wird nur mit dem ersten Klartextblock verknüpft.
A4
Rechenkette: XOR und Padding
AFB II
Ein Byte Klartext \(p = 1100\,1010\) wird mit dem Schlüsselbyte \(k = 0110\,0101\) per XOR verschlüsselt. Danach geht es um ganze Dateien, die mit AES (128-Bit-Blöcke = 16 Bytes) und PKCS#7-Padding verschlüsselt werden.
Ansatz: XOR Stelle für Stelle: gleiche Bits → 0, verschiedene Bits → 1. Schreibe die acht Bits ohne Leerzeichen oder mit Leerzeichen in der Mitte.
Padding: PKCS#7 füllt immer auf: Auch wenn die Datei genau in Blöcke passt, kommt ein ganzer Block mit 16 Füllbytes dazu.
Rechne die Kette Schritt für Schritt: Erst wenn ein Schritt stimmt, wird der nächste freigeschaltet. Enter prüft.
Geheimtextbyte \(c = p \oplus k\)
Probe: \(c \oplus k\)
Anzahl der AES-Blöcke für eine Datei mit 1000 BytesBlöcke
Größe des Geheimtexts (ohne IV) für eine Datei mit genau 1024 BytesBytes
1100 1010 ⊕ 0110 0101 = 1010 1111, und zurück kommt wieder 1100 1010. 1000 Bytes = 62 volle Blöcke + 8 Bytes, also 8 Füllbytes mit dem Wert 8 → 63 Blöcke. 1024 Bytes = 64 volle Blöcke + 1 Füllblock → 65 · 16 = 1040 Bytes. Typischer Fehler: beim glatten Fall den Füllblock vergessen — dann könnte der Empfänger nicht erkennen, ob die letzten Bytes Füllung oder Daten sind.
A5
Bauplan von AES-128
AFB II
Setze den Ablauf einer AES-128-Verschlüsselung eines Blocks zusammen. Zwei Bausteine gehören nicht hinein.
Anfang: Bevor die erste Runde beginnt, fließt der Schlüssel schon einmal per XOR ein.
Ende: AES-128 hat 10 Runden; in der letzten fehlt ein Mischschritt.
Setze den Bauplan von links nach rechts zusammen. Ein Klick legt den Baustein auf den nächsten freien Platz, ein Klick im Bauplan legt ihn zurück. Enter funktioniert genauso.
AES-128: ein AddRoundKey vorab, dann 10 Runden, die letzte ohne MixColumns — insgesamt 11 Rundenschlüssel. Die Verknüpfung mit dem vorigen Geheimtextblock gehört zum Betriebsmodus CBC, nicht zu AES selbst; 14 Runden hat erst AES-256.
A6
Konfusion oder Diffusion?
AFB II
Ordne jeden Baustein bzw. jede Wirkung dem Prinzip zu, für das er in erster Linie steht.
Denkanstoß: Ändert ein Schritt, welcher Wert an einer Stelle steht, oder wohin ein Wert wandert bzw. mit welchen anderen er vermischt wird?
Ziehe jede Karte in den passenden Korb — oder wähle sie mit Enter aus und drücke dann die Ziffer des Korbs (0 legt sie zurück).
1Konfusion
2Diffusion
Konfusion = ersetzen (S-Box), Diffusion = verteilen und vermischen (ShiftRows, MixColumns, Permutation). Erst beide zusammen, über mehrere Runden wiederholt, erzeugen den Lawineneffekt. Typischer Fehler: die S-Box der Diffusion zuordnen, weil sie „alles durcheinanderbringt“.
A7
Mix: Alte Ideen in neuen Verfahren
AFB II
Interleaving mit 7.1.1 bis 7.2.1: Welches bekannte Prinzip steckt im jeweiligen Baustein moderner Verschlüsselung?
Ansatz: Frage jeweils: Wird Gleiches immer gleich verschlüsselt — oder hängt es von der Position bzw. Vorgeschichte ab?
Zahlen: Ein AES-Schlüssel mit 128 Bit hat \(2^{128}\) Möglichkeiten.
Klicke links einen Eintrag an und dann rechts den passenden — es entsteht eine Verbindungslinie. Mit der Tastatur: Enter zum Auswählen, ↑/↓ zum Wandern.
ECB ist „monoalphabetisch auf Blockebene“: Jeder 128-Bit-Block hat sein festes Gegenstück, deshalb bleiben Muster sichtbar. CBC macht die Verschlüsselung eines Blocks von der Vorgeschichte abhängig — ähnlich wie Vigenère gleiche Buchstaben je nach Stelle verschieden verschlüsselt, nur ohne Periode.
A8
Fehlersuche: CBC in Python
AFB III
Jonas hat den CBC-Modus implementiert. Die Blöcke sind ganze Zahlen, E(x) verschlüsselt einen Block mit dem festen Schlüssel, ^ ist in Python das bitweise XOR. Zwei Zeilen sind falsch.
Ansatz: Vergleiche jede Zeile mit der Formel \(c_i = E_k(p_i \oplus c_{i-1})\).
Denkanstoß: Womit wird der nächste Klartextblock verknüpft — mit dem vorigen Klartext oder mit dem vorigen Geheimtext?
In diesem Code stecken Fehler. Klicke genau die falschen Zeilen an — die richtigen musst du stehen lassen.
Beide Fehler zerstören die Verkettung, ohne dass das Programm abstürzt — es entsteht „irgendein“ Geheimtext. Mit Zeile 7 (vorher = p) würde der Empfänger sogar mit der richtigen Formel \(p_i = D_k(c_i) \oplus c_{i-1}\) Unsinn entschlüsseln. Deshalb immer mit einem bekannten Testfall prüfen.
A9
Trickaufgabe: ein gekipptes Bit
AFB III
Eine Datei aus 50 Blöcken wurde mit AES im CBC-Modus verschlüsselt. Bei der Übertragung kippt ein einziges Bit im Geheimtextblock \(c_{20}\). Wie viele Klartextblöcke sind nach dem Entschlüsseln fehlerhaft?
Ansatz: Beim Entschlüsseln gilt \(p_i = D_k(c_i) \oplus c_{i-1}\). In welchen Formeln kommt \(c_{20}\) vor?
Zwischenschritt: \(c_{20}\) steckt in \(p_{20}\) (entschlüsselt) und in \(p_{21}\) (nur per XOR). Und \(p_{22}\)?
Rechne selbst und trage das Ergebnis ein — Enter prüft direkt.
Nur 2 — nicht 31. \(p_{20} = D_k(c_{20}) \oplus c_{19}\) ist wegen des Lawineneffekts völlig zerstört, \(p_{21} = D_k(c_{21}) \oplus c_{20}\) hat genau ein falsches Bit (an derselben Stelle). Ab \(p_{22}\) kommt \(c_{20}\) nicht mehr vor. Die Falle: Verkettung beim Verschlüsseln heißt nicht, dass sich ein Fehler beim Entschlüsseln bis zum Ende fortpflanzt.
A10
ECB und CBC vergleichen
AFB III
Kreuze für jede Eigenschaft an, auf welchen Modus sie zutrifft — auf einen, auf beide oder auf keinen.
Parallel: Ein Block kann nur dann gleichzeitig mit den anderen bearbeitet werden, wenn alles, was er braucht, schon vorliegt. Beim Entschlüsseln liegen alle \(c_i\) von Anfang an vor.
Setze die passenden Kreuze. Enter setzt und löscht.
Das Verschlüsseln lässt sich auf viele Prozessorkerne gleichzeitig verteilen.
Das Entschlüsseln lässt sich auf viele Prozessorkerne gleichzeitig verteilen.
Ein Initialisierungsvektor wird benötigt.
Derselbe Text zweimal mit demselben Schlüssel verschlüsselt ergibt verschiedene Geheimtexte, wenn jedes Mal ein neuer zufälliger IV gewählt wird.
Ein Angreifer kann unbemerkt Geheimtextblöcke verändern, ohne dass der Modus das erkennt.
CBC verkettet nur beim Verschlüsseln: \(c_i\) braucht \(c_{i-1}\). Beim Entschlüsseln liegen alle Geheimtextblöcke schon vor — jeder Block ist unabhängig berechenbar. Die letzte Zeile gilt für beide: Weder ECB noch CBC schützen die Integrität; dafür braucht man zusätzlich einen Prüfwert (z. B. eine Signatur).