Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теоретико-числовые методы в криптографии и криптопротоколах. Учебное пособие.pdf
X
- •ПРЕДИСЛОВИЕ
- •1. ОСНОВНЫЕ АЛГЕБРАИЧЕСКИЕ КОНСТРУКЦИИ
- •1.1. Группы
- •1.2. Кольца
- •2. ЭЛЕМЕНТЫ ТЕОРИИ ЧИСЕЛ, КОНЕЧНЫХ ПОЛЕЙ И ЭЛЛИПТИЧЕСКИХ КРИВЫХ
- •2.1. Элементы теории сложности алгоритмов
- •2.2. Свойства кольца
- •2.3. Конечные поля
- •2.4. Группа точек эллиптической кривой
- •3.2. Примеры асимметрических криптосистем
- •3.3. Электронная подпись
- •3.4. Примеры криптопротоколов
- •4. АЛГЕБРАИЧЕСКИЕ ОПЕРАЦИИ В КОНЕЧНЫХ КОЛЬЦАХ И ПОЛЯХ
- •4.1. Вычисления в кольцах
- •4.2. Решение квадратных уравнений в кольцах
- •5.1. Вычисления в поле Галуа
- •6. АСИММЕТРИЧЕСКИЕ КРИПТОСИСТЕМЫ И КРИПТОПРОТОКОЛЫ
- •6.1. Криптосистема RSA
- •6.2. Криптосистема Эль-Гамаля
- •6.3. Криптосистема Хора – Ривеста
- •6.4. Протоколы электронной подписи
- •ЗАКЛЮЧЕНИЕ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК

Пример 19. Вычислим без калькулятора значение выражения
97
23 mod 101b =
97k =
6
97 2 33=+=
650
222=++
650
mod 101b aaa=
i
a
0
23a =
( ) ( )
2
2
1
23 mod 101 20 3 mod 101 400 120 9 mod 101 4 19 9 24;a = = + = + + =−+ + =
(
)
( )
2
2
2
24 mod 101 23 1 mod 101 24 46 1 mod 101 71 mod
101 30;
a = = + = ++ = =−
( )
2
3
30 mod 101 900 mod 101 9a =−==−
( )
2
4
9 mod 101 81 mod 101 20a =−==−
( )
2
5
20 mod 101 400 mod 101 4a =−==−
( )
2
6
4 mod 101 16a =−=
( ) ( ) ( )
16 4 23 mod 101 16 92 mod 101 16 9 mod 101 90 54 mod 101b =− =− =⋅=+ =
11 54 43=−+ =
97
23 mod 101 43b = =
{ }
1,2,3,4,6,12
{ }
1,2,3,6,18
{ }
1,2,3,6
ем значения
. Запишем число
в двоичной форме:
. Из формулы (2.1) следует, что
(без калькулятора):
;
. Посчита-
;
;
;
.
Далее
. Ответ:
.
Алгоритм нахождения наибольшего общего делителя
(алгоритм Евклида)
Напомним, что наибольшим общим делителем называется такое
натуральное число, которое из всех общих делителей имеет максималь-
ный модуль. Например, делители числа 12 есть множество
,
делители числа 18 есть множество
лей есть пересечение этих множеств
, множество общих делите-
. Наибольшим общим дели-
телем является в данном случае число 6.
31

Наибольший общий делитель двух целых чисел
,ab∈
( )
,ab
( )
12,18 6=
( )
,1ab =
0ab>>
( )
( )
,,
ab a b=
( ) ( )
,0 ,a aa a= =
1
ar
−
=
0
br=
11
mod
i ii
r rr
−+
=
0,1, ,ik
=
10k
r
+
=
( )
,
k
r ab=
|d α
|d β
|dr
mod r =αβ
rq
=α− β
i
r
11
mod 0 |
k k kk
r r rr
−−
= ⇔
2
|
kk
rr
−
|
k
rb
|kra
k
r
1k +
1
2
ii
rr
+
<
2
logka
<
( )
1098767033,879014463d =
1098767033 mod 879014463 219752570
=
879014463 mod 219752570 4183=
обозначается
как
чисел
(например,
, то такие числа называются взаимно простыми.
). Если наибольший общий делитель двух
Не теряя общности, будем считать
. Положим
,
формулу
получаем
.
,
Для доказательства заметим, что если
(
следует, что все числа
, где q – частное от деления α на β). Отсюда сразу
делятся на любой общий делитель чисел a и b.
, так как
. Далее, используя реккурентную
;
и
, (2.2)
, то
. Здесь
,
В силу последнего равенства системы (2.2)
Из предпоследнего равенства следует
,
. Так как число
является общим делителем и делится на
, поднимаясь выше, получим
наибольший общий делитель, то приходим к заключению, что оно и есть
наибольший общий делитель.
Заметим, что при реализации алгоритма Евклида нам придется осуществить
по модулю выполняются неравенства
оценивается как
операцию деления с остатком. Поскольку при приведении
, то количество шагов
и, таким образом, алгоритм Евклида имеет по-
линомиальную сложность.
Пример 20. Вычислим:
. Используем
.
формулу (2.2):
;
;
32

219752570 mod 4183 1335= −
;
4183 mod 1335 178=
1335 mod 178 89
=
178 mod 89 0=
( )
1098767033,879014463 89d
= =
(
)
,G ⋅
GN≤ <∞
, ab
aG∈
,ab G∈
n
ab=
,
ab G∈
n
∈
G
*
p
G =
*
,
p
ab∈
*
mod , ,
n
p
a b p ab= ∈
;
Ответ:
;
.
.
2.1.4. Алгоритм «Шаг большой – шаг маленький»
решения задачи дискретного логарифмирования
в конечной группе
Пусть
рядка:
принадлежит циклической подгруппе, порожденной элементом
– конечная группа, для которой известна оценка ее по-
, и пусть
– элементы группы G, причем элемент b
. Задача вычисления неизвестного натурального числа n по известным элементам
, т.ч.
,
,
, (2.3)
носит название – задача дискретного логарифмирования в конечной группе.
Эта задача не имеет эффективного алгоритма решения, и на ее сложности базируется криптостойкость значительного числа асимметрических
шифров и криптопротоколов.
Приведем наиболее важные частные случаи задачи (2.3).
Выберем в качестве группы
группу конечного простого поля
, тогда задача вычисления натурального числа n по известным
числам
(2.4)
носит название задачи дискретного логарифмирования в конечном про-
стом поле.
33

Сложность задачи (2.4) обусловливает криптостойкость протокола
*
q
G
=
*
, ,
n
q
a b ab= ∈
(
)
q
EC
( )
, ,
q
nP Q P Q EC= ∈
разn
nP P P P≡⊕⊕ ⊕
( )
ON
( )
ON
выработки ключа Диффи – Хеллмана, криптосистемы Эль-Гамаля, протокола аутентификации Шнорра, цифровой подписи DSS/DSA и т. д.
Если взять в качестве группы G мультипликативную группу конеч-
ного поля
(множество всех ненулевых элементов поля), то соот-
ветствующая задача (2.3)
будет носить название задачи дискретного логарифмирования в конечном
поле.
Рассмотрим в качестве группы G группу точек эллиптической кривой
над конечным полем. (Эллиптическим кривым посвящен
п. 2.4.) В этом случае задача (2.3)
(2.5)
называется задачей дискретного логарифмирования на эллиптической
кривой. Здесь
.
На сложности задачи (2.5) основывается криптостойкость стандартизи-
рованных алгоритмов цифровой подписи ГОСТ 34.10-2018, EC DSA и т. д.
Как уже сказано выше, алгоритм решения задачи дискретного логарифмирования в конечной группе (2.3) не имеет алгоритма решения полиномиальной сложности. В силу конечности группы мы всегда можем решить эту задачу путем полного перебора, что потребует выполнения
операций умножения в группе. Покажем, что существует значи-
тельно более быстрый алгоритм, требующий
умножений (тем не
менее, он также имеет экспоненциальную сложность) [5].
34

Алгоритм «Шаг большой – шаг маленький»
mN
=
⋅
2
mN≥
2
nm≤
, 0 , n mi j i j m=+ ≤≤
(
)
i
jm
a ba
−
= ⋅
,
j im
ji
a a b ba
−
= =
, ij
1
aa=
21im≤< −
1jj
a aa
−
= ⋅
{ }
, jja
1mm
a aa
−
= ⋅
1
m
m
ua a
−−
= =
0
, 1b bi
= =
1ii
b ub
−
= ⋅
i
b
:1ii= +
i
b
i
b
j
a
n im j= +
2m −
1m −
22m −
Вычислим натуральное число
(здесь
– операция округ-
ления «вверх»). Иначе говоря, m – минимальное натуральное число со
свойством
ставлении неизвестного натурального числа
. Рассматриваемый алгорим основывается на пред-
в виде
. Тогда уравнение (2.3) переписывается как
.
Ниже будем использовать обозначения:
ные неотрицательные целые числа
находятся по следующему ал-
. Неизвест-
горитму.
Шаг 1. Положим
и для каждого
вычислим после-
довательность элементов
Шаг 2. Вычислим элемент
. Величины
и возьмем от него обратный:
занесем в таблицу T.
.
Шаг 3. Положим
Шаг 4. Вычислим элемент
Шаг 5. Если элемент
значение счетчика
не содержится в таблице T, то увеличиваем
и возвращаемся на Шаг 4. Если же элемент
.
.
присутствует в таблице, то переходим к следующему шагу.
Шаг 6. Пусть элемент
Тогда искомое натуральное число равно
совпадает с элементом
.
Подсчитаем общее количество операций в группе:
из таблицы T.
операции
умножения на Шаге 1, одна операция умножения и одна операция взятия
обратного элемента в группе на Шаге 2, не более
ния на Шаге 4. Итого для решения задачи (2.3) требуется выполнить одну
операцию обращения элемента и не более
операций умноже-
операций умножения.
35

Отметим, что рассматриваемый здесь алгоритм «шаг большой – шаг
3 11 mod 43
n
=
1 42, 42 6.48074 7Np m
= −= = = =
12 3 4 5 6
3 9 27 38 28 41
j
j
T
a
= =
76
mod 3 41 mod 43 37a aa p=⋅=⋅ =
1
7
mod 43 7ua
−
= =
0
11, 1bi= =
1
7 11 mod 43 34b =⋅=
2i =
2
7 34 mod 43 23b =⋅=
3i =
3
7 23 mod 43 32b =⋅=
4i =
4
7 32 mod 43 9b
=⋅=
4, 2ij= =
4 7 2 30n =⋅+=
маленький» не самый быстрый из существующих, но, как правило, более
быстрые алгоритмы не являются общими для произвольной группы и используют специфику конкретной задачи.
Пример. Решим задачу дискретного логарифмирования в простом ко-
нечном поле (2.4):
.
Здесь
. Применим для реше-
ния задачи вышеописанный алгоритм.
Шаг 1. Вычисляем таблицу T:
.
Шаг 2. Вычисляем
Шаг 3. Полагаем
Шаг 4. Вычисляем
.
.
,
Шаг 5. Число 34 отсутствует во второй строке таблицы T, поэтому
полагаем
Шаг 4. Вычисляем
и возвращаемся на Шаг 4.
.
.
Шаг 5. Число 23 отсутствует во второй строке таблицы T, поэтому
полагаем
и возвращаемся на Шаг 4.
Шаг 4. Вычисляем
Шаг 5. Число 32 отсутствует во второй строке таблицы T, поэтому
полагаем
и возвращаемся на Шаг 4.
Шаг 4. Вычисляем
Шаг 5. Число 9 присутствует во второй строке таблицы T и находит-
ся во втором столбце, поэтому переходим к Шагу 6.
Шаг 6. Мы определили числа
число равно
.
.
, и, таким образом, искомое
.
36

2.2. СВОЙСТВА КОЛЬЦА
n
, ab
( )
,,+∗
0
ab∗=
01
0
00
a
= ≠
( )
2
Mat
0aa⋅=
6
2, 3, 4
∈
2 3 0 mod 6⋅=
4 3 0 mod 6⋅=
0
k
ba= ≠
k ∈
a ∈
a
∗
∉
k
ba=
c ∈
0bc⋅=
( )
1
0
kk
ac aa c
−
⋅=⋅ ⋅ =
10k
ac
−
⋅=
0ac⋅=
0c ≠
1
a
−
1
a ae
−
⋅=
( )
11 1
00
a ac a ac a
−− −
⋅⋅= ⋅ ⋅ = ⋅=
( )
11
a ac a acecc
−−
⋅⋅= ⋅ ⋅=⋅=
0c ≠
2.2.1. Делители нуля
Определение 13. Ненулевые элементы
ются делителями нуля, если
Примеры. Элемент
лем нуля, так как
ля, так как
. Элементы
;
.
кольца
.
кольца
являются делителями ну-
Утверждение 5.
1. Пусть элемент
(
) – делитель нуля, тогда
также является делителем нуля.
2. Если a – делитель нуля кольца с единицей, тогда
элемент a не имеет обратного.
Доказательство.
называ-
является делите-
, т. е.
1. Если
Отсюда
– делитель нуля, то существует
. Это означает, что a – делитель нуля (либо
, далее по индукции).
2. Если a – делитель нуля, тогда
положим, что существует
:
, тогда
С другой стороны,
что противоречит условию
. Таким образом, предположение о суще-
ствовании обратного элемента ошибочно.
, т.ч.
для некоторого
.
,
.
. Пред-
Утверждение 6. Каждый ненулевой элемент конечного кольца с еди-
ницей обратим либо является делителем нуля.
37

Доказательство. Построим подмножество
a
⊂
0a ≠
ae
≠
{
}
2
,,, ,,,
kl
a
aa a a
=
,kl∈
lk>
( )
00
k l l k k lk
a a a a aa e
−
=⇔− =⇔ −=
k
a
lk
ae
−
=
m∈
m
ae=
11
m
aa
−−
=
n
n
∗
n
∗
( )
n
n
∗
= ϕ
0a >, 0b >
n
( )
0 mod ab n⋅=
c ∈
0 cn<<
ab cn⋅=⋅
np=
p
0 ,,abc n<<
p
p
, где
,
:
.
В силу конечности множества
такие, что
и
существуют натуральные числа
.
Отсюда следует, что
утверждению 5, a – делитель нуля) либо
ральное
, что
– делитель нуля (следовательно, согласно
, т. е. существует нату-
и тогда
.
Отметим, что в этом контексте свойство конечности кольца важно.
Контрпример – кольцо целых чисел. Все элементы этого кольца, кроме
двух 1±, необратимы, но при этом и не являются делителями нуля.
2.2.2. Функция Эйлера
В силу конечности кольца
которые образуют мультипликативную группу
множество его обратимых элементов,
, есть множество нену-
левых элементов, не являющихся делителями нуля. Порядок группы
зависит только от числа n и называется функцией Эйлера:
Пусть
означает существование целого числа
Если
– простое число (по определению у простого числа p
только два тривиальных делителя: 1 и
– делители нуля в кольце
,
. (2.6)
), никакие целые числа
:
, т.ч.
.
не могут удовлетворить равенству (2.6) и, таким образом,
, что
в
нет делителей нуля, т. е.
– поле. Если число n составное и p –
38

простой делитель числа n, то
|pa
|pb
n
(
)
{
}
|, 1
nn
a an
∗
=∈=
n
∗
{ }
1, 2, , 1n −
{
} ( )
5
1,2,3,4 5 4
∗
= ⇒ϕ =
{ }
( )
6
1, 2, 3, 4,5 6 2
∗
= ⇒ϕ =
{ } ( )
7
1,2,3,4,5,6 7 6
∗
= ⇒ϕ =
{ }
( )
8
1, 2,3,4,5,6,7 8 4
∗
= ⇒ϕ =
{ }
( )
9
1,2, 3,4,5, 6,7,8 9 6
∗
= ⇒ϕ =
( )
nϕ
( )
1ppϕ=−
( )
p
α
ϕ
α∈
( )
p
α
ϕ
1, 2, , , 1, , 2 , 2 1, ,pp p p p
α
++
kp⋅
1
1, 2, ,
kp
α−
=
( )
( )
11
1p pp p p
α α α− α−
ϕ=−= −
α∈
( )
11ϕ=
( ) ( ) ( )
ab a bϕ ⋅ =ϕ ⋅ϕ
( )
,1ab
=
или
. Таким образом, часть дели-
телей числа
Отсюда, с учетом утверждения 13, получаем критерий обратимости
элементов
Иначе говоря,
в котором вычеркнуты все числа, имеющие нетривиальный общий делитель с числом .n
Примеры.
содержится в числе a, а оставшиеся делители – в числе b.
.
– подмножество множества чисел
;
;
;
,
.
Эквивалентное определение функции Эйлера:
натуральных чисел, меньших n и взаимно простых с n.
Как уже отмечалось выше,
.
ся на p, т. е. числа вида
Кроме того, функция Эйлера обладает свойством мультипликативно-
есть количество чисел в последовательности
, из которой удалили все числа, делящие-
,
. Вычислим
. Таким образом,
,
– количество
. (2.7)
, где
сти (по определению полагаем
39
):
,
. (2.8)

Два свойства (2.7), (2.8) позволяют вычислить значение функции Эй-
12
12
1
k
i
k
ik
i
n p pp p
α
αα
α
=
= =
∏
12
1
k
pp p<< <<
i
α∈
n
( )
( )
( )
1
11 1
1
i ii
kk k
i i ii
ii i
n p p pp
α α α−
= = =
ϕ=ϕ =ϕ = −
∏∏ ∏
(
)
(
)
( ) (
)
22 1 1
100 2 5 2 2 1 5 5 1 40
ϕ =ϕ ⋅ = − −=
( )
( )
311
120 2 3 5 4 2 4 32ϕ =ϕ ⋅ ⋅ =⋅⋅=
( )
( )
2
140 2 5 7 2 4 6 48ϕ =ϕ ⋅⋅ = ⋅⋅=
( )
( )
1
145 5 29 4 28 112ϕ =ϕ⋅ =⋅=
n
k
ε
(
)
,1nk
=
( )
nϕ
( )
|dn
dnϕ=
∑
n
G
∗
=
( )
Gn= ϕ
лера для любого натурального числа n. Действительно, любое натуральное число n может быть единственным образом представлено в виде произведения степеней простых чисел (это основная аксиома арифметики):
Представление числа
в виде разложения (2.9) называется задачей
,
факторизации целых чисел.
Используя разложение (2.9) и свойства (2.8), (2.7), имеем
Примеры.
;
. (2.9)
. (2.10)
;
;
;
Вернемся к примеру 5 (с. 17 и формула (1.7)) и ответим на вопрос
о количестве примитивных элементов группы
элемент
будет примитивным тогда и только тогда, когда
довательно, количество таких элементов будет равно
. Нетрудно видеть, что
.
Без доказательства приведем важное соотношение
.
Рассмотрим частный случай теоремы 3 (основное свойство конечных
групп). Подставив в формулу (1.8):
,
, получим
.
. Сле-
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
