Научная статья на тему 'Свойства компонент некоторых классов векторных булевых функций'

Свойства компонент некоторых классов векторных булевых функций Текст научной статьи по специальности «Математика»

CC BY
185
19
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
ВЕКТОРНАЯ БУЛЕВА ФУНКЦИЯ / ОБРАТИМЫЕ ФУНКЦИИ / НЕЛИНЕЙНОСТЬ ВЕКТОРНОЙ БУЛЕВОЙ ФУНКЦИИ / КОМПОНЕНТНАЯ АЛГЕБРАИЧЕСКАЯ ИММУННОСТЬ / VECTORIAL BOOLEAN FUNCTIONS / INVERTIBLE FUNCTIONS / NONLINEARITY / COMPONENT ALGEBRAIC IMMUNITY

Аннотация научной статьи по математике, автор научной работы — Панкратова Ирина Анатольевна

В классе обратимых векторных булевых функций от n переменных с координатными функциями, существенно зависящими от всех переменных, рассматриваются подклассы Kn и K'n. Функции этих классов получены с помощью n независимых транспозиций соответственно из тождественной подстановки и из подстановки, каждая координатная функция которой существенно зависит от одной переменной. Приводятся некоторые свойства компонент функций из этих классов.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Properties of components for some classes of vectorial Boolean functions

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 = (f1... fn) G Kn ^Kn and i G {1,... ,n}, the coordinate function fi has a single linear variable, each component function vF with vector v G F2n of a weight greater than 1 has no fictitious and linear variables , the nonlinearity NF , the degree deg F, and the component algebraic immunity AIcomp ( F ) are 2, n 1, and 2 respectively.

Текст научной работы на тему «Свойства компонент некоторых классов векторных булевых функций»

ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА 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 выполняются следующие свойства:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

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.

i Надоели баннеры? Вы всегда можете отключить рекламу.