Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Криптографические свойства булевых функций. Методические указания

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования «Оренбургский государственный университет»

Т.М. Отрыванкина, А.Н. Благовисная

КРИПТОГРАФИЧЕСКИЕ СВОЙСТВА БУЛЕВЫХ ФУНКЦИЙ

Рекомендовано Редакционно-издательским советом федерального государственного бюджетного образовательного учреждения высшего профессионального образования «Оренбургский государственный университет» в качестве методических указаний для студентов, обучающихся по программам высшего профессионального образования по направлениям подготовки 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

 

 

 

 

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]