Научная статья на тему 'АЛГОРИТМ ПОИСКА АФФИННЫХ АННИГИЛЯТОРОВ БУЛЕВОЙ ФУНКЦИИ'

АЛГОРИТМ ПОИСКА АФФИННЫХ АННИГИЛЯТОРОВ БУЛЕВОЙ ФУНКЦИИ Текст научной статьи по специальности «Математика»

CC BY
84
11
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
БУЛЕВЫ ФУНКЦИИ / АННИГИЛЯТОР / АФФИННЫЕ ФУНКЦИИ

Аннотация научной статьи по математике, автор научной работы — Зеленецкий А.С., Ключарев П.Г.

Задача нахождения аннигиляторов низкой степени для произвольной булевой функции до сих пор не имеет эффективных алгоритмов решения. Настоящая работа посвящена предложенному нами алгоритму поиска аффинных аннигиляторов для произвольной булевой функции. Построение нашего алгоритма мы начинаем с исследования тождества fg ≡ 0 для произвольной булевой функции f и ее предполагаемого аффинного аннигилятора g . А именно, мы используем разложение по первой переменной функций f и g для перехода к уравнениям с булевыми функциям от меньшего числа переменных. По сути, мы устанавливаем эквивалентность между тождеством fg ≡ 0 для булевых функций от n переменных и системой уравнений, содержащей булевы функции от n-1 переменной.Алгоритм поиска аффинных аннигиляторов булевой функции f находит все такие аффинные функции g , что fg ≡ 0. Предложенный нами алгоритм основан на сведении задачи нахождения базиса пространства аффинных аннигиляторов для булевой функции от переменных к той же самой задаче для двух ее подфункций от n-1 переменной. У разработанного нами алгоритма можно выделить следующие преимущества:Алгоритм способен принимать входную функцию в различных представлениях;Выходные функции также могут иметь различные представления;Алгоритм может быть эффективно распараллелен.Отметим, что полученный нами результат не является конечным и имеет несколько направлений для развития, среди которых мы отдельно выделим, во-первых, изучение влияния на работу алгоритма различных представлений его входа и выхода и, во-вторых, использование идеи построения нашего алгоритма для разработки алгоритмов поиска аннигиляторов второй, третьей и т.д. степеней для заданной булевой функции.

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

AFFINE ANNIHILATOR FINDING ALGORITHM FOR BOOLEAN FUNCTION

So far, there are no efficient algorithms to solve a problem of finding the low degree annihilators for arbitrary Boolean function. In the paper we present a new algorithm to find affine annihilators for an arbitrary Boolean function. We start with considering the identity fg ≡ 0 or the arbitrary Boolean function f and its possible affine annihilator g. We use a special representation of the Boolean function in sum of its sub-functions to reduce degrees of considering functions in previous identity. As a result, we establish equivalence between the identity fg ≡ 0 for Boolean functions of n variables and the system of Boolean equations of n-1 variable.An algorithm for finding the affine annihilators for the arbitrary Boolean function f must find all the affine functions g so that fg ≡ 0. Our algorithm is based on reducing the problem of finding the affine annihilators for the Boolean function f of n to the similar problem for its sub-functions of n-1 variable. The presented algorithm has the following advantages:An input function can be presented in different ways;Output can be also presented in different ways;The algorithm can be effectively parallelized.It should be noted that the result we have obtained is not final and highlights some development directions: first, to study the impact of its input and output on the efficiency of the algorithm of various representations and, second, to use our idea of constructing the algorithm for development of algorithms, which allow finding the 2nd, 3rd, etc. degree annihilators for a specified Boolean function.

Текст научной работы на тему «АЛГОРИТМ ПОИСКА АФФИННЫХ АННИГИЛЯТОРОВ БУЛЕВОЙ ФУНКЦИИ»

Математика и математическое моделирование. 2021. №1. С. 13-26.

DOI: 10.24108/mathm.0121.0000255

© Зеленецкий А. С., Ключарев П. Г., 2021.

Математика U Математическое

моделирование

Сетевое научное издание http://mathmelpub.ru ISSN 2412-5911

УДК 512.563

Алгоритм поиска аффинных аннигиляторов булевой функции

Л "к Л

Зеленецкий А. С.1' , Ключарев П. Г.1

1МГТУ им. Н.Э. Баумана, Москва, Россия * Zelenetskiy_alexey@mail.ru

Булева функция д называется аннигилятором булевой функции /, если выполнено тождество /д = 0. Одной из областей применения аннигиляторов является криптография — например, аннигиляторы фильтрующей функции фильтрующего генератора псевдослучайных последовательностей можно использовать для нахождения состояния этого генератора. Однако далеко не всегда такой способ определения состояния генератора будет применимым и эффективным. Для его успеха необходимо наличие у фильтрующей функции аннигиляторов низкой алгебраической степени. В данной работе предложен алгоритм поиска аффинных аннигиляторов булевой функции.

Ключевые слова: булевы функции, аннигилятор, аффинные функции Представлена в редакцию: 03.04.2021.

Введение

Зачастую в криптографии можно встретить задачу решения системы булевых полиномиальных уравнений. При высоких алгебраических степенях исходных уравнений решение такой системы на практике, как правило, невозможно в связи с большой вычислительной сложностью. Однако существуют методы сведения исходной системы уравнений к более простой, которые в некоторых случаях могут помочь найти решение. Работа [1] положила начало новому алгебраическому методу решения булевых уравнений. В ней предлагались различные алгебраические подходы к поиску начального состояния так называемого фильтрующего генератора. Поиск начального состояния такого генератора можно свести к следующей системе булевых уравнений:

' / (х) = То, / (Ах) = 71,

< / (А*х) = ъ,

^ /(Атх) = 7т.

Здесь х = (я1, х2,..., хп) — вектор неизвестных булевых переменных; / — булева функция от п переменных; А — двоичная матрица размера п х п; 7г € {0,1}, г = 0, 1, ..., т.

Метод упрощения данной системы уравнений, предложенный в [1], заключается в понижении ее алгебраической степени путем домножения каждого уравнения на некоторую булеву функцию д = 0, удовлетворяющую двум следующим свойствам:

• функция д имеет низкую алгебраическую степень;

• функция /д имеет также низкую алгебраическую степень.

При домножении г-го уравнения системы с двух сторон на функцию д получим уравнение /(Агх)д(Агх) = 7гд(Агх). Легко видеть, что в случае выполнения двух указанных условий, правая и левая части уравнения будут иметь низкую алгебраическую степень. Данный метод получил свое развитие в работе [2]. Ее авторы предложили использовать такую функцию д, что функция /д является тождественно равной нулю. Булева функция д, для которой выполнено тождество /д = 0, называется аннигилятором функции /. Если для функции / найдется аннигилятор низкой алгебраической степени д, то уравнения вида / (Агх) = 1 можно будет заменить на уравнения вида д(Агх) = 0, имеющее, очевидно, более низкую алгебраическую степень. Рассмотрим теперь аннигилятор функции / + 1 — инверсии функции /. Обозначим его также за д, и пусть он также имеет низкую алгебраическую степень. Тождество (/ + 1)д = 0 эквивалентно тождеству /д = д, это дает возможность заменить уравнения вида /(Агх) = 0 на уравнения вида д(Агх) = 0. Как итог, в работе [2] метод из [1] был сведен к поиску либо аннигилятора низкой алгебраической степени для функции /, либо аннигилятора низкой алгебраической степени для функции / + 1.

В этой же работе вводится понятие порядка алгебраической иммунности булевой функции, которое впоследствии было отнесено к криптографическим свойством булевых функций. Формальное определение этого понятия дано нами в первом разделе настоящей работы. Заметим, что для практического осуществления изложенных алгебраических методов необходимо наличие алгоритмов, находящих некоторые или все аннигиляторы низкой алгебраической степени для заданной булевой функции. Перед тем, как дать краткий обзор имеющимся алгоритмам поиска аннигиляторов низкой алгебраической степени для произвольной булевой функции, мы бы хотели отдельно упомянуть работу [3], являющуюся в некотором смысле продолжением статьи [1]. В ней автор применяет предложенные в [1] методы для анализа поточных шифров ТОУОСЯУРТ, ЫЫ-128 и Е0.

Алгоритм нахождения аннигиляторов алгебраической степени не большей некоторого фиксированного й был представлен в работе [2]. Самым затратным шагом этого алгоритма является решение системы линейных уравнений относительно неизвестных коэффициентов алгебраической нормальной формы(далее АНФ) аннигилятора. Вычислительная сложность данного алгоритма линейно зависела от веса входной функции /. Таким образом, для большого количества булевых функций данный алгоритм имеет экспоненциальную сложность относительно числа переменных функции(например, для всех равновесных функций), что

говорит об его практической неприменимости для «больших» п. В работе [4] был представлен алгоритм, концептуально похожий на алгоритм из [2], однако отличающийся результирующей вычислительной сложностью. В отличие от упоминаемого ранее алгоритма, сложность алгоритма из [4] не зависит от веса входной булевой функции, а пропорциональна количеству ненулевых коэффициентов в ее АНФ. В работе [5] был представлен его усовершенствованный вариант. Более подробному описанию упоминаемых здесь алгоритмов посвящен второй раздел настоящей работы.

Помимо алгоритмов поиска аннигиляторов низкой алгебраической степени для заданной функции исследователей также интересуют связи порядка алгебраической иммуности с другими свойствами(необязательно криптографическими) булевой функции. Например, в работе [6] была выведена оценка, связывающая минимальную возможную алгебраическую степень аннигилятора заданной булевой функции и ее вес. Было доказано, что для произвольной булевой функции / от п переменных и для произвольного й < п, выполнение неравенства ^ (п) > ||/1|, где ||/1| — вес функции /, влечет за собой наличие у / аннигилятора алгебраической степени не большей, чем й. Также стоит отметить работы [7, 8, 9], посвященные исследованию взаимосвязи нелинейности г-го порядка с порядком алгебраической иммунности. Нельзя обойти стороной ограничение на порядок алгебраической иммунности произвольной булевой функции, полученное в работе [2]. А именно,

было доказано, что порядок алгебраической иммунности произвольной булевой функции от

Г п 1

п переменных не может превышать величины — .

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

1. Основные понятия и определения

В этом разделе изложены основные определения и известные утверждения [10], которые будут использоваться нами в следующих разделах. Для начала введем следующие обозначения:

• Уп — линейное пространство размерности п над полем Е2;

• Е2[х1, х2,..., хп] — кольцо многочленов от переменных х1, х2, .. ., хп над полем Е2;

• Тп — множество булевых функций от п переменных;

• Ап — множество аффинных булевых функций от п переменных;

• Сп — множество линейных булевых функций от п переменных;

• Бирр(/) — множество векторов из Уп, на которых / Е Тп принимает значение 1;

• Апп(/) — пространство аннигиляторов функции /;

• Аппк (/) — пространство аннигиляторов функции /, степень которых не превышает к;

— вес булевой функции f (число единиц в ее векторе значений);

• f — инверсия функции f.

Для начала дадим формальное определение аннигилятора булевой функции f.

Определение 1. Пусть f е Fn. Функция g е Fn, такая, что fg = 0, называется аннигилятором функции f.

Множество всех аннигиляторов функции f будем обозначать как Ann(f). Формально, Ann(f) = {g е Fn: fg = 0}. Легко видеть, что на всех двоичных наборах, где функция f равна единице, любой ее аннигилятор принимает нулевое значение. Однако на тех наборах, где f обращается в ноль, ее аннигилятор может принимать произвольные значения, поэтому справедливо следующее утверждение.

Утверждение 1. | Ann(f)| = 22"-Н/ Н.

Более того, нулевая функция, очевидно, аннигилирует любую функцию и, если gi, g2 е е Ann(f), то f (g1 + g2) = 0, поэтому Ann(f) —линейное подпространство в V2n. Из предыдущего утверждения легко установить, что dim Ann(f) = 2n — ||f ||. Для произвольного k < n в Ann(f) можно выделить линейное подпространство Annk(f) = {g е Ann(f): degg < k}. Сформулируем перечисленные выше размышления в виде утверждения.

Утверждение 2. Пусть f е Fn и k < n. Тогда:

• Ann(f) —линейное пространство;

• Annk (f) —линейное пространство.

Посмотрим на алгебраическую структуру множества Ann(f) с другой стороны. За Rn обозначим подкольцо кольца F2[x1, x2,..., xn], содержащее те и только те полиномы, алгебраическая степень которых по каждой из переменных не превышает единицу. Нетрудно видеть, что Rn совпадает с Fn.

Утверждение 3. Пусть f е Fn. Тогда Ann(f) — главный идеал кольца Rn, порожденный элементом f + 1.

Наконец, дадим определение порядку алгебраической иммунности булевой функции.

Определение 2. Порядком алгебраической иммунности функции f е Fn называется следующая величина: AI(f) = min {degg: g е Fn, g = 0, fg = 0 V (f + 1)g = 0}.

В следующих разделах нам потребуется представление булевой функции в виде АНФ, поэтому для удобства мы введем здесь некоторые обозначения. Рассмотрим вектор u е Vn, имеющий единицы на позициях i1, i2, ..., im. Моном xi1 xi2... xim будем обозначать как

а коэффициент, стоящий перед ним в АНФ функции f, как а{. АНФ любой булевой функции f, алгебраическая степень которой не превышает некоторого k < n, однозначно определяется своими коэффициентами а{, где вес вектора u не превышает k. Нетрудно

k

k 'n

видеть, что количество таких коэффициентов в точности равно

Также нами используется разложение булевой функции по первой переменной. Под этим мы понимаем представление булевой функции /(х) = /(х1, х2,..., хп) в виде

/(х) = Х1/(0,Х2,Х3, . . . ,Хп) V (1,Х2,Х3, . . . ,Ж„).

Функции /(0, х2, х3,..., хп) и /(1, х2, х3,..., хп) являются булевыми от п — 1 переменных, в дальнейшем мы их будем обозначать как /о и /1. Так как х1/о и х1/1 не могут одновременно принимать значение единицы при любых х € Уп, мы можем записать наше разложение по первой переменной в виде / (х) = х1/о + х1 /1.

2. Алгоритмы поиска аннигиляторов низкой алгебраической степени

В этом разделе мы подробно опишем некоторые известные алгоритмы поиска аннигиляторов низкой алгебраической степени. Начнем с алгоритма, описанного в работе [2].

Для начала воспользуемся результатами, описанными в предыдущем разделе. Нам известно, что для любого к < п и любой булевой функции / € Тп множество Аппк(/) является линейным пространством. Таким образом, для задания всех аннигиляторов функции /, алгебраическая степень которых не превышает к, нам достаточно указать один из базисов Аппк(/). Очевидно, что любое линейное пространство является ядром некоторой матрицы или, проще говоря, решением некоторой однородной системы линейных алгебраических уравнений. Укажем такую систему уравнений. Для этого будем считать, что неизвестные нам аннигиляторы представлены в АНФ. Пусть д € Аппк(/), нам известно, что для любого вектора у выполнено /(у)д(у) = 0, т.е.

/ (у) Е <уад = 0. (1)

Заметим, что нас интересуют только те у, на которых функция / обращается в 1, потому что в другом случае равенство (1) будет выполнено для любых значений коэффициентов а®. Таким образом, мы будем рассматривать равенство (1) только для у € вирр(/). Так мы получаем линейные уравнения относительно неизвестных коэффициентов АНФ над полем

к / п \

Е2. Нетрудно видеть, что число переменных в точности равно ^ ( . ), а число уравнений

г=0 г '

совпадает с весом функции /. Перейдем к описанию алгоритма.

Вход: п, к, 8ирр(/).

Шаг 1: Для каждого вектора у из 8ирр(/) сформировать уравнение вида (1) относительно коэффициентов а9и.

Шаг 2: Решить полученную систему линейных уравнений методом Гаусса.

Выход: Базис простраства Аппк(/).

Заметим, что в случае отсутствия подходящих нетривиальных аннигиляторов, система уравнений будет невырожденной, вследсвие чего она будет иметь единственное решение — функцию, тождественно равную нулю. Как было отмечено нами ранее, для многих булевых функций число уравнений в данной системе будет расти экспоненциально с ростом п. Авторы алгоритма отмечают эту проблему и предлагают использовать выражение части переменных через другие перед решением системы уравнений. Они предлагают отдельно рассмотреть все уравнения, соответсвующие тем у € Бирр(/), вес которых не превышает к. Так, например, при наличии вектора у € Бирр(/) с единственной ненулевой позицией можно

сразу же установить, что ау + а0 = 0. А это значит, что ау = а0, это дает нам возможность сократить число переменных на одну, тем самым упростив систему уравнений. Однако подобное упрощение в общем случае может не принести никакой выгоды, поэтому алгоритм не применим для больших п.

Рассмотрим теперь алгоритм, предложенный в [4]. За М / обозначим множество номеров всех ненулевых коэффицентов АНФ функции /. Для удобства обозначений будем считать, что М/ = {п € Уп: а{ = 1}, тогда /(х) = ^ хи. Далее,

0 = /(х)д(х) = Е хи Е <х". (2)

u6Mf : ||"||<к

Упростив данное выражение, можем записать

0 =Е( Е а?) хи^. (3)

Из (3) следует, что при каждом мономе хи^ выполнено I] а® = 0. Таким образом,

выполнено У] ад —

||V

получаем систему линейных уравнений относительно а®. Теперь опишем подробно сам

алгоритм.

Вход: п, к, список элементов множества М/ С Уп.

к "

Шаг 1: Задать список из ^ (п) переменных а^, V € Уп : 11V| < к.

г=0

Шаг 2: Раскрыть скобки в выражении (2). После ракскрытия скобок в полученной сумме необходимо отсортировать все слагаемые лексикографически по ключу и V V. Автор работы [4] предлагает использовать сортировку слиянием.

Шаг 3: Сгенерировать матрицу системы линейных уравнений построчно, проходя по отсортированному списку слагаемых, полученному на предыдущем шаге.

Шаг 4: Решить полученную систему уравнений.

Выход: Базис пространства Аппк(/).

В работе [4] битовая сложность алгоритма оценивается как О^|М/(п^. Как мы видим, время работы данного алгоритма пропорционально количеству ненулевых коэффициентов АНФ функции /. Отметим, что в работах [4, 5] представлен еще один алгоритм, однако его сложность не отличается от предыдущего и концептуально он также основан на решении системы линейных уравнений, поэтому здесь мы воздержимся от его описания.

3. Алгоритм поиска аффинных аннигиляторов

Наконец, мы перейдем к описанию нашего алгоритма поиска аффинных аннигиляторов. Разложим функцию / по первой переменной: / = х1/0 + х1/1. Будем искать аффинные аннигиляторы функции / в виде д = х1д0(х2,х3,... ,хп) + д1 (х2,х3,... ,хп). Нетрудно видеть, что в таком представлении функция до является константой, а функция д1 является аффинной функцией от п — 1 переменной. Если д является аннигилятором функции /, то

0 = / (х)д(х) = (х1/о + х1/1)(х1до + д1). (4)

Раскрыв в (4) скобки, можем записать

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

^Уо 01 + х1(/10о + /101) = 0. (5)

Выражение (5) эквивалентно следующей системе уравнений: /о(Ж2,Жз, . . . ,хга)01(Ж2,Жз, . . . ,Жга) = 0,

(6)

/1(Ж2,Жз, . . . ,Ж„)0о(х2,хз, . . . ,Жга) + /1(Ж2,Жз, . . . , Жга )01 (^2,Жз, . . . , Жга) = 0.

Во-первых, заметим, что все функции, фигурирующие в (6), являются функциями от переменных х2, хз, .. ., хп, а во-вторых, напомним, что 0о = 1 или 0о = 0. Также отметим, что 0о = 0 соответсвует случаю, когда переменная х1 является фиктивной для функции 0. Теперь рассмотрим каждый из двух случаев по отдельности.

Начнем со случая, когда 0о = 0. Нетрудно видеть, что система уравнений (6) в таком случае принимает следующий вид:

уо01 = ° (7)

/101 = 0. ()

Из системы уравнений (7) легко следует следующее простое утверждение.

Теорема 1. Булева функция / € Тп имеет нетривиальный аффинный аннигилятор с фиктивной первой переменной тогда и только тогда, когда обе ее подфункции /о = = /(0,х2,..., хп) и /1 = /(1,х2,..., хп) имеют один и тот же аффинный аннигилятор. Полным решением (7) является линейное пространство Лпп1(/о) П Лпп1(/1).

Важно заметить, что в этом случае задача нахождения аффинных аннигиляторов функции / сводится к нахождению аффинных аннигиляторов у ее подфункций /о и /1 .

Перейдем теперь к случаю, когда 0о = 1. При таком выборе функции 0о система уравнений (6) приобретает следующий вид:

' /о01 = 0, (8) /101 = 0.

Заметим, что данная система уравнений имеет решение в том и только в том случае, если найдется хотя бы одна функция 01 € Лпп1(/о), такая, что 01 + 1 лежит в Лпп1 (/1). Иными словами, система (8) имеет хотя бы одно решение тогда и только тогда, когда 1 € Лпп1(/1) + Лпп1(/о), где под 1 имеется в виду булева функция, тождественно равная единице. Пусть — одно из решений системы уравнений (8), покажем, как в таком случае будет выглядеть полное решение. Для этого нам потребуется ввести факторпространство У2п по подпространству Лпп1(/о) П Лпп1(/1), его элементами являются множества вида к + Лпп1(/о) П Лпп1(/1) = {Л, + V: V € Лпп1(/о) П Лпп1(/1)}, называемые смежными классами.

Теорема 2. Пусть к1 — частное решение системы (8). В таком случае полное решение данной системы уравнений имеет вид

Л + Лпп1(/о) П Лпп1 (/1).

Доказательство. Для начала рассмотрим случай, когда существуют другие решения системы уравнений (8). Пусть г1 = к является еще одним решением, тогда г1 € Апп1 (/о), а, значит, г1 + к также является элементом Апп1(/о) согласно свойствам линейного пространства. Заметим, что г1 + 1 аннигилирует функцию /1, следовательно, г1 + 1 лежит в Апп1(/1), как и функция к + 1. Сумма этих двух функций (к + 1) + (г1 + 1) = к + г1 также является элементом Апп1(/1). Таким образом, к + г1 € Апп1(/о) П Апп1(/1), иными словами, найдется такой элемент £ из пересечения Апп1(/о) и Апп1(/1), что к + г1 = Как мы видим, для каждого решения г1 отличного от к найдется £ € Апп1(/о) П Апп1(/1) такой, что г1 = к + Это значит, что полное решение системы (8) является подмножеством смежного класса к + Апп1(/о) П Апп1(/1).

Теперь докажем, что любой элемент смежного класса к + Апп1(/о) П Апп1(/1) является решением системы уравнений (8). Зафиксируем произвольный £ из пересечения Апп1(/1) и Апп1(/о) и рассмотрим первое уравнение нашей системы, где в качестве неизвестного д1 будет выступать сумма к +

/о(к + £) = /ок + /о£ = 0,

так как к € Апп1(/о), а £ € Апп1(/о). Аналогично

/1 (к + 1+ £) = /1(^1 + 1) + /1£ = 0.

Таким образом, смежный класс к+Апп1 (/о) П Апп1 (/1) является полным решением системы уравнений (8) в случае наличия нескольких решений.

Теперь рассмотрим случай, когда к — единственное решение системы (8). Покажем, что в такой ситуации Апп1(/о) П Апп1(/1) = {0}. Докажем от противного. Предположим, что это не так, следовательно, найдется £ = 0, одновременно лежащий в Апп1(/1) и в Апп1 (/о). Однако, согласно предыдущему параграфу доказательства, в таком случае к + £ = к является еще одним решением системы (8), что противоречит нашему предположению. Теорема доказана.

Для нахождения полного решения системы уравнений (6) необходимо объединить решения систем уравнений (7) и (8).

Теорема 3. Пусть / е и /о = /(0, х2,..., хп), /1 = /(1, х2,..., хп) — ее подфункции. Пусть е1, е2, ..., — базис пространства Апп1(/о) П Апп1(/1). Если можно найти такую функцию к € Ап, что к = к(0,х2,... ,хп) аннигилирует /о, а к + 1 аннигилирует /1, то базис Апп1(/) состоит из векторов е1, е2, .. ., е8, к. Если такой функции к нет, то базис Апп1(/) состоит только из векторов е1, е2, . .., е8.

Доказательство. Начнем со случая, когда до = 0. Тогда д1 € Апп1 (/о) П Апп1 (/1), а значит, функция д, аннигилирующая /, имеет вид д = д1. Множество таких функций является линейной оболочкой векторов е1, е2, ..., . Теперь перейдем к описанию случая, когда д1 = 1. Если функция к из формулировки теоремы не существует, то система уравнений

(8) не имеет решений, а значит, пространство Лпп (/) состоит только из векторов, удовлетворяющих предыдущему случаю. Если же функция к существует, значит, все оставшиеся векторы из Лпп(/) имеют вид к + Лпп(/о) П Лпп(Д). Таким образом, к, в1, е2, ..., в8 составляют базис пространства Лпп1 (/). Теорема доказана.

Описанная нами теория дает возможность составить рекурсивный алгоритм поиска аффинных аннигиляторов для произвольной булевой функции.

Алгоритм 1

Вход: п, I, булева функция Д от п переменных.

Шаг 1: Если п > I, выделить из функции Д две ее подфукции /о = Д(0,х2, ...,хп) и Д1 = Д(1,х2,...,хп). Процесс выделения варьируется в зависимости от представления функции Д. Если функция Д подается на вход алгоритма как вектор значений, то в качестве /о будет выступать первая половина вектора значений, а в качестве Д1, соответсвенно, вторая. Если функция Д представлена в АНФ, то для выделения /о необходимо подставить во все мономы с ненулевыми коэффициентами х1 = 0, а для выделения Д, соответственно, х1 = 1. Если п = I, перейти к шагу 5.

Шаг 2: Применить Алгоритм 1 для входа п — 1, I, /о и для входа п — 1, I, Д, тем самым получить базисы Лпп1 (До) и Лпп1 (Д).

Шаг 3: Найти базис пересечения пространств Лпп1 (До) и Лпп1 (Д).

Шаг 4: Попытаться решить уравнение Н1 + к2 = 1 для неизвестных функций Н1 € Лпп1 (До) и Н2 € Лпп1 (Д1). Для реализации поставленной задачи мы предлагаем воспользоваться следующим методом. Пусть , и2,..., ит — базис пространства Лпп1 (До), а у1, у2, ..., ур — базис пространства Лпп1 (Д1). Необходимо решить линейное уравнение вида и1 + + а2и2 + ... + атит + ат+1 у1 + ... + ат+рур = 1 относительно неизвестных , а2,..., ат+р. При наличии решения добавить функцию Н1 + х1 к базису, полученному на шаге 3. Вывести полученный базис Лпп1 (Д).

Шаг 5: При п = I мы останавливаем рекурсию, и для поиска базиса Лпп1 (Д) предлагаем использовать любой алгоритм поиска базиса пространства аннигиляторов низкой алгебраической степени. Например, можно воспользоваться одним из алгоритмов, описанных нами в разделе 2 настоящей работы. Результатом выполнения данного шага алгоритма является базис пространства Лпп1 (Д).

Выход: Базис пространства Лпп1 (Д).

Покажем работу предложенного алгоритма на примере булевой функции

/ = (0000010101011000),

представленной в виде вектора значений (для нее п = 4) с параметром I = 2. Дерево рекурсивных вызовов изображено на рис. 1. Для нахождения базиса Лпп1 (/) алгоритму необходимо получить базисы Лпп1 (/о) и Лпп1 (Д). Начинает он с пространства Лпп1 (/о). Для определения базиса Лпп1 (/о) алгоритм ищет базисы пространств Лпп1 (/оо) и Лпп1 (/о1).

/=0000010101011000

/оо = 0000 /(,1 = 0101 /ю = 0101 /ц = 1000

Рис. 1. Дерево рекурсивных вызовов

Функции /оо и /о1 являются уже функциями от I = 2 переменных, поэтому для поиска базисов Апи!(/оо) и Апп!(/о1) воспользуемся, например, алгоритмом из [2]. Нетрудно видеть, чтоАпп! (/оо) = А2,аАпп1 (/о1) = ((1010)). Теперь мы можем сформировать базис Апп1 (/о). Во-первых, мы посчитаем Апп1 (/оо) П Апп1 (/о1) = ((1010)). Теперь попробуем решить уравнение к1 + к2 = 1 для к1 € Апп1 (/оо) и к2 € Апп1 (/о1). Частным решением данного уравнения будет к1 = (0101) и к2 = (1010). Таким образом, Апп1 (/о) = ((10101010), (01011010)).

Мы не будем описывать процесс получения Апп1 (/), так как он полностью аналогичен получению Апп(/о). Отметим лишь, что Апп1 (/) = ((10100101)). Теперь у нас есть все необходимое для получения искомого базиса. Видно, что Апп1 (/о) П Апп1 (/) = {0},однако уравнение к1 + к2 = 1 для к1 € Апп1 (/о) и к2 € Апп1 (/) имеет решение к1 = (01011010) и к2 = (10100101). Таким образом, Апп(/) = ((0101101010100101)).

Дерево рекурсивных вызовов для /, представленной в АНФ, приведено на рис. 2.

/оо - 0 /oí - Ж4 /ю - Ж4 /и - 1 + ж3 + Ж4 + Ж3Ж4

Рис. 2. Дерево рекурсивных вызовов для АНФ функции f

Рассмотрим теперь некоторую оптимизацию предложенного алгоритма. Перед этим мы установим следующую теорему.

Теорема 4. Пусть система уравнений (8) имеет решение, тогда /0 / = 0.

Доказательство. Если система уравнений (8) имеет решение, то для некоторого g1 б Ann1 (/0) одновременно выполнено /0g1 = 0 и /1 (g1 + 1) = 0. Следовательно, /1 g1 = /1, а значит, /1 (/0g1) = /0 (/1 g1) = /0/1 = 0. Теорема доказана.

Доказанная нами теорема дает возможность оптимизировать четвертый шаг алгоритма 1. А именно, перед тем, как приступить к решению уравнения, мы можем проверить, выполняется ли тождество /0/1 = 0, и, если оно не выполнено, вывести полученный на предыдущем шаге базис. Отметим, что выполнение данного тождества не гарантирует наличие решения у системы уравнений (8).

Мы можем говорить о следующих достоинствах предложенного алгоритма:

1) алгоритм способен принимать функцию / в различных представлениях, т.е. он не «заточен» на использовании какого-то конкретного представления;

2) аффинные функции из выходного базиса также могут иметь разные представления;

3) алгоритм может быть эффективно распараллелен.

Заключение

Мы разработали рекурсивный алгоритм поиска аффинных аннигиляторов булевой функции, обладающий рядом достоинств. Представленный нами результат не является конечным и имеет несколько направлений для дальнейшего развития, среди которых мы можем выделить:

1) изучение влияния представлений входной и выходных функций на работу алгоритма;

2) изучение влияния значения параметра l и используемых внутри алгоритмов поиска аннигиляторов на работу алгоритма;

3) использование идеи построения нашего алгоритма для создания алгоритмов поиска базисов Ann2(f), Ann3(f) и т.д.

Список литературы

1. CourtoisN.T., Meier W. Algebraic attacks on stream ciphers with linear feedback// Advances in cryptology - EUROCRYPT 2003: Intern. conf. on the theory and applications of cryptographic techniques (Warszaw, Poland, May 4-8, 2003): Proc. B.: Springer, 2003. Pp. 345-359. DOI: 10.1007/3-540-39200-9-21

2. Meier W., Pasalic E., Carlet C. Algebraic attacks and decomposition of Boolean functions // Advances in cryptology - EUROCRYPT 2004: Intern. conf. on the theory and applications of cryptographic techniques (Interlaken, Switzerland, May 2-6, 2004): Proc. B.: Springer, 2004. Pp. 474-491. DOI: 10.1007/978-3-540-24676-3_28

3. Courtois N. Fast algebraic attacks on stream ciphers with linear feedback // Advances in cryptology - CRYPTO 2003: 23rd Annual intern. cryptology conf. (Santa Barbara, CA, USA, August 17-21, 2003): Proc. B.: Springer, 2003. Pp. 176-194. DOI: 10-1007/9783-540-45146-4-11

4. Баев B.B. О некоторых алгоритмах построения аннигиляторов низкой степени для булевых функций // Дискретная математика. 2006. Т. 18, № 3. С. 138-151. DOI: 10.4213/dm66

5. Баев B.B. Усовершенствованный алгоритм поиска аннигиляторов низкой степени для многочлена Жегалкина // Дискретная математика. 2007. Т. 19, №4. С. 132-138. DOI: 10.4213/dm982

6. Armknecht F. On the existence of low-degree equations for algebraic attacks // Cryptology ePrint Archive: Report 2004/185. Режим доступа: https://eprint.iacr.org/2004/185.pdf (дата обращения 09.04.2021).

7. Dalai D.K., Gupta K.C., Maitra S. Results on algebraic immunity for cryptographically significant Boolean functions // Progress in cryptology - INDOCRYPT 2004: 5th intern. conf. on cryptology in India (Chennai, India, December 20-22, 2004): Proc. B.: Springer, 2005. Pp. 92-106. DOI: 10.1007/978-3-540-30556-9-9

8. Carlet C. On the higher order nonlinearities of algebraic immune functions // Advances in cryptology - CRYPTO 2006: 26th Annual intern. cryptology conf. (Santa Barbara, CA, USA, August 20-24, 2006): Proc. B.: Springer, 2006. Pp. 584-601. DOI: 10.1007/11818175,35

9. Mesnager S. Improving the lower bound on the higher order nonlinearity of Boolean functions with prescribed algebraic immunity // Cryptology ePrint Archive. Report 2007/117. Режим доступа: https://eprint.iacr.org/2007/117.pdf (дата обращения 09.04.2021).

10. Логачев О.А., Сальников А.А., Смышляев С.В., Ященко В.В. Булевы функции в теории кодирования и криптологии: учеб. пособие. М.: ЛЕНАНД, 2015. 573 с.

Mathematics and Mathematical Modeling, 2021, no. 1, pp. 13-26.

DOI: 10.24108/mathm.0121.0000255

© Zelenetskii A. S., Klyucharev P. G., 2021.

Mathematics i Mathematical Modelling

http://mathmelpub.ru ISSN 2412-5911

Affine Annihilator Finding Algorithm for Boolean Function Zelenetskii A. S.1*, Klyucharev P. G.1

1Bauman Moscow State Technical University, Moscow, Russia * Zelenetskiy_alexey@mail.ru

Keywords: boolean functions, annihilator, affine functions

Received: 03.04.2021.

So far, there are no efficient algorithms to solve a problem of finding the low degree annihilators for arbitrary Boolean function. In the paper we present a new algorithm to find affine annihilators for an arbitrary Boolean function. We start with considering the identity f g = 0 for the arbitrary Boolean function f and its possible affine annihilator g. We use a special representation of the Boolean function in sum of its sub-functions to reduce degrees of considering functions in previous identity. As a result, we establish equivalence between the identity f g = 0 for Boolean functions of n variables and the system of Boolean equations of n — 1 variable.

An algorithm for finding the affine annihilators for the arbitrary Boolean function f must find all the affine functions g so that f g = 0. Our algorithm is based on reducing the problem of finding the affine annihilators for the Boolean function f of n to the similar problem for its sub-functions of n — 1 variables. The presented algorithm has the following advantages:

• an input function can be presented in different ways;

• output can be also presented in different ways;

• the algorithm can be effectively parallelized.

It should be noted that the result we have obtained is not final and highlights some development directions: first, to study the impact of its input and output on the efficiency of the algorithm of various representations and, second, to use our idea of constructing the algorithm for development of algorithms, which allow finding the 2nd, 3rd, etc. degree annihilators for a specified Boolean function.

References

1. Courtois N.T., Meier W. Algebraic attacks on stream ciphers with linear feedback. Advances in cryptology { EUROCRYPT2003: Intern. conf. on the theory and applications of cryptographic

techniques (Warszaw, Poland, May 4-8, 2003): Proc. B.: Springer, 2003. Pp. 345-359. DOI: 10.1007/3-540-39200-9-21

2. Meier W., Pasalic E., Carlet C. Algebraic attacks and decomposition of Boolean functions. Advances in cryptology - EUROCRYPT 2004: Intern. conf. on the theory and applications of cryptographic techniques (Interlaken, Switzerland, May 2-6, 2004): Proc. B.: Springer, 2004. Pp. 474-491. DOI: 10.1007/978-3-540-24676-3-28

3. Courtois N. Fast algebraic attacks on stream ciphers with linear feedback. Advances in cryptology - CRYPTO 2003: 23rd Annual intern. cryptology conf. (Santa Barbara, CA, USA, August 17-21, 2003): Proc. B.: Springer, 2003. Pp. 176-194. DOI: 10-1007/978- 3-540-45146-4_11

4. Baev V.V. On some algorithms for constructing low-degree annihilators for Boolean functions. Discrete Mathematics and Applications, 2006, vol. 16, no. 5, pp. 439-452. DOI: 10.1515/156939206779238427

5. Baev V.V. An enhanced algorithm to search for low-degree annihilators for a Zhegalkin polynomial. Discrete Mathematics and Applications, 2007, vol. 17, no. 5, pp. 533-538. DOI: 10.1515/dma.2007.041

6. Armknecht F. On the existence of low-degree equations for algebraic attacks. Cryptology ePrint Archive, 2004, report 2004/185. Available at: https://eprint.iacr.org/2004/185.pdf, accessed 09.04.2021.

7. Dalai D.K., Gupta K.C., Maitra S. Results on algebraic immunity for cryptographically significant Boolean functions. Progress in cryptology - INDOCRYPT 2004: 5th intern. conf. on cryptology in India (Chennai, India, December 20-22, 2004): Proc. B.: Springer, 2005. Pp. 92-106. DOI: 10.1007/978-3-540-30556-9-9

8. Carlet C. On the higher order nonlinearities of algebraic immune functions. Advances in cryptology - CRYPTO 2006: 26th Annual intern. cryptology conf. (Santa Barbara, CA, USA, August 20-24, 2006): Proc. B.: Springer, 2006. Pp. 584-601. DOI: 10.1007/11818175-35

9. Mesnager S. Improving the lower bound on the higher order nonlinearity of Boolean functions with prescribed algebraic immunity. Cryptology ePrint Archive, 2007, report 2007/117. Available at: https://eprint.iacr.org/2007/117.pdf, accessed 09.04.2021.

10. Logachev O.A., Salnikov A.A., Smyshlyaev S.V., Yashchenko V.V. Bulevy funktsii v teorii kodirovaniia i kriptologii [Boolean functions in coding theory and cryptology]: a textbook. Moscow: LENAND Publ., 2015. 573 p. (in Russian).

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