Die Sicherheit von Feistelnetzwerken kann gut eingeschätzt werden. Es existiert offenbar sogar ein Beweis von Luby und Rackoff aus dem Jahre 1988, der zeigt, dass es möglich ist, nach bereits vier Runden eine perfekt sichere Verschlüsselung zu haben. Die praktischen Anforderungen sind dabei allerdings so hoch, dass sie in der Realität nicht erfüllbar sind. Zudem ist die Sicherheit des Algorithmus von der Breite der Blöcke abhängig; je sicherer der Algorithmus sein soll, umso breiter müssen die Blöcke sein.
Vermutlich ist der momentan wichtigste Algorithmus für Verschlüsselung – AES[20] (oder auch Rijndael) – gerade aus diesem Grund kein Feistelnetzwerk. Bisher hat sich der Gewinner der AES-Wettbewerbs gegen alle Arten von Angriffen als ziemlich robust erwiesen. Auch die Gerüchte aus dem Herbst 2013, dass die NSA starke Verschlüsselung brechen kann, haben wohl nichts mit AES oder anderen starken Kryptoalgorithmen zu tun sondern eher mit der Zertifikats-Infrastruktur oder der Implementierung von kommerziellen Umsetzungen von AES. Es gibt jedoch die Kritik, dass der Sicherheitspuffer zu klein gewählt ist für ein Verfahren, welches die nächsten Jahrzehnte halten muss. Zudem ist AES eine der wenigen Chiffren (vielleicht sogar die einzige?), die durch geschlossene algebraische Formulierungen darstellbar ist[21]. Damit ist der Angriff auf den Algorithmus auf einmal von einer Seite der Mathematik möglich, die bisher wenig mit Kryptographie zu tun hat.
Ähnlich wie die Wiederverwendung von One-Time-Pads gibt es bei den Block-Chiffren Anwendungsfehler, die die Sicherheit unabhängig vom Algorithmus schmälern. Ein Block-Chiffre erlaubt es normalerweise nur Nachrichten zu verschlüsseln, die höchstens einen Block lang sind. Es gibt unterschiedliche Ideen („Betriebsarten“), wie man längere Nachrichten chiffriert. Alleine vom NIST, dem amerikanischen National Institute of Standards and Technology, werden ein Dutzend akzeptierte Betriebsarten beschrieben[21]. Sie reichen vom einfachen ECB („Ich verschlüssele jeden Block unabhängig voneinander“) bis hin zu Arten, die Sicherheit und Integrität ermöglichen, wie dem CCM („Ich verwende für jeden Block einen neuen Schlüssel und bilde zusätzlich eine kryptographisch sichere Prüfsumme mit Hilfe des Chiffres“). Die Frage nach der besten Betriebsart ist davon abhängig, wie genau die Anforderungen aussehen und kann nicht pauschal beantwortet werden.
Verschlüsselungsverfahren sind und bleiben ein spannendes Thema, bei dem der Forschungsbedarf hoch ist. Es gibt viele offene Fragen und durch die Tatsache, dass heute die kryptographische Sicherheit auf Vermutungen beruht, rückt die Kryptographie deutlich in die Nähe der Naturwissenschaften. Zudem wird das Spektrum der mathematischen Werkzeuge erweitert und lässt auf neue Analysemethoden und Ideen für Chiffren hoffen. Dagegen hält die Umsetzung und Benutzung der Algorithmen viele Tücken bereit und die jüngsten Skandale um Sicherheitslücken in populärer Software („goto fail“[23] und „heartbleed”[24]) zeigen, dass sogar Open-Source-Software nicht sicher vor Programmierfehlern oder Hintertüren ist. Wir können gespannt sein, wohin uns die Zukunft bringt.
Links:
[1] https://de.wikipedia.org/wiki/Cäsar-Chiffre
[2] https://www.gnupg.org/index.de.html
[3] https://tools.ietf.org/html/rfc5751
[4] https://www.kes.info/archiv/online/01-01-60-SMIMEvsOpenPGP.htm
[5] https://de.wikipedia.org/wiki/P-NP-Problem
[6] https://de.wikipedia.org/wiki/Rucksackproblem
[7] https://de.wikipedia.org/wiki/Primfaktorzerlegung
[8] https://cacr.uwaterloo.ca/hac/about/chap8.pdf (S. 300ff)
[9] https://de.wikipedia.org/wiki/RSA-Kryptosystem
[10] https://de.wikipedia.org/wiki/Elgamal-Verschlüsselungsverfahren
[11] https://de.wikipedia.org/wiki/Elliptic_Curve_Cryptography
[12] https://de.wikipedia.org/wiki/RC4
[13] https://twitter.com/ioerror/status/398059565947699200
[14] https://www.ecrypt.eu.org/stream/
[15] https://de.wikipedia.org/wiki/Twofish
[16] https://www.am.hs-mannheim.de/KryptoLern/feistel.php
[17] https://www.csshl.net/sites/default/files/downloadable/crypto/TEA_Cryptanalysis_-_VRAndem.pdf
[18] https://page.math.tu-berlin.de/~kant/teaching/hess/krypto-ws2006/des.htm
[19] https://crypto.junod.info/sac01.pdf
[20] https://de.wikipedia.org/wiki/Advanced_Encryption_Standard
[21] https://www.dpunkt.de/leseproben/3112/Kapitel%208.pdf (S. 136)
[22] https://csrc.nist.gov/groups/ST/toolkit/BCM/index.html
[23] https://gotofail.com
[24] https://heartbleed.com
Kommentare (37)