Zum Inhalt springen
Zurück zur Themenübersicht

Angewandte Informatik

Verschlüsselung: von Cäsar zur modernen Kryptografie

Schlüsselräume ausrechnen, Vigenère verstehen und begründen, warum ein Verfahren als sicher gilt.

Benötigte Grundlagen

Dieses Vorwissen brauchst du für das Kapitel. Schau kurz nach, wenn dir etwas davon nicht mehr präsent ist, sonst leg direkt los.

Einführung

Ein Verfahren mit 25 möglichen Schlüsseln ist unsicher, das leuchtet ein. Eines mit 4⋅10264 \cdot 10^{26} Schlüsseln ist es ebenfalls, und das leuchtet zunächst nicht ein.

Genau in dieser Lücke liegt das Interessante. Sicherheit lässt sich nicht an einer einzigen Zahl ablesen, und wer nur den Schlüsselraum vergleicht, kommt zu falschen Schlüssen.

In diesem Kapitel rechnen wir Schlüsselräume aus, sehen uns an, warum große Zahlen allein nicht genügen, und leiten daraus die drei Anforderungen ab, an denen moderne Verfahren gemessen werden.

Das kannst du nach diesem Kapitel

  • die Größe eines Schlüsselraums berechnen und die nötige Angriffsdauer abschätzen.

  • die Vigenère-Verschlüsselung anwenden und ihre Wirkung auf die Häufigkeitsverteilung erklären.

  • begründen, warum ein großer Schlüsselraum notwendig, aber nicht hinreichend ist.

  • ein Verschlüsselungsverfahren als darstellen.

  • die drei Anforderungen an ein sicheres Verfahren nennen und auf Beispiele anwenden.

Kurz aufgefrischt

Vorausgesetzt werden , Geheimtext, Schlüssel, die , die und das . Wenn davon etwas unklar ist, lies zuerst Kryptologie.

Neu ist hier die quantitative Seite: Wie groß ist ein Schlüsselraum wirklich, wie lange dauert ein Angriff, und woran misst man Sicherheit?

Schlüsselräume berechnen

Der Schlüsselraum ist die Menge aller möglichen Schlüssel. Seine Größe berechnet man, indem man abzählt, wie viele Wahlmöglichkeiten es gibt.

: eine Verschiebung zwischen 1 und 25.

∣K∣=25|K| = 25

Monoalphabetische Substitution: Jeder der 26 Buchstaben bekommt ein eigenes Bild. Für den ersten gibt es 26 Möglichkeiten, für den zweiten noch 25 und so fort.

∣K∣=26!=26⋅25⋅24⋯1≈4,03⋅1026|K| = 26! = 26 \cdot 25 \cdot 24 \cdots 1 \approx 4{,}03 \cdot 10^{26}

Vigenère mit Schlüsselwort der Länge ℓ\ell: Jede Stelle des Schlüsselworts kann einen von 26 Buchstaben tragen, unabhängig von den anderen.

∣K∣=26ℓ|K| = 26^{\ell}

Bei ℓ=8\ell = 8 sind das 268≈2,1⋅101126^8 \approx 2{,}1 \cdot 10^{11}, bei ℓ=20\ell = 20 bereits 2620≈2⋅102826^{20} \approx 2 \cdot 10^{28}.

Moderne Verfahren mit Schlüssellänge nn :

∣K∣=2n|K| = 2^{n}

Bei 128 Bit sind das 2128≈3,4⋅10382^{128} \approx 3{,}4 \cdot 10^{38}.

Wie lange dauert Durchprobieren?

Aus der Größe des Schlüsselraums und der Prüfgeschwindigkeit folgt die Dauer:

t=∣K∣vt = \frac{|K|}{v}

Dabei ist vv die Zahl der geprüften Schlüssel je Sekunde. Rechnen wir das für eine sehr schnelle Anlage mit einer Billion Schlüsseln pro Sekunde durch, also v=1012v = 10^{12}:

| Verfahren | ∣K∣|K| | Dauer bei 101210^{12} Schlüsseln je Sekunde | |---|---|---| | | 25 | unmessbar kurz | | Vigenère, ℓ=4\ell = 4 | 4,6⋅1054{,}6 \cdot 10^{5} | unmessbar kurz | | Vigenère, ℓ=8\ell = 8 | 2,1⋅10112{,}1 \cdot 10^{11} | unter einer Sekunde | | Monoalphabetisch | 4,0⋅10264{,}0 \cdot 10^{26} | rund 13 Millionen Jahre | | 128 | 3,4⋅10383{,}4 \cdot 10^{38} | rund 101910^{19} Jahre |

Zwei Beobachtungen sind wichtig. Erstens: Die monoalphabetische Substitution wäre gegen Durchprobieren sicher, und sie ist trotzdem mit Papier knackbar. Zweitens: Bei 128 Bit übersteigt die Dauer das Alter des Universums um viele Größenordnungen; ein tausendfach schnellerer Rechner ändert daran nichts Wesentliches.

🔴 Daraus folgt die zentrale Einsicht: Ein großer Schlüsselraum ist notwendig, aber nicht hinreichend. Er schützt gegen Durchprobieren, sagt aber nichts über andere Angriffe.

Schlüsselräume, in Stellen gemessen

010203040Stellen von |K|2Cäsar12Vigenère ℓ = 827monoalphabetisch39128 Bit

🔴 Lies die Achse genau: Aufgetragen ist nicht die Zahl der Schlüssel, sondern ihre Stellenzahl. Jede Einheit nach oben bedeutet also den Faktor 10, nicht plus eins. Anders geht es nicht, 21282^{128} wäre auf einer normalen Achse rund 103710^{37}-mal so hoch wie die Cäsar-Säule und damit nicht zeichenbar. Und nun die eigentliche Lehre, für die die hervorgehobene Säule steht: Die monoalphabetische Substitution hat 27 Stellen, also 4⋅10264 \cdot 10^{26} Schlüssel, und wäre gegen Durchprobieren sicher, bei einer Billion Versuchen je Sekunde dauerte es 13 Millionen Jahre. Trotzdem knackt man sie mit Papier und Bleistift. Ein großer Schlüsselraum ist notwendig, aber nicht hinreichend.

Vigenère: dieselbe Idee, stellenabhängig

Die Schwäche der monoalphabetischen Verfahren liegt darin, dass ein immer durch denselben Geheimtextbuchstaben ersetzt wird. Die Häufigkeitsverteilung der Sprache überträgt sich damit unverändert.

Vigenère behebt das, indem die Verschiebung von der Position abhängt. Ein Schlüsselwort gibt für jede Stelle eine eigene Verschiebung an und wiederholt sich dann:

Klartext:      I  N  F  O  R  M  A  T  I  K
Schlüssel:     K  E  Y  K  E  Y  K  E  Y  K
Verschiebung: 10  4 24 10  4 24 10  4 24 10
Geheimtext:    S  R  D  Y  V  K  K  X  G  U

Der entscheidende Effekt: Das I\texttt{I} an Stelle 1 wird zu S\texttt{S}, das I\texttt{I} an Stelle 9 zu G\texttt{G}. Derselbe Klartextbuchstabe erzeugt verschiedene Geheimtextbuchstaben, und die einfache läuft ins Leere.

Rechnerisch ist es dieselbe Formel wie bei , nur mit einer stellenabhängigen Verschiebung sis_i:

gi=(ki+si) mod 26g_i = (k_i + s_i) \bmod 26

Dasselbe I, zwei verschiedene Geheimzeichen

KlarABCDEFGHIJKLMNOPQRSTUVWXYZK +10KLMNOPQRSTUVWXYZABCDEFGHIJE +4EFGHIJKLMNOPQRSTUVWXYZABCDY +24YZABCDEFGHIJKLMNOPQRSTUVWXStelle 1 gehört zu K, Stelle 9zu Y. Aus demselben I wirddeshalb einmal S und einmal G.

Sieh dir die hervorgehobene Spalte an: Unter dem I stehen drei verschiedene Buchstaben, je nachdem, welche Zeile gerade gilt. Im Beispiel INFORMATIK mit dem Schlüsselwort KEY entscheidet die Stelle darüber: Das I an Stelle 1 trifft auf das K, wird also um 10 verschoben und zu S; das I an Stelle 9 trifft auf das Y, wird um 24 verschoben und zu G. Damit ist die aus Klasse 10 erledigt, die Verteilung des verschmiert sich auf mehrere Geheimtextbuchstaben und scheint nicht mehr durch. Der Angriff verschiebt sich dadurch aber nur: Wer die Länge des Schlüsselworts kennt, zerlegt den Text in ebenso viele Teiltexte, und jeder einzelne ist wieder ein simples .

Warum auch Vigenère fällt

Die Schwachstelle ist die Wiederholung des Schlüsselworts. Hat es die Länge ℓ\ell, so werden die Stellen 1,1+ℓ,1+2ℓ,…1, 1+\ell, 1+2\ell, \ldots alle mit derselben Verschiebung behandelt.

Kennt ein Angreifer ℓ\ell, kann er den in ℓ\ell Teiltexte zerlegen: alle Zeichen an Position 1,1+ℓ,1+2ℓ1, 1+\ell, 1+2\ell bilden den ersten, und so fort. Jeder dieser Teiltexte ist dann eine einfache und in Sekunden geknackt.

Die Schlüssellänge selbst verrät sich durch wiederkehrende Muster: Kommt eine Buchstabenfolge im Klartext mehrfach im selben Abstand vor wie das Schlüsselwort, erscheint sie auch im Geheimtext identisch. Aus den Abständen solcher Wiederholungen lässt sich ℓ\ell erschließen.

Daraus folgt: Vigenère ist umso stärker, je länger und unregelmäßiger das Schlüsselwort ist. Im Grenzfall, wenn der Schlüssel so lang ist wie der Klartext, zufällig gewählt und nur einmal verwendet wird, ist das Verfahren sogar beweisbar unknackbar. Praktisch scheitert das daran, dass man diesen Schlüssel erst einmal sicher übertragen müsste, und wäre das möglich, könnte man auch gleich die so übertragen.

Ein Verfahren als Algorithmus

Der Lehrplan verlangt, ein Verschlüsselungsverfahren als darzustellen. Für Vigenère:

UNTERPROGRAMM verschluessle(klartext, schluessel)
  ergebnis := ""
  FÜR i VON 0 BIS laenge(klartext) - 1 WIEDERHOLE
    k := position(klartext[i])                    // 0 bis 25
    s := position(schluessel[i mod laenge(schluessel)])
    g := (k + s) mod 26
    ergebnis := ergebnis + buchstabe(g)
  ENDE FÜR
  GIB ZURÜCK ergebnis
ENDE UNTERPROGRAMM

Zwei Stellen verdienen Beachtung. Der Ausdruck i mod laenge(schluessel)\texttt{i mod laenge(schluessel)} bewirkt die Wiederholung des Schlüsselworts, ohne dass man es künstlich verlängern müsste. Und das  mod  26\bmod\ 26 erledigt das Weiterzählen am Alphabetende.

Das Entschlüsseln ist dasselbe mit (k−s+26) mod 26(k - s + 26) \bmod 26. Die Addition von 26 verhindert negative Zwischenergebnisse; sie ändert am Rest nichts, weil 26 der Modulwert ist.

Vigenère als Algorithmus

ergebnis := leerfür jede Stelle ik := Platz vonklar[i]s := Platz vonschl[j]g := (k + s) mod26Zeichen g anhängen

Vier Zeilen im Rahmen, und jede tut genau eine Sache: in eine Zahl, Schlüsselbuchstabe in eine Zahl, beide addieren, zurückverwandeln. Zwei Stellen verdienen den genauen Blick. Das  mod  26\bmod\ 26 erledigt das Weiterzählen am Alphabetende, dieselbe Rolle wie bei . Und der Schlüsselindex jj läuft als i mod La¨nge(schl)\texttt{i mod Länge(schl)} mit: Genau das bewirkt die Wiederholung des Schlüsselworts, ohne dass man es künstlich auf Textlänge verlängern müsste. Das Entschlüsseln ist übrigens dasselbe mit (k−s+26) mod 26(k - s + 26) \bmod 26; die 26 verhindert nur negative Zwischenergebnisse und ändert am Rest nichts.

Die drei Anforderungen

Aus allem Bisherigen ergeben sich drei Bedingungen, an denen jedes Verfahren gemessen wird:

1. Großer Schlüsselraum. Durchprobieren muss aussichtslos sein. Heute gelten mindestens 128 als sicher.

2. Keine durchscheinende Struktur. Aus dem darf sich nichts über den Klartext ablesen lassen. Ideal ist, dass der Geheimtext von zufälligen nicht unterscheidbar ist.

3. Offenes Verfahren, geheimer Schlüssel. Das . Die Sicherheit hängt allein am wechselbaren Schlüssel.

Ein Verfahren muss alle drei erfüllen. Die monoalphabetische Substitution erfüllt die erste und scheitert an der zweiten; ein selbst erfundenes Geheimverfahren scheitert an der dritten, unabhängig davon, wie gut es sein mag.

Was moderne Verfahren zusätzlich lösen, nämlich wie zwei Menschen einen gemeinsamen Schlüssel vereinbaren, ohne sich je getroffen zu haben, ist Thema der Qualifikationsphase.

Drei Anforderungen, vier Verfahren

VerfahrengroßerRaumkeineStrukturoffenCäsar✗✗✓monoalph.✓✗✓Eigenbau??✗128 Bit✓✓✓Beim Eigenbau stehen Fragezeichen:Weil niemand das Verfahren prüfendarf, lassen sich die ersten beidenSpalten gar nicht beurteilen.

Ein Verfahren taugt nur, wenn in seiner Zeile dreimal ein Haken steht und das gelingt nur der letzten. Geh die Zeilen durch: scheitert schon am Schlüsselraum. Die monoalphabetische Substitution besteht die erste Prüfung glänzend und fällt an der zweiten durch, weil die Häufigkeitsverteilung der Sprache durchscheint. Am lehrreichsten ist die dritte Zeile: Ein selbst erfundenes Geheimverfahren scheitert am , und die Fragezeichen davor sind kein Platzhalter, sondern die Aussage. Weil niemand es prüfen darf, kann man über seinen Schlüsselraum und seine Struktur gar nichts sagen. „Wir verraten nicht, wie es funktioniert“ ist deshalb kein Sicherheitsversprechen, sondern die Weigerung, sich prüfen zu lassen.

Schlüsselraum und Angriffsdauer berechnen

Vergleiche Vigenère mit Schlüsselwortlänge 6 und ein Verfahren mit 40-Bit-Schlüssel. Ein Angreifer prüft 10910^{9} Schlüssel je Sekunde.

  1. 1

    Vigenère, ℓ=6\ell = 6: Jede der 6 Stellen kann 26 Werte tragen, also ∣K∣=266|K| = 26^6.

  2. 2

    266=308 915 776≈3,1⋅10826^6 = 308\,915\,776 \approx 3{,}1 \cdot 10^{8}.

  3. 3

    Dauer: 3,1⋅108109≈0,31\dfrac{3{,}1 \cdot 10^{8}}{10^{9}} \approx 0{,}31 Sekunden. Also praktisch sofort.

  4. 4

    40 Bit: ∣K∣=240≈1,1⋅1012|K| = 2^{40} \approx 1{,}1 \cdot 10^{12}. Dauer: 1,1⋅1012109≈1100\dfrac{1{,}1 \cdot 10^{12}}{10^{9}} \approx 1100 Sekunden, also gut 18 Minuten.

  5. 5

    Beurteilung: Beide sind heute unbrauchbar. Bemerkenswert ist der Vergleich mit 128 Bit: 21282^{128} ist rund 3⋅10263 \cdot 10^{26} mal so groß wie 2402^{40}. Aus 18 Minuten würden dadurch mehr als 101910^{19} Jahre. Jedes zusätzliche Bit verdoppelt die Dauer, deshalb wachsen die Zahlen so schnell.

Vigenère mit 6 Zeichen: 0,3 Sekunden. 40 : 18 Minuten. Beide sind zu klein; die Schlüssellänge wirkt exponentiell.

Vigenère anwenden und zurückrechnen

a) Verschlüssle mit dem Schlüsselwort BOT. b) Entschlüssle den ersten Buchstaben deines Ergebnisses wieder.

  1. 1

    Positionen bestimmen (A = 0): D = 3, A = 0, T = 19, E = 4, N = 13. Schlüssel: B = 1, O = 14, T = 19.

  2. 2

    Schlüssel wiederholen: B O T B O, denn nach drei Zeichen beginnt das Schlüsselwort von vorn.

  3. 3

    Stellenweise rechnen mit g=(k+s) mod 26g = (k + s) \bmod 26:

    StelleKlarkkSchlüsselssk+sk+s mod  26\bmod\ 26Geheim
    1D3B144E
    2A0O141414O
    3T19T193812M
    4E4B155F
    5N13O14271B
  4. 4

    Ergebnis: EOMFB. Beachte Stelle 3: 3838 ist größer als 25, deshalb greift das  mod  26\bmod\ 26 und liefert 12.

  5. 5

    b) Zurückrechnen mit (g−s+26) mod 26(g - s + 26) \bmod 26: E hat die Position 4, B die Position 1. (4−1+26) mod 26=29 mod 26=3(4 - 1 + 26) \bmod 26 = 29 \bmod 26 = 3, und 3 ist D. Stimmt.

DATEN mit BOT ergibt EOMFB. Die Rückrechnung liefert wieder D.

Typischer Fehler

„Mein Verfahren hat 103010^{30} mögliche Schlüssel, also ist es sicher.“

Die Zahl belegt genau eine Sache: Durchprobieren ist aussichtslos. Über alle anderen Angriffe sagt sie nichts.

Das Gegenbeispiel steht in diesem Kapitel: Die monoalphabetische Substitution hat 26!≈4⋅102626! \approx 4 \cdot 10^{26} Schlüssel, und man knackt sie mit Papier und Bleistift in einer Stunde. Nicht durch Probieren, sondern durch Analyse: Die Häufigkeitsverteilung der Sprache scheint unverändert durch, und man liest den Schlüssel Stück für Stück aus dem Text ab.

Sicherheit hat deshalb mindestens zwei getrennte Bedingungen, und sie schützen vor verschiedenen Dingen:

Anforderungschützt gegenPrüffrage
großer SchlüsselraumDurchprobierenWie lange dauert es, alle zu testen?
keine durchscheinende StrukturAnalyseLässt sich aus dem etwas über den Klartext ablesen?

Dazu kommt als dritte das , das gegen einen ganz anderen Fall schützt: dass das Verfahren selbst bekannt wird.

Ein selbst entworfenes Verfahren erfüllt die zweite Bedingung so gut wie nie, weil man dafür wissen müsste, welche Angriffe es überhaupt gibt. Genau deshalb setzt niemand eigene Verfahren ein, sondern die öffentlich geprüften, die jahrelangen Angriffsversuchen standgehalten haben.

Übung 1

leicht

a) Wie groß ist der Schlüsselraum bei Vigenère mit einem Schlüsselwort der Länge 4? b) Wie groß bei einem 64-Bit-Schlüssel? c) Welche zwei Anforderungen muss ein Verfahren neben einem großen Schlüsselraum erfüllen?

Tipp anzeigen

Zu a): Wie viele Möglichkeiten hat jede Stelle des Schlüsselworts?

Lösung anzeigen

a) Jede der 4 Stellen kann einen von 26 Buchstaben tragen: 264=456 97626^4 = 456\,976, also rund 4,6⋅1054{,}6 \cdot 10^{5}.

b) 264≈1,8⋅10192^{64} \approx 1{,}8 \cdot 10^{19}.

c) Keine durchscheinende Struktur des im Geheimtext, und offenes Verfahren bei geheimem Schlüssel ().

Detaillierte Schritterklärung anzeigen

Hier wird jeder Schritt einzeln erklärt, vor allem, warum er gemacht wird.

Erklärungstiefe

✦ Empfohlen: Standard – Die normale Erklärungstiefe passt zum Einstieg.

  1. 1

    a) Der Schlüsselraum ist ein Produkt über die Stellen

    Jede der 4 Stellen des Schlüsselworts kann einen von 26 Buchstaben tragen, unabhängig von den anderen. Nach der Produktregel sind das 26⋅26⋅26⋅26=264=456 97626 \cdot 26 \cdot 26 \cdot 26 = 26^4 = 456\,976, also rund 4,6⋅1054{,}6 \cdot 10^{5}.

    264=456 97626^4 = 456\,976

    Zwischenergebnis

    Rund 4,6⋅1054{,}6 \cdot 10^{5} Schlüssel.

  2. 2

    b) Bei Bit-Schlüsseln ist die Basis 2

    Ein 64-Bit-Schlüssel hat je Stelle zwei Möglichkeiten, also 264≈1,8⋅10192^{64} \approx 1{,}8 \cdot 10^{19}. Dieselbe Produktregel wie in a), nur mit Basis 2 statt 26.

    264≈1,8⋅10192^{64} \approx 1{,}8 \cdot 10^{19}

    Zwischenergebnis

    Rund 1,8⋅10191{,}8 \cdot 10^{19} Schlüssel.

  3. 3

    c) Zwei Anforderungen, die ein großer Schlüsselraum nicht ersetzt

    Erstens: keine durchscheinende Struktur des Klartextes im Geheimtext, sonst hilft Analyse statt Durchprobieren, wie bei der monoalphabetischen Substitution. Zweitens: offenes Verfahren bei geheimem Schlüssel (Kerckhoffs-Prinzip).

Übung 2

mittel

Ein Verfahren benutzt Schlüssel aus 10 Zeichen, wobei jedes Zeichen ein Klein- oder Großbuchstabe oder eine Ziffer sein darf.

a) Wie viele Zeichen stehen je Stelle zur Verfügung, und wie groß ist der Schlüsselraum? b) Wie lange dauert vollständiges Durchprobieren bei 101210^{12} Versuchen je Sekunde? c) Wie ändert sich die Dauer, wenn der Schlüssel 12 statt 10 Zeichen hat? d) Warum ist ein Schlüssel „Passwort12“ trotz 10 Zeichen viel unsicherer, als deine Rechnung nahelegt?

Tipp anzeigen

Zu d): Probiert ein Angreifer wirklich alle Kombinationen in zufälliger Reihenfolge durch?

Lösung anzeigen

a) Je Stelle: 26 Kleinbuchstaben ++ 26 Großbuchstaben ++ 10 Ziffern =62= 62 Zeichen. ∣K∣=6210≈8,4⋅1017|K| = 62^{10} \approx 8{,}4 \cdot 10^{17}.

b) t=8,4⋅10171012=8,4⋅105t = \dfrac{8{,}4 \cdot 10^{17}}{10^{12}} = 8{,}4 \cdot 10^{5} Sekunden, also rund 9,7 Tage.

c) 6212=6210⋅622=6210⋅384462^{12} = 62^{10} \cdot 62^2 = 62^{10} \cdot 3844. Die Dauer wird also mit 3844 multipliziert: aus 9,7 Tagen werden rund 37 00037\,000 Tage, also etwa 102 Jahre. Zwei Zeichen mehr erhöhen die Sicherheit um mehr als das Dreitausendfache; das zeigt die exponentielle Wirkung der Länge.

d) Weil die Rechnung voraussetzt, dass alle Kombinationen gleich wahrscheinlich sind. Ein Angreifer probiert aber nicht zufällig, sondern zuerst das Naheliegende: Wörterbücher, häufige Passwörter, Namen mit angehängten Zahlen, Buchstabentausch wie 3 statt e. „Passwort12“ steht in jeder solchen Liste weit vorn und fällt in Sekunden statt in Tagen. Der berechnete Schlüsselraum ist eine Obergrenze für die Sicherheit, die nur bei wirklich zufälliger Wahl erreicht wird.

Detaillierte Schritterklärung anzeigen

Hier wird jeder Schritt einzeln erklärt, vor allem, warum er gemacht wird.

Erklärungstiefe

✦ Empfohlen: Standard – Die normale Erklärungstiefe passt zum Einstieg.

  1. 1

    Teil a): Erst den Zeichenvorrat abzählen

    Der Schlüsselraum ergibt sich aus zwei Angaben: wie viele Zeichen je Stelle möglich sind und wie viele Stellen es gibt. Man zählt den Vorrat sorgfältig ab, denn hier entstehen die meisten Fehler.

    26 + 26 + 10 = 62

    Zwischenergebnis

    62 Möglichkeiten je Stelle.

    Groß- und Kleinbuchstaben sind verschiedene Zeichen. Wer sie zusammenzählt, halbiert den Vorrat und verrechnet sich um viele Größenordnungen.

  2. 2

    Teil a): Potenzieren, nicht multiplizieren

    Jede Stelle wird unabhängig gewählt. Für die erste gibt es 62 Möglichkeiten, und zu jeder davon wieder 62 für die zweite. Das ergibt eine Potenz, keine Multiplikation mit der Stellenzahl.

    |K| = 62^{10} \approx 8{,}4 \cdot 10^{17}

    Zwischenergebnis

    Rund 8,4⋅10178{,}4 \cdot 10^{17} Schlüssel.

  3. 3

    Teil c): Warum zwei Zeichen so viel ausmachen

    Man muss nicht neu potenzieren. Zwei zusätzliche Stellen bedeuten zwei zusätzliche Faktoren 62, also einen Faktor 62262^2 gegenüber vorher.

    \frac{62^{12}}{62^{10}} = 62^{2} = 3844

    Zwischenergebnis

    Die Dauer wird mit 3844 multipliziert.

  4. 4

    Teil d): Die Annahme hinter der Rechnung prüfen

    Jede solche Rechnung setzt stillschweigend voraus, dass alle Schlüssel gleich wahrscheinlich sind. Bei von Menschen gewählten Passwörtern trifft das nicht zu, und der Angreifer weiß das.

    Zwischenergebnis

    Der berechnete Wert ist eine Obergrenze, kein tatsächlicher Schutz.

    Deshalb sind zufällig erzeugte Passwörter aus einem Passwortverwalter deutlich sicherer als selbst ausgedachte gleicher Länge, obwohl der Schlüsselraum derselbe ist.

Übung 3

schwer

a) Erkläre, warum die bei Vigenère nicht unmittelbar funktioniert, bei bekannter Schlüssellänge aber doch. b) Ein zeigt die Zeichenfolge „XKM“ an den Positionen 5, 25 und 45. Was lässt sich über die Schlüssellänge vermuten und warum? c) Schreibe den Entschlüsselungsalgorithmus für Vigenère als . d) Beurteile: „Ein Schlüssel, der so lang ist wie die , macht das Verfahren unknackbar.“ Was stimmt daran, und warum benutzt man es trotzdem kaum?

Tipp anzeigen

Zu b): In welchem Abstand wiederholt sich ein Schlüsselwort der Länge ℓ\ell?

Lösung anzeigen

a) Nicht unmittelbar, weil derselbe Klartextbuchstabe je nach Position mit verschiedenen Verschiebungen behandelt wird. Das häufige E erscheint dadurch mal als I, mal als P, mal als X, und die Häufigkeitsverteilung des Geheimtextes ist deutlich gleichmäßiger als die der Sprache.

Bei bekannter Schlüssellänge ℓ\ell dagegen schon: Alle Zeichen an den Positionen 1,1+ℓ,1+2ℓ,…1, 1+\ell, 1+2\ell, \ldots wurden mit derselben Verschiebung verschlüsselt. Zerlegt man den Geheimtext in ℓ\ell solche Teiltexte, ist jeder von ihnen eine einfache , und auf jeden lässt sich die Häufigkeitsanalyse einzeln anwenden.

b) Die Abstände betragen 25−5=2025 - 5 = 20 und 45−25=2045 - 25 = 20. Eine Wiederholung derselben Geheimtextfolge entsteht typischerweise, wenn dieselbe Klartextfolge auf dieselbe Stelle des Schlüsselworts trifft. Das ist genau dann der Fall, wenn der Abstand ein Vielfaches der Schlüssellänge ist. Also ist ℓ\ell ein Teiler von 20, kommt also aus {1,2,4,5,10,20}\{1, 2, 4, 5, 10, 20\}. Weitere Wiederholungen mit anderen Abständen würden die Menge weiter einschränken; der größte gemeinsame Teiler aller Abstände ist der beste Kandidat.

c) Unterprogramm:

UNTERPROGRAMM entschluessle(geheimtext, schluessel) ergebnis := "" FÜR i VON 0 BIS laenge(geheimtext) - 1 WIEDERHOLE g := position(geheimtext[i]) s := position(schluessel[i mod laenge(schluessel)]) k := (g - s + 26) mod 26 ergebnis := ergebnis + buchstabe(k) ENDE FÜR GIB ZURÜCK ergebnis ENDE UNTERPROGRAMM

Der einzige Unterschied zum Verschlüsseln ist die Rechnung: statt (g=k+s)(g = k + s) nun (k=g−s+26)(k = g - s + 26). Die Addition von 26 verhindert negative Zwischenwerte und ändert am Rest nichts.

d) Richtig ist: Ist der Schlüssel so lang wie die Nachricht, zufällig gewählt und wird er nur einmal verwendet, so ist das Verfahren beweisbar unknackbar. Zu jedem Geheimtext ist dann jeder gleich lange Klartext gleich wahrscheinlich; ein Angreifer gewinnt aus dem Geheimtext keinerlei . Alle drei Bedingungen müssen erfüllt sein: Wird der Schlüssel wiederverwendet oder ist er nicht zufällig, bricht der Beweis zusammen.

Warum es trotzdem kaum benutzt wird: Der Schlüssel muss so lang sein wie die Nachricht und vorher sicher übertragen werden. Könnte man das, könnte man auf demselben sicheren Weg gleich die Nachricht selbst schicken. Das Verfahren löst das Problem also nicht, sondern verschiebt es. Eingesetzt wird es deshalb nur dort, wo Schlüssel im Voraus persönlich übergeben werden können, etwa bei diplomatischen Verbindungen.

Detaillierte Schritterklärung anzeigen

Hier wird jeder Schritt einzeln erklärt, vor allem, warum er gemacht wird.

Erklärungstiefe

✦ Empfohlen: Standard – Die normale Erklärungstiefe passt zum Einstieg.

  1. 1

    a) Warum Häufigkeitsanalyse bei Vigenère zunächst scheitert

    Nicht unmittelbar, weil derselbe Klartextbuchstabe je nach Position mit verschiedenen Verschiebungen behandelt wird. Das häufige E erscheint dadurch mal als I, mal als P, mal als X, die Häufigkeitsverteilung des Geheimtextes ist deutlich gleichmäßiger als die der Sprache.

  2. 2

    a) Und warum sie bei bekannter Schlüssellänge doch funktioniert

    Bei bekannter Schlüssellänge ℓ\ell wurden alle Zeichen an den Positionen 1,1+ℓ,1+2ℓ,…1, 1+\ell, 1+2\ell, \ldots mit derselben Verschiebung verschlüsselt. Zerlegt man den Geheimtext in ℓ\ell solche Teiltexte, ist jeder von ihnen eine einfache Cäsar-Verschlüsselung und auf jeden lässt sich die Häufigkeitsanalyse einzeln anwenden.

  3. 3

    b) Wiederholungsabstände verraten die Schlüssellänge

    Die Abstände betragen 25−5=2025 - 5 = 20 und 45−25=2045 - 25 = 20. Eine Wiederholung derselben Geheimtextfolge entsteht typischerweise, wenn dieselbe Klartextfolge auf dieselbe Stelle des Schlüsselworts trifft, also wenn der Abstand ein Vielfaches der Schlüssellänge ist. Also ist ℓ\ell ein Teiler von 20, kommt somit aus {1,2,4,5,10,20}\lbrace 1, 2, 4, 5, 10, 20 \rbrace.

    25−5=2025 - 5 = 20 und 45−25=2045 - 25 = 20; ℓ∣20\ell \mid 20

    Zwischenergebnis

    ℓ\ell ist ein Teiler von 20.

  4. 4

    c) Der Entschlüsselungsalgorithmus als Unterprogramm

    Der einzige Unterschied zum Verschlüsseln ist die Rechnung: statt g=k+sg = k + s nun k=g−s+26k = g - s + 26. Man läuft über alle Positionen, holt die Schlüsselstelle mit i mod laenge(schluessel)\texttt{i mod laenge(schluessel)} und setzt die Buchstaben wieder zusammen.

    k=(g−s+26) mod 26k = (g - s + 26) \bmod 26

  5. 5

    d) Der Einmalschlüssel: beweisbar sicher und trotzdem kaum benutzt

    Richtig ist: Ist der Schlüssel so lang wie die Nachricht, zufällig gewählt und wird er nur einmal verwendet, so ist das Verfahren beweisbar unknackbar, zu jedem Geheimtext ist dann jeder gleich lange Klartext gleich wahrscheinlich. Alle drei Bedingungen müssen erfüllt sein.

  6. 6

    d) Warum er trotzdem kaum benutzt wird: Das Problem wird nur verschoben

    Der Schlüssel muss so lang sein wie die Nachricht und vorher sicher übertragen werden. Könnte man das, könnte man auf demselben sicheren Weg gleich die Nachricht selbst schicken. Das Verfahren löst das Problem also nicht, sondern verschiebt es.

Zusammenfassung

Die Größe eines Schlüsselraums berechnet man, indem man die Wahlmöglichkeiten je Stelle potenziert: 25 bei , 26!26! bei der monoalphabetischen Substitution, 26ℓ26^{\ell} bei Vigenère und 2n2^{n} bei einem nn-Bit-Schlüssel. Aus dieser Größe und der Prüfgeschwindigkeit folgt die Angriffsdauer, und weil die Länge exponentiell wirkt, machen wenige zusätzliche Zeichen oder einen gewaltigen Unterschied. Trotzdem ist ein großer Schlüsselraum nur notwendig und nicht hinreichend: Die monoalphabetische Substitution wäre gegen Durchprobieren sicher und fällt durch Analyse, weil die Häufigkeitsverteilung der Sprache durchscheint. Vigenère behebt das durch stellenabhängige Verschiebung, bleibt aber angreifbar über die Wiederholung des Schlüsselworts, dessen Länge sich aus Abständen wiederkehrender Muster erschließen lässt. Gemessen wird ein Verfahren deshalb an drei Anforderungen zugleich: großer Schlüsselraum, keine durchscheinende Struktur und ein offenes Verfahren mit geheimem, wechselbarem Schlüssel.