Введение

Блок-шифр

В криптографии, Tiny Encryption Algorithm (TEA) — это блочный шифр, примечательный своей простотой описания и реализации, обычно занимающей всего несколько строк кода. Он был разработан Дэвидом Уилером и Роджером Нидхемом из Кембриджской компьютерной лаборатории; впервые он был представлен на семинаре Fast Software Encryption в Лёвене в 1994 году и впервые опубликован в материалах этого семинара. Шифр не защищен патентами.

Свойства

TEA работает с двумя 32-битными беззнаковыми целыми числами (которые могут быть получены из 64-битного блока данных) и использует 128-битный ключ. Он имеет структуру Фейстеля с рекомендованными 64 раундами, обычно реализуемыми парами, называемыми циклами. Алгоритм обладает крайне простым расширением ключа, смешивающим весь ключевой материал одинаковым образом для каждого цикла. Для предотвращения простых атак, основанных на симметрии раундов, используются различные кратные магической константы. Магическая константа, 2654435769 или 0x9E3779B9, выбрана как , где – золотое сечение (как число, полученное "из рукава"). В результате TEA особенно плохо подходит для использования в качестве криптографической хеш-функции. Эта слабость привела к разработке метода взлома игровой консоли Xbox от Microsoft, где шифр использовался как хеш-функция. TEA также уязвим для атаки с использованием связанных ключей, требующей 223 выбранных открытых текста при использовании пары связанных ключей, с временной сложностью 2<sup>32</sup>. Из-за этих недостатков был разработан шифр XTEA.

Версии

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