2016 Математические методы криптографии №3(33)
УДК 512.13
ЗАДАНИЕ ПОДСТАНОВОК АЛГОРИТМОВ БЛОЧНОГО ШИФРОВАНИЯ МАГМА И 2-ГОСТ С ПОМОЩЬЮ АЛГЕБРАИЧЕСКИХ ПОРОГОВЫХ ФУНКЦИЙ
Д. А. Сошин ФГУП «НИИ «Квант», г. Москва, Россия
Предложено задание подстановок алгоритмов блочного шифрования Магма и 2-ГОСТ через линейные комбинации алгебраических пороговых функций (АПФ). Для этого приведены полученные автором результаты представимости геометрических типов булевых функций от четырёх переменных через АПФ.
Ключевые слова: алгебраические пороговые функции, геометрические типы, подстановки, блочные шифры.
DOI 10.17223/20710410/33/4
THE IMPLEMENTATION OF MAGMA AND 2-GOST BLOCK CIPHER SUBSTITUTIONS BY ALGEBRAIC THRESHOLD FUNCTIONS
D. A. Soshin
Technology Federal State Unitary Enterprise "Research Institute Kvant", Moscow, Russia
E-mail: danil_re@list.ru
The paper deals with the implementation of substitutions in Magma and 2-GOST block cipher algorithms by algebraic threshold functions (ATF). For this purpose, the representations of all the geometric types of Boolean functions in 4 variables by ATF are given.
Keywords: algebraic threshold functions, geometric types, substitutions, block ciphers.
Введение
Пороговые функции представляют интерес с точки зрения синтеза узлов переработки информации [1] благодаря простой логике их задания и возможности быстрого выполнения операций в перспективной элементной базе, например в оптической [2]. Работы [3 - 5] посвящены изучению способов синтеза подстановок на основе классических пороговых функций. В данной работе предложено задание подстановок алгоритмов блочного шифрования Магма [6] и 2-ГОСТ [7] с помощью так называемых алгебраических пороговых функций. Класс АПФ предложен в работах [8, 9] и отличается от пороговых функций добавлением свободного члена к линейной форме и приведением её по определённому модулю до выполнения операций сравнения. Основным результатом первой работы является описание некоторого класса сбалансированных АПФ, а второй — доказательство того, что только один геометрический тип булевых функций от трёх переменных не принадлежит классу АПФ. Координатные функции указанных подстановок зависят от четырёх переменных, поэтому в работе приведены представления геометрических типов булевых функций четырёх переменных через АПФ.
Полученный каталог позволил изучить представимость линейных комбинаций координатных функций исследуемых подстановок. Через линейные комбинации, являющиеся АПФ, выразилась только одна подстановка. Остальные подстановки удалось задать через линейные комбинации пяти АПФ, полученных добавлением к координатным функциям специально выбранной АПФ. Отметим, что линейные функции содержатся в классе АПФ, поэтому полученные задания подстановок реализуются на единой элементной базе.
1. Представление геометрических типов булевых функций от четырёх
переменных через АПФ
Определение 1. Функцию к-значной логики /П : П^ —^ назовём алгебраической пороговой, если существуют целочисленные наборы с = (со, с^..., сп), Ь = (Ь0, Ь1,... , Ьк) и модуль т € N такие, что для любого а € Пк выполняется
(Х1,Х2, . . . ,ХП) = а ^ Ьа ^ Гт(Со + С1Х1 + С2Ж2 +-----+ СгаХга) <Ьа+1,
где гт(х) —функция взятия остатка числа х по модулю т, гт(х) € {0,1,... , т — 1};
= {0,1, 2,... , к — 1}. Тройку (с; Ь; т) будем называть структурой функции .
Далее рассмотрим двоичный случай. В случае двузначной логики АПФ будем задавать следующим образом:
/ =1 ^ Гт(Со + С1Х1 + С2Х2 +-----+ сгахга) ^ Ь
и писать / : ((с0, с1, с2,..., сп); Ь; т).
В [9] изложен подход к изучению представимости булевых функций трёх переменных через АПФ. Логика подхода заключается в разбиении всех булевых функций трёх переменных на классы эквивалентности относительно трёх операций — инвертирования переменных, перестановки переменных и инвертирования функции — и рассмотрении только одного представителя из класса. Класс эквивалентности относительно указанных операций будем называть геометрическим типом, а произвольное множество функций, замкнутое относительно этих операций, — геометрически замкнутым. Корректность такого подхода следует из того, что класс АПФ геометрически замкнут [9].
Далее представлены результаты исследования представимости через АПФ булевых функций от четырёх переменных. Для этого воспользуемся каталогом геометрических типов, составленным В. Г. Никоновым [10]. Удобство использования данного каталога заключается в предложенной автором нумерации, состоящей из четвёрки чисел а.Ь.с.^. Номер а отвечает за вес функций в геометрическом типе, причём если вес функции ||/1| > 8, то следует искать соответствующего представителя с весом менее 8 (||/1| < 8). Номер Ь отвечает за количество компонент связности в графе Gf = (X, и) функции /. Вершинами X графа связности Gf являются точки множества в которых функция принимает значение 1 (носитель функции):
X = {(а1, а2, а3, а4) € П : /(а1, а2, а3, а4) = 1},
а множеством рёбер и является множество рёбер куба, соединяющих соседние вершины графа:
и = {((аьа2,аз,а4), (Ьь Ь2, Ьз, Ь4)) € X2| х ((аь а2, аз, а4), (Ьь Ь2, Ьз, Ь4)) = 1}
где х — расстояние Хемминга между точками (а^ а2, аз, а4) и (61, 62, 63, 64):
4
X ((а1,а2,аз,а4), (61,62,63,64)) = ^ 1пё(а = 6»),
г=1
Г 1, если аг = 6г,
1пи(аг = 6г) = Л
10, если аг = 6г.
Номер с — порядковый номер графа связности с числом вершин а и количеством компонент связности 6; d — порядковый номер геометрического типа с графом связности а.6.с. Стоит отметить, что предложенный каталог составлен в 1994 г. вручную и был впоследствии полностью подтверждён при сверке с результатами работы компьютера.
Далее сохранена введённая нумерация, и читатель может обратиться к указанному каталогу, но представитель геометрического типа будет предложен другой, а именно минимальный по лексикографическому номеру, либо f в случае, если первый представитель геометрического типа с минимальным номером f имеет вес более 8.
В [9] доказано, что класс АПФ замкнут относительно фиксации переменных и среди булевых функций от трёх переменных только один геометрический тип не принадлежит классу АПФ (для удобства представителя данного типа будем обозначать f*). Функция f * задаётся вектор-строкой
Г* = (1,1,1, 0, 0,1, 0, 0). (1)
В табл. 1 приведены геометрические типы булевых функций от четырёх переменных с указанием фиксации переменной, при которой подфункция эквивалентна функции (1). Из 222 геометрических типов 70 обладают указанным свойством. Отметим, что если в каталоге представитель Г некоторого геометрического типа не содержит подфункцию г *, то искать её среди подфункций Г нет смысла, поскольку инвертирование подфункции не выводит за геометрический тип.
Утверждение 1. Геометрические типы булевых функций от четырёх переменных, представленные в табл. 1, не принадлежат классу АПФ.
Для оставшихся 152 геометрических типов была написана программа, которая нашла структуры 101 представителя. Логика работы программы заключается в переборе всевозможных АПФ, у которых коэффициенты линейной формы (со, с1, с2, с3, с4) ограничены некоторой константой, а модуль т и порог 6 ограничивались максимальным значением с0 + с1 + с2 + с3 + с4 + 1 текущей линейной формы. Для каждой из полученных АПФ проверяется её наличие среди представителей геометрических типов. Программа опробовала все задания АПФ, у которых коэффициенты линейной формы не превосходили значения 40. Результаты работы программы приведены в табл. 2.
Среди полученных 101 структур представителей геометрических типов максимальный коэффициент линейной формы равен 8, а максимальный модуль — 9. Доказать, что есть соответствующие ограничения, начиная с которых новые АПФ перестанут появляться, не удалось. Подходы, предложенные для подсчёта асимптотики пороговых функций в работах [11-13], на данный момент результатов не дали.
1 = Zx (o'o'o'i 'O'I 'l'O'I 'O'I 'O'I 'I 'o'i) i'ce'8 0 = ^х (O'O'O'I 'l'O'I 'I 'I 'I 'l'O'O'I 'o'o) VZZ'Z'S
1 = Zx (o'o'o'i 'O'I 'l'O'I 'o'o'i 'I 'I 'I 'o) I '91 S'8 \ = Ьх (O'O'O'I 'O'I 'I 'O'I 'O'I 'I 'I 'I 'o'o) l'Zl'Z'%
1 = Т-х (o'o'o'i 'O'I 'l'O'I 'O'O'I 'l'O'I 'l) T'OT'S'8 0 = 1х (o'o'o'o'o'i 'I 'O'I 'O'I 'I 'I 'I 'o'i)
1 = Zx (o'o'o'o'o'i 'I 'I 'I 'O'I 'I 'I 'I 'o'o) ГТСТ8 0 = ^х (O'O'O'I 'l'O'I 'I 'I 'I 'O'I 'I 'o'o'o) Г0СТ8
0 = т?х (o'o'o'i 'O'I 'I 'I 'I 'O'I 'O'I 'I 'o'o) Z'SZ'YS 1 = Т-х (o'o'o'o'o'i 'I 'I 'I 'O'I 'I 'O'I 'l'o) Г82Т8
1 = Т-х (o'o'o'i 'O'I 'I 'I 'I 'O'O'I 'l'O'I 'o) YLZ'YS 0=тх (o'o'o'o'o'i 'I 'O'I 'O'O'I 'I 'I 'l'l) Г92Т8
0 = £х (o'o'0'o'o'I 'I 'I 'I 'I 'I 'I 'O'O'I 'o) T'SS'T'8 1 = Тх (o'o'o'O'O'O'I 'I 'I 'I 'O'I 'I 'I 'l'o) Z'ZZ'l'%
1 = Т-х (o'o'0'o'o'I 'I 'I 'I 'I 'I 'o'o'o'i 'l) I"SS"T"8 0=тх (o'o'o'o'o'i 'I 'O'I 'O'I 'I 'O'I 'l'l) T'TS'T'8
0 = 1х (o'o'0'O'O'I 'l'O'I 'I 'I 'I 'O'I 'I 'o) 2'6ГГ8 0=тх (o'o'o'o'o'i 'I 'I 'I 'I 'l'O'O'I 'l'o) Г6ГГ8
0 = 1х (o'o'o'i 'O'I 'I 'I 'I 'o'o'o'i 'I 'I 'o) Г9ГГ8 0=тх (o'o'o'o'o'i 'I 'O'O'I 'I 'I 'I 'I 'l'o) I'ÏTI'8
0=тх (o'o'o'o'o'o'i 'I 'I 'l'O'I 'l'O'I 'l) T'TT'T'8 0=Zx (o'o'o'O'O'O'I 'I 'I 'I 'O'I 'I 'I 'o'i) Г6Т8
0=тх (o'o'o'o'o'o'i 'I 'I 'l'O'O'I 'I 'I 'l) T'8'T'8 0=тх (o'o'o'O'O'O'I 'l'O'I 'l'O'I 'I 'l'l) T'Z'T'8
0=тх (o'o'o'o'o'o'o'i 'I 'I 'I 'O'I 'I 'I 'l) YVYS 1 = Тх (O'O'O'I 'O'I 'I 'O'I 'O'O'I 'I 'O'I 'o) T'9'C'Z
0 = (o'o'o'i 'O'I 'l'O'I 'O'I 'O'I 'I 'o'o) TTC'Z 0 = Тгх (O'O'O'I 'O'I 'I 'O'I 'O'O'O'I 'O'I 'l) I'£'£'¿
0 = £х (o'o'o'o'o'i 'I 'I 'I 'O'I 'I 'O'I 'o'o) T'9T'S'¿ 0=Zx (o'o'O'O'O'I 'I 'O'I 'O'I 'I 'O'I 'l'o) Z'ZVZ'L
0=Zx (o'o'o'i 'O'I 'I 'I 'I 'O'O'I 'l'o'o'o) T'ST'S'Z 0=тх (o'o'O'O'O'I 'I 'O'I 'O'I 'I 'O'I 'o'i) VQ'Z'L
0=zx (o'o'o'o'o'i 'l'O'I 'I 'I 'I 'O'O'I 'o) T'8'S'¿ \ = Ъх (O'O'O'I 'O'I 'I 'O'I 'O'O'O'I 'I 'l'o) Z'9'Z'L
0=Zx (o'o'o'o'o'i 'l'O'I 'O'O'I 'O'I 'I 'l) T'9'S'¿ 0 = Zx (o'o'O'O'O'I 'I 'O'O'I 'I 'I 'I 'O'I 'o) Z'Ç'Z'L
0=lx (o'o'o'o'o'o'i 'I 'O'I 'I 'O'I 'I 'o'i) T'9'S'¿ \ = Тх (o'o'O'O'O'I 'I 'O'I 'O'I 'I 'O'O'I 'l) TZ'Z'L
0=zx (o'o'o'o'o'i 'l'O'O'I 'I 'I 'O'I 'I 'o) F9ITZ 0=Zx (o'o'o'O'O'O'I 'I 'I 'I 'O'I 'I 'o'o'i) Z'ÇVVL
0 = ^x (o'o'o'o'o'i 'I 'I 'I 'I 'I 'o'o'o'i 'o) T'ST'T'Z 0=Zx (o'o'o'O'O'O'I 'l'O'I 'l'O'I 'I 'l'o) rerr L
0 = ^x (o'o'o'o'o'i 'I 'I 'I 'O'I 'I 'o'o'o'i) TIITZ 0=тх (o'o'o'O'O'O'I 'I 'I 'I 'O'O'O'I 'l'l) T'OT'T'Z
0 = Zx (o'o'o'o'o'o'o'i 'O'I 'I 'O'I 'I 'I 'l) T'6'T'¿ 0=Zx (o'o'o'O'O'O'I 'I 'I 'I 'O'I 'O'I 'o'i) S'8'T'¿
0 = Zx (o'o'o'o'o'o'o'i 'I 'I 'I 'O'I 'O'I 'l) T'8'T'¿ 0=тх (o'o'o'O'O'O'I 'l'O'I 'O'I 'I 'O'I 'l) VL'l'L
0=Zx (o'o'o'o'o'o'o'i 'I 'O'I 'I 'I 'I 'o'i) T'S'T'Z 0=Zx (o'o'O'O'O'O'O'I 'I 'O'I 'O'I 'I 'l'l) тет 'L
0 = fx (o'o'o'o'o'i 'l'O'I 'O'I 'I 'o'o'o'i) г'Се'9 0=Zx (o'o'O'O'O'I 'I 'O'I 'O'O'I 'O'O'I 'l) T'8'8'9
0 = ïx (o'o'o'o'o'o'i 'I 'I 'l'O'I 'l'o'o'o) 0 = Sx (o'o'o'O'O'O'I 'l'O'I 'O'I 'I 'O'I 'o) VL'Z'9
0=Zx (o'o'o'o'o'o'i 'I 'O'I 'O'I 'l'o'o'i) 0=Zx (o'o'O'O'O'I 'I 'O'O'I 'I 'I 'O'O'I 'o) VVZ'9
0=Zx (o'o'o'o'o'i 'l'O'I 'O'I 'I 'O'O'I 'o) е'е'г'9 0=Zx (o'o'o'O'O'O'I 'l'O'I 'l'O'I 'O'I 'o) Z'£'Z'9
0=Zx (o'o'o'o'o'o'o'i 'O'I 'I 'O'I 'O'I 'l) т'е'г'9 0 = Sx (o'o'O'O'O'O'O'I 'I 'O'I 'O'I 'I 'o'i) S'6'T'9
0 = ïx (o'o'o'o'o'o'i 'I 'I 'l'o'o'o'i 'o'i) Т'б'Т'9 0=Zx (o'o'O'O'O'O'O'I 'I 'O'I 'O'I 'O'I 'l) T'8'T'9
0 = SX (o'o'o'o'o'o'o'i 'O'O'I 'I 'I 'I 'o'i) Т'9'Т'9 0 = Sx (o'o'O'O'O'O'O'I 'I 'O'O'I 'I 'O'I 'l) T'9'T'9
0=Zx (o'o'o'o'o'o'o'i 'O'O'I 'O'I 'I 'I 'l) Т'£'Т'9 0 = T'x (o'o'O'O'O'O'O'I 'I 'O'I 'O'I 'I 'o'o) Z'Z'Z'9
0 = Sx (o'o'o'o'o'o'o'i 'O'O'I 'O'I 'I 'o'i) less 0 = T'x (o'o'O'O'O'O'O'I 'I 'O'O'O'I 'O'I 'l) Z'VVS
0 = fx (o'o'o'o'o'o'o'i 'O'O'O'I 'l'O'I 'l) Г£Т9 0 = ^x (o'o'o'o'o'o'O'O'O'O'O'I 'I 'O'I 'l) Y 2'Vf
ю = ïx Klltl -вэяиф p'O'q'v тзних oJOüoabHdxawoaj ютэх -na'exoïz'adii ïragiroxo-doxiiag p'O'q'v dawojj ю = ïx Klltl -вэмиф p-O'q'v 12НИХ oJOMoabHdxawoaj Birax -na'exoïz'adii ïragiroxo-doxMag p-O'q'v dawojj
ФПУ ^ЭЭВ1ГМ CHÁtiiBMfairb'BHHdn эн 'ош'пмнХф ии'пмнХфЬ'оп эяхээызм а эи'гггеж^эЬ'оэ 'xraHHawadan xadra¿ah ¿o ии'пмнХф xraaairÁg нпих aHMoahndiawoaj
I в ti и ir g в X
HHmoj y '¡J1
99
(8 9 (9'9'9'¿'0)) (о'о'о'о'о'о'о'т'о'о'т'т'т'т'т'о) £'VZ'9 Z9
(8 9 (f'¿' 9'9'Т)) (о'о'о'о'о'о'о'т'о'т'т'о'т'т'т'о) Z'VZ'9 те
(f ^ (е'е'е'е'г)) (т'т'т'о'т'о'о'о'т'о'о'о'о'о'о'т) Z'Z'Z'9 os
(i f (с'э'э'э'т)) (о'о'о'о'о'о'о'т'т'т'т'о'т'о'т'о) Z'l'Z'9 6f
(9 f (e's's's'o)) (о'о'о'о'о'о'о'о'о'т'т'т'т'т'т'о) ï'l'ï'9 8f
(i f (z'z'i'i'ï)) (о'о'о'о'о'о'о'т'о'о'о'т'т'т'т'т) Ï'Z'Ï'9 Lf
(s £ (z'ï'ï'oW (о'о'о'о'о'о'о'о'о'о'т'т'т'т'т'т) T'T'T'9 9f
(i 9 (s's'e'e's)) (о'о'о'о'о'т'т'о'о'т'т'о'о'о'о'т) CT9'9 9f
(с Z (г'т'т'т'г)) (о'о'о'т'о'т'т'о'т'о'о'о'о'о'о'т) Z'l'9'9 ff
и 9 (Ç'ï'ï'ï'l)) (о'о'о'о'о'о'о'т'т'о'о'т'о'т'т'о) T'T'9'9
и 9 (s'i 'e'e's)) (о'о'о'о'о'т'т'о'т'о'о'т'о'о'о'т) СТГ9 Zf
(9 f (c'S'S'l'l)) (о'о'о'о'о'о'т'т'о'т'т'о'т'о'о'о) Z'l'V9 lf
и 9 (T 'f'f'f'9)) (о'о'о'о'о'о'о'т'о'т'т'о'т'о'о'т) VVV9 Of
и 9 (s V^'i'i)) (о'о'о'о'о'о'о'т'о'о'т'т'т'т'о'о) l'Z'£'9 6£
(б 9 (z'z'ï'ç'i)) (о'о'о'о'о'т'т'о'о'т'т'о'о'о'т'о) Vï'£'9 8£
(9 f (e's's Vi)) (о'о'о'о'о'о'о'т'о'т'т'о'т'о'т'о) CTC'9 L£
(9 f fr Vs's'o)) (о'о'о'о'о'о'о'т'о'о'о'т'т'т'т'о) ГГС9 9C
(8 9 (z '9 's '¿'s)) (о'о'о'о'о'о'т'т'т'т'о'о'о'о'о'т) £'VZ'9 se
(б 9 (zcl 's's'9)) (о'о'о'о'о'о'о'т'т'о'о'т'т'о'о'т) Z'VZ'9 n
(s £ (с'т'т'т'т)) (о'о'о'о'о'о'о'т'т'т'т'о'т'о'о'о) £'Z'Z'9 cc
(8 9 (9'i'i'c's)) (о'о'о'о'о'о'о'т'т'о'т'о'т'о'т'о) l'l'Z'9 se
(б 9 (f'z'z'8'9)) (о'о'о'о'о'о'о'о'о'о'т'т'т'т'о'т) l'Vl'9 1С
(s £ (т'т'т'т'с)) (о'о'о'о'о'о'о'т'о'о'о'т'о'т'т'т) l'Z'1'9 oc
(8 9 (с'г'т'т'э)) (о'о'о'о'о'о'о'о'о'о'о'т'т'т'т'т) T'T'T'9 6Z
(f £ (z'z'i'iW (о'о'о'о'о'т'т'о'о'т'т'o'o'o'o'o) 9'1'Vf 8Z
(f £ (т 'C'S'S'O)) (о'о'о'о'о'т'т'о'т'о'о'т'о'о'о'о) 9'1'Vf LZ
(s f (f'z'z'z'o)) (о'о'о'о'о'о'о'т'о'т'т'о'т'о'о'о) Vl'f'f 9Z
(8 9 (9 V9'9'l)) (о'о'о'о'о'о'о'т'т'о'о'о'о'т'т'о) £'ï'f'f <2Z
(f £ (c'c'c'c'o)) (о'о'о'о'о'о'о'т'о'о'о'т'о'т'т'о) Z'ï'Vf fZ
(f £ (t lzlzlzl£)) (о'о'о'о'о'о'о'о'о'т'т'о'т'о'о'т) ITVf £Z
U 9 (s'9'e'e'o)) (о'о'о'о'о'о'о'т'т'о'о'т'т'о'о'о) £'l'£'f ZZ
(8 9 (9 V9'l'l)) (о'о'о'о'о'о'о'т'о'о'т'о'т'т'о'о) Z'l'£'f IZ
(8 9 (s'S '¿'9'l)) (о'о'о'о'о'о'о'т'о'о'о'т'т'о'т'о) т'т'ет OZ
(с Z (г'т'т'о'о)) (о'о'о'о'о'о'т'т'т'т'o'o'o'o'o'о) £'Z'Z'f 61
(f £ (s'c'c'o'o)) (о'о'о'о'о'о'о'о'о'о'т'т'т'т'о'о) l'Z'Z'f 8T
и 9 (т 'T V^'S)) (о'о'о'о'о'о'о'т'о'о'о'т'т'о'о'т) Vl'Z'f II
(9 f (VI'I'S'T)) (о'о'о'о'о'о'о'т'т'о'т'о'т'о'о'о) Z'ï'Z'f 91
и 9 (t'9'9'9'o)) (о'o'o'o'o'o'о'о'о'о'о'т'т'т'т'о) Vl'Z'f SI
(9 f (s'i'l'lV) (о'о'о'о'о'о'о'о'о'о'о'т'о'т'т'т) VZ'l'f n
(с Z (t 'T 'O'O'S)) (о'о'o'o'o'o'o'о'о'о'о'о'т'т'т'т) l'I'l'f CT
(б L U 's's'9'т)) (о '0 '0 '0 '0 '0 'о 'т 'т '0 '0 '0 '0 'о 'т 'о) £'l'£'£ ZI
(s f (flflZlZl0)) (о '0 '0 '0 '0 '0 '0 'т '0 '0 'о 'т 'т '0 'о 'о) Z'l'£'£ TT
(s f (c Vt Vo)) (о '0 '0 '0 '0 '0 '0 '0 '0 '0 'о 'т 'о 'т 'т 'о) T'T'ce от
U 9 (т 's'S'S'S)) (о '0 '0 '0 '0 '0 'о 'т 'т '0 '0 '0 '0 '0 'о 'т) Z'l'Z'£ 6
(б L (fll lll£ll)) (о '0 '0 '0 '0 '0 '0 '0 '0 '0 'о 'т 'т '0 'о 'т) l'l'Z'£ 8
и 9 0z'z'l'l'ç)) (о '0 '0 '0 '0 '0 '0 '0 '0 '0 '0 '0 'о 'т 'т 'т) IIIS L
(f £ (с'т'т'т'о)) (о '0 '0 '0 '0 '0 'о 'т 'т '0 '0 '0 '0 '0 'о 'о) £'l'Z'Z 9
(9 9 (e'9 Vi'о)) (о '0 '0 '0 '0 '0 '0 '0 '0 '0 'о 'т 'т '0 'о 'о) Z'YZ'Z S
(9 9 (z 'Z '9 '9 'о)) (о '0 '0 '0 '0 '0 '0 '0 '0 '0 '0 '0 'о 'т 'т 'о) l'I'Z'Z f
(f £ (т'т'т'о'с)) (о '0 '0 '0 '0 '0 '0 '0 '0 '0 '0 '0 '0 'о 'т 'т) l'IIS С
(s f (т'т'т'т'то) (о 'о 'о 'о 'о 'о 'о 'о 'о 'о 'о 'о 'о 'о 'о 'т) T'T'T'T s
(l I (o'o'o'o'o)) (о 'о 'о 'о 'о 'о 'о 'о 'о 'о 'о 'о 'о 'о 'о 'о) T'T'0'0 T
fo'q'o 12НИХ oJOüoabHdxawoaj Bifaxna'Bxo'n'adn BdÂxMÂdxQ p'O'q'v впих оломээыкТхэиоэл BiraxHa'Bxo'n'adn tragiroxo-doxMag p'O'q'v вээв1тя dawofj ц/ц
ФПУ ¿OOBIfM О И ÏTH2}Kaif t/B11 и dn
'xMHHawadan xadraxah ¿o ии^ган^ф xraaaifÁg гаыих aHMoahndiawoaj
1 в ti и ir g в X
¿q 0LIV CHqtnoiAiou э j_JOJ~Z и ewje¡/\i aowindcuve >i090Heutf0u эинейе£
Окончание табл. 2
№ п/п Номер класса а.б.е.й Вектор-столбец представителя геометрического типа а.б.е.й Структура представителя геометрического типа а.б.е.й
53 6.2.5.1 (1,1,0,0, 0, 0,1,1,1,1, 0,0,0,0, 0, 0) ((3,0, 3, 3,1) 3 5)
54 6.2.6.2 (0,0,1,0,1, 0,1,1,1,1, 0,0,0,0, 0, 0) ((1,1, 5, 5, 3) 4 7)
55 6.2.8.1 (0,1,1,0, 0,1,1,0,0,1,1,0,0,0, 0, 0) ((1, 3, 3,1,1) 4 6)
56 6.2.8.3 (0,0,0,0, 0,1,1,1,1,1,1,0,0,0, 0, 0) ((0,1,1, 2, 3) 3 5)
57 6.3.4.1 (0,0,1,1, 0,1,1,0,1,1, 0,0,0,0, 0, 0) ((2,1, 3, 2, 4) 5 8)
58 6.3.5.1 (0,0,1,1,1,1,0,0,1,1, 0,0,0,0, 0, 0) ((0,0, 2, 2, 2) 2 3)
59 6.4.1.2 (0,0,0,1,1,1,1,0,0,1,1,0,0,0, 0, 0) ((1, 2, 2, 4, 3) 5 8)
60 6.4.1.3 (1,1,0,0, 0, 0,0,1,0,1,1,0,1,0, 0, 0) ((3,1, 2, 2, 4) 3 5)
61 6.4.2.1 (0,1,1,0,1, 0,0,1,0,1,1,0,0,0, 0, 0) ((1, 3, 3, 4,1) 4 6)
62 6.4.2.2 (0,1,1,0, 0, 0,0,1,0,1,1,0,1,0, 0, 0) ((0,4,4, 3,1) 4 6)
63 6.5.1.1 (1,0,0,1, 0, 0,0,1,0,1,1,0,1,0, 0, 0) ((3, 3, 3, 4, 2) 3 5)
64 6.6.1.1 (1,0,0,1, 0,1,1,0,0,1,1,0,0,0, 0, 0) ((4, 3, 3, 4, 4) 4 6)
65 6.6.1.2 (0,0,0,1, 0,1,1,0,0,1,1,0,1,0, 0, 0) ((0,1,1,1,1) 2 3)
66 7.1.1.1 (1,1,1,1,1,1,1,0,0, 0, 0,0,0,0, 0, 0) ((4,1,1,1, 3) 4 7)
67 7.1.2.1 (1,1,1,1,1,1,0,0,1, 0, 0,0,0,0, 0, 0) ((5,1, 2, 2, 3) 5 9)
68 7.1.14.1 (1,0,1,1,1,1,0,0,1,1, 0,0,0,0, 0, 0) ((4, 6, 2, 2, 2) 4 7)
69 7.2.1.1 (0,1,1,1, 0,1,1,1,1, 0, 0,0,0,0, 0, 0) ((1, 7, 7, 8, 4) 5 9)
70 7.2.2.2 (1,0,0,0, 0, 0,0,1,0, 0, 0,1,1,1,1,1) ((3, 5, 5, 4, 4) 3 6)
71 7.2.7.1 (0,1,1,1,1,1,1,0,1, 0, 0,0,0,0, 0, 0) ((0,4,4, 4, 3) 3 5)
72 7.2.10.1 (0,0,1,1,1, 0,1,1,1,1, 0,0,0,0, 0, 0) ((1,1, 6, 7, 4) 5 9)
73 7.2.11.1 (1,0,0,0, 0, 0,0,1,1, 0, 0,1,0,1,1,1) ((4, 2, 2, 2,1) 3 6)
74 7.2.13.1 (0,0,1,1,1,1,1,0,1,1, 0,0,0,0, 0, 0) ((1, 6, 5, 5, 4) 4 7)
75 7.2.14.1 (0,0,0,0,1,1,1,1,1,1,1,0,0,0, 0, 0) ((1,1,1, 3, 4) 4 7)
76 7.2.15.1 (1,0,0,0, 0,1,1,1,1,1,1,0,0,0, 0, 0) ((5, 7, 7, 5, 3) 5 9)
77 7.3.4.3 (1,1,1,0, 0, 0,0,1,0,1,1,0,1,0, 0, 0) ((4, 2, 2, 3, 6) 4 7)
78 7.3.6.1 (0,0,0,1,1,1,1,0,1,1,1,0,0,0, 0, 0) ((1,1,1, 2, 2) 3 5)
79 7.4.1.2 (0,1,0,1, 0,1,1,0,0,1,1,0,1,0, 0, 0) ((1, 3, 2, 2, 2) 4 7)
80 7.4.2.1 (1,0,0,1,1, 0,0,1,0,1,1,0,1,0, 0, 0) ((5, 3, 3,1, 5) 4 7)
81 7.4.3.1 (0,1,1,0,1, 0,0,1,0,1,1,0,1,0, 0, 0) ((0, 3, 3, 3,1) 3 5)
82 7.5.1.1 (1,0,0,1, 0,1,0,1,0,1,1,0,1,0, 0, 0) ((4,4, 5, 5, 3) 4 7)
83 7.7.1.1 (1,0,0,1, 0,1,1,0,0,1,1,0,1,0, 0, 0) ((3, 3, 3, 3, 3) 3 5)
84 8.1.1.1 (1,1,1,1,1,1,1,1,0, 0, 0,0,0,0, 0, 0) ((1,0,0, 0,1) 1 2)
85 8.1.2.1 (1,1,1,1,1,1,1,0,1, 0, 0,0,0,0, 0, 0) ((3,1,1,1, 2) 3 6)
86 8.1.5.1 (1,1,1,1,1,1,0,0,1,1, 0,0,0,0, 0, 0) ((2,0,1,1,1) 2 4)
87 8.1.16.1 (0,1,1,1,1,1,1,0,1,1, 0,0,0,0, 0, 0) ((0, 7, 6, 6, 5) 4 8)
88 8.1.29.1 (0,1,0,1,1,1,1,0,1,1,1,0,0,0, 0, 0) ((1, 6, 7, 5, 5) 4 8)
89 8.2.1.1 (0,1,1,1,1,1,1,1,1, 0, 0,0,0,0, 0, 0) ((0, 5, 5, 5, 3) 3 6)
90 8.2.9.2 (0,1,1,1, 0,1,1,0,0,1,1,0,1,0, 0, 0) ((1, 3, 3, 2, 2) 4 8)
91 8.2.11.1 (1,1,1,0,1, 0,0,1,0,1,1,0,1,0, 0, 0) ((3, 2, 2, 2, 5) 3 6)
92 8.2.13.1 (0,0,1,1,1,1,1,1,1,1, 0,0,0,0, 0, 0) ((0,0, 3, 3, 2) 2 4)
93 8.2.17.1 (0,0,0,1,1,1,1,1,1,1,1,0,0,0, 0, 0) ((1,1,1, 2, 3) 3 6)
94 8.2.20.1 (0,0,0,0,1,1,1,1,1,1,1,1,0,0, 0, 0) ((0,0,0,1,1) 1 2)
95 8.2.21.1 (0,0,0,1, 0,1,1,1,1,1,1,0,1,0, 0, 0) ((0,1,1,1, 2) 2 4)
96 8.3.4.1 (1,1,1,0, 0,1,1,1,0, 0, 0,1,1,0, 0, 0) ((2,1,1, 3, 2) 2 4)
97 8.3.5.1 (0,1,1,0, 0,1,1,1,1, 0, 0,1,1,0, 0, 0) ((0,4,4,1, 3) 3 6)
98 8.4.2.1 (1,0,0,0, 0,1,1,1,0,1,1,1,1,0, 0, 0) ((2, 3, 3, 2, 2) 2 4)
99 8.4.3.1 (1,1,0,0, 0, 0,1,1,0, 0,1,1,1,1, 0, 0) ((1,0,1,1,1) 1 2)
100 8.5.1.1 (1,0,0,1, 0,1,1,1,0,1,1,0,1,0, 0, 0) ((3,4,4, 4, 3) 3 6)
101 8.8.1.1 (0,1,1,0,1, 0,0,1,1, 0, 0,1,0,1,1, 0) ((0,1,1,1,1) 1 2)
Например, в [11, 14] предлагается использовать векторы параметров Чоу. Если f — булева функция от п переменных, то, сложив как векторы все наборы х, на которых f (х) = 0, получим целочисленный п-мерный вектор в2,... , вп). Дополнив его нуле-
вой координатой во = ^-1(0)|, равной числу наборов х, на которых f (х) = 0, получим (п + 1)-мерный вектор параметров Чоу. В работе [11] приведено одно из доказательств того, что если две пороговые функции различны, то они имеют разные векторы параметров Чоу. Булевы функции от двух переменных f = х1 + х2 и д = х1 + х2 + 1 имеют одинаковые векторы параметров Чоу, в то время как в работе [9] доказано, что любая линейная функция к-значной логики принадлежит классу АПФ. Поэтому использование подхода на основе векторов параметров Чоу невозможно.
В связи с тем, что ограничение на коэффициенты линейной формы не получено и гарантии, что на компьютере построены все представители геометрических типов булевых функций от четырёх переменных, нет, для оставшихся 51 геометрических типов (табл. 3) выдвигается гипотеза об их непринадлежности классу АПФ.
Таблица 3
Геометрические типы булевых функций от четырёх переменных, по отношению к которым выдвигается гипотеза об их непринадлежности
к классу АПФ
Номер а.б.е.й Вектор-столбец представителя геометрического типа а.б.е.й Номер а.б.е.й Вектор-столбец представителя геометрического типа а.б.е.й
4.2.1.3 (1,1,0, 0, 0, 0,0,1,1, 0, 0,0,0, 0, 0,0) 4.2.2.2 (1, 0, 0,1,0,0, 0,1,1,0,0, 0, 0,0,0,0)
5.2.2.1 (1,1,0,1, 0,1,1,0, 0, 0, 0,0,0, 0, 0,0) 5.2.2.2 (1,1,1, 0,0,0, 0,1,1,0,0, 0, 0,0,0,0)
5.2.4.1 (1,0,0,1, 0,1,0,1,1, 0, 0,0,0, 0, 0,0) 5.3.1.2 (0,1, 0,1,1,0, 0,1,1,0,0, 0, 0,0,0,0)
5.3.1.5 (0,0,0, 0,1,1,0,1, 0,1,1,0,0, 0, 0,0) 5.3.2.2 (0, 0, 0,1,1,0,1, 0,1,1,0, 0, 0,0,0,0)
6.1.4.1 (1,1,1,1, 0,1,1,0, 0, 0, 0,0,0, 0, 0,0) 6.1.4.2 (1,1,1,1,0,0, 0,1,1,0,0, 0, 0,0,0,0)
6.2.1.1 (0,1,1,1, 0,1,0,1,1, 0, 0,0,0, 0, 0,0) 6.2.2.1 (1,1,1, 0,1,0, 0,1,1,0,0, 0, 0,0,0,0)
6.2.4.1 (0,0,1,1,1,1,0,1,1, 0, 0,0,0, 0, 0,0) 6.2.6.1 (1, 0, 0,1,0,1,1,1,1,0,0, 0, 0,0,0,0)
6.2.8.2 (0,0,0, 0,1,1,0,1,1,1,1,0,0, 0, 0,0) 6.2.8.4 (0,1,1, 0,0,0,1,1,1,1,0, 0, 0,0,0,0)
6.2.8.5 (0,1,1, 0,1, 0,1,0,1,1, 0,0,0, 0, 0,0) 6.3.1.1 (0, 0, 0, 0,1,1,1,1,0,1,1, 0, 0,0,0,0)
6.3.2.1 (1,1,0, 0, 0,1,1,0, 0,1,1,0,0, 0, 0,0) 6.3.2.2 (0,1,1,1,1,0, 0,1,1,0,0, 0, 0,0,0,0)
6.3.4.2 (0,0,1, 0,1,1,0,1, 0,1,1,0,0, 0, 0,0) 6.4.1.1 (1, 0, 0,1,0,1,1, 0,1,1,0, 0, 0,0,0,0)
6.4.2.3 (0,0,0,1,1, 0,0,1, 0,1,1,0,1, 0, 0,0) 7.1.4.1 (1,1,1, 0,1,0,1, 0,1,1,0, 0, 0,0,0,0)
7.1.6.1 (1,1,1,1,1, 0,0,1,1, 0, 0,0,0, 0, 0,0) 7.1.12.1 (1,1,1, 0,0,1,1, 0,0,1,1, 0, 0,0,0,0)
7.1.15.3 (0,1,1,1,1, 0,1,0,1,1, 0,0,0, 0, 0,0) 7.2.2.1 (1,1, 0,1,0,1,1, 0,1,1,0, 0, 0,0,0,0)
7.2.4.1 (0,1,1,1,1,1,0,1,1, 0, 0,0,0, 0, 0,0) 7.2.4.2 (1,1, 0, 0,1,1,1, 0,0,1,1, 0, 0,0,0,0)
7.2.15.2 (0,1,1, 0,1, 0,1,1,1,1, 0,0,0, 0, 0,0) 7.3.1.1 (1, 0, 0, 0,1,1,1,1,0,1,1, 0, 0,0,0,0)
7.3.2.1 (1,1,0,1, 0,1,1,0, 0,1,1,0,0, 0, 0,0) 7.3.4.2 (1, 0, 0,1,1,1, 0,1,0,1,1, 0, 0,0,0,0)
7.3.6.2 (1,0,0, 0, 0,1,1,1,1, 0, 0,1,1, 0, 0,0) 7.4.1.1 (1, 0, 0,1,1,1,1, 0,0,1,1, 0, 0,0,0,0)
8.1.3.1 (1,1,1,1,1,1,0,1,1, 0, 0,0,0, 0, 0,0) 8.1.6.1 (1,1,1,1,1,0,1, 0,1,1,0, 0, 0,0,0,0)
8.1.10.1 (1,1,1, 0,1, 0,1,1,1,1, 0,0,0, 0, 0,0) 8.1.17.1 (1,1,1,1,0,1,1, 0,0,1,1, 0, 0,0,0,0)
8.1.20.1 (1,0,1, 0,1,1,0,1,1,1,1,0,0, 0, 0,0) 8.1.22.1 (1, 0,1,1,1,1,1, 0,1,1,0, 0, 0,0,0,0)
8.1.24.1 (1,0,0, 0,1,1,1,1,1,1,1,0,0, 0, 0,0) 8.1.30.2 (0,1,1, 0,1,1,1, 0,1,1,1, 0, 0,0,0,0)
8.2.6.1 (1,1,0,1,1,1,1,0, 0,1,1,0,0, 0, 0,0) 8.2.9.1 (1, 0, 0,1,1,1,1, 0,1,1,1, 0, 0,0,0,0)
8.2.11.2 (0,1,1, 0,1, 0,0,1,1,1,1,0,1, 0, 0,0) 8.2.12.2 (1,1, 0, 0,0,1,1,1,1,0,0,1,1,0,0,0)
8.2.21.2 (1,0,0,1, 0,1,1,1,1,1,1,0,0, 0, 0,0) 8.3.2.1 (1, 0, 0,1,1,1,1,1,0,1,1, 0, 0,0,0,0)
8.4.1.1 (1,1,0,1, 0,1,1,0, 0,1,1,0,1, 0, 0,0)
Вероятно, для каждого геометрического типа можно доказать его непринадлежность классу АПФ, но случай булевых функций от трёх переменных [9] показал, что данный процесс весьма затруднителен.
2. Представление подстановок алгоритма блочного шифрования Магма
линейными комбинациями АПФ
В стандарте ГОСТ Р 34.12-2015 [6] в качестве нелинейного биективного преобразования выступает набор подстановок п^, г = 0,1, 2,... , 7. Они заданы в виде массивов
по = (12, 4, 6, 2,10, 5,11, 9,14, 8,13, 7, 0, 3,15,1); п1 = (6,8, 2, 3, 9,10, 5,12,1,14, 4, 7,11,13,0,15); П2 = (11, 3, 5, 8, 2,15,10,13,14,1, 7, 4,12, 9, 6, 0); пз = (12, 8, 2,1,13, 4,15, 6, 7,0,10, 5, 3,14,9,11); п4 = (7,15, 5,10, 8,1,6,13, 0,9, 3,14,11, 4, 2,12); П5 = (5,13,15, 6, 9, 2,12,10,11, 7,8,1, 4, 3,14, 0); п6 = (8,14, 2, 5, 6, 9,1,12,15,4,11, 0,13,10, 3, 7); п7 = (1, 7,14,13, 0, 5,8, 3, 4,15,10, 6, 9,12,11, 2).
Представим подстановки в виде координатных функций, обозначив через f3, f2, , ^ координатные функции подстановки п^, г = 0,... , 7, от старших разрядов к младшим соответственно:
/ 1 0 0 0 1 0 1 1 1 1 1 0 0 0 1 0\ / 0 1 0 0 1 1 0 1 0 1 0 0 1 1 0 1\
/0 1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 0 /21 1 0 0 0 0 0 1 1 0 1 1 1 0 101
по = /0 = 0 0 1 1 1 0 1 0 1 0 0 1 0 1 1 0 ; п1 — /1 = 1 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1
/ 0 0 0 0 0 1 1 1 0 0 1 1 0 1 1 1 \/о7 0 0 0 1 1 0 1 0 1 0 0 1 1 101
/ 1 0 0 1 0 1 1 1 1 0 0 0 1 1 0 0\ /33 1 1 0 0 1 0 1 0 0 0 1 0 0 111\
/22 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 0 /23 1 0 0 0 1 1 1 1 1 0 0 1 0 100
П2 = /2 = 1 1 0 0 1 1 1 0 1 0 1 0 0 0 1 0 ; пз — /13 = 0 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1
\/о2\ 1 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 /о3\ 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 1/
/34 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 1\ /35 0 1 1 0 1 0 1 1 1 0 1 0 0 0 1 0\
/24 1 1 1 0 0 0 1 1 0 0 0 1 0 1 0 1 /25 1 1 1 1 0 0 1 0 0 1 0 0 1 010
П4 = /4 = 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 ; п5 = /5 = 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 0
1 1 1 0 0 1 0 1 0 1 1 0 1 0 0 0 / 1 1 1 0 1 0 0 0 1 1 0 1 0 100
/ 1 1 0 0 0 1 0 1 1 1 1 0 1 1 0 0\ / 0 0 1 1 0 0 1 0 0 1 1 0 1 1 1 0\
/26 0 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 /7 0 1 1 1 0 1 0 0 1 1 0 1 0 100
П6 = /6 = 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 1 ; п7 — /7 = 0 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1
\/о7 0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 \/о7 1 1 0 1 0 1 0 1 0 1 0 0 1 010
Задача данного пункта — представить подстановки п0,п1,...,п7 через линейные комбинации функций из класса АПФ, использовав при этом для каждой подстановки минимальное количество таких функций, а значит, и минимальное количество пороговых элементов при технической реализации. Минимальное количество функций, через линейные комбинации которых можно реализовать подстановки, равно 4. В этом случае соответствующие АПФ лежат в подпространстве, порождённом координатными функциями подстановок. На первом этапе была исследована представимость каждой подстановки через АПФ линейных комбинаций координатных функций. Результаты приведены в табл. 4.
Таблица 4
Представление линейных комбинаций координатных функций подстановок
ГОСТ Р 34.12-2015 через АПФ
Линейные ком- Структура АПФ, Линейные ком- Структура АПФ,
бинации коорди- задающей линейную бинации коорди- задающей линейную
натных функций комбинацию коор- натных функций комбинацию коор-
динатных функций динатных функций
* (1) /з ((0, 3,1, 3, 0) 2 4) П4 * (4) /з ((0, 2,1, 3,0) 2 4)
/з е /2 е /0 ((7, 5,1, 3, 6) 4 8) /з(4) е /2(4) е /1(4) ((0, 5, 5, 6, 2) 4 8)
/31) е /2(1) ((6,1, 3, 6, 3) 4 8) *(4) т *(4) т *(4) /з е /2 е /0 ((0, 6,1, 6, 3) 4 8)
/2(1) е /21) ((6, 3, 3,1, 6) 4 8) П5 /25) е /05) ((0, 3, 2, 5, 7) 4 8)
П2 Г (2) /2 ((0, 3, 7, 2, 5) 4 8) /2(5) е /05) ((6, 7, 5, 2, 6) 4 8)
/(2) е /02) ((1, 2, 5, 6, 3) 4 8) /з(5) е /2(5) ((5, 5, 5, 7, 2) 4 8)
/32) е /02) ((7, 2, 5, 2,1) 4 8) *(5^ *(5) т *(5) /з е /2 е /0 ((0, 7, 5, 3, 2) 4 8)
пз /33) е /23) ((6, 7, 2, 3, 6) 4 8) П6 /з(6) е /1(6) ((7, 2, 7, 5, 2) 4 8)
П7 у (7) / 0 ((4, 3, 7, 6, 5) 4 8) /з6) е /16) е /16) ((6,1, 6, 5, 6) 4 8)
Из табл.4 видно, что функции /3^, /2(2), /34), /о7 являются алгебраическими пороговыми и имеют следующие задания:
/3(1) = 1 ^ г4 (3x1 + х2 + 3х3) ^ 2, /22) = 1 ^ г8 (3x1 + 7х2 + 2х3 + 5х4) ^ 4, /3(4) = 1 ^ г4 (2х1 + х2 + 3х3) ^ 2, /07) = 1 ^ г8 (4 + 3х1 + 7х2 + 6х3 + 5х4) ^ 4.
Важно отметить, что функции /31) и /34) фиктивно зависят от переменной х4 (х4 — старший бит входного числа). Последнее влечёт ухудшение перемешивающих свойств нелинейного слоя.
У подстановки п5 найдено 4 независимых линейных комбинаций, представимых функциями из класса АПФ. Найдём выражение координатных функций через соответствующие АПФ. Для этого разрешим относительно /05), /|5), /2(5), /35) следующую систему:
/25) е /(5) /о \ (5) ( ^о) \
/25) е /¡5) (5)
/35) е /(5) /2 (5)
е /25) е /¿5) / (5) V /
г (5) /з
где функции #, <^5), #, ^ задают соответствующие линейные комбинации из табл. 4:
(5)
1 ^ г8 (3х1 + 2х2 + 5х3 + 7х4) ^ 4,
^15) = 1 ^ Г8 (6 + 7x1 + 5x2 + 2хз + 6x4) ^ 4,
^25) = 1 ^ Г8 (5 + 5x1 + 5x2 + 7x3 + 2x4) ^ 4,
^35) = 1 ^ Г8 (7x1 + 5x2 + 3x3 + 2x4) ^ 4.
Решение системы и подстановка в целом задаются следующим образом:
( /35) \ ( ^5) е ^5) \
П5
/ /1(
(5)
(5)
V /05) )
# е ^35)
^ ев ^25) ев ^
# е ^ ^25)
^25) е ^35)
Данное представление позволяет реализовать подстановку, используя пороговые элементы, поскольку модульное сложение также принадлежит классу АПФ. Отметим, что структуры АПФ в табл. 4 получены с помощью структур, найденных в табл. 2. Основная сложность использования данной таблицы заключается в определении преобразований, переводящих представителя в заданную функцию геометрического типа. Изменения структуры при действии указанных преобразований эквивалентности описаны в [9]. Определение самого геометрического типа не вызывает затруднений при использовании оригинального каталога геометрических типов, опубликованного в [10].
У остальных подстановок подпространство, порождённое координатными функциями, не содержит базис из класса АПФ. В предположении, что все геометрические типы из табл. 3 не являются АПФ, получаем, что только одна из восьми подстановок реализуется через линейные комбинации четырёх АПФ.
Для остальных подстановок выбиралась некоторая функция из класса АПФ произвольного веса, не лежащая в подпространстве, порождённом координатными функциями. Получив базис из пяти функций, мы искали АПФ из расширенного подпространства. Из линейных комбинаций, принадлежащих классу АПФ, составлялась расширенная система, аналогичная полученной при задании подстановки п5, и решалась относительно координатных функций подстановки. Благоприятным исходом была разрешимость данной системы и соответственно представление подстановки через линейные комбинации пяти АПФ.
Пятая функция выбиралась так, чтобы две или три координатные функции при сложении с ней образовывали функцию из класса АПФ. Один из таких способов — взять произведение двух координатных функций. Произведение функций и их дополнение до исходных имеют вес четыре, а значит, с высокой вероятностью мы получим три функции из класса АПФ. Высокая вероятность обусловливается тем, что из всех 19 геометрических типов, представители которых имеют вес 4, только 3 типа не принадлежат классу АПФ. Кроме того, функция веса 4 не лежит среди линейных комбинаций координатных функций, а значит, линейно не выражается через них.
Второй подход — выбор системы вершин куба, на которых пятая функция принимает единичные значения, так, чтобы при её булевом суммировании (в случае, если эта функция из класса АПФ) с координатными функциями подфункции результирующих функций не были эквивалентны /* — функции от трёх переменных, которая не представляется через АПФ. Если эта функция имеет вес менее 8, то она также линейно не выражается через линейные комбинации координатных функций. Второй подход обеспечивает получение функций из геометрических типов, перечисленных в табл. 2 и 3. С учётом того, что количество геометрических типов в табл. 2 преобладает, велика вероятность набрать необходимое количество линейных комбинаций из класса АПФ.
Применение предложенных подходов позволило получить задания всех оставшихся подстановок через линейные комбинации пяти АПФ, а если верно предположение, что в табл.3 нет геометрических типов из класса АПФ, то данные представления минимальны по количеству используемых функций. Ниже приведены реализации подстановок через АПФ без подробного описания способа получения пятой функции:
^0О) : ((5, 4, 7, 3, 2); 5; 8)
<^0) : ((1, 5, 5, 7, 2); 4; 8)
^20) : ((1, 6, 5, 3,1); 6; 8)
^30) : ((0,1,1, 3, 2); 3; 5)
^40) : ((0, 3,1, 3, 3); 2; 5)
П1
П2 =
^ е ^ ^ е ^ V ^ е ^ /
( ^02) е ^2) \
^22) е # \ ^22) е # е ^42) /
Пз =
П4
П6
П7
^03) е ^
^з
(з)
^03) е ^ е ^23) е ^43) ^03) е ^23) ^03) е ^
^04)
^04) е ^24) е # е ^44) <^4) е ^24) е ^34) е <^44)
^34) е ^44)
^06) е ^36)
^4
(6)
^26) е ^36) ^06) е <^6) е ^ е ^46) ^06) е ^
( ^07) е ^27) N ^27) е # <^7) ев # ев ^47)
V ^7) I
^0
(2)
(2) (2) (2) (2)
(з) (з) (з) (з)
(3)
(4) (4) (4) (4) (4)
(6) (6) (6) (6) (6)
(8) (8) (8) (8) (8)
0); 2 3); 4
6); 4
2); 3 5); 6
5); 4
1); 4
7); 6
3); 5 3); 4
5); 6
6); 5 6); 5
2); 4 5); 4
0); 2
2); 4
3); 4
5); 6
6); 3
5); 6 3); 5
6); 4 2); 4 2); 3
5); 6 5); 4 5); 4
2); 3
3); 3
3. Представление подстановок алгоритма блочного шифрования 2-ГОСТ
линейными комбинациями АПФ
В работе [7] предложен алгоритм блочного шифрования 2-ГОСТ, являющийся
модификацией шифрсистемы ГОСТ 28147-89 и отличающийся от последней лишь
алгоритмом развертывания ключа, а также тем, что набор ¿"-боксов фиксирован П = п0 = п1 = п2 = п3, п" = п4 = п5 = п6 = п7 , где п0 и п4 заданы нижними
4
строками подстановок
п
п
(6,10,15, 4, 3, 8, 5,0,13,14, 7,1, 2,11,12, 9), (14,0, 8,1, 7,10, 5, 6,13, 2,4, 9, 3,15,12,11).
Представим подстановки в виде координатных функций
/0 11001001100011 1\ 10100 1 0 0 10 0 1 0 1 1 1
/2 1011001011100010 п'' = /2' 1 0 0 0 1 0 1 1 10 1 0 0 1 1 0
/' 1110100001101100 , п — /'' 1 0 0 0 1 1 0 1 01 0 0 1 1 0 1
\/о/ \0 01010101011010V \/о/ \0 0 0 1 1 0 1 0 10 0 1 1 1 0 1
Данная модификация предназначена для низкоресурсной реализации алгоритма блочного шифрования, поэтому задача реализации подстановок с помощью АПФ весьма актуальна.
Для данных подстановок применим приём, описанный в п. 2. В результате анализа каждую из них удалось задать через линейные комбинации пяти АПФ. При этом стоит отметить, что удалось получить линейные комбинации не более двух АПФ для задания координатной функции:
п
/3 \ / д1 ® ди \ ( /3' \ / В ^2 \
/2 дз е д4 П" = /2' Вш
/1 дз /1 - /1' В ^4
/0 ) V д5 / V /0 / V В^5 /
дъАи ,дз,д4,д5, ^ ^3,^4,^5 — алгебраические пороговые:
д1 =1 Г9
ди =1 Г7
дз =1 Г8
д4 =1 Г8
д5 =1 Г8
= 1 Г8
^2 = 1 Г8
Ш = 1 Г7
Г8 Г8
х1 + 5х2 + 2х3 + 2х4) ^ 6, 5^1 + 5х2 + х3 + 6х4) ^ 2, 7 + 6х1 + 5х2 + 6х3 + х4) ^ 4,
2 + 5x1 + 7x2 + 3хз + 2x4) ^ 4,
3 + 5х1 + х2 + 2х3 + 3х4) ^ 4,
6 + 5х1 + 5х2 + 2х3 + х4) ^ 6, 3 + 2х1 + 4х2 + х3 + 5х4) ^ 6, 3 + х1 + 6х2 + 3х3 + 4х4) ^ 5, 2 + х1 + 6х2 + 3х3 + 2х4) ^ 4, 3х1 + 2х2 + 2х3 + х4) ^ 4.
Здесь х1 —младший бит входного числа, х4 — старший.
Выводы
В работе приведена типизация булевых функций от четырёх переменных относительно операций перестановки переменных, инвертирования переменных и инвертирования функции. Доказано, что 70 геометрических типов не принадлежат классу АПФ. Для оставшихся применён алгоритм поиска структур АПФ, и для 101 представителя найдены их структуры. По отношению к 51 геометрическому типу выдвинута гипотеза об их непринадлежности классу АПФ.
Рассмотрен вопрос об представимости подстановок из отечественных алгоритмов блочного шифрования Магма и 2-ГОСТ через линейные комбинации минимального
п =
количества АПФ. При этом только одна подстановка представилась линейными комбинациями четырёх АПФ в алгоритме Магма, а остальные — через линейные комбинации пяти АПФ. Указаны подходы к эффективному выбору пятой функции в систему координатных функций подстановок.
Результаты работы могут быть использованы для быстрой реализации алгоритмов блочного шифрования Магма и 2-ГОСТ на перспективной элементной базе.
ЛИТЕРАТУРА
1. Дертоузос М. Пороговая логика. М.: Мир, 1967.
2. Морага К. Многозначная пороговая логика // Оптические вычисления. М.: Мир, 1993. С.162-182.
3. Никонов В. Г., Сидоров Е. С. О способе построения взаимно однозначных отображений при помощи квазиадамаровых матриц // Вестник Московского государственного университета леса — Лесной вестник. 2009. №2(65). С. 155-157.
4. Никонов В. Г., Сошин Д. А. Геометрический метод построения сбалансированных k-знач-ных пороговых функций и синтез подстановок на их основе // Образовательные ресурсы и технологии. 2014. №2(5). С. 76-80.
5. Сошин Д. А. Построение подстановок на основе пороговых функций многозначной логики // Прикладная дискретная математика. 2016. №2(32). С. 20-32.
6. ГОСТ Р 34.12-2015 Информационная технология. Криптографическая защита информации. Блочные шифры. М.: Стандартинформ, 2015.
7. Dmukh A. A, Dygin D. M., and Marshalko G. B. A lightweight-friendly modification of GOST block cipher // Математические вопросы криптографии. 2014. Т. 5. №2. С. 47-55.
8. Сошин Д. А. Конструктивный метод синтеза сбалансированных k-значных алгебраических пороговых функций // Comp. Nanotechnol. 2015. №4. С. 31-36.
9. Сошин Д. А. Представление геометрических типов булевых функций от трех переменных алгебраическими пороговыми функциями // Прикладная дискретная математика. 2016. №1(31). С. 32-45.
10. Никонов В. Г. Классификация минимальных базисных представлений всех булевых функций от четырех переменных // Обозрение прикладной и промышленной математики. Сер. Дискретная математика. 1994. Т. 1. №3. С. 458-545.
11. Зуев Ю. А. Комбинаторно-вероятностные и геометрические методы в пороговой логике // Дискретная математика. 1991. Т. 3. №2. С. 47-57.
12. Ирматов А. А. Оценки числа пороговых функций // Дискретная математика. 1996. Т. 8. №4. С. 92-107.
13. Ирматов А. А., Ковиянич Ж. Д. Об асимптотике логарифма числа пороговых функций K-значной логики // Дискретная математика. 1998. Т. 10. №3. С. 35-56.
14. Winder R. O. Show parametrs in threshold logic //J. Association for Computing Machinery. 1971. V. 18. No. 2. P. 265-289.
REFERENCES
1. Dertouzos M. Porogovaya logika [Threshold Logic]. Moscow, Mir Publ., 1967. (in Russian)
2. Moraga K. Mnogoznachnaya porogovaya logika [Multiple-valued threshold logic]. Opticheskie Vychisleniya. Moscow, Mir Publ., 1993, pp. 162-182. (in Russian)
3. Nikonov V. G. and Sidorov E. S. O sposobe postroeniya vzaimno odnoznachnykh otobrazheniy pri pomoshchi kvaziadamarovykh matrits [About the possibility of one-to-one mappings representation by the quasi-hadamard matrixes]. Vestnik Moskovskogo Gosudarstvennogo Universiteta Lesa — Lesnoy Vestnik, 2009, no. 2(65), pp. 155-157. (in Russian)
66
fl.. A. COWMH
4. Nikonov V.G. and Soshin D. A. Geometricheskiy metod postroeniya sbalansirovannykh k-znachnykh porogovykh funktsiy i sintez podstanovok na ikh osnove [The geometric method for constructing a balanced k-valued threshold functions and construction of substitutions based on them]. Obrazovatel'nye Resursy i Tekhnologii, 2014, no. 2(5), pp. 76-80. (in Russian)
5. Soshin D. A. Postroenie podstanovok na osnove porogovykh funktsiy mnogoznachnoy logiki [Constructing substitutions on the basis of threshold functions of multivalued logic]. Prikladnaya Diskretnaya Matematika, 2016, no. 2(32), pp. 20-32. (in Russian)
6. GOST R 34.12-2015 Informatsionnaya tekhnologiya. Kriptograficheskaya zashchita informatsii. Blochnye shifry [GOST R 34.12-2015 Information technology. Cryptographic protection of information. Block ciphers]. Moscow, Standartinform Publ., 2015. (in Russian)
7. Dmukh A. A, Dygin D. M., and Marshalko G. B. A lightweight-friendly modification of GOST block cipher. Mat. Vopr. Kriptogr., 2014, vol.5, iss.2, pp. 47-55.
8. Soshin D. A. Konstruktivnyy metod sinteza sbalansirovannykh k-znachnykh algebraicheskikh porogovykh funktsiy [The constructive method for synthesis of balanced k-valued algebraic threshold functions]. Comp. Nanotechnol., 2015, no. 4, pp. 31-36. (in Russian)
9. Soshin D. A. Predstavlenie geometricheskikh tipov bulevykh funktsiy ot trekh peremennykh algebraicheskimi porogovymi funktsiyami [Representation of geometric types of Boolean functions in three variables by algebraic threshold functions]. Prikladnaya Diskretnaya Matematika, 2016, no. 1(31), pp.32-45. (in Russian)
10. Nikonov V. G. Klassifikatsiya minimal'nykh bazisnykh predstavleniy vsekh bulevykh funktsiy ot chetyrekh peremennykh [The classification of minimal basic representations of Boolean functions of four variables]. Obozrenie Prikladnoy i Promyshlennoy Matematiki. Ser. Diskretnaya Matematika, 1994, vol. 1, no. 3, pp. 458-545. (in Russian)
11. Zuev Yu. A. Kombinatorno-veroyatnostnye i geometricheskie metody v porogovoy logike [Combinatorial-probability and geometric methods in threshold logic]. Diskr. Mat., 1991, vol.3, no.2, pp.47-57. (in Russian)
12. Irmatov A. A. Otsenki chisla porogovykh funktsiy [Estimates for the number of threshold functions]. Diskr. Mat., 1996, vol.8, iss.4, pp.92-107. (in Russian)
13. Irmatov A. A., Koviyanich Zh. D. Ob asimptotike logarifma chisla porogovykh funktsiy K-znachnoy logiki [On the asymptotics of the logarithm of the number of threshold functions of K-valued logic]. Diskr. Mat., 1998, vol.10, iss. 3, pp. 35-56. (in Russian)
14. Winder R. O. Show parametrs in threshold logic. J. Association for Computing Machinery, 1971, vol.18, no. 2, pp. 265-289.