# Konfusion (Kryptologie)

Konfusion 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 Diffusion. Sie gehen auf den amerikanischen Mathematiker Claude Shannon zurück. Konfusion soll die Beziehung zwischen Klartext, Schlüssel und Geheimtext verschleiern, indem nichtlineare Operationen zur Berechnung des Geheimtextes genutzt werden.

## Zweck

Zwischen dem Klartext sowie dem Schlüssel und dem damit generierten Geheimtext sollte keine Beziehung erkennbar sein, weil dadurch die statistische Kryptoanalyse erschwert wird.
Besteht eine erkennbare Beziehung zwischen Schlüssel und Geheimtext, so kann auf den Schlüssel geschlussfolgert werden. Analog ist es problematisch, wenn eine direkte Beziehung zwischen Klartext und Geheimtext erkennbar ist, sodass aus dem Geheimtext ggf. Informationen über den Klartext abgeleitet werden können, ohne den Schlüssel herausfinden zu müssen, weshalb der Schlüssel die Beziehung möglichst verschleiern sollte.
Eine solche Klartext-Geheimtext-Beziehung ist bei monoalphabetischer Substitution zu beobachten, weil diese die Buchstabenhäufigkeit im Geheimtext vom Klartext übernimmt: Der Schlüssel ändert nichts an der Buchstabenhäufigkeit des generierten Geheimtextes, und das Verfahren ist anfällig gegen die Häufigkeitsanalyse.

## Grundlagen

Um Konfusion zu erreichen, muss ein kryptografisches Verfahren nichtlineare Operationen enthalten. Eine Abbildung der Eingabebits (Klartext- und Schlüsselbits) auf ein bestimmtes Ausgabebit (Geheimtextbit) $f:\{0,1\}^{n}\rightarrow \{0,1\}$ ist linear, wenn das Ergebnis nur durch Additionen im Körper GF(2), das heißt durch XOR von Eingabebits und evtl. negieren des Resultats, berechnet wird. Also dann, wenn das Ergebnis als Polynom vom Grad 1 in den Eingabebits ausgedrückt werden kann. Es wäre somit ein Fehler, die Geheimtextbits nur durch XOR-Verknüpfung von Klartext- und Schlüsselbits zu berechnen. Ein solches Verfahren wäre völlig linear, und durch einen Angriff mit bekanntem Klartext könnte man den Schlüssel leicht ermitteln.
Ein kryptografisches Verfahren ist meist als Abfolge von mehreren gleich oder ähnlich aufgebauten Runden konstruiert. Jede Runde besteht in der Anwendung einer Rundenfunktion auf den Datenblock, die nichtlineare Operationen enthält und außerdem für Diffusion sorgt. Dadurch verstärkt sich die Konfusion mit jeder zusätzlichen Runde, d. h. der Grad des einfachsten Polynoms, mit dem sich die Abbildung der Eingabebits auf ein Ergebnisbit ausdrücken lässt, nimmt mit der Zahl der Runden zu. Insbesondere hängt nach einigen Runden jedes berechnete Bit von allen Eingabebits auf nichtlineare Weise ab. Durch eine ausreichende Rundenzahl kann das Verfahren also genügend komplex gemacht werden, um kryptographisch sicher zu sein.

## Realisierung

In der Praxis nutzt man unter anderem die Addition zweier Datenwörter modulo $2^{e}$, wobei $e$ die Zahl der Bits eines Worts ist, als kryptographisches Primitiv. Diese Operation ist nicht linear, weil bei der Addition zweier Bits das Übertragbit durch UND-Verknüpfung der Eingabebits, also durch Multiplikation in $\operatorname {GF} (2)$, berechnet wird.
In vielen modernen Verfahren dient die Addition von Wörtern als einzige nichtlineare Operation. Sie wird meist mit dem bitweisen XOR kombiniert, denn es zeigt sich, dass die abwechselnde Anwendung von Addition und XOR kryptografisch wirksamer ist als die Addition allein. Beispiele für Blockchiffren, die nur Addition und XOR zur Konfusionserzeugung nutzen, sind FEAL, TEA, XTEA und Threefish. Verfahren, die nur aus Addition, Rotation von Datenwörtern und XOR aufgebaut sind, wie etwa Threefish, nennt man auch ARX-Chiffren, nach den Anfangsbuchstaben dieser drei Operationen.
Viele kryptografische Verfahren enthalten S-Boxen als Bauelemente ihrer Rundenfunktion. Bei geschickter Wahl, wie die Ausgabebits einer S-Box von deren Eingabebits abhängen, kann mit einer S-Box eine stark nichtlineare Beziehung hergestellt werden, sodass S-Boxen als Konfusionserzeuger gut geeignet sind.
Zur Verdeutlichung soll DES dienen, welches die Kombination mehrerer S-Boxen in seiner Feistel-Rundenfunktion verwendet. Konfusion wird durch die Nichtlinearität der S-Boxen erreicht. Werden zwei Nachrichten $M$ und $M'$, die sich in nur einem Bit unterscheiden, mit dem gleichen Schlüssel verschlüsselt, so breitet sich dieser Unterschied exponentiell mit steigender Rundenanzahl aus, da sich pro Anwendung der Rundenfunktion mindestens zwei Bits bei einem Unterschied von einem Bit in der Eingabe ändern. Ein Eingabebit hat also auf mehrere unkorrelierte Ausgabenbits Einfluss. Außerdem werden die Ausgabebits der Rundenfunktion so permutiert, dass die von einer S-Box ausgegebenen Bits sich in der nächsten Runde auf die Eingaben unterschiedlicher S-Boxen aufteilen, was zu Diffusion über den ganzen Datenblock führt. All das macht es schwieriger, Beziehungen zwischen Klartext und Geheimtext herzuleiten.
Andere Verschlüsselungsverfahren, die S-Boxen verwenden, sind AES, Blowfish, CAST und Serpent.