MINT lernen

Moderne Blockchiffren

Ein Mini-Verfahren für die Robotik-AG und gescannte Formulare in der Cloud — was Runden leisten und was ECB verrät.

Dein Fortschritt:
0 / 0 Aufgaben
1

Das Mini-Verfahren der Robotik-AG

AFB I–II

Die Robotik-AG will Steuerbefehle zwischen zwei Mikrocontrollern verschlüsseln und entwirft dafür das Lernverfahren „AG-8“ — eine stark vereinfachte Blockchiffre mit 8-Bit-Blöcken. Eine Runde von AG-8 besteht aus drei Schritten:

  1. Der Block wird in zwei Nibbles zu je 4 Bit zerlegt; jedes Nibble wird mit der S-Box ersetzt.
  2. Die 8 Bits werden nach der Permutation umgelegt: Die Bits des linken Nibbles kommen auf die Positionen 1, 3, 5, 7, die Bits des rechten Nibbles auf die Positionen 2, 4, 6, 8 („Reißverschluss“).
  3. Der Block wird per XOR mit dem Rundenschlüssel verknüpft.
S-Box und Permutation von AG-8
Eingang \(x\)0123456789ABCDEF
\(S(x)\)C56B90AD3EF84712
Bitposition vorher12345678
Bitposition nachher13572468
Nibbles hexadezimal (A = 1010 … F = 1111); Bitpositionen von links gezählt. Rundenschlüssel \(K_1 = 1011\,0010\).
  1. Beschreiben Sie den Aufbau einer Runde von AG-8 und ordnen Sie die drei Schritte den Prinzipien Konfusion und Diffusion zu.
  2. Wenden Sie eine Runde von AG-8 mit dem Rundenschlüssel \(K_1\) auf den Klartextblock \(0110\,1001\) an. Geben Sie alle Zwischenergebnisse an.
  3. Erläutern Sie am Ergebnis aus b), wie der Empfänger den Block entschlüsselt, und warum die S-Box jeden Ausgangswert genau einmal enthalten muss.

Hinweise

Hinweis zu Aufgabe a)
Welcher Schritt verändert die Werte, welcher nur ihre Lage — und wo kommt der Schlüssel ins Spiel?Beschreiben heißt: das Verfahren in eigenen Worten und mit Fachbegriffen wiedergeben.
Hinweis zu Aufgabe b)
Nibbles hexadezimal lesen: \(0110 = 6\), \(1001 = 9\). Beim Reißverschluss wechseln sich die Bits von links und rechts ab.
Hinweis zu Aufgabe c)
Die Schritte rückwärts: Welcher Schritt hebt sich selbst auf, welche brauchen eine Umkehrung? Was passiert, wenn zwei Eingänge der S-Box denselben Ausgang hätten?

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

Substitution: Der 8-Bit-Block wird in zwei Nibbles zerlegt; jedes wird nach der festen, nichtlinearen Tabelle der S-Box ersetzt. Das verschleiert den Zusammenhang zwischen Schlüssel und Geheimtext — Konfusion.

Permutation: Die Bits werden nach festem Schema umgelegt, sodass jedes Nibble seine Bits auf beide Nibbles verteilt. In der nächsten Runde wirkt ein Eingangsbit so auf beide S-Boxen — Diffusion.

Schlüsseladdition: XOR mit dem Rundenschlüssel bringt den geheimen Schlüssel ein; ohne diesen Schritt könnte jeder die Runde umkehren, denn S-Box und Permutation sind öffentlich (Kerckhoffs).

Erwartungshorizont zu Aufgabe b)
SchrittBlock
Klartext0110 1001 (6 | 9)
S-Box1010 1110 (A | E)
Permutation1101 1100
⊕ K1 = 1011 00100110 1110

S-Box: \(S(6) = \mathrm{A}\), \(S(9) = \mathrm{E}\). Permutation: links \(1010\), rechts \(1110\) im Reißverschluss \(1\,1\;0\,1\;1\,1\;0\,0\). XOR stellenweise ergibt den Geheimtextblock \(0110\,1110\).

Erwartungshorizont zu Aufgabe c)

Der Empfänger kennt \(K_1\) und führt die Schritte in umgekehrter Reihenfolge aus:

1. XOR mit \(K_1\) (selbstinvers): \(0110\,1110 \oplus 1011\,0010 = 1101\,1100\).
2. Umkehrpermutation — Positionen 1, 3, 5, 7 bilden das linke, 2, 4, 6, 8 das rechte Nibble: \(1010\,1110\).
3. Umgekehrte S-Box: \(S^{-1}(\mathrm{A}) = 6\), \(S^{-1}(\mathrm{E}) = 9\) → \(0110\,1001\), der Klartext.

Schritt 3 ist nur möglich, weil jeder Wert 0 bis F in der S-Box genau einmal als Ausgang vorkommt (bijektiv). Hätten zwei Eingänge denselben Ausgang, wüsste der Empfänger nicht, welcher Klartext gemeint war — die Entschlüsselung wäre nicht eindeutig.

2

Gescannte Formulare in der Schul-Cloud

AFB II–III

Eine Schule speichert eingescannte, unterschriebene Einverständniserklärungen als Schwarz-Weiß-Bitmaps in einer Cloud. Die Dateien werden mit AES-128 im ECB-Modus verschlüsselt; alle Dateien nutzen denselben Schlüssel. Ein Schüler mit Zugriff auf den Speicher, aber ohne Schlüssel, lässt sich die Geheimtextblöcke einer Datei anzeigen. Die Tabelle zeigt die ersten acht Blöcke zu je 16 Bytes; der erste Block enthält den Dateikopf.

Die IT-Beauftragte schlägt vor, auf CBC umzustellen: „Damit es einfach bleibt, verwenden wir für alle Dateien den IV 00…00 und weiterhin denselben Schlüssel.“

Geheimtextblöcke der Datei (hexadezimal)
BlockGeheimtext (16 Bytes)
19485C080 FBC5F8C9 2479B07D 05E6F730
28AF28601 42F786F4 09307C1A 3F7EAAAC
38AF28601 42F786F4 09307C1A 3F7EAAAC
47DF76B0C 1AB899B3 3E42F047 B91B546F
58AF28601 42F786F4 09307C1A 3F7EAAAC
67DF76B0C 1AB899B3 3E42F047 B91B546F
77DF76B0C 1AB899B3 3E42F047 B91B546F
88AF28601 42F786F4 09307C1A 3F7EAAAC
Echte AES-128-Ausgaben; im Bild entspricht ein Block 128 aufeinanderfolgenden Pixeln (1 Bit je Pixel).
  1. Analysieren Sie den Ausschnitt im Hinblick darauf, welche Informationen der Schüler ohne Schlüssel gewinnen kann.
  2. Implementieren Sie in Python eine Funktion cbc_entschluesseln(bloecke, iv, D). Die Geheimtextblöcke und der IV sind ganze Zahlen, D(c) entschlüsselt einen einzelnen Block mit dem festen Schlüssel, a ^ b berechnet das bitweise XOR. Die Funktion gibt die Liste der Klartextblöcke zurück.
  3. Beurteilen Sie den Vorschlag der IT-Beauftragten.

Hinweise

Hinweis zu Aufgabe a)
Vergleiche die Blöcke untereinander. Was folgt im ECB-Modus aus zwei gleichen Geheimtextblöcken? Welche Pixelmuster kommen in einem Schwarz-Weiß-Scan besonders oft vor?
Hinweis zu Aufgabe b)
Stelle die Formel für \(p_i\) aus \(c_i = E_k(p_i \oplus c_{i-1})\) um. Merke dir in der Schleife den vorigen Geheimtextblock.
Hinweis zu Aufgabe c)
Kriterien: Muster innerhalb einer Datei, Vergleich verschiedener Dateien mit gleichem Anfang, Aufwand, Integrität. Ein Urteil braucht eine klare Empfehlung.Beurteilen heißt: ein eigenes, fachlich begründetes Urteil formulieren.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

Es kommen nur drei verschiedene Geheimtextblöcke vor: Block 1 (Dateikopf), \(X =\) 8AF28601… (Blöcke 2, 3, 5, 8) und \(Y =\) 7DF76B0C… (Blöcke 4, 6, 7). Im ECB-Modus gilt \(c_i = E_k(p_i)\) mit demselben Schlüssel — gleiche Geheimtextblöcke bedeuten also gleiche Klartextblöcke.

In einem Schwarz-Weiß-Scan sind die häufigsten Blöcke einfarbige Flächen: 128 weiße bzw. 128 schwarze Pixel. Der Schüler kann den Blöcken daher mit hoher Wahrscheinlichkeit „Hintergrund“ (häufigster Block) und „andere einfarbige Fläche“ zuordnen und aus der Lage aller Blöcke den Umriss des Formulars, der Schrift und der Unterschrift rekonstruieren — wie beim bekannten ECB-Pinguin. Den Schlüssel erfährt er nicht, und Blöcke mit individuellen Mustern kann er nicht lesen.

Weil alle Dateien denselben Schlüssel nutzen, sind \(X\) und \(Y\) in jeder Datei gleich; außerdem verraten gleiche Blöcke an gleicher Stelle, welche Scans auf demselben Formular beruhen.

Erwartungshorizont zu Aufgabe b)
def cbc_entschluesseln(bloecke, iv, D):
    klartext = []
    vorher = iv                  # c0 = IV
    for c in bloecke:
        p = D(c) ^ vorher        # D(c_i) XOR c_(i-1)
        klartext.append(p)
        vorher = c               # c merken, nicht p
    return klartext

Getestet mit AG-8 aus Aufgabe 1 als Blockchiffre (\(E\), \(D\) mit \(K_1\)) und IV \(= \mathrm{3C}\): Die Klartextblöcke 69 69 69 00 FF ergeben im CBC-Modus B2 D8 23 DF CA (im ECB-Modus dagegen 6E 6E 6E 42 BE), und cbc_entschluesseln liefert wieder 69 69 69 00 FF.

Bewertet werden: Startwert IV, richtige Formel (erst entschlüsseln, dann XOR), Merken des Geheimtextblocks, Rückgabe der Liste.

Erwartungshorizont zu Aufgabe c)

Pro: Innerhalb einer Datei beseitigt CBC das Problem aus a): Jeder Block wird vor dem Verschlüsseln mit dem vorigen Geheimtextblock verknüpft, gleiche Pixelblöcke ergeben verschiedene Geheimtextblöcke; der Umriss ist nicht mehr zu sehen. Der Aufwand ist gering, die Verschlüsselung bleibt AES-128.

Contra: Mit festem IV und festem Schlüssel wird jede Datei deterministisch verschlüsselt. Zwei Dateien mit gleichem Anfang (dasselbe Formular, derselbe Dateikopf) haben identische Geheimtextblöcke bis zum ersten Unterschied — ein Angreifer erkennt, welche Formulare übereinstimmen und ab welchem Block sie sich unterscheiden. Eine Datei, die zweimal gespeichert wird, ist als identisch erkennbar. Außerdem schützt CBC nicht vor unbemerkten Veränderungen des Geheimtexts (keine Integrität).

Urteil: Der Vorschlag ist eine deutliche Verbesserung gegenüber ECB, aber in dieser Form nicht ausreichend. Empfehlung: für jede Datei einen neuen zufälligen IV erzeugen und offen zusammen mit dem Geheimtext speichern (er muss nicht geheim sein); zusätzlich die Integrität sichern, z. B. mit einem Prüfwert bzw. einem Modus, der Verschlüsselung und Echtheitsprüfung verbindet. Vollständig ist ein Urteil, das mindestens einen Vorteil und den Nachteil des festen IV begründet und zu einer klaren Empfehlung kommt.