Криптографические свойства булевых функций. Методические указания
.pdf
Пример 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
