MINT lernen

Symmetrische Verschlüsselung

Ein Kollegium tauscht Klausuren aus, eine Tresor-App wirbt mit AES-256 — wie weit trägt ein gemeinsamer Schlüssel?

Dein Fortschritt:
0 / 0 Aufgaben
1

Klausuren im Fachbereich

AFB I–II

Die acht Lehrkräfte A bis H des Fachbereichs Informatik schicken sich Klausurentwürfe per E-Mail. Jede Mail soll nur von der Empfängerin bzw. dem Empfänger gelesen werden können. Sie verwenden das symmetrische Verfahren AES mit 128-Bit-Schlüsseln; jedes Paar von Lehrkräften erhält einen eigenen Schlüssel, der bei einer Konferenz auf USB-Sticks verteilt wird.

Schlüsselnetz des Fachbereichs
ABCDEFGH
Jede Linie steht für einen gemeinsamen geheimen Schlüssel zweier Lehrkräfte.
  1. Erklären Sie das Prinzip eines symmetrischen Verfahrens am Beispiel des Fachbereichs. Gehen Sie dabei auf das Prinzip von Kerckhoffs ein.
  2. Berechnen Sie, wie viele Schlüssel der Fachbereich benötigt und wie viele hinzukommen, wenn drei Referendarinnen und Referendare aufgenommen werden.
  3. Leiten Sie die Formel für die Anzahl der Schlüssel bei \(n\) Personen her.

Hinweise

Hinweis zu Aufgabe a)
Wer braucht welchen Schlüssel, um eine Mail von A an B zu lesen? Was darf öffentlich bekannt sein, was nicht?
Hinweis zu Aufgabe b)
Zähle zuerst die Schlüssel, die eine einzelne Person braucht. Achte darauf, kein Paar doppelt zu zählen.
Hinweis zu Aufgabe c)
Verallgemeinere deine Überlegung aus b) von 8 auf \(n\) Personen.Herleiten heißt: den Zusammenhang schrittweise aus bekannten Überlegungen gewinnen.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

A und B besitzen denselben geheimen Schlüssel \(K_{AB}\). A verschlüsselt die Klausur mit \(K_{AB}\) und AES; B entschlüsselt mit demselben Schlüssel. Wer die Mail unterwegs abfängt, sieht nur den Geheimtext.

Nach Kerckhoffs darf das Verfahren (AES) öffentlich bekannt sein; die Sicherheit beruht allein auf der Geheimhaltung der Schlüssel. Deshalb müssen die Schlüssel vorab auf sicherem Weg verteilt werden — hier persönlich bei der Konferenz. Da jedes Paar einen eigenen Schlüssel hat, kann C die Mails zwischen A und B nicht lesen.

Erwartungshorizont zu Aufgabe b)

8 Lehrkräfte: \(\frac{8 \cdot 7}{2} = 28\) Schlüssel (wie in der Abbildung).

11 Personen: \(\frac{11 \cdot 10}{2} = 55\) Schlüssel, also \(55 - 28 = 27\) neue. Probe: Jede der drei neuen Personen braucht Schlüssel mit den 8 bisherigen (\(3 \cdot 8 = 24\)) und untereinander (\(3\)): \(24 + 3 = 27\).

Erwartungshorizont zu Aufgabe c)

Jede der \(n\) Personen braucht mit jeder der \(n - 1\) anderen einen Schlüssel: \(n \cdot (n-1)\) Zuordnungen. Dabei ist jeder Schlüssel doppelt gezählt (\(K_{AB} = K_{BA}\)), also

\(\displaystyle N(n) = \frac{n\,(n-1)}{2}.\)

Die Anzahl wächst quadratisch: Verdoppelt sich die Zahl der Personen, braucht man etwa viermal so viele Schlüssel.

2

Die Tresor-App

AFB II–III

Eine Tresor-App speichert Dokumente mit AES-256 verschlüsselt und wirbt mit dem Satz „Mit AES-256 sind Ihre Daten unknackbar.“ Den Schlüssel kann man auf drei Arten erzeugen lassen (siehe Tabelle). Ein Angreifer hat die verschlüsselte Datei kopiert und testet auf seiner Grafikkarte \(10^{10}\) Schlüssel pro Sekunde; eine Sperre nach Fehlversuchen greift bei der kopierten Datei nicht.

Schlüsselquellen der App
VarianteSchlüsselquelleAnzahl möglicher Schlüssel
1sechsstellige PIN\(10^6\)
2zehnstelliges Passwort aus 62 Zeichen (a–z, A–Z, 0–9)\(62^{10}\)
3zufälliger 256-Bit-Schlüssel auf USB-Stick\(2^{256}\)
Aus PIN oder Passwort berechnet die App jeweils genau einen AES-Schlüssel.
  1. Schätzen Sie für alle drei Varianten ab, wie lange eine vollständige Brute-Force-Suche höchstens dauert.
  2. Erstellen Sie eine Python-Funktion pin_knacken(pruefe), die alle sechsstelligen PINs von "000000" bis "999999" durchprobiert und die richtige PIN als Zeichenkette zurückgibt. Die gegebene Funktion pruefe(pin) liefert genau für die richtige PIN True.
  3. Nehmen Sie Stellung zur Werbeaussage der App.

Hinweise

Hinweis zu Aufgabe a)
Anzahl der Schlüssel durch die Zahl der Versuche pro Sekunde teilen; ein Jahr hat etwa \(3{,}2 \cdot 10^{7}\) Sekunden. Größenordnungen genügen.
Hinweis zu Aufgabe b)
Eine Zählschleife über alle Zahlen genügt. Achte auf führende Nullen: Die PIN 42 heißt „000042“.
Hinweis zu Aufgabe c)
Unterscheide zwischen der Stärke des Algorithmus und der Stärke des Schlüssels. Wovon hängt die tatsächliche Sicherheit ab?Stellung nehmen heißt: nach Abwägung eine eigene, begründete Position beziehen.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)
VarianteRechnungZeit (höchstens)
1\(10^6 : 10^{10} = 10^{-4}\,\text{s}\)0,1 ms
2\(62^{10} \approx 8{,}4 \cdot 10^{17};\; 8{,}4 \cdot 10^{17} : 10^{10} \approx 8{,}4 \cdot 10^{7}\,\text{s}\)≈ 2,7 Jahre
3\(2^{256} \approx 1{,}2 \cdot 10^{77};\; 1{,}2 \cdot 10^{77} : 10^{10} = 1{,}2 \cdot 10^{67}\,\text{s}\)≈ 3,7 · 10⁵⁹ Jahre

Variante 1 ist sofort geknackt, Variante 2 in wenigen Jahren (mit 100 Grafikkarten in Tagen), Variante 3 ist praktisch unmöglich — das Universum ist erst etwa \(1{,}4 \cdot 10^{10}\) Jahre alt.

Erwartungshorizont zu Aufgabe b)
def pin_knacken(pruefe):
    for zahl in range(1000000):    # 0 … 999999
        pin = str(zahl)
        # führende Nullen: 42 -> "000042"
        while len(pin) < 6:
            pin = "0" + pin
        if pruefe(pin):
            return pin
    return None                    # nicht gefunden

Gleichwertig: pin = str(zahl).zfill(6) oder f"{zahl:06d}". Test: Mit pruefe = lambda p: p == "004711" liefert die Funktion "004711".

Erwartungshorizont zu Aufgabe c)

AES-256 selbst gilt als sicher: Ein Brute-Force-Angriff auf einen zufälligen 256-Bit-Schlüssel ist aussichtslos (Variante 3). Die Werbeaussage verschweigt aber, dass die Sicherheit vom schwächsten Glied abhängt — hier von der Schlüsselquelle. Aus einer PIN entstehen nur \(10^6\) Schlüssel; der Schlüsselraum ist dann nicht \(2^{256}\), sondern \(10^6\) (Variante 1). Auch ein zehnstelliges Passwort ist nur dann einigermaßen stark, wenn es zufällig gewählt ist; gängige Passwörter fallen einem Wörterbuchangriff viel schneller zum Opfer.

Hinzu kommen Angriffe, die das Verfahren gar nicht betreffen: Diebstahl des USB-Sticks, Schadsoftware auf dem Gerät, Weitergabe des Schlüssels.

Position: Die Aussage ist irreführend. Richtig wäre: „Mit AES-256 und einem zufälligen 256-Bit-Schlüssel sind Ihre Daten nach heutigem Stand nicht per Brute Force zu knacken.“ Vollständig ist eine Stellungnahme, die Algorithmus und Schlüsselquelle trennt, mindestens eine Variante rechnerisch einbezieht und zu einem klaren Urteil kommt.