stringtranslate.com

XTEA

В криптографии XTEA ( eXtended 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 бит 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 ; }                                                                

Изменения по сравнению с исходным кодом незначительны:

Рекомендуемое значение параметра "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 обладает тем свойством, что ему не нужен режим работы . Атака на полный Block TEA была описана Саариненом [5] , который также подробно описывает слабость в преемнике Block TEA, XXTEA .

Смотрите также

Ссылки

  1. ^ Роджер М. Нидхэм; Дэвид Дж. Уилер (октябрь 1997 г.). Расширения чая (PDF) . Компьютерная лаборатория Кембриджского университета (технический отчет).
  2. ^ Ко, Ёндай; Хонг, Сокхи; Ли, Вонил; Ли, Санджин; Кан, Джу-Сун (2004). «Связанные ключевые дифференциальные атаки на 27 раундов XTEA и полнораундовый ГОСТ» (PDF) . В Рой, Б.; Мейер, В. (ред.). Быстрое программное шифрование . FSE 2004. Конспект лекций по информатике. Том 3017. Берлин, Гейдельберг: Springer. стр. 299–316. doi : 10.1007/978-3-540-25937-4_19 . ISBN 978-3-540-22171-5. Получено 10 октября 2018 г. .
  3. ^ Hong, Seokhie; Hong, Deukjo; Ko, Youngdai; Chang, Donghoon; Lee, Wonil; Lee, Sangjin (2004). "Differential Cryptanalysis of TEA and XTEA". В Lim, JI.; Lee, DH. (ред.). Information Security and Cryptology . ICISC 2003. Lecture Notes in Computer Science. Vol. 2971. Berlin, Heidelberg: Springer. pp. 402–417. doi :10.1007/978-3-540-24691-6_30. ISBN 978-3-540-21376-5.
  4. ^ Лу, Цзицян (2 июля 2008 г.). «Атака прямоугольника с родственным ключом на 36 раундов блочного шифра XTEA». Международный журнал информационной безопасности . 8 (1): 1–11. doi :10.1007/s10207-008-0059-9. ISSN  1615-5262. S2CID  26794956.
  5. Сааринен, Маркку-Юхани (20 октября 1998 г.). «Криптоанализ блочного чая». Исследовательские ворота . Проверено 10 октября 2018 г.

Дальнейшее чтение

Внешние ссылки