Крошечный алгоритм шифрования - Википедия - Tiny Encryption Algorithm
Два раунда Фейстеля (один цикл) ЧАЙ[1] | |
Общий | |
---|---|
Дизайнеров | Роджер Нидхэм, Дэвид Уиллер |
Впервые опубликовано | 1994 |
Преемники | XTEA |
Деталь шифра | |
Ключевые размеры | 128 бит |
Размеры блоков | 64 бит |
Структура | Сеть Фейстеля |
Раундов | Переменная; рекомендуется 64 раунда Фейстеля (32 цикла) |
Лучшая публика криптоанализ | |
TEA страдает от эквивалентных ключей (см. Текст; Kelsey et al., 1996) и может быть взломан с помощью атака по связанным ключам требуя 223 выбранные открытые тексты и временная сложность 232.[2] Лучший структурный криптоанализ TEA при стандартной настройке единого секретного ключа - это криптоанализ с нулевой корреляцией, разбивающий 21 раунд за 2121.5 время с менее чем полной кодовой книгой [3] |
В криптография, то Крошечный алгоритм шифрования (ЧАЙ) это блочный шифр отличается простотой описания и выполнение, обычно это несколько строк кода. Он был разработан Дэвид Уиллер и Роджер Нидхэм из Кембриджская компьютерная лаборатория; он был впервые представлен на Быстрое программное шифрование мастерская в Leuven в 1994 г. и впервые опубликовано в трудах этого семинара.[4]
Шифр не подлежит никаким патенты.
Характеристики
TEA работает на двух 32-битных целые числа без знака (может быть получен из 64-битных данных блокировать ) и использует 128-битный ключ. Оно имеет Структура Фейстеля с предлагаемыми 64 раундами, обычно реализуемыми парами, называемыми циклы. У него очень простой ключевой график, смешивая весь ключевой материал одинаково для каждого цикла. Различные кратные магическая константа используются для предотвращения простых атак, основанных на симметрия раундов. Магическая константа 2654435769 или 0x9E3779B9 выбрана равной ⌊2.32/ϕ⌋, куда ϕ это Золотое сечение (как Номер "ничего в рукаве" ).[4]
У TEA есть несколько недостатков. В частности, он страдает от эквивалентных ключей - каждый ключ эквивалентен трем другим, что означает, что эффективный размер ключа составляет всего 126 биты.[5] В результате чай особенно плох как криптографическая хеш-функция. Эта слабость привела к способу взлом Microsoft с Xbox игровая консоль, где шифр использовался как хеш-функция.[6] ЧАЙ также подвержен атака по связанным ключам что требует 223 выбранные открытые тексты под парой связанных ключей, с 232 временная сложность.[2] Из-за этих слабостей XTEA был разработан шифр.
Версии
К первой опубликованной версии TEA была добавлена вторая версия, в которую были включены расширения для повышения безопасности. Блокировать ЧАЙ (который был указан вместе с XTEA ) работает с блоками произвольного размера вместо 64-битных блоков оригинала.
Третья версия (XXTEA ), опубликованный в 1998 году, описал дальнейшие улучшения для повышения безопасности алгоритма Block TEA.
Код ссылки
Ниже приводится адаптация стандартных процедур шифрования и дешифрования в C, опубликовано в открытом доступе Дэвидом Уилером и Роджером Нидхэмом:[4]
#включают <stdint.h>пустота зашифровать (uint32_t v[2], const uint32_t k[4]) { uint32_t v0=v[0], v1=v[1], сумма=0, я; /* настраивать */ uint32_t дельта=0x9E3779B9; / * ключевая константа расписания * / uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3]; / * ключ кеширования * / за (я=0; я<32; я++) { / * начало основного цикла * / сумма += дельта; v0 += ((v1<<4) + k0) ^ (v1 + сумма) ^ ((v1>>5) + k1); v1 += ((v0<<4) + k2) ^ (v0 + сумма) ^ ((v0>>5) + k3); } / * конец цикла * / v[0]=v0; v[1]=v1;}пустота расшифровать (uint32_t v[2], const uint32_t k[4]) { uint32_t v0=v[0], v1=v[1], сумма=0xC6EF3720, я; /* настраивать; сумма 32 * дельта * / uint32_t дельта=0x9E3779B9; / * ключевая константа расписания * / uint32_t k0=k[0], k1=k[1], k2=k[2], k3=k[3]; / * ключ кеширования * / за (я=0; я<32; я++) { / * начало основного цикла * / v1 -= ((v0<<4) + k2) ^ (v0 + сумма) ^ ((v0>>5) + k3); v0 -= ((v1<<4) + k0) ^ (v1 + сумма) ^ ((v1>>5) + k1); сумма -= дельта; } / * конец цикла * / v[0]=v0; v[1]=v1;}
Обратите внимание, что эталонная реализация работает с многобайтовыми числовыми значениями. В исходной статье не указывается, как выводить числа из двоичного или другого содержимого.
Смотрите также
- RC4 - А потоковый шифр который, как и TEA, очень прост в реализации.
- XTEA - Первая версия преемника Block TEA.
- XXTEA - Исправлен блок преемника TEA.
- Treyfer - Простой и компактный алгоритм шифрования с 64-битным размером ключа и размером блока.
Примечания
- ^ Мэтью Д. Рассел (27 февраля 2004 г.). «Крошечность: обзор TEA и родственных шифров». Архивировано из оригинал 12 августа 2007 г.
- ^ а б Келси, Джон; Шнайер, Брюс; Вагнер, Дэвид (1997). Криптоанализ связанных ключей 3-WAY, Biham-DES, CAST, DES-X NewDES, RC2 и TEA. Конспект лекций по информатике. 1334. С. 233–246. CiteSeerX 10.1.1.35.8112. Дои:10.1007 / BFb0028479. ISBN 978-3-540-63696-0.
- ^ Богданов Андрей; Ван, Мэйцинь (2012). Линейный криптоанализ с нулевой корреляцией с пониженной сложностью данных (PDF). Конспект лекций по информатике. 7549. Fast Software Encryption, 2012. С. 29–48. Дои:10.1007/978-3-642-34047-5_3. ISBN 978-3-642-34046-8.
- ^ а б c Уиллер, Дэвид Дж .; Нидхэм, Роджер М. (1994-12-16). TEA, крошечный алгоритм шифрования. Конспект лекций по информатике. 1008. Лёвен, Бельгия: Быстрое программное шифрование: второй международный семинар. С. 363–366. Дои:10.1007/3-540-60590-8_29. ISBN 978-3-540-60590-4.
- ^ Келси, Джон; Шнайер, Брюс; Вагнер, Дэвид (1996). Криптоанализ по расписанию ключей IDEA, G-DES, GOST, SAFER и Triple-DES (PDF). Конспект лекций по информатике. 1109. С. 237–251. Дои:10.1007/3-540-68697-5_19. ISBN 978-3-540-61512-5.
- ^ Майкл Стейл. «17 ошибок, сделанных Microsoft в системе безопасности Xbox». Архивировано из оригинал 16 апреля 2009 г.
Рекомендации
- Андем, Викрам Редди (2003). «Криптоанализ крошечного алгоритма шифрования, магистерская диссертация» (PDF). Таскалуса: Университет Алабамы. Цитировать журнал требует
| журнал =
(помощь) - Эрнандес, Хулио Сезар; Исаси, Педро; Рибагорда, Артуро (2002). «Применение генетических алгоритмов для криптоанализа одного раунда TEA». Материалы Симпозиума 2002 г. по искусственному интеллекту и его применению.
- Эрнандес, Хулио Сезар; Сьерра, Хосе Мария; Исаси, Педро; Рибаргорда, Артуро (2003). Поиск эффективных отличительных признаков для криптографических отображений с применением блочного шифра TEA. Труды Конгресса по эволюционным вычислениям 2003 г.. 3. С. 2189–2193. Дои:10.1109 / CEC.2003.1299943. HDL:10016/3944. ISBN 978-0-7803-7804-9. S2CID 62216777.
- Эрнандес, Хулио Сезар; Сьерра, Хосе Мария; Рибагорда, Артуро; Рамос, Бенхамин; Мекс-Перера, Дж. К. (2001). Отличие TEA от случайной перестановки: версии TEA с уменьшенным раундом не имеют SAC или не генерируют случайные числа (PDF). Труды IMA Int. Конф. О криптографии и кодировании 2001. Конспект лекций по информатике. 2260. С. 374–377. Дои:10.1007/3-540-45325-3_34. ISBN 978-3-540-43026-1. Архивировано из оригинал (PDF) на 2012-04-26.
- Луна, Дукджэ; Хван, Кёндок; Ли, Вонил; Ли, Санджин; Лим, Джонгин (2002). Невозможный дифференциальный криптоанализ сокращенных раундов XTEA и TEA (PDF). Конспект лекций по информатике. 2365. С. 49–60. Дои:10.1007/3-540-45661-9_4. ISBN 978-3-540-44009-3.
- Хонг, Сохи; Хонг, Деукджо; Ко, Ёндай; Чанг, Донхун; Ли, Вонил; Ли, Санджин (2003). Дифференциальный криптоанализ TEA и XTEA. В трудах ICISC 2003. Конспект лекций по информатике. 2971. С. 402–417. Дои:10.1007/978-3-540-24691-6_30. ISBN 978-3-540-21376-5.
внешняя ссылка
- Тестовые векторы для TEA
- Реализация XXTEA в JavaScript с использованием Base64
- Реализация XTEA на PHP (немецкий язык)
- Реализация XXTEA в JavaScript
- Реализации XTEA на JavaScript и PHP (голландский текст)
- Реализация AVR ASM
- Масштабируемый алгоритм шифрования SEA для небольших встроенных приложений (Standaert, Piret, Gershenfeld, Quisquater - июль 2005 г., UCL Бельгия и Массачусетский технологический институт США)