Feistelchiffre
Feistelchiffre nennt man eine Blockverschlüsselung, die in Form eines Feistelnetzwerks aufgebaut ist. Dieses ist eine allgemeine Struktur, mit der Blockverschlüsselungen realisiert werden können. Ein Mitarbeiter von IBM, Horst Feistel, gilt als der Erfinder dieser Struktur. Er arbeitete in den 1970er Jahren mit anderen am sogenannten Projekt „Lucifer“, dessen Ziel es war, eine effiziente Verschlüsselungstechnologie zu entwickeln. Lucifer und der daraus abgeleitete DES-Algorithmus stellen ein Feistelnetzwerk dar.
Viele moderne symmetrische Verschlüsselungsverfahren basieren auf Feistelnetzwerken, weil man damit leicht die Umkehrbarkeit (Bijektivität) der Verschlüsselung sicherstellen kann. Damit ist die notwendige Grundbedingung für Blockchiffren erfüllt, dass es bei der Abbildung von Chiffreblöcken auf Klartextblöcke bei der Entschlüsselung zu keinen Mehrdeutigkeiten kommt. Weiterhin wurde die Feistel-Struktur von sehr vielen Kryptologen analysiert und für gut befunden.
Arbeitsweise
Wie es der Name „Blockchiffre“ schon nahelegt, wird der Klartext in Blöcke zerlegt, die jeweils für sich verschlüsselt werden. Die Größe der Blöcke hängt vom jeweiligen Verschlüsselungsverfahren ab, oft ist sie ein Vielfaches von 64 Bit. Ein Block wird zuerst in zwei (meist gleich große) Teile geteilt: , und in aufeinanderfolgenden Runden verarbeitet. In jeder Runde wird einer dieser Teile mit der Ausgabe einer Rundenfunktion verknüpft. Die Rundenfunktion erhält den anderen Teilblock und einen Rundenschlüssel als Eingabe. Innerhalb der -ten Runde ( läuft von 1 bis ) wird folgende Formel angewendet:
- ,
- .
Dabei bildet die sog. Runden- oder Transformationsfunktion und bis sind die Rundenschlüssel. steht für eine einfach umkehrbare Verknüpfung. Oft verwendet man das bitweise XOR, das mit seiner Umkehrung identisch, d. h. selbstinvers ist. Der verschlüsselte Text am Ende der Runden ist die Zusammenführung .
Feistelnetzwerke ermöglichen eine Entschlüsselung, ohne dass die Umkehrfunktion von benötigt wird. Will man einen Geheimtext dechiffrieren, führt man die Schritte der obigen Formel in umgekehrter Reihenfolge aus, wobei man von bis 1 laufen lässt:
- ,
- .
steht für die Umkehrung von . Zum Beispiel kann , alternativ zu XOR, die Addition modulo sein, mit als Länge eines Teilblocks in Bit, und ist dann die Subtraktion modulo . Beide können auf den meisten Digitalrechnern einfach berechnet werden, denn die Modulo-Division ergibt sich von selbst durch das Abschneiden eines eventuellen Überlaufbits. Beispiel: XTEA.
Die Verknüpfung kann auch komplexer ausfallen und z. B. auch Bitrotationen enthalten. Beispiele: RC5, RC6.
Aufteilung in Teilblöcke
Ein balanciertes Feistelnetzwerk (BFN) liegt dann vor, wenn die beiden Teile, in die der Datenblock geteilt wird, gleich groß sind. Sind anderenfalls die Teile verschieden groß, nennt man es ein unbalanciertes (nicht-balanciertes) Feistelnetzwerk (UFN).
Anwendungen
Die folgenden Chiffren sind weitere Beispiele für Feistelnetzwerke:
Siehe auch
- Die Blockverschlüsselungen IDEA und IDEA NXT beruhen auf einem ähnlichen Prinzip, dem Lai-Massey Schema.
- Substitutions-Permutations-Netzwerk
Literatur
- Horst Feistel: Cryptography and Computer Privacy. In: Scientific American. 228, Nr. 5, Mai 1973, S. 15-23.