TEA/XTEA/XXTEA Ver-/Entschlüsselung
Tiny Encryption Algorithm Familie - Leichte symmetrische Blockchiffren
Sicherheitshinweis
TEA/XTEA/XXTEA sind leichte Chiffren, die hauptsächlich in eingebetteten Systemen und Spielen verwendet werden. Für Hochsicherheitsanwendungen verwenden Sie bitte stattdessen AES.
Über die TEA-Familie
TEA (Tiny Encryption Algorithm) wurde 1994 von David Wheeler und Roger Needham am Computer Laboratory der University of Cambridge entwickelt. Sein wesentliches Merkmal ist radikale Einfachheit: Die gesamte Verschlüsselungsschleife lässt sich in weniger als 10 Zeilen C ausdrücken und erzielt dennoch 64-Bit-Blockverschlüsselungssicherheit durch 32 Iterationen einer Feistel-ähnlichen Doppelrunde. Die magische Konstante δ = 0x9E3779B9 (näherungsweise φ × 2³², wobei φ der Goldene Schnitt ist) wird in jeder Runde zur laufenden Summe addiert, um schwache Schlüssel-Fixpunkte zu verhindern.
Die TEA-Familie entwickelte sich gezielt zur Behebung entdeckter Schwachstellen: XTEA (1997) korrigierte die Ähnlichschlüssel-Angriffe in TEA durch Neugestaltung des Schlüsselplans, der die vier 32-Bit-Schlüsselwörter in jeder Runde unterschiedlich permutiert. XXTEA (1998) erweiterte das Design auf variable Blocklängen mit einer Feistel-Mischtechnik über die gesamte Nachricht. Alle drei Varianten teilen dieselbe 128-Bit-Schlüsselgröße und die δ-basierte Rundenkonstantenstruktur, unterscheiden sich aber erheblich in den Sicherheitseigenschaften und der Blocklängenflexibilität.
Algorithmus-Vergleich
| Algorithmus | Blockgröße | Schlüssellänge | Runden | Sicherheit |
|---|---|---|---|---|
| TEA | 64 bits | 128 bits | 64 | Veraltet |
| XTEA | 64 bits | 128 bits | 64 | Gut |
| XXTEA | Variabel (≥64 Bits) | 128 bits | Variabel (6+52/n) | Gut |
Hauptmerkmale
- TEA-Kernschleife: nur 7 Zeilen C — der kompakteste für die Produktion geeignete Blockverschlüsselungsalgorithmus
- 128-Bit-Schlüssel in vier 32-Bit-Wörter aufgeteilt; jede Runde verwendet eine andere Teilschlüssel-Permutation (XTEA/XXTEA)
- 32 Doppelrunden (64 Einzelrundenoperationen) mit δ = 0x9E3779B9 als Rundenkonstante
- XXTEA unterstützt variable Blocklängen — wichtiger Vorteil für die Verschlüsselung beliebig großer Daten ohne Auffüllen
Verschlüsselungsmodi (nur TEA/XTEA)
- CBC: Cipher Block Chaining — jeder 64-Bit-TEA/XTEA-Block wird vor den 32 Doppelrunden mit dem vorherigen Chiffratblock XOR-verknüpft. Der 64-Bit-IV verknüpft die Blöcke; identische Nutzdaten an verschiedenen Positionen liefern unterschiedliche Chiffrierung.
- ECB: Electronic Codebook — jeder 64-Bit-Block wird unabhängig durch die 32 Doppelrunden mit demselben Schlüssel verarbeitet. Zwei identische 64-Bit-Klartextblöcke erzeugen immer identisches Chiffrat und enthüllen die Datenstruktur. Nicht empfohlen außer für einen einzelnen Block.
- CFB: Cipher Feedback — TEA/XTEA fungiert als Schlüsselstromgenerator; der vorherige Chiffriertext wird durch TEA/XTEA verarbeitet und mit dem nächsten Klartextsegment XOR-verknüpft. Wandelt die 64-Bit-Blockverschlüsselung in eine bytegranulare Stromverschlüsselung um, nützlich für variable Spieldatenströme.
- OFB: Output Feedback — der Schlüsselstrom wird durch Iteration der TEA/XTEA-Verschlüsselung auf dem IV erzeugt, unabhängig vom Klartext. Keine Fehlerfortpflanzung bedeutet, dass ein beschädigtes Byte genau ein Byte des wiederhergestellten Klartexts betrifft — geeignet für eingebettete Telemetrie, wo Bitfehler eingedämmt bleiben müssen.
- RAW: Roher Block - Direkte Einzelblockverschlüsselung ohne Verkettungsmodus. Kein IV erforderlich.
Sicherheitsüberlegungen
- Original TEA: David Wagner (1997) demonstrierte Ähnlichschlüssel-Angriffe; TEA vermeiden, wenn der Angreifer ähnliche Schlüssel wählen kann — für jede neue Implementierung XTEA oder XXTEA verwenden
- XTEA korrigiert TEAs Ähnlichschlüssel-Sicherheitslücke, aber die 64-Bit-Blockgröße begrenzt die Sicherheit weiterhin auf 2³² Blöcke (~32 GB) pro Schlüssel, bevor Geburtstagskollosionen wahrscheinlich werden
- XXTEAs Ganznachrichten-Mischung erfordert mindestens 2 Durchläufe für Korrektheit; bei sehr kleinen Blöcken (≤ 2 Wörter) schwächen die reduzierten Mischschritte die Sicherheit — kurze Daten auf mindestens 3 Wörter auffüllen
- Alle drei TEA-Varianten sind für neue Allzweckanwendungen ungeeignet; für moderne Eingebettete-Systeme ChaCha20 oder AES-128-CTR bevorzugen — TEA-Familie nur für Legacy-Format-Kompatibilität oder extrem ressourcenbeschränkte Umgebungen reservieren
Häufige Anwendungsfälle
- Xbox und Xbox 360 Spielstand-Schutz: Microsofts Original-Xbox verwendete XTEA intern zur Signierung und Verifikation von Konsolenspielständen, um Manipulationen über Speicherkarten zu verhindern
- QQ Instant Messaging: Tencents früher QQ-Protokoll verwendete eine modifizierte XTEA-Variante zur Verschlüsselung von Sitzungsdaten zwischen Clients und Servern, dokumentiert in Open-Source-Reverse-Engineering-Projekten des QQ-Protokolls
- Cocos2d-x und Unity Spielasset-Verschlüsselung: TEA/XTEA ist in Spiele-Engines zur Verschleierung von Ressourcendateien (Texturen, Audio, Skripte) beliebt wegen seines winzigen Code-Fußabdrucks in abgespeckten mobilen Builds
- Mikrocontroller- und FPGA-Implementierungen, wo ROM in Kilobytes gemessen wird: TEAs 7-Zeilen-Kernschleife kompiliert zu unter 100 Bytes ARM Thumb-2 Maschinencode und ist auf MCUs mit sehr begrenztem Flash einsetzbar
Referenzen
Verwandte Tools
AES-Verschlüsselung/Entschlüsselung
Verschlüsseln und entschlüsseln Sie Text sicher mit dem AES-Algorithmus
Blowfish-Verschlüsselung/Entschlüsselung
Schnelle symmetrische Blockverschlüsselung von Bruce Schneier mit variabler Schlüssellänge (32-448 Bit)
DES/3DES-Verschlüsselung/Entschlüsselung
Verschlüsseln und entschlüsseln Sie mit DES- und 3DES-Algorithmen mit mehreren Modi und Padding-Optionen