close

Malý šifrovací algoritmus

Přejít na navigaci Přejít na hledání
Image
Malý šifrovací algoritmus

V kryptografii je Tiny Encryption Algorithm ( TEA) algoritmus pro blokové šifry , který se vyznačuje jednoduchostí popisu a implementace (obvykle několik řádků kódu). Navrhli jej David Wheeler a Roger Needham z Cambridge Computer Laboratory a poprvé byl představen v roce 1994 na Fast Software Encryption Workshop (Wheeler a Needham, 1994). Nepodléhá žádnému typu patentu .

Vlastnosti

TEA pracuje na 64bitových blocích a používá 128bitový klíč . Obsahuje doporučenou strukturu sítě Feistel v 64 kolech, obvykle implementovaných ve dvojicích nazývaných cykly . Má extrémně jednoduché generování klíčů a pro každý cyklus zamíchá veškerý obsah klíče stejným způsobem. Různé násobky magické konstanty se používají k zamezení útoků na základě symetrie kol.

TEA má některé slabiny. Nejpozoruhodnější je, že trpí ekvivalentními klíči : každý klíč je ekvivalentní třem dalším, což znamená, že efektivní délka klíče je pouze 126 bitů (Kelsey et. al., 1996). Tato slabina dala vzniknout metodě prolomení konzole Xbox společnosti Microsoft , kde byl algoritmus použit jako hashovací funkce . TEA je také náchylná k útokům souvisejících klíčů, které vyžadují 2 23 vybraných otevřených textů pro pár souvisejících klíčů s chronologickou složitostí 2 32 (Kelsey et. al., 1997).

Kvůli těmto nedostatkům byly navrženy některé revize TEA, včetně XTEA .

Referenční kód

Níže je uvedena adaptace šifrovacích a dešifrovacích rutin, publikovaných ve veřejné doméně Davidem Wheelerem a Rogerem Needhamem:

void encrypt(unsigned long* v, unsigned long* k) {
     dlouhé bez znaménka v0=v[0], v1=v[1], součet=0, i;           /* nastavení */ 
     unsigned long delta=0x9e3779b9;                     /* rozvrhová konstanta klíče */ 
     dlouhé bez znaménka k0=k[0], k1=k[1], k2=k[2], k3=k[3];   /* klíč mezipaměti */ 
     for (i=0; i < 32; i++) {                             /* začátek základního cyklu */
         součet += delta;
         v0 += (v1<<4)+k0 ^ v1+součet ^ (v1>>5)+k1;
         v1 += (v0<<4)+k2 ^ v0+součet ^ (v0>>5)+k3;         /* konec smyčky */
     }
     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;  /* nastavení */ 
     unsigned long delta=0x9e3779b9;                     /* rozvrhová konstanta klíče */ 
     dlouhé bez znaménka k0=k[0], k1=k[1], k2=k[2], k3=k[3];   /* klíč mezipaměti */ 
     for(i=0; i<32; i++) {                                /* začátek základního cyklu */
         v1 -= (v0 << 4)+k2 ^ v0+součet ^ (v0 >> 5)+k3;
         v0 -= (v1 << 4)+k0 ^ v1+součet ^ (v1 >> 5)+k1;
         součet -= delta;                                   /* konec smyčky */
     }
     v[0]=v0; v[1]=v1;
 }

Reference

  • David J. Wheeler a Roger M. Needham. TEA, malý šifrovací algoritmus. V Bart Preneel, editor, Fast Software Encryption: Second International Workshop, svazek 1008 Lecture Notes in Computer Science , strany 363–366, Leuven, Belgie, 14.–16. prosince 1994.
  • John Kelsey , Bruce Schneier a David Wagner . Klíč-plánová kryptoanalýza IDEA, G-DES, GOST, SAFER a Triple-DES. Lecture Notes in Computer Science, 1109: 237–251, 1996.
  • John Kelsey, Bruce Schneier a David Wagner. Šifrování souvisejících klíčů 3-WAY, Biham-DES, CAST, DES-X NewDES, RC2 a TEA. Lecture Notes in Computer Science, 1334: pp233–246, 1997.
  • Julio César Hernández, Pedro Isasi a Arturo Ribagorda. Aplikace genetických algoritmů na kryptoanalýzu jednokolového TEA. Sborník příspěvků ze sympozia 2002 o umělé inteligenci a její aplikaci, 2002.
  • Julio César Hernández, José María Sierra, Pedro Isasi a Arturo Ribargorda. Nalezení účinných rozlišovačů pro kryptografická mapování s aplikací na blokovou šifru TEA. In Proceedings of the 2003 Congress on Evolutionary Computation, 2003.
  • Julio César Hernández, José María Sierra, Arturo Ribagorda, Benjamin Ramos a JC Mex-Perera. Rozlišení TEA od náhodné permutace: Redukované kulaté verze TEA nemají SAC nebo negenerují náhodná čísla. In Proceedings of the IMA Int. Conf. on Cryptography and Coding 2001, pages 374-377, 2001.
  • Dukjae Moon, Kyungdeok Hwang, Wonil Lee, Sangjin Lee a Jongin Lim. Nemožná diferenciální kryptoanalýza redukovaného kulatého XTEA a TEA. Lecture Notes in Computer Science, 2365: 49-60, 2002. ISSN 0302-9743.
  • Seokhie Hong, Deukjo Hong, Youngdai Ko, Donghoon Chang, Wonil Lee a Sangjin Lee. Diferenciální kryptoanalýza TEA a XTEA. In Proceedings of ICISC 2003, 2003b.

Externí odkazy