Способы разложения рекурсивных матриц и их применение к реализации линейных преобразований
С. А. Давыдов, В. А. Шишкин
Аннотация—В работе изучаются линейные преобразования, задаваемые рекурсивными матрицами. Рекурсивные линейные преобразования используются, например, в шифрсистеме Кузнечик и семействе хэш-функций PHOTON. Для обратимой рекурсивной матрицы Sm найдены все решения уравнения подобия X-1(ST)mX = Sm. На основне найденных решений предлагаются способы разложения рекурсивных матриц и вытекающие из них способы программной реализации рекурсивных линейных преобразований. Предложенные реализации обладают хорошими трудоемкостными характеристиками в соотношении время выполнения - используемая память. Отмечается, что матрица (ST)m реализует умножение на многочлен xm в кольце многочленов Q[x]/f (x), является максимально рассеивающей матрицей и также обладает сравнительно эффективной программной реализацией. Предлагаемая для рекурсивных матриц Реализация 4 по скорости зашифрования уступает известной реализации с использованием LUT-таблиц на 23%, при этом использует в 8 раз меньший объем памяти. Поскольку аналогичные разложения справедливы для обратной матрицы рекурсивного линейного преобразования, расшифрование также обладает эффективной программной реализацией. Авторы полагают, что предложенные реализации могут быть полезны для малоресурсных устройств с программной реализацией алгоритмов. В заключительном разделе приводится сводная таблица различных программных реализаций шифрсистемы Кузнечик.
Ключевые слова—рекурсивные матрицы, максимально рассеивающие матрицы, линейные преобразования, блочные шифрсистемы, Кузнечик.
I. Введение
В соответствии с принципами Клода Шеннона из работы «Communication Theory of Secrecy Systems» [1], используемые в шифрсистемах и функциях хэширования преобразования должны обеспечивать свойства перемешивания и рассеивания поступающих на вход данных. Для обеспечения свойств рассеивания используются, как правило, линейные преобразования. Высокие показатели рассеивания матрицы и транспонированной матрицы линейного преобразования необходимы для защиты от разностного [2] и линейного [3], [4] методов криптоанализа.
На текущий момент известны (см. [5]) несколько теоретических методов построения максимально рассеивающих матриц над полями F2s с использованием матриц
Статья получена 22 июня 2023
Степан Андреевич Давыдов, Лаборатория Криптографии АО НПК «Криптонит», (email: [email protected]).
Василий Алексеевич Шишкин, Лаборатория Криптографии АО НПК «Криптонит», (email: [email protected]).
Коши (хэш-функция Стрибог [6]), матриц Вандермон-да, рекурсивных матриц (также называют серийными, хэш-функция PHOTON [7], шифрсистема Кузнечик [8]), матриц Адамара и др. Некоторые максимально рассеивающие матрицы получают переборными методами, например матрицы-циркулянты (шифрсистема AES [9], шифрсистема SM4 [10], хэш-функция Whirlpool [11]).
Помимо криптографической стойкости важным требованием к шифрсистемам и функциям хэширования является высокая скорость выполнения преобразований. Применение предвычисленных таблиц (LUT-таблицы, см. [12]) позволяет достигать высокой скорости программной реализации, однако, хранение таких таблиц требует определенного объема быстродоступной памяти. В случае отсутствия необходимого объема памяти на вычислителе, вопрос более «легких» программных реализаций становится актуальным.
В данной работе мы изучаем линейные преобразования, выполняемые рекурсивными матрицами, и предлагаем для них альтернативные варианты программной реализации. Предлагаемые реализации используют относительно небольшой объем быстродоступной памяти и обеспечивают достаточно высокую скорость выполнения преобразований. Реализации применимы к любой рекурсивной матрице, в частности, к матрицам шифрсистемы Кузнечик и семейству хэш-функций PHOTON. Отметим, что частный случай одного из вариантов разложения (см. раздел V) матрицы линейного преобразования шифрси-стемы Кузнечик был получен в работе [13].
В разделе II мы введем основные определения и напомним некоторые свойства матриц. В разделе III мы рассмотрим общую концепцию построения матриц для линейных преобразований, задаваемых через умножение на элемент кольца (поля). В разделах IV и V мы получим два способа разложения рекурсивной матрицы общего вида. В разделе VI мы перечислим основные способы программной реализации рекурсивных матриц и предложим два новых способа. В разделе VII мы приведем сводную таблицу различных программных реализаций шифрсистемы Кузнечик с указанием числа операций, объема памяти и скорости зашифрования.
II. Основные определения
Всюду далее нумерацию координат векторов будем вести справа налево, а нумерацию строк матриц - снизу вверх. Все нумерации будем начинать с нуля.
Под раундом XSL-схемы мы понимаем последовательность следующих трех преобразований:
• Наложение ключа по модулю 2 (ХОД).
• Применение нелинейного преобразования (слой Б-боксов).
• Применение линейного преобразования (Ь-слой). Линейное преобразование задаваемое (реализуемое)
матрицей А будем обозначать А.
Пусть Q
F„
- конечное поле из д элементов,
/(х) = хт - /т-1Хт-1 - ...¡1X - /0 - унитарный многочлен степени т над полем Q. Сопровождающей матрицей многочлена /(х) назовем следующую матрицу над полем Q:
Smxm — S(f (x)) —
( fm-1 fm-2
f1 \ fo
0\ 0
1
О
Матрица ^ обратима тогда и только тогда, когда /0 = 0. Всюду далее считаем это условие выполненным.
При к > 1 матрицу Бк = Б(/)к будем называть рекурсивной матрицей.
Линейной рекуррентной последовательностью (ЛРП) над полем Q с характеристическим многочленом / (х) и начальным вектором 1 = (ит-1, ...,и0) € Qm назовем последовательность, в которой щ+т = щ+т-1/т-1 + ... + щ/о при всех г > 0. Для всех к > 0 справедливо равенство:
(ик+т-1, ..., ик) = (ик+т-2, ..., ик-1)Б =
uo)Sk (1)
Многочлен
f*(x) — (f (0))-1 xmf (-) — x
+ f-1fixm-1 + ... + f-1 fm
-1x - f0
будем называть двойственным многочленом к многочлену /(х). Если /(х) - характеристический многочлен последовательности (...,щ+т, ...,и1,и0), то / *(х) - характеристический многочлен последовательности элементов щ, взятых в обратном порядке: (...,и0,щ, ...,щ+т-1 ,щ+т).
Вектор (0,..., 0,1,0,..., 0) € Qm с единицей на г-ом месте будем обозначать 1^. Единичная матрица равна
1 Л
Е т— 1 1 1
Е = Е т-2
Етхт
\Ё 0 )
Обозначим за Т следующую перестановочную матри-
цу:
( 10 \
T
' тт.
3) Произведение AT меняет в матрице A порядок столбцов на противоположный, т. е. i-й столбец матрицы A равен (m — 1 — г)-ому столбцу матрицы TA: At = (TA)i_1_i.
4) Произведение TAT отображает в матрице A все элементы относительно центра, т. е. a,ij = (tat)m-i-i,m-i-j, где tat - соответствующий элемент матрицы TAT.
Под умножением матрицы A G Qm,m на элемент a G Q будем понимать умножение каждого элемента матрицы A на элемент a.
Весом ) вектора G Qm будем называть число ненулевых координат вектора .
Очевидно, что u(lEi) = 1 при любом i.
Показателем рассеивания матрицы A G Qm,m будем называть следующее число:
т (A) = min )+
Нетрудно показать, что т(A) = т(A-1) и т(A) < m+1. Если т (A) = m +1, матрицу A будем называть максимально рассеивающей матрицей.
При некоторых ограничениях, накладываемых на многочлен f(x), матрица S(f(x))m является максимально рассеивающей матрицей. Линейные преобразования, реализуемые рекурсивными максимально рассеивающими матрицами, используются в качестве линейных преобразований в шифрсистеме Кузнечик и семействе хэш-функций PHOTON.
Линейные преобразования, задаваемые рекурсивными матрицами, можно выполнять как общим способом (умножением вектора на матрицу), так и рекурсивным способом, через вычисление элементов ЛРП с использованием формулы (1).
III. Линейные преобразования, реализуемые через
УМНОЖЕНИЕ НА ЭЛЕМЕНТ КОЛЬЦА
Пусть f(x) - многочлен степени m над полем Q = , R = Q[x]/f (x) - факторкольцо многочленов, которое можно также рассматривать как векторное пространство размерности m над полем Q с операциями сложения многочленов и умножения многочлена на элемент a G Q. Пусть ф : Qm ^ R - отображение, переводящее строку вектора в соответствующий многочлен:
ф(ат-1,a1,ao) —
am-1xm 1 + ... + a1x + ao.
\Е т-1) Справедливы следующие факты:
1) Т = Т-1.
2) Произведение ТА меняет в матрице А порядок строк на противоположный, т. е. г-я строка матрицы А равна (т - 1 - г)-ой строке матрицы ТА:
11* = -ГА1„-1-г.
Нетрудно видеть, что ф - изоморфизм векторных пространств. Поскольку умножение на элемент а(х) кольца Д является линейным преобразованием кольца Д, соответствующее ему преобразование 111 ф-1(а(х)- фС1 )) пространства Qm можно задать матрицей А € Qm,m, которую будем обозначать Аа.
A. Критерий представимости матрицы через умножение на элемент кольца
Теорема 111.1. Пусть /(х) - многочлен степени т над полем Q, Д = Q[x]//(х) - факторкольцо многочленов. Матрица А € Qm,m равна матрице Аа для некоторого а(х) € Д тогда и только тогда, когда для любого г € 1,т — 1 : ф(А^) = хгф(А0) в кольце Д. В условиях Теоремы а(х) = ф(А0).
1
m
x
□ Необходимость. Пусть А = Аа. Заметим,
что ) = х\ Тогда ф-) = ф(Ёг А) = ф(ф—1(а(х)- ф(Е%))) = а(х)х1 при любом г. Подставив г = 0, получим а(х) = ф(А0). Достаточность. Для произвольного — = (ст—1,..., с0)
г-1
(cm-1, ...,co)A = Ф 1 Civ(Ai)) =
i=0 i=0 m-1
ф-1(ф(-о)^ cixi) = ф-1(ф(-о)-ф(С)).
г-1
,-rh
i=0
Значит по определению А = Аа, где а(х) = ф(А0)Л
Пример 111.1. Матрица-циркулянт.
Матрицу А е Qmym вида: (
a0 am-1
ai ао
am-2 ...
\am-i ...
a2 a1 a3 a2
a1 a2
a0 a1
am-1 a0
fm-1 fm-2 . .. f1 f0
1 0. .. 0 0
0 1 . .. 0 0
V 0 0. .. 1 0
Найдем всевозможные матрицы С, которые выполняют переход между вышеуказанными базисами.
Теорема 111.2. Для сопровождающей матрицы Б = Б(/(х)) выполняется равенство Б = С— 1Б1ТС тогда и только тогда, когда С - обратимая матрица вида:
C -
( C2m-2 C2m-3
C2m-3 C2m-4
cm cm-1
\ cm-1 cm-2
cm cm-1
cm-1 cm-2
c2 c1
c1 c0
(2)
где (с2т-2,...,со) - последовательные элементы ЛРП с характеристическим многочленом /(х). Матрица вида (2) называется Ганкелевой матрицей [5].
□ Для обратимой матрицы С равенство Б = С равносильно равенству СБ = БТС или
-1ат
S1 C
fcm-1 f1
cm-2 f1
Cm-3 f ^
будем называть матрицей-циркулянтом. Матрица-циркулянт реализует умножение в кольце Я = Q\x\/(xm — е) на элемент кольца ф(ат-1, ..., ао) = ат—1хт~1 + ... + а^х + ао.
Для того, чтобы умножить а(х) на Ь(х) в Я достаточно выполнить умножение а(х)- Ь(х) = с(х) в кольце Q\x\ и затем сложить младшую и старшую координатные половины результата ф—1(с(х)) : (с2т—1,...,ст) + (ст—1,.., со). Применив отображение ф к полученному результату суммы, найдем результат умножения а(х) на Ь(х) в Я.
Пример Ш.2. Транспонирование сопровождающей матрицы.
Пусть Б = Б(/(х)) - сопровождающая матрица многочлена /(х), тогда матрица БТ имеет вид:
S1 =
Матрица Б Т реализует умножение на элемент х в кольце Я = Q[x\//(х). Матрица (Бт)Т = (БТ)т реализует умножение на элемент хт в том же кольце. В случае неприводимости многочлена /(х) кольцо Я является полем.
Б. Случай рекурсивных матриц
Поскольку матрицы Бт и (Бт)Т являются подобными, рекурсивное преобразование Бт также является умножением на элемент кольца хт, но в другом базисе. Это означает, что выполнить рекурсивное преобразование Бт можно в три этапа:
1) Перейти в базис, в котором матрица преобразования имеет вид (БТ)т = Ахт.
2) Выполнить умножение на элемент кольца хт.
3) Вернуться в исходный базис.
V Cof1
C
m-1
ci\
ifc,
m1
Ccjn-2
Cm
С
Cm
C1
ССОД
где ты.
С = (fm-1, ...,fo) = Ф 1 (f (x)) без m-ой координа-
Рассмотрим подматрицы указанных выше матриц с номерами строк и столбцов от 0 до т — 2:
cm-2,m-1 cm-2,m-2 cm—3,m— 1 cm—3,m—2
cm-2,1
cm —3,1
\ c0,m-1
c0,m-2 ^cm-1,m-2 cm-2,m-2
c1,m-2
c0,1
cm—1,m—3 cm-3,m-3
c1,m-3
cm-1,0
cm-2,0 c1,0
Равенство указанных подматриц равносильно тому, что матрица С имеет вид (2). В силу симметричности матрицы С равенство (т — 1)-ых строк матриц СБ1 и Б1ТС равносильно равенству (т — 1)-ых столбцов тех же матриц. Равенство (т — 1 )-ых строк указанных матриц равносильно системе уравнений:
c =
cm—1,m—1 J Cm-
cm-1,m-2 = ~CCjn-
cm-1,1
M
или, с учетом элементов матрицы (2):
C2m-2
C2m-3
JCm-2
M
m-3
Ici
/ Ck-1 Ck-2 ■■■ C1 Co\
Ck-2 Ck-3 ■■■ Co 0
C1 Co ■■■ 0 0
со 0 ■■■ 0 0
0 0
0 0
C ' =
0 Co
\Co C1
0
со
Ck-3 Ck-2
со ci
Ck-2 Ck-iJ
C-i =
-о '
(C ' )-
00 0 1 \
00 1 /m -1
0 1 /m-k+3 /m- k+2
\ 1 —/m-1 — /m-k+2 /m- k+1 J
( — /m-k+1 /m- k+2 ■■■ /m-1 1
— /m-k+2 /m- k+3 ■■■ 1 0
/m-1 1 0 0
у 1 0 ... 0 0/
□ Обозначим первую из указанных выше матриц как Г и покажем, что ГС = Е. Заметим, что в г-ой строке матрицы Г последние г элементов нулевые, а в j-ом
столбце матрицы С первые т — 1 — j элементов нулевые. Посчитаем элемент
(3)
(/c)j = fci
(4)
Условие (3) равносильно тому, что элементы (с2т-2,..., с0) есть последовательные элементы ЛРП с характеристическим многочленом /(х). ■
IV. Выбор матрицы перехода С в уравнении подобия
РЕКУРСИВНОЙ МАТРИЦЫ
Для эффективности реализации линейного преобразования рекурсивной матрицы в качестве матрицы подобия можно выбирать наиболее «легковесные» матрицы. Поскольку элементы матрицы подобия С лежат на ЛРП с характеристическим многочленом степени т, для однозначного задания матрицы С достаточно выбрать т последовательных элементов в последовательности (с2т-2, ...,с0). Если выбрать т нулевых элементов, все элементы ЛРП будут равны нулю и матрица С будет нулевой. В данном пункте мы рассмотрим два варианта выбора последовательных элементов ЛРП, среди которых т — 1 нулевой и один единичный.
Предварительно докажем вспомогательное утверждение:
Утверждение ГУ.1. Пусть многочлен над полем Q
/(х) = хт — /т-1хт-1 — ... — /о - , к < т и матрицы С € Qk,k и С' € Qk,k имеют вид:
C =
)1] - 3 в 3 случаях:
1) i>j. Тогда г+m—1—j > т ив произведении (4) нет ненулевых слагаемых, поэтому произведение равно нулю.
2) i = j. Тогда г + т — 1 — j = т — 1 и единственное ненулевое слагаемое в произведении (4) есть
/г,гсг,г = с- • с0 = 1.
3) i < j. Тогда (4) без учета нулевых слагаемых будет равно
-1
[(1' Cj-i /m—1Cj—i—1 ■■■ /m-(j-i)' с0)
(1 С3-г — ... — /т-Ц-1) • с0—/т-Ц-1)-У 0—... — /0 • 0)].
Последнее выражение равно нулю, поскольку вектор (с^-г, с^-г-1,.., с1,с0, 0,..., 0) состоит из последовательных элементов ЛРП с характеристическим многочленом
/(х).
Таким образом, (/с= 0 при г = j и (/с= 1 при г = j, значит матрица ГС есть единичная матрица.
Заметим, что С' = ТСТ (см. свойства матрицы Т в разделе II). Тогда (С')-1 = ТС-1Т. ■ Перейдем к выбору матрицы подобия С.
Утверждение ГУ.2. Пусть в условиях Теоремы Ш.2 т =
2k и Ck и C-1
■■ = C3k-2
в разложении
0, c3k-1 = 1, тогда матрицы C
C-1(ST )mC = Sm
(5)
состоят из двух блоков размера к х к и имеют следующий вид:
( C2m-2
C = diag(
',m-2 C2m-3 C2m-3 C2m-4
c2m-k \ 1
0 0
где (ск-1, ...,с0,0,..., 0) - т + к — 1 последовательных элемента ЛРП с характеристическим многочленом /(х). Тогда обратными матрицами к матрицам С и С' соответственно будут следующие матрицы:
0 Ck-1 Ck-1 Ck-2
c2m-k 1
0 0
0
Ck-1
C2 C1
1 0
0 0
Ck-1 Ck-2
C1
со )
) (6)
C = diag(
0 0 0 1
0 0 1 /m-1
0 1 ~/m- k+3 — /m-k+2
1- /m-1 ~/m- k+2 — /m-k+1/
f/k-1 /k-2 /1 /o
/k-2 /k-3 /o 0
) (7)
/1 /o 0 0
\ /o 0 0 0
где (с2т-1,с2т-2, ...,с2т-к+1,1,0,..., 0) - т + к — 1 последовательных элементов ЛРП с характеристическим многочленом /(х), (с0, с1,..., с^-1, 0,..., 0) - т + к — 1 последовательных элементов ЛРП с характеристическим многочленом /*(х) (см. раздел II).
с
m
1
1
1
с
□ Поскольку в матрице (2) элементы ек,...,е3к-2 равны нулю, матрица С является блочно-диагональной с двумя блоками размера к х к, причем блоки будут иметь вид, как в матрице (6). Поскольку в матрице (2) элементы (е2т-2,...,е0) образуют ЛРП с характеристическим многочленом /(х), для того, чтобы найти элементы (е2т-2, е2т-3,..., ет+1,1, 0,..., 0) и (е0, е1,..., ек-1,0,..., 0) в матрице (6) достаточно рассчитать элементы ЛРП с начального состояния ек = ... = е3к-2 = 0, е3к-1 = 1 в прямом направлении на к — 1 тактов и обратном направлении на к тактов. В прямом направлении вычисление элементов происходит по закону рекурсии, задаваемому многочленом /(х), в обратном - многочленом /*(х).
Обратная матрица С-1 будет состоять из двух блоков размера к х к, каждый из которых является обратной матрицей к соответствующему блоку матрицы С.
В соответствии с Утверждением IV1 верхний блок матрицы (7) будет обратной матрицей к верхнему блоку матрицы (6). Нижний блок матрицы (6) составлен из последовательных элементов ЛРП с начальным вектором (вк-1 = /-1,0,..., 0) и характеристическим многочленом
f *(x) = xm + f-i(f1a
г-1
+ ... + fm-ix - 1). Зна-
cm-2
0,c
m—1
1, тогда матрицы С и С
соответственно имеют вид:
C
(C2m — 2 c2m- -3 . . cm 1
C2m—3 C2m- -4 . .1 0
cm 1 .0 0
1 0 .0 0
0 0 0 1 \
0 0 1 fm— 1
С—1 =
0 1 -f3 -f2
1 fm- -1 ... -f2 -f1 )
A =
fm—1 fm—2 ... f1 f0
fm—2 fm—3 ... f0 0
f1 f0 ... 0 0
f0 0 ... 0 0
lc 1 0m—1 Cm—2 . . C1 1
Cm — 2 Cm—3 . .1 0
C1 1 .0 0
1 0 .0 0
□ В условиях Утверждения IV 3 с перенумерованием индексов элементов о^ разложение матрицы Бт имеет
вид Бт = С-1(БТ)тС =
/0 0
0 1
0
1 -fm
1
1
■T\m
(S )
чит, в соответствии с Утверждением IV1, нижний блок матрицы (7) будет обратной матрицей к нижнему блоку матрицы (6). ■
Утверждение ГУ.3. Пусть в условиях Теоремы Ш.2 е0 =
-f3 -f2
fm— 1 ... -f2 -f1 J
ÎCm—1 Cm—2 ... C1 1\ 10
cm — 2 cm—3
C1 1
00 00
Матрица (БТ)т реализует умножение на элемент кольца хт. При умножении матрицы С-1 на матрицу (БТ)т каждая строка матрицы С-1 умножается на матрицу (БТ)т, то есть каждый элемент кольца Я[х]//(х) умножается на хт.
ф(С— )■ x mod f (x) =
(8)
где (е2т-2, е2т-3,..., ет, 1, 0,..., 0) - последовательные элементы ЛРП длины 2т — 1 с характеристическим многочленом
/ (х) = хт — /т-1 хт-1 — ... — /1Х — /о.
□ Утверждение IV 3 напрямую следует из Теоремы Ш.2 и Утверждения IV1. ■
V. Разложение рекурсивных матриц
Теорема V.l. Пусть f (x) = xm — fm-1xm-1 — ... — f0 - многочлен над полем Q = , S = S(f) - его сопровождающая матрица, A = Sm - рекурсивная матрица. Пусть Em-i-Sm-1 = (cm-i,..., ci, 1). Тогда справедливо следующее разложение матрицы A в произведение матриц F ■ C:
(x fm—1x ... fi +1x )
- (xm - fm—1xm—1 - ... - f1x - fo)
fixi + ... + hx + fo.
Значит ф(С— )■ xm mod f (x) = fixm 1 + ... + f0x
m-1-i
и ф-1 [ф(С-1 )■ xm mod f (x)] = (fi,...,fo, 0,..., 0). ■
Следствие V.1. Пусть выполнены условия Теоремы V.1,
g(x) = f *(x) и f-1——iS(g)m-1 = (dm-i, .., di, do),
d0
f— 1. Тогда обратной матрицей к матрице A
S(f )m будет следующая матрица:
A-1 =
0 0 0 1 \
0 0 1 fm— 1
0 1 -f2
1 fm- 1. - f2 -f1 /
0 0 0 d0 \
0 0 d0 d1
0 d0 dm — 2
d0 d1 dm—2 dm — 1
(10)
1
□ Заметим, что первую матрицу в произведении (9) можно представить, как:
fo■
f0 fm-2
( f0 fm
folfi 1
V
f0 fm-2 f0 fm-3
fo0 l fl
1 0
0 0/
Тогда, в соответствии с Утверждением IV. 1, первая и вторая матрицы в произведении (10) являются обратными матрицами ко второй и первой матрицам соответственно в произведении (9). ■
VI. Реализации рекурсивных матриц
A. Известные реализации
В этом пункте и всюду далее д = 2. На текущий момент авторам известны следующие варианты программной реализации линейных преобразований, задаваемых рекурсивными матрицами:
1) Реализация линейного регистра сдвига (вычисление элементов ЛРП на т тактов вперед).
2) Реализация линейного регистра сдвига с предвы-численной таблицей умножения в поле . Данная реализация отличается от Реализации 1 лишь тем, что вместо умножения в поле выполняется обращение в соответствующую область памяти. Поскольку при вычислении элементов ЛРП умножение выполняется только на коэффициенты многочлена /, в памяти необходимо хранить лишь т строк таблицы умножения (т ■ 2п элементов поля).
3) Использование предвычисленных LUT-таблиц из т2 ■ 2п элементов поля [12].
Первый вариант достаточно медленный ввиду очень большого числа выполняемых операций. Второй вариант существенно быстрее первого, но требует хранения небольшой таблицы в памяти. Третий вариант применим к любой ХБЬ-схеме (не обязательно с рекурсивным линейным преобразованием) и является самым быстрым на современных процессорах с достаточным объемом кэш-памяти. Однако, в случае когда шифрование реализуется на вычислителе с небольшими ресурсами, третий вариант может не удовлетворять ограничениям по используемой памяти.
Разложения рекурсивной матрицы вида (5) и (9) позволяют предложить новые варианты выполнения БЬ-преобразования, являющиеся «компромиссными» по количеству операций и объему используемой памяти.
B. Реализация через разложение рекурсивной матрицы
Результат умножения вектора = (ат_1,..., аа) на матрицу А можно вычислить, посчитав линейную комбинацию строк матрицы А : Т^А = ат_1Ат_1 +... + а0А0. Для матриц Г и С из (9) строки с номером г, умноженные на произвольный элемент поля а^ £ Q, могут быть получены сдвигом строки с номером т — 1, умноженной на тот же элемент поля а1 на т — 1 — г пози-цийвлево. Если заранее вычислить произведение строки Гт_1 = (/т_1, ...,/а) на все элементы поля Q, то при зашифровании вычислять а^ можно путем обращения в соответсвующую область памяти и сдвигом на (т — 1 — г)
элементов влево. Аналогичный результат справедлив для матрицы С.
Для выполнения Ь-преобразования умножим поступивший вектор последовательно на матрицы Г и С указанным выше способом. Для совмещения преобразований Б и Ь в одно достаточно в предвычисленной таблице матрицы Г по адресу а £ Q хранить результат умножения Б (а)■ Гт_1.
Указанные таблицы для матриц Г и С требуют хранения 2т ■2п элементов поля Q, что в т/2 раз меньше, чем в третьм варианте реализации и в 2 раза больше, чем во втором варианте реализации. При расшифровании можно использовать разложеине (10).
C. Реализация через умножение на элемент кольца (поля)
В указанной реализации необходимо последовательно выполнить умножение поступающего на вход Ь-преобразования вектора на 3 матрицы из равенства (5). Матрица (БТ)т реализует умножение в кольце К на элемент хт. Матрицы С_1 и С реализуют переход в соответствующий базис и возврат в исходный базис.
Выполнять умножение на матрицы С_1 и С можно способом, указанным в предыдущем пункте. Для этого потребуется хранить т ■ 2п элементов поля для каждой матрицы (в случае некоторых шифрсистем, например шифрсистемы Кузнечик, оценка может быть меньше).
Выполнять умножение на хт в кольце К можно путем т-кратного умножения на х. Для умножения на х в кольце К необходимо сдвинуть элементы вектора (ат_1, ...,аа) влево на одну позицию и привести результат по модулю /(х). Для приведения по модулю, к результату сдвига необходимо добавить /(х), умноженный на ат_1. Поскольку старший коэффициент всегда сокращается, результат умножения на х равен ф[(ат_2, ...,ао, 0) + (ат_1
/ш_1^ ... ат_1 /а)].
Если заранее вычислить результаты умножения вектора = (/т_1,..., /а) на все элементы поля Q, то результат умножения на х можно вычислять за один нециклический сдвиг, одно обращение в память и одно сложение по модулю 2. Указанный способ умножения требует хранения т ■ 2п элементов поля. Итого, реализация через умножение на элемент кольца требует хранения 3т ■ 2п элементов поля в общем случае. Объединение преобразований Б и Ь выполняется аналогично предыдущему пункту.
D. Новые эффективные максимально рассеивающие преобразования
В предыдущем пункте мы рассмотрели реализацию рекурсивной матрицы Бт = С_1(БТ)тС как последовательную реализацию матриц С_1, (БТ)т и С. Заметим, что сама по себе матрица (БТ)т также является максимально рассеивающей матрицей и может быть использована в качестве линейного преобразования. Как было отмечено в предыдущем пункте, реализация такой матрицы требует хранения т ■ 2п элементов поля, что в 3 раза меньше, чем в случае (У-С) и в 2 раза меньше, чем в случае (У-Б). Число выполняемых при этом операций также сократится. Недостатком указанного подхода является невозможность объединения преобразований Б и Ь в одно преобразование.
l
1
Таблица I
СРАВНЕНИЕ РАЗЛИЧНЫХ РЕАЛИЗАЦИЙ ШИФРСИСТЕМЫ КУЗНЕЧИК.
Реализация линейного преобразования XOR / SHFT / MEM Объем памяти Скорость шифрования cpb
1. Вычисление ЛРП без таблицы умножения 242/32/17 + 208 MUL 256 байт 1,7 Мб/с 2188
2. Вычисление ЛРП с таблицей умножения 242/32/225 2 Кб 9,7 Мб/с 384
3. Использование предвычислен-ных LUT-таблиц 34/0/17 64 Кб 113,8 Мб/с 33
4. Разложение рекурсивной матрицы 50/42/33 8 Кб 87,1 Мб/с 43
5. Умножение на элемент кольца 66/76/49 6 Кб 27,9 Мб/с 133
VII. Сравнение реализаций шифрсистемы Кузнечик
В данном пункте мы сравним 5 различных реализаций шифрсистемы Кузнечик. Все реализации выполнены на языке программирования С++. Авторы статьи не ставили перед собой цель добиться максимально быстрого шифрования в каждой из реализаций и не использовали каких-либо средств оптимизации, выходящих за рамки «разумного» написания кода программы. Цель авторов состояла именно в сравнении (приблизительном сравнении) указанных реализаций.
Реализации 1-3 совпадают с реализациями из пункта VI-A. Реализация 4 - реализация через разложение рекурсивной матрицы (см. VI-B), Реализация 5 - реализация через умножение на элемент кольца с переходом в соответствующий базис (см. VI-C).
Шифрсистема Кузнечик использует следующие параметры n = 8 (т. е. нелинейное преобразование S выполняется над 8-битными векторами) и m = 16 (т. е. линейное преобразование реализуется матрицей размера 16 х 16, состоящей из элементов поля F28).
Размер S-бокса составляет 28 • 8 бит или 256 байт. S-бокс необходимо хранить в реализациях 1-2. В реализациях 3-5 преобразования S и L объединены и хранение S-бокса не требуется. Поскольку у многочлена f всего 8 различных коэффициентов и один из них равен единице, размер таблицы умножения для Реализации 2 равен 7 • 28 • 8 бит или 1,75 Кбайт. Размер предвычис-ленных таблиц для Реализации 3 равен 16 • 16 • 28 • 8 бит или 64 Кбайта. Размер предвычисленных таблиц для Реализации 4 равен 2 • 16 • 28 • 8 бит или 8 Кбайт. Для Реализации 5 предвычисленные таблицы , a G Q} занимают 4 Кбайта. Эти же таблицы заменяют таблицы для матрицы C. В силу условия f *(x) = f (x) вектор (ci5,...,c8) совпадает с вектором (c0,...,c7) и для матрицы C-1 таблицы занимают 2 Кбайта. Общий объем памяти для Реализации 5 равен 6 Кбайт.
Программы выполнялись на одном ядре процессора Intel Core Í5-8265U с тактовой частотой 3.9 GHz в режиме Turbo Boost и размерами кэш-памяти первого, второго и третьего уровня соответственно 32 Кбайта, 256 Кбайт и 6 Мбайт(общий для 4 ядер). Для обобщения результатов рассчитана величина cycles per byte (cbp), равная отношению тактовой частоты процессора к скорости шифро-вашия.
Введем следующие обозначения для операций: XOR -покоординатное сложение по модулю 2, SHFT - сдвиг, MEM - обращение в память, MUL - умножение элементов в поле F28. В таблице приведено количество операций за один раунд шифрования для процессора с 64-битной разрядностью (например, наложение раундового ключа длины 128 бит требует одного обращения в память и двух операций XOR).
В объеме памяти учитываются предвычисленные таблицы и S -бокс и не учитываются вспомогательные переменные, указатели и пр. Выполнение развертывания ключа, считывание шифруемых данных в оперативную память и запись зашифрованных данных в файл не учитываются при замерах скорости зашифрования. Скорость зашифрования рассчитывалась как 1024/í (Мб/сек), где 1024 Мб - размер подаваемого на шифрование случай-
ного файла, а t - время его зашифрования в режиме CBC в секундах.
VIII. Заключение
В работе предложены способы разложения рекурсивных матриц и вытекающие из них программные реализации XSL-схем с рекурсивным L-преобразованием. Предлагаемая Реализация 4 (см. VI-B) незначительно уступает в скорости зашифрования реализации с хранением LUT-таблиц (Реализация 3). При этом, объём используемой быстродоступной памяти существенно меньше, в связи с чем Реализация 4 может быть полезна для низкоресурсных устройств с программной реализацией XSL-схем, в частности для программной реализации шифрсистемы Кузнечик.
Список литературы
[1] Shannon Claude E. Communication theory of secrecy systems // Bell Syst. Tech. J. — 1949. — Vol. 28. — P. 656-715.
[2] Biham Eli, Shamir Adi. Differential cryptanalysis of des-like cryptosystems // Journal of Cryptology. — 1990. — Vol. 4. — P. 3-72.
[3] Matsui Mitsuru. Linear cryptanalysis method for des cipher // International Conference on the Theory and Application of Cryptographic Techniques. — 1994.
[4] Малышев Ф. М. Двойственность разностного и линейного методов в криптографии // Матем. вопр. криптогр. — 2014. — Vol. 5. — P. 3547. — URL: https://doi.org/10.4213/mvk128.
[5] Cryptographically significant mds matrices over finite fields: A brief survey and some generalized results / Kishan Chand Gupta, Sumit Kumar Pandey, Indranil Ghosh Ray, Susanta Samanta // Adv. Math. Commun. — 2019. — Vol. 13. — P. 779-843.
[6] Информационная технология. Криптографическая защита информации. Функция хэширования.— no. ГОСТ 34.11 - 2018.— URL: https://protect.gost.ru/v.aspx?control=7&id=232143.
[7] Guo Jian, Peyrin Thomas, Poschmann Axel. The photon family of lightweight hash functions. — Vol. 2011. — 2011. —08. — P. 222-239.
[8] Информационная технология. Криптографическая защита информации. Блочные шифры.— no. ГОСТ 34.12 — 2018.— URL: https://protect.gost.ru/v.aspx?control=7&id=232146.
[9] Advanced encryption standard (aes) // Federal Information Processing Standards. — November 26, 2001. — no. Publication 197. — URL: https: //nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197-upd1.pdf.
[10] Diffie Whitfield, Ledin George. Sms4 encryption algorithm for wireless networks // IACR Cryptol. ePrint Arch. — 2008. — Vol. 2008. — P. 329. — URL: https://eprint.iacr.org/2008/329.pdf.
[11] Information technology - security techniques - hash-functions - part 3: Dedicated hashfunctions // ISO/IEC. — 2004. — no. 10118-3. — URL: https://www.iso.org/standard/39876.html.
[12] Дорохин СВ, Качков СС, Сидоренко АА. Реализация блочного шифра "Кузнечик" с ^пользованием векторных инструкций // Труды Московского физико-технического института.— 2018.— Vol. 10, no. 4 (40).
[13] Tolba Mohamed F., Youssef A. Improved meet-in-the-middle attacks on reduced round kuznyechik // ICISC. — 2017.
Decompositions of the recursive matrices and its application to the implementation of the linear
transformations
S. Davydov, V. Shishkin
Abstract—We study linear transformations defined by the recursive matrices in this article. Such transformations are used, for example, in the Kuznyechik block cipher and the PHOTON family of lightweight hash functions. We have found all solutions of the equation X-1(ST)mX = Sm for any invertible recursive matrix Sm. We propose two ways of recursive matrices decomposition and its application to the software implementation of the linear transformations. Our implementations are sufficiently fast and require rather small amount of memory. We note, matrix (ST)m implements multiplication by polynomial xm over the ring Q[x]/f (x). This matrix is also MDS matrix and has rather efficient software implementation. Proposed for recursive matrices Implementation 4 is 23% slower then implementation with LUT-tables, but it uses 8 times less memory. Since the inverse of the recursive matrix has the same decomposition, decryption software implementation is also efficient. We consider, our implementations may be useful for low-resource devices with software implementation of algorithms. We demonstrate the table with different software implementation results of the block cipher Kuznyechik in conclusion.
Keywords—recursive matrices, MDS matrices, linear transformations, block ciphers, Kuznyechik.
[13] Tolba Mohamed F., Youssef A. Improved meet-in-the-middle attacks on reduced round kuznyechik // ICISC. — 2017.
References
[1] Shannon Claude E. Communication theory of secrecy systems // Bell Syst. Tech. J. — 1949. — Vol. 28. — P. 656-715.
[2] Biham Eli, Shamir Adi. Differential cryptanalysis of des-like cryptosystems // Journal of Cryptology. — 1990. — Vol. 4. — P. 3-72.
[3] Matsui Mitsuru. Linear cryptanalysis method for des cipher // International Conference on the Theory and Application of Cryptographic Techniques. — 1994.
[4] Malyshev F. M. The duality of differential and linear methods in cryptography, in russian // Mathematical Aspects of Cryptography. --2014.--Vol. 5.--P. 35-47.--URL: https://doi.org/10.4213/mvk128.
[5] Cryptographically significant mds matrices over finite fields: A brief survey and some generalized results / Kishan Chand Gupta, Sumit Kumar Pandey, Indranil Ghosh Ray, Susanta Samanta // Adv. Math. Commun. — 2019. — Vol. 13. — P. 779-843.
[6] V. Dolmatov A. Degtyarev. Gost r 34.11-2012: Hash function // Request for Comments.-- 2013.-- no. RFC: 6986.-- URL: https: //datatracker.ietf.org/doc/html/rfc6986.
[7] Guo Jian, Peyrin Thomas, Poschmann Axel. The photon family of lightweight hash functions. — Vol. 2011. — 2011. --08. — P. 222-239.
[8] Gost r 34.12-2015: Block cipher «kuznyechik» // Request for Comments. — 2016. — no. RFC: 7801.--URL: https://datatracker.ietf.org/ doc/html/rfc7801.
[9] Advanced encryption standard (aes) // Federal Information Processing Standards.-- November 26, 2001.-- no. Publication 197.-- URL: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197-upd1.pdf.
[10] Diffie Whitfield, Ledin George. Sms4 encryption algorithm for wireless networks // IACR Cryptol. ePrint Arch. -- 2008. -- Vol. 2008. -P. 329. — URL: https://eprint.iacr.org/2008/329.pdf.
[11] Information technology - security techniques - hash-functions - part 3: Dedicated hashfunctions // ISO/IEC. — 2004.-- no. 10118-3. — URL: https://www.iso.org/standard/39876.html.
[12] S. V. Dorokhin S. S. Kachkov A. A. Sidorenko. Implementation of «kuznyechik» cipher using vector instructions, in russian // MIPT works. — 2018. — Vol. 10, no. 4 (40).