Добавил:
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. Протоколы электронной подписи
- •ЗАКЛЮЧЕНИЕ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК

Теорема 4 (Формула Эйлера):
( )
1 mod
n
an
ϕ
=
( )
,1an =
( )
nϕ
np=
1
1 mod
p
ap
−
=
0 mod ap≠
( )
10.5
logOp
p
,
. (2.11)
Формула Эйлера является основой криптосистемы RSA, которую мы
рассмотрим в следующей главе. При этом составное число n называется
параметром системы и не держится в секрете, а число
– составляет
секрет. Для того чтобы воспользоваться формулой (2.10), необходимо решить задачу о факторизации числа n, т. е. произвести разложение (2.9),
а эта задача не имеет эффективных алгоритмов решения (наибыстрейшие
алгоритмы – алгоритм квадратичного решета и решета числового поля
имеют субэкспоненциальную сложность). Таким образом, криптостойкость
шифра RSA обеспечивается отсутствием полиномиального алгоритма решения задачи о факторизации.
Важный частный случай формулы Эйлера:
– простое число.
Теорема 5 (Малая теорема Ферма):
,
. (2.12)
Как правило, большинство криптопротоколов и асимметрических криптосистем требует выбора большого простого числа. Вследствие этого, актуальными являются две проблемы: проблема определения простоты числа
(тест на простоту) и проблема построения большого простого числа.
Как ни странно, но первая проблема оказывается сложнее. Открытый
относительно недавно (2002) полиномиальный тест (AKS-тест) для используемых на практике чисел оказывается слишком трудоемким (слож-
ность оригинального алгоритма
), поэтому прибегают к веро-
ятностным алгоритмам (например, тест Ферма, тест Соловея – Штрассена,
тест Миллера – Рабина).
Решение проблемы построения большого простого числа основывается на том, что для простого числа p мультипликативная группа
цик-
41

лична, а для составного числа не циклична. Поэтому для доказательства
1p −
p
1p −
1p −
p
a
∈
n
2
3
x
=
b
x
a
=
ax b
=
, ab
( )
,,+⋅
( )
1
xa b
−
= ⋅
x ∈
n
2 3 mod 5 3 2 mod 5xx= ⇔=
{ }
5
0,1,2,3,4x ∈=
2 3 mod 5 1x = = −
1
1 5 mod 7 5 mod 7 5 1 mod 7xx
−
= = ⇔=
{ }
7
0,1,2,3,4,5,6
x ∈=
1
5 mod 7 3x−= =
простоты достаточно предъявить число a, порядок которого равен
Из утверждения 4 и малой теоремы Ферма следует, что порядок любого
элемента поля
является делителем числа
. Вследствие этого для
построения такого числа a достаточно (но не обязательно) знать разложения на множители числа
. Примитивный элемент
, доказыва-
ющий простоту числа p, называется сертификатом простоты.
2.2.3. Операция деления в кольце
Обычно, когда маленьким детям рассказывают о том, как понимать
число
, то говорят о двух дольках яблока из трех нарезанных. Разу-
.
меется, такое определение дроби нас не устраивает. Сформулируем более
подходящее. Под дробью
уравнения
торого кольца
. Предполагается, что элементы
. Если элемент a обратим, то это уравнение имеет
единственное решение:
мы будем понимать решение линейного
есть элементы неко-
. Как видим, вычисление элемента
содержит две операции: вычисление обратного элемента и умножение в кольце. Если умножать мы «умеем», то вычисление обратного элемента кольца требует разработки отдельного алгоритма.
Для нас сейчас важен случай кольца
. Рассмотрим простейшие
примеры.
Задача:
,
.
Методом полного перебора получаем:
Задача:
Методом полного перебора получаем:
42
.
,
.
.

Задача:
1
3 mod 9 3 1 mod 9
xx
−
= ⇔=
{
}
9
0,1,2,3,4,5,6,7,8
x
∈=
9
x ∈
9
3
∗
∉
,an∈
( )
,1an =
,xy
1ax ny+=
1 mod ax n=
1
mod xa n
−
=
1
mod
xa n
−
=
i
r
0,1, ,ik=
1
k
r = ±
10
, ,,
kk
xx x
−
1
kk
xr= = ±
11
1
ii
i
i
xr
x
r
+−
−
=
1, , 0ik= −
1
0
mod xa n
−
=
( )
3
ON
[ ]
2
logNn=
1
1348 mod 67291x−=
1
67291r−=
0
1348r =
1
67291 mod 1348 1239 109 r= =−=
2
1348 mod 109 40 r= =
3
109 mod 40 11 r= =
4
40 mod 11 7 4 r= =−=
5
11 mod 4 3 1 r= =−=
,
. Со-
вершая полный перебор, приходим к выводу, что такого элемента
не существует. Это произошло вследствие необратимости числа 3,
т. е.
(нельзя делить на нуль и на делители нуля).
Расширенный алгоритм Евклида позволяет находить для любых чисел
,
, т. е.
, такие целые числа
.
, что
. Отсюда следует:
Здесь мы приведем модифицированную версию расширенного алго-
ритма Евклида.
Вычисление обратного элемента
(расширенный алгоритм Евклида)
Пусть требуется найти число
заключается в последовательном вычислении
. Первый этап алгоритма
,
по фор-
муле (2.2). Вычисление продолжается до тех пор, пока не будет получено
(так как числа a и n взаимно просты). На втором этапе рассчиты-
ваем последовательность целых чисел
Ответ: число
,
.
,
согласно формуле
. (2.13)
Расширенный алгоритм Евклида, как и его рассмотренная выше мо-
дификация, имеет полиномиальную сложность
, где
–
длина числа n.
Пример 21. Вычислим
. Полагаем
,
, далее по формуле (2.2) имеем:
;
43
;
;
;
.

Используем теперь формулу (2.13) и посчитаем последователь-
i
x
5
1x = −
( )
4
1 1 11
3
4
x
−− ⋅
= = −
−
(
)
3
1 3 40
11
11
x
−− ⋅
= =
( )
2
1 11 109
30
40
x
− ⋅−
= =
1
1 30 1348
371
109
x
−⋅
= =
−
0
1 371 67291
18520
1348
x
−⋅
= = −
1
1348 mod 67291 18520 48771x
−
= =−=
1
9m =
1
2a =
2
7m =
2
4a =
3
5m =
3
3a =
4
2m =
4
1a =
i
a
ность
(при правильном выполнении вычислений получившиеся числа
будут целыми):
Ответ:
;
;
;
;
;
.
.
2.2.4. Китайская теорема об остатках
Древняя китайская задача.
В некотором городке решили сделать детям подарки на праздник.
С этой целью закупили какое-то количество апельсинов. Далее начали рас-
пределять эти апельсины по пакетам. Сначала решили класть в каждый
пакет по
решили класть в каждый пакет по
апельсина, опять нехорошо. Решили класть на этот раз по
нов, осталось
попытку: класть по
апельсинов, осталось
апельсина, нехорошо. Тогда
апельсинов, осталось
апельсина, опять нехорошо. Предприняли последнюю
апельсина в пакет, и опять неудача – остался
апельси-
неупакованный апельсин. Сколько апельсинов было закуплено?
Также интересно ответить на вопрос, при любых ли значениях остат-
ков
существует ответ?
Ниже мы ответим на эти вопросы. Для этого нам потребуется немного
алгебры.
Ответ на китайскую задачу дает следующая теорема.
44

Теорема 6 (Китайская теорема об остатках). Пусть
1 k
nm m=
( )
,1
ij
mm =
ij≠
n
12 k
nmm m
× ××
1 12
,,
kk
n mm m m m
→ = × ××
1
,,
k
mm
( )
1
,,
k
aa a=
( )
1
1 ,,
,,
k
k mm
bb b= ∈
(
)
( )
(
)
11 1
mod , , mod
kk k
ab ab m a b m⊕= + +
( )
11 1
a b mod , , b mod
kk k
ab m a m∗= ⋅ ⋅
( )
( )
1
mod , , mod
k
aaamamψ==
mod
ii
aa m=
(
) ( )
(
)
( )
1
mod , , mod
k
ab ab m ab m
ψ+= + + =
(
)
( )
( )
( ) ( )
11 1
mod , , mod
kk k
ab m a b m ab a b= + + = ⊕ =ψ ⊕ψ
(
) ( )
( )
ab a bψ ⋅ =ψ ∗ψ
1−
ψ
1
,,
k
mm n
→
–
составное натуральное число,
,
, тогда кольцо
изоморфно (см. определение 10) прямому произведению колец:
.
Доказательство. Для доказательства теоремы нужно построить
искомый изоморфизм ψ:
сложения и умножения в кольце
есть покомпонентное сложение
. Операции
и умножение в соответствующих кольцах:
,
;
;
.
Построим отображение:
. Проверим, что оно сохраняет алгебраические операции.
Аналогично проверяется равенство
.
Отображение одного кольца в другое, сохраняющее алгебраические
операции, называется гомоморфизмом колец.
Пока что можно утверждать, что введенное нами отображение ψ яв-
, т. е.
.
ляется гомоморфизмом. Чтобы говорить об изоморфизме, необходимо по-
строить обратное отображение
:
45
, которое ставит в соот-

ветствие произвольному элементу
1
,,
k
mm
a
∈
( )
1
n
aa
−
=ψ∈
( )
( )
1
aa
−
ψψ =
( )
( )
( )
1 11
ab a b
− −−
ψ ⊕ =ψ +ψ
(
)
( )
( )
1 11
ab a b
− −−
ψ ∗ =ψ ⋅ψ
ii
c nm
=
1
mod
ii i
dc m
−
=
i ii
e cd= ⋅
( )
,1
ij
mm =
ij≠
( )
,1
ii
cm
=
i
d
i
e
0 mod
ii
em n⋅=
1 mod
ii
em=
0 mod
ij
em
=
ji≠
0 mod
ij
ee n⋅=
ij≠
2
mod
ii
ee n=
0 mod
ii iii i
emdcmdn n= = =
1
mod mod mod 1
i iii iii i
e mcd mcc m
−
= =⋅=
1 11
mod 0 mod
i j i j ii k j
e m dm m m m m m
−+
= =
( )
( )
0 mod
i j ij i j
e e dd n n mm n
⋅= =
( )
2
1 mod
i iiii i i iii
e e c d e km e ke m e n= =+=+ =
( )
1
1
mod
k
jj
j
a a ae n
−
=
ψ==
∑
j
a
jj j
a a km→+
n
j
e
, т.ч.
единственный элемент
;
Введем числа:
,
лу попарной взаимной простоты
, вследствие чего величины
обладают следующими свойствами:
1)
2)
3)
4)
;
;
,
;
,
;
;
. (2.14)
,
,
. Заметим, что в си-
выполняется равенство
всегда существуют. Величины
5)
Докажем эти свойства.
1)
2)
3)
4)
5)
Построим отображение
Числа
в этой формуле определены с точностью до замены
.
;
;
;
;
.
. (2.15)
, но эта неоднозначность не меняет числа a как элемента
кольца
в силу певого свойства чисел
46
.

Проверим теперь свойства (2.14):
( )
( )
( )
1
1
1
,,,,
k
jj i k
j
a ae a a a
−
=
ψψ =ψ =
∑
1
mod mod
kk
i jj i jj ii i i
j ji
a ae m ae ae m a
= ≠
= =+=
∑∑
( )
( )
(
)
( )
1
11
mod mod mod
kk
jj jj jj jj
jj
ab ab me n abkme n
−
= =
ψ⊕=+ ⋅=++⋅=
∑∑
( )
( )
(
)
11
1 11
mod mod mod
k kk
j j j jj jj
j jj
abenaenben a b
−−
= = =
= + ⋅ = + =ψ +ψ
∑ ∑∑
( )
( )
( )( )
11
11
mod mod
kk
ii jj ij ij
i j ij
a b ae b e n ab ee n
−−
= = ≠
ψ ⋅ψ = ⋅ = +
∑∑ ∑
( )
( )
21
mod mod mod mod
iii iii ii i i
i ii
abe n abe n ab m e n a b
−
+ = = =ψ∗
∑ ∑∑
i
e
n
23 34 28 31 17 61 12 13a =×−×+×+×
(в силу свойств 2 и 3). Далее
Здесь было использовано свойство 1.
,
,
.
.
Здесь были использованы свойства чисел
4, 5, 1.
Китайская теорема об остатках широко используется в криптографии,
и ниже мы ее будем неоднократно применять. Укажем также на еще одну
область ее применения – целочисленные вычисления. А именно, пусть
необходимо провести большое количество арифметических операций
с длинными целыми числами. Мы можем считать, что расчеты производятся в кольце
, и воспользоваться китайской теоремой об остатках,
оперируя с «векторами» и совершая операции над «маленькими» кольцами. В конце расчетов мы, используя формулу (2.15), восстановим ответ
с точностью до аддитивного слагаемого кратного числу n.
Пример 22. Пусть требуется рассчитать число
.
47

Для облегчения расчетов используем теорему 6. Выберем число
2 5 7 9 11 6930n
=×××× =
6930aa k+
k
∈
1
3465c =
2
1386c =
3
990c =
4
770c =
5
630c =
i
d
11
1
3465 mod 2 1 mod 2 1d
−−
= = =
11
2
1386 mod 5 1 mod 5 1d
−−
= = =
( ) ( )
11
12 2
3
990 mod 7 9 10 9 10 mod 7 2 3 2 3 mod 7=5d
−−
−
= = × +× = × +×
( )
(
)
1
1
12
4
770 mod 9 7 10 7 10 mod 9 2 1 2 1 mod 9=2d
−
−
−
= = × + × =−×− ×
1 11
5
630 mod 11 30 mod 11 3 mod 11=4d
− −−
= =−=
i
e
1
3465e =
2
1386e =
3
4950e =
4
1540e =
5
2520e
=
12345
3465 1386 4950 1540 2520 mod 6930aaaaaa=++++
2,5,7,9,11
( ) ( ) ( ) ( ) ( ) ( )
1,3,2,5,1 0,4,6,7,1 0,3,0,1,6 1,1,3,4,9 1,2,3,8,6 1,1,5,7,6a =∗ − ∗+∗+
( ) ( ) ( ) ( ) ( ) ( )
0,2,5,3,1 1,3,6,4,2 0,2,5,8,1 0,3,0,4,10 1,2,1,2,3 0,1,2,3,2+∗ = − ++ =
( )
1, 2,1,0, 4= −
, т. е. ответ мы получим с точностью до слагаемо-
го
,
. Легко установить, что в нашем случае ответ
не превышает значения n, и поэтому мы получим точный ответ:
,
Посчитаем величины
,
,
,
:
;
.
;
;
;
и величины
:
,
,
,
,
Формула (2.15) в данном случае имеет вид
. (2.16)
Отметим, что эту формулу нужно получить всего один раз. Далее все
вычисления в нашем случае проводятся в кольце
.
Итак
.
.
48

Применение формулы (2.16) дает
1107 6930ak= +
0k
=
N
mod
ii
N ma=
N
( )
,1
ij
mm =
ij
≠
mod 2 1N =
mod 4 2N =
( )
2,4 2
=
N
mod 9 2,
mod 7 4,
mod 5 3,
mod 2 1.
N
N
N
N
=
=
=
=
( )
9,7,5,2
2,4,3,1
N = ∈
N
i
c
i
d
i
e
1
70c =
2
90c =
3
126c =
4
315
c =
1
4d =
2
6d =
3
1d =
4
1d =
1
280e =
2
540e =
3
126
e =
4
315e =
1234
280 540 126 315 mod 630 263 630NN N N N k=+++ =+
. Правильный ответ
соответствует значению
.
Вернемся к китайской задаче, которую мы сформулировали ранее.
Обозначим через N искомое число апельсинов. На языке алгебры за-
дача имеет вид линейных уравнений на неизвестную величину
.
Мы сразу можем ответить на вопрос о существовании искомого числа
. Положительный ответ является следствием взаимной простоты чисел
,
. Контрпример: пусть
и
(здесь
). Можно проверить, что в этом случае такого целого числа N не
существует.
Наша задача состоит в нахождении числа
, удовлетворяющего
:
системе уравнений
Иначе говоря, по известному «вектору»
ется восстановить число
. Решение заключается в применении фор-
мулы (2.15).
Выпишем числа
,
,
,
,
и формулу (2.15).
,
;
требу-
,
,
,
;
,
,
49
,
;
.

2.3. КОНЕЧНЫЕ ПОЛЯ
,∆
⊂∆
θ∉
(
)
θ
( ) {
}
2 2|,a b ab
=+∈||
234
,,,,θθθ
i
a ∈
2
01 2
0
n
n
aa a a+ θ+ θ + + θ =
2.3.1. Простое алгебраическое расширение поля
Пусть
подполем поля ∆, а поле ∆ называют расширением поля . Очевидно,
что пересечение полей снова является полем. Пересечение всех полей, со-
держащих поле и еще один элемент
ле является минимальным полем, содержащим поле и элемент θ,
и называется простым расширением поля .
О расширении полей хорошо написано в монографии [1]. Мы также
рекомендуем к прочтению классический двухтомник по теории полей
Галуа [6, 7].
Пример 23. Можно проверить, что множество
– два поля, причем
. В этом случае поле называют
, образует поле
. Это по-
является полем – простым расширением поля |.
Если мы присоединили к полю элемент θ, то чтобы получилось
поле, необходимо добавить и элементы
ные комбинации с коэффициентами из поля . Попробуем подобрать ко-
эффициенты из поля так, чтобы линейная комбинация дала ноль. Если
таких коэффициентов не существует, то вычисляем следующую степень θ
и снова повторяем эту процедуру. Возможны две ситуации.
1. Может так случиться, что не существует коэффициентов
и такого натурального n, что
В этом случае говорят о трансцендентном простом расширении,
а также все их линей-
.
а элемент θ называется трансцендентным.
50
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
