Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теоретико-числовые методы в криптографии и криптопротоколах. Учебное пособие.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Каждое поле  имеет два подполя
{ }
1
0=
2
=
q
(
)
GF q
{ }
0\
∗
=

n
b ∈
β∈
b ⋅β∈
bβ⋅ ∈
b ∈
b ∈

ются несобственными. Все остальные поля называются собственными. Поле, которое не имеет собственных подполей, называется простым. Су­ществует только одно бесконечное простое поле – это поле рациональных чисел |. В то же время существует множество различных конечных про-
стых полей, которые играют важную роль в криптографии и примеры которых будут рассмотрены в следующей главе. Конечное поле, состоя-
и
, которые называ-
щее из q элементов, называется полем Галуа и обозначается как
. Ниже мы подробнее рассмотрим конечные поля.
Итак, поле – это множество с коммутативными операциями сложения и умножения, а также деления (можно делить на любой элемент, кроме ну-
ля) и, таким образом,
1.2.3. Идеалы и фактор-кольца
Подмножество раций сложения и умножения само является кольцом, называется под- кольцом кольца .
множества
(все элементы, кроме 0).
, которое относительно тех же опе-
или
Пример 13. Множество коммутативное кольцо без единицы, которое является подкольцом
кольца .
Пусть  – кольцо с единицей, подкольцо вым) идеалом, если для любых элементов
условие
образом: идеал одновременно является и правым, то такой идеал называется дву- сторонним. Для коммутативных колец любой идеал – двусторонний.
из примера 8, как можно проверить, есть
(
для левого идеала и
). Часто это условие записывается следующим
21
называется левым (пра-
,
для правого. Если левый
справедливо
Пример 14. Подкольцо
n
= 
{ }
|aa=+∈ 
,
ab
∈
ab
−∈
( ) ( )
a b ab a b ab+ ⋅ + =⋅+ + + ⋅ =⋅+   
= 
n
Zn=
( ) ( )
( )
13 15 11 5 10 7 mod 11 2 4 0 5 1 7 mod 11 8 7 1⋅ − ⋅+ ⋅ = ⋅−⋅+− ⋅ =−=
( ) (
)
9 18 16 3 7 15 mod 13 9 5 3 3 7 2 mod 13⋅ + ⋅−⋅ = ⋅+⋅−⋅ =
(
) ( )
45 9 14 mod 13 6 9 1 mod 13 1= +− = +− =
( )
2
1 10 0 1 2
10
10 10 10
k
kk k−
α= α α αα =α + α + α + + α
09
i
≤α <
mod 0nα=
00
mod 2 mod 2 0 2 |α =α =⇔α
является идеалом кольца .
Обозначим через ца  по аддитивной подгруппе Элементами аддитивной группы
(согласно формуле (1.3) два элемента
в одном классе тогда и только тогда, когда
– двусторонний идеал, корректна операция умножения классов:
зультатом произведения двух классов объявляется класс, в котором лежит произведение представителей.
Множество классов  с операциями сложения и умножения является кольцом, называется фактор-кольцом кольца  по идеалу
чается
.
фактор-группу аддитивной группы коль-
, где
– двусторонний идеал кольца.
являются смежные классы:
лежат
). Используя то, что
. Иначе говоря, ре-
и обозна-
Пример 15. Фактор-кольцо вычетов. Разберем конкретные примеры.
Пример 16 (Признаки делимости). Представим натуральное число α
в десятичной записи:
. По определению число α делится на число n тогда и только то-
гда, когда
.
называется кольцом классов
.
;
;
Делимость на 2:
,
т. е. делимость определяется последним разрядом.
22
Делимость на 4:
(
) (
)
( )
0 1 0 1 10
10
mod 4 2 mod 4 10 mod 4 0 4 |
α =α+α =α+ α = ⇔ αα
(
)
( )
2
012 0 1 2
mod 8 2 4 mod 8 10 10 mod 8 0
α =α+ α+ α =α+ α+ α = ⇔
(
)
210
10
8|
⇔ ααα
( )
(
)
2
0 1 2 012
mod 3 1 1 mod 3 mod 3 0
k
α = α + ⋅α + ⋅α + = α +α +α + +α =

[
]
x
[ ]
( )
{ }
2
01 2
|
k
ki
x f x a ax a x a x a= =+ + ++ ∈
0
k
a ≠
( )
degk fx=
т. е. делимость определяется двумя последними разрядами.
Делимость на 8:
,
т. е. делимость определяется тремя последними разрядами.
Делимость на 3:
,
.
Мы получили известную школьную формулу: число делится на 3, ес­ли сумма его цифр делится на 3. На самом деле, мы получили более об­щий результат: остаток от деления числа на 3 есть остаток деления на 3 суммы его цифр. Кроме того, в процессе сложения цифр мы можем при­водить по модулю 3 промежуточные суммы.
1.2.4. Кольца многочленов
Существует универсальный способ построения одного кольца из дру­гого. Пусть  – некоторое кольцо (для простоты мы будем считать его
коммутативным), символом
формальной переменной x с коэффициентами из кольца . Его элемен-
обозначают кольцо многочленов от
тами являются многочлены:
.
Неотрицательное целое число k (
члена и обозначается
.
23
) называется степенью много-
Степень многочлена обладает очевидными свойствами:
(
)
(
)
(
)
(
)
( )
deg deg deg
f xgx f x gx
=
( ) ( )
( )
( )
( )
{ }
deg max deg ,deg
f x gx f x gx+≤
[ ]
x
( ) ( )
( )
{ }
max ,
00 0
kl
ml
ij i
i j ii
ij i
f x g x ax bx a b x
= = =
+= + = +
∑∑ ∑
( ) ( )
0 0 00
m l kl i
ij i
i j ij j
i j ij
f x g x ax b x a b x
−
= = = =


⋅= ⋅ = ⋅
∑ ∑ ∑∑




0
j
b =
jl>
0
i
a =
ik>
[ ]
x
( ) ( )
[ ]
,fx x xµ∈
( ) ( )
[
]
,qx rx x∈
( ) ( ) ( ) ( )
f x qx x rx= µ+
( ) ( )
deg degrx x<µ
(
)
[
]
2
2 12fx x x x=+ −∈
|
( )
[ ]
5xx xµ = +∈|
( )
3qx x= −
( )
3rx=
x2 + 2x – 12
x + 5
x2 + 5x
x – 3
–3x – 12
–3x – 15
3
,
.
Многочлены нулевой степени есть элементы самого кольца . Операции сложения и умножения в кольце
дующим образом:
В этих выражениях полагаем:
Кольцо многочленов
сел , относится к классу евклидовых колец – колец, в которых определена операция деления с остатком. Для любых многочленов
однозначно существуют многочлены
над полем  так же, как и кольцо целых чи-
при
и
определяются сле-
,
.
при
, т.ч.
.
,
Пример 17. Поделим с остатком «столбиком» многочлен
на многочлен
В результате получим частное
24
и остаток
.
:
.
Построим подмножество
( )
( )
[ ]
xx
µ⊂
[ ]
x
( )
[ ]
xxµ∈
(
)
( )
x
µ
[ ]
x
[ ]
(
)
(
)
xxµ
[ ]
x
( )
(
)
xµ
[ ]
( )
(
)
xxµ
(
)
degnx= µ
[ ]
(
)
(
)
( )
( )
{ }
1
0
| deg ,
n
i
ii
i
x x f x ax n x a
−
=
µ= = =µ ∈
∑

( )
xµ
( ) ( )
( )
( )
mod f x gx x+µ
( ) ( )
( )
( )
mod f x gx x⋅µ
( )
xµ
(
) (
)
n
xx xµ = −σ
degn = µ
deg 1nσ≤ −
( )
x
µ
( )
xµ
( )
xµ
( ) ( )
(
)
( )
mod f x gx x⋅µ
( )
n
xx→σ
( )
[ ]
3
35
xx x xµ = + −∈|
[ ]
( )
( )
xxµ|
[ ]
( )
( )
{ }
2
| ,,x x ax bx c a b c
µ = ++ ∈||
многочленов, включая в него
все многочлены из кольца
. Нетрудно проверить, что множество
бой идеал кольца
кольцо
многочленов
сы, представителями которых являются все возможные многочлены степени меньше
Результатами сложения и умножения являются остатки от деления на многочлен
по идеалу
соответствующих многочленов
, и, следовательно, корректно определено фактор-
, которое называется кольцом классов вычетов кольца
:
, которые делятся на заданный многочлен
представляет со-
. Элементы кольца
.
– клас-
;
.
Заметим, что альтернативой делению «столбиком» при приведении по модулю можно использовать следующий прием. Представим многочлен
в виде
мы можем поделить многочлен
ни, такая замена
иначе говоря, многочлен
поля ). При вычислении выражения
пользовать подстановку
Пример 18. Пусть
являются многочлены:
не оказывает никакого влияния на результаты,
,
определен с точностью до множителя из
,
на коэффициент при старшей степе-
и ее следствия.
. (При необходимости
следует ис-
, элементами кольца
.
25
Вычислим произведение:
( )( ) ( )
22 3
3 2 2 7 1 mod 3 5xx xx xx+− −− +−=
( )
(
)
43 2 3
2 26 11 2 mod 3 5xx x x x x= −− + + +−=
(
)
(
) ( )
32 3
2 1 26 11 2 mod 3 5xx x x x x= −− + + + − =
( )( )
( ) ( )
2 32
3 5 2 1 26 11 2 mod 3 5 32 24 3x x x x xx x x=−+ −− + + + − =− + −
3
35
xx→− +
.
При вычислении здесь мы совершали замену
Таким образом, в настоящей главе нами были введены два важней­ших понятия алгебры: группа и кольцо, а также рассмотрены основные математические операции над ними.

2. ЭЛЕМЕНТЫ ТЕОРИИ ЧИСЕЛ, КОНЕЧНЫХ ПОЛЕЙ И ЭЛЛИПТИЧЕСКИХ КРИВЫХ

2.1. ЭЛЕМЕНТЫ ТЕОРИИ СЛОЖНОСТИ АЛГОРИТМОВ

2.1.1. Большие числа
.
В описании криптопротоколов и криптосистем часто встречаются фразы: «Пусть n – большое целое число», «пусть p – большое простое число» и т. д. Для того чтобы понять и «прочувствовать», что такое боль­шое число в криптографии, рассмотрим «несерьезный» пример.
Предположим, что мы построили специальную криптомашину для взлома некоторого шифра путем прямого перебора ключей (Brute-force
26
attack). Пусть эта машина перебирает миллион ключей в секунду
6
10
128 38
2 3, 4 10≈×
6 10
3600 24 10 8,6 10×× ≈ ×
14
3, 4 10×
24
10
15
10
222
01 10 11
+=
22 2
11 10 101+=
(
вар/сек). Посчитаем, за какое время эта машина вычислит самый ко-
роткий ключ (его длина равна 128 бит) в современных симметрических
криптосистемах. Всего
реберем
нам потребуется
лет. Если мы построим криптомашину, у которой
ключей. За один год –
вариантов ключей. За сутки мы пе-
. Итого
производительность будет в один миллиард раз больше, то такая машина
справится с задачей за
лет или, иначе, за миллион миллиардов лет.
Для сравнения, возраст Вселенной оценивается в 13,8 миллиарда лет.
Как мы видим, само по себе увеличение быстродействия кардинально не меняет ситуации. Атака «грубой силой» неэффективна. Чтобы понять, насколько эффективен алгоритм взлома и какими свойствами должны об­ладать параметры криптосистемы, производят оценку сложности алго­ритма. Более подробно этот вопрос изложен в [4].
2.1.2. Основные классы алгоритмов
Вообще говоря, время работы любого алгоритма, как правило, зави­сит от конкретных входных данных. Простейший пример сложения двух­разрядных чисел:
– две битовые операции,
–
три битовые операции. При оценке сложности алгоритма нас не интересу­ет точное количество битовых операций, как показывает только что рас­смотренный пример, оно зависит от конкретных данных. Нас интересует, как быстро с ростом длины входных данных увеличивается время работы алгоритма. Функция сложности алгоритма – это функция от длины вход- ных данных.
Поскольку нас интересует лишь скорость роста, то будем использо­ваит стандартизированные обозначения для классов функций.
27
Определение 12. Говорят, что функция
( )
fn
( )
( )
Ogn
0C >
( )
( )
limnf n gn C
→∞
≤
( )
( )
33
3 5 10f n n n On= + −∈
( )
( ) ( )
2 9 2 ln2
4 52 6
nn
f n n n O ne= − +∈
( )
On
2
n
( )
2
On
( )
( )
{ }
,
k
P f n On k=∈∈
( )
( )
( )
{
}
exp , , 0,
k
Exp f n O n cn c c k= ∈ ∈ >∈
( )
4
On
Exp
( )
2n
Oe
50n =
100nn
′
→=
4
2 16=
25
e
принадлежит классу
, если существует такая константа
.
Примeры.
Операция сложения двух n-разрядных чисел имеет сложность
Операции умножения двух n-разрядных чисел и деления числа на n-разрядное число, а также обращение n-разрядного числа имеют одинаковую сложность и при использовании алгоритма умножения «стол-
биком» равны
Существует множество классов сложности алгоритмов. Нас интере-
суют два диаметрально противоположных класса:
.
,
, что
-разрядного
.
.
– класс полиномиальных алгоритмов
;
– класс экспоненциальных алгоритмов
.
В качестве иллюстрации разницы между этими типами рассмотрим
два гипотетических алгоритма. Пусть первый принадлежит к классу P
и имеет сложность
сложность
воляет решить на компьютере для числа длиной
. Предположим, что применение обоих алгоритмов поз-
, а второй принадлежит к классу
бит задачу за 1 ч.
и имеет
При двойном увеличении размера числа (
ритмом придется решать эту задачу 8,2 млрд лет.
28
) первым алго-
ч, а вторым
ч, или
Алгоритм взлома «грубой силой» имеет сложность
( )
( )
ln2n
OPne
( )
Pn
Exp
– некоторый полином и, таким образом, является экспоненциаль-
ным.
Если криптосистема взломана экспоненциальным алгоритмом, то увеличение длины ключа и других параметров (если это возможно) снова делает этот шифр безопасным. Например, авторы первой в мире асиммет­рической криптосистемы RSA зашифровали некий текст и предложили премию (1 $) тому, кто его расшифрует. Этот текст был дешифрован спу­стя 20 лет методом квадратичного решета, имеющего субэкспоненциаль-
, где
ную сложность (промежуточный тип между классами Р и
алгоритм не полиномиален, то увеличение длин всех параметров системы RSA «спасло» ситуацию, и эта криптосистема используется и в настоящее время. Наоборот, если криптосистема взломана полиномиальным алго­ритмом, то никакое увеличение длин параметров и ключа не «спасает» криптосистему.
В этой связи алгоритм, имеющий полиномиальную сложность, при­нято называть эффективным. Все другие алгоритмы называют не эффек­тивными.
2.1.3. Алгоритм возведения в степень и алгоритм Евклида
). Так как
с точки зрения приложений, вычислительных задач. Практически все эти интересные задачи не имеют эффективных алгоритмов решения, и лишь небольшое количество имеет алгоритмы решения полиномиальной слож­ности. Здесь для нас особенно важны две из них: алгоритм возведения в степень и алгоритм вычисления наибольшего общего делителя (алго­ритм Евклида).
В математике существует большое количество интересных и важных,
29
Рассмотрим сначала алгоритм возведения в степень. Пусть на некото-
aM∈
k ∈
раз
k
k
b a aa a= ≡∗∗ ∗

( )
n
M Mat=
k
ba=
n
M =
mod
k
ba n=
M EC=
разk
b ka a a a
= ≡⊕⊕ ⊕
     
a EC∈
0
2
i
l
i
i
kk
=
=
∑
2
loglk=


{ }
0,1
i
k ∈
⋅


6.4 6
=


6.9 6=


(
)
( )
0
2
2
00
i
i
l
i
i
i
i
k
ll
k
k
k
i
ii
aa a a
=
= =
∑
= = =
∏∏
2
i
i
aa≡
i
a
2
1ii
aa
+
=
0, , 1il= −
0
aa=
i
a
1
i
k =
2
2log k
ром множестве M задана бинарная ассоциативная операция (*), которую будем называть умножением, и пусть дан элемент
число
. Выражение
называется возведением эле-
и натуральное
мента a в степень k.
Примеры.
риц,
– возведение матрицы a в степень;
возведение в степень числа по модулю; липтической кривой,
множество квадратных вещественных мат-
,
– множество точек эл-
– сложение точки
с собой k раз.
Последние два примера для нас особенно важны, поскольку широко
применяются во многих криптопротоколах.
–
Алгоритм возведения в степень
Запишем натуральное число k в двоичной системе:
,
дробной части, например,
Величины
рат l раз: перемножаются те величины
. (Здесь и далее знак
,
означает отбрасывание
.) Тогда
,
. (2.1)
вычисляются последовательно путем возведения в квад-
,
,
. Далее, согласно формуле (2.1),
, для которых
. На этом этапе нам
необходимо будет выполнить не более l умножений. Таким образом, ал-
,
горитм возведения в степень требует не более бинарная операция умножения полиномиальна, то и алгоритм возведения
в степень имеет полиномиальную сложность.
умножений. Если
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]