Auf einen Blick

  • Ein Schlüssel für beide: Sender und Empfänger teilen denselben geheimen Schlüssel $k$.
  • Sehr schnell: Hardware-effizient, oft dedizierte CPU-Instruktionen (AES-NI).
  • Schwachstelle: Sicherer Austausch des Schlüssels ist das Kernproblem (Schlüsselverteilung).
  • Standards: DES (unsicher), 3DES (Übergang), AES (heutiger Standard).
  • Betriebsmodus zählt: ECB ist unsicher; CTR/GCM sind modern und parallelisierbar.

Kernkonzepte

Grundprinzip

Bei symmetrischer Verschlüsselung nutzen Sender $A$ und Empfänger $B$ denselben geheimen Schlüssel $k$:

$$c = E_k(m) \qquad m = D_k(c)$$

Da $E$ und $D$ mit demselben $k$ arbeiten, muss dieser vor der Kommunikation sicher ausgetauscht werden – das ist das Schlüsselverteilungsproblem. Bei $n$ Teilnehmern wären $\binom{n}{2} = \frac{n(n-1)}{2}$ Schlüsselpaare nötig.

Blockchiffren vs. Stromchiffren

BlockchiffreStromchiffre
Verarbeitungfeste Blöcke (z.B. 64/128 Bit)bit-/byteweise
PrinzipPermutation auf $\{0,1\}^n$Klartext XOR Schlüsselstrom
BeispieleDES, 3DES, AESRC4, ChaCha20, A5/1
Padding nötig?ja (außer CTR/CFB/OFB)nein

DES – Data Encryption Standard (1977)

  • Blockgröße: 64 Bit
  • Schlüssellänge: 64 Bit — davon 8 Paritätsbits → effektiv 56 Bit
  • Struktur: 16 Runden Feistel-Netzwerk
  • Schlüsselraum: $2^{56} \approx 7{,}2 \cdot 10^{16}$
  • Heute per Bruteforce brechbar (in Stunden bis Tagen mit spezialisierter Hardware).

Feistel-Struktur: Block wird in $L_i, R_i$ geteilt. Pro Runde:

$$L_{i+1} = R_i \qquad R_{i+1} = L_i \oplus F(R_i, k_i)$$

Elegant: dieselbe Struktur ver- und entschlüsselt (Schlüsselreihenfolge umgekehrt); $F$ muss nicht invertierbar sein.

3DES (Triple-DES)

Um DES zu retten, wurde es dreifach angewendet:

$$c = E_{k_3}(D_{k_2}(E_{k_1}(m)))$$

  • 3-Key-3DES ($k_1 \neq k_2 \neq k_3$): effektive Sicherheit $\approx 112$ Bit (Meet-in-the-Middle), nominal 168 Bit.
  • 2-Key-3DES ($k_1 = k_3$): effektiv ca. 80 Bit, veraltet.
  • Rückwärtskompatibel: mit $k_1 = k_2 = k_3$ ergibt sich reines DES.

AES – Advanced Encryption Standard (Rijndael, 2001)

VarianteSchlüsselRundenRundenschlüssel
AES-128128 Bit1011 × 128 Bit
AES-192192 Bit1213 × 128 Bit
AES-256256 Bit1415 × 128 Bit

Blockgröße immer 128 Bit (angeordnet als 4×4-Byte-Matrix, „State"). AES ist keine Feistel-Chiffre, sondern ein Substitution-Permutation-Network (SPN).

Rundenoperationen:

  1. SubBytes – nichtlineare S-Box-Substitution jedes Bytes
  2. ShiftRows – zyklisches Verschieben der Zeilen
  3. MixColumns – Matrixmultiplikation in $\mathrm{GF}(2^8)$ (entfällt in letzter Runde)
  4. AddRoundKey – XOR mit dem Rundenschlüssel

Schlüsselraum AES-128: $2^{128} \approx 3{,}4 \cdot 10^{38}$ – bruteforce-sicher auf absehbare Zeit.

Betriebsmodi (Modes of Operation)

ModusKürzelEigenschaften
Electronic CodebookECBdeterministisch, keine Verkettung – unsicher, Muster sichtbar
Cipher Block ChainingCBC$c_i = E_k(m_i \oplus c_{i-1})$, IV nötig, sequenziell
Cipher FeedbackCFBmacht Blockchiffre zur Stromchiffre, kein Padding
Output FeedbackOFBSchlüsselstrom vorberechenbar, kein Padding
CounterCTR$c_i = m_i \oplus E_k(\text{Nonce} \| i)$, parallelisierbar
Galois/Counter ModeGCMCTR + Authentifizierung (AEAD), modernster Standard

ECB-Warnung: Zwei identische Klartextblöcke → identische Chiffratblöcke. Das klassische „Tux-Pinguin"-Beispiel zeigt, wie Bildstruktur trotz „Verschlüsselung" erkennbar bleibt.

Padding – PKCS#7

Blockchiffren brauchen Blöcke fester Größe. Fehlen $p$ Bytes, werden $p$ Bytes mit dem Wert $p$ angehängt:

  • Bei 13 Bytes → 3 Bytes mit Wert 0x03 anhängen.
  • Bei 16 Bytes (voll) → ganzer zusätzlicher Block mit 16× 0x10 anhängen (sonst mehrdeutig!).
  • Beim Entschlüsseln: letztes Byte $p$ lesen, $p$ Bytes entfernen.

AEAD – Authenticated Encryption with Associated Data

AEAD-Verfahren (z.B. AES-GCM, ChaCha20-Poly1305) liefern gleichzeitig:

  • Vertraulichkeit für den Klartext (Verschlüsselung),
  • Integrität + Authentizität via Tag (MAC),
  • optional Associated Data (Header o.ä.), die nur authentifiziert, nicht verschlüsselt wird.

Ergebnis: $(c, \text{tag})$ – Manipulation am Chiffrat wird beim Entschlüsseln erkannt.

Merksätze

Merksatz 1 – Symmetrie
Sender und Empfänger nutzen denselben Schlüssel. Sicherheit hängt allein an dessen Geheimhaltung – nach Kerckhoffs' Prinzip darf der Algorithmus öffentlich sein.
Merksatz 2 – DES ist tot
$2^{56} \approx 7{,}2 \cdot 10^{16}$ Schlüssel sind mit heutiger Hardware in wenigen Stunden durchsuchbar. DES nie mehr für neue Systeme, nur 3DES als Übergang und AES als Standard.
Merksatz 3 – AES-Runden
10 / 12 / 14 Runden für AES-128 / 192 / 256. Merke: „Schlüssel-Bit / 16 + 6".
Merksatz 4 – ECB niemals
ECB ist deterministisch und blockweise → identische Klartextblöcke liefern identische Chiffratblöcke. In der Klausur immer als „unsicher" markieren.
Merksatz 5 – Feistel vs. SPN
DES/3DES = Feistel (Ver-/Entschlüsselung strukturgleich). AES = SPN (Substitution-Permutation, jedes Byte in jeder Runde beeinflusst).
Merksatz 6 – PKCS#7
Fehlen $p$ Bytes bis zum Blockende, werden $p$ Bytes mit dem Wert $p$ angehängt. Ein voller Block bekommt einen kompletten Padding-Block dazu.
Merksatz 7 – GCM = CTR + Auth
GCM ist der De-facto-Standard: parallelisierbar (CTR-Kern), kein Padding, plus Authentifizierungs-Tag gegen Manipulation.

🖊️ Handrechnung — klassische symmetrische Chiffren

Karte 1 · Verschiebe-Chiffre (Cäsar) per Hand

Die Cäsar-Chiffre ist der Einstieg in jede Klausur. Man arbeitet auf dem Restklassenring $\mathbb{Z}_{26}$ und codiert Buchstaben als Zahlen A=0, B=1, ..., Z=25. Der Schlüssel $k$ ist eine feste Verschiebung.

Verschlüsseln: $e_k(m) = (m + k) \bmod 26$  ·  Entschlüsseln: $d_k(c) = (c - k) \bmod 26$

Referenz-Codierung A=0..Z=25:

A=0   B=1   C=2   D=3   E=4   F=5   G=6   H=7   I=8   J=9   K=10   L=11   M=12
N=13   O=14   P=15   Q=16   R=17   S=18   T=19   U=20   V=21   W=22   X=23   Y=24   Z=25

Beispiel — verschlüsseln von HALLO mit $k = 3$:

H=7 → (7+3) mod 26 = 10 → K
A=0 → (0+3) mod 26 = 3 → D
L=11 → (11+3) mod 26 = 14 → O
L=11 → (11+3) mod 26 = 14 → O
O=14 → (14+3) mod 26 = 17 → R
→ Chiffrat: KDOOR

Rückrechnen mit $k = 3$: KDOOR → HALLO

K=10 → (10-3) mod 26 = 7 → H
D=3 → (3-3) mod 26 = 0 → A
O=14 → (14-3) mod 26 = 11 → L
O=14 → (14-3) mod 26 = 11 → L
R=17 → (17-3) mod 26 = 14 → O

Kryptoanalyse: Der Schlüsselraum hat nur $|K| = 26$ Werte, effektiv 25 (weil $k=0$ die Identität ist). Brute-Force in der Klausur: alle 25 Verschiebungen durchprobieren und die erkennbare deutsche/englische Wortfolge wählen.

Karte 2 · Substitutions-Chiffre per Hand

Statt einer festen Verschiebung wird jedem Klartext-Buchstaben ein beliebiger Chiffretext-Buchstabe zugeordnet. Der Schlüssel ist eine Permutation von $\{A, B, ..., Z\}$, also $|K| = 26! \approx 4{,}03 \cdot 10^{26}$ mögliche Schlüssel. Brute-Force scheitert — Frequenzanalyse jedoch nicht.

Klausur-Vorgehen: Die Substitutionstabelle ist gegeben, man wendet sie einfach zeichenweise an.

Beispieltabelle (Miller-Übungsaufgabe 1, gekürzter Auszug):

Klartext: a b c d e f g h i j k l m n o p q r s t u v w x y z
Chiffrat: q w e r t z u i o p a s d f g h j k l y x c v b n m

Entschlüsseln der Chiffrat-Folge  s i k e l y o l s:

s → l   i → h   k → r   e → c   l → s   y → t   o → i   l → s   s → l
→ Klartext-Fragment: lhrcstisl

In der Klausur genau die vorgegebene Tabelle spaltenweise ablesen und Buchstabe für Buchstabe ersetzen. Kein Kopfrechnen nötig.

Kryptoanalyse per Frequenzanalyse (Deutsch):

Die häufigsten Buchstaben im Deutschen sind in fallender Reihenfolge etwa $E \approx 17{,}4\,\%$, $N \approx 9{,}8\,\%$, $I \approx 7{,}6\,\%$, $R \approx 7{,}0\,\%$, $S \approx 7{,}0\,\%$. Man zählt die Häufigkeiten im Chiffrat, ordnet der häufigsten Chiffratletter ein E zu, der zweithäufigsten ein N, usw., und rekonstruiert nach und nach die Substitutionstabelle. Bei kurzen Texten ist das ungenau, aber bei mehr als ca. 100 Zeichen fast immer erfolgreich.

Karte 3 · Skytala / Permutations-Chiffre per Hand

Bei der Skytala wird der Klartext in eine Matrix mit $k$ Zeilen zeilenweise eingetragen und spaltenweise ausgelesen. Der Schlüssel ist die Zeilenzahl $k$. Zum Entschlüsseln kehrt man den Prozess um.

Beispiel — Klartext  DIESISTEINGEHEIMERTEXT  mit $k = 5$:

Schritt 1 — zeilenweise in eine Matrix mit 5 Zeilen schreiben. Länge 22, also 5 Spalten (letzte Spalte kürzer):

Spalte: 1 2 3 4 5
Zeile 1: D I E S I
Zeile 2: S T E I N
Zeile 3: G E H E I
Zeile 4: M E R T E
Zeile 5: X T

Schritt 2 — spaltenweise auslesen ergibt das Chiffrat:

Spalte 1: D S G M X
Spalte 2: I T E E T
Spalte 3: E E H R
Spalte 4: S I E T
Spalte 5: I N I E
→ Chiffrat: DSGMXITEETEEHRSIETINIE

Entschlüsseln: Chiffratlänge $22$ mit $k = 5$ ergibt $\lceil 22/5 \rceil = 5$ Spalten (davon eine kurz). Man trägt spaltenweise ein und liest zeilenweise aus — Klartext wieder da.

Kryptoanalyse: Kleiner Schlüsselraum (nur so viele $k$ wie Textlänge). Brute-Force durch alle plausiblen $k$ führt in der Klausur schnell zum Ziel. Frequenzanalyse bringt nichts, weil die Buchstaben nur umsortiert werden.

Karte 4 · Vigenère per Hand (Miller-Beispiel)

Vigenère ist eine Cäsar-Chiffre mit rotierendem Schlüssel: jeder Klartextbuchstabe wird mit einem Buchstaben eines periodisch wiederholten Schlüsselworts der Länge $n$ verschoben.

Formel: $c_i = (m_i + k_{i \bmod n}) \bmod 26$

Miller-Beispiel: Klartext $m$ = ANGRIFFUMSECHS, Schlüsselwort $k$ = IMHO ($n = 4$).

Schritt 1 — Klartext in Zahlen:

A N G R I F F U M S E C H S
0 13 6 17 8 5 5 20 12 18 4 2 7 18

Schritt 2 — Schlüssel periodisch fortsetzen und in Zahlen umsetzen:

I M H O I M H O I M H O I M
8 12 7 14 8 12 7 14 8 12 7 14 8 12

Schritt 3 — Summe modulo 26 pro Position:

(0+8) mod 26 = 8 → i
(13+12) mod 26 = 25 → z
(6+7) mod 26 = 13 → n
(17+14) mod 26 = 5 → f
(8+8) mod 26 = 16 → q
(5+12) mod 26 = 17 → r
(5+7) mod 26 = 12 → m
(20+14) mod 26 = 8 → i
(12+8) mod 26 = 20 → u
(18+12) mod 26 = 4 → e
(4+7) mod 26 = 11 → l
(2+14) mod 26 = 16 → q
(7+8) mod 26 = 15 → p
(18+12) mod 26 = 4 → e
→ Chiffrat: c = iznfqrmiuelqpe

Entschlüsseln: mit $m_i = (c_i - k_{i \bmod n}) \bmod 26$ komplett symmetrisch — dieselbe Tabelle, Minus statt Plus.

Kryptoanalyse:

  1. Kasiski-Test — sich wiederholende Buchstabenfolgen im Chiffrat (Länge $\geq 3$) markieren. Die Abstände zwischen den Wiederholungen sind mit hoher Wahrscheinlichkeit Vielfache der Schlüssellänge $n$. Der $\gcd$ aller Abstände liefert einen guten Kandidaten für $n$.
  2. Frequenzanalyse pro Spalte — sobald $n$ bekannt ist, zerlegt man den Chiffretext in $n$ Teiltexte (jeder Teiltext ist mit einem festen $k_j$ Cäsar-verschlüsselt). Jeden Teiltext klassisch per Buchstabenhäufigkeit analysieren und den Schlüsselbuchstaben bestimmen.

Karte 5 · Affine Chiffre per Hand

Die affine Chiffre nutzt einen Schlüssel $k = (a, b)$ mit der Bedingung $\gcd(a, 26) = 1$ (sonst existiert keine eindeutige Umkehrung).

Verschlüsseln: $c = (a \cdot m + b) \bmod 26$  ·  Entschlüsseln: $m = a^{-1} \cdot (c - b) \bmod 26$, wobei $a^{-1}$ das multiplikative Inverse von $a$ modulo $26$ ist (per erweitertem Euklid).

Spezialfall: Für $a = 1$ wird die affine Chiffre zur klassischen Cäsar-Verschiebung $c = (m + b) \bmod 26$ mit $b$ als Verschiebung.

Klausur-Aufgabe: $k = (a, b) = (9, 13)$, Chiffrat $c$ =  n c c n f z. Entschlüssle.

Schritt 1 — Chiffretext in Zahlen codieren:

n = 13   c = 2   c = 2   n = 13   f = 5   z = 25

Schritt 2 — $a^{-1} \bmod 26$ bestimmen:

Gesucht ist $a^{-1}$ mit $9 \cdot a^{-1} \equiv 1 \pmod{26}$. Erweiterter Euklid oder Probieren: $9 \cdot 3 = 27 = 26 + 1 \equiv 1 \pmod{26}$. Also $9^{-1} \equiv 3 \pmod{26}$.

Schritt 3 — Entschlüsselungsformel $m = 3 \cdot (c - 13) \bmod 26$ pro Zeichen:

c=13: 3·(13-13) = 3·0 = 0 → A
c=2 : 3·(2-13) = 3·(-11) = 3·15 mod 26 = 45 mod 26 = 19 → T
c=2 : 3·(2-13) = 19 → T
c=13: 3·(13-13) = 0 → A
c=5 : 3·(5-13) = 3·(-8) = 3·18 mod 26 = 54 mod 26 = 2 → C
c=25: 3·(25-13) = 3·12 = 36 mod 26 = 10 → K
→ Klartext: ATTACK

Faustregel für die Klausur:

  1. Prüfe $\gcd(a, 26) = 1$, sonst ist der Schlüssel ungültig.
  2. Bestimme $a^{-1} \bmod 26$ per erweitertem Euklid oder Probier-Tabelle.
  3. Wende $m_i = a^{-1} \cdot (c_i - b) \bmod 26$ zeichenweise an und decodiere zurück in Buchstaben.

Karte 6 · One-Time Pad (OTP) per Hand

Das One-Time Pad ist die einzige beweisbar perfekt sichere Chiffre (Shannon 1949) — unter drei strengen Bedingungen: der Schlüssel ist so lang wie die Nachricht, jedes Zeichen ist echt zufällig, und der Schlüssel wird nur ein einziges Mal verwendet.

Auf Bit-Ebene: $c = m \oplus k$, entschlüsselt via $m = c \oplus k$ — XOR ist selbstinvers.

Auf Buchstaben-Ebene: $c_i = (m_i + k_i) \bmod 26$ mit einem Schlüsselstrom gleicher Länge wie der Klartext.

Bit-Beispiel:

m = 1011 0100
k = 0110 1010
c = 1101 1110 (bitweises XOR)
Zurück: c ⊕ k = 1011 0100 = m

Klausur-Fangfrage: Chiffrat  c = xzttreef  ohne Schlüssel entschlüsseln. Antwort: unmöglich — perfekte Sicherheit bedeutet, dass jeder Klartext gleicher Länge (also z. B. ATTACKUP oder HALLOWAS) mit passendem $k$ dasselbe Chiffrat erzeugt. Ohne $k$ gibt es keinerlei Information über $m$.

Wichtiger Trick — modifiziertes OTP: Sobald der Schlüssel kürzer als die Nachricht ist und wiederholt wird, ist es kein OTP mehr, sondern Vigenère. Damit wird es angreifbar per Kasiski-Test + spaltenweiser Frequenzanalyse. Die Einmaligkeit und volle Länge des Schlüssels sind also nicht optional, sondern konstitutiv.

OTP vs. Vigenère: Formal identische Rechenvorschrift. Der einzige Unterschied ist die Schlüssellänge und -verwendung — $|k| = |m|$ und nur einmalig ergibt OTP; $|k| < |m|$ mit Periodizität ergibt Vigenère.

Karte 7 · AES — nur die Struktur merken, nicht per Hand rechnen

AES ist eine moderne Blockchiffre und wird in der Klausur bei Pagnia ausschließlich konzeptuell geprüft. In den Folien steht wörtlich: Details finden sich z. B. in [PP2016]. In den Übungen gibt es keine einzige AES-Handrechenaufgabe, nur AES-Programmieraufgaben (ECB-Bildvergleich, GCM in Java).

Kern-Kennzahlen:

  • Blocklänge: 128 Bit (fest)
  • Schlüssellänge: 128 / 192 / 256 Bit
  • Rundenzahl: 10 / 12 / 14 Runden (je nach Schlüssellänge)

Die vier Layer pro Runde:

  1. Key Addition Layer — bitweise XOR-Verknüpfung des State mit dem Rundenschlüssel aus der Schlüsselexpansion.
  2. Byte Substitution Layer — jedes Byte wird durch eine feste, nichtlineare S-Box ersetzt (Konfusion).
  3. ShiftRows (Teil des Diffusion Layer) — Zeilen der State-Matrix werden zyklisch nach links verschoben.
  4. MixColumns (Teil des Diffusion Layer) — jede Spalte wird als Polynom über $GF(2^8)$ multipliziert (Diffusion).

Was in der Klausur gefragt werden kann:

  • Nenne die 4 Layer und beschreibe in einem Satz, was jedes tut.
  • Warum 10/12/14 Runden — wovon hängt das ab?
  • Was ist die Blocklänge, was die Schlüssellänge?

Was in der Klausur nicht gefragt wird:

  • State-Matrix von Hand durchrechnen
  • S-Box-Einträge auswendig kennen
  • MixColumns-Multiplikation im $GF(2^8)$ per Hand ausführen
  • Rundenschlüssel-Expansion durchspielen

DES als konzeptueller Gegenpol: Pagnia behandelt DES ausführlicher als AES. DES ist eine Feistel-Chiffre mit 16 Runden, 64-Bit-Blöcken und effektiv 56-Bit-Schlüssel, mit acht festen S-Boxen und Expansion/Permutation pro Runde. Feistel-Struktur bedeutet: die Rundenfunktion muss nicht invertierbar sein, weil ver- und entschlüsseln die gleichen Schritte in umgekehrter Rundenschlüssel-Reihenfolge verwenden. Historisch wichtig; heute wegen 56 Bit Schlüssel per Brute-Force gebrochen (→ 3DES als Übergang, dann AES).

Faustregel AES in der Klausur
Zu AES nur die vier Layer-Namen mit einer Ein-Satz-Erklärung parat haben, plus die drei Zahlenpaare (128/192/256 Bit → 10/12/14 Runden). Alles Weitere gehört zu den Betriebsarten (nächste Karte) und wird dort auf Konzeptebene geprüft.

Karte 8 · Betriebsarten (ECB, CBC, CTR, GCM)

Eine Blockchiffre wie AES verschlüsselt genau einen Block (128 Bit). Für Nachrichten beliebiger Länge braucht man eine Betriebsart (Mode of Operation), die festlegt, wie mehrere Blöcke kombiniert werden.

ECB — Electronic Codebook:

Jeder Klartext-Block wird unabhängig mit demselben Schlüssel verschlüsselt: $c_i = e_k(m_i)$. Fatal: gleiche Klartext-Blöcke → gleiche Chiffretext-Blöcke. Strukturen im Klartext bleiben sichtbar. Klassisches Bild-Beispiel: ein ECB-verschlüsseltes Pinguin-Bild zeigt immer noch klar den Umriss des Pinguins, weil gleichfarbige Flächen im Original zu identischen Chiffretext-Blöcken werden.

CBC — Cipher Block Chaining:

Vor der Verschlüsselung wird jeder Klartext-Block mit dem vorherigen Chiffretext-Block XOR-verknüpft, für den allerersten Block dient ein zufälliger Initialisierungsvektor (IV): $c_i = e_k(m_i \oplus c_{i-1})$, mit $c_0 = IV$. Vorteil: gleiche Klartext-Blöcke ergeben unterschiedliche Chiffretext-Blöcke. Nachteil: rein sequentiell verschlüsselbar, da $c_i$ von $c_{i-1}$ abhängt (parallelisierbar ist nur die Entschlüsselung).

CTR — Counter Mode:

Ein Zähler (Counter) plus Nonce wird verschlüsselt und das Ergebnis mit dem Klartext-Block XOR-verknüpft: $c_i = m_i \oplus e_k(\text{Nonce} \| i)$. Effekt: die Blockchiffre wird zur Stromchiffre. Ver- und Entschlüsselung sind vollständig parallelisierbar, man kann direkt an beliebiger Stelle im Chiffrat lesen (random access). Nonce darf niemals mit demselben Schlüssel wiederverwendet werden, sonst bricht die Sicherheit sofort zusammen.

GCM — Galois/Counter Mode:

Kombiniert CTR-Verschlüsselung mit einer Authentifizierung im Galois-Feld $GF(2^{128})$. Ergebnis ist AEAD (Authenticated Encryption with Associated Data): sowohl Vertraulichkeit als auch Integrität und Authentizität werden garantiert. Manipulationen am Chiffretext werden beim Entschlüsseln erkannt (Tag stimmt nicht). Heute der empfohlene Standard-Modus für AES.

Klausur-Fragen zu Betriebsarten:

  • Wieso ist ECB unsicher? Weil identische Klartext-Blöcke identische Chiffretext-Blöcke erzeugen und damit Struktur des Klartexts (z. B. Muster in Bildern, wiederkehrende Header) sichtbar bleibt.
  • Wieso ist GCM empfehlenswert? Weil es zusätzlich zur Verschlüsselung (CTR) auch Integrität und Authentizität via Auth-Tag liefert, parallelisierbar und performant ist und den heutigen Best-Practice-Standard darstellt.
  • CBC vs. CTR: CBC ist sequentiell verschlüsselbar (Kettenabhängigkeit), CTR ist voll parallel und erlaubt random access — auf Kosten strikter Nonce-Disziplin.
Kern-Merksatz
Klassische Chiffren (Cäsar, Substitution, Skytala, Vigenère, affin, OTP) sind Klausur-Handrechenstoff und leben von $\bmod\,26$-Arithmetik plus A=0..Z=25-Codierung. AES wird bei Pagnia nur konzeptuell geprüft: 128/192/256 Bit → 10/12/14 Runden, vier Layer (Key Addition, Byte Substitution, ShiftRows, MixColumns). Wichtig für die Klausur sind zusätzlich die Betriebsarten — ECB ist wegen sichtbarer Struktur unsicher, GCM ist der empfohlene Standard, weil er Vertraulichkeit und Authentizität in einem Modus verbindet.

🧮 Rechenaufgaben mit Lösung

Klick auf eine Aufgabe, um den vollständigen Lösungsweg zu sehen.

R1 · Bruteforce-Angriff auf DES
Aufgabe: Ein Angreifer testet $10^9$ Schlüssel pro Sekunde. Wie lange dauert eine vollständige Bruteforce-Suche auf DES? Wie sieht es bei $10^{12}$ Schlüsseln/Sekunde aus?

Lösungsweg

DES hat einen effektiven Schlüsselraum von $2^{56}$.

$$2^{56} = 72\,057\,594\,037\,927\,936 \approx 7{,}21 \cdot 10^{16}$$

Bei $10^9$ Schlüsseln/s:

$$t = \frac{2^{56}}{10^9} = \frac{7{,}21 \cdot 10^{16}}{10^9} = 7{,}21 \cdot 10^{7}\ \text{s}$$

UmrechnungWert
Sekunden$7{,}21 \cdot 10^7$
Minuten$\approx 1{,}20 \cdot 10^6$
Stunden$\approx 20\,027$
Tage$\approx 834$
Jahre$\approx 2{,}3$

Bei $10^{12}$ Schlüsseln/s (spezialisierte Hardware):

$$t = \frac{7{,}21 \cdot 10^{16}}{10^{12}} = 7{,}21 \cdot 10^{4}\ \text{s} \approx 20\ \text{Stunden}$$

Im Durchschnitt genügt die Hälfte der Zeit (Schlüssel wird meist vor Ende gefunden).

Ergebnis: $\approx 2{,}3$ Jahre bzw. $\approx 20$ Stunden

R2 · Größe der AES-128-Rundenschlüssel
Aufgabe: AES-128 hat 10 Runden plus einen initialen AddRoundKey. Wie viele Rundenschlüssel werden benötigt und wie groß ist der gesamte expandierte Schlüssel in Bit bzw. Byte?

Lösungsweg

Struktur: initialer AddRoundKey + 10 Runden, jede mit AddRoundKey → $\mathbf{11}$ Rundenschlüssel.

Jeder Rundenschlüssel hat die Größe eines State-Blocks = 128 Bit.

RechnungErgebnis
$11 \cdot 128$ Bit$1408$ Bit
$1408 / 8$$176$ Byte
$11 \cdot 16$ Byte$176$ Byte

Der AES-Key-Schedule expandiert also 16 Byte Eingangsschlüssel auf 176 Byte Schlüsselmaterial.

Ergebnis: 11 Rundenschlüssel = 1408 Bit = 176 Byte

R3 · XOR-Verschlüsselung (Vernam-Prinzip)
Aufgabe: Klartext $m = 01011010_2$, Schlüssel $k = 11001100_2$. Berechne $c = m \oplus k$ und weise nach, dass $c \oplus k = m$ gilt.

Verschlüsselung

Bit-Position76543210
$m$01011010
$k$11001100
$c = m \oplus k$10010110

$$c = 10010110_2$$

Entschlüsselung

Bit-Position76543210
$c$10010110
$k$11001100
$c \oplus k$01011010

Ergibt wieder $m = 01011010_2$. Grund: XOR ist selbstinvers, $x \oplus x = 0$ und $x \oplus 0 = x$, also $(m \oplus k) \oplus k = m \oplus 0 = m$.

Ergebnis: $c = 10010110_2 = \mathrm{0x96}$, Entschlüsselung liefert $m$ zurück.

R4 · PKCS#7-Padding berechnen
Aufgabe: Ein Klartext ist 13 Byte lang und soll mit AES (Blockgröße 16 Byte) verschlüsselt werden. Wie viele Padding-Bytes werden angehängt und welchen Wert haben sie? Was passiert, wenn der Klartext genau 16 Byte hat?

Fall 1: 13 Byte Klartext

Fehlend bis zum vollen Block:

$$p = 16 - (13 \bmod 16) = 16 - 13 = 3\ \text{Byte}$$

PKCS#7 füllt mit dem Byte-Wert der Padding-Länge auf:

Position0..12131415
InhaltKlartext (13 Byte)0x030x030x03

Fall 2: 16 Byte Klartext (voller Block)

$$p = 16 - (16 \bmod 16) = 16 - 0 = 16\ \text{Byte}$$

Es wird ein kompletter zusätzlicher Block aus 16× 0x10 angehängt. Grund: sonst wäre nicht unterscheidbar, ob das letzte Byte Nutzdaten oder Padding war.

Ergebnis: 13 Byte → 3× 0x03; 16 Byte → 16× 0x10.

R5 · Modus-Wahl für Datei-Streaming
Aufgabe: Eine große Datei (mehrere GB) soll parallel verschlüsselt und gestreamt werden. Der Empfänger möchte an beliebiger Stelle einsteigen (Random Access). Welcher Betriebsmodus ist geeignet und warum?

Anforderungen prüfen

ModusParallel?Random Access?Padding?Bemerkung
ECBjajajaunsicher, Muster
CBCnein (Verschl.)Entschl. jajaFehlerfortpflanzung
CFBneinEntschl. janeinseriell
OFBneinneinneinKeystream seriell
CTRjajaneinideal
GCMjajaneinCTR + Auth

Warum CTR / GCM?

Bei CTR wird der Blockindex $i$ direkt in den Counter kodiert:

$$c_i = m_i \oplus E_k(\text{Nonce} \| i)$$

Jeder Block kann unabhängig berechnet werden ⇒ voll parallelisierbar und Random-Access-fähig. GCM ergänzt einen Authentifizierungs-Tag und ist damit für die Praxis vorzuziehen.

Ergebnis: AES-GCM (oder AES-CTR ohne Auth) ist optimal.

R6 · ECB-Angriff sichtbar machen
Aufgabe: Der Klartext enthält zwei identische 16-Byte-Blöcke (z.B. wiederholte Nullen). Wird das im Chiffrat unter ECB sichtbar? Zeige es formal und erkläre den Effekt am Tux-Pinguin-Beispiel.

Formaler Nachweis

Unter ECB gilt für jeden Block $i$:

$$c_i = E_k(m_i)$$

$E_k$ ist eine deterministische Permutation. Also:

$$m_i = m_j \;\Longrightarrow\; c_i = c_j$$

Zwei identische Klartextblöcke ergeben also zwangsläufig zwei identische Chiffratblöcke.

Praktische Konsequenz

Verschlüsselt man ein Bitmap-Bild (z.B. den Tux-Pinguin) blockweise mit AES-ECB, bleiben große monochrome Flächen als wiederkehrende Chiffratblöcke sichtbar. Der Umriss des Pinguins ist im „verschlüsselten" Bild deutlich erkennbar – ECB verschlüsselt Werte, aber nicht Struktur.

Abhilfe

  • CBC/CTR/GCM verwenden – hier fließen IV bzw. Counter in jeden Block ein.
  • Selbst identischer Klartext ergibt unterschiedliche Chiffratblöcke.

Ergebnis: Ja, unter ECB deterministisch sichtbar. Muster im Chiffrat = Muster im Klartext.

Übungsfragen

F1Warum ist der ECB-Modus unsicher?
Weil er deterministisch und blocklokal ist: $c_i = E_k(m_i)$ ohne Verkettung. Zwei identische Klartextblöcke ergeben zwei identische Chiffratblöcke. Damit werden Muster im Klartext (etwa Wiederholungen in Bildern, Datei-Headern, Datenbank-Feldern) direkt ins Chiffrat übertragen und statistische Angriffe möglich. Klassisches Beispiel: der ECB-verschlüsselte Tux-Pinguin bleibt als Umriss erkennbar.
F2Was ist der Vorteil von CTR gegenüber CBC?
  • Parallelisierbar: Jeder Block $c_i = m_i \oplus E_k(\text{Nonce}\|i)$ ist unabhängig ⇒ Ver- und Entschlüsselung skalieren auf viele Kerne. CBC-Verschlüsselung ist strikt sequenziell (jeder Block braucht den vorigen).
  • Random Access: Beliebige Position ent-/verschlüsselbar (wichtig für Festplatten, Streaming).
  • Kein Padding: Blockchiffre wird zur Stromchiffre, Klartext beliebiger Länge.
  • Nur Verschlüsselungsrichtung nötig: $E_k$ genügt, $D_k$ wird nie aufgerufen.
Nachteil: Nonce darf mit demselben Schlüssel niemals wiederverwendet werden (sonst $m_1 \oplus m_2 = c_1 \oplus c_2$).
F3Wie viele Runden hat AES-128 / AES-192 / AES-256?
10 / 12 / 14 Runden. Faustformel: $\text{Runden} = \frac{\text{Schlüssellänge in Bit}}{16} + 6$. Dazu kommt ein initialer AddRoundKey vor Runde 1, insgesamt also $11 / 13 / 15$ Rundenschlüssel. Die letzte Runde lässt MixColumns weg.
F4Warum ist 3DES noch relevant, obwohl DES unsicher ist?
Weil dreifache DES-Anwendung den effektiven Schlüsselraum auf $\approx 112$ Bit (2-Key) bzw. $\approx 112$ Bit trotz nominal 168 Bit (3-Key, wegen Meet-in-the-Middle) hebt und damit lange als sicher galt. 3DES ist abwärtskompatibel zu bestehender DES-Hardware/Software und wurde daher in Banken (EMV, Geldautomaten, Kartenzahlung) über Jahrzehnte eingesetzt. Heute wird 3DES vom NIST offiziell zurückgezogen – für neue Systeme ist ausschließlich AES vorgesehen.
F5Was ist eine Feistel-Struktur, was macht sie besonders?
Ein Feistel-Netzwerk teilt jeden Block in zwei Hälften $L_i, R_i$ und rechnet pro Runde: $$L_{i+1} = R_i, \qquad R_{i+1} = L_i \oplus F(R_i, k_i)$$ Das Besondere:
  • Die Rundenfunktion $F$ muss nicht invertierbar sein – sie kann eine beliebige nichtlineare Funktion sein.
  • Ver- und Entschlüsselung nutzen dieselbe Struktur, nur die Reihenfolge der Rundenschlüssel wird umgekehrt.
  • Das spart Hardware/Code, weshalb DES, 3DES, Blowfish, Twofish etc. Feistel-basiert sind. AES hingegen ist ein SPN.
F6Was ist der Sinn von Padding?
Blockchiffren verarbeiten nur ganze Blöcke fester Länge (bei AES 16 Byte). Reale Klartexte haben aber beliebige Längen. Padding füllt den letzten Block eindeutig auf, sodass:
  • immer eine ganze Blockzahl entsteht,
  • der Empfänger das Padding zuverlässig entfernen kann.
PKCS#7 löst das, indem $p$ fehlende Bytes mit dem Wert $p$ angehängt werden. Ist der Klartext bereits ein Vielfaches der Blockgröße, wird ein kompletter zusätzlicher Padding-Block angehängt – sonst wäre Padding nicht von Nutzdaten unterscheidbar. Padding-Modi mit Streaming (CTR, CFB, OFB, GCM) benötigen dies nicht.
F7Wie groß ist der Schlüsselraum von DES bzw. AES-128?
  • DES: $2^{56} \approx 7{,}21 \cdot 10^{16}$ Schlüssel – heute per Bruteforce brechbar.
  • AES-128: $2^{128} \approx 3{,}40 \cdot 10^{38}$ Schlüssel – bruteforce-sicher weit über die absehbare Zukunft hinaus.
Der Faktor $2^{72}$ zwischen den beiden macht klar, warum AES DES ersetzt hat: selbst wenn ein Angreifer $10^{18}$ Schlüssel pro Sekunde testen könnte, bräuchte er für AES-128 noch $\approx 10^{13}$ Jahre.
F8Was bedeutet AEAD (Authenticated Encryption with Associated Data)?
AEAD kombiniert Verschlüsselung + Authentifizierung in einem Verfahren:
  • Vertraulichkeit: der Klartext wird verschlüsselt.
  • Integrität + Authentizität: ein kryptografischer Tag (MAC) beweist, dass Chiffrat und ggf. Metadaten nicht verändert wurden.
  • Associated Data: zusätzlich mitauthentifizierte, aber unverschlüsselte Daten (etwa TCP/IP-Header, Session-IDs).
Beispiele: AES-GCM, ChaCha20-Poly1305. Vorteil: kein separater HMAC-Aufsatz, keine typischen „encrypt-then-MAC vs. MAC-then-encrypt"-Fehler, und Manipulation am Chiffrat wird beim Entschlüsseln zwingend erkannt (Tag stimmt nicht).
F9Warum ist AES eine SPN-Struktur (kein Feistel)?
Beim SPN wird in jeder Runde der gesamte State substituiert (S-Box) und permutiert (ShiftRows + MixColumns), nicht nur eine Hälfte wie bei Feistel. Vorteile:
  • Vollständige Diffusion in wenigen Runden (Wide-Trail-Prinzip).
  • Bessere Analysierbarkeit gegen differentielle und lineare Kryptoanalyse.
Nachteil: Ver- und Entschlüsselung sind nicht strukturgleich, man braucht Inverse S-Box und Inverse MixColumns – bei AES bewusst in Kauf genommen.
F10Was ist ein IV (Initialization Vector) und was passiert bei Wiederverwendung?
Ein IV ist ein öffentlicher, aber pro Nachricht einzigartiger Startwert, der Zufall in deterministische Chiffren einbringt. Zweck: zwei identische Klartexte ergeben unter demselben Schlüssel unterschiedliche Chiffrate.
  • CBC: IV wird mit erstem Klartextblock XOR-verknüpft; er muss unvorhersagbar sein.
  • CTR/GCM: IV/Nonce initialisiert den Zähler; Einzigartigkeit pro Schlüssel ist zwingend.
Wird ein IV/Nonce wiederverwendet, gilt in CTR-artigen Modi: $$c_1 \oplus c_2 = m_1 \oplus m_2$$ Damit kann ein Angreifer aus zwei Chiffraten Klartextinformationen extrahieren (bekanntes „two-time pad"-Problem, siehe WEP/Wi-Fi).
F11Wie viele Schlüsselpaare braucht ein symmetrisches Netzwerk mit $n$ Teilnehmern?
Jedes Paar braucht seinen eigenen Schlüssel: $$\binom{n}{2} = \frac{n(n-1)}{2}$$ Für $n = 100$ sind das bereits $\frac{100 \cdot 99}{2} = 4950$ Schlüssel. Der quadratische Aufwand ist genau der Grund, warum asymmetrische Verfahren (Kapitel 5+) für Schlüsselaustausch existieren.
F12Warum darf man DES nicht einfach zweimal anwenden (2DES)?
Weil ein Meet-in-the-Middle-Angriff die naive Erwartung von $2^{112}$ Sicherheit auf ca. $2^{57}$ reduziert. Der Angreifer berechnet:
  • Für alle $k_1$: $x = E_{k_1}(m)$ und speichert $(x, k_1)$ in einer Tabelle ($2^{56}$ Einträge).
  • Für alle $k_2$: $y = D_{k_2}(c)$ und sucht Treffer $x = y$.
Zeitaufwand: $2 \cdot 2^{56} = 2^{57}$ Operationen – kaum mehr als bruteforce auf einfachem DES. Deshalb 3DES statt 2DES: der zusätzliche Schritt erhöht die Sicherheit tatsächlich auf $\approx 2^{112}$.