Interested Article - Алгоритм SPEED
- 2021-09-13
- 2
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.
Дальнейший процесс расширения можно представить в виде нескольких шагов :
- На переменные 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 )
- Полученный результат поворачивает вправо на 5 бит.
- Далее T = T + S2 + kb[j] (mod 2 16 ), где i = j ( mod ).
- Происходит сдвиг переменных S 0 , S 1 , S 2 и новое значение T становится значением переменной S 0 : kb [ i ]= T S 2 = S 1 S 1 = S 0 S 0 = T
- Этот шаг переводит last двухбайтовые данные kb 0 , kb 1 , …, kb last-1 в R цикловых ключей, каждый из которых состоит из бит. Перевод поддерживает порядок двухбайтовых данных.
Полезные свойства
Побитовая нелинейная логическая операция используется в каждом раунде. Чтобы усилить шифр против дифференциальной атаки на выходе операции применяется циклический сдвиг, зависящий от данных. Использование максимально нелинейной булевой функции в побитовой булевой операции помогло бы предотвратить линейную атаку .
Дешифрование
В качестве шифра с закрытым ключом SPEED использует один и тот же ключ как для шифрования, так и для дешифрования. Чтобы расшифровать зашифрованный текст C с помощью ключа K , происходит весь процесс работы алгоритма в обратном порядке, за исключением планирования ключей, который остается неизменным. Другими словами внутренние операции каждого P i , где i = 1, 2, 3, 4, будут проводиться в обратном порядке .
Преимущества и недостатки
- Простой и компактный в реализации: при реализации алгоритма на языке программирования C его объём занимает всего около 3 килобайт.
- Алгоритм подвержен различным криптоатакам: дифференциальный криптоанализ и атака на связанные ключи.
Повышения криптоустойчивости можно добиться, увеличивая количество раундов, но это негативно влияет на производительность. Быстродействие алгоритма значительно падает, и становится в несколько раз меньше быстродействия аналогичного криптоустойчивого алгоритма RC5 .
Примечания
- ↑ First International Conference, FC '97, Anguilla, British West Indies, February 24-28, 1997. Proceedings p.71-89
- SEBERRY,J., ZHANG,X. M., AND ZHENG,Y. Nonlinearity and propagation characteristics of balanced boolean functions. Information and Computation 119, 1 (1995)
- 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).
- 2021-09-13
- 2