Die Schatzkarte der Informatik-AG
AFB I–IIBei einer Schnitzeljagd der Informatik-AG taucht ein mit dem Vigenère-Verfahren verschlüsselter Text auf (219 Buchstaben, in Fünferblöcken notiert). Ein Teammitglied hat den Geheimtext nach Buchstabenfolgen durchsucht, die mehrfach vorkommen; die Positionen zählen ab dem ersten Buchstaben.
IYTZU MUVGD NYIAM SNGYV JLCSL JHGPU MYCTJ FHFKW XQCSV JMILZ JPQUV JLCSL JHGPU MYBLZ SMEOJ NNVLF FWJUG WXGUM SXIYS GYFVJ YQQKW WMVLA SFKLY YQGYV JHUJZ FNBMA SXGAL JCNAA MHILJ JWJAE NNFLJ LUPGW SENHK XYFLJ XWJSM JMULD EOTRA XNGSA JAVBF YYTKW RMVLA SXGYS QNGUE FOGY
| Folge | erste Position | zweite Position |
|---|---|---|
| GYV | 18 | 118 |
| VJLCSLJHGPUMY | 20 | 55 |
| MVLAS | 107 | 202 |
| ASXG | 130 | 205 |
| FLJ | 153 | 168 |
- Nennen Sie die Ursache dafür, dass im Vigenère-Geheimtext Buchstabenfolgen mehrfach auftreten.
- Bestätigen Sie mithilfe der Tabelle, dass das Schlüsselwort vermutlich fünf Buchstaben lang ist.
- Begründen Sie, warum die 13 Buchstaben lange Wiederholung als Beleg deutlich stärker wiegt als eine Dreierfolge wie FLJ.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Steht dieselbe Klartextfolge (z. B. ein häufiges Wort) zweimal im Text und beginnt beide Male an derselben Stelle des periodisch wiederholten Schlüsselworts, wird sie mit denselben Verschiebungen verschlüsselt und ergibt dieselbe Geheimtextfolge. Der Abstand ist dann ein Vielfaches der Schlüssellänge.
Erwartungshorizont zu Aufgabe b)
| Folge | Abstand | Zerlegung |
|---|---|---|
| GYV | 100 | 2² · 5² |
| VJLCSLJHGPUMY | 35 | 5 · 7 |
| MVLAS | 95 | 5 · 19 |
| ASXG | 75 | 3 · 5² |
| FLJ | 15 | 3 · 5 |
Der einzige gemeinsame Teiler größer als 1 ist 5: \(\operatorname{ggT}(100, 35, 95, 75, 15) = 5\). Die Schlüssellänge teilt alle Abstände, also ist sie vermutlich 5 (die Länge 1 hieße Caesar; dann müsste die Auszählung eine deutliche E-Spitze zeigen, die ein Vigenère-Text nicht hat).
Erwartungshorizont zu Aufgabe c)
Zwei zufällige Dreierfolgen stimmen mit einer Wahrscheinlichkeit von etwa \(1 : 26^3 = 1 : 17\,576\) überein. In 219 Buchstaben gibt es 217 Dreierfolgen und damit \(\binom{217}{2} = 23\,436\) Paare — man erwartet also rund eine zufällige Dreierwiederholung. FLJ könnte Zufall sein (ihr Abstand 15 passt hier aber zu 5).
Eine zufällige Übereinstimmung von 13 Buchstaben ist dagegen praktisch ausgeschlossen (\(26^{13} \approx 2{,}5 \cdot 10^{18}\) Möglichkeiten). Sie stammt fast sicher von einer gleichen Klartextfolge unter gleicher Schlüsselposition; ihr Abstand 35 ist daher ein verlässlicher Hinweis.
Das Schlüsselwort rekonstruieren
AFB II–IIIDer Geheimtext aus Aufgabe 1 wird in fünf Teiltexte zerlegt: Teiltext 1 besteht aus dem 1., 6., 11., … Buchstaben, Teiltext 2 aus dem 2., 7., 12., … Buchstaben usw. Die Tabelle zeigt die häufigsten Buchstaben jedes Teiltexts. Außerdem ist bekannt: Das Schlüsselwort ist ein Tiername.
| Teiltext | Buchstaben | häufigster | zweithäufigster | dritthäufigster |
|---|---|---|---|---|
| 1 | 44 | J (11) | S (7) | F, M, X (je 4) |
| 2 | 44 | Y (7) | N (6) | H, M (je 5) |
| 3 | 44 | G (10) | V (5) | C, F, I (je 4) |
| 4 | 44 | L (10) | S, Y (je 5) | A, U (je 4) |
| 5 | 43 | A, J (je 6) | — | V, W (je 4) |
- Analysieren Sie die Auszählung im Hinblick auf das Schlüsselwort. Gehen Sie dabei besonders auf Teiltext 5 ein.
- Entwerfen Sie eine Python-Funktion
schluessel_finden(geheimtext, n), die für jeden der \(n\) Teiltexte den häufigsten Buchstaben als E deutet und das vermutete Schlüsselwort zurückgibt. - Bewerten Sie die Sicherheit des Vigenère-Verfahrens für die Schnitzeljagd und für den Fall, dass ein zufälliger Schlüssel, der so lang ist wie der Text, nur einmal verwendet wird.
Hinweise
Hinweis zu Aufgabe a)
Hinweis zu Aufgabe b)
Hinweis zu Aufgabe c)
Erwartungshorizont
Erwartungshorizont zu Aufgabe a)
Teiltexte 1–4 (häufigster Buchstabe ↔ E): J → F, Y → U, G → C, L → H. Probe mit dem zweithäufigsten Buchstaben: S − F = N, N − U = T, V − C = T, S bzw. Y − H = L bzw. R — häufige Buchstaben, die Zuordnung ist plausibel.
Teiltext 5 ist nicht eindeutig: A und J kommen gleich oft vor, und E muss nicht der häufigste Buchstabe sein. Test der Kandidaten:
| Annahme | J → | A → | V → | W → | Bewertung |
|---|---|---|---|---|---|
| Schlüssel F (J ↔ E) | E | V | Q | R | V und Q selten — unplausibel |
| Schlüssel W (A ↔ E) | N | E | Z | A | Z selten, FUCHW kein Tier |
| Schlüssel S (W ↔ E) | R | I | D | E | lauter häufige Buchstaben |
Nur S liefert durchweg häufige deutsche Buchstaben (E selbst ist hier nur viermal vertreten — bei 43 Buchstaben ein Zufallseffekt). Zusammen mit dem Hinweis „Tiername“ ergibt sich das Schlüsselwort FUCHS; der entschlüsselte Text beginnt mit „DER SCHATZ LIEGT UNTER DER ALTEN EICHE …“.
Erwartungshorizont zu Aufgabe b)
def haeufigster(text):
anzahl = [0] * 26
for c in text:
anzahl[ord(c) - 65] += 1
# Nummer des häufigsten Buchstabens
return anzahl.index(max(anzahl))
def schluessel_finden(geheimtext, n):
wort = ""
for i in range(n):
teiltext = ""
# jeder n-te Buchstabe ab Position i
for j in range(i, len(geheimtext), n):
teiltext = teiltext + geheimtext[j]
# häufigster Buchstabe ↔ E (Nummer 4)
k = (haeufigster(teiltext) - 4) % 26
wort = wort + chr(k + 65)
return wortMit dem Geheimtext und \(n = 5\) liefert die Funktion "FUCHW": Bei Gleichstand gibt index den ersten Treffer (A) zurück. Ein vollständiger Entwurf benennt diese Schwäche, z. B. mit dem Vorschlag, bei Gleichstand mehrere Kandidaten zurückzugeben oder die Teiltexte mit der ganzen deutschen Häufigkeitsverteilung zu vergleichen. Kürzere Lösungen mit Slicing geheimtext[i::n] sind gleichwertig.
Erwartungshorizont zu Aufgabe c)
Schnitzeljagd: Der Schlüssel ist ein kurzes, sinnvolles Wort; bei 219 Buchstaben hat jeder Teiltext über 40 Buchstaben. Kasiski-Test und spaltenweise Häufigkeitsanalyse führen mit Papier und Bleistift in unter einer Stunde zum Ziel. Für ein Spiel ist das angemessen — als Schutz geheimer Daten ist es unsicher.
Zufälliger Schlüssel so lang wie der Text, einmal verwendet (One-Time-Pad): Es gibt keine Periode, also keine systematischen Wiederholungen, und jeder „Teiltext“ besteht nur aus einem Buchstaben. Zu einem Geheimtext passt jeder gleich lange Klartext mit einem passenden Schlüssel — das Verfahren ist beweisbar sicher. Der Preis: Der Schlüssel ist so groß wie die Nachricht und muss vorher sicher übergeben werden; bei Wiederverwendung bricht die Sicherheit zusammen. Vollständig ist eine Bewertung, die beide Fälle an denselben Kriterien misst.
