Extended Tiny Encryption Algorithm
# Extended Tiny Encryption Algorithm

Der XTEA (eXtended Tiny Encryption Algorithm) ist eine Blockchiffre, die als Verbesserung der Blockchiffre TEA entwickelt wurde. XTEA ist wie TEA bekannt für ihre einfache Beschreibung und Implementierung. Der Code als C-Programm umfasst nur einige Zeilen. XTEA wurde von David Wheeler und Roger Needham an der Universität Cambridge im Jahr 1997 entwickelt. XTEA ist wie auch sein Vorgänger TEA frei von Patenten.

## Eigenschaften

XTEA ist eine Feistelchiffre mit 64 Bit großen Datenblöcken und einem 128 Bit langen Schlüssel. In der Regel werden 64 Runden = 32 Zyklen berechnet (empfohlener Wert, kann auch geändert werden). Der Mechanismus zur Erzeugung der Rundenschlüssel ist sehr einfach gehalten. Das Einbringen eines sogenannten Deltas, das wie bei TEA als $\lfloor ({\sqrt {5}}-1)\cdot 2^{31}\rfloor$ definiert ist, verhindert einen Angriff, der die Symmetrie der einzelnen Runden ausnutzt. Allerdings wird bei XTEA das Delta anders in die Runde eingebracht, was hauptsächlich die Stärkung der Verschlüsselung bewirkt.

2009 präsentierte Jiqiang Lu einen Related-key rectangle attack auf 36 Runden. Dieser Angriff betrifft bis zum Stand 2015 die höchste Rundenanzahl. Andrey Bogdanov und Meiqin Wang stellten 2012 außerdem eine Zero correlation linear cryptanalysis auf 27 Runden XTEA vor.

## Referenzcode

Es folgt die Adaptierung der Referenzimplementierung der Ver- und Entschlüsselungsroutinen in C, die als Public Domain von David Wheeler und Roger Needham veröffentlicht wurde:

Die Adaptierung zur Originalimplementierung betreffend kleinere Randpunkte:

* Die Originalimplementierung verwendet die Typen unsigned long statt der 64-bit-tauglichen uint32_t Typen.
* Der Originalcode verwendete keine const Typen.
* Der Originalcode vermeidet redundante Klammerungen, was die Lesbarkeit des Codes reduziert.
