Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В криптографии , то малолетка алгоритм шифрования ( TEA ) представляет собой блочный шифр отличается простотой описания и реализации , как правило, несколько строк кода. Его разработали Дэвид Уиллер и Роджер Нидхэм из Кембриджской компьютерной лаборатории ; он был впервые представлен на семинаре по быстрому программному шифрованию в Лёвене в 1994 году и впервые опубликован в трудах этого семинара. [4]

Шифр не защищен никакими патентами .

Свойства [ править ]

TEA работает с двумя 32-битными целыми числами без знака (может быть получен из 64-битного блока данных ) и использует 128-битный ключ . Он имеет структуру Фейстеля с предлагаемыми 64 раундами, обычно реализуемыми парами, называемыми циклами . Он имеет чрезвычайно простой график работы с клавишами , в котором весь ключевой материал смешивается одинаково для каждого цикла. Различные кратные магической константы используются для предотвращения простых атак, основанных на симметрии раундов. Магическая константа, 2654435769 или 0x9E3779B9, выбрана равной ⌊2 32 / ϕ where, где ϕ - золотое сечение.(как номер « Ничего в рукаве» ). [4]

У TEA есть несколько недостатков. В частности, он страдает от эквивалентных ключей - каждый ключ эквивалентен трем другим, что означает, что эффективный размер ключа составляет всего 126 бит . [5] В результате TEA особенно плох как криптографическая хеш-функция . Эта слабость привела к способу взлома Microsoft «s Xbox игровой консоли , где Шифр был использован в качестве хэш - функции. [6] TEA также подвержен атаке с использованием связанных ключей, для которой требуется 2 23 выбранных открытых текста в паре связанных ключей с временной сложностью 2 32 . [2] Из-за этих слабостейБыл разработан шифр XTEA .

Версии [ править ]

Первая опубликованная версия TEA была дополнена второй версией, в которую были включены расширения для повышения безопасности. Блок TEA (который был указан вместе с XTEA ) работает с блоками произвольного размера вместо 64-битных блоков оригинала.

Третья версия ( XXTEA ), опубликованная в 1998 году, описывает дальнейшие улучшения для повышения безопасности алгоритма Block TEA.

Справочный код [ править ]

Ниже приводится адаптация эталонных процедур шифрования и дешифрования на языке C , выпущенная в общественное достояние Дэвидом Уилером и Роджером Нидхэмом: [4]

#include  <stdint.h>недействительное  шифрование  ( uint32_t  v [ 2 ],  const  uint32_t  k [ 4 ])  {  uint32_t  v0 = v [ 0 ],  v1 = v [ 1 ],  sum = 0 ,  i ;  / * настраиваем * /  uint32_t  delta = 0x9E3779B9 ;  / * ключевая константа расписания * /  uint32_t  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 (uint32_t v[2], const uint32_t k[4]) { uint32_t v0=v[0], v1=v[1], sum=0xC6EF3720, i; /* set up; sum is 32*delta */ uint32_t delta=0x9E3779B9; /* a key schedule constant */ uint32_t 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;}

Note that the reference implementation acts on multi-byte numeric values. The original paper does not specify how to derive the numbers it acts on from binary or other content.

See also[edit]

  • RC4 – A stream cipher that, just like TEA, is designed to be very simple to implement.
  • XTEA – First version of Block TEA's successor.
  • XXTEA – Corrected Block TEA's successor.
  • Treyfer – A simple and compact encryption algorithm with 64-bit key size and block size.

Notes[edit]

  1. ^ Matthew D. Russell (27 Feb 2004). "Tinyness: An Overview of TEA and Related Ciphers". Archived from the original on 12 August 2007.
  2. ^ a b Kelsey, John; Schneier, Bruce; Wagner, David (1997). Related-key cryptanalysis of 3-WAY, Biham-DES, CAST, DES-X NewDES, RC2, and TEA. Lecture Notes in Computer Science. 1334. pp. 233–246. CiteSeerX 10.1.1.35.8112. doi:10.1007/BFb0028479. ISBN 978-3-540-63696-0.
  3. ^ Bogdanov, Andrey; Wang, Meiqin (2012). Zero-Correlation Linear Cryptanalysis with Reduced Data Complexity (PDF). Lecture Notes in Computer Science. 7549. Fast Software Encryption 2012. pp. 29–48. doi:10.1007/978-3-642-34047-5_3. ISBN 978-3-642-34046-8.
  4. ^ a b c Wheeler, David J.; Needham, Roger M. (1994-12-16). TEA, a tiny encryption algorithm. Lecture Notes in Computer Science. 1008. Leuven, Belgium: Fast Software Encryption: Second International Workshop. pp. 363–366. doi:10.1007/3-540-60590-8_29. ISBN 978-3-540-60590-4.
  5. ^ Kelsey, John; Schneier, Bruce; Wagner, David (1996). Key-schedule cryptanalysis of IDEA, G-DES, GOST, SAFER, and Triple-DES (PDF). Lecture Notes in Computer Science. 1109. pp. 237–251. doi:10.1007/3-540-68697-5_19. ISBN 978-3-540-61512-5.
  6. ^ Michael Steil. "17 Mistakes Microsoft Made in the Xbox Security System". Archived from the original on 16 April 2009.

References[edit]

  • Andem, Vikram Reddy (2003). "A Cryptanalysis of the Tiny Encryption Algorithm, Masters thesis" (PDF). Tuscaloosa: The University of Alabama. Cite journal requires |journal= (help)
  • Hernández, Julio César; Isasi, Pedro; Ribagorda, Arturo (2002). "An application of genetic algorithms to the cryptoanalysis of one round TEA". Proceedings of the 2002 Symposium on Artificial Intelligence and Its Application.
  • Hernández, Julio César; Sierra, José María; Isasi, Pedro; Ribargorda, Arturo (2003). Finding efficient distinguishers for cryptographic mappings, with an application to the block cipher TEA. Proceedings of the 2003 Congress on Evolutionary Computation. 3. pp. 2189–2193. doi:10.1109/CEC.2003.1299943. hdl:10016/3944. ISBN 978-0-7803-7804-9. S2CID 62216777.
  • Hernández, Julio César; Sierra, José María; Ribagorda, Arturo; Ramos, Benjamín; Mex-Perera, J. C. (2001). Distinguishing TEA from a random permutation: Reduced round versions of TEA do not have the SAC or do not generate random numbers (PDF). Proceedings of the IMA Int. Conf. On Cryptography and Coding 2001. Lecture Notes in Computer Science. 2260. pp. 374–377. doi:10.1007/3-540-45325-3_34. ISBN 978-3-540-43026-1. Archived from the original (PDF) on 2012-04-26.
  • Moon, Dukjae; Hwang, Kyungdeok; Lee, Wonil; Lee, Sangjin; Lim, Jongin (2002). Impossible differential cryptanalysis of reduced round XTEA and TEA (PDF). Lecture Notes in Computer Science. 2365. pp. 49–60. doi:10.1007/3-540-45661-9_4. ISBN 978-3-540-44009-3.
  • Hong, Seokhie; Hong, Deukjo; Ko, Youngdai; Chang, Donghoon; Lee, Wonil; Lee, Sangjin (2003). Differential cryptanalysis of TEA and XTEA. In Proceedings of ICISC 2003. Lecture Notes in Computer Science. 2971. pp. 402–417. doi:10.1007/978-3-540-24691-6_30. ISBN 978-3-540-21376-5.

External links[edit]

  • Test vectors for TEA
  • JavaScript implementation of XXTEA with Base64
  • PHP implementation of XTEA (German language)
  • JavaScript implementation of XXTEA
  • JavaScript and PHP implementations of XTEA (Dutch text)
  • AVR ASM implementation
  • SEA Scalable Encryption Algorithm for Small Embedded Applications (Standaert, Piret, Gershenfeld, Quisquater - July 2005 UCL Belgium & MIT USA)