Zum Inhalt springen

Tiny Encryption Algorithm

aus Wikipedia, der freien Enzyklopädie
{{#if:TEA InfoBox Diagram.png | {{#if:Roger Needham, David Wheeler | {{#if:1994 | {{#if: | {{#if: | {{#if:128 Bit (effektiv 126 Bit) | {{#if:64 Bit | {{#if:Feistelchiffre | {{#if:variabel, 64 empfohlen | {{#if:Bis zu 21 Runden sind theoretisch gebrochen. Related-Key-Angriffe sind effizient möglich. |
TEA
TEA
TEA
Zwei Feistel-Runden (ein Zyklus) von TEA

}}

Entwickler Roger Needham, David Wheeler

}}

Veröffentlicht 1994

}}

Abgeleitet von {{{abgeleitet}}}

}}

Zertifizierung {{{zertifizierung}}}

}}

Schlüssellänge 128 Bit (effektiv 126 Bit)

}}

Blockgröße 64 Bit

}}

Struktur Feistelchiffre

}}

Runden variabel, 64 empfohlen

}}

Beste bekannte Kryptoanalyse
Bis zu 21 Runden sind theoretisch gebrochen. Related-Key-Angriffe sind effizient möglich.

}}

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.

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 <math>\lfloor (\sqrt{5}-1) \cdot 2^{31} \rfloor</math> 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: <syntaxhighlight lang="c">

 void encrypt(unsigned long v[2], unsigned long k[4]) {
     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[2], unsigned long k[4]) {
     unsigned long v0 = v[0], v1 = v[1], sum = 0xC6EF3720, i;  /* set up; sum is 32*delta */
     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;
 }

</syntaxhighlight>

Literatur

  • David J. Wheeler, Roger M. Needham: TEA, a tiny encryption algorithm. In: Bart Preneel (Hrsg.): Fast Software Encryption: Second International Workshop, Leuven, Belgien, 14. bis 16. Dezember 1994. Lecture Notes in Computer Science, Volume 1008, S. 363–366.
  • Vikram Reddy Andem: <templatestyles src="Webarchiv/styles.css" />{{#if:20120331010823
      | {{#ifeq: 20120331010823 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: A Cryptanalysis of the Tiny Encryption Algorithm. | {{#invoke:WLink|getEscapedTitle|A Cryptanalysis of the Tiny Encryption Algorithm.}} | {{#invoke:Webarchiv|getdomain|http://home.uchicago.edu/~andem/Vikram_Andem.pdf}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20120331010823}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: A Cryptanalysis of the Tiny Encryption Algorithm. | {{#invoke:WLink|getEscapedTitle|A Cryptanalysis of the Tiny Encryption Algorithm.}} | {{#invoke:Webarchiv|getdomain|http://home.uchicago.edu/~andem/Vikram_Andem.pdf}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20120331010823}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: A Cryptanalysis of the Tiny Encryption Algorithm. | {{#invoke:WLink|getEscapedTitle|A Cryptanalysis of the Tiny Encryption Algorithm.}} | {{#invoke:Webarchiv|getdomain|http://home.uchicago.edu/~andem/Vikram_Andem.pdf}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: A Cryptanalysis of the Tiny Encryption Algorithm. | {{#invoke:WLink|getEscapedTitle|A Cryptanalysis of the Tiny Encryption Algorithm.}} | {{#invoke:Webarchiv|getdomain|http://home.uchicago.edu/~andem/Vikram_Andem.pdf}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: A Cryptanalysis of the Tiny Encryption Algorithm. | {{#invoke:WLink|getEscapedTitle|A Cryptanalysis of the Tiny Encryption Algorithm.}} | {{#invoke:Webarchiv|getdomain|http://home.uchicago.edu/~andem/Vikram_Andem.pdf}} }} (Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: A Cryptanalysis of the Tiny Encryption Algorithm. | {{#invoke:WLink|getEscapedTitle|A Cryptanalysis of the Tiny Encryption Algorithm.}} | {{#invoke:Webarchiv|getdomain|http://home.uchicago.edu/~andem/Vikram_Andem.pdf}} }}  
                 }}}}}}}}{{#if:
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20120331010823|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://home.uchicago.edu/~andem/Vikram_Andem.pdf}}
    || {{#if:  || }}
  }}{{#if: A Cryptanalysis of the Tiny Encryption Algorithm.
    | {{#if: {{#invoke:WLink|isBracketedLink|A Cryptanalysis of the Tiny Encryption Algorithm.}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://home.uchicago.edu/~andem/Vikram_Andem.pdf%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://home.uchicago.edu/~andem/Vikram_Andem.pdf%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://home.uchicago.edu/~andem/Vikram_Andem.pdf }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }} (PDF) 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. In: Lecture Notes in Computer Science, 1996, 1109, Seiten 237–251.
  • John Kelsey, Bruce Schneier, David Wagner: Related-key cryptanalysis of 3-WAY, Biham-DES, CAST, DES-X NewDES, RC2, and TEA. In: Lecture Notes in Computer Science, 1997, 1334, S. 233–246.
  • Julio César Hernández, Pedro Isasi, Arturo Ribagorda: An application of genetic algorithms to the cryptoanalysis of one round TEA. In: 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, 2001, S. 374–377.
  • Dukjae Moon, Kyungdeok Hwang, Wonil Lee, Sangjin Lee, Jongin Lim: Impossible differential cryptanalysis of reduced round XTEA and TEA. In: Lecture Notes in Computer Science, 2002, 2365, S. 49–60, {{#invoke:URIutil|{{#ifeq:1|1|linkISSN|targetISSN}}|0302-9743|0}}{{#ifeq:1|0|[!]

}}{{#ifeq:0|1

        |{{#switch:00
                  |11= (print/online)
                  |10= (print)
                  |01= (online)
          }}

}}{{#ifeq:0|0

        |{{#ifeq:0|0
              |{{#if:{{#invoke:URIutil|isISSNvalid|1=0302-9743}}
                    |
                    |{{#invoke:TemplUtl|failure|ISSN ungültig}}}}}}

}}.

  • Seokhie Hong, Deukjo Hong, Youngdai Ko, Donghoon Chang, Wonil Lee, Sangjin Lee: Differential cryptanalysis of TEA and XTEA. In: Proceedings of ICISC 2003.

Weblinks