Булевы функции и их применение. Курс лекций
.pdfg = |
|
x1 |
x2 ... |
xn |
, |
xj1 |
a1 |
xj2 a2 ...xjn |
an |
||
где ( j1, j2,..., jn ) |
– перестановка чисел (1,2,..., n), (a1,a2,...,an ) Vn . |
||||
Преобразования заключаются в перестановке переменных и инвертировании некоторых из них, | Qn | = n!2n.
4. Группа GLn (2) линейных преобразований набора n переменных (полная линейная группа). Преобразования задаются невырожденной двоичной матрицей A размера n×n: g(x) = xA.
n−1
Порядок группы GLn(2) равен ∏(2n −2i ).
i=0
5.Группа AGLn (2) аффинных преобразований (полная аффинная
группа), являющаяся произведением групп GLn и Σn . Она состоит
из преобразований вида g(x) = xA b, где A = (aij) – обратимая матрица размера n ×n над полем из двух элементов, вектор
n−1
b = (b1,b2,...,bn ) Vn . Порядок AGLn (2) равен 2n ∏(2n −2i ).
i=0
Каждая из групп Sn , Σn , Qn , GLn (2) является подгруппой груп-
пы AGLn (2).
6.3. Свойства эквивалентных булевых функций
Утверждение 1. Пусть G – одна из групп Sn, Σn , Qn, GLn(2),
G
AGLn(2) и f h . Тогда:
1.|| f || = || h ||.
2.deg f = deg h.
Доказательство. Справедливость первого свойства следует из того, что при любом обратимом преобразовании g множества Vn вес функции f (g(x)) неизменен.
Справедливость второго свойства следует из того, что при любом аффинном преобразовании g множества Vn степень нелинейности функции не увеличивается, поэтому
deg f (x) ≥ deg f (g(x)) ≥deg f (g−1(g(x))) =deg f (x).
– 51 –
Что и требовалось доказать.
G
Утверждение 2. Пусть G – одна из групп Sn, Σn , Qn и f h. То-
гда функции f и h имеют одинаковое количество существенных переменных.
Доказательство. Достаточно заметить, что при любом преобразовании g множества Vn, g G, пара соседних векторов преобразуется в пару также соседних наборов. Что и требовалось доказать.
6.4. Классификация булевых функций
Изложим идею классификации б.ф. с использованием групп преобразований их области определения. Важной проблемой классификации является задача конструктивного перечисления, т.е. получения списка представителей всех классов эквивалентности. Эту задачу можно решать следующим образом.
1. Сначала выбирается какой-либо способ перечисления всех функций из P2(n), т.е. генерируется последовательность {f1, f2, f3,…}. Способы построения этой последовательности могут быть разные, например: перебор функций, начиная с функций малого веса; перебор функций с различными графами связности вершин в n-мерном кубе и т.д. Как правило, сразу не удается обеспечить условия, чтобы все эти функции лежали в разных классах эквивалентности, поэтому выполняем следующий шаг.
2. Полагаем f (1) = f1 и подсчитываем | JG ( f (1) )|. Далее рассмат-
|
G |
|
риваем f2 |
и проверяем, выполнено ли отношение f2 f (1). |
Если вы- |
полнено, |
то переходим к f3. Если не выполнено, то |
полагаем |
f (2) = f2 |
и подсчитываем | JG ( f (2) )| и т.д. |
|
Для очередной функции fi из исходной последовательности проверяем, эквивалентна ли она одной из отобранных ранее функций f (1),..., f (m) или нет. Если эквивалентна, то переходим к fi+1.
Если не эквивалентна, то полагаем f (m+1) = fi и вычисляем
|JG ( f (m+1) )|. После этого проверяем выполнимость равенства
–52 –
m+1 |G | |
|
2n |
|
|
i=1 |
|
= 2 |
|
. |
| JG ( f (i) )| |
|
|||
Если данное равенство выполнено, то классификация закончена. Описанный метод классификации упрощается, если заранее известно число m классов эквивалентности, так как отпадает необходимость в вычислении порядков групп инерции и проверке выполнимости последнего равенства. В этом случае классификация за-
вершена, если построена последовательность f (1),..., f (m).
Определенное неудобство такой классификации заключается в том, что мощности классов эквивалентности могут заметно различаться.
– 53 –
Лекция 7. Специальные свойства булевых функций и нелинейных отображений
Введение. Для синтеза и анализа криптографических примитивов необходимо изучить специальные свойства б.ф. и нелинейных отображений, такие как автокорреляция и взаимная корреляция б.ф. Криптографические отображения и их нелинейность, перемешивающие свойства нелинейных отображений, совершенность отображений и композиции преобразований также крайне важны в криптографических приложениях. В некоторых криптографических конструкциях применяются функции k-значной логики, особенностям которых также посвящена данная лекция.
Ключевые слова: автокорреляция; взаимная корреляция; автокорреляционная функция; совершенно некоррелированные функции; функции k-значной логики; криптографические отображения; нелинейность отображений; перемешивающий граф; совершенное отображение; строгий лавинный критерий; критерий распространения; бент-отображения; корреляционно-иммунные функции; устойчивые функции.
7.1. Автокорреляция и взаимная корреляция
Взаимная корреляция и автокорреляция б.ф. является одним из важнейших инструментов в исследовании криптографических свойств б.ф. С его помощью можно характеризовать различные свойства б.ф. и устанавливать между этими свойствами содержательные связи.
Определение. Пусть |
f, g P2(n). Целочисленная функция |
f ,g (u) = (−1)f (x) g (x u) , |
определенная на пространстве Vn, назы- |
x Vn |
|
вается функцией взаимной корреляции или взаимной корреляцией б.ф. f и g.
Очевидно, что при любом u Vn и любых f, g P2(n) имеет место равенство f ,g (u) = g , f (u).
– 54 –
Определение. Пусть |
f P2(n). Целочисленная функция |
f (u) = (−1)f (x) f (x u ), |
определенная на пространстве Vn, назы- |
x Vn |
|
вается автокорреляционной функцией или автокорреляцией б.ф. f.
Несложно увидеть, что автокорреляция f в точке u Vn совпадает с нулевым коэффициентом Адамара-Уолша.
Также легко заметить, что при любом u Vn и любых f P2(n) имеет место равенство f , f (u) = f (u).
Необходимо отметить, что не любой набор из 2n чисел может быть набором значений автокорреляции некоторой б.ф.
Определение. Б.ф. f, g P2(n) называются совершенно некорре-
лированными, если при любом u Vn имеет место равенство f ,g (u) = 0.
Перейдем теперь к рассмотрению теоремы о взаимной корреляции, значение которой определяется возможностью с ее помощью получать различные результаты, описывающие новые криптографические свойства б.ф.
Теорема. О взаимной корреляции.
Пусть f, g P2(n). Тогда
( f ,g (0),..., f ,g (2n −1))Hn = (Wf (0)Wg (0),...,Wf (2n −1)Wg (2n −1)),
где Hn – матрица Адамара, W – коэффициенты Адамара-Уолша.
Доказательство. Выполним следующие очевидные преобразования:
f ,g (u)(−1)(x,y) = (−1)f (x) g (x u) (−1)(u,v) =
u Vn u Vn x Vn
= (−1)f (x) (−1)g (x u) (u,v).
x Vn u Vn
Воспользовавшись теперь заменой переменных z = x u, получаем
(−1)f (x) (−1)g (x u) (u,v) = (−1)f (x) (−1)g (z) (z x,v) = x Vn u Vn x Vn z Vn
= (−1)f (x) (x,v) (−1)g (z) (z,v) = Wf (v)Wg (v).
x Vn |
z Vn |
– 55 –
Что и требовалось доказать.
Следствие 1. Пусть f P2(n). Тогда ( f (0),..., f (2n −1))Hn = = (Wf2 (0),...,Wf2 (2n −1)).
Следствие 2. Пусть f, g P2(n). Тогда
2т( f ,g (0),..., f ,g (2n −1)) = (Wf (0)Wg (0),...,Wf (2n −1)Wg (2n −1))Hn .
Следствие 3. Теорема о свертке. Пусть h(x) = f (x) g(x), где f, g P2(n). Тогда
Wh (u) = 21n x Vn Wf (x)Wg (x u)
при любом u Vn.
7.2. Элементарные функции k-значной логики
Пусть U = {u1, u2,…, um,…} – исходный алфавит переменных, значения которых определены на множестве Ek = {0, 1,…, k–1}, k > 2.
Определение. Функцией k-значной логики от n переменных
называется отображение f : Ek(n) → Ek , где переменные x1, x2,…, xn
взяты из алфавита U.
Через Pk обозначим множество всех функций k-значной логики и через Pk(n) – множество всех функций k-значной логики, зависящих от n переменных.
Из определения следует, что Pk (n) = kk n .
Определение. Табличное задание функции k-значной логики f (x1, x2,…, xn) Pk (n) имеет вид, приведенный в табл. 7.1.
Табличное задание функций k-значной логики еще более громоздкое, чем задание б.ф. Поэтому чаще используется задание функций с помощью формул или алгоритмов вычисления их значений.
– 56 –
|
|
|
|
Таблица 7.1 |
|
Табличное задание функции k-значной логики |
|||
|
|
|
|
|
x1 |
… |
xn–1 |
xn |
f (x1, x2,…, xn) |
0 |
… |
0 |
0 |
f (0,…, 0, 0) |
0 |
… |
0 |
1 |
f (0,…, 0, 1) |
… |
… |
… |
… |
… |
0 |
… |
0 |
k–1 |
f (0,…, 0, k–1) |
0 |
… |
1 |
0 |
f (0,…, 1, 0) |
… |
… |
… |
… |
… |
k–1 |
… |
k–1 |
k–1 |
f (k–1,…, k–1, k–1) |
Определение. Переменная xi функции k-значной логики f (x1, x2,…, xn) называется несущественной или фиктивной, если на любых соседних по i-й координате векторах функция f (x1, x2,…, xn)
принимает одинаковые значения, i =1,n. В противном случае пе-
ременная xi функции k-значной логики f (x1, x2,…, xn) называется
существенной.
Определение. Две функции k-значной логики называются равными, если одна может быть получена из другой добавлением или изъятием несущественных переменных.
Определение. Функция f (x1, x2,…, xn) P называется формулой
над P. Если f0 (x1, x2,…, xm) P и f1, f2,…, fm – либо формулы над P, либо символы переменных, то выражение f0 (f1, f2,…, fm) также
называется формулой над P.
Определение. Класс M называется замкнутым классом функций k-значной логики, если [M] = M.
Определение. Система P = {f1, f2,…, fs,…} из Pk называется
(функционально) полной системой, если любая функция k-значной логики представима формулой над P.
Эквивалентное определение полноты системы функций k-знач- ной логики: система P полна, если [P] = Pk.
Перечислим важнейшие элементарные функции k-значной
логики:
константы 0, 1,…, k –1;
– 57 –
отрицание Поста: (x + 1) mod k ≡ x ;
отрицание Лукашевича: (k – 1) – x (mod k) ≡ x ≡ Nx;
характеристическая функция (1-го рода) числа i:
ji (x) = 1, |
если x = i, |
i = |
|
|
; |
|
|
|
0,k −1 |
||||||||
0, |
если x ≠ i, |
|
|
|
|
|
|
|
характеристическая функция (2-го рода) числа i: |
||||||||
Ji (x) = k −1, если x = i, |
i = |
|
|
|
|
|||
0,k −1; |
||||||||
0, |
если x ≠ i, |
|
|
|
|
|
|
|
транспозиция чисел i и j: |
|
|
|
|
|
|
|
|
x, |
если x {i, j}, |
|
|
|
|
|
|
|
tij (x) = j, |
если x = i, |
|
i, j = |
|
i ≠ j ; |
|||
|
0,k −1, |
|||||||
i, |
если x = j, |
|
|
|
|
|
|
|
минимум x и y: min (x, y); максимум x и y: max (x, y);
сумма по mod k: (x + y) mod k;
произведение по mod k: (x y) mod k; разность по mod k:
(x − y)modk = |
k − (y − x), если 0≤ x < y ≤ k −1, |
|
|
если 0≤ y ≤ x ≤ k −1; |
|
|
x − y, |
|
усеченная разность x y: |
||
0, если 0≤ x |
< y ≤ k −1, |
|
x y = |
если 0 |
≤ y ≤ x ≤ k −1; |
x − y, |
||
импликация x y: |
|
|
k −1, |
если 0 |
≤ x < y ≤ k −1, |
x y = |
− x + y, |
если 0≤ y ≤ x ≤ k −1; |
(k −1) |
||
функция Вебба: vk (x, y) = (max (x, y) + 1) mod k.
– 58 –
Некоторые б.ф. имеют в Pk по нескольку аналогов, обобщающих их отдельные свойства.
Функции min, max, сумма и произведение по модулю k обладают свойствами коммутативности (x y = y x) и ассоциативности (a (b c) = (a b) c). Верны законы дистрибутивности умножения относительно сложения:
(x + y) z = x z + y z;
дистрибутивности операции max относительно операции min и операции min относительно операции max:
max (min (x, y), z) = min (max (x, z), max (y, z)), min (max (x, y), z) = max (min (x, z), min (y, z)).
Любую функцию k-значной логики можно представить в виде 1-й и 2-й формы.
Определение. 1-я форма (аналог СДНФ б.ф.):
f (x1,...,xn ) = |
max |
{min( f (σ1,...,σn ),Jσ1 (x1),...,Jσn (xn ))}. |
|
(σ1,...,σn ) Ek(n) |
|
Определение. 2-я форма (аналог СКНФ б.ф.): |
||
f (x1,...,xn ) = |
|
f (σ1,...,σn ) jσ1 (x1) ... jσn (xn ). |
(σ1,...,σn ) Ek(n)
Вдальнейшем будем использовать следующие обозначения:
στ = min(σ, τ), σ τ = max(σ, τ).
7.3.Важные классы функций k-значной логики
Рассмотрим некоторые классы функций k-значной логики, свойства которых важны, в частности, для криптографических приложений.
Определение. Функция f (x1, x2,…, xn) называется сбалансированной, если для любого r Ek:
{(x1,x2,...xn ) Ek(n) | f (x1,x2,...xn ) = r} = kn−1.
Пример 1. Сбалансированные функции: (x + y) mod k и tij (x) .
– 59 –
Пример 2. Несбалансированные функции: max(x, y) и min(x, y). Сбалансированная функция из Pk (1) есть подстановка на мно-
жестве Ek.
Определение. Биективное преобразование ϕ множества X мощ-
ности n называется подстановкой на множестве X, а n – степенью подстановки, если
|
x1 |
x2 ... |
xn |
|
x1 |
x2 ... |
xn |
|
||
ϕ = |
ϕ(x ) |
ϕ(x |
) ... |
ϕ(x |
|
= |
x |
... |
x |
, |
|
) |
x |
|
|||||||
|
1 |
2 |
|
n |
|
i1 |
i2 |
|
in |
|
где X = {x1, x2,…, xn} и (i1, i2,…, in) – перестановка чисел (1, 2,…, n).
Определение. Если в функции f (x1, x2,…, xn) значения некоторых переменных зафиксировать константами из Ek, то получим
подфункцию функции f (x1, x2,…, xn), соответствующую данной фиксации.
Определение. Функция f (x1, x2,…, xn) называется биективной по переменной xi, если все ее подфункции, соответствующие всевозможным фиксациям остальных переменных, реализуют подстанов-
ки множества Ek, i = 1,n.
Пример 1. Функция (x + y) mod k биективна по обеим переменным.
Пример 2. Функция (x y) mod k не биективна ни по x, ни по y.
Определение. Многочленом по модулю k от переменных x1, x2,…, xn называется выражение вида
Q (x1, x2,…, xn) = (a0 + a1 X1 +…+ am Xm) mod k,
где ai Ek, i = 0,m и выражение Xj, j = 1,m, называемое одночленом, есть произведение переменных из множества {x1, x2,…, xn}.
Определение. Степенью одночлена Xj называется сумма степеней всех переменных, перемножаемых в данном одночлене.
Обозначение: deg Xj.
Определение. Степенью многочлена Q называется максимальная из степеней его одночленов.
Обозначение: deg Q.
– 60 –
