Криптографические свойства булевых функций. Методические указания
.pdf
Задание 1.28. Докажите теорему 1.4.
1.7 Понятие эквивалентных булевых функций
Для применения булевых функций в приложениях иногда необходимо иметь их полный список с описанием свойств и характеристик для того, чтобы выбрать булеву функцию с заданными свойствами. Однако полное перечисление булевых функций от большого числа аргументов невозможно из-за ограниченных вычислительных ресурсов. Для решения проблемы выбора функции с заданными свойствами множество функций разбивается на классы, внутри которых они обладают близкими свойствами. Тогда выбор функции с заданными свойствами сводится к выбору класса, из которого выбирается подходящая функция. На множестве булевых функций ввести отношение эквивалентности можно разными способами. В качестве примера отношения эквивалентности рассмотрим аффинную эквивалентность. В работе [24] введено понятие аффинно эквивалентных булевых
функций следующим образом.
Определение 1.18. Булевы функции f , g P2 (n) аффинно эквивалентны, если существуют невырожденная матрица А порядка n, векторы b,c Vn и константа
{0,1} такие, что
|
|
|
|
g(x) f (Ax |
b) |
c, x |
. |
(1.7) |
Пример |
1.8. |
Выяснить, |
являются |
ли |
функции |
f x1x2 |
x3 P2 (3) и |
|
g x2 x3 x2 |
x3 P2 (3) аффинно эквивалентными. |
|
|
|||||
Решение. |
|
|
|
|
|
|
|
|
|
a11 |
a12 |
a13 |
b1 |
c1 |
|
|
|
Пусть A |
a21 |
a22 |
a23 |
, b b2 , c |
c2 . |
|
|
|
|
a31 |
a32 |
a33 |
b3 |
c3 |
|
|
|
21
a11 |
a12 |
a13 |
x1 |
b1 |
a11x1 |
a12 x2 |
a13x3 |
b1 |
Найдем Ax b a21 |
a22 |
a23 |
x2 |
b2 |
a21x1 |
a22 x2 |
a23x3 |
b2 . |
a31 |
a32 |
a33 |
x3 |
b3 |
a31x1 |
a32 x2 |
a33x3 |
b3 |
Тогда
|
|
|
|
f ( Ax |
b) |
|
|
|
|
f (a11x1 |
a12 x2 |
a13x3 |
b1,a21x1 |
a22x2 |
a23x3 |
b2 ,a31x1 |
a32x2 |
a33x3 |
b3 ) |
(a11x1 |
a12 x2 |
a13x3 |
b1)(a21x1 |
a22x2 |
a23x3 |
b2 ) a31x1 |
a32x2 |
a33x3 |
b3. |
Найдем c, x |
c1x1 |
c2x2 c3x3 . |
|
|
|
|
|
Неизвестные значения элементов матрицы А и векторов b и с найдем из |
|||||||
соотношения |
|
|
|
|
|
|
|
f ( Ax b) |
c, x |
(a11x1 |
a12x2 |
a13x3 |
b1)(a21x1 |
a22x2 a23x3 b2 ) |
|
|
a31x1 |
a32 x2 |
a33x3 |
b3 c1x1 |
c2x2 |
c3x3 |
|
|
|
|
x2 x3 |
x2 |
x3 |
g(x). |
|
Приравнивая коэффициенты при одинаковых степенях, получим систему над
F2 :
a11a22 |
a12a21 |
0, |
|
|
a11a23 |
a13a21 |
0, |
|
|
a12a23 |
a13a22 |
1, |
|
|
a11a21 |
a11b2 |
a21b1 |
c1 |
0, |
a12a22 |
a12b2 |
a22b1 |
c2 |
1, |
a13a23 |
a13b2 |
a23b1 |
c3 |
1, |
b1b2 |
0. |
|
|
|
Решением системы является набор:
a11 0, a12 1, a13 |
1, a21 |
0, a22 |
1, a23 |
0, a31 |
1, a32 0, a33 1, |
b1 1,b2 |
0,b3 |
1,c1 |
0,c2 |
1,c3 1, |
1. |
22
|
|
|
|
0 |
1 |
1 |
|
Таким образом, существует невырожденная матрица A 0 |
1 |
0 |
, векторы |
||||
|
|
|
|
1 |
0 |
1 |
|
1 |
|
0 |
|
|
|
|
|
b 0 |
, c |
1 |
и |
1 такие, что |
|
|
|
1 |
|
1 |
|
|
|
|
|
f ( Ax b) |
c, x |
|
f (x2 x3 |
1, x2 , x1 |
x3 |
1) |
x2 |
x3 |
1 |
|
|
|||
(x2 |
x3 |
1)x2 |
x1 |
x3 |
1 x2 |
x3 |
1 x2 |
x2 x3 |
x2 |
x1 x2 |
|
|
||
x2 x3 |
x1 |
x2 |
g(x). |
|
|
|
|
|
|
|
|
|
|
|
То |
есть |
f |
x1x2 |
x3 |
P2 (3) |
и |
g |
x2 x3 |
x2 |
x3 |
P2 (3) |
аффинно |
||
эквивалентные. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Задание |
1.29. |
|
Являются |
ли |
|
функции |
f |
x1x2 |
P2 (2) |
и |
||||
g x1x2 x1 x2 |
P2 (2) аффинно эквивалентными? |
|
|
|
|
|
|
|||||||
1.8 Понятие булевых отображений
Особое внимание в теории криптографических булевых функций уделяется булевым отображениям.
Определение 1.19. Булевым отображением называется отображение пространства Vn в пространство Vm : F :Vn Vm .
Отображение F может быть записано в виде
y1 f1(x1,..., xn ) ,
…………………
ym fm (x1,..., xn ) ,
где fi (i=1,2,…,m) – координатные булевы функции, задающие отображение F. То есть булево отображение можно представить в координатном виде как систему
23
булевых функций F ( f1, f2 ,..., fm ) . Функции f1, f2 ,..., fm иногда называют образующими булевыми функциями F.
Интерес к булевым отображениям связан c их ролью в криптографических конструкциях, так как они определяют нелинейные компоненты блочных и поточных шифров. Изучение булевых отображений и их криптографических свойств основано на понимании криптографических свойств булевых функций,
которые мы рассмотрим далее.
24
2 Криптографические свойства булевых функций
Криптографическими (дискретными) функциями называются системы булевых функций, используемых для преобразования информации в некотором шифре [13].
Фундаментальные принципы построения криптографических функций были описаны в работах Шеннона [29]. Идея первого принципа, называемого «diffusion»
(рассеивание), заключается в распространении влияния одного знака (бита)
открытого текста на много знаков шифртекста, что позволяет скрыть статистические свойства открытого текста. Второй принцип, называемый «confusion»
(перемешивание), означает применение шифрующих преобразований, которые усложняют взаимосвязи между битами открытого текста и шифртекста. Эти принципы носят эмпирический характер, то есть являются результатом обобщения опыта криптоанализа различных шифров, и относятся ко всем криптографическим функциям.
В соответствии с принципами построения криптографических функций осуществляется математическое описание их криптографических свойств,
возникающее в процессе криптоанализа шифров. Набор свойств не является окончательным, так как развитие методов криптографического анализа приводит к появлению новых свойств, которым должны удовлетворять криптографические функции. Мы рассмотрим следующие криптографические свойства булевых функций:
-высокую алгебраическую степень;
-нелинейность;
-уравновешенность;
-устойчивость;
-корреляционную и алгебраическую иммунность;
-выполнимость критериев распространения.
25
Следует отметить, что невозможно получить булевы функции, обладающие всеми максимально возможными криптографическими характеристиками, в силу противоречивости некоторых из них друг другу. Например, максимально-
нелинейные функции не могут быть уравновешенными. Выходом из данной ситуации является поиск оптимальных сочетаний между криптографическими свойствами булевых функций с учетом требований создаваемых криптографических конструкций.
2.1 Высокая алгебраическая степень
Калгебраической степени криптографических булевых функций
предъявляется требование, заключающееся в том, что параметр deg f должен быть большим.
Высокая степень булевой функции в поточных шифрах необходима для выполнения требования линейной сложности генерируемой последовательности.
В блочных шифрах необходимость высокой степени булевой функции гарантирует, что анализ структуры шифра и булевой функции как его компоненты приведет к системе уравнений также высокой степени. Решение такой системы позволяет определить ключ. Сложность решения системы зависит от её степени – чем выше степень, тем труднее решить и найти ключ.
2.2 Нелинейность
Нелинейность является одной из ключевых характеристик булевых функций с точки зрения построения надежных криптографических систем. В работе [13]
понятие нелинейности рассматривается в широком и узком смыслах. Нелинейность как широкое понятие предполагает целый ряд свойств и параметров
26
криптографических функций. Эти характеристики предполагают отсутствие у функции свойств, близких к линейным, то есть нелинейность понимается как отрицание линейности. Линейность объекта, процесса (или их близость к линейным)
позволяет эффективно исследовать и описывать параметры, свойства рассматриваемых объектов и процессов, что недопустимо при построении криптосистем, так как делает их уязвимыми к криптоанализу.
В узком смысле нелинейность понимается как удаленность данной булевой
функции от множества аффинных функций. |
|
|
|
|
|
|
|
|
||||||||
Определение |
2.1. |
Расстояние |
между |
булевой |
функцией f P2 (n) и |
|||||||||||
множеством аффинных функций A2 (n) называется нелинейностью функции |
f и |
|||||||||||||||
обозначается N f , то есть |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
N f |
|
dist( f , A2 (n)) . |
|
|
|
|
|
(2.1) |
|||
Пример 2.1. Найти нелинейность функции |
f (x1, x2 ) |
x1x2 |
P2 (2) . |
|
|
|
||||||||||
Решение. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
По определению N f |
dist( f , A2 (2)) |
min dist( f , g) . |
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
g A2 (2) |
|
|
|
|
|
|
|
|
АНФ аффинной функции от |
двух |
переменных в |
общем виде имеет |
вид |
||||||||||||
g(x1, x2 ) a1x1 |
a2 x2 |
a0 , где a0 , a1, a2 |
F2 . Множество аффинных функций состоит |
|||||||||||||
из шести элементов A2 (2) |
{g0 |
0, g1 |
1, g2 |
x1, g3 |
x2 , g4 |
x1 |
x2 , g5 |
x1 |
x2 |
1}. |
||||||
Найдем |
расстояние |
от |
функции |
f (x1, x2 ) |
x1x2 |
до каждой |
из |
функций |
||||||||
множества A2 (2) : |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- dist( f , g0 ) |
| f |
(0,0,0,1), g0 |
(0,0,0,0) | 1; |
|
|
|
|
|
|
|||||||
- dist( f , g1) |
| f |
(0,0,0,1), g1 |
(1,1,1,1) | |
3 ; |
|
|
|
|
|
|
|
|||||
- dist( f , g2 ) |
| f |
(0,0,0,1), g2 |
(0,0,1,1) | |
1; |
|
|
|
|
|
|
|
|||||
- dist( f , g3 ) |
| f |
(0,0,0,1), g3 |
(0,1,0,1) | |
1; |
|
|
|
|
|
|
|
|||||
- dist( f , g4 ) |
| f |
(0,0,0,1), g4 |
(0,1,1,0) | |
3 ; |
|
|
|
|
|
|
|
|||||
- dist( f , g5 ) |
| f |
(0,0,0,1), g5 |
(1,0,0,1) | |
1 |
|
|
|
|
|
|
|
|||||
27
Из всех |
найденных значений минимальное равно 1, то есть |
N f dist( f , A2 (2)) |
min dist( f , g) 1. |
|
g A2 (2) |
По определению поиск нелинейности функции предполагает нахождение всех аффинных функций от заданного числа переменных и нахождение всех расстояний между аффинными функциями и заданной функцией. Следующее соотношение позволяет находить нелинейность функции, не прибегая к процедуре перечисления всего множества аффинных функций:
|
|
2n 1 |
1 |
|
|
|
|||
|
N f |
max |
Wf (u) |
. |
(2.2) |
||||
|
|
||||||||
|
|
|
|
2 u Vn |
|
|
|
|
|
Задание 2.1. Используя соотношение (2.2) найти нелинейность функции |
|||||||||
примера 2.1. |
|
|
|
|
|
|
|
|
|
Задание 2.2. Найти нелинейность |
функций а) |
из |
заданий 1.9 и |
1.10; б) |
|||||
f x1x2 |
x1x3 P2 (3) . |
|
|
|
|
|
|
|
|
Задание 2.3. Докажите, что для нелинейности |
N f |
произвольной |
булевой |
||||||
функции |
f справедлива верхняя оценка |
|
|
|
|
|
|
|
|
|
N |
f |
2n 1 |
2n 2 1 . |
|
|
|
(2.3) |
|
|
|
|
|
|
|
|
|
|
|
Большой интерес в криптографических приложениях вызывают функции, для которых свойство нелинейности является экстремальным.
Определение 2.2. Функция называется максимально-нелинейной функцией,
если ее нелинейность N f достигает максимально возможного для функций из P2 (n)
значения.
Используя соотношение (2.2), можно показать, что функция f |
P2 (n) является |
|||||||
максимально-нелинейной тогда и только тогда, когда |
|
|
|
|||||
|
|
|
|
|
. |
(2.4) |
||
max |
Wf ( ) |
|
min max |
W ( |
) |
|||
Vn |
|
|
|
P2 (n) Vn |
|
|
|
|
Задание 2.4. Является ли функция |
f (x1, x2 ) x1x2 |
|
P2 (2) |
максимально- |
||||
нелинейной? |
|
|
|
|
|
|
|
|
Определение 2.3. Функция f |
P2 (n) называется бент-функцией, если все ее |
|||||||
коэффициенты Уолша-Адамара равны |
2n 2 . |
|
|
|
|
|
||
|
|
28 |
|
|
|
|
|
|
Обозначение множества всех бент-функций: B2 (n) .
Так как коэффициенты Уолша-Адамара являются целыми рациональными числами, то при нечетном n бент-функций не существует. При четном n множество максимально-нелинейных функций совпадает с множеством бент-функций.
Пример 2.2. Является ли бент-функцией функция f (x1, x2 ) x1x2 1 P2 (2) ?
Решение.
Найдем коэффициенты Уолша-Адамара.
Преобразование Уолша-Адамара для заданной функции имеет вид
Wf (u) ( 1) f ( x)
x,u
. x V2
Вектор значений функции f (x) имеет вид f=(1,1,1,0).
Раскроем знак суммы. Для этого найдем вид слагаемого для каждого x V2
(таблица 6).
Таблица 6 – Поиск слагаемых преобразования Уолша-Адамара примера 2.2
x (x1, x2 ) |
f (x) |
x,u |
( 1) f ( x) |
x,u |
|
(0,0) |
1 |
0 |
( |
1)1 |
1 |
|
|
|
|
|
|
(0,1) |
1 |
u2 |
( |
1) |
|
|
|
|
|
1 |
u2 |
|
|
|
|
|
|
(1,0) |
1 |
u1 |
( |
1) |
|
|
|
|
|
1 |
u1 |
|
|
|
|
|
|
(1,1) |
0 |
u1 u2 |
( |
1)u1 |
u2 |
Преобразование Уолша-Адамара запишем в виде суммы:
W |
f |
(u) 1 ( 1)1 u1 |
( 1)1 u2 |
( 1)u1 u2 . |
|
|
|
|
Находим коэффициенты Уолша-Адамара:
Wf |
(0,0) |
1 |
( |
1)1 |
( |
1)1 |
( |
1)0 |
2 ; |
Wf |
(0,1) |
1 |
( |
1)1 |
( |
1)0 |
( |
1)1 |
2 ; |
Wf |
(1,0) |
1 |
( |
1)0 |
( |
1)1 |
( |
1)1 |
2 ; |
|
|
|
|
|
|
|
|
|
29 |
W |
f |
(1,1) |
1 ( 1)0 ( 1)0 ( 1)0 2 . |
|
|
|
|
|
|
|
|
|
|
Все |
коэффициенты Уолша-Адамара функции |
равны 2n 2 |
2 , то есть |
|||
f (x1, x2 ) |
|
x1x2 |
1 является бент-функцией. |
|
|
|
Задание 2.5. Является ли функция f (x1, x2 ) x1x2 |
P2 (2) бент-функцией? |
|||||
Задание 2.6. Можно ли найти бент-функцию от трех переменных? Существует ли максимально-нелинейная функция от трех переменных?
Задание 2.7. Подберите бент-функцию, зависящую от четырех аргументов.
Является ли эта функция максимально-нелинейной?
2.3 Уравновешенность
Требование уравновешенности криптографической булевой функции необходимо для устойчивости к статистическим методам криптоанализа, с помощью которых возможно определение статистических зависимостей между аргументами и
значениями функции. |
|
|
|
||
Определение 2.4. Функция |
f P2 (n) |
называется уравновешенной, если |
|||
wt( f ) |
2n 1 . |
|
|
|
|
Иногда уравновешенную булеву функцию называют сбалансированной. |
|||||
Пример |
2.3. |
Выяснить, |
является |
ли уравновешенной функция |
|
f (x1, x2 , x3 ) x1x2 |
x1x3 |
x2 x3 . |
|
|
|
Решение. |
|
|
|
|
|
Найдем вектор значений функции: (0,0,0,1,0,1,1,1). Вес булевой функции |
|||||
wt( f ) |
4 23 1 . Функция является уравновешенной. |
||||
Заметим, что вектор значений уравновешенной функции содержит одинаковое количество нулей и единиц.
30
