CoderTools

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.

Alle Algorithmen der TEA-Familie verwenden einen festen 128-Bit (16 Byte) Schlüssel.
Formatoptionen

Ü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

Schnellmenü

Keine aktuellen Tools