УДК 519.1 DOI 10.17223/2226308X/12/32
ОБ АЛГОРИТМИЧЕСКОЙ РЕАЛИЗАЦИИ S-БОКСОВ 16x16 СО СТРУКТУРАМИ ARX И «БАБОЧКА»
С. М. Комиссаров
Предложены способы алгоритмической реализации новых s-боксов размера 16x16 бит, вычислительная сложность и криптографические характеристики которых улучшены по сравнению со способами, исследованными ранее. Первый способ реализует s-боксы на основе ARX (Лёё-Ко1а1в-Хог)-структуры; второй — на основе структуры «Бабочка» с использованием нелинейных подстановочных s-боксов размера 8x8 бит. Максимальная разностная характеристика (МРХ) предложенных s-боксов с ARX-структурой равна 18/216, со структурой «Бабочка» —10/216. Максимальная линейная характеристика (МЛХ) s-боксов с ARX-структурой равна 764/215, со структурой «Бабочка» — 512/215. Минимальная степень нелинейности среди всех нетривиальных линейных комбинаций координатных функций предложенных s-боксов равна 15. Установлено, что использование предложенных s-боксов размера 16x16 бит в раундовых подстановках алгоритмов AES и «Кузнечик» позволяет улучшить их некоторые криптографические свойства. Для усечённых алгоритмов AES и «Кузнечик», реализующих несколько раундов шифрования, существенно снижены верхние оценки МРХ и МЛХ по сравнению с версиями алгоритмов, использующих штатные s-боксы.
Ключевые слова: s-бокс 16x16, алгоритмическая реализация, ARX, «Бабочка», максимальная разностная характеристика, максимальная линейная характеристика, степень нелинейности.
Цель работы — оценить важнейшие характеристики некоторых способов реализации s-боксов (узлов замены) размера 16 x 16 бит и перспективы их использования в итеративных алгоритмах блочного шифрования.
Нелинейные отображения векторного пространства Vn (s-боксы размера n x n бит) в симметричных алгоритмах блочного шифрования обычно реализуются в виде таблиц, содержащих множество всех образов. Для хранения одного такого массива требуется n2 бит памяти. Это вынуждает в алгоритмах блочного шифрования использовать s-боксы малых размеров (8x8 бит в алгоритме «Кузнечик», 4x4 в алгоритме «Магма», 6x4 в DES, 8x8 в AES). В данной работе предложены способы алгоритмической реализации новых s-боксов большого размера (16x16 бит). При алгоритмическом вычислении значений s-боксов больших затрат памяти не требуется.
Обозначим b : Z2n ^ Vn — биективное отображение числа X G Z2 n в его двоичное представление, b(X) = X = (ж0,... , жп-1); (X1 , X2) — конкатенация двух векторов; X1,X2 G Z2n —полублоки входного блока X s-бокса, X = (X1,X2) G Z2i6 ; b(X1) = X1 = (жо,...,жт), b(X2) = X2 = (Ж8,...,Ж15), b(X) = (жо,...,Ж15); Y ^ t (Y ^^ t) —циклический сдвиг координат вектора Y на t бит вправо (влево); ® — умножение в поле F(28) = F2[x]/(ж8 + ж4 + ж3 + ж + 1); а254 = а-1 —обратный к ненулевому элементу а поля F(28); S : Vm ^ Vm — функция s-бокса размера m x m бит.
Для ж G Vm и ж' = ж ф a G Vm (пар текстов с фиксированной разностью a G Vm ) и s-бокса S : Vm ^ Vm определим разностную характеристику (РХ) DPS (a,b) = |{ж G Vm : S (ж) ф S (ж' ) = b}|/2m — вероятность появления случайной величины— разности b G Vm выходных текстов S^) и S (ж'). Максимальная разностная характеристика (МРХ) s-бокса определена как ps = max DPS(a, b). Для векто-
a,beVr!i
ра a = (a0,..., am-i) G Vm определим линейную булеву функцию la(x0,... , xm-i) =
m— 1
= ф ajXj. Для некоторых a,b G Vm и s-бокса S : Vm ^ Vm с компонентными функци-
i=0
ями (S0,... , Sm— 1) определим линейную характеристику (ЛХ) LPS(a,b) = 21—m|{x G G Vm : la(x) = lb(S(x))}| — 1. Максимальную линейную характеристику (МЛХ) s-бокса S определим как ös = max LPS(a,b). Пусть deg f — степень нелинейности функции f. Минимальная степень нелинейности среди всевозможных линейных комбинаций
координатных функций определена в [1] как As = min {deg(la(S(x)))}. Производи-
a,beVm
тельность s-боксов измеряется в Мбайт/с, ёмкость памяти — в байтах.
Алгоритмы AES и «Кузнечик» при использовании в них s-боксов размера 16x16 бит вместо стандартных обозначим AES16 и К16.
1. Описание метода алгоритмической реализации s-бокса 16x16
с ARX-структурой
s-Боксы на основе ARX-структуры используют операции сложения, циклического сдвига и побитового XOR-сложения векторов. Эти операции не требуют существенных затрат памяти на хранение предварительно вычисленных таблиц [2, 3], характеризуются низкой ресурсоёмкостью в программных и аппаратных реализациях и выполняются менее чем за половину такта процессора.
Раундовые подстановки gi : V16 ^ V16, i = 1, 2, s-боксов 16x16 с ARX-структурой, предлагаемые в данной работе, в общем виде представимы в виде композиции двух преобразований fi1, fi2 : V16 ^ V16:
9i(X) = fi2 ◦ f«(X). (1)
Построены перспективные схемы с ARX-структурой с точки зрения сочетания положительных криптографических характеристик с высокой производительностью программной реализации.
Первый вариант раундового преобразования (1) s-бокса обозначим g1, для него
f11(X) = (b(((X1 ^ 2)+X2) mod 28),^2), f12(X) = (Xbb(((X2 «< 1)+C) mod 28)®^1).
Второй вариант раундового преобразования (1) s-бокса обозначим g2, для него
f21(X) = (b(((X1 ^ 1)+X2) mod 28),X2), f22(X) = (^1,b(((X2 ^ 2)+C) mod 28)®X1).
Здесь C G Z28 —константа, C = 185 для g1 и C = 100 для g2. Обозначим = g6, = 96 — предложенные s-боксы с ARX-структурой.
Экспериментально установлено, что для предложенных s-боксов = p^2 = 18/216, ö^ = 762/215, ö^ = 764/215, A^ = A^ = 15.
В табл. 1 приведены частоты значений DP в таблицах разностей и Видно, что частота встречаемости МРХ невелика, поэтому при реализации разностной атаки сложно подобрать несколько s-боксов с МРХ более чем в одном рауде шифрования.
Таблица 1
Частота встречаемости значений DP в таблицах разностей ¥1 и ¥2
2iö • DP 0 2 4 6 8 10 12 14 16 18
2,6 • 109 1,3 • 109 3,3 • 108 5,4 • 107 6,8 • 106 678529 56603 4062 280 14
¥2 2,6 • 109 1,3 • 109 3,3 • 108 5,4 • 107 6,8 • 106 677386 56885 4058 256 7
2. Об алгоритмической реализации 8-бокса 16x16 со структурой «Бабочка»
В [4, 5] предложены способы построения я-боксов 8x8 со структурой «Бабочка» с использованием умножения в ОЕ(24) и подстановок меньших размеров (4x4 бит), реализующих мономы в ОЕ(24). В данной работе предложены два типа я-боксов 16х 16 со структурой «Бабочка» с использованием умножения в ОЕ(28) и подстановок меньших размеров (8x8 бит), реализующих мономы в ОЕ(28). Обозначим фг : У16 ^ У16, г = 1, 2:
фг(х) = ^(ХьХО = (Ъ(гг1(х1,х2)),ь(гг2(х2,гг1(х1,х2)))) = (X ,х2).
За основу первого типа я-боксов 16x16 взята структура из [4]. Обозначим его ф^ для него
^и (X1, х2) = х1
^12 (х2, х1) = х2
М^), х2 = 0, (х1 0 х2)254, х2 = 0,
'^ВД, х1 = 0, х1 0 (х2)254, х1 = 0,
где ^11(х1,х2),^12(х2,х1) : Е(216) ^ Е(28) —биективные функции по х1 и х2 соответственно; ^1,^2 : F(28) ^ Е(28) —нелинейные подстановки, реализующие мо-
где
х
номы в F2[x]/(x8 + х4 + х3 + х + 1). При Л,2(х) € {х254,х253} и ^1(х) к € {28, 37, 56, 73, 74,131,146,148,164,191,193, 239, 247, 251, 253, 254}, отображение ф1 биективно, рф1 = 10/216, Аф = 15 и 5ф1 = 512/215.
За основу второго типа я-боксов 16x16 взята структура из [5]. Обозначим его ф2, для него
^21 (х1, х2) = х1
^22 (х2, х1) = х2
(х1)254, х2 = 0,
х1 0 й1(х2), х2 = 0,
№)254, х1 = 0,
х2 0 ^2(х1), х1 = 0,
где ^21(х1,х2),^22(х2,х1) : F(2 ) ^ F(28) —биективные функции по х1 и х2 соответственно. При Л,2(х) =
х254 и
^1(х) = х2 отображение ф2 биективно, рф2 = 10/216, Аф2 = 15 и 6ф2 = 512/215. При Л,2(х) € {х254,х253} и ^1(х) € {х32,х16} отображение ф2 биективно, рф2 = 10/216, Аф2 = 15 и 6ф2 = 544/215.
При алгоритмической реализации ф1 и ф2 мономы Л^, Л,2 и х-1 реализуются в виде таблиц, каждая из которых занимает 8 • 28 бит памяти. Требуются также две предварительно рассчитанные таблицы подстановок 8x8 бит для быстрой реализации произведения в F2[x]/(x8 + х4 + х3 + х + 1). Обозначим ф — я-бокс 16x16 со структурой «Бабочка», реализующий ф1 при = Л,2 = х254 = х-1. При алгоритмической реализации он требует одну предварительно рассчитанную таблицу, задающую моном х254, и имеет следующие характеристики: рф = 10/216, Аф = 15 и 5ф = 512/215. В табл.2 приведено распределение разностных характеристик в его таблице разностей.
В табл. 3 приведено сравнение МРХ, МЛХ и минимальной степени нелинейности среди всевозможных линейных комбинаций компонентных функций известных и предложенных я-боксов.
Таблица 2
Частота встречаемости значений DP в таблице разностей ф
216 • DP 0 2 4 6 8 10
Ф 2507045091 1602586456 12279975 171659076 1328564 2598
Таблица 3
Сравнение ps, ös и As для s-боксов
s-Бокс AES Skipjack «Кузнечик» ¥>1 ¥>2 Ф x 1, таблица [6]
Размер 8 x 8 8 x 8 8 x 8 16 x 16 16 x 16 16 x 16 16 x 16
Ps 4/28 12/28 8/28 18/216 18/216 10/216 4/216
Ss 12/27 28/27 28/27 762/215 764/215 512/215 256/215
As 7 6 7 15 15 15 15
3. Верхние оценки разностной и линейной характеристик для алгоритмов
AES16 и K16
При реализации разностной атаки s-бокс называется активным для раунда итеративного алгоритма блочного шифрования, если разность поступающих на этом раунде ему на вход текстов не равна нулю.
Пусть L : Vm ^ Vm — линейное преобразование алгоритма блочного шифрования на основе SP-сети с размером блока m-n бит. Обозначим ßi, i = 1,... , 4, число активных s-боксов на i-м раунде.
Степень ветвления (branch number) линейного преобразования L (обозначим ß^ или в2 в случае, когда L является композицией всех используемых в алгоритме линейных преобразований) есть
e^ = min {w(x) + w(L(x))},
xevn
где w(x) = w(xi, x2,... , xn) = |{xi = 0 : xi G Vm, i = 1,... , n}|.
Степень ветвления алгоритма блочного шифрования на основе SP-сети можно определить как минимальное возможное число активных s-боксов, участвующих в первых двух раундах шифрования. Известно [7], что для AES в2 = 5, в4 = (в2)2 = 25, для алгоритма «Кузнечик» в2 = 17 [8]. Для AES16 в2 = 5, в4 = 15; для К16 в2 = 9.
Обозначим ak , bk G Vn разности пар входных и выходных текстов размера mn бит k-го раунда алгоритма блочного шифрования на основе SP-сети с s-боксами S : Vm ^ Vm, i = 1,... ,n; DP2(a1,b2) (DP4(a1,b4)) — РХ двух (четырёх) раундов алгоритма шифрования на основе SP-сети; LP2(a1, b2) (LP4(a1, b4)) —ЛХ двух (четырёх) раундов алгоритма шифрования на основе SP-сети.
Теорема 1 [9]. Для любой ненулевой разности a1 G Vn-n пары входных текстов РХ двух раундов алгоритма шифрования на основе SP-сети верно неравенство
!2m-1 2m-1 Л
max max V {DPSi (u, j )}ß2, max max V {DPSi (j,u)}ß2 >
1<i<n 1<U<2™-1 j=1 1 V )Jn 1^n 1<U<2™-1 ^ 1 U' !i (
В табл. 4 и 5 приведено сравнение посчитанных по лемме 1 [9] и теореме 1 верхних оценок РХ двух и четырёх раундов AES16 и К16 с оценками версий алгоритмов, использующих штатные s-боксы.
Приведём другие оценки РХ/ЛХ двух и четырёх раундов AES16 и К16, основанные на МРХ/МЛХ используемого s-бокса, аналогичные оценкам AES в [7]. Обозна-
Таблица 4
Верхние оценки РХ для ЛЕБ и ЛЕ816 по теоремам [9]
Алгоритм ЛЕБ [9] ЛЕБ16 с ЛЕБ16 с ЛЕБ16 с ф
РР2(а,6) < 1,234 ■ 2-28 1,177 ■ 2-56 1,217 ■ 2-56 1,362 ■ 2-56
РР4(а,6) < 1,144 ■ 2-111 1,240 ■ 2-209 0,950 ■ 2-208 0,956 ■ 2-208
Таблица 5 Оценки РХ для алгоритмов «Кузнечик» и К16 по теоремам [9]
Алгоритм «Кузнечик» [9] К16 с К16 с К16 с ф
РР2(а,6) < 0,909 ■ 2-106 0,932 ■ 2-112 1,395 ■ 2-113 1,015 ■ 2-12и
чим РР?(а,6),РР4;(а, 6) (РР?(а,6),РР4;(а, 6)) РХ (ЛХ) двух и четырёх раундов алгоритма шифрования на основе БР-сети, использующего единственный я-бокс Б; ^ — любой из предложенных я-боксов с АИХ-структурой (^ или ^2). Для любой ненулевой разности а € У^,п имеет место РР;(а, 6) ^ р?2, РР;(а, 6) ^ $в2, РР4;(а, 6) ^ р?4, РР4;(а, 6) ^ ^в4 [7]. Для АЕБ16:
РР2Т(а, 6) ^ рТ2 = (18 ■ 2-16)5 « 0,9 ■ 2-59; РР4Т(а, 6) ^ рТ4 = (18 ■ 2-16)15 « 1,46 ■ 2-178; ЯР^(а, 6) < 1,52 ■ 2-64; РР/(а, 6) < 1,78 ■ 2-191; РР2Т1 (а, 6) ^ ^ = (762 ■ 2-15)5 « 0,913 ■ 2-27; РР4Т1 (а, 6) ^ = (762 ■ 2-15)15 « 1,521 ■ 2-82; РР2Т2 (а, 6) < 0,924 ■ 2-27; РР4Т2 (а, 6) < 1,582 ■ 2-82; РР^(а, 6) ^ 2-30; РР/(а, 6) ^ 2-90. Для К16:
РР2Т(а,6) ^ рТ2 = (18 ■ 2-16)9 « 1,443 ■ 2-107; РР2Т1 (а, 6) < 1,119 ■ 2-49; РР2Т2 (а, 6) < 1,146 ■ 2-49; РР^(а, 6) < 0,931 ■ 2-114; РР^(а, 6) ^ 2-54.
В табл. 6 и 7 приведено сравнение полученных оценок с оценками версий алгоритмов, использующих штатные я-боксы, в табл. 8 и 9 — сравнение производительности и затрат памяти я-боксов.
Таблица 6
Оценки РХ и ЛХ для ЛЕБ и ЛЕБ16 на основе МРХ и МЛХ Б-бокса
Алгоритм ЛЕБ [7] ЛЕБ16 с ЛЕБ16 с ^2 ЛЕБ16 с ф
РР2М) < 2-зи 0,9 ■ 2-59 0,9 ■ 2-59 1,52 ■ 2-64
РР4(а,6) < 2-150 1,46 ■ 2-178 1,46 ■ 2-178 1,78 ■ 2-191
ЬР2(а, 6) < 2-15 0,913 ■ 2-27 0,924 ■ 2-27 2-зи
ЬР4(а, 6) < 2-75 1,521 ■ 2-82 1,582 ■ 2-82 2-уи
Таблица 7
Оценки РХ и ЛХ для алгоритмов «Кузнечик» и К16 на основе МРХ и МЛХ Б-бокса
Алгоритм «Кузнечик» К16 с К16 с К16 с ф
РР2(а,6) < 2-85 1,443 ■ 2-107 1,443 ■ 2-107 0,931 ■ 2-114
ЬР2(а,6) < 0,826 ■ 2-27 1,119 ■ 2-49 1,146 ■ 2-49 2-54
Таблица 8
Сравнение производительности s-боксов (Intel Core i7-7700K, 4,2 ГГц)
s-Бокс 16x16 на основе МАГ [3] 16x16, yi 16x16, 16x16, ф 8x8, «Кузнечик»
Мбайт/с 136,239 444,604 383,773 200,141 449,846
Таблица 9
Сравнение затрат памяти s-боксов
s-Бокс 16x16, yi, У2 16x16, ф 16x16, табличный s-бокс [6] 8x8, «Кузнечик», AES
Память код, x86 код, x64 768 байт 128 кбайт 256 байт
74 байта 102 байта
Выводы
Предложены новые конструкции s-боксов размера 16x16 бит: s-боксы на основе ARX-структуры, имеющие высокопроизводительную алгоритмическую реализацию, и s-боксы со структурой «Бабочка», использующие нелинейные подстановки меньшего размера — 8x8 бит. Предложенные s-боксы обладают рядом положительных криптографических свойств: высокой степенью нелинейности, низкой МРХ и МЛХ. МРХ предложенных s-боксов «Бабочка» равна 10/216. Это наименьшее значение МРХ среди известных s-боксов 16x16, не реализующих поиск обратного элемента в конечном поле. В рамках вычислительного эксперимента производительность предложенных s-боксов с ARX-структурой не уступает производительности таблично реализуемого s-бокса 8x8. Предложенные s-боксы требуют небольшое количество памяти (75 байт на хранение машинных инструкций — ARX, 768 байт — «Бабочка»), в то время как табличная реализация s-бокса 16 x 16 требует 128 кбайт. Отмечено положительное влияние предложенных s-боксов на стойкость алгоритмов AES и «Кузнечик» к дифференциальному и линейному методам криптоанализа при их встраивании и существенное уменьшение верхних оценок максимальной разностной и линейной характеристик AES16 и К16. Данные результаты позволяют сделать предположение о возможности уменьшения количества раундов в рассмотренных стандартах блочного шифрования при встраивании в них s-боксов размера 16x16 бит с сохранением стойкости. Это позволит увеличить скорость шифрования с использованием рассмотренных алгоритмов.
Поиск новых конструкций нелинейных подстановок степени 216 является перспективным направлением исследований.
ЛИТЕРАТУРА
1. Menyachikhin A. Spectral-linear and spectral-difference methods for generating cryptographically strong S-boxes // CTCrypt Preproc. Yaroslavl, 2016. P. 232-252. https://mjos.fi/doc/rus/CTCrypt2016Preproceedings.pdf
2. Фомичев В. М., Лолич Д. М., Юзбашев А. В. Алгоритмическая реализация s-боксов на основе модифицированных аддитивных генераторов // Прикладная дискретная математика. Приложение. 2017. №10. С. 102-104.
3. Бобров В. М, Комиссаров С. М. О свойствах двух классов s-боксов размера 16x16 // Прикладная дискретная математика. Приложение. 2018. №11. С. 57-61.
4. Jimenez R. A. Generation of 8-bit s-boxes Having Almost Optimal Cryptographic Properties Using Smaller 4-bit s-boxes and Finite Field Multiplication. Havana: Havana University, Institute of Cryptography, 2017. http://www.cs.haifa.ac.il/~orrd/LC17/paper60.pdf
5. Fomin D. B. New Classes of 8-bit Permutations Based on a Butterfly Structure. CTCrypt. Suzdal, 2018. https://ctcrypt.ru/files/files/2018/09_Fomin.pdf
6. Wood C. A. Large Substitution Boxes with Efficient Combinational Implementations. Thesis. Rochester Institute of Technology, 2013.
7. Daemen J. and Rijmen V. The Design of Rijndael, AES — the Advanced Encryption Standard. Springer Verlag, 2002.
8. AlTawy R. and Youssef A. M. A meet in the middle attack on reduced round Kuznyechik // IEICE Trans. 2015. V. 98-A. P. 2194-2198.
9. Park S., Sung S.H., Lee S., and Lim J. Improving the upper bound on the maximum differential and the maximum linear hull probability for SPN structures and AES // LNCS. 2003. V. 2887. P. 247-260.
УДК 519.17 DOI 10.17223/2226308X/12/33
ОЦЕНКА ХАРАКТЕРИСТИК ПЕРЕМЕШИВАНИЯ ХЭШ-ФУНКЦИЙ СЕМЕЙСТВА MD
А. М. Коренева
Матрично-графовый подход (МГП), нашедший успешное применение к оценке свойств итеративных блочных шифров и генераторов ключевого расписания, впервые представлен как инструмент оценивания перемешивающих свойств алгоритмов хэширования. Особенность применения МГП к хэш-функциям связана с неочевидностью построения перемешивающих матриц, характеризующих зависимость битов сгенерированного хэш-значения от битов исходного сообщения. Для хэш-функций MD4, MD5, SHA-1, SHA-256 построены перемешивающие матрицы порядка 512 + n, где n — длина блока, с которым оперирует односторонняя функция сжатия алгоритма хэширования при обработке 512-битового блока входного сообщения (n = 128 для MD4 и MD5, n = 160 для SHA-1 и n = 256 для SHA-256). К исследованным характеристикам перемешивания относятся локальные экспоненты перемешивающих матриц, то есть для каждой матрицы M определено наименьшее натуральное число y, такое, что при любом натуральном т ^ Y положительны все столбцы матрицы MT с номерами 513, 514,..., 512 + n. Значения локальных экспонентов являются нижними оценками числа итераций, после которых каждый бит сгенерированного хэш-значения может существенно зависеть от всех битов исходного сообщения. Полученные значения (y = 21 для MD4, MD5, SHA-256 и y = 23 для SHA-1) косвенно свидетельствуют о схожих криптографических качествах рассмотренных алгоритмов хэширования, несмотря на варианты их усиления за счёт увеличения длины блока и усложнения функции сжатия.
Ключевые слова: алгоритмы хэширования, структура Меркла — Дамгарда, матрично-графовый подход, перемешивающие свойства.
Введение
В основе принципа перемешивания, важного для многих криптографических алгоритмов, лежит существенная нелинейная зависимость выходных данных от элементов входа. Для оценки множества существенных переменных композиции преобразований векторного пространства применяется матрично-графовый подход, теоретические основы которого изложены в [1]. Глубина итерации преобразования, при которой каждый бит выходного значения может зависеть от всех битов входа, оценивается снизу значением экспонента примитивного перемешивающего орграфа. В течение последних лет МГП нашёл успешное применение для исследования свойств итеративных блочных шифров и генераторов ключевого расписания [2-4], для которых перемешиваю-