close

Mały algorytm szyfrowania

Przejdź do nawigacji Przejdź do wyszukiwania
Image
Mały algorytm szyfrowania

W kryptografii Tiny Encryption Algorithm ( TEA) jest algorytmem szyfrów blokowych wyróżniającym się prostotą opisu i implementacji (zwykle kilka linijek kodu). Został zaprojektowany przez Davida Wheelera i Rogera Needhama z Cambridge Computer Laboratory i został po raz pierwszy zaprezentowany w 1994 roku na warsztatach Fast Software Encryption Workshop (Wheeler i Needham, 1994). Nie podlega żadnemu patentowi .

Właściwości

TEA działa na blokach 64-bitowych i używa klucza 128-bitowego . Zawiera zalecaną strukturę sieci Feistel w 64 rundach, zwykle realizowanych w parach zwanych cyklami . Ma niezwykle proste generowanie kluczy, tasując wszystkie kluczowe treści w ten sam sposób dla każdego cyklu. Różne wielokrotności magicznej stałej służą do zapobiegania atakom w oparciu o symetrię rund.

TEA ma pewne słabości. Najbardziej godne uwagi jest to, że cierpi na równoważne klucze : każdy klucz jest równoważny trzem innym, a to oznacza, że ​​efektywna długość klucza wynosi tylko 126 bitów (Kelsey et. al., 1996). Ta słabość dała początek metodzie złamania konsoli Xbox Microsoftu , gdzie algorytm został wykorzystany jako funkcja skrótu . TEA jest również podatna na ataki powiązanych kluczy, które wymagają 2 23 wybranych tekstów jawnych dla pary powiązanych kluczy, o złożoności chronologicznej 2 32 (Kelsey i in., 1997).

Ze względu na te słabości zaprojektowano kilka wersji TEA, w tym XTEA .

Kod referencyjny

Poniżej znajduje się adaptacja procedur szyfrowania i deszyfrowania, opublikowana w domenie publicznej przez Davida Wheelera i Rogera Needhama:

void encrypt(unsigned long* v, unsigned long* k) {
     unsigned long v0=v[0], v1=v[1], sum=0, i;           /* ustaw */ 
     unsigned long delta=0x9e3779b9;                     /* kluczowa stała harmonogramu */ 
     unsigned long k0=k[0], k1=k[1], k2=k[2], k3=k[3];   /* klucz pamięci podręcznej */ 
     for (i=0; i < 32; i++) {                             /* początek cyklu podstawowego */
         suma += delta;
         v0 += (v1<<4)+k0 ^ v1+suma ^ (v1>>5)+k1;
         v1 += (v0<<4)+k2 ^ v0+suma ^ (v0>>5)+k3;         /* koniec pętli */
     }
     v[0]=v0; v[1]=v1;
 }
 
 void decrypt(unsigned long* v, unsigned long* k) {
     unsigned long v0=v[0], v1=v[1], suma=0xC6EF3720, i;  /* ustaw */ 
     unsigned long delta=0x9e3779b9;                     /* kluczowa stała harmonogramu */ 
     unsigned long k0=k[0], k1=k[1], k2=k[2], k3=k[3];   /* klucz pamięci podręcznej */ 
     for(i=0; i<32; i++) {                                /* początek cyklu podstawowego */
         v1 -= (v0 << 4)+k2 ^ v0+suma ^ (v0 >> 5)+k3;
         v0 -= (v1 << 4)+k0 ^ v1+suma ^ (v1 >> 5)+k1;
         suma -= delta;                                   /* koniec pętli */
     }
     v[0]=v0; v[1]=v1;
 }

Referencje

  • David J. Wheeler i Roger M. Needham. TEA, mały algorytm szyfrowania. W Bart Preneel, redaktor Fast Software Encryption: Second International Workshop, tom 1008 Lecture Notes in Computer Science , strony 363-366, Leuven, Belgia, 14-16 grudnia 1994.
  • John Kelsey , Bruce Schneier i David Wagner . Analiza kryptograficzna według harmonogramu kluczy IDEA, G-DES, GOST, SAFER i Triple-DES. Notatki z wykładu z informatyki, 1109: 237-251, 1996.
  • John Kelsey, Bruce Schneier i David Wagner. Analiza kryptowalut powiązanych kluczy 3-WAY, Biham-DES, CAST, DES-X NewDES, RC2 i TEA. Notatki z wykładu z informatyki, 1334: s.233-246, 1997.
  • Julio César Hernández, Pedro Isasi i Arturo Ribagorda. Zastosowanie algorytmów genetycznych do kryptoanalizy jednej rundy TEA. Materiały z Sympozjum 2002 na temat Sztucznej Inteligencji i jej Zastosowania, 2002.
  • Julio César Hernández, José María Sierra, Pedro Isasi i Arturo Ribargorda. Znalezienie wydajnych rozróżniaczy dla mapowań kryptograficznych, z zastosowaniem szyfru blokowego TEA. W Proceedings of the Congress on Evolutionary Computing 2003, 2003.
  • Julio César Hernández, José María Sierra, Arturo Ribagorda, Benjamin Ramos i JC Mex-Perera. Odróżnianie TEA od losowej permutacji: Zmniejszone okrągłe wersje TEA nie mają SAC lub nie generują liczb losowych. W Proceedings of the IMA Int. Conf. on Cryptography and Coding 2001, s. 374-377, 2001.
  • Dukjae Moon, Kyungdeok Hwang, Wonil Lee, Sangjin Lee i Jongin Lim. Niemożliwa różnicowa kryptoanaliza zredukowanych okrągłych XTEA i TEA. Wykład Notatki z Informatyki, 2365: 49-60, 2002. ISSN 0302-9743.
  • Seokhie Hong, Deukjo Hong, Youngdai Ko, Donghoon Chang, Wonil Lee i Sangjin Lee. Kryptoanaliza różnicowa TEA i XTEA. W postępowaniu ICISC 2003, 2003b.

Linki zewnętrzne