Криптографические свойства булевых функций. Методические указания
.pdfМинистерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования «Оренбургский государственный университет»
Т.М. Отрыванкина, А.Н. Благовисная
КРИПТОГРАФИЧЕСКИЕ СВОЙСТВА БУЛЕВЫХ ФУНКЦИЙ
Рекомендовано Редакционно-издательским советом федерального государственного бюджетного образовательного учреждения высшего профессионального образования «Оренбургский государственный университет» в качестве методических указаний для студентов, обучающихся по программам высшего профессионального образования по направлениям подготовки 010400.62 Прикладная математика и информатика, 010500.62 Математическое обеспечение и администрирование информационных систем и специальности 090301.65 Компьютерная безопасность
Оренбург
2014
УДК 519.7 (076.5) ББК 22.18я7
О 86
Рецензент – профессор, доктор физико-математических наук С.А. Пихтильков
Отрыванкина, Т.М.
О86 Криптографические свойства булевых функций: методические указания / Т.М. Отрыванкина, А.Н. Благовисная; Оренбургский гос. ун-т. – Оренбург: ОГУ, 2014. – 55 с.
Методические указания содержат материал, предназначенный для самостоятельной работы студентов в процессе изучения криптографических булевых функций.
Методические указания предназначены для студентов, обучающихся по направлениям подготовки 010400.62 Прикладная математика и информатика, 010500.62 Математическое обеспечение и администрирование информационных систем и специальности 090301.65 Компьютерная безопасность, и составлены в соответствии с утвержденными рабочими программами дисциплин, связанных с математическими методами защиты информации. Они могут использоваться и на других направлениях математического профиля и направлениях, связанных с защитой информации.
УДК 519.7 (076.5)
ББК 22.18я7
© Отрыванкина Т.М., Благовисная А.Н., 2014
© ОГУ, 2014
2
|
Содержание |
|
Введение ............................................................................................................................... |
4 |
|
1 Определения, числовые и метрические характеристики булевых функций.............. |
6 |
|
1.1 |
Определение булевой функции, способы задания ................................................. |
6 |
1.2 |
Алгебраическая нормальная форма ......................................................................... |
9 |
1.3 |
Алгебраическая степень булевой функции ........................................................... |
12 |
1.4 |
Вес булевой функции............................................................................................... |
13 |
1.5 |
Расстояние между булевыми функциями.............................................................. |
14 |
1.6 |
Преобразования Фурье и Уолша-Адамара ............................................................ |
16 |
1.7 |
Понятие эквивалентных булевых функций........................................................... |
21 |
1.8 |
Понятие булевых отображений .............................................................................. |
23 |
2 Криптографические свойства булевых функций ........................................................ |
25 |
|
2.1 |
Высокая алгебраическая степень............................................................................ |
26 |
2.2 |
Нелинейность............................................................................................................ |
26 |
2.3 |
Уравновешенность ................................................................................................... |
30 |
2.4 |
Устойчивость ............................................................................................................ |
31 |
2.5 |
Корреляционная иммунность ................................................................................. |
32 |
2.6 |
Алгебраическая иммунность................................................................................... |
34 |
2.7 |
Критерии распространения ..................................................................................... |
36 |
3 Примеры булевых функций, применяемых в криптографических конструкциях .. |
39 |
|
4 Рекомендации для дальнейшего изучения криптографических булевых функций 42 |
||
Список использованных источников .............................................................................. |
44 |
|
Приложение А Ответы и указания .................................................................................. |
48 |
|
Приложение Б Вопросы для самопроверки.................................................................... |
52 |
|
Приложение В Примерные направления учебно-исследовательской работы |
|
|
студентов по криптографическим булевым функциям ................................................. |
55 |
|
3
Введение
Профессиональная подготовка студентов математического факультета университета предполагает наличие в учебном плане дисциплин, направленных на понимание и осмысление студентами фундаментальных основ математики, на базе которых развиваются современные прикладные разделы математических наук. К
таким дисциплинам можно отнести и криптографию. Основными целями преподавания методов криптографии являются формирование представлений студентов о роли математики в развитии методов защиты информации и получение базовых математических знаний, лежащих в основе современной криптографии.
Одним из важнейших математических инструментов, применяемых в современных криптосистемах, является аппарат теории булевых функций. Булевы функции служат структурными элементами блочных, поточных шифров, а также широко известных криптографических хэш-функций. Кроме того, булевы функции используются в схемах аутентификации, а к настоящему времени появились и примеры описания криптосистем с открытым ключом, основанных на применении инструментария теории булевых функций. Таким образом, исследования в этой области современной прикладной математики, имеющие целью совершенствование криптографических средств, являются актуальными и востребованными.
В рабочих программах дисциплин по криптографии, составленных для студентов направлений подготовки 010400.62 Прикладная математика и информатика, 010500.62 Математическое обеспечение и администрирование информационных систем и специальности 090301.65 Компьютерная безопасность,
содержатся вопросы, в той или иной степени затрагивающие теорию и практику применения криптографических булевых функций. С булевой алгеброй и аппаратом теории булевых функций студенты знакомятся при изучении дисциплин
«Математическая логика» и «Дискретная математика». Однако полученных знаний оказывается недостаточно для изучения и понимания ряда вопросов, связанных с построением современных криптографических конструкций, структурными
4
компонентами которых являются булевы функции. С одной стороны, вопрос частично изучен студентами, что позволяет его не включать в материал лекционных и практических занятий. С другой стороны, изложение материала в современной литературе по криптографическим булевым функциям не всегда доступно для
понимания студентам. Это подтверждает, в частности, анализ различных
самостоятельных работ студентов, элементами которых являлись задания,
требующие применения аппарата теории булевых функций. Поэтому возникает необходимость в методических рекомендациях, позволяющих студентам изучить и понять основы теории криптографических булевых функций, подготовиться к пониманию научной литературы, посвященной этим вопросам.
Данные методические указания написаны в помощь студентам в освоении разделов криптографии, связанных с криптографическими булевыми функциями, и
рассчитаны на самостоятельную работу студента с материалом.
Методические указания содержат начальные теоретические сведения по
криптографическим булевым функциям, примеры решения задач, задания и
вопросы для самостоятельного выполнения и самопроверки, перечень вопросов для дальнейшего изучения темы, а также приложение с ответами и рекомендациями к выполнению заданий.
5
1 Определения, числовые и метрические характеристики
булевых функций
1.1 Определение булевой функции, способы задания
Булевы функции получили свое название в честь английского математика Джорджа Буля, который сформулировал алгебраическую систему логики. Во второй половине XIX века возникло современное понимание булевой алгебры (работы Джевонса и Пирса). В XX веке булева алгебра приобретает сначала фундаментальное значение для оснований математики, а затем с середины ХХ века аппарат теории булевых функций находит применение в различных направлениях
прикладной математики, в том числе и в криптологии.
Введем необходимые для дальнейшей работы определения и понятия теории булевых функций, известные Вам из курса дискретной математики и
математической логики.
Задание 1.1. Вспомните, что называется булевой функцией? Приведите
примеры булевых функций.
Рассмотрим определение булевой функции, которое поможет в дальнейшем
при изучении криптографических свойств булевых функций.
Пусть Vn – векторное пространство наборов длины n с компонентами из поля
F2 : Vn (a1, a2 ,...,an ) | ai |
0,1 . |
|
|
Определение 1.1. |
Булевой функцией (БФ) от n |
переменных называется |
|
отображение f :Vn |
F2 . |
|
|
Замечание |
1.1. В |
курсе дискретной математики |
Вы записывали булеву |
функцию как отображение f :{0,1}n {0,1}. В приведенном выше определении множества {0,1}n и {0,1} принимают вид алгебраических структур: векторного пространства и поля соответственно, так как этот акцент важен в ряде случаев.
Множество всех булевых функций от n переменных обозначим через P2 (n) .
Задание 1.2. Что является областью определения и областью значений
6
булевой функции из P2 (n) ?
Задание 1.3. Найдите число различных булевых функций от n аргументов.
Из курсов дискретной математики и математической логики Вам известны следующие способы задания булевых функций:
-аналитический (с помощью булевых формул);
-табличный (таблицы соответствия или таблица истинности);
|
- графический (область определения |
– |
n-мерный единичный |
куб с |
|||||||||||
выделенными вершинами, координаты которых ( |
1, |
2 ,..., |
n ) |
и f ( 1, |
2 ,..., |
n ) |
1); |
||||||||
|
- векторный (значения функции записаны в виде строки). |
|
|
|
|||||||||||
|
В исследованиях по криптографическим булевым функциям рассматриваются |
||||||||||||||
понятия последовательностей функции. |
|
|
|
|
|
|
|
|
|||||||
|
Определение |
1.2. |
Пусть |
f |
является |
функцией |
на Vn , |
0 |
(0,...,0,0) |
||||||
1 |
(0,...,0,1) ,…, |
|
n 1 |
|
(1,...,1,1) |
– |
все |
векторы |
на |
Vn . |
Последовательность, |
||||
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
определенная |
как |
|
(( 1) f ( |
0 ) ,( |
1) f ( |
1 ) ,...,( |
1) f ( |
2n 1 ) ) |
|
называется |
|
(1,-1)- |
|||
последовательностью |
функции |
f. |
Последовательность, |
определенная |
как |
||||||||||
( f ( |
0 ), f ( 1),..., f ( |
n 1 )) |
называется (0,1)-последовательностью. |
|
|
|
|||||||||
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Замечание |
1.2. |
В |
литературе |
(1,-1)-последовательность иногда |
называют |
|||||||||
просто последовательностью, а (0,1)-последовательность – таблицей истинности.
Задание 1.4. Вспомните простейшие булевы функции от одного и двух аргументов. Покажите, как их можно задать аналитическим, табличным,
графическим и векторным способами. Составьте для них (1,-1) и (0,1)-
последовательности. Сравните задание функций векторным способом и
составленную (0,1)-последовательность и сделайте вывод.
Определение |
1.3. |
Функция |
f (x1 |
, x2 ,..., xi 1, xi , xi 1,..., xn ) |
P2 (n) зависит |
||||||
существенно |
от |
переменной |
xi , |
если |
существуют |
такие |
значения |
||||
1, 2 ,..., i 1, |
i 1,..., |
n переменных x1, x2 ,..., xi |
1 |
,, xi |
1,..., xn , что |
|
|
|
|||
|
f ( |
1, 2 ,..., |
i 1,0, |
i 1,..., |
n ) |
|
f ( |
1, 2 ,..., i 1,1, |
i 1,..., |
n ) . |
|
Переменная |
xi называется |
существенной. |
|
В |
противном случае |
xi |
называется |
||||
|
|
|
|
|
7 |
|
|
|
|
|
|
несущественной или фиктивной.
Задание 1.5. Определить существенные и фиктивные переменные функции
(1,1,1,1,0,0,1,1).
Множество всех булевых функций от n переменных, существенно зависящих
|
|
|
|
|
|
|
|
|
|
|
|
от всех переменных, обозначим как P2 (n) . |
|
|
|
|
|
|
|||||
Определение 1.4. Подфункцией булевой функции f |
называется функция, |
||||||||||
полученная подстановкой в |
f констант 0 или 1 вместо некоторых переменных. |
|
|
||||||||
Обозначение: если в функцию |
f подставляются константы i ,..., |
|
i |
( s |
n) |
||||||
|
|
|
|
|
|
1 |
|
s |
|
|
|
вместо переменных x ,..., x |
соответственно, то подфункция обозначается |
f |
x |
i1 ,..., |
|
is . |
|||||
i |
i |
|
|
|
|
|
|
,...,x |
|
|
|
1 |
s |
|
|
|
|
|
|
i |
i |
|
|
|
|
|
|
|
|
|
|
1 |
|
s |
|
Задание 1.6. Вспомните, что называется лексикографическим порядком на |
|||||||||||
множестве Vn . |
|
|
|
|
|
|
|
|
|
|
|
Пример 1.1. |
Найти |
0,1 |
|
функции f, заданной |
вектором |
значений |
|||||
fx |
,x |
||||||||||
|
|
2 |
3 |
|
|
|
|
|
|
|
|
(1,0,1,1,1,0,1,0).
Решение.
Вектор (1,0,1,1,1,0,1,0) содержит 8 23 значений функции f, то есть функция зависит от трех переменных. Для наглядности рассмотрим табличное задание функции f (таблица 1). Заметим, что значения переменных функции в таблице 1
перечисляются в лексикографическом порядке.
Таблица 1 – Табличное задание функции примера 1.1
x1 |
x2 |
x3 |
f (x1, x2 , x3 ) |
|
|
|
|
0 |
0 |
0 |
1 |
|
|
|
|
0 |
0 |
1 |
0 |
|
|
|
|
0 |
1 |
0 |
1 |
|
|
|
|
0 |
1 |
1 |
1 |
|
|
|
|
1 |
0 |
0 |
1 |
|
|
|
|
1 |
0 |
1 |
0 |
|
|
|
|
1 |
1 |
0 |
1 |
|
|
|
|
1 |
1 |
1 |
0 |
|
|
|
|
8
Нам необходимо найти подфункцию fx0,1,x . Для этого в функцию f вместо |
|
2 |
3 |
переменной x2 подставим константу 0, а вместо x3 – константу 1. В таблице 1 во |
|
втором столбце будут все нули, а в третьем – все единицы. То есть в результате
получится только два вида наборов переменных: |
x1 0 , |
|
x2 |
0 , x3 1 и x1 1 , |
|||
x2 0 , |
x3 |
1. В первом случае значение функции |
f (0,0,1) |
|
0 , во втором случае |
||
f (1,0,1) |
0 . Таким образом, и при |
x1 0 , и при x1 |
1 мы получаем одно и то же |
||||
значение |
функции, равное нулю. |
Итак, подфункцией |
0,1 |
является функция, |
|||
fx |
,x |
||||||
|
|
|
|
|
2 |
3 |
|
зависящая от одного переменного x1 , называемая тождественным нулем.
1.2 Алгебраическая нормальная форма
В теории криптографических булевых функций важную роль играет представление булевой функции в виде алгебраической нормальной формы (АНФ)
или многочлена Жегалкина. АНФ представляет собой формулу, в которой
используются только операции сложения и умножения по модулю 2. |
|
|||||||
Теорема 1.1. Каждая функция f |
P2 (n) |
может |
быть |
представлена |
||||
единственным образом в виде многочлена |
из |
F2[x1,..., xn ], |
степень |
которого по |
||||
каждой переменой не превосходит 1: |
|
|
|
|
|
|
||
|
|
n |
|
|
|
|
|
|
|
|
p(x1,..., xn ) |
ai ,...,i |
xi |
... xi |
a0 , |
(1.1) |
|
|
|
|
1 |
k |
1 |
k |
|
|
|
|
i 1 i1 ,...,ik |
|
|
|
|
|
|
где a0 ,ai |
,...,i |
F2 , для каждого k все индексы i1,...,ik . |
|
|
|
|||
1 |
k |
|
|
|
|
|
|
|
Задание 1.7. Вспомните доказательство сформулированной теоремы.
Задание 1.8. В таблицах 2 и 3 приведены традиционное аналитическое обозначение и соответствующая алгебраическая нормальная форма (АНФ)
простейших булевых функций от одного и двух переменных. Посмотрите таблицы,
вспомните, каким образом можно получить представление булевой функции в виде
АНФ.
9
Таблица 2 – Простейшие БФ одного аргумента
Аналитическая запись |
|
|
АНФ |
|
|
|
|
Название БФ |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
f0 (x) |
0 |
|
|
|
|
g0 (x) |
0 |
|
|
|
тождественный ноль |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
f1 (x) |
x |
|
|
|
|
g1 (x) |
x |
|
|
|
тождественная |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
f2 (x) |
x ' |
|
|
|
|
g2 (x) |
x 1 |
|
|
|
отрицание |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
f3 (x) 1 |
|
|
|
|
g3 (x) |
1 |
|
|
|
тождественная единица |
|
||||||
|
|
|
|
|
|
|
|
|
|||||||||
Таблица 3 – Простейшие БФ двух аргументов |
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Аналитическая запись |
|
|
АНФ |
|
|
Название БФ |
|
||||||||
|
|
|
|
|
|
(если есть) |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f0 (x1, x2 ) |
0 |
|
|
|
|
|
g0 (x1, x2 ) |
0 |
|
|
|
|
тождественный |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ноль |
|
f1 (x1, x2 ) |
x1 x2 |
|
|
|
|
g1 (x1, x2 ) |
x1x2 |
|
|
|
|
конъюнкция |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
f2 (x1, x2 ) |
x1 |
x2 ' |
|
|
|
g2 (x1, x2 ) |
x1x2 |
x1 |
|
|
|
|
|||||
f3 (x1, x2 ) |
x1 |
|
|
|
|
|
g3 (x1, x2 ) |
x1 |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
f4 (x1, x2 ) |
x2 |
x1 ' |
|
|
|
g4 (x1, x2 ) |
x1x2 |
x2 |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
f5 (x1, x2 ) |
x2 |
|
|
|
|
|
g5 (x1, x2 ) |
x2 |
|
|
|
|
|
|
|||
f6 (x1, x2 ) |
x1 |
x2 ' |
x1 |
x2 |
|
g6 (x1, x2 ) |
x1 |
x2 |
|
|
сумма Жегалкина |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
f7 (x1, x2 ) |
x1 |
x2 |
|
|
|
|
g7 (x1, x2 ) |
x1x2 |
x1 |
x2 |
|
дизъюнкция |
|
||||
f |
8 |
(x , x ) |
x |
x |
' |
x |
x |
|
g8 (x1, x2 ) |
x1x2 |
x1 |
x2 |
1 |
стрелка Пирса |
|
||
|
1 |
2 |
1 |
2 |
|
1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
f9 (x1, x2 ) |
x1 |
x2 |
|
|
|
|
g9 (x1, x2 ) |
x1 |
x2 1 |
|
|
эквивалентность |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
f10 (x1, x2 ) |
x2 |
|
|
|
|
|
g10 (x1, x2 ) |
x2 |
1 |
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
f11 (x1, x2 ) |
x2 |
x1 |
|
|
|
|
g11 (x1, x2 ) x1x2 |
x2 |
1 |
|
|
|
|||||
f12 (x1, x2 ) |
x1 |
|
|
|
|
|
g12 (x1, x2 ) |
x1 |
1 |
|
|
|
|
|
|||
f13 (x1, x2 ) |
x1 |
x2 |
|
|
|
|
g13 (x1, x2 ) |
x1x2 |
x1 |
1 |
|
импликация |
|
||||
f14 (x1, x2 ) |
x1 |
x2 |
' |
x1 | x2 |
|
g14 (x1, x2 ) |
x1x2 |
1 |
|
|
|
штрих Шеффера |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
f15 (x1, x2 ) |
1 |
|
|
|
|
|
g15 (x1, x2 ) |
1 |
|
|
|
|
тождественная |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
единица |
|
|
|
|
|
|
|
|
|
|
|
|
10 |
|
|
|
|
|
|
