FEAL (Fast Data Encipherment Algorithm) ist eine Blockchiffre und zählt zu den symmetrischen Feistelchiffren. Das Ziel bei der Entwicklung, die von dem japanischen Telefonkonzern Nippon Telegraph and Telephone (NTT) ausging, war, eine effiziente Implementierung eines Verschlüsselungsalgorithmus in Software auch für kleine Mikrocontroller zu erreichen und damit eine Alternative zu dem von amerikanischen Behörden entwickelten Data Encryption Standard (DES) zu schaffen. DES ist in Software nur vergleichsweise ineffizient zu implementieren.

FEAL
FEAL
FEAL
Die Rundenfunktion F von FEAL
Entwickler Akihiro Shimizu und Shoji Miyaguchi, beide von NTT
Veröffentlicht FEAL-4 1987; FEAL-N/NX 1990
Schlüssellänge 64 Bit (FEAL), 128 Bits (FEAL-NX)
Blockgröße 64 Bit
Struktur Feistelchiffre
Runden Ursprünglich 4 bei FEAL-4, dann erweitert auf 8 Runden; FEAL-N/NX mit variabler Rundenanzahl, wobei minimal 32 empfohlen sind.
Beste bekannte Kryptoanalyse
FEAL-4 ist sehr anfällig für die lineare Kryptoanalyse mit nur fünf bekannten Klartextblöcken. (Matsui und Yamagishi, 1992).
FEAL-N/NX ist für die differentielle Kryptoanalyse mit weniger als 31 Runden anfällig. (Biham und Shamir, 1991).

FEAL diente in den Jahren nach seiner Entwicklung 1987 vor allem als Testobjekt für verschiedenartige Angriffszenarien auf Verschlüsselungsalgorithmen. Insbesondere diente er dazu, die heute wesentlichen Analyseverfahren, die differentielle Kryptoanalyse und die lineare Kryptoanalyse, in ihrer Entwicklung voranzubringen. FEAL selbst gilt, in den ursprünglichen Versionen wie FEAL-4 und FEAL-8, als gebrochen und sollte daher nicht eingesetzt werden.

Funktionsweise Bearbeiten

Der Datenblock von 64 Bit besteht aus zwei Wörtern   und   zu je 32 Bit. Eine Feistelrunde besteht in der Auswertung der Rundenfunktion F (Bild) auf einem Wort und XOR-Verknüpfung des Ergebnisses mit dem anderen Wort und anschließender Vertauschung der Wörter:

 
 

Die Funktion F zerlegt das Wort   in vier Byte, die im Bild jeweils durch eine Linie symbolisiert werden, und erhält als Eingabe außerdem einen Rundenschlüssel   (2 Byte). Damit wird viermal eine bitweise XOR-Verknüpfung von zwei Bytes angewandt, und je zweimal eine der Funktionen   und   ausgewertet, die zwei Eingabebytes auf ein Ausgabebyte abbilden. Sie addieren zunächst die beiden Eingabebytes modulo  , und im Fall von   wird dazu noch 1 addiert, wodurch das Zwischenergebnis h entsteht. Dieses wird um zwei Bitpositionen nach links rotiert:

 

Die Chiffre verwendet außerdem Key Whitening vor der ersten und nach der letzten Runde.

Versionen Bearbeiten

Ursprünglich wurde 1988 von dem Entwicklerteam um Akihiro Shimizu und Shoji Miyaguchi bei NTT FEAL-4 entwickelt. Dieser Algorithmus und seine Entstehungsgeschichte dokumentiert auch sehr anschaulich und mit teilweise amüsanten Abläufen die Probleme beim Entwickeln sicherer Blockverschlüsselungsalgorithmen.

Damit der Algorithmus in Software einen möglichst hohen Durchsatz erzielt, war die Anzahl der Runden auf nur vier festgelegt. FEAL-4 wurde noch im gleichen Jahr 1988 auf der Eurocrypt '88 von B. den Boer gebrochen.[1] Nur zwei Jahre später wurde von Sean Murphy die von ihm neu entwickelte differentielle Kryptoanalyse erfolgreich gegen FEAL-4 eingesetzt, wobei er nur 20 gewählte Klartextblöcke benötigte.[2]

Die Entwickler verbesserten daraufhin im Jahr 1989 ihren Algorithmus, indem sie die Zahl der Runden auf acht erhöhten (FEAL-8). Dieser Algorithmus wurde ebenfalls im gleichen Jahr von Biham und Shamir auf der Konferenz SECURICOM '89 erfolgreich kryptoanalysiert.

Die Entwickler sahen sich daraufhin gezwungen, ihr Ziel, mit wenigen Runden eine effiziente Softwareimplementierung zu erreichen, endgültig aufzugeben, und veröffentlichten FEAL-N mit einer variablen Anzahl von Runden. Auf der SECURICOM '91 konnte wieder von Biham und Shamir gezeigt werden, das FEAL-N mindestens 32 Runden benötigt, damit es nicht effizienter als durch eine Brute-Force-Suche angegriffen werden kann.

Die Entwickler von FEAL entwarfen parallel im Jahr 1990 auch FEAL-NX, eine Variante, die mit 128 Bit langen Schlüsseln statt der ursprünglichen 64-Bit-Schlüssel arbeitet. Sehr zum Leidwesen der Entwickler wurde auf der SECURICOM '91 von Biham und Shamir gezeigt, dass FEAL-NX genauso leicht zu brechen ist wie FEAL-N mit 64-Bit-Schlüsseln.[3]

Darüber hinaus wurden von verschiedenen Entwicklungsteams Modifikationen zur Stärkung vorgeschlagen, wie FEAL-N(X)S, welche FEAL durch eine dynamische Vertauschungsfunktion stärken soll. Allerdings gehen alle diese Erweiterungen sehr zu Lasten des Datendurchsatzes.

FEAL wird vor allem zum Testen und Verfeinern von kryptoanalytischen Angriffsmethoden genutzt. FEAL sollte, egal in welcher Version, wegen seiner bekannten Schwächen nicht in sicherheitskritischen Bereichen eingesetzt werden. FEAL war in den USA patentiert, das Patent lief 2009 aus.

Einzelnachweise Bearbeiten

  1. Bert den Boer: Cryptanalysis of F.E.A.L. In: Lecture Notes in Computer Science. 330. Jahrgang, 1988, S. 293–299, doi:10.1007/3-540-45961-8_27.
  2. Sean Murphy: The cryptanalysis of FEAL-4 with 20 chosen plaintexts. In: Journal of Cryptology. 2. Jahrgang, Nr. 3, Januar 1990, S. 145–155, doi:10.1007/BF00190801 (rhul.ac.uk [PDF]).
  3. Eli Biham, Adi Shamir: Differential cryptanalysis of DES-like cryptosystems. In: Journal of Cryptology. 4. Jahrgang, Nr. 1, Januar 1991, S. 3–72, doi:10.1007/BF00630563 (psu.edu [PDF]).