Wie steht es mit der Sicherheit? Hier wird die Kryptologie auf einmal zur Naturwissenschaft. Eine begründete Hypothese wird aufgestellt („Dieser Algorithmus ist sicher!“) und die Gemeinde der Kryptographen stürzt sich darauf, um diese Hypothese zu entkräften. Gelingt das nicht, gilt ein Verfahren so lange als sicher, bis es Hinweise auf seine Unsicherheit gibt.
Die Sicherheit der asymmetrischen Verfahren basieren fast alle auf der Vermutung, dass P≠NP[5] ist. Diese vier Zeichen beschreiben eine der größten offenen Fragen unserer Zeit: Sind bestimmte Probleme, die uns schwierig vorkommen, auf eine schnelle Art und Weise zu lösen (z.B. das Rucksackproblem[6] oder die Primfaktorzerlegung[7])? Die meisten Informatiker und Mathematiker gehen davon aus, dass diese Probleme tatsächlich schwierig sind. (In Wahrheit ist P≠NP nur ein Teil des Problems. Die Vermutung, auf die hier gesetzt wird, ist noch stärker, da auch zufallsgesteuerte Algorithmen erlaubt sind.) Darüber hinaus kann es noch weitere Unsicherheiten geben, wie z.B. beim Merkle-Hellman-Kryptosystem[8], bei dem es in kurzer Zeit möglich ist, mit Hilfe des öffentlichen Schlüssels einen Ersatz-Geheim-Schlüssel zu berechnen.
Die momentan viel eingesetzten Algorithmen sind RSA[9], ElGamal[10] und Elliptic Curve[11]. Sie gelten im Allgemeinen als sicher. Trotzdem können natürlich durch ungünstige Wahl von Parametern oder durch Programmierfehler Sicherheitslücken oder Hintertüren entstehen. Außerdem gibt es Gerüchte, dass die NSA im Bereich der Primfaktorzerlegung große Fortschritte gemacht hat, was die Sicherheit von RSA gefährden kann.
Bei den symmetrischen Verfahren gibt es ein bewiesenermaßen sicheres, das Vernam-Chiffre oder One-Time-Pad genannt wird: Ein echt zufälliger Strom von Einsen und Nullen wird mit der Binärdarstellung der Nachricht via XOR verknüpft (1 XOR 0=0 XOR 1=1, sonst 0). Der zufällige Strom ist dann gleichzeitig der Schlüssel und ist immer genau so lang, wie die zu verschlüsselnde Nachricht ist. Die Entschlüsselung funktioniert genau mit demselben Algorithmus wie die Verschlüsselung. Dieses Verfahren hat zwei Nachteile. Erstens ist der Schlüssel sehr lang und zweitens ist es extrem schwierig, schnell an echte Zufallszahlen zu kommen. Daher ist es naheliegend, statt echter Zufallszahlen Pseudozufallszahlen zu benutzen, die ausgehend von einem Schlüssel generiert werden. Dazu benötigt man dann einen möglichst guten Pseudozufallszahlengenerator.
Klarerweise ist die Sicherheit solcher Strom-Chiffres durch die Qualität des Zufallszahlengenerators begrenzt, wie zuletzt am Beispiel von RC4[12] zu sehen war. Der sehr kompakte Algorithmus, den viele Kryptographen auswendig gelernt haben um nach einer Zombiekalypse eine gute Chiffre zur Verfügung zu haben, kann vermutlich in Echtzeit von der NSA gebrochen werden[13]. Es gibt einige bewiesenermaßen perfekte Pseudozufallszahlengeneratoren, die aber alle von der Zeit-Performance nicht für praktische Anwendungen geeignet sind. Gute, praxisrelevante Algorithmen wurden beispielsweise im eSTREAM-Projekt[14] in den Jahren 2004 bis 2008 ausgewählt.
Davon unabhängig besteht bei den Strom-Chiffres immer die Gefahr, dass derselbe Zufallsstrom mehrfach verwendet wird. Auf dieser Basis wurde die WLAN-Verschlüsselung WEP gebrochen.
Die andere große Gruppe von symmetrischen Verschlüsselungen sind die Block-Chiffren, welche immer eine bestimmte Anzahl an Bits gleichzeitig verschlüsseln (häufig 128 oder 64). Die Schwierigkeit ist, dass die Verschlüsselung immer umkehrbar sein muss. Dies wird bei vielen modernen Verfahren (z.B. Twofish[15])] dadurch gelöst, dass ein Feistelnetzwerk[16] implementiert wird. Dabei werden in einem mehrstufigen Verfahren („Runden“) aus dem Schlüssel und dem zu chiffrierenden Inhalt pseudozufällige Zahlen generiert, die immer wieder mit dem Block via XOR verknüpft werden. Durch geschickte Zerlegung der Daten können diese Verknüpfungen zur Entschlüsselung rückwärts angewendet werden. Außerdem erhöhen viele Runden die Sicherheit und man kann den Algorithmus aus sicheren Einzelteilen zusammensetzen. Aber auch Feistelnetzwerke garantieren keine Sicherheit; als Beispiel für einen Algorithmus mit Schwächen sei hier TEA[17] genannt. DES[18] gilt zwar als unsicher, dies resultiert jedoch im Wesentlichen aus der zu kurzen Schlüssellänge von 56 Bit (wobei auch die einzelnen Schritte von DES anscheinend nicht ideal sind, wie Analysen aus den 1990ern und Anfang der 2000er zeigen[19]).
Kommentare (37)