4. Feulner T., SokL., Solé P., and Wassermann A. Towards the classification of self-dual bent functions in eight variables // Des. Codes Cryptogr. 2013. V. 68. No. 1. P. 395-406.
5. Luo G., Cao X., and Mesnager S. Several new classes of self-dual bent functions derived from involutions // Cryptogr. Commun. 2019. V. 11. No. 6. P. 1261-1273.
6. LiY., KanH., Mesnager S., et al. Generic constructions of (Boolean and vectorial) bent functions and their consequences // IEEE Trans. Inform. Theory. 2022. V. 68. No. 4. P. 27352751.
7. Wolfmann A. Special bent and near-bent functions // Adv. Math. Commun. 2014. V. 8. No. 1.
8. Danielsen L. E., Parker M. G., and Sole P. The Rayleigh quotient of bent functions // LNCS. 2009. V. 5921. P. 418-432.
9. Canteaut A. and Charpin P. Decomposing bent functions // IEEE Trans. Inf. Theory. 2003. V. 49. No. 8. P. 2004-2019.
10. PreneelB., Van Leekwijck W., Van Linden L., et al. Propagation characteristics of Boolean functions // LNCS. 1990. V. 473. P. 161-173.
11. Kutsenko A. Metrical properties of self-dual bent functions // Des. Codes Cryptogr. 2020. V. 88. No. 1. P. 201-222.
УДК 519.7 DOI 10.17223/2226308X/15/8
Предложен алгоритм генерации обратимой векторной булевой функции, все координатные функции которой существенно зависят от всех переменных.
Ключевые слова: векторные булевы функции, подстановки, существенная зависимость функции от переменной.
Обозначим через Р2(п) множество всех булевых функций от п переменных. Говорят, что переменная хг, 1 ^ г ^ п, существенная для функции f (х1,... ,хп) € Р2(п) ^ существенно зависит от переменной хг), если найдётся пара наборов а,Ь € ЖП, соседних по г-й координате, такая, что f (а) = f (Ь); будем называть такую пару наборов доказывающей существенность переменной хг для функции f (или просто доказывающей парой, если из контекста ясно, о каких переменной и функции идёт речь). Переменная, от которой функция не зависит существенно, называется фиктивной для этой функции; функции, существенно зависящие от всех переменных, — невырожденными.
Векторной булевой функцией ((п,т) — ) называется отображение ^ : ЖП ^ ЖТ. Такую функцию можно рассматривать как упорядоченный набор из т булевых функций г = 1,..., т, которые называются координатными функциями: ^ = (fl... ^).
Оценим вероятность того, что случайно сгенерированная векторная булева функция невырожденная. По формуле включений и исключений определим Оп — количество функций в Р2(п), имеющих фиктивные переменные:
Вероятность того, что булева функция от п переменных невырожденная, равна
P. 21-33.
ГЕНЕРАЦИЯ ВЕКТОРНЫХ БУЛЕВЫХ ФУНКЦИЙ С НЕВЫРОЖДЕННЫМИ КООРДИНАТНЫМИ ФУНКЦИЯМИ
И. А. Панкратова, Е. А. Рубан, С. В. Чикалова
Pn 1 Dn/2 •
(1)
Вычисления по формуле (1) показывают, что Рп ~ 1 при п ^ 5. Для случайной (п,т)-функции получаем вероятность невырожденности
Рассмотрим случай, когда n = m и F обратима, т. е. является подстановкой на Z^. Подстановки используются во многих криптосистемах, в частности в криптосистемах с функциональными ключами [1, 2]. Для обеспечения стойкости криптосистем функции в них должны обладать определёнными свойствами; одно из таких свойств — существенная зависимость всех координат от всех переменных (т. е. их невырожденность). Векторную булеву функцию назовём невырожденной, если все её координатные функции невырожденные.
Для подстановок не удалось найти или получить формулу, аналогичную (2), но проведённые эксперименты дают тот же результат: начиная с n = 5, почти все случайно сгенерированные подстановки оказываются невырожденными. Тем не менее считаем, что задача генерации невырожденной подстановки не теряет своей значимости; например, в некоторой криптосистеме могут использоваться не любые подстановки, а из какого-то класса, для которого доля невырожденных подстановок в нём может оказаться другой (не близкой к 100%).
Ранее в [3] предложен алгоритм генерации невырожденных подстановок с помощью n независимых транспозиций из тождественной подстановки или из такой, все координатные функции которой имеют ровно одну существенную переменную; обозначим классы подстановок, доставляемых этим алгоритмом, через Kn и Kn соответственно. В [4, 5] описаны свойства функций этих классов, некоторые из них оказались неудовлетворительными с точки зрения криптографической стойкости. Кроме того, алгоритм в [3] не обладает свойством полноты, т.е. не может получить любую невырожденную подстановку. В данной работе эта проблема решена.
Докажем вспомогательные утверждения для булевых функций.
Утверждение 1. Пусть f G P2(n), f = const и xi — фиктивная переменная для f. Выберем два произвольных набора a,b G Zn, таких, что f (a) = f (b), и построим функцию g G P2(n) так: g(a) = f (b), g(b) = f (a), g(c) = f (c) для всех c G Zn \ {a,b}. Тогда функция g существенно зависит от переменной Xi.
Доказательство. Пусть c — набор, соседний с a по i-й координате. Заметим, что c = b, так как xi — фиктивная переменная для f и f (a) = f (b). Получим
т. е. хг — существенная переменная для д. ■
Замечание 1. Поскольку выбор наборов а,Ь в утверждении 1 не зависит от номера фиктивной переменной, все переменные, фиктивные для f, являются существенными для построенной функции д.
Обозначим через ег, 1 ^ г ^ п, булев вектор длины п с единственной единицей в г-й координате; w(f) —вес функции f.
Утверждение 2. Пусть f С Р2(п), п ^ 3, f уравновешенная и имеет фиктивную переменную. Тогда для каждой её существенной переменной найдётся не менее трёх доказывающих пар.
g(c) = f (c) = f (a) = f (b)= g(a),
Доказательство. Пусть хг — существенная и х, — фиктивная переменные для функции f. Тогда f (у) = f (у ф ег) для некоторого у € ЖП. В силу фиктивности переменной х, можем записать, что
f (У Ф е,-) = f (у) = f (у Ф ег) = f (у ф ег ф е,),
т. е. имеем две доказывающие пары: (у, у ф ег) и (у ф е, ,у ф ег ф е,).
Разобьём множество Zn на четвёрки наборов вида (х,х ф ег,х ф е, ,х ф ег ф е,); одна из них (при х = у) содержит две доказывающие пары, а функция f на наборах этой четвёрки дважды принимает значение 0 и дважды 1.
Предположим, что больше доказывающих пар нет, тогда ввиду f (х ф е,) = f (х) = = f (х ф ег) = f (х ф ег ф е,) на наборах из каждой четвёрки (кроме случая х = у) функция f принимает одно и то же значение; пусть это значение равно 1 на к четвёрках. Получаем
w(f) = 2 + 4к = 2п-1;
второе равенство должно выполняться в силу уравновешенности f, но оно невозможно при п ^ 3. ■
Следствие 1. Пусть для функции f выполнены условия утверждения 2. Тогда функция д, построенная способом, описанным в утверждении 1, невырожденная.
Доказательство. Если переменная фиктивная для функции f, то она является существенной для д (см. замечание 1).
Если переменная хг существенная для функции f, то по утверждению 2 для неё существует не менее трёх доказывающих пар. Функция д отличается от функции f на двух наборах, поэтому независимо от того, как будут выбраны эти наборы, хотя бы одна пара, доказывающая существенность переменной хг для функции д, останется. ■
На основании следствия 1 с учётом того, что координаты любой подстановки на Zn уравновешены, получаем следующие два утверждения.
Утверждение 3. Пусть п ^ 3; а,Ь € Zn — произвольные взаимно инверсные наборы; О — подстановка на Zn, такая, что О(а) = Ь, О(Ь) = а, О(е) = с для всех с € Zn \ {а,Ь}. Тогда О невырожденная.
Утверждение 4. Пусть п ^ 3; ^ — подстановка на Zn, каждая координата которой имеет хотя бы одну фиктивную переменную; Г (х) = а и Г (у) = Ь, где а,Ь € Zn — произвольные взаимно инверсные наборы. Построим подстановку О на Zn так: О(х) = Ь, О(у) = а, О(с) = Г (с) для всех с € Zn \ {а, Ь}. Тогда О невырожденная.
Оба утверждения имеют недостатки — функция О в утверждении 3 близка к тождественной, а в утверждении 4 строится из «особой» подстановки Г, которую ещё надо как-то получить. Оба недостатка преодолены в алгоритме 1.
Полнота алгоритма 1 обеспечивается выбором любой подстановки на шаге 1.
Корректность алгоритма следует из того, что для функций fi, которые меняются на шаге 6, выполнены условия следствия 1, следовательно, после обмена Г (х) О Г (у) они станут невырожденными. Остальные координатные функции Г невырожденные уже с шага 1.
Для выполнения шага 1 в алгоритме 2 можно адаптировать на случай векторной функции алгоритм из [6, разд. 6.2].
Алгоритм 1. Генерация невырожденной подстановки на ЖП Вход: п € N п ^ 3.
Выход: подстановка Г = (Л ... Лп) : ЖП ^ ЖП, такая, что функции Л существенно зависят от всех переменных, г = 1 , . . . , п.
1: Построить случайную подстановку Г = (Л ... /п) на ЖП любым известным алгоритмом (например, методом тасования Фишера — Йетса [7]).
2: Построить вектор V = .. .ьп) € ЖП, такой, что vг =1 ^ fi имеет фиктивную переменную, г = 1,..., п (см. алгоритм 2).
3: Если V = 0 ... 0, то выход, ответ — Г.
4: Выбрать любой набор х € ЖП.
5: Найти у € ЖП, такой, что Г (у) = Г (х) ф V.
6: Поменять местами значения Г (х) и Г (у).
7: Выход, ответ — Г.
Алгоритм 2. Анализ вырожденности векторной булевой функции Вход: функция Г = (Л ... : ЖП ^ Ж™
Выход: вектор V = ^ ... V™) € ЖТ, такой, что V = 1 ^ Л имеет фиктивную переменную, г = 1,..., т. 1: Выполнить преобразование Мёбиуса О = (д1... дт) = ^(Г), где дг(а1,... , ап) = 1 ^ моном х^1 ... хПп входит в АНФ функции /¿. 2: Для всех г = 1,... ,т:
3: вычислить с := \/ а;
0,62^:^(0,) = 1 4: Если с = 1,..., 1, то
V* := 0, 5: иначе 6: V := 1.
ЛИТЕРАТУРА
1. Agibalov G. P. Substitution block ciphers with functional keys // Прикладная дискретная математика. 2017. №38. С. 57-65.
2. Agibalov G. P. and Pankratova I. A. Asymmetric cryptosystems on Boolean functions // Прикладная дискретная математика. 2018. №40. С. 23-33.
3. Pankratova I. A. Construction of invertible vectorial Boolean functions with coordinates depending on given number of variables // Материалы Междунар. науч. конгресса по информатике: Информационные системы и технологии. Республика Беларусь, Минск, 24-27 окт. 2016. Минск: БГУ, 2016. С. 519-521.
4. Карпова Л. А., Панкратова И. А. Свойства координатных функций одного класса подстановок на Fn // Прикладная дискретная математика. Приложение. 2017. №10. С. 38-40.
5. Панкратова И. А. Свойства компонент некоторых классов векторных булевых функций // Прикладная дискретная математика. 2019. №44. С. 5-11.
6. Панкратова И. А. Булевы функции в криптографии. СПб., М., Краснодар: Лань, 2019.
7. Кнут Д. Э. Искусство программирования. Т. 2. Получисленные алгоритмы. 3-е изд. М.: Вильямс, 2007.