Diffusion (Kryptologie)
Diffusion ist in der Kryptologie eines der beiden zentralen Prinzipien zur Verschleierung von Strukturen eines Klartextes im Zuge einer Verschlüsselung oder beim Hashen. Das andere dieser Prinzipien ist die Konfusion. Sie gehen auf den amerikanischen Mathematiker Claude Shannon zurück.
Diffusion bedeutet, dass jedes Bit, das in eine kryptografische Funktion eingegeben wird, sich über den ganzen verarbeiteten Datenblock ausbreitet und alle Ausgabebits beeinflusst. Diese Eigenschaft ist auch als Lawineneffekt bekannt. Das sogenannte strenge Lawinenkriterium (strict avalanche criterion; SAC) verlangt, dass bei Änderung eines beliebigen Eingabebits sich jedes Ausgabebit mit der Wahrscheinlichkeit ändert. Das SAC ist heute eine Standardanforderung, die von jedem brauchbaren kryptografischen Verfahren erfüllt wird.
Ein gutes Verfahren verzahnt Konfusion und Diffusion in mehreren aufeinanderfolgenden Runden miteinander. Beim Verschlüsseln beziehungsweise Hashen erfolgt schon in wenigen Runden vollständige Diffusion, d. h. jedes Informationsbit breitet sich über den ganzen Datenblock aus. Darauf werden die Daten des Blocks von Operationen zur Konfusionserzeugung verarbeitet (zum Beispiel S-Box), deren Resultate sich wiederum schnell ausbreiten und so weiter. Wenn man irgendwo eingreift und nur ein Bit ändert, sieht wenige Runden später der ganze Datenblock völlig anders aus. Die Rundenzahl eines Verfahrens wird in der Regel ausreichend für mindestens vier Mal vollständige Diffusion gewählt.
Beispiel für Hashfunktionen
Der SHA-1 Hashwert des Satzes „Fischers Fritz fischt frische Fische.“ ist
ac8ac8261cbfd50efcecf3b313faddf325ee1c75
Bei Veränderung nur eines Buchstabens resultiert ein völlig anderer Hashwert: „Fischers Fratz fischt frische Fische.“ ergibt
5caecace90a74375f5f3d2e4156750210c4a18b4
Literatur
- Claude Elwood Shannon: Communication Theory of Secrecy Systems. In: Bell System Technical Journal. Band 28, Nr. 4, 1949, doi:10.1002/j.1538-7305.1949.tb00928.x (englisch).