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

ИНФОРМАТИКА, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И УПРАВЛЕНИЕ INFORMATION TECHNOLOGY, COMPUTER SCIENCE, AND MANAGEMENT

УДК 512.6 10.23947/1992-5980-2017-17-1-122-131

Способ восстановления булевой функции нескольких переменных по ее производной* А. В. Мазуренко1, Н. С. Могилевская2**

1,2 Донской государственный технический университет, г. Ростов-на-Дону, Российская Федерация

Method of restoring multivariable Boolean function from its derivative *** A. V. Mazurenko1, N. S. Mogilevskaya2**

1,2 Don State Technical University, Rostov-on-Don, Russian Federation

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

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

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

с

"й методом полного перебора. Приводятся временные оценки _> сложности основных формальных алгоритмов, разработанных "х для решения поставленных задач, описано сравнение £

Л -

* Работа выполнена в рамках инициативной НИР. ** Е-mail: mazurencoal@gmail.com, 79044430127@yandex.ru ***The research is done within the frame of independent R&D.

Introduction. Boolean functions of several variables are of paramount importance in the coding theory and cryptography. The compositions of these functions are used in a set of the symmetric cryptosystems; therewith, some error-control codes, such as Reed-Muller codes, Kerdock codes, can be defined; as well as some new decoders operating beyond half of the code distance can be constructed. The task of restoring a Boolean function from its derivative which is called a Boolean function integration problem is considered. A Boolean function being restored, the vector towards which the derivative is calculated is supposed unknown. Materials and Methods. The results are obtained on the basis of the following methodology: theory of Boolean functions, theory of finite fields and polynomial rings, linear algebra. The space of Boolean functions is considered a certain isomorphic factor-ring that allows reducing the task to finding solutions to a polynomial set of equations of a special form. The constructed isomorphism enables to check whether the integration problem is decidable, and also to offer a new method of its solution.

Research Results. The algorithm of searching preimage by the full enumeration method is formally constructed; and its algorithmic complexity is calculated. The theorem of necessary and sufficient conditions for the existence of an arbitrary Boolean function preimage regarded as the directional derivative value is proved. The provided proofs are constructive. On the basis of the established facts, the algorithms of checking the preimage existence for the specified Boolean function and of building the preimage are developed. In the proposed version, the algorithm forms only one of the possible preimages under the condition of its existence. The proposed algorithm of the preimage generation is significantly efficient from the standpoint of the algorithmic complexity compared to the full enumeration method. Time estimates of the complexity of the basic formal algorithms developed for solving the formulated problems are given. The comparison of their operation complexity to the algorithm of

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

Boolean functions integration complexity by the complete enumeration method is described.

Discussion and Conclusions. The research performed can be useful for special sections of the coding theory and cryptography where Boolean functions of several variables are used.

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

Keywords: Boolean function, directional derivative of Boolean function, algorithm of checking recoverability of Boolean function, complexity estimation, space of Boolean functions, polynomial ring, finite fields, ring isomorphism, coding theory, preimage searching.

Введение. Булевы функции нескольких переменных играют важную роль в криптографии и теории кодирования. Например, композиции этих функций используются в ряде симметрических криптосистем [1]; с их помощью могут быть определены, например, помехоустойчивые коды Рида-Маллера и коды Кердока [2, 3] и построены новые декодеры помехоустойчивых кодов, работающие за пределом половины кодового расстояния [3, 4, 5, 6]. Различные вопросы дифференциального исчисления булевых функций рассмотрены в [7, 8, 9]. В теории булевых функций естественным образом возникает понятие производной по направлению, представляющей собой оператор, действующий на пространстве булевых функций. Актуальной является задача исследования свойств данного оператора. В работе рассматривается задача восстановления булевой функции по ее производной по некоторому направлению, определены условия существования прообраза производной булевой функции, описан способ восстановления функции по ее прообразу и даны временные оценки сложности предложенных методов.

Формулировка задачи интегрирования булевых функций. Булевой функцией, согласно [1], назовем отображение /: ^ , где — векторное пространство размерности п над конечным полем . Множество

I I 2п

булевых функций от п переменных обозначим Фп . Известно, что Фп = 2 . Будем считать, что элементы множеств Фп и ^2п упорядочены некоторым образом, например, лексикографически. Производной булевой функции /(х) по направлению и , где и ф 0, и е ^ , называется (Би/)(х) е Фп :

Функцию / назовем прообразом производной Би/.

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

задачей интегрирования. Дана булева функция / е Ф п, необходимо найти хотя бы одну функцию g е Фп, такую, ч

_ — _

чтобы выполнялось равенство / = Dug для некоторого и ф 0 , и е ^2п . л

с

Необходимые предварительные сведения и результаты. В [1, стр. 69] сформулирована теорема, о том, что ^ каждая функция / е Фп может быть единственным образом представлена в виде полинома из кольца полиномов ¡з

К

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

Утверждение 1. Кольцо Фп изоморфно факторкольцу ^2[х1,х2,...,хп]/1, то есть Фп = ^2[х1,х2,...,хп]/1, где

л

I =< х12 + х1,х2 + х2,...,х2 + хп >с F2[xl,х2,...,хп] — идеал в кольце F2[xl,х2,...,хп]. §

н

Утверждение 1 легко доказать, используя теорему из [1, стр. 69], и тот факт, что ^2[х1,х2,...,хп]/1 — ¡3

о

факторкольцо, в котором представителями классов смежности являются полиномы, степень которых по каждой §

н

переменной не превосходит 1. 3

Пусть [а] — класс смежности по модулю идеала I в кольце ^2[х1, х2,..., хп ]. Тогда из утверждения 1 следует, ^

и

что [а] соответствует некоторой булевой функции / е Ф п. Будем записывать булеву функцию / е Фп в виде §

5

полинома, являющегося представителем класса смежности [a] :

f

+Sl<i1 <i2 <...<it <nai1i2...itxi1 xi2 ...xit + ... + a12...nX1X2 ...Xn .

(U

Л О

X

S

2П

Для f, заданной в виде (2) определим биективное отображение у : Фп ^ F2 : 123

1

Обозначим БкА все возможные к -элементные подмножества множества А , где к е 2>0.

По аналогии с к -м элементарным симметрическим многочленом [10] определим отображение

стк : Е2[х1,х2,...,хг,и1,и2,...,] ^ Е2[х1,х2,...,хг,и1,и2,...,],

СТк X2,, хг , и^ и 2 иу ) = Щ{у1 у yl.sk УхУ2-Ук ,

у1,у2,---,ук }еБ{х1,х2.....хг ,и1 ,и2.....иу }

где к = 1,г , г, V е N . Положим, что ст0(х,и) = 1, а при к &1,г, стк(х,и) = 0 .

Теорема 1 (об АНФ производной булевой функции). Для любого /(х) е Ф п и и Ф 0 , и е Е2 , справедливо

+хг1 ^ ...^ }<кхг^ стк-2(хЧ ,..., хг^, хг^ ,..., хг, , иЧ ,..., игн, иг^ ,..., игк )] ,

где (Би/)(х) е Фп .

Доказательство. Согласно (1) получаем

Фи/)(х ) = / (х + и) + / (х) = / (х^ + Щ, х2 + и2,..., хп + ип ) + / (х^, х2,..., хп ).

Из (2) следует, что

/ (х + ии х2 + и2хп + ип ) = а0 + Щ =1 аг1 СТ1 (хг1 , иг1 ) + +Е:< г1 <г2< п аг1г2 (ст 2 (хг1 , иг1 , иг2) + \ иг1 + хг2 иг2) + - + +Щ1< г1 <г2 <...<гк<паг1г2...гк [ст к (хг1, хг2 ,..., хгк , иг2 ,..., игк ) + Щ1< 1<кхг]иг3 стк-2(хг1 ,..., хгхг+, ,..., хгк , иг, ,..., иг„ , иг+, ,..., игк )] + ... + +а12...п [СТ п (хи х2V-хп , ии и2ип ) + 2к ]<пх]и] СТп-2( х} -1, xJ+\,..., хп и^..^ и} и} +1,..., ип )].

Суммируя полученное в^1ражение с /(х^,х2,...,хп), доказываем (4). •

Установление связи коэффициентов исходной булевой функции и ее производной по направлению.

Г{х е N | т<х<п}, т<п

Пусть [т..п] = < , где т, п е N, N — множество натуральных чисел. Обозначим

[ 0, п < т

через 2А множество всех подмножеств множества А . Пусть

с[т,,п] = {г\...'к Iе [т..п], 1Х <... < гк,к = т,п,] = 1,к} с N .

Обозначим для удобства С[0.п] = {0} ^ С[1 п]. Заметим, что С[0 п] с 2>0, где 2>0 — множество целых неотрицательных чисел. Тогда, очевидным образом, можно упорядочить множество С[0 п], используя естественное упорядочение на множестве 2>0. Пусть

X : С[0..п] ^ N

сопоставляет элементу С[0 п] его порядковый номер согласно введенному упорядочению (5). Очевидно, что X является инъективным отображением.

Определим отображение т :2^..п ^ С^.^,

Т

где {г1,г2,...,гк} = {¿^,¡л ,...,¡л }; ¡^ < ¡л < ... < ¡л . Очевидно, что т — биекция.

3 _ _

"й Пусть / еФп задана формулой

с

-§ по степеням переменных хг, х2, ... , хп : М _

'¡3 (ОЕ/)(х) = Щ =1 ач иг1 +Т.1<г1 <г2< паг1г2 иг1 иг2 + ... + Тл<г1<л2 <...<гк<паг)г2..лкиг1 иг2.."гк + - +

и

I + а12...пи1и2...ип ] + Щ-1 =1 [Щ'1 е[1.. п]\{ Л} ат({ Ш)^ л},ат({ ]1,Чг2})иг1 % + ... +

Л

£ ^^^^ ^^т« Л^.^ич %...иг,-1 + + а12...пи1и2...ил -1и Л ^п ]хЛ + ... +

+Щ{ л,л2,...,]1 ^¡Щф.т ли^л} ат({ +Щ^..п]\{ ]1,]2,..]' },ат({ ы^ммЛ иг2 +... +

+zi;<i2zik«k:[Ln]\i h,h'""h i,a^« + ••• + +a12...„ п М1..„]\{ л,;2,...,л }uj ]хл xh-xh +... +

+ j;, j2,..., j^;}^^,,] Si; Согласно теореме 1 (Duf)(x) может быть представлена в виде:

Ч j;, j2,..., j„-;}eS[1:;„] S!;e[1..n]\{ j;, j2,..., j„_;} ax({ j;, j2,..., j„_;,!;})U!; Xj; Xj2 ""^./n-; '

(Д-/)(х) = ¿0 +2г"=Д х^ +21<г1 <г2 <пЬ*2 хч + ... +

^1<г1 <!2<...<!к<пЬ!1!2...!кХ!1 Х12"-Х1к +  + Ь12...иХ1Х2"-Хи .

Сравним коэффициенты при соответствующих мономах и получим полиномиальную систему, состоящую из уравнений вида:

2^[1..Я]\{л,У2,..,Л}а<{л,]2,,п,ч))ич +... + 2!;<?2Е[1 "п]\{л^2, ,л},ат

+2!;<22^<С!1-п]\{ ;1,;2,...,;' },а<{ « ^2...«^+... +

+а12...п П уе[1..и]\{ ]!, ]2,..., ],}и] = Ь]1]2.]1 ,

где {]1,]2,...,}1} с 2[1п]. Пусть 0 с 2[1п] соответствует Ь0. Очевидно, что Ь12 п = 0. Таким образом, система, состоящая из уравнений (8), связывает коэффициенты исходной булевой функции и ее производной по направлению. Пример. Рассмотрим Ф2. Тогда система уравнений (8) принимает вид:

а1и1 + а2и2 + а12и1и2 = Ь0, _ а12«2 = ¿1, а12и1 = Ь2 ,

0 = b

12-

Рассмотрим Ф3. Тогда система уравнений (8) принимает вид:

a;u; + a2u2 + a3u3 + a12u1u2 + a13u1u3 + a23u2u3 + a123u1u2u3 = b0, a12u2 + a13u3 + a123u2u3 = b;, a12u; + a23u3 + a123u1u3 = b2,

a13u; + a23u2 + a123u1u2 = b3,

a123u3 = b12, a123u2 = b13, a123u1 = b23, 0 = b123.

Далее матрицу системы уравнений вида (8) относительно коэффициентов a; обозначим A e M2„ „ 4)(F2).

Расширенную матрицу системы обозначим через A e M п „ (F2). Определим условия совместности системы из

уравнений вида (8) при любом фиксированном u = (u;,u2,...,u„) e F2„. Из теоремы Кронекера-Капелли [10] известно, что СЛАУ совместна тогда и только тогда, когда ранг матрицы системы равен рангу расширенной матрицы. Следовательно, необходимо выбрать подходящие значения коэффициентов bt в (8), чтобы rank (A) = rank (A ). Далее, определив значения bi и a}-, построим булеву функцию g и вектор y : Dyg = Duf. Согласно определению

производной по направлению из рассмотрения можно исключить случай, когда u = 0 .

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

«разрешёнными». Множество «разрешённых» векторов обозначим

_ 2„ _ — „ 1 —

Allowed = {y e F2 13f e Ф„,u Ф 0 e F2 : Duf = у (y)}, где у — биекция (3). Множество «запрещенных» векторов

пространства булевых функций Ф n

обозначим

NotAllowed = F22 \ Allowed .

Очевидно, что

Ф„ = Allowed u NotAllowed , Allowed n NotAllowed = 0 .

Построим множества разрешенных и запрещенных векторов для Ф; : Allowed = {(0,0), (1,0)}, NotAllowed = {(0,1), (1,1)}. Действительно,

(D(u;) f )(x;) = a0 + a;(x; + u;) + a0 + a^ = a;u; .

(U К X <u 4 и

Л

С

^

К ей И

к

к

*

(U

н «

ей К Л

ч

(U

н К

4 о К

Е 3 и

<й и

К

<3

5 а о

к S

125

й о тз

'й

и

и

О, С Л

Положим, что п > 1. Будем последовательно строить множество «разрешённых» векторов пространства булевых функций Фп . Построим «разрешённые» векторы при и = (1,0,...,0). Тогда система, состоящая из уравнений (8), содержит следующие уравнения:

«1 = Ь0, 0 = Ь1,

«1 ii .it = Ьii .it, 0 = Ь11,.-п ,

где 2 < 11 <... < 1к < п , 1 < к < п -1. Таким образом, при и = (1,0,...,0) множество «разрешённых» векторов А1,

состоит из у е ¥1": У^,..., 1к} с 2[1'п]\{1}, где 1 < к < п-1,

Л(т({1,11,..., 1к})) = 0, где X определено формулой (6), т — формулой (7).

При и = (0,...,0,1г-,0,...,0), где / = 1,п , множество «разрешённых» векторов А^, состоит из у е ¥22 :

1к} С 2[1"п]\{г}, где 1 < к < п-1,

уХ(т({г, 11,...,]к})) = 0 .

Рассмотрим теперь вектор и , который имеет I ненулевых координат и(, и^, ... , мг-;, где 1 < ¿1 < ¿2 <... < ц < п , 1 < I < п . Положим, что I = {1,¿2,...,¿7} . Тогда из системы уравнений вида (8) после подстановки такого и получаем систему, которая будет состоять из уравнений следующего вида:

Ук=1 У{ 11,12,..., 1к }с5кат

2к=1 У 11,12,..., 1 }с51к\{4,ц2.....4, ат№1,г2,..,4,11,12,..., 1к }) = bт

0 = ь ... . . , , ,}),

уЦ у к а............= ь............

11,12,...,1к }с 5 \{.1,.2.....т({г1; ,ц2 , 1'^ l'2,..., Л- 1l, 12,..., 1к }) т({Ч,.2,...,ц<1, 1l, Л — 1'» })'

где {¿1,/;,...,¿;,} С 21, h = 177—1; {11,12,...,ih} с 2[1"п]\1, h = 17п-7; {¿1,¿2,...,/,} с и^ЙсЯ? , ^./1,12,..., Л, с 2[1"п]и , V = 1, п - 7.

Строка матрицы А системы уравнений вида (8), соответствующая уравнению вида (9.1), является линейно независимой относительно остальных строк матрицы. Строки, соответствующие уравнениям вида (9.3), являются нулевыми. Выделим среди строк матрицы А, соответствующих уравнениям вида (9.2), линейно зависимые. Для линейной зависимости двух векторов, соответствующие уравнениям вида (9.2), необходимо и достаточно, чтобы в левой части уравнения стояли одинаковые неизвестные. Следовательно, для таких уравнений число фиксированных координат, фигурирующих при индексе свободных членов, должно быть одинаково. Рассмотрим два уравнения, соответствующие линейно зависимым строкам:

уй У{ 1<1),121),..,1«}с .....^ ат({г1,г2,..,г2,г,г«,..,г^),11(1),121),...,1к1)}) = Ьт({г1(1),г21),..41)}) ,

уй у{11(2),122),...,112)}с5;ч.(2),42).....ат({гl,г2,..,гz,гS,гS,..,гh2),1l<2),l22),...,lk2)}) = Ьт({г1:2),г22),...,.^2)}) ,

где {¿1, ¿2,..., ,={¿ю, ¿21),..., ¿Г, - сР, ¿22),..., Л &,.., ^={.(1), ¿2С1),..., ^(¿Р, ¿22),..., ¿Р, ,

{е ¿^2+)2,..., ¿Р,=сР, ¿22),..., ^ж^, ¿21),..., ^ ,

I — число ненулевых координат в и . Легко увидеть, что

а . .(1) .(1) .(1) .ф = а . .(2) .(2) .(2) .р),, ^^

о е{а,!^2)2,...,lh2)}, 1:(2) е0,Я,,...,lh1)}, h = 7 +1.

Таким образом, равенства преобразуются к виду

ат({,1,,2,...,,7 4142» = ат(Ач,'2,..,'7 4242».

Следовательно, в силу произвольности выбора элементов у и у1(2), И = / -1. Таким образом, для того чтобы два вектора из матрицы А , соответствующих уравнениям вида (9.2), со свободными членами равными Ь т ^ а) и

х

Ь ...(2) (2) (2)}) были линейно зависимы необходимо и достаточно, чтобы выполнялись условия

х

И = / -1,

{/1(1),/21),...,/И1)}а{/1(2),/22),...,/И2)>={., у},

где I\{/1(1),/2С1),..., ¿И1'1} = {¿}, I\{/1(2),/22),..., I И2)} = {У}, а знак « А » обозначает симметрическую разность множеств.

Положим теперь, что в матрице А найдутся три или более линейно зависимые строки, получаемые из уравнений вида (9.2). Пусть для некоторых а. е , где ' = 2, g , g е N,

^{ У(1;,'21;.....

1 '2 .....'А

у'«, у«,..., ук^^ Л)Д1)......)} Ях

= 2=2а, у<- у ^ , ^).....^)} ах({г1,г2_'2,'<5,'й2,^,'Ий у и" "

где {ее...,'Г)} = {¿1" ),'2" ),...,'И" )}\5, 5 = {'1,'2,...,'г} = ),'2" ),...,'И")}.

которы

нарушения общности

Рассмотрим некоторый коэффициент из левой части равенства а . . . 0) (1) »)  о).). Так как И < п, то без

Щh,12,,1z, ¿2+1, 'z+2,,' И , у1 })

где 2к + 2 < g , к е 2

>0 >

^ ({'!,' 2 ,,' г,' *+1, '*+)2 ,, 'И1', у}) = 2=2 а' ^ ({'1,'2,-,'г ,'<+1),'<"2,-,'И" \]Г'}) ^ ~ ах({гl,г2,,'z,'Z+)1,'Z+)2,,'И1),^1С1)}) = 2"к=+22ах({'1,'2,-,'г,'*5,'к+2,-,'И"^Г»,

^ ({ ¿1, ' 2 ,, ¿г, ¿*+1, ¿*+)2 ,, ¿И'', У}) = ^ ({1,..2,-,'х,'й','й,-,'И" ^)}).

Из предыдущих рассуждений следует

а . .(1) -(1) -(1) -оь-ч = а ,. . ) ) с) ("),, ^^

о у« е{'^,'^2,...,'Г>, /1(0 е{'^+)1,'2+)2,...,'}, И = 2 +1. Таким образом, верны равенства

ах({ ¿1,' 2,,¿2¿М>) = ах({'1,'2,-,^¿М» ,

где ¿ = 1,2к +1. В проведенных рассуждениях элементы у,(1) и у1(") выбраны произвольно, " = 2,2к + 2, И = / -1. §

л

Таким образом, доказана следующая лемма. ч

Лемма 1. Линейно зависимые строки матрицы А системы уравнений вида (8), соответствующие уравнениям

вида (9.2), при подстановке вектора и с I ненулевыми координатами I = {иг1,и¿2,...,и^ }, где 1 < ¿1 < ¿2 <... < ц < п , ^

1 < / < п , имеют вид й

и

а ' ' ' = Ь ' ' ' К

х№l,'2,, 'í-1, у}) х({ 'l,'2,, ¿/-1}^ К

,,,,,,

где {'l,'2,, ¿/-1} с ^^-1;1 \{'l,'2,, ¿/-1} = • ь

Теперь в^1делим линейно зависимые строки матрицы А системы уравнений вида (8) среди соответствующих ¡^

уравнениям (9.4). Легко увидеть, что уравнения (9.2) отличаются от уравнений (9.4), наличием в последних среди ¡2

фиксированных индексов свободного члена и неизвестных элементов, не принадлежащих множеству I номеров н

__К

позиций ненулевых координат вектора и , подставляемого в (8). Но суммирование в левой части обоих уравнений ч

ведется по некоторому подмножеству I, которое является одинаковым для обоих видов уравнений (9.2) и (9.4). ^

Таким образом, применяя рассуждения аналогичные рассуждениям для случая уравнений вида (9.2), можно ¡^

убедиться, что верна й

й

Лемма 2. Линейно зависимые строки матрицы А системы уравнений вида (8), соответствующие уравнениям к

<3

вида (9.4), при подстановке и с / ненулевыми координатами I = {иг- и¿ .., и/}, где 1 < ¿1 < ¿2 <... < ц < п , 1 < / < п.

12 ' а

имеют вид о

а 111111 = Ь 111111 К

х({'l,'2,, '/-1, уl, у2,, уv, у}) х({'l,'2,,'н, уl, у2,, уг}У К

где {'l,'2,..., ¿/-1} С ^^ , I\{'l,'2,..., ¿/-1} = {у}, Оь у2,..., уу С }, 1 < V < п - 1 . •

Таким образом, в общем случае, когда u имеет l ненулевых координат I = {ы^, ui,..., и^}, где 1 < < /2 <... < ¡1 < п , 1 < I < п , из лемм 1 и 2, а также формул (9.1)-(9.4) следует, что множество «разрешенных»

векторов А/ / 1 состоит из векторов у е ^22 , для коэффициентов которых выполняются следующие свойства:

1. у,(({--    })) = 0, у2,..., /к} с 2[1"п]и, к = 1, п -1;

-7Я(Т({/1,/2,...,// ,/1,/2,-,/к})^ ^-Л^2' ^к>

2. у,( (( '  ' })) = у,( ({-    })): У{/,,/2,...,/,-1}, {/,,/2,...,ьЛ с ;

3. у.( .... , . /Ч)) = у.( ({-  -   /Ч)): V{/1,2,...,г,,}, {1,ь,...,г,,} с Б!-1, при фиксированном

ц, Л л} с Б[1..п]\ 1, 1 <v <п-1;

— 2п

4. все элементы вектора у е , не определенные свойствами 1-3, являются произвольными элементами поля Е2.

Теорема 2 (о существовании производной по направлению). Рассмотрим Фп. Пусть вектор и е ^2п содержит I ненулевых координат I = {ии ...,и^}, где 1 <<2 <... <<п , 1 <I < п . Положим, что Ац { —

множество «разрешенных» векторов, определенных при подстановке в систему уравнений вида (8) вектора и . Для булевой функции g е Ф п существует такая булева функция / , что

(Duf)(x) = g(x) «у(g) e ЦеС[,„j A

где у — биекция (3); C[Ln] определено (5).

Доказательство. Докажем, что U!ec[1 j A = Allowed . Если это равенство верно, то утверждение теоремы будет

выполняться в силу определения множества Allowed .

Очевидно, что в силу своего построения U!eC[1 nj A с Allowed . Множество A^ ^ содержит все возможные

вектора свободных членов b , при которых система уравнений вида (8) совместна при подстановке вектора U . Пусть w e ц . При фиксировании w в качестве свободных членов системы (8) можно найти все возможные решения

данной системы, которые определяют все булевы функции f e Фn : Duf = у _ (w). Поскольку при построении

множеств A, i e C[ nj, перебираются все вектора U e Fn , кроме нулевого, то Allowed с U!eC[1 j At . •

Алгоритм определения существования прообраза. Представим в краткой форме алгоритм, позволяющий определить существование для данной булевой функции прообраза. На вход алгоритма поступает булева функция g e Фn (n > 1), на выходе алгоритм выдает значение true , если прообраз для входной функции существует, иначе,

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

2n

Рассмотрим работу алгоритмов. На вход алгоритма А поступает вектор y(g) = (gj,...,g2„) e F2 . Выполняется проверка значения коэффициента g2n . Если этот коэффициент ненулевой, то согласно теореме 2 прообраза не существует, и алгоритм выдает false , иначе алгоритм продолжает работу. Далее алгоритм А формирует вектор

5 -

d u = (g2ng2n_2,...,g2„_п) e F2n, в направлении которого была предположительно взята производная, при условии, что и _ _

§ U Ф 0 . Объяснение этого предположения легко видеть из (8). Если U Ф 0 , то происходит вызов алгоритма Б, работа 43 _ -

которого описана ниже, иначе, если u = 0 , в цикле происходит последовательный перебор всех ненулевых векторов,

^ Т—'n Т-1

"й принадлежащих f2 , которые подаются на вход алгоритма Б в качестве предполагаемого вектора, в направлении которого была взята производная. Если при выполнении алгоритма Б было установлено существование прообраза, то ji алгоритм А возвращает true .

Опишем работу алго

проверяет выполняются ли для входного вектора y(g) необходимые и достаточные условия существования прообраза

Опишем работу алгоритма Б. На его вход которого поступают векторы ) е ^22 и и е ^2п . Алгоритм Б

n

по заданному направлению u , то есть определяет принадлежность вектора у(g) множеству A^ ^ , где i-ii2...il еC[j n], Wu = {/j,i2,...,ii}, множество Wu содержит номера ненулевых элементов вектора u . Для поиска ответа

алгоритм последовательно проверяет выполнение свойств 1-3 (см. список перед теоремой 2) для заданного входного вектора. Если входной вектор удовлетворяет всем трем свойствам, то, согласно теореме 2, можно утверждать, что для булевой функции, взаимно однозначно соответствующей данному вектору, существует прообраз в заданном направлении, и, следовательно, алгоритм Б возвращает значение true , иначе, при невыполнении хотя бы одного из условий, алгоритм возвращает false .

Авторами получена оценка временной сложности алгоритма O(n + 23n). Доказательства оценки сложности данного алгоритма и других алгоритмов, представленных ниже, в данной работе не приводится в связи с их громоздкостью.

Пример.

Рассмотрим Ф 3. Пусть

23

у(g(Xj, Х2, Х3)) = (gj, g2, g3, g4, g5, g6.g7, g8) = (1,1,0,1,0,0,0,0) е F2 ,

g (X1, X2, X3) = 1 + X1 + X3,

где g (X1, X2, X3) е Fj^, Xj, X3].

Поскольку g8 = 0, то пока нет оснований утверждать, что прообраза не существует. Рассмотрим вектор u = (g7, g6, g5) = (0,0,0) е F23. Следовательно, будем перебирать все ненулевые вектора F23 в поисках подходящего направления. Упорядочим элементы F23 следующим образом:

(0,0,0) < (1,0,0) < (0,1,0) < (0,0,1) < (1,1,0) < (1,0,1) < (0,1,1) < (1,1,1).

Пусть u = (1,0,0). Тогда Wu = {1}, 2[13]Wiu = {0,{2},{3},{2,3}} . Очевидно, что g^(1) = g2 = 1, то есть вектор u

не удовлетворяет свойству 1 (см. список перед теоремой 2). Следовательно, алгоритм 1.2 возвращает значение false .

Пусть u = (0,1,0). Тогда Wu = {2}, 2[L'3]\Wu = {0,{1},{3},{1,3}}. Вектор u удовлетворяет свойству 1:

gа.(2) = g3 = 0, gЯ(12) = g5 = 0, g*.(23) = g7 = 0 и gЯ(123) = g8 = 0. Далее = {0}, то есть нет необходимости

проверять выполняется ли свойство 2. Проверим выполнение свойства 3 для вектора u . S[\ 3]\W_ = {{1},{3}},

следовательно g = g 2 = 1, g ц3) = g 4 = 1. Далее S2^^ = {{1,3}}, следовательно g ^ = g 6 = 0, то есть вектор й

удовлетворяет свойству 3. Поскольку вектор u удовлетворил всем трем свойствам, то согласно теореме 2 для §

<а

g(X1, X2, X3) существует прообраз. Следовательно, алгоритм А, а затем и алгоритм Б, выдает на выход значение ч

true . • Л

С

Способ поиска интеграла булевой функции. Опишем еще один подход к решению задачи интегрирования ^

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

установлено, что решение существует. Легко увидеть, что при работе этого алгоритма находится вектор, в ^

направлении которого взята производная. Таким образом, из теоремы 2 следует, что система уравнений вида (8) при ^

<о

подстановке в нее найденного вектора совместна и неопределенна. То есть можно построить общее решение [10] для н

tR

этой системы, приняв в качестве неизвестных af, где i е C^ n], и выбрав в качестве неизвестного a0 произвольный g

А

элемент поля F2. Заметим, что at являются коэффициентами прообраза булевой функции, поступившей на вход jg

н

алгоритма поиска прообраза. Можно использовать любой прямой метод для решения данной СЛАУ. К примеру, если К

3 ^

использовать метод Гаусса [10], сложность которого равна O(n ), где n — количество неизвестных, встречающихся к

Е

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

функции (с использованием метода Гаусса для решения СЛАУ) составляет O(n + 23n) + O(23n) = O(n + 23n). Авторами <з

также установлено, что при использовании метода полного перебора для поиска прообраза, сложность решения ¡3

ей

задачи интегрирования булевой функции равна O(22+2n 2(3n +10) + 23n + n). Таким образом, использование ¡^

о

предложенных методов уменьшает алгоритмическую сложность поиска прообраза по сравнению с методом полного ^

Щ

2п Н

перебора примерно в O(2 ) раз.

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

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

Библиографический список

1. Логачев, О. А. Булевы функции в теории кодирования и криптологии / О. А. Логачев, А. А. Сальников, В. В. Ященко. — Москва: МЦНМО, 2004. — 470 с.

2. Мак-Вильямс, Ф. Дж. Теория кодов, исправляющих ошибки. / Ф. Дж. Мак-Вильямс, Н. Дж. А. Слоэн. — Москва : Связь, 1979. — 744 с.

3. Сидельников, В. М. Теория кодирования / В. М. Сидельников. — Москва : ФИЗМАТЛИТ. — 2008. — 324 с.

4. Деундяк В. М. Модель троичного канала передачи данных с использованием декодера мягких решений кодов Рида-Маллера второго порядка / В. М. Деундяк, Н. С. Могилевская // Известия вузов. Сев.-Кав. регион. Техн. науки. — 2015.— №1(182). — С.3-10.

5. Могилевская, Н. С. Экспериментальное исследование декодеров кодов Рида-Маллера второго порядка / Н. С. Могилевская, В. Р. Скоробогат, В. С. Чудаков // Вестник Донского гос. тех. ун-та. — 2008. — Т.8, № 3. — С.231-237.

6. Могилевская, Н. С. Корректирующая способность декодера мягких решений троичных кодов Рида-Маллера второго порядка при большом числе ошибок / Н. С. Могилевская // Вестник Донского гос. тех. ун-та. — 2015. — № 1.

— С.121-130.

7. Бохманн, Д. Двоичные динамические системы / Д. Бохманн, Х. Постхоф. — Москва : Энергоатомиздат, 1986. — 400 с.

8. Деундяк, В. М. Интегрируемость систем полиномов нескольких переменных первой и второй степени над простыми полями Галуа / В. М Деундяк, А. В. Кнутова // Известия ВУЗов. Северо-Кавказский регион. Естественные науки. — 2016. — №2. — С.41-46.

9. Алгоритм восстановления булевой функции по ее производной по направлению (электронный ресурс) / А. В. Мазуренко, Н. С. Могилевская // Системный анализ, управление и обработка информации: сб. трудов VI международного семинара. — Ростов-на-Дону, 2015. — Т. 1. — С.256-262. — Режим доступа : http://ntb.donstu.ru/content/2015421/ (дата обращения: 13.11.2016).

10. Глухов, М. М. Алгебра. Т. 1. / М. М. Глухов, В. П. Елизаров, А. А. Нечаев. — Москва : Гелиос АРВ, 2003.

— 336 с.

References

1. Logachev, О.А., Salnikov, A.A., Yashchenko, V.V. Bulevy funktsii v teorii kodirovaniya i kriptologii. [Boolean functions in coding theory and cryptology.] Moscow: MTsNMO, 2004, 470 p. (in Russian).

2. McWilliams, F.J., Sloane, N.J.A. Teoriya kodov, ispravlyayushchikh oshibki. [The theory of error-correcting codes.] Moscow: Svyaz', 1979, 744 p. (in Russian).

3. Sidelnikov, V.M. Teoriya kodirovaniya. [Coding Theory.] Moscow: FIZMATLIT, 2008, 324 p. (in Russian).

4. Deundyak, V.M., Mogilevskaya, N.S. Model' troichnogo kanala peredachi dannykh s ispol'zovaniem dekodera myagkikh resheniy kodov Rida-Mallera vtorogo poryadka. [The model of the ternary communication channel with using the decoder of soft decision for Reed - Muller codes of the second order.] University News. North-Caucasian region. Technical Sciences Series, 2015, no. 1(182), pp. 3-10 (in Russian).

5. Mogilevskaya, N.S., Skorobogat, V.R., Chudakov, V.S. Eksperimental'noe issledovanie dekoderov kodov Rida-Mallera vtorogo poryadka. [Experimental research of second order Reed-Muller codes.] Vestnik of DSTU, 2008, vol. 8, no. 3, pp. 231-237 (in Russian).

g 6. Mogilevskaya, N.S. Korrektiruyushchaya sposobnost' dekodera myagkikh resheniy troichnykh kodov Rida-Mallera

vtorogo poryadka pri bol'shom chisle oshibok. [Correcting capacity of soft-decision decoder of ternary Reed - Muller secondly order codes with a large number of errors.] Vestnik of DSTU, 2015, no. 1, pp. 121-130 (in Russian).

тз 7. Bohmann, D., Posthoff, Kh. Dvoichnye dinamicheskie sistemy. [Binary dynamic systems.] Moscow:

• д Energoatomizdat, 1986, 400 p. (in Russian).

« 8. Deundyak, V.M., Knutova, A.V. Integriruemost' sistem polinomov neskol'kikh peremennykh pervoy i vtoroy

^ stepeni nad prostymi polyami Galua. [Integrability of Systems of the First and Second Degree Polynomials of Several jd, Variables over Simple Galois Fields.] Izvestiya vuzov. Severo-Kavkazskiy region. Natural Sciences. 2016, no. 2, pp. 41-46 (in S Russian).

9. Mazurenko, A.V., Mogilevskaya, N.S. Algoritm vosstanovleniya bulevoy funktsii po ee proizvodnoy po napravleniyu. [Algorithm of Boolean function recovery from its directional derivative.] Sistemnyy analiz, upravlenie i 130 obrabotka informatsii: sb. trudov VI mezhdunarodnogo seminara. [System analysis, information control and processing: Proc.

VI Int. Seminar.] Rostov-on-Don, 2015, vol. 1, pp. 256-262. Available at: http://ntb.donstu.ru/content/2015421/ (accessed: 13.11.2016) (in Russian).

10. Glukhov, М.М., Yelizarov, V.P., Nechaev, A.A. Algebra. ^ 1. [Algebra. Vol.1.] Moscow: Gelios ARV, 2003, 336 p. (in Russian).

Поступила в редакцию 25.11.2016 Сдана в редакцию 25.11.2016 Запланирована в номер 11.01.2017

Об авторах:

Мазуренко Александр Вадимович, студент Донского государственного технического университета (РФ, 344000, г. Ростов-на-Дону, пл. Гагарина, 1), ОКСГО: http://orcid.org/ 0000-0001-9541-3374, mazurencoal@gmail.com

Могилевская Надежда Сергеевна, доцент кафедры «Кибербезопасность информационных систем» Донского государственного технического университета (РФ, 344000, г. Ростов-на-Дону, пл. Гагарина, 1), кандидат технических наук, ОЯСГО: http://orcid.org/0000-0003-1357-5869, 79044430127@yandex.ru

Received 25.11.2016 Submitted 25.11.2016 Scheduled in the issue 11.01.2017

Authors:

Mazurenko, Alexander V., student, Don State Technical University (RF, Rostov-on-Don, Gagarin sq., 1), ORCID:http://orcid.org/ 0000-0001-9541-3374, mazurencoal@gmail.com

Mogilevskaya, Nadezhda S., associate professor of the Cybersecurity of IT Systems Department, Don State Technical University (RF, Rostov-on-Don, Gagarin sq., 1), Cand. Sci. (Eng.), ORCID: http://orcid.org/0000-0003-1357-5869, 79044430127@yandex.ru

u К X <u 4 Ю c3 Л

С

^

к

cö

и к

X

<и н к:

сЗ X Л

ч

<и н к

4

о

к

Е 3 ю

<й и к

<3

5

Л

о X

S