Крошечный алгоритм шифрования
![]() Два раунда Фейстеля (один цикл) TEA [1] | |
Общий | |
---|---|
Дизайнеры | Роджер Нидэм , Дэвид Уилер |
Впервые опубликовано | 1994 |
Преемники | ХТЕА |
Деталь шифрования | |
Размеры ключей | 128 бит |
Размеры блоков | 64 бита |
Структура | Сеть Фейстеля |
Раунды | переменная; рекомендуется 64 патрона Фейстеля (32 цикла) |
Лучший публичный криптоанализ | |
TEA страдает от эквивалентных ключей (см. текст; Kelsey et al., 1996) и может быть взломан с помощью атаки по связанному ключу, требующей 2 23 выбранные открытые тексты и временная сложность 2 32 . [2] Лучшим структурным криптоанализом TEA со стандартной настройкой единого секретного ключа является криптоанализ с нулевой корреляцией, разбивающий 21 раунд за 2. 121.5 время с меньшим, чем полная кодовая книга [3] |
В криптографии Tiny Encryption Algorithm ( TEA ) — это блочный шифр, отличающийся простотой описания и реализации , обычно состоящий из нескольких строк кода. Он был разработан Дэвидом Уилером и Роджером Нидэмом из Кембриджской компьютерной лаборатории ; Впервые он был представлен на семинаре по быстрому программному шифрованию в Левене в 1994 году и впервые опубликован в материалах этого семинара. [4]
Шифр не подлежит никаким патентам .
Свойства [ править ]
TEA оперирует двумя 32-битными целыми числами без знака (которые могут быть получены из 64-битного блока данных ) и использует 128-битный ключ . Он имеет структуру Фейстеля с рекомендуемыми 64 раундами, обычно реализуемыми парами, называемыми циклами . Он имеет чрезвычайно простой график , в котором весь ключевой материал смешивается одинаково для каждого цикла. Различные кратные магической константе используются для предотвращения простых атак, основанных на симметрии раундов. Магическая константа 2654435769 или 0x9E3779B9 выбрана равной ⌊2. 32 ⁄ 𝜙⌋ , где 𝜙 — золотое сечение ( число «ничего в рукаве» ). [4]
У TEA есть несколько слабых мест. В частности, он страдает от эквивалентных ключей — каждый ключ эквивалентен трем другим, а это означает, что эффективный размер ключа составляет всего 126 бит . [5] В результате TEA особенно плоха как криптографическая хэш-функция . Эта слабость привела к методу взлома Microsoft от Xbox игровой консоли , где шифр использовался в качестве хэш-функции. [6] TEA также подвержен атаке по связанному ключу , для которой требуется 2 23 выбранные открытые тексты под парой связанных ключей, с 2 32 временная сложность. [2] Из-за этих недостатков был разработан шифр XTEA .
Версии [ править ]
Первая опубликованная версия TEA была дополнена второй версией, в которую были включены расширения, делающие ее более безопасной. Блок TEA (который был указан вместе с XTEA ) работает с блоками произвольного размера вместо 64-битных блоков оригинала.
Третья версия ( XXTEA ), опубликованная в 1998 году, описывала дальнейшие улучшения для повышения безопасности алгоритма Block TEA.
Справочный код [ править ]
Ниже приводится адаптация эталонных процедур шифрования и дешифрования на языке C , опубликованная в открытом доступе Дэвидом Уилером и Роджером Нидхэмом: [4]
#include <stdint.h>
void encrypt (uint32_t v[2], const uint32_t k[4]) {
uint32_t v0=v[0], v1=v[1], sum=0, i; /* set up */
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 */
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 (delta << 5) & 0xFFFFFFFF */
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;
}
Обратите внимание, что эталонная реализация работает с многобайтовыми числовыми значениями. В оригинальной статье не указано, как получить числа, на которые она воздействует, из двоичного или другого содержимого.
См. также [ править ]
- 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. стр. 29–48. дои : 10.1007/978-3-642-34047-5_3 . ISBN 978-3-642-34046-8 .
- ↑ Перейти обратно: Перейти обратно: а б с Уиллер, Дэвид Дж.; Нидэм, Роджер М. (16 декабря 1994 г.). «ЧАЙ, крошечный алгоритм шифрования». Быстрое программное шифрование . Конспекты лекций по информатике. Том. 1008. Левен, Бельгия. стр. 363–366. дои : 10.1007/3-540-60590-8_29 . ISBN 978-3-540-60590-4 .
{{cite book}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ) - ^ Келси, Джон; Шнайер, Брюс ; Вагнер, Дэвид (1996). «Криптоанализ по расписанию ключей IDEA, G-DES, GOST, SAFER и Triple-DES». Достижения в криптологии — CRYPTO '96 (PDF) . Конспекты лекций по информатике. Том. 1109. стр. 237–251. дои : 10.1007/3-540-68697-5_19 . ISBN 978-3-540-61512-5 . Архивировано из оригинала (PDF) 8 февраля 2012 года . Проверено 25 февраля 2008 г.
- ^ Майкл Стейл. «17 ошибок, допущенных Microsoft в системе безопасности Xbox» . Архивировано из оригинала 16 апреля 2009 года.
Ссылки [ править ]
- Андем, Викрам Редди (2003). «Криптоанализ крошечного алгоритма шифрования, магистерская диссертация» (PDF) . Таскалуса: Университет Алабамы.
- Эрнандес, Хулио Сезар; Исаси, Питер; Рибагорда, Артуро (2002). «Применение генетических алгоритмов к криптоанализу одного раунда TEA» . Материалы симпозиума 2002 года по искусственному интеллекту и его применению .
- Эрнандес, Хулио Сезар; Сьерра, Хосе Мария; Исаси, Питер; Рибаргорда, Артуро (2003). «Поиск эффективных различителей для криптографических отображений с применением к блочному шифру TEA». Конгресс по эволюционным вычислениям 2003 г., 2003. CEC '03 . Том. 3. стр. 2189–2193. дои : 10.1109/CEC.2003.1299943 . hdl : 10016/3944 . ISBN 978-0-7803-7804-9 . S2CID 62216777 .
- Эрнандес, Хулио Сезар; Сьерра, Хосе Мария; Рибагорда, Артуро; Рамос, Бенхамин; Мекс-Перера, JC (2001). «Отличие TEA от случайной перестановки: сокращенные круглые версии TEA не имеют SAC или не генерируют случайные числа». Криптография и кодирование (PDF) . Конспекты лекций по информатике. Том. 2260. стр. 374–377. дои : 10.1007/3-540-45325-3_34 . ISBN 978-3-540-43026-1 . Архивировано из оригинала (PDF) 26 апреля 2012 года.
- Мун, Дукдже; Хван, Кёндок; Ли, Вонил; Ли, Санджин; Лим, Чонин (2002). «Невозможный дифференциальный криптоанализ сокращенных круглых XTEA и TEA». Быстрое программное шифрование (PDF) . Конспекты лекций по информатике. Том. 2365. стр. 49–60. дои : 10.1007/3-540-45661-9_4 . ISBN 978-3-540-44009-3 .
- Хон, Сохи; Хонг, Дыкджо; Ко, Ёнгдай; Чанг, Донхун; Ли, Вонил; Ли, Санджин (2004). «Дифференциальный криптоанализ TEA и XTEA». Информационная безопасность и криптология – ICISC 2003 . Конспекты лекций по информатике. Том. 2971. стр. 402–417. дои : 10.1007/978-3-540-24691-6_30 . ISBN 978-3-540-21376-5 .
Внешние ссылки [ править ]
- Тестовые векторы для ЧАЯ
- Реализация XXTEA на JavaScript с использованием Base64. Архивировано 28 апреля 2006 г. на Wayback Machine.
- PHP-реализация XTEA (немецкий язык)
- JavaScript-реализация XXTEA
- Реализации XTEA на JavaScript и PHP (текст на голландском языке)
- Реализация AVR ASM
- Масштабируемый алгоритм шифрования SEA для небольших встраиваемых приложений (Standaert, Piret, Gershenfeld, Quisquater – июль 2005 г., UCL, Бельгия и MIT, США)