Tiny Encryption Algorithm

Tiny Encryption Algorithm
TEA
TEA
Zwei Feistel Runden (ein Zyklus) von TEA
Entwickler Roger Needham, David Wheeler
Veröffentlicht 1994
Schlüssellänge 128 Bit (effektiv 126 Bit)
Blockgröße 64 Bit
Struktur Feistelchiffre
Runden variabel, 64 empfohlen
Beste bekannte Kryptoanalyse
Anfällig für die Related-Key-Attack. TEA sollte in neuen Implementierungen nicht mehr eingesetzt werden.

Der TEA (Tiny Encryption Algorithm) ist eine Blockchiffre, die für ihre einfache Beschreibung und Implementierung bekannt ist (normalerweise einige Zeilen Code). Er wurde von David Wheeler und Roger Needham an der Universität Cambridge entwickelt und das erste Mal im Rahmen eines Workshops zu schneller Verschlüsselung im Jahr 1994 vorgestellt. Er ist frei von Patenten.

Inhaltsverzeichnis

Eigenschaften

TEA arbeitet auf 64-bit großen Blöcken und benutzt einen 128-bit langen Schlüssel. Er stellt eine Feistelchiffre mit einer vorgeschlagenen Rundenanzahl von 64 dar. Normalerweise wird er so implementiert, dass zwei Runden einen Zyklus darstellen. Er hat einen sehr einfachen Mechanismus zur Erzeugung des jeweiligen Rundenschlüssels. Das Einbringen eines sogenannten Deltas, das als (\sqrt{5}-1) \cdot 2^{31} definiert ist, verhindert einen Angriff, der die Symmetrie der einzelnen Runden ausnutzt.

TEA hat einige Schwächen. Die meisten rühren daher, dass es zu jedem Schlüssel drei äquivalente Schlüssel gibt. Deswegen ist die effektive Schlüssellänge nur 126-bit (Kelsey et. al., 1996, und Vikram Andem, 2003). Diese Schwäche wurde beim Hacken von Microsofts Spielekonsole Xbox ausgenutzt, da diese TEA als Hash-Funktion verwendete. TEA ist auch anfällig für eine verwandte Schlüssel-Attacke, die 223 gewählte Klartexte bei verwandten Schlüsseln braucht.

Wegen dieser Schwächen gibt es eine große Anzahl von Verbesserungsvorschlägen, darunter auch XTEA.

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:

  void encrypt(unsigned long* v, unsigned long* k) {
      unsigned long v0 = v[0], v1 = v[1], sum = 0, i;           /* set up */
      unsigned long delta = 0x9e3779b9;                         /* a key schedule constant */
      unsigned long k0 = k[0], k1 = k[1], k2 = k[2], k3 = k[3]; /* cache key */
      for (i = 0; i < 32; i++) {                                /* basic cycle start */
          sum += delta;
          v0 += ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
          v1 += ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);   /* end cycle */
      }
      v[0] = v0; v[1] = v1;
  }
 
  void decrypt(unsigned long* v, unsigned long* k) {
      unsigned long v0 = v[0], v1 = v[1], sum = 0xC6EF3720, i;  /* set up */
      unsigned long delta = 0x9e3779b9;                         /* a key schedule constant */
      unsigned long k0 = k[0], k1 = k[1], k2 = k[2], k3 = k[3]; /* cache key */
      for(i = 0; i<32; i++) {                                   /* basic cycle start */
          v1 -= ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);
          v0 -= ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
          sum -= delta;                                         /* end cycle */
      }
      v[0] = v0; v[1] = v1;
  }

Referenzen

  • David J. Wheeler, Roger M. Needham: TEA, a tiny encryption algorithm. In Bart Preneel, editor, Fast Software Encryption: Second International Workshop, Volume 1008 der Lecture Notes in Computer Science, Seiten 363-366, Leuven, Belgien, 14. bis 16. Dezember 1994.
  • Vikram Reddy Andem: A Cryptanalysis of the Tiny Encryption Algorithm. Masters thesis, The University of Alabama, Tuscaloosa, 2003.
  • John Kelsey, Bruce Schneier, David Wagner: Key-schedule cryptanalysis of IDEA, G-DES, GOST, SAFER, and Triple-DES. Lecture Notes in Computer Science, 1109: Seiten 237–251, 1996.
  • John Kelsey, Bruce Schneier, David Wagner: Related-key cryptanalysis of 3-WAY, Biham-DES, CAST, DES-X NewDES, RC2, and TEA. Lecture Notes in Computer Science, 1334: Seiten 233–246, 1997.
  • Julio César Hernández, Pedro Isasi, Arturo Ribagorda: An application of genetic algorithms to the cryptoanalysis of one round TEA. Proceedings of the 2002 Symposium on Artificial Intelligence and its Application, 2002.
  • Julio César Hernández, José María Sierra, Pedro Isasi, Arturo Ribargorda: Finding efficient distinguishers for cryptographic mappings, with an application to the block cipher TEA. In Proceedings of the 2003 Congress on Evolutionary Computation, 2003.
  • Julio César Hernández, José María Sierra, Arturo Ribagorda, Benjamín Ramos, J. C. Mex-Perera: Distinguishing TEA from a random permutation: Reduced round versions of TEA do not have the SAC or do not generate random numbers. In Proceedings of the IMA Int. Conf. on Cryptography and Coding 2001, Seiten 374-377, 2001.
  • Dukjae Moon, Kyungdeok Hwang, Wonil Lee, Sangjin Lee, Jongin Lim: Impossible differential cryptanalysis of reduced round XTEA and TEA. Lecture Notes in Computer Science, 2365: 49-60, 2002. ISSN 0302-9743.
  • Seokhie Hong, Deukjo Hong, Youngdai Ko, Donghoon Chang, Wonil Lee, Sangjin Lee: Differential cryptanalysis of TEA and XTEA. In Proceedings of ICISC 2003, 2003b.

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Tiny Encryption Algorithm — (ou TEA) est un algorithme de chiffrement par bloc connu pour la simplicité de sa description et de son implémentation (généralement quelques lignes de codes). Il fut conçu par David Wheeler et Roger Needham, du laboratoire informatique de… …   Wikipédia en Français

  • Tiny Encryption Algorithm — Infobox block cipher name = TEA caption = Two Feistel rounds (one cycle) of TEA designers = Roger Needham, David Wheeler publish date = 1994 derived from = derived to = XTEA key size = 128 bits block size = 64 bits structure = Feistel network… …   Wikipedia

  • Tiny Encryption Algorithm — En criptografía, el Tiny Encryption Algorithm (TEA) (Algoritmo Diminuto de Cifrado) es un algoritmo para el cifrado por bloques notable por su simplicidad de descripción e implementación (generalmente unas pocas líneas de código). Fue diseñado… …   Wikipedia Español

  • Tiny Encryption Algorithm — En criptografía, el Tiny Encryption Algorithm (TEA) (Algoritmo Diminuto de Encriptación) es un algoritmo para el cifrado de bloque notable por su simplicidad de descripción e implementación (generalmente unas pocas líneas de código). Fue diseñado …   Enciclopedia Universal

  • Extended Tiny Encryption Algorithm — XTEA Zwei Feistel Runden (ein Zyklus) von XTEA Entwickler Roger Needham, David Wheeler Veröffentlicht 1997 Abgeleitet von …   Deutsch Wikipedia

  • Extended Tiny Encryption Algorithm — (XTEA (eXtended TEA) es un algoritmo criptográfico utilizado para el cifrado por bloques, al igual que el algoritmo TEA (presentado en 1994), pero corrigiendo las deficiencias de éste último. Sus diseñadores fueron David Wheeler y Roger Needham… …   Wikipedia Español

  • Data Encryption Algorithm — DES Eine Feistel Runde (F Funktion) Entwickler IBM Veröffentlicht 1975 Abgeleitet von Lucifer …   Deutsch Wikipedia

  • Tiny — may refer to:* Tiny (car), a British cyclecar manufactured by Nanson, Barker Co at Esholt, Yorkshire between 1912 and 1915 * Tiny, Ontario, a township in south central Ontario, CanadaPeople: * Tiny Tim (musician) (1932 1996), American musician *… …   Wikipedia

  • Fast Data Encipherment Algorithm — FEAL Eine Feistel Runde 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 (F …   Deutsch Wikipedia

  • XTEA — Zwei Feistel Runden (ein Zyklus) von XTEA Entwickler Roger Needham, David Wheeler Veröffentlicht 1997 Abgeleitet von …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”