Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В криптографии , 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.

Ссылки [ править ]

  1. Роджер М. Нидхэм, Дэвид Дж. Уиллер (октябрь 1997 г.). Расширения для чая (PDF) . Компьютерная лаборатория Кембриджского университета (Технический отчет).CS1 maint: использует параметр авторов ( ссылка )
  2. ^ Ко, Ёндай; Хонг, Сохи; Ли, Вонил; Ли, Санджин; Кан, Чжу-Сун (2004). Связанные ключевые дифференциальные атаки на 27 раундов XTEA и полного цикла ГОСТ (PDF) . Быстрое программное шифрование . Конспект лекций по информатике. 3017 . С. 299–316. DOI : 10.1007 / 978-3-540-25937-4_19 . ISBN  978-3-540-22171-5. Проверено 10 октября 2018 .
  3. ^ Хонг, Seokhie; Хонг, Деукджо; Ко, Ёндай; Чанг, Донхун; Ли, Вонил; Ли, Санджин (2004). Дифференциальный криптоанализ TEA и XTEA . Информационная безопасность и криптология - ICISC 2003 . Конспект лекций по информатике. 2971 . С. 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 . 
  5. ^ Лу, Цзицян (январь 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