ХТЕА
Эта статья включает список общих ссылок , но в ней отсутствуют достаточные соответствующие встроенные цитаты . ( сентябрь 2015 г. ) |
Общий | |
---|---|
Дизайнеры | Роджер Нидэм , Дэвид Уилер |
Впервые опубликовано | 1997 |
Получено из | ЧАЙ |
Преемники | Исправленный блок ЧАЙ |
Деталь шифрования | |
Размеры ключей | 128 бит |
Размеры блоков | 64 бита |
Структура | Шифр Фейстеля |
Раунды | переменная; рекомендуется 64 патрона Фейстеля (32 цикла) |
Лучший публичный криптоанализ | |
Атака прямоугольником со связанным ключом на 36 раундов XTEA (Лу, 2009) [ нечеткий ] |
В криптографии предназначенный XTEA ( eXtended TEA ) — это блочный шифр, для исправления недостатков TEA . Разработчиками шифра . были Дэвид Уилер и Роджер Нидэм из Кембриджской компьютерной лаборатории , а алгоритм был представлен в неопубликованном техническом отчете в 1997 году (Needham and Wheeler, 1997) Он не подлежит никаким патентам . [1]
Как и TEA, XTEA представляет собой 64-битный блочный шифр Фейстеля со 128-битным ключом и предполагаемым количеством раундов 64. Очевидны некоторые отличия от TEA, включая несколько более сложное расписание клавиш и перестановку сдвигов, XOR и дополнений.
Реализации [ править ]
Этот стандартный исходный код C , адаптированный из справочного кода, опубликованного в открытом доступе Дэвидом Уилером и Роджером Нидхэмом, шифрует и расшифровывает с использованием XTEA:
#include <stdint.h>
/* take 64 bits of data in v[0] and v[1] and 128 bits of key[0] - key[3] */
void encipher(unsigned int num_rounds, uint32_t v[2], uint32_t const key[4]) {
unsigned int i;
uint32_t v0=v[0], v1=v[1], sum=0, delta=0x9E3779B9;
for (i=0; i < num_rounds; i++) {
v0 += (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + key[sum & 3]);
sum += delta;
v1 += (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + key[(sum>>11) & 3]);
}
v[0]=v0; v[1]=v1;
}
void decipher(unsigned int num_rounds, uint32_t v[2], uint32_t const key[4]) {
unsigned int i;
uint32_t v0=v[0], v1=v[1], delta=0x9E3779B9, sum=delta*num_rounds;
for (i=0; i < num_rounds; i++) {
v1 -= (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + key[(sum>>11) & 3]);
sum -= delta;
v0 -= (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + key[sum & 3]);
}
v[0]=v0; v[1]=v1;
}
Изменения исходного кода ссылки незначительны:
- В ссылочном исходном коде использовался
unsigned long
введите, а не 64-битную чистуюuint32_t
. - Справочный исходный код не использовался
const
типы. - В ссылочном исходном коде избыточные круглые скобки опущены, а для записи функции округления используется приоритет C, например
v1 += (v0<<4 ^ v0>>5) + v0 ^ sum + k[sum>>11 & 3]
;
Рекомендуемое значение параметра «num_rounds» — 32, а не 64, поскольку каждая итерация цикла выполняет два раунда шифрования Фейстеля. Чтобы дополнительно повысить скорость, цикл можно развернуть, предварительно вычислив значения sum+key[].
Криптоанализ [ править ]
В 2004 году Ко и др. представил по связанным ключам дифференциальную атаку на 27 из 64 раундов XTEA, требующую 2 20.5 выбранные открытые тексты и временная сложность 2 115.15 . [2] [3]
В 2009 году Лу представил атаку прямоугольником со связанным ключом на 36 раундов XTEA, взломав больше раундов, чем любые ранее опубликованные результаты криптоанализа для XTEA. В статье представлены две атаки: одна без и со слабым ключевым предположением, что соответствует 2 64.98 байт данных и 2 126.44 операции и 2 63.83 байт данных и 2 104.33 операции соответственно. [4]
Блок ЧАЙ [ править ]
Вместе с XTEA был представлен блочный шифр переменной ширины, названный Block TEA , который использует функцию раунда XTEA, но Block TEA применяет его циклически по всему сообщению в течение нескольких итераций. Поскольку он работает со всем сообщением, Block TEA обладает тем свойством, что ему не нужен режим работы . Атаку на полный блок TEA описал Сааринен: [5] в котором также подробно описаны недостатки преемника Block TEA, XXTEA .
См. также [ править ]
- RC4 — поточный шифр , который, как и XTEA, очень прост в реализации.
- XXTEA — преемник блока TEA.
- TEA — предшественник блока TEA.
Ссылки [ править ]
- ^ Роджер М. Нидэм; Дэвид Дж. Уиллер (октябрь 1997 г.). Расширения чая (PDF) . Компьютерная лаборатория Кембриджского университета (Технический отчет).
- ^ Ко, Ёнгдай; Хон, Сохи; Ли, Вонил; Ли, Санджин; Канг, Джу-Сун (2004). «Соответствующие ключевые дифференциальные атаки на 27 раундов XTEA и полный ГОСТ» (PDF) . В Рое, Б.; Мейер, В. (ред.). Быстрое программное шифрование . ФШЭ 2004. Конспекты лекций по информатике. Том. 3017. Берлин, Гейдельберг: Springer. стр. 299–316. дои : 10.1007/978-3-540-25937-4_19 . ISBN 978-3-540-22171-5 . Проверено 10 октября 2018 г.
- ^ Хон, Сохи; Хонг, Дыкджо; Ко, Ёнгдай; Чанг, Донхун; Ли, Вонил; Ли, Санджин (2004). «Дифференциальный криптоанализ TEA и XTEA». В Лиме, Дж.И.; Ли, Д.Х. (ред.). Информационная безопасность и криптология . ICISC 2003. Конспекты лекций по информатике. Том. 2971. Берлин, Гейдельберг: Springer. стр. 402–417. дои : 10.1007/978-3-540-24691-6_30 . ISBN 978-3-540-21376-5 .
- ^ Лу, Цзицян (2 июля 2008 г.). «Атака прямоугольником со связанным ключом на 36 раундов блочного шифра XTEA». Международный журнал информационной безопасности . 8 (1): 1–11. дои : 10.1007/s10207-008-0059-9 . ISSN 1615-5262 . S2CID 26794956 .
- ^ Сааринен, Маркку-Юхани (20 октября 1998 г.). «Криптоанализ блочного чая» . Исследовательские ворота . Проверено 10 октября 2018 г.
Дальнейшее чтение [ править ]
- Секар, Гаутам; Муха, Ники; Величков, Веселин; Пренил, Барт (2011). «Атаки «Встреча посередине» на XTEA с сокращенным раундом». В Киайяс, А. (ред.). Темы криптологии – CT-RSA 2011 . Конспекты лекций по информатике. Том. 6558. стр. 250–267. дои : 10.1007/978-3-642-19074-2_17 . ISBN 978-3-642-19073-5 . Проверено 10 октября 2018 г.
- Мун, Дукдже; Хван, Кёндок; Ли, Вонил; Ли, Санджин; Лим, Чонин (2002). «Невозможный дифференциальный криптоанализ сокращенных круглых XTEA и TEA». Быстрое программное шифрование . Конспекты лекций по информатике. Том. 2365. стр. 49–60. дои : 10.1007/3-540-45661-9_4 . ISBN 978-3-540-44009-3 . Проверено 10 октября 2018 г.
- Андем, Викрам Редди (2003). Криптоанализ крошечного алгоритма шифрования (PDF) (магистерская диссертация). Университет Алабамы, Таскалуса . Проверено 10 октября 2018 г.
Внешние ссылки [ править ]
- Диаграмма потока данных
- Веб-страница, пропагандирующая TEA и XTEA и предлагающая различные реализации.
- Тестовые векторы для TEA и XTEA
- Криптоанализ алгоритма крошечного шифрования
- Реализация XTEA AC. Архивировано 24 февраля 2023 г. в Wayback Machine.
- PHP-реализация XTEA
- Реализация XTEA на Pascal/Delphi. Архивировано 22 октября 2008 г. в Wayback Machine.
- Java-реализация XTEA (32 раунда)
- Реализация XTEA на JavaScript (32 раунда)
- Реализация XTEA на Python
- Реализация XTEA на языке сценариев Linden (LSL) для сценариев Second Life
- Verilog реализация XTEA
- Реализация XTEA на Smalltalk. Архивировано 4 марта 2016 г. на Wayback Machine.
- Реализация XTEA в PostgreSQL