Эта статья включает в себя список общих ссылок , но он остается в значительной степени непроверенным, поскольку в нем отсутствует достаточное количество соответствующих встроенных ссылок . ( Сентябрь 2015 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Два раунда Фейстеля (один цикл) XTEA | |
Общий | |
---|---|
Дизайнеров | Роджер Нидхэм , Дэвид Уиллер |
Впервые опубликовано | 1997 г. |
Происходит от | ЧАЙ |
Преемники | Исправленный блок TEA |
Деталь шифра | |
Ключевые размеры | 128 бит |
Размеры блоков | 64 бит |
Структура | Шифр Фейстеля |
Раундов | Переменная; рекомендуется 64 раунда Фейстеля (32 цикла) |
Лучший публичный криптоанализ | |
Связанных ключах прямоугольник атаки на 36 раундов XTEA (Lu, 2009) [ расплывчатым ] |
В криптографии , XTEA ( РАСПРОСТРАНЕНИЯ TEA ) представляет собой блочный шифр предназначен для правильных недостатков в TEA . Разработчиками шифра были Дэвид Уиллер и Роджер Нидхэм из Кембриджской компьютерной лаборатории , а алгоритм был представлен в неопубликованном техническом отчете в 1997 году (Needham and Wheeler, 1997). Не подлежит патентам . [1]
Как и TEA, XTEA - это 64-битный блочный шифр Фейстеля со 128-битным ключом и предлагаемыми 64 раундами. Очевидны некоторые отличия от TEA, в том числе несколько более сложная таблица ключей и перестановка сдвигов, XOR и дополнений.
Реализации [ править ]
Этот стандартный исходный код C , адаптированный из справочного кода, выпущенного в общественное достояние Дэвидом Уилером и Роджером Нидхэмом, шифрует и дешифрует с помощью XTEA:
#include <stdint.h>/ * берем 64 бита данных в v [0] и v [1] и 128 бит ключа [0] - ключ [3] * /недействительный шифрование ( unsigned int num_rounds , uint32_t v [ 2 ], uint32_t const key [ 4 ]) { unsigned int i ; uint32_t v0 = v [ 0 ], v1 = v [ 1 ], сумма = 0 , дельта = 0x9E3779B9 ; для ( я = 0 ; я < num_rounds ; я ++ ) { v0 + = ((( v1 << 4 ) ^ ( v1 >> 5 )) + v1 ) ^ ( сумма + ключ [ сумма & 3 ]); сумма + = дельта ; v1 + = ((( v0 << 4 ) ^ ( v0 >> 5 )) + v0 ) ^ ( сумма + ключ [( сумма >>11 ) и 3 ]); } v [ 0 ] = v0 ; v [ 1 ] = v1 ; }недействительный дешифратор ( 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 ; для ( i = 0 ; i < num_rounds ; я ++ ) { v1 - = ((( v0 << 4 ) ^ ( v0 >> 5 )) + v0 ) ^ ( сумма + ключ [( сумма >> 11 ) & 3 ]); сумма - = дельта ; v0 - = ((( v1 << 4 ) ^ ( v1 >> 5 )) + v1 ) ^ (сумма + ключ [ сумма & 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 (Ko et al., 2004). [2] [3]
В 2009 году Лу представил атаку с использованием связанного прямоугольника на 36 раундов XTEA, взломав больше раундов, чем любые ранее опубликованные результаты криптоанализа для XTEA. В статье представлены две атаки, одна без и с допущением слабого ключа, что соответствует 2 64,98 байтам данных и 2 126,44 операциям и 2 63,83 байтам данных и 2 104,33 операциям соответственно. [4] [5]
Блокировать ЧАЙ [ править ]
Вместе с XTEA был представлен блочный шифр переменной ширины, названный Block TEA , который использует функцию раунда XTEA, но Block TEA применяет его циклически ко всему сообщению в течение нескольких итераций. Поскольку он работает со всем сообщением, Block TEA обладает тем свойством, что ему не нужен режим работы . Атака на полный блок TEA была описана в (Saarinen, 1998), где также подробно описана слабость преемника Block TEA, XXTEA .
См. Также [ править ]
- RC4 - Потоковый шифр, который, как и XTEA, очень прост в реализации.
- XXTEA - преемник блока TEA.
- TEA - Блок-предшественник TEA.
Ссылки [ править ]
- ↑ Роджер М. Нидхэм, Дэвид Дж. Уиллер (октябрь 1997 г.). Расширения для чая (PDF) . Компьютерная лаборатория Кембриджского университета (Технический отчет).CS1 maint: использует параметр авторов ( ссылка )
- ^ Ко, Ёндай; Хонг, Сохи; Ли, Вонил; Ли, Санджин; Кан, Чжу-Сун (2004). Связанные ключевые дифференциальные атаки на 27 раундов XTEA и полного цикла ГОСТ (PDF) . Быстрое программное шифрование . Конспект лекций по информатике. 3017 . С. 299–316. DOI : 10.1007 / 978-3-540-25937-4_19 . ISBN 978-3-540-22171-5. Проверено 10 октября 2018 .
- ^ Хонг, Seokhie; Хонг, Деукджо; Ко, Ёндай; Чанг, Донхун; Ли, Вонил; Ли, Санджин (2004). Дифференциальный криптоанализ TEA и XTEA . Информационная безопасность и криптология - ICISC 2003 . Конспект лекций по информатике. 2971 . С. 402–417. DOI : 10.1007 / 978-3-540-24691-6_30 . ISBN 978-3-540-21376-5.
- ↑ Лу, Цзицян (2 июля 2008 г.). «Атака с использованием прямоугольников связанных ключей на 36 раундов блочного шифра XTEA» . Международный журнал информационной безопасности . 8 (1): 1–11. DOI : 10.1007 / s10207-008-0059-9 . ISSN 1615-5262 .
- ^ Лу, Цзицян (январь 2009 г.), «Атака с использованием связанных ключей прямоугольников на 36 раундов блочного шифра XTEA» (PDF) , Международный журнал информационной безопасности , 8 (1): 1–11, doi : 10.1007 / s10207-008 -0059-9 , ISSN 1615-5262 , S2CID 26794956
Дальнейшее чтение [ править ]
- Секар, Гаутам; Муха, Ники; Величков, Веселин; Пренил, Барт (2011). Kiayias, A. (ред.). Атаки на встречу посередине на XTEA с сокращенным числом раундов . Темы криптологии - CT-RSA 2011 . Конспект лекций по информатике. 6558 . С. 250–267. DOI : 10.1007 / 978-3-642-19074-2_17 . ISBN 978-3-642-19073-5. Проверено 10 октября 2018 .
- Луна, Дукджэ; Хван, Кёндок; Ли, Вонил; Ли, Санджин; Лим, Джонгин (2002). Невозможный дифференциальный криптоанализ сокращенного раунда XTEA и TEA . Быстрое программное шифрование . Конспект лекций по информатике. 2365 . С. 49–60. DOI : 10.1007 / 3-540-45661-9_4 . ISBN 978-3-540-44009-3. Проверено 10 октября 2018 .
- Андем, Викрам Редди (2003). Криптоанализ крошечного алгоритма шифрования (PDF) (магистерская диссертация). Университет Алабамы, Таскалуса . Проверено 10 октября 2018 .
- Сааринен, Маркку-Юхани (20 августа 1998 г.). «Криптоанализ блочного чая» . Проверено 10 октября 2018 . Цитировать журнал требует
|journal=
( помощь )
Внешние ссылки [ править ]
- Диаграмма потока данных
- Веб-страница, пропагандирующая TEA и XTEA и предлагающая различные реализации
- Тестовые векторы для TEA и XTEA
- Криптоанализ крошечного алгоритма шифрования
- AC реализация XTEA
- Реализация XTEA на PHP
- Реализация XTEA на Pascal / Delphi
- Реализация XTEA на Java (32 раунда)
- Реализация XTEA на JavaScript (32 раунда)
- Реализация XTEA на Python
- Реализация XTEA на языке сценариев Linden (LSL) для сценариев Second Life
- Реализация XTEA на Verilog
- Smalltalk реализация XTEA
- Реализация XTEA в PostgreSQL