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

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

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

Пример 1.2. Найти АНФ функции, заданной вектором значений

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

Решение.

Количество значений функции равно 8, заданная функция является функцией трех переменных. Тогда АНФ заданной функции имеет вид:

f (x1, x2 , x3 ) a123x1x2 x3 a12 x1x2

a13x1x3 a23x2 x3

a1x1 a2 x2 a3x3

a0 ,

где a123, a12 , a13, a23, a1, a2 , a3, a0 F2

- неопределенные

коэффициенты,

которые

необходимо найти. Неопределенные коэффициенты найдем из системы:

f (0,0,0)

1

a0 ,

 

 

 

 

 

 

f (0,0,1)

0

a3

a0 ,

 

 

 

 

 

f (0,1,0)

1

a2

a0 ,

 

 

 

 

 

f (0,1,1)

1

a23

a2

a3

a0 ,

 

 

 

f (1,0,0)

1

a1

a0 ,

 

 

 

 

 

f (1,0,1)

0

a13

a1

a3

a0 ,

 

 

 

f (1,1,0)

1

a12

a1

a2

a0 ,

 

 

 

f (1,1,1)

0

a123

a12

a13

a23

a1

a2

a3 a0.

Из первого уравнения системы получаем a0

1 . Тогда из второго, третьего и

пятого уравнений следует,

что

a3 1, a2

0 , a1

0 .

Из

четвертого, шестого и

седьмого уравнений с учетом найденных коэффициентов найдем a23 1 , a13 0 и

a12 0 . Подставляя в последнее уравнений все найденные значения коэффициентов,

найдем a123 1.

 

Итак, АНФ заданной функции имеет вид x1x2 x3 x2 x3

x3 1.

Задание 1.9. Найти АНФ функции, заданной

вектором значений

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

 

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

11

Задание 1.10. Найти АНФ функций с помощью метода неопределенных

коэффициентов и с помощью тождеств булевой алгебры:

а) x1 x2

x1 x2 ;

б) x1(x1

x2 ) x3 ;

в) ((x1

x2 ) (x1

x2 ))

(x3 x4 ) ;

г) (x1 x3 x2 x3

x2 x4 )

x1.

Для

каждой

функции

определите, какие переменные являются

существенными, а какие – несущественными. Каким образом это отражается в АНФ функции?

1.3 Алгебраическая степень булевой функции

Определение 1.5. Алгебраической степенью булевой функции f называется число переменных в самом длинном слагаемом АНФ функции f . Обозначение:

deg f .

Задание 1.11. Найти алгебраическую степень функций из таблиц 2 и 3, а

также для функций заданий 1.9 и 1.10.

 

 

Определение

1.6. Алгебраической

степенью

функции f относительно

переменной xi называется число переменных в

самом длинном слагаемом

многочлена Жегалкина функции f , содержащем xi . Обозначение: deg( f , xi ) .

Если deg( f , xi )

0 , то переменная xi

является несущественной для функции

f .

 

 

 

 

 

Если deg( f , xi )

1, то

f

зависит от переменной xi

линейно.

Если deg( f , xi )

1, то

f

зависит от переменной xi

нелинейно.

Слагаемые длины 1 в АНФ называются линейными слагаемыми.

12

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

Определение 1.7. Булева функция степени не выше 1 называется аффинной.

Множество аффинных функций от n переменных обозначается через A2 (n) .

Определение 1.8. Аффинная функция, для которой f (0) 0 , называется линейной.

Множество линейных функций от n переменных обозначается через L2 (n) .

Задание 1.13. Приведите примеры аффинных и линейных функций. Запишите в общем виде АНФ аффинной и линейной функции n переменных.

Задание 1.14. Найдите число аффинных и линейных булевых функций от n

переменных.

1.4 Вес булевой функции

Определение 1.9. Весом Хэмминга вектора

x (x1,..., xn )

называется число

ненулевых координат xi . Обозначение wt(x) .

 

 

 

 

 

Задание 1.15. Найти вес Хэмминга вектора x

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

 

Определение 1.10.

Множество

f

x Vn : f (x) 1

называется базой

функции f

P2 (n) .

 

 

 

 

 

 

 

 

Пример 1.3. Найти базу функции f (x1, x2 , x3 )

x1x2 x3

x1x2

x3

1 .

Решение.

 

 

 

 

 

 

 

 

По определению базой функции является множество векторов

x x1, x2, x3

пространства

V3 , для которых f (x)

1 .

Найдем все значения булевой функции

f (0,0,0) 1,

f (0,0,1) 0 ,

f (0,1,0)

1 ,

f (0,1,1)

0 ,

f (1,0,0) 1 ,

f (1,0,1) 0 ,

f (1,1,0) 0 , f (1,1,1) 0 . База функции

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

f

13

Определение 1.11. Вес булевой функции f

– мощность множества f :

 

 

.

wt( f )

 

f

Другими словами, вес булевой функции равен весу Хемминга вектора значений булевой функции.

Задание 1.16. Найти вес булевых функций из таблиц 2 и 3, а также для функций заданий 1.9 и 1.10.

1.5 Расстояние между булевыми функциями

Определение

1.12.

Расстояние Хэмминга между двумя векторами

x (x1,..., xn ) и y

( y1,..., yn )

равно числу компонент, в которых они различаются.

Обозначение: dist(x, y) .

Задание 1.17. Вспомните доказательства следующих свойств расстояния Хэмминга:

1) dist(x, y) dist( y, x) (симметричность);

2) x, y Vn dist(x, y) 0 при x y , x Vn dist(x, x) 0 ;

3)x, y, z Vn dist(x, z) dist(x, y) dist( y, z) (неравенство треугольника).

Задание 1.18. Докажите, что dist(x, y)

wt(x

y) .

 

 

Определение 1.13. Расстояние между булевыми функциями f

и g из

P2 (n)

определяется следующим равенством:

 

 

 

 

 

 

 

 

 

 

.

 

(1.2)

dist( f , g)

 

x

Vn | f (x)

g(x)

 

Пример 1.4. Найти расстояние

между функциями f (x)

x1 x2

x3 и

g(x) x1x2 x3 .

 

 

 

 

 

 

Решение.

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

14

значений функций f=(0,1,1,0,1,0,0,1) и g =(0,1,0,1,0,1,1,0). Множество векторов, в

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

{(0,1,0),(0,1,1),(1,0,0),(1,0,1),(1,1,0),(1,1,1)}. Количество таких векторов равно 6,

тогда dist( f , g) 6 .

Задание 1.19. Сравните определения 1.12 и 1.13. Как сформулировать определение расстояния между булевыми функциями с помощью понятия

расстояния Хэмминга между векторами?

 

 

 

 

 

 

Замечание 1.3. Рассмотренное расстояние между функциями f

и g называют

расстоянием Хэмминга между функциями f

и g .

 

 

 

 

 

Задание 1.20. Проверьте справедливость равенства dist( f , g)

wt( f

g) для

функций примера 1.4. Докажите, что

wt( f )

dist( f ,0) ,

где

0 –

функция

«тождественный ноль».

 

 

 

 

 

 

 

Задание

1.21.

Найдите

расстояние

между

функциями

f (x) x1x2 x3

x2 x3x4 x1x3

x2 x4 и g(x)

x1x2

x2 x3

x3x4 .

 

 

 

Определение 1.14. Расстоянием от булевой функции f

P2 (n)

до множества

M называется число

 

 

 

 

 

 

 

 

 

dist( f , M )

min dist( f , g) .

 

(1.3)

 

 

 

 

g M

 

 

 

 

Пример 1.5. Пусть M – множество простейших булевых функций двух

аргументов из таблицы 2,

для которых x2

является несущественной переменной.

Найти расстояние от функции «штрих Шеффера» до множества M.

 

 

Решение.

Найдем сначала множество M. Определим булевы функции из таблицы 2, для

которых x2 является несущественной переменной, по виду АНФ функций. Если переменная не является существенной, то в АНФ она не присутствует. К таким

функциям относятся g0 (x1, x2 ) 0 , g3 (x1, x2 ) x1 , g12 (x1, x2 )

x1 1,

g15 (x1, x2 )

1.

АНФ функции «штрих Шеффера» имеет вид g14 (x1, x2 ) x1x2

1.

 

 

Чтобы найти расстояние dist(g14 , M ) , найдем расстояние от

g14 (x1, x2 )

до

каждой из функций g0 (x1, x2 ) , g3 (x1, x2 ) , g12 (x1, x2 ) , g15 (x1, x2 ) .

 

 

 

15

 

 

 

Вектор значений g14 (x1, x2 ) имеет вид (1,1,1,0), вектор значений g0 (x1, x2 )

(0,0,0,0). Тогда dist(g14 , g0 ) 3 .

Аналогично находим dist(g14 , g3 ) 3 , dist(g14 , g12 ) 1, dist(g14 , g15 ) 1. Минимальное из найденных значений расстояние равно 1, то есть dist(g14 , M ) 1.

Задание 1.22. Найти расстояние от функции «тождественная единица» до множества функций из таблицы 2, у которых все переменные существенные.

1.6 Преобразования Фурье и Уолша-Адамара

Определение 1.15. Скалярным произведением векторов x, y Vn называется

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сумма x, y

 

xi yi .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задание

1.23.

 

Пусть f (x)

x1x2 x3

x1x3

x1

x2

x3 ,

g(x)

 

x1 x2

x3 .

Найти скалярное произведение между векторами значений функций f

и g.

 

Определение 1.16. Преобразованием Фурье булевой функции

f

называется

целочисленная функция на Vn , определяемая следующим равенством

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1) x,u .

 

 

 

(1.2)

 

 

 

 

 

 

 

 

W f (u)

f (x)(

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x Vn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для каждого u

 

Vn

значение W f (u) называется коэффициентом Фурье.

 

Набор

 

 

 

 

 

 

Vn},

 

где

векторы

u

Vn

перебираются

в

W f

{W f (u) | u

 

лексикографическом порядке, называется спектром Фурье функции f .

 

 

 

Пример

1.6.

 

Найти

преобразование

Фурье

для

функции

f (x1, x2 , x3 ) x1x2 x3

x1x2

x2 x3

 

x1

 

x3 .

Найти

все

коэффициенты

Фурье

для

данной функции. Указать спектр Фурье.

Решение.

1) Найдем преобразование Фурье.

16

 

 

 

f (x)( 1) x,u .

По определению получаем, что W f (u)

 

 

 

x V3

Найдем вектор значений заданной функции f=(0,1,0,0,1,0,0,1).

Раскроем знак суммы. Для этого найдем вид слагаемого для каждого x V3 .

Оформим решение в виде таблицы (см. таблицу 4).

Таблица 4 – Поиск слагаемых преобразования Фурье

x (x1, x2 , x3 )

f (x)

x,u

f (x)( 1) x,u

 

 

 

 

 

 

(0,0,0)

0

0

 

 

0

 

 

 

 

 

 

(0,0,1)

1

u3

 

(

1)u3

(0,1,0)

0

u2

 

 

0

(0,1,1)

0

u2

u3

 

0

(1,0,0)

1

u1

 

(

1)u1

(1,0,1)

0

u1

u3

 

0

 

 

 

 

 

 

(1,1,0)

0

u1

u2

 

0

(1,1,1)

1

u1 u2

u3

( 1)u1 u2 u3

 

 

 

 

 

 

 

 

W f (u) 0 ( 1)u3 0 0 ( 1)u1

0 0 ( 1)u1 u2 u3

или

 

 

 

 

 

 

 

 

 

 

 

 

 

W f (u) ( 1)u1 ( 1)u3

( 1)u1 u2 u3 .

 

 

Следует обратить внимание на то, что значения функции W f (u) являются

целыми числами.

 

 

 

2) Найдем коэффициенты Фурье.

 

 

 

Пространство V3 состоит из векторов длины 3 с компонентами из поля F2 .

Таких наборов всего 8. Коэффициентов Фурье для заданной функции также будет 8.

Найдем их:

 

 

 

 

1)0

 

1)0

 

1)0

3;

 

W f (0,0,0)

(

(

(

 

 

 

 

 

1)0

 

1)1

 

1)0 0

1

1;

W f (0,0,1)

(

(

(

 

 

 

 

 

 

 

 

 

 

17

 

 

 

 

 

 

1)0

 

1)0

 

1)0

1

0

1;

W f (0,1,0)

(

(

(

 

 

 

 

 

 

1)0

 

1)1

 

1)0

1

1

1;

W f (0,1,1)

(

(

(

 

 

 

 

 

1)1

 

1)0

 

1)1

0

0

1;

W f (1,0,0)

(

(

(

 

 

 

 

 

1)1

 

1)1

 

1)1

0

1

1;

W f (1,0,1)

(

(

(

 

 

 

 

 

1)1

 

1)0

 

1)1

1

 

0

1;

W f (1,1,0)

(

(

(

 

 

 

 

 

1)1

 

1)1

 

1)1 1

1

 

3.

W f (1,1,1)

(

(

(

 

3) Последовательность нахождения коэффициентов Фурье соответствует

лексикографическому порядку векторов u

V3 , поэтому записать спектр Фурье мы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

можем сразу: W f

{3,

1,1,1,

1,

1,1,

3}.

 

 

 

 

 

 

 

Задание 1.24. Найти спектр Фурье для функций заданий 1.9 и 1.10.

 

 

Введем обозначение exp f (x)

( 1) f ( x) .

 

 

 

 

 

 

 

Определение 1.17. Преобразованием Уолша-Адамара булевой функции

f

называется целочисленная функция на Vn , определяемая равенством

 

 

 

 

 

 

Wf (u)

 

 

exp f (x)( 1) x,u

(

1) f ( x)

x,u .

 

(1.3)

 

 

 

 

 

 

x Vn

 

 

x Vn

 

 

 

 

 

 

Для каждого u Vn

значение Wf (u) называется коэффициентом Уолша-

Адамара.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Набор

Wf

{Wf (u) | u

Vn},

где

векторы

u

Vn

перебираются

в

лексикографическом порядке, называется спектром Уолша-Адамара функции f .

 

Пример

1.7.

Вычислить

коэффициенты

Уолша-Адамара

функции

f (x1, x2 , x3 ) x1x2 x3

x1x2

x2 x3

x1

x3 . Записать спектр Уолша-Адамара.

 

Решение.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1. Преобразование Уолша-Адамара для заданной функции имеет вид

 

 

 

 

 

 

 

 

 

 

Wf (u)

( 1) f ( x)

x,u .

 

 

 

 

 

 

 

 

 

 

 

 

 

x V3

 

 

 

 

 

 

 

Вектор значений функции

f (x) имеет вид f=(0,1,0,0,1,0,0,1).

 

 

 

 

 

 

 

 

 

 

 

18

 

 

 

 

 

 

 

Раскроем знак суммы. Для этого найдем вид слагаемого для каждого x V3 .

Оформим решение в виде таблицы (см. таблицу 5).

Преобразование Уолша-Адамара можно записать в виде суммы значений последнего столбца таблицы 5:

W

f

(u) 1 ( 1)1 u3

( 1)u2 ( 1)u2 u3

( 1)1 u1

( 1)u1 u3 ( 1)u1

u2

( 1)1 u1

u2

u3 .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 5 – Поиск слагаемых преобразования Уолша-Адамара

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x (x1, x2 , x3 )

 

f (x)

 

x,u

 

( 1) f ( x)

x,u

 

(0,0,0)

 

0

 

0

 

 

 

(

1)0

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(0,0,1)

 

1

 

u3

 

 

 

(

1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

u3

 

 

(0,1,0)

 

0

 

u2

 

 

 

(

1)u2

 

 

(0,1,1)

 

0

u2

u3

 

 

(

1)u2

u3

 

 

(1,0,0)

 

1

 

u1

 

 

 

(

1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

u1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(1,0,1)

 

0

u1

 

u3

 

 

(

1)u1

u3

 

 

(1,1,0)

 

0

u1

 

u2

 

 

(

1)u1

u2

 

 

(1,1,1)

 

1

u1

u2

u3

 

(

1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 u1

u2

u3

 

2. Найдем коэффициенты Уолша-Адамара.

 

 

 

 

 

 

 

 

 

Пространство V3

состоит из наборов длины 3

с компонентами из поля

F2 .

Таких наборов всего 8. Коэффициентов Уолша-Адамара для заданной функции также будет 8. Найдем их:

Wf

(0,0,0)

1

(

1)1

(

1)0

(

1)0

(

1)1

(

1)0

(

1)0

(

1)1

2 ;

Wf

(0,0,1)

1

(

1)0

(

1)0

(

1)1

(

1)1

(

1)1

(

1)0

(

1)0

2;

Wf

(0,1,0)

1

(

1)1

(

1)1

(

1)1

(

1)1

(

1)0

(

1)1

(

1)0

2 ;

Wf

(0,1,1)

1

(

1)0

(

1)1

(

1)0

(

1)1

(

1)1

(

1)1

(

1)1

2 ;

Wf

(1,0,0)

1

(

1)1

(

1)0

(

1)0

(

1)0

(

1)1

(

1)1

(

1)0

2;

 

 

 

 

 

 

 

 

 

19

 

 

 

 

 

 

 

Wf

(1,0,1)

1

(

1)0

(

1)0

(

1)1

(

1)0

(

1)0

(

1)1

(

1)1

2 ;

Wf

(1,1,0)

1

(

1)1

(

1)1

(

1)1

(

1)0

(

1)1

(

1)0

(

1)1

2 ;

Wf

(1,1,1)

1

(

1)0

(

1)1

(

1)0

(

1)0

(

1)0

(

1)0

(

1)0

6 .

3. Последовательность нахождения коэффициентов Уолша-Адамара

соответствует лексикографическому порядку векторов u

V3 , поэтому записать

спектр Уолша-Адамара мы можем сразу: Wf {2,2, 2, 2,2,2,

2,6} .

Задание 1.25. Найти преобразование Уолша-Адамара для функций из заданий

1.9 и 1.10. Вычислить для них коэффициенты Уолша-Адамара. Указать спектр

Уолша-Адамара.

Коэффициенты Фурье и Уолша-Адамара называются спектральными

коэффициентами булевой функции.

Задание 1.26. Известно, что коэффициенты Фурье и коэффициенты Уолша-

Адамара связаны соотношением

 

 

2n

 

 

 

 

 

 

 

Wf

(u)

2W f (u),u

0,

,

(1.4)

 

 

 

 

 

 

2W f (u),u 0.

 

 

 

 

 

 

Найдите спектральные коэффициенты функции, заданной вектором значений

(1,1,1,1,0,0,1,1) . Сделайте проверку с помощью соотношения (1.4).

Теорема 1.3. Для преобразования Уолша-Адамара справедлива формула

обращения:

exp f (x) 2 n W

f

(u)( 1) x,u .

(1.5)

 

 

 

u Vn

Согласно теореме 1.3 можно утверждать, что коэффициенты Уолша-Адамара однозначно определяют булеву функцию.

Задание 1.27. Докажите теорему 1.3.

Теорема 1.4. Коэффициенты Уолша-Адамара удовлетворяют следующему соотношению:

Wf2 (u) 22n ,

(1.6)

u Vn

которое называется равенством Парсеваля.

20

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