Булевы функции и их применение. Курс лекций
.pdf
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ЯДЕРНЫЙ УНИВЕРСИТЕТ «МИФИ»
А.В. Епишкина
Булевы функции и их применение
Курс лекций
Москва 2020
1
УДК 510.6 ББК 22.1 Е 67
Епишкина А.В. Булевы функции и их применение: курс лекций [Электронный ресурс]. М.: НИЯУ МИФИ, 2020. – 72 с.
Представлены лекции, содержащие необходимый материал по теории булевых функций, позволяющий решать такие практические задачи, как определение полноты и замкнутости систем булевых функций, минимизация и классификация булевых функций. Особое внимание уделяется специальным свойствам булевых функций и нелинейных отображений, используемых для анализа и синтеза криптографических примитивов. В курсе рассматриваются корреляция и автокорреляция, перемешивающие свойства нелинейных отображений, совершенность отображений, строгий лавинный критерий и критерии распространения.
Доступный, но строгий с научной точки зрения язык изложения, а также большое количество примеров и задач позволят слушателям освоить основы теории булевых функций и изучить аспекты их практического применения для решения задач защиты информации.
Настоящий курс предназначен для студентов, изучающих информационную безопасность в том или ином объеме в различных учебных заведениях, а также для преподавателей смежных направлений.
Подготовлено в рамках Проекта по созданию и развитию Международного научно-методического центра НИЯУ МИФИ.
Рецензент д-р техн. наук, проф. Г.И. Борзунов
Рекомендовано к изданию кафедрой № 42 «Криптология и кибербезопасность» НИЯУ МИФИ
ISBN 978-5-7262-2679-8 |
© Национальный исследовательский |
|
ядерный университет «МИФИ», 2020 |
|
© А.В. Епишкина, 2020 |
2
|
СОДЕРЖАНИЕ |
|
СПИСОК ОБОЗНАЧЕНИЙ И СОКРАЩЕНИЙ.................................................. |
5 |
|
ВВЕДЕНИЕ ........................................................................................................ |
6 |
|
Лекция 1. |
Элементарные булевы функции и способы их задания............... |
7 |
1.1. Элементарные булевы функции..................................................... |
7 |
|
1.2. Табличное задание булевых функций............................................ |
9 |
|
1.3. Геометрическое и графическое задание булевых функций....... |
10 |
|
1.4. Реализация булевых функций формулами.................................. |
11 |
|
Лекция 2. Нормальные формы булевых функций........................................ |
14 |
|
2.1. Дизъюнктивная нормальная форма булевой функции............... |
14 |
|
2.2. Конъюнктивная нормальная форма булевой функции............... |
17 |
|
2.3. Многочлен Жегалкина и действительный многочлен ................. |
19 |
|
Лекция 3. Спектральное представление булевых функций......................... |
22 |
|
3.1. Скалярное произведение в поле GF(2) и его свойства............... |
22 |
|
3.2. Разложение булевой функции в ряд Фурье................................. |
23 |
|
3.3. Преобразование Адамара-Уолша................................................. |
25 |
|
Лекция 4. Полнота и замкнутость систем булевых функций....................... |
27 |
|
4.1. Замыкание множества булевых функций, замкнутые классы, |
|
|
|
полные системы булевых функций.............................................. |
27 |
4.2. Важнейшие замкнутые классы булевых функций....................... |
30 |
|
4.3. Критерий полноты системы булевых функций............................ |
33 |
|
Лекция 5. Минимизация булевых функций.................................................... |
38 |
|
5.1. Постановка задачи минимизации булевых функций................... |
38 |
|
5.2. Геометрическая интерпретация минимизации ДНФ ................... |
40 |
|
5.3. Метод Квайна – Мак-Класки нахождения |
|
|
|
сокращенной ДНФ булевой функции ........................................... |
43 |
5.4. Метод Петрика нахождения тупиковых ДНФ ............................... |
45 |
|
Лекция 6. Классификация булевых функций................................................ |
48 |
|
6.1. Эквивалентность булевых функций |
|
|
|
относительно группы преобразований......................................... |
48 |
3
6.2. Основные группы преобразований, используемые |
|
для классификации булевых функций......................................... |
50 |
6.3. Свойства эквивалентных булевых функций................................ |
51 |
6.4. Классификация булевых функций................................................ |
52 |
Лекция 7. Специальные свойства булевых функций |
|
и нелинейных отображений.......................................................... |
54 |
7.1. Автокорреляция и взаимная корреляция..................................... |
54 |
7.2. Элементарные функции k-значной логики................................... |
56 |
7.3. Важные классы функций k-значной логики.................................. |
59 |
7.4. Распознавание полноты и критерии полноты в Pk...................... |
62 |
7.5. Особенности k-значных логик....................................................... |
64 |
7.6. Криптографические свойства нелинейных отображений............ |
65 |
Список литературы......................................................................................... |
70 |
4
СПИСОК ОБОЗНАЧЕНИЙ И СОКРАЩЕНИЙ
— сложение по модулю 2
x— отрицание переменной x
— дизъюнкция
— конъюнкция
→— импликация
/ — штрих Шеффера
↓— стрелка Пирса
i = |
|
|
— число i «пробегает» значения от 1 до n |
1,n |
|||
E2 |
— множество из двух элементов E2 = {0, 1} |
||
Vn |
— множество двоичных n-мерных векторов |
||
P2 |
— система всех булевых функций |
||
P2(n) |
— множество всех булевых функций от n переменных |
||
Т0 |
— класс булевых функций, сохраняющих константу 0 |
||
Т1 |
— класс булевых функций, сохраняющих константу 1 |
||
S |
— класс самодвойственных булевых функций |
||
M |
— класс монотонных булевых функций |
||
L |
— класс линейных булевых функций |
||
A |
— класс аффинных булевых функций |
||
GF(2) |
— поле из двух элементов {0, 1} |
||
Б.ф. |
— булева функция |
||
ДНФ |
— дизъюнктивная нормальная форма |
||
КНФ |
— конъюнктивная нормальная форма |
||
МДНФ |
— минимальная дизъюнктивная нормальная форма |
||
СДНФ |
— совершенная дизъюнктивная нормальная форма |
||
СКНФ |
— совершенная конъюнктивная нормальная форма |
||
СЛК |
— строгий лавинный критерий |
||
ТДНФ |
— тупиковая дизъюнктивная нормальная форма |
||
5
ВВЕДЕНИЕ
Понятие булевой функции сформировалось во второй половине XIX в. в связи с исследованиями по математической логике и основаниями математики. Свое название булевы функции получили в честь Джорджа Буля (1815–1864), английского математика, одного из основоположников математической логики. В первой половине XX в. булевы функции приобрели фундаментальное значение для оснований математики. Вместе с тем длительное время булевы функции оставались невостребованными в прикладных областях.
Существенные изменения произошли в середине XX в., когда бурное развитие средств связи, приборостроения и вычислительной техники потребовало создания адекватного математического аппарата. В этот период происходит становление таких прикладных отраслей математики, как теория конченых функциональных систем, теория информации, теория кодирования и криптография. Практика показала плодотворность применения аппарата теории булевых функций к проблемам анализа и синтеза дискретных устройств, осуществляющих обработку и преобразование данных.
Всовременной криптографии в формулировках многих задач используется аппарат теории булевых функций. В первую очередь это относится к криптографическим системам с секретным ключом.
Внастоящем курсе лекций излагаются основы теории булевых функций, включая способы их задания, исследование полноты и замкнутости систем булевых функций, минимизации и классификации последних. Отдельное внимание уделяется специальным свойствам булевых функций и нелинейных отображений, применяемых при синтезе и анализе криптографических систем.
6
Лекция 1. Элементарные булевы функции и способы их задания
Введение. В данной лекции будут рассматриваться булевы функции, их определение, основные свойства и характеристики. Приводятся основные элементарные функции от одной и двух переменных. Изучаются табличное, геометрическое, графическое задания булевых функций. Исследуется вопрос задания булевых функций формулами, приводится принцип двойственности для формул.
Ключевые слова: булева функция; существенная переменная; несущественная переменная; вес булевой функции; равновероятная функция; табличное задание; геометрическое задание; графическое задание; формула; двойственная функция; самодвойственная функция.
1.1. Элементарные булевы функции
Определение. Функциями алгебры логики или булевыми функци-
ями (б.ф.) называются функции f (x1, x2,…, xn), аргументы которых xi, взятые из счетной совокупности аргументов, определены на
множестве E2 = {0, 1}, i =1,n , и такие что f (x1, x2,…, xn) E2. Т.е.
f : Vn → E2, где Vn = {(α1, α2,…, αn) | αi E2, i =1,n }.
Для задания б.ф. достаточно указать, какое значение функции соответствует каждому набору переменных, т.е. задать последний столбец таблицы, имеющей 2n строк и n+1 столбец (табл. 1.1).
Данная таблица называется таблицей истинности.
Наборы значений переменных располагаются, как правило, в лексикографическом порядке, т.е. для любого двоичного набора α = (α1, α2,…, αn) Vn определяется его номер:
N(α) = α12n–1 + α22n–2 +…+ αn–121 + αn20.
Число различных наборов в таблице равно 2n. Обозначим через P2 систему всех б.ф., через P2(n) – системы всех б.ф. от n переменных. Из таблицы видно, что число различных столбцов значений
функции равно 22n . Отсюда следует, что |P2(n)| =22n .
7
Таблица 1.1 Табличное задание булевой функции от n переменных
x1 |
x2 |
… |
xn–1 |
xn |
f (x1, x2,…, xn) |
0 |
0 |
… |
0 |
0 |
f (0, 0,…, 0, 0) |
0 |
0 |
… |
0 |
1 |
f (0, 0,…, 0, 1) |
0 |
0 |
… |
1 |
0 |
f (0, 0,…, 1, 0) |
0 |
0 |
… |
1 |
1 |
f (0, 0,…, 1, 1) |
… |
… |
… |
… |
… |
… |
1 |
1 |
… |
1 |
1 |
f (1, 1,…, 1, 1) |
Определение. Векторы α, β Vn называются соседними по i-й
координате, если их i-е координаты различны, а все остальные координаты совпадают, i = 1,n.
Определение. Переменная xi б.ф. f (x1, x2,…, xn) называется несущественной или фиктивной, если на любых соседних по i-й ко-
ординате векторах функция f (x1, x2,…, xn) принимает одинаковые
значения, i = |
1,n |
. В противном случае |
переменная |
xi |
б.ф. |
f (x1, x2,…, xn) называется существенной, т.е. α1, α2,…, |
αi–1, |
||||
αi+1,…, αn | f (α1, α2,…, αi–1, 0, αi+1,…, αn) |
≠ f (α1, α2,…, |
αi–1, 1, |
|||
αi+1,…, αn). |
|
|
|
||
Определение. Пусть f (x1, x2,…, xn) зависит от xi несущественно. Преобразуем ее таблицу в таблицу функции от n–1 переменной, вычеркивая в первой таблице все строки вида (α1,…, αi–1, 1, αi+1, …, αn) и столбец, соответствующий аргументу xi. Новая таблица соответствует функции g (x1,…, xi–1, xi+1,…, xn), про которую говорят, что она получена из функции f (x1, x2,…, xn) путем удаления несущественной переменной xi, а f (x1, x2,…, xn) получается из функции g (x1,…, xi–1, xi+1,…, xn) путем введения фиктивной пере-
менной xi, i = 1,n..
Определение. Две б.ф. называются равными, если одна может быть получена из другой добавлением или изъятием несущественных переменных. Выражение f1 = f2 означает равенство б.ф.
Заметим, что в P2 существуют две б.ф., не имеющие существенных переменных: функции-константы 0 и 1.
– 8 –
Перечислим важнейшие элементарные б.ф.: f1(x) = 0 – константа 0;
f2(x) = 1 – константа 1;
f3(x) = x – тождественная функция; f4(x) = x – отрицание x;
f5(x1, x2) = x1 x2 = x1 x2 – конъюнкция x1 и x2; f6(x1, x2) = x1 x2 – дизъюнкция x1 и x2;
f7(x1, x2) = x1 →x2 – импликация x1 и x2; f8(x1, x2) = x1 x2 – сложение x1 и x2 по mod 2; f9(x1, x2) = x1/x2 = x1|x2 – штрих Шеффера; f10(x1, x2) = x1 ↓x2 – стрелка Пирса.
Табличные задания этих функций имеют вид, приведенный в табл. 1.2 и 1.3.
|
|
|
|
|
Таблица 1.2 |
|
Элементарные булевы функции от одной переменной |
||||
|
|
|
|
|
|
x |
|
f1(x) |
f2(x) |
f3(x) |
f4(x) |
0 |
|
0 |
1 |
0 |
1 |
1 |
|
0 |
1 |
1 |
0 |
Таблица 1.3 Элементарные булевы функции от двух переменных
(x1, x2) f5(x1, x2) f6(x1, x2) f7(x1, x2) f8(x1, x2) f9(x1, x2) f10(x1, x2)
00 |
0 |
0 |
1 |
0 |
1 |
1 |
01 |
0 |
1 |
1 |
1 |
1 |
0 |
10 |
0 |
1 |
0 |
1 |
1 |
0 |
11 |
1 |
1 |
1 |
0 |
0 |
0 |
1.2. Табличное задание булевых функций
Определение. Множество If наборов значений переменных, на которых б.ф. f принимает значение 1, называется множеством ис-
тинности б.ф. f.
– 9 –
Определение. Порядок множества If называется весом б.ф. f.
Обозначение: ||f (x1, x2,…, xn)|| или ||f ||. |
|
|
Заметим, что 0 ≤ ||f (x1, x2,…, xn)|| = |
|
f (α1,α2,...,αn ) ≤ 2n. |
|
(α1,α2 ,...,αn ) Vn |
|
Приведем формулы для вычисления веса б.ф.:

f 
= 2n − 
f 
,
||f g|| = ||f|| + ||g|| – ||f g||, ||f g|| = ||f|| + ||g|| – 2 ||f g||.
Определение. Если ||f (x1, x2,…, xn)|| = 2n–1, то б.ф. f (x1, x2,…, xn)
называется равновероятной или сбалансированной.
1.3. Геометрическое и графическое задание булевых функций
Определение. Геометрическое задание б.ф. f (x1, x2,…, xn) – это изображение n-мерного единичного куба со множеством вершин Vn, в котором выделены вершины множества If.
Пример. Геометрическое задание б.ф. f (x1, x2, x3) = x1 x2x3 . Построим табличное задание данной б.ф. (табл. 1.4).
|
|
|
|
|
Таблица 1.4 |
|
Табличное задание б.ф. f (x1, x2, x3) = |
x1 x2x3 |
|||
|
|
|
|
|
|
x1 |
|
x2 |
x3 |
|
f (x1, x2, x3) |
0 |
|
0 |
0 |
|
0 |
0 |
|
0 |
1 |
|
0 |
0 |
|
1 |
0 |
|
1 |
0 |
|
1 |
1 |
|
0 |
1 |
|
0 |
0 |
|
1 |
1 |
|
0 |
1 |
|
1 |
1 |
|
1 |
0 |
|
1 |
1 |
|
1 |
1 |
|
1 |
– 10 –
