MINT lernen

Sicherheit beurteilen

Ein Probenplan im Klassenchat und ein Versandhändler mit eigenem Verfahren — was verraten ein bekanntes Wort und ein Messwert?

Dein Fortschritt:
0 / 0 Aufgaben
1

Der Probenplan der Theater-AG

AFB I–II

Die Theater-AG verschickt ihre Probenpläne im Klassenchat mit dem Vigenère-Verfahren verschlüsselt (A = 0, …, Z = 25; Umlaute werden umschrieben, Leerzeichen und Satzzeichen entfernt). Das Schlüsselwort ist geheim und hat höchstens zehn Buchstaben. Ein Mitschüler hat einen Geheimtext aus \(N = 511\) Buchstaben abgefangen. Er weiß, dass jeder Plan mit dem Wort PROBENPLAN beginnt. Der Geheimtext beginnt mit

QLSIR RQFEU SYFLH PROPG QLAHF QSJUI …
Buchstabenanzahlen \(n_i\) im abgefangenen Geheimtext
BuchstabeABCDEFGHIJKLM
Anzahl2116113192615352719122816
BuchstabeNOPQRSTUVWXYZ
Anzahl1523171733161423291415389
Für die Buchstaben A bis M gilt bereits \(\sum n_i\,(n_i-1) = 5340\).
  1. Nennen Sie die drei Angriffsszenarien, die sich danach unterscheiden, was der Angreifer außer dem Verfahren kennt oder tun kann, und die Situation des Mitschülers.
  2. Wenden Sie einen Angriff mit bekanntem Klartext auf den Anfang des Geheimtexts an und bestimmen Sie so das Schlüsselwort.
  3. Werten Sie die Tabelle aus: Berechnen Sie den Koinzidenzindex des Geheimtexts, schätzen Sie mit \(L\approx\frac{0{,}0762-0{,}0385}{I-0{,}0385}\) die Schlüssellänge und setzen Sie das Ergebnis in Beziehung zu b).

Hinweise

Hinweis zu Aufgabe a)
Unterscheide: nur Geheimtext — zusätzlich Klartext-Geheimtext-Paare — selbst ausgesuchte Klartexte.
Hinweis zu Aufgabe b)
Schlüsselbuchstabe = Geheimtextbuchstabe − Klartextbuchstabe (mod 26). Zehn Schlüsselbuchstaben reichen, um eine Wiederholung zu erkennen.
Hinweis zu Aufgabe c)
Ergänze die Summe für N bis Z und teile durch \(N\,(N-1)\). Überlege, wie genau eine Schätzung aus rund 500 Buchstaben sein kann.Auswerten heißt: die Einzelergebnisse zu einer Gesamtaussage zusammenführen.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

Nur Geheimtext (ciphertext-only), bekannter Klartext (known-plaintext), gewählter Klartext (chosen-plaintext). Der Mitschüler kennt den Geheimtext und dessen erste zehn Klartextbuchstaben: Es liegt ein Angriff mit bekanntem Klartext vor.

Erwartungshorizont zu Aufgabe b)
12345678910
Geheimtext cQ 16L 11S 18I 8R 17R 17Q 16F 5E 4U 20
Klartext pP 15R 17O 14B 1E 4N 13P 15L 11A 0N 13
(c − p) mod 261 B20 U4 E7 H13 N4 E1 B20 U4 E7 H

Die Folge BUEHNE|BUEH wiederholt sich nach sechs Stellen; da das Schlüsselwort höchstens zehn Buchstaben hat, lautet es BUEHNE. Probe: P + B = Q, R + U = L (17 + 20 = 37 ≡ 11).

Erwartungshorizont zu Aufgabe c)

N bis Z: \(210+506+272+272+1056+240+182+506+812+182+210+1406+72=5926\), also \(\sum n_i(n_i-1)=5340+5926=11\,266\).

\(I=\dfrac{11\,266}{511\cdot510}=\dfrac{11\,266}{260\,610}\approx0{,}043\).

Der Wert liegt deutlich unter dem deutschen Wert 0,0762 und nahe am Zufallswert 0,0385: Das Verfahren ist polyalphabetisch, die einfache Häufigkeitsanalyse scheitert.

Friedman: \(L\approx\dfrac{0{,}0377}{0{,}0432-0{,}0385}\approx8\). Die Schätzung liefert die richtige Größenordnung, trifft die tatsächliche Länge 6 aus b) aber nicht genau: Bei nur 511 Buchstaben (rund 85 je Alphabet) streut \(I\) merklich, und ein kleiner Fehler im Nenner \(I-0{,}0385\) verändert \(L\) stark. Gesamtaussage: Der Koinzidenzindex zeigt „polyalphabetisch, mittellanger Schlüssel“; die genaue Länge liefern Kasiski-Test oder — wie hier — schon ein kurzes bekanntes Klartextstück. Das Verfahren ist damit unsicher.

2

Die Sicherheitsprüfung

AFB II–III

Ein Versandhändler verschlüsselt seine Kundenbriefe mit einem selbst entwickelten Verfahren „XVig“: Vigenère mit einem zufällig gewählten Schlüsselwort aus 16 Buchstaben, das für alle Briefe gleich bleibt. Jeder Brief beginnt mit „Liebe Kundinnen und Kunden“. Der Hersteller wirbt: „Mit \(26^{16}\approx4{,}4\cdot10^{22}\) Schlüsseln ist XVig sicherer als DES.“

Eine Prüferin misst mit Python-Funktionen den Koinzidenzindex verschiedener Texte eines Kundenbriefs (1420 Buchstaben). „Mittlerer Index bei Länge \(L\)“ bedeutet: Der Text wird in \(L\) Teiltexte zerlegt (jeder \(L\)-te Buchstabe), und der Mittelwert ihrer Koinzidenzindizes wird gebildet.

Messprotokoll der Prüferin
Nr.gemessener TextErgebnis
1Klartext des Briefs0,082
2XVig-Geheimtext0,040
3XVig-Geheimtext, mittlerer Index bei Länge 50,040
4XVig-Geheimtext, mittlerer Index bei Länge 80,059
5XVig-Geheimtext, mittlerer Index bei Länge 160,082
6AES-verschlüsselter Brief, als Buchstaben kodiert0,039
Alle Werte auf drei Nachkommastellen gerundet.
  1. Implementieren Sie in Python die Funktion koinzidenzindex(text), die nur die Buchstaben A–Z (Groß- und Kleinschreibung gleich behandelt) zählt und \(I\) zurückgibt, sowie die Funktion mittlerer_index(text, laenge).
  2. Interpretieren Sie die Messwerte 1 bis 6.
  3. Beurteilen Sie die Sicherheit von XVig und die Werbeaussage des Herstellers.

Hinweise

Hinweis zu Aufgabe a)
Eine Liste mit 26 Zählern; ord(zeichen) - 65 liefert die Position. Für die Teiltexte hilft das Slicing text[start::laenge]. Denke an Texte mit weniger als zwei Buchstaben.
Hinweis zu Aufgabe b)
Was passiert mit den Teiltexten, wenn die gewählte Länge genau der Schlüssellänge entspricht? Und was, wenn sie nur die Hälfte davon ist?
Hinweis zu Aufgabe c)
Gehe das Urteilsschema durch: Brute Force, Statistik, Klartext-Angriffe, Handhabung. Was bringt der feste Briefanfang einem Angreifer?Beurteilen heißt: ein eigenes, fachlich begründetes Urteil formulieren.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)
def koinzidenzindex(text):
    anzahl = [0] * 26
    n = 0
    for zeichen in text.upper():
        if "A" <= zeichen <= "Z":        # nur A–Z zählen
            anzahl[ord(zeichen) - 65] += 1
            n += 1
    if n < 2:
        return 0.0
    summe = 0
    for k in anzahl:
        summe += k * (k - 1)
    return summe / (n * (n - 1))

def mittlerer_index(text, laenge):
    buchstaben = ""
    for zeichen in text.upper():
        if "A" <= zeichen <= "Z":
            buchstaben += zeichen
    summe = 0
    for start in range(laenge):
        teiltext = buchstaben[start::laenge]  # jeder laenge-te
        summe += koinzidenzindex(teiltext)
    return summe / laenge

Tests: koinzidenzindex("Anna") liefert \(\frac{2+2}{4\cdot3}\approx0{,}333\), koinzidenzindex("SICHERHEITSLUECKE") liefert \(\frac{20}{272}\approx0{,}074\), koinzidenzindex("x") liefert 0.0. Wichtig ist, dass Nicht-Buchstaben weder gezählt noch in \(N\) eingerechnet werden und die Teiltexte aus dem bereinigten Text gebildet werden.

Erwartungshorizont zu Aufgabe b)

(1) 0,082 ist typisch deutsch (ein einzelner Text streut um 0,0762). (2) 0,040 liegt fast beim Zufallswert: Der Geheimtext zeigt insgesamt kaum Sprachspur. (3) Bei Länge 5 bleiben die Teiltexte zufällig — 5 passt nicht zum Schlüssel. (4) Bei Länge 8 steigt der Wert auf etwa die Mitte zwischen Zufall und Deutsch: Jeder Teiltext mischt nur noch zwei Alphabete — ein Hinweis, dass die Schlüssellänge ein Vielfaches von 8 ist. (5) Bei Länge 16 erreicht der mittlere Index den Wert des Klartexts: Jeder Teiltext ist mit einem einzigen Buchstaben verschoben, also Caesar-verschlüsselt. Die Schlüssellänge ist 16, jeder Teiltext lässt sich per Häufigkeitsanalyse knacken. (6) 0,039: Die AES-Ausgabe ist statistisch vom Zufall nicht zu unterscheiden.

Fazit: Der Gesamtwert (2) täuscht Sicherheit vor; erst die Zerlegung zeigt die Struktur.

Erwartungshorizont zu Aufgabe c)

Brute Force: \(26^{16}\approx4{,}4\cdot10^{22}\) ist tatsächlich größer als der DES-Schlüsselraum \(2^{56}\approx7{,}2\cdot10^{16}\), liegt aber weit unter \(2^{128}\approx3{,}4\cdot10^{38}\). Brute Force ist schon heute aufwendig, doch darauf kommt es gar nicht an.

Statistik: Die Messung zeigt (b): Mit dem mittleren Index findet man die Schlüssellänge 16; danach ist jeder Teiltext Caesar, und die Häufigkeitsanalyse liefert jeden Schlüsselbuchstaben. Bei rund 90 Buchstaben je Teiltext klappt das zuverlässig.

Klartext-Angriff: Der feste Anfang „LIEBEKUNDINNENUNDKUNDEN“ hat 23 ≥ 16 Buchstaben. Schlüssel = Geheimtext − Klartext liefert aus einem einzigen Brief sofort das ganze Schlüsselwort.

Handhabung: Weil das Schlüsselwort für alle Briefe gleich bleibt, sind mit ihm auch alle anderen Briefe offen.

Urteil: XVig ist unsicher; schon eine der drei letzten Schwächen genügt. Die Werbeaussage ist irreführend: Sie misst Sicherheit allein am Schlüsselraum und verschweigt Analyse und bekannten Klartext. Empfehlung: ein geprüftes Verfahren wie AES mit zufälligem 128-Bit-Schlüssel (Messwert 6) statt einer Eigenentwicklung — im Sinne von Kerckhoffs wird Sicherheit durch öffentlich geprüfte Verfahren erreicht. Vollständig ist eine Beurteilung, die mindestens drei Kriterien mit Bezug auf die Messwerte bzw. den Briefanfang prüft und zu einem klaren Urteil kommt.