ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА 2019 Теоретические основы прикладной дискретной математики №44
ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПРИКЛАДНОЙ ДИСКРЕТНОЙ МАТЕМАТИКИ
УДК 519.7
СВОЙСТВА КОМПОНЕНТ НЕКОТОРЫХ КЛАССОВ ВЕКТОРНЫХ БУЛЕВЫХ ФУНКЦИЙ1
И. А. Панкратова
Национальный исследовательский Томский государственный университет, г. Томск,
Россия
В классе обратимых векторных булевых функций от n переменных с координатными функциями, существенно зависящими от всех переменных, рассматриваются подклассы Kn и K'n. Функции этих классов получены с помощью n независимых транспозиций соответственно из тождественной подстановки и из подстановки, каждая координатная функция которой существенно зависит от одной переменной. Приводятся некоторые свойства компонент функций из этих классов.
Ключевые слова: векторная булева функция, обратимые функции, нелинейность векторной булевой функции, компонентная алгебраическая иммунность.
DOI 10.17223/20710410/44/1
PROPERTIES OF COMPONENTS FOR SOME CLASSES OF VECTORIAL BOOLEAN FUNCTIONS
I. A. Pankratova
National Research Tomsk State University, Tomsk, Russia
E-mail: [email protected]
In the class of invertible vectorial Boolean functions in n variables with coordinate functions depending on all variables, we consider the subclasses Kn and K'n, where the functions are obtained using n independent transpositions, respectively, from the identity permutation and from the permutation with coordinate functions essentially dependent on exactly one variable. We show that, for any F = (fi... fn) € Kn U Kn and i € {1,..., n}, the coordinate function fi has a single linear variable, each component function vF with vector v € Fn of a weight greater than 1 has no fictitious and linear variables , the nonlinearity Np, the degree deg F, and the component algebraic immunity AIcomp(F) are 2, n — 1, and 2 respectively.
Keywords: vectorial Boolean functions, invertible functions, nonlinearity, component algebraic immunity.
1 Работа поддержана грантом РФФИ, проект №17-01-00354.
Введение
Векторные булевы функции широко используются при построении симметричных и асимметричных криптосистем [1-3]. К этим функциям предъявляются различные требования: они должны быть обратимы, обладать хорошими криптографическими свойствами, допускать компактное представление, быстро вычисляться. Один из способов удовлетворить последним двум требованиям — ограничение на число существенных переменных координатных функций. В [1,4] описаны методы получения обратимых векторных булевых функций от n переменных, каждая координата которых существенно зависит ровно от k переменных, k < n. Отправной точкой для этих методов служат функции от k переменных, каждая координата которых существенно зависит от всех переменных. В данной работе рассматриваются два класса таких функций — Kn и K!n, устанавливаются некоторые криптографические свойства функций в них, в том числе значения для их нелинейности, степени и компонентной алгебраической иммунности.
1. Описание классов Kn и K'n
Для n £ N рассмотрим обратимые векторные булевы функции F = (fi... fn) на Fn, такие, что координатные функции f : Fn ^ F2, i = 1,... , n, существенно зависят от всех переменных x1,..., xn; обозначим класс таких функций Fn. В [5] предложен алгоритм 1 построения некоторой такой функции, который состоит в следующем: стартуя с тождественной подстановки G : Fn ^ Fn, на i-м шаге, i = 1,... , n, выбираем множество Mi = {a, b}, где а, b £ Fn, а и b отличаются только в i-й координате (соседние по ней) и не принадлежат Mj для j < i, и меняем местами значения G(a) и G(b). Таким образом, по построению, Mi П Mj = 0 для всех i,j = 1,... ,n, i = j, и для любого а = а1... an £ Fn имеет место
„ . . Jai 0 1, если а £ Mi,
fi(a) =4 (1)
I ai иначе.
Обозначим класс функций, которые можно получить алгоритмом 1 (при всевозможных способах выбора пар a,b), через Kn. В [5] доказано, что Kn = 0 для всех n > 2; в [6] описаны некоторые свойства координат функций из Kn.
Для любой рассматриваемой далее функции F £ Kn и любого i £ {1,... , n} под Mi подразумевается та пара векторов в Fn, соседних по i-й координате, которую алгоритм 1 выбирает на своём i-м шаге.
В [5] предложена модификация алгоритма 1 построения функций из класса Kn, состоящая в том, что отправной точкой алгоритма является не обязательно тождественная подстановка G, а такая, что каждая координатная функция существенно зависит ровно от одной переменной, т. е. G(x) = (g1(x)... gn(x)), x = x1... xn, gi = xj^, где {j\,... , jn} = {1,... , n}, ai £ {0,1} и x0 = xi, x1 = xi, i = 1,... , n. Будем называть эту модификацию алгоритмом 1', а класс функций, которые можно таким образом получить, обозначим Kn.
В [4, утверждение 1] доказано, что обратимых функций на Fn, каждая координатная функция которых существенно зависит от двух переменных, не существует ни при каких n £ N. Таким образом, F2 = 0, следовательно, K2 = K'2 = 0 ввиду Kn С Kn С Fn.
Основные результаты данной работы относятся к свойствам компонент (линейных комбинаций координат) функций из классов Kn и Kn.
2. Свойства функций класса Кп
Определение 1. Переменная хг называется линейной (или фиктивной) для булевой функции /(х), если /(а) = /(Ь) (или соответственно /(а) = /(Ь)) для каждой пары (а,Ь) соседних по г-й координате векторов.
Утверждение 1. Пусть Г = (/... /п) € Кп. Тогда для каждого г = 1,... , п функция /г имеет единственную линейную переменную — хг.
Доказательство. Пусть а, Ь € Fn — произвольные соседние по г-й координате векторы. Поскольку множество Мг содержит два соседних по г-й координате вектора, имеет место а, Ь € Мг или а, Ь € Мг. Отсюда ввиду аг = Ьг и (1) имеем /г(а) = /г(Ь). Значит, хг — линейная переменная функции /г.
Для к = г выберем соседние по к-й координате векторы с, ^ € Мк. Тогда с, ^ € Мг ввиду Мг П Мк = 0. Получим /г(с) = сг = = /г(^). Следовательно, Хк не является линейной переменной для /г. ■
Пусть V = (^1... гп) € (Fn)* = Fn \ {00 ... 0}. Компонентой функции Г = (/1... /п)
п
называется скалярное произведение г Г : Fn ^ F2, гГ(х) = фгг/г(х) = ф /г(х).
г=1 ^¿=1
Через '№(г') обозначим вес вектора V (количество единиц в нём).
Лемма 1. Пусть М = {а1, а2,..., а2к} С Fn, к ^ 2 и векторы а2г-1, а2г соседние по ^-й координате, г = 1,... , к, 1 ^ ^ < < ... < ]к ^ п. Тогда для любого г € {1,... , п} множество М нельзя разбить на пары векторов, соседних по г-й координате.
Доказательство. Заметим, что два соседних по ^-й координате вектора имеют вид х0у, х1у для некоторых х € F2г-1, у € Fn-jг. Тогда сумма по модулю 2 всех векторов из М равна Ь = е^ ф ф ... ф е ^, где е4 — булев вектор длины п и веса 1, имеющий 1 в ¿-й координате.
Если множество М можно разбить на к пар векторов, соседних по г-й координате,
то
2к I ег, если к нечётное,
Ф а^' = \
j=l I 00 ... 0, если к чётное, 2к
что противоречит равенству ф aj = Ь при к ^ 2. ■
j=l
Утверждение 2. Пусть Г = (/1... /п) € Кп. Тогда для каждого V = г1... гп € € Fn, такого, что '№(г) ^ 2, компонентная функция г Г не имеет фиктивных и линейных переменных.
Доказательство. Обозначим V = {к : гк = 1}, М = и Мк. Тогда по построе-
кеу
нию функции Г для любого а = а1... ап € Fn имеет место
гГ (а)
ак ф 1 , если а М,
кеу
ф ак, если а € М. кеу
Докажем, что для любого г = 1,... , п переменная хг не является ни фиктивной, ни линейной для функции г Г, т.е. найдутся соседние по г-й координате векторы а,Ь, такие, что г Г(а) = г Г(Ь), и найдутся соседние по г-й координате векторы с, такие, что г Г(с) = г Г
Случай 1: vi = 1. Выберем a, b £ Mi С M. Тогда
vF(a) = 0 afc 0 1=0 afc 0 a 0 1, fcev fcev\M
vF(b)=0 bfc 0 1=0 bfc 0 Ьг 0 1=0 afc 0 аг = vF(a), fcev fcev\(í} fcev\{í}
последнее равенство здесь верно ввиду того, что a и b соседние по i-й координате.
Заметим, что множество M есть объединение векторов, образующих пары, соседние по координатам с номерами из V. По лемме 1 множество M нельзя разбить на пары векторов, соседних по i-й координате; другими словами, найдётся такой вектор c £ M, что соседний ему по i-й координате вектор d не принадлежит M. Получим
vF(c) = 0 cfc 0 1=0 cfc 0 Ci 0 1, fcev fcev\M
vF(d)=0 dfc = 0 dfc 0 di = 0 cfc 0 c 0 1 = vF(c). fcev fcev\{i} fcev\{i}
Случай 2: vi = 0. В этом случае пары векторов a, b и c, d меняются местами, а именно: для c, d £ M¿ С M получим
vF(c) = 0 cfc, vF(d) = 0 dfc = 0 cfc = vF(c). fcev fcev fcev
Выберем соседние по i-й координате векторы a, b так, чтобы a £ M, b £ M; запишем
vF (a) = 0 afc 0 1, vF (b) = 0 bfc = 0 afc = vF (a). fcev fcev fcev
Утверждение доказано. ■
3. Свойства функций класса K^ Утверждение 3. Пусть F = (f... fn) £ K^ и F получена алгоритмом 1' из начальной подстановки G(x) = (xj1 ... xj"). Тогда fi имеет единственную линейную переменную — Xj, i = 1,... , n.
Доказательство. Рассуждения аналогичны приведённым в доказательстве утверждения 1. Для любого a = ai... an £ F^ имеет место
,, , , I aji 0 1, если a £ M7-.,
fi(a) = 4 Л
I a^ иначе.
Тогда для всех пар (a,b) соседних по ji-й координате векторов получаем a,b £ Mj. или a,b £ Mj., отсюда Xj —линейная переменная функции fi; для соседних по j-й координате векторов c, d £ MJfc при k = i получим fi (c) = fi(d), значит, xJfc не является линейной переменной для fi. ■
Утверждение 4. Пусть ^ = (/1... /п) £ К. Тогда для всех V = VI... гп £ Е^, таких, что w(г) > 2, компонентная функция г^ не имеет фиктивных и линейных переменных.
Доказательство. Аналогично доказательству утверждения 2, только в качестве множества М выберем М = и М?к, где О = (х^1 ... х^™) — начальная подстановка
в алгоритме 1', из которой получена функция ^. ■
Очевидно, что Kn С К; в [5] доказано, что алгоритм 1' (и, тем более, алгоритм 1) не обладает свойством полноты в том смысле, что существуют функции класса Fn, которые невозможно получить с его помощью. В [6] приведены экспериментальные данные для мощности |Kn| при n = 3,... , 6.
Обозначим d(f, g) расстояние между булевыми функциями f и g от n переменных: d(f,g) = |{а€ Fn : f(а) = g(a)}|.
Утверждение 5. |К | = 2n n!|Kn|.
Доказательство. Поскольку К2 = К2 = 0, считаем, что n > 2.
Множество возможных начальных подстановок алгоритма 1' вида G = (xj1 ... xj") образует группу Джевонса, порядок которой равен 2n n! [7, с. 129]. Для доказательства утверждения надо показать, что алгоритм 1', стартуя с разных начальных подстановок, не получит одинаковых функций класса К'п.
Пусть Fi, F2 € КП, Fi получена из подстановки Gi = (xj1 ... xj"), F2 — из подстановки G2 = (x^1 ... x^") и G1 = G2, т. е. jj = ij или a = ^ для некоторого i € {1,... , n}.
Предположим, что F1 = F2. По утверждению 3, i-я координата F1 имеет единственную линейную переменную xJi, i-я координата F2 — единственную линейную переменную xti, следовательно, j = tj, i = 1,..., n.
По построению в алгоритме 1', для f1i (i-й координаты функции F1) имеем d(f1i,xj.i) = 2, для f2j (i-й координаты функции F2) — d(f2i,xj) = 2. В случае F1 = F2 и a = ij получаем f1i = f2j и d(f1i,xJi) = d(f1i,xj-i) = 2. По неравенству треугольника
2n = d(xji,xA) ^ d(fij,xJi) + d(fij,xJi) = 4, что невозможно при n > 2. ■
Приведём, следуя [8], определения некоторых криптографических характеристик векторных булевых функций F : Fn ^ F^.
Определение 2. Нелинейностью функции F : Fn ^ F^ называется минимальная нелинейность её компонент:
= min = min d(vF, An) = min min d(vF, g),
ve(Fm)* ve(Fm)* ve(Fm)* geAn
где A = {ax ф b : a € Fn, b € F2} — класс всех аффинных функций от n переменных.
Степень функции F — максимальная степень её компонент (совпадает с максимальной степенью координатных функций):
deg F = max deg vF.
ve(Fm)*
Аннигилятором булевой функции f (x) называется булева функция g(x) = const 0, такая, что f (x)g(x) = const 0; класс всех аннигиляторов функции f обозначается AN(f); алгебраическая иммунность функции f — минимальная степень среди всех аннигиляторов функций f и f ф 1:
AI(f )= min deg g. geAN(/)uAN(/®i)
Компонентная алгебраическая иммунность функции F — минимальная алгебраическая иммунность её компонент:
Alcomp(F) = min AI(vF).
ve(Fm)*
Утверждение 6. Для функции F G Kn выполняются следующие свойства:
1) = 2;
2) deg F = n — 1;
3) AIcomp(F) = 2;
4) если v G Fn и w(v) ^ 2n-3, то нелинейность компонентной функции vF равна
= 2w(v); в частности, это верно для любого v при n ^ 6; для всех v = 11111 при n = 5 и т. д.
Доказательство.
1) В [6] доказано, что Nf = 2 для всех координат / функции F, поэтому Nf ^ 2; Nf = 0, так как по утверждению 4 компонентные функции vF не имеют линейных и фиктивных переменных, следовательно, не являются аффинными; Nf = 1, так как все компонентные функции обратимой функции F являются уравновешенными [8, Proposition 2], т. е. имеют вес 2n-1 —чётное число при n > 1, вес функций класса A«, также чётный, а две функции чётного веса не могут отличаться друг от друга на одном наборе.
2) Следует из доказанного в [6] равенства deg / = n — 1 для i = 1,..., n.
3) В [6] доказано, что AI(/j) = 2, i = 1,...,n. Докажем, что AI(vF) = 1 для всех v G (Fn)*. Предположим противное: для функции h G {vF, vF ф 1} существует аннигилятор g G A^. Ввиду уравновешенности функций h и g и равенства gh = const 0 получаем, что h = g, т. е. h G An, что неверно.
4) По построению d(vF, vx)
и Mlk
Vk = 1
2w(v), где vx = ф v^Xi и G
i=1
= (xj1 ... xj") —начальная подстановка в алгоритме 1', из которой получена функция F. Поэтому Nvf ^ 2w(v). Предположим, что существует функция g G A^, g = vx, такая, что d(g,vF) < 2w(v). По неравенству треугольника получим
2n-1 = d(g,vx) ^ d(g,vF) + d(vF,vx) < 2w(v) + 2w(v) = 4w(v),
что неверно при w(v) ^ 2n-3. Утверждение доказано. ■
Замечание 1. Эксперименты показывают, что равенство Nvf = 2w(v) выполняется и для n = 5 и v =11111.
Автор выражает благодарность Е. Е. Трифоновой и Н. М. Киселевой, чьи компьютерные эксперименты помогли сформулировать свойства функций класса Kn.
ЛИТЕРАТУРА
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. Agibalov G. P. ElGamal cryptosystems on Boolean functions // Прикладная дискретная математика. 2018. №42. С. 57-65.
4. Панкратова И. А. Об обратимости векторных булевых функций // Прикладная дискретная математика. Приложение. 2015. №8. С. 35-37.
5. Pankratova I. A. Construction of invertible vectorial Boolean functions with coordinates depending on given number of variables // Материалы Междунар. науч. конгресса по информатике: Информационные системы и технологии. Республика Беларусь, Минск, 24-27 окт. 2016. Минск: БГУ, 2016. С. 519-521.
6. Карпова Л. А., Панкратова И. А. Свойства координатных функций одного класса подстановок на Fn // Прикладная дискретная математика. Приложение. 2017. №10. С. 38-40.
7. Логачев О. А., Сальников А. А., Ященко В. В. Булевы функции в теории кодирования и криптологии. М.: МЦНМО, 2004.
8. Carlet C. Vectorial Boolean Functions for Cryptography. Cambridge: Cambridge University Press, 2010. 93 p.
REFERENCES
1. Agibalov G. P. Substitution block ciphers with functional keys. Prikladnaya Diskretnaya Matematika, 2017, no. 38, pp. 57-65.
2. Agibalov G. P. and Pankratova I. A. Asymmetric cryptosystems on Boolean functions. Prikladnaya Diskretnaya Matematika, 2018, no. 40, pp. 23-33.
3. Agibalov G. P. ElGamal cryptosystems on Boolean functions. Prikladnaya Diskretnaya Matematika, 2018, no. 42, pp. 57-65.
4. Pankratova I. A. Ob obratimosti vektornykh bulevykh funktsiy [On the invertibility of vector Boolean functions]. Prikladnaya Diskretnaya Matematika. Prilozhenie, 2015, no.8, pp.35-37. (in Russian)
5. Pankratova I. A. Construction of invertible vectorial Boolean functions with coordinates depending on given number of variables. Proc. CSIST'16, Minsk, BSU Publ., 2016, pp. 519-521.
6. Karpova L. A. and Pankratova I. A. Svoystva koordinatnykh funktsiy odnogo klassa podstanovok na Fn [Properties of coordinate functions for a class of permutations on Fn]. Prikladnaya Diskretnaya Matematika. Prilozhenie, 2017, no. 10, pp. 38-40. (in Russian)
7. Logachev O.A., Sal'nikov A. A., and Yashchenko V. V. Bulevy funktsii v teorii kodirovaniya i kriptologii [Boolean Functions in Coding Theory and Cryptology]. Moscow, MCCME Publ., 2004, 472 p. (in Russian)
8. Carlet C. Vectorial Boolean Functions for Cryptography. Cambridge: Cambridge University Press, 2010. 93 p.