Kryptoanalyse

Die symmetrischen Stromchiffren, die wir bis jetzt kennengelernt haben, sind mit relativ geringem Aufwand zu entschlüsseln. Dabei nutzen die «intelligenteren» Angriffstaktiken die Schwächen der jeweiligen Kryptosysteme aus.

Brute-Force-Attacke

Wie der Name schon sagt, wird bei der Brute-Force-Attacke mit «nackter Gewalt» – also ohne zu überlegen – vorgegangen. Dabei werden alle möglichen Schlüssel-Kombinationen durchprobiert bis der Code geknackt ist.

Berechne für die untenstehenden Kryptosysteme die Grösse des Schlüsselraumes (Anzahl möglicher Schlüssel) und die maximal notwendige Anzahl Versuche um den Geheimtext mittels Brute-Force-Attacke zu knacken. Berechne ebenfalls die Dauer, die dazu maximal benötigt wird. Dabei nehmen wir an, unser Computer brauche pro Versuch 1/100 Sekunde.

  1. Caesar-Chiffre (Alphabet mit 26 Buchstaben)
  2. Substitutions-Chiffre (Alphabet mit 26 Buchstaben)
  3. Vigenère-Chiffre mit Schlüsselwort der Länge 5 (Alphabet mit 26 Buchstaben)
  4. Vigenère-Chiffre mit Schlüsselwort der Länge 1-10 (Alphabet mit 26 Buchstaben)

Häufigkeitsanalyse

Monoalphabetische Kryptosysteme (alle Substitutions-Chiffren) sind mit der Häufigkeitsanalyse einfach zu knacken. Dabei wird die Buchstabenhäufigkeit des Geheimtextes ermittelt und mit der bekannten Häufigkeit der Buchstaben der erwarteten Sprache verglichen (siehe Tabelle).

https://commons.wikimedia.org/wiki/File:Alphabet_haufigkeit.svg

Das Verfahren funktioniert nur, wenn der Geheimtext genügend lang ist und wir die Sprache kennen. Zur Beschleunigung können weitere Eigenschaften wie häufige Buchstabenreihenfolgen (bi-, tri- oder n-Gramme) oder häufig auftretende Wörter hinzugezogen werden.

Bigramme: https://de.wikipedia.org/wiki/Datei:Alphabet_bigramm.svg

Friedmann-Test

Bei polyalphabetischen Kryptosystemen – wie z.B der Vigenère-Chiffre – können wir nicht direkt mit einer Analyse der Buchstabenhäufigkeit beginnen. Zuerst müssen wir die Periodenlänge, bei Vigenère die Länge des Schlüsselwortes, herausfinden. Zu diesem Zweck hat William Friedmann 1925 ein statistisches Verfahren erarbeitet. Es soll damit geprüft werden, mit welcher Wahrscheinlichkeit ein zufällig aus dem Klartext herausgegriffenes Buchstabenpaar aus gleichen Buchstaben besteht.

Wendet man dieses Verfahren auf einen Geheimtext der monoalphabetisch verschlüsselt wurde an, ergibt sich derselbe Koinzidenzindex wie beim Klartext. Wendet man das Verfahren hingegen auf einen polyalphabetisch verschlüsselten Geheimtext an, gibt es einen anderen Koinzidenzindex. So kann man aus dem Geheimtext Rückschlüsse auf die Verschlüsselungsmethode gewinnen.

Mittels der Formel von Friedmann lässt sich nun die Länge des Schlüsselwortes berechnen. Hat man einmal die Länge des Schlüsselwortes, erstellt man Häufigkeitsanalysen für alle Buchstaben, die mit demselben Alphabet verschlüsselt wurden. So erhält man Buchstaben um Buchstaben das Schlüsselwort.

Die Formel von Friedmann lässt sich mit etwas Mehraufwand umgehen, indem man einfach verschiedene Schlüssellängen annimmt und schaut ob eine berechnete Buchstabenhäufigkeitstabelle mit der Häufigkeitstabelle der deutschen Sprache übereinstimmt.

  1. Knacke die beiden verschlüsselten Texte (Substitution.txt und Vigenère.txt) mit Hilfe des Programms CrypTool (oder JCrypTool). Dazu musst du den Text analysieren, resp. den Friedmann-Test durchführen. Wahrscheinlich musst du anschliessend von Hand einige Korrekturen beim Schlüsselwort oder der Übersetzungstabelle vornehmen, damit der Geheimtext wirklich korrekt entschlüsselt wird.

  2. Verschlüssle selbst (mit Cryptool) einen Text und gib ihn einem Kollegen zum Entschlüsseln weiter – natürlich ohne Schlüssel ;-)

symmetrische Verschlüsselung

Das Verschlüsselungs-Verfahren ist öffentlich, nur der Schlüssel ist geheim. Daraus folgt:

Der Schlüsseltausch ist problematisch!
Der Schlüssel muss über einen sicheren Kanal ausgetauscht werden.
Existiert ein Verfahren um den Schlüsseltausch zu umgehen?