1.5. Kryptoanalyse#
Intuitiv würde man annehmen, dass ein kryptographisches Verfahren, das unter Verschluss gehalten wird (d.h., dass dessen Mechanismus geheim ist) sicher genutzt werden kann für den Informationsaustausch. Im Englischen wird dieses Prinzip auch als Security by Obscurity zusammengefasst. Wird ein Kryptosystem allerdings von einer größeren Anzahl von Personen genutzt, kann man nicht darauf vertrauen, dass das Verfahren wirklich geheim bleibt. Das System muss auch dann sicher bleiben, wenn alle Details des Verschlüsselungsverfahrens bekannt sind; die einzige Geheimhaltung sollte der eigentliche Schlüssel sein (Maxime von Kerckhoff). Erfahrungsgemäß ist ein Kryptosystem dann am sichersten, wenn der Algorithmus allgemein bekannt ist und von vielen Leuten evaluiert wurde. Dies ist ein wichtiger Grundsatz der sogenannten Open-Source-Sicherheit, welche im Englischen auch als Security by Design bezeichnet wird, und bildet die Grundlage für viele moderne kryptographische Verfahren.
Die systematische Untersuchung der Sicherheit von Kryptosystemen wird als Kryptanalyse [Bau00] oder auch als Kryptoanalyse [Buc05] bezeichnet. Während Kryptographinnen und Kryptographen sich mit der Entwicklung und Anwendung von kryptographischen Verfahren beschäftigen, ist es das Ziel von Kryptoanalysten Schwachstellen in diesen Verfahren zu identifizieren und Wege zu finden diese gezielt auszunutzen. Umgangssprachlich werden Kryptoanalysten daher auch Codeknacker genannt.
Innerhalb der Kryptoanalyse wird jemand, der unbefugt an verschlüsselte Informationen kommen will, Angreifer, Gegner oder Feind genannt. Das Ausnutzen einer Schwachstelle in einem kryptographischen Verfahren wird auch als Angriff oder Attacke bezeichnet.
Allgemein gibt es verschiedene Ziele in der Kryptoanalyse, die sich je nach Vorhandensein von Zusatzinformationen grob in die folgenden Angriffsszenarien unterteilen lassen:
Ciphertext-only: Der Angreifer hat nur einen verschlüsselten Text zur Verfügung und will diesen entschlüsseln. Dies ist die schwächste Art von Angriff und basiert vorwiegend auf statistischen Eigenschaften der Klartextsprache oder sogar nur auf dem Durchprobieren aller Möglichkeiten (im Englischen: Brute Force) und Raten.
Known-plaintext: Der Angreifer kennt einen Ausgangstext (oder Teile davon) und den zugehörigen verschlüsselten Text. Er will Verschlüsselungsverfahren und Schlüssel finden um andere verschlüsselte Texte zu entschlüsseln. Hier wird häufig ausgenutzt, dass der angenommene Klartext eine gewisse Form hat, wie zum Beispiel die Grussformel Liebe Grüße,am Ende eines persönlichen Briefs.
Chosen-plaintext: Der Angreifer kann Ausgangstexte wählen und sehen, wie sie verschlüsselt werden. Er will das zugehörige Verfahren mit Schlüssel finden. Dies ist vor allem bei sogenannten Public-Key-Verschlüsselungsverfahren immer möglich, da die Verschlüsselungsfunktion öffentlich gemacht wird.
Chosen-ciphertext: Der Angreifer kann selbst gewählte Schlüsseltexte entschlüsseln, obwohl der eigentliche Schlüssel unbekannt ist. Diese Form von Angriff wird vor allem im Zusammenhang mit Authentifizierungsverfahren (z.B. bei Webservern) ausgenutzt.
Im Allgemeinen unterscheidet man zwischen passiven und aktiven Angreifern. Passive Angreifer können nur Ciphertext-only-Attacken verwenden, wohingegen aktive Angreifer Chosen-plaintext- und Chosen-ciphertext-Attacken nutzen. Aktive Angreifer können darüber hinaus auch versuchen einen übermittelten Chiffretext so zu verändern, dass der Inhalt des Klartexts bewusst verändert wird.