Interested Article - Алгоритм SPEED

SPEED ( Secure Package for Encrypting Electronic Data ) — это алгоритм блочного симметричного шифрования, разработанный австралийским криптографом , работавшим в университете Монаша . Основные параметры: раунд , длина блока и длина ключа являются переменными, в этом алгоритм похож на более известный аналог RC5 .

Описание

Шифрование по алгоритму SPEED состоит из двух этапов. Процедура расширения ключа и непосредственно шифрование. Для дешифрования выполняется сначала процедура расширения ключа, а затем операции, обратные процедуре шифрования.

Параметры

Так как алгоритм SPEED имеет переменные параметры, то для спецификации алгоритма с конкретными параметрами принято указывать (W,L,R) , где:

W — это размер блока шифруемых данных, который может принимать значения: 64, 128 и 256 бит соответственно.

L — это размер ключа, который принимает значение L диапазоне от 48 до 256 бит, которое кратно 16.

R — это количество раундов преобразований. Количество преобразований при этом должно быть не менее 32 и кратно 4.

Шифрование

SPEED , применяя ключ К длиной L бит, преобразует открытый текст M из W бит в зашифрованный С той же длины.

Криптографический ключ K , представляющий собой строку из L бит, сначала расширяется с помощью функции планирования ключей на четыре ключа K1 , K2 , K3 и К4 . Каждый из этих ключей состоит из R цикловых ключей, где указано количество раундов в каждом проходе.

Открытый текст M представляется как 8 строк, бит каждый. Эти 8 строк обрабатываются в фазах P1 , P2 , P3 и P4 последовательно. Каждая фаза называется проходом и включает в себя ключи К1 , К2 , К3 , К4 соответственно . На выходе мы получим зашифрованный текст С из открытого М .

Все 4 фазы внутреннего прохода P1 , P2 , P3 , P4 работают одинаково, хотя в каждом проходе используется отдельный подключ К1 , К2 , К3 , К4 , а также разные нелинейные функции для побитовых логических операций. Ниже на рисунке представлены эти функции :

Фаза 1(P 1 ): F 1 (X 6 ,X 5 ,X 4 ,X 3 ,X 2 ,X 1 ,X 0 ) = X 6 X 3 X 5 X 1 X 4 X 2 X 1 X 0 X 0

Фаза 2(P 2 ): F 2 (X 6 ,X 5 ,X 4 ,X 3 ,X 2 ,X 1 ,X 0 ) = X 6 X 4 X 0 X 4 X 3 X 0 X 5 X 2 X 4 X 3 X 4 X 1 X 3 X 0 X 1

Фаза 3(P 3 ): F 3 (X 6 ,X 5 ,X 4 ,X 3 ,X 2 ,X 1 ,X 0 ) = X 5 X 4 X 0 X 6 X 4 X 5 X 2 X 3 X 0 X 1 X 0 X 3

Фаза 4(P 4 ): F 4 (X 6 ,X 5 ,X 4 ,X 3 ,X 2 ,X 1 ,X 0 ) = X 6 X 4 X 2 X 0 X 6 X 5 X 4 X 3 X 3 X 2 X 1 X 0 X 2

Расширение ключа

Ключ шифрования/дешифрования K для SPEED представляет собой двоичную строку из L бит, где L является целым числом от 48 до 256 и делится на 16. Функция планирования ключей состоит в том, чтобы «расширять» ключ K на R фрагментов циклового ключа, необходимых для R раундов обработки.

Порядок расширения ключа

Основной блок данных в планировании ключей — это двухбайтовые данные. Таким образом, байтный ключ сначала переводится во внутренние двухбайтовые блоки данных kb 0 ,kb 1 , , kb -1 .

Также в процессе расширения ключа принимают переменные S 0 , S 1 , S 2 . Их размер составляет также 2 байта. Их начальное значение равняется константам Q 0 , Q 1 , Q 2 соответственно, значение которых прямо зависит от размера ключа шифрования. Значения Q 0 , Q 1 , Q 2 получают из констант дробной части числа . Первые три константы из дробной части используются для случая L = 48, следующие три для L = 64 и так далее. Таким образом, в общей сложности 42 константы требуются для 14 различных длин ключей. Эти константы показаны ниже в шестнадцатеричной форме.

DF7B D629 E9DB 362F 5DO0 F20F C3D1
IFD2 589B 4312 91EB 718E BF2A IETD
B257 77A6 1654 6B2A 0D98 A9D3 668F
19BE F855 6D98 022D E4E2 D017 EA2F
7572 C3B5 1086 480C 3AA6 9CAO 98F7
DOE4 253C C901 55F3 9BF4 F659 D76C

Алгоритм планирования ключей расширяет наш массив до kb last-1 , где last = при W = 64, last = R при W = 128, last = 2R при W = 256.

Дальнейший процесс расширения можно представить в виде нескольких шагов :

  1. На переменные S 0 , S 1 , S 2 действует функция G , которая представляется собой побитовую операцию G ( S 2 , S 1 , S 0 ) = S 2 , S 1 S 1 , S 0 S 0 , S 2 (Здесь S i S j побитовое И , а S i S j битовый XOR ). Мы получаем T = G ( S 0 , S 1 , S 2 )
  2. Полученный результат поворачивает вправо на 5 бит.
  3. Далее T = T + S2 + kb[j] (mod 2 16 ), где i = j ( mod ).
  4. Происходит сдвиг переменных S 0 , S 1 , S 2 и новое значение T становится значением переменной S 0 : kb [ i ]= T S 2 = S 1 S 1 = S 0 S 0 = T
  5. Этот шаг переводит last двухбайтовые данные kb 0 , kb 1 , …, kb last-1 в R цикловых ключей, каждый из которых состоит из бит. Перевод поддерживает порядок двухбайтовых данных.

Полезные свойства

Побитовая нелинейная логическая операция используется в каждом раунде. Чтобы усилить шифр против дифференциальной атаки на выходе операции применяется циклический сдвиг, зависящий от данных. Использование максимально нелинейной булевой функции в побитовой булевой операции помогло бы предотвратить линейную атаку .

Дешифрование

В качестве шифра с закрытым ключом SPEED использует один и тот же ключ как для шифрования, так и для дешифрования. Чтобы расшифровать зашифрованный текст C с помощью ключа K , происходит весь процесс работы алгоритма в обратном порядке, за исключением планирования ключей, который остается неизменным. Другими словами внутренние операции каждого P i , где i = 1, 2, 3, 4, будут проводиться в обратном порядке .

Преимущества и недостатки

  • Простой и компактный в реализации: при реализации алгоритма на языке программирования C его объём занимает всего около 3 килобайт.
  • Алгоритм подвержен различным криптоатакам: дифференциальный криптоанализ и атака на связанные ключи.

Повышения криптоустойчивости можно добиться, увеличивая количество раундов, но это негативно влияет на производительность. Быстродействие алгоритма значительно падает, и становится в несколько раз меньше быстродействия аналогичного криптоустойчивого алгоритма RC5 .

Примечания

  1. First International Conference, FC '97, Anguilla, British West Indies, February 24-28, 1997. Proceedings p.71-89
  2. SEBERRY,J., ZHANG,X. M., AND ZHENG,Y. Nonlinearity and propagation characteristics of balanced boolean functions. Information and Computation 119, 1 (1995)
  3. Cryptanalysis of SPEED by Chris Hall , John Kelsey , Vincent Rijmen , Bruce Schneier , David Wagner

Ссылки

  • SEBERRY,J., ZHANG,X. M., AND ZHENG,Y. Nonlinearity and propagation characteristics of balanced boolean functions. Information and Computation 119, 1 (1995).
Источник —

Same as Алгоритм SPEED