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

2. Такие коэффициенты существуют. Иначе говоря, существует такой
(
)
[
]
2
01 2
n
n
x a ax ax a x x
µ =+ + ++ ∈
( )
0
µθ=
( )
θ
( )
[
]
xx
µ∈
(
)
:
θ
( )
[ ]
xxµ∈
( ) ( ) ( )
12
x xxµ=µ µ
( )
(
)
[ ]
12
,xxxµ µ∈
( ) ( )
12
deg ,deg 0xxµ µ>
( )
2
2
fx x= −
( )
2|
( )
( )( )
22fx x x=−+
( )
2
1fx x= +
( ) ( )
( )
fx xixi=+−
( )
[ ]
xxµ∈
12
,θθ
( ) ( )
12
, θθ
многочлен
,
что θ есть его корень:
стым алгебраическим расширением поля , элемент θ называется алгебраическим над .
Многочлен
го θ является корнем, называется минимальным многочленом элемента θ.
Степень минимального многочлена называется степенью расширения
и обозначается
Многочлен
он раскладывается в произведение многочленов
,
в противном случае.
Свойство приводимости зависит не только от многочлена, но и в зна-
.
. В этом случае поле
минимально возможной степени n, для которо-
называется приводимым над полем , если
, и называется неприводимым
называется про-
:
чительной степени от поля, над которым он определен.
Примеры. Многочлен
ляется приводимым над полем , он также приводим над полем
из примера 23:
водим над полем , но приводим над полем {:
Поле, над которым приводимы все многочлены, называется алгебраи-
чески замкнутым. Поле комплексных чисел { алгебраически замкнуто
(основная теорема алгебры).
Легко видеть, что минимальный многочлен
неприводим. Можно также показать, что для любых двух различных корней
неприводимого над многочлена расширения
неприводим над полем |, но яв-
. Многочлен
элемента θ
непри-
.
изоморфны.
51

Пусть
( )
1
1 10
nn
n
x x a x ax a
−
−
µ = + ++ +
( )
0µθ=
( )
θ
n
θ
(
)
1
1 10
nn
n
a aa
−
−
θ =− θ + + θ+
( )
θ
[ ]
x
( )
(
)
x
µ
( )
[ ]
( )
( )
xxθµ
(
)
xµ
( )
xµ
( )
[ ]
( )
( )
{ }
1
0
|
n
i
ii
i
x x ax a
−
=
θ µ= ∈
∑
( ) ( )
( )
( )
,f x gx dx=
( ) ( )
1
r x fx
−
=
( ) ( )
0
r x gx=
( ) ( )
k
dx r x=
( ) ( ) ( )
ji l
ji l
ji l
b a b x ax c cx= = =
∑∑ ∑
– минимальный многочлен
элемента θ, т. е.
в поле
ключением: как только нам встречается степень
чем n степень), совершаем замену:
мы уже производили такую же замену, когда говорили об операции
в кольце классов вычетов кольца многочленов (см. пример 18). Подытожим вышесказанное.
Утверждение 7. Простое расширение
кольцу кольца многочленов
Таким образом, элементы поля простого алгебраического расширения
с элементом θ мы обращаемся как с символом за одним ис-
, где
. При проведении арифметических операций
(или более высокая
. Ранее
изоморфно фактор-
по главному идеалу
– минимальный многочлен элемента θ.
, т. е.
степени n есть всевозможные остатки многочленов от деления на ми-
нимальный многочлен
меньше n:
Как мы уже отмечали выше, кольцо многочленов и кольцо целых чисел похожи тем, что для них определена операция деления с остатком (евклидовы кольца). Поэтому алгоритм нахождения наибольшего общего делителя, который мы здесь изложили для целых чисел, полностью пригоден и для нахождения наибольшего общего делителя двух многочленов:
. А именно, положим
, т. е. всевозможные многочлены степени
. (2.17)
,
и далее применим рекуррентную формулу (2.2),
При проведении деления удобно использовать метод неизвестных ко-
эффициентов. Поделим в поле (2.17)
.
,
52

где коэффициенты
l
c ∈
l
c
( )
mod
jl j
jl j
jl j
bx cx x bx
⋅ µ=
∑∑ ∑
2θ=
1.41
( )
2
20xxµ = −=
2cdβ= +
2abα= +
01
2ccβ α=γ= +
( )
( )
( )
2
01
mod 2c c x a xb x c xd+ + −=+ ⇒
( )
( ) ( )
( )
22
1 10 0 10 10
mod 2 2cbx ca c b x c a x ca c b x cb c a c xd+++ −=+++=+⇔
10
01
22 22
10
2
2
,
22
cb c a c
bd ac bc ad
cc
ca cb d
ba ba
+=
−−
⇔ ⇒= =
+=
−−
[
]
(
)
{ }
2
1 |,x x ax b a b+= + ∈
2
1x →−
[ ]
( )
2
1xx+ {
p
p
a ∈
( )
,1ap =
– неизвестны. Умножив правую и левую часть на
элемент а, получим систему линейных уравнений на коэффициенты
Пример 24. Элемент
– это не
, сколько бы знаков мы не
. (2.18)
:
выписали, все равно это будет неточное значение. Самая правильная точка
зрения – это положительное число, являющееся корнем уравнения
. В качестве конкретного примера поделим число
на число
:
. Формула (2.15) дает:
.
Пример 25. Рассмотрим поле
. Опера-
ция приведения по модулю в этом случае сводится к замене
Иначе говоря, рассматриваемое поле есть поле комплексных чисел:
.
2.3.2. Конечные поля (поля Галуа)
.
Напомним, что поле называется простым, если оно не имеет собственных подполей. Единственным бесконечным простым полем является поле
рациональных чисел |. Конечными простыми полями являются кольца
вычетов
. Действительно, элемент
обратим, если
53
,

и этому условию удовлетворяют все ненулевые элементы (что эквива-
(
)
1ppϕ=−
p
char p=
[
]
( )
(
)
( )
{ }
1
0
| deg ,
n
i
p i ip
i
x x f x ax n a
−
=
µ = = =µ∈
∑
n
p
(
)
fx
p
( )
01
,,
n
faa
−
↔
( )
( ) ( )
12
x xxµ=µ µ
(
) (
) (
)
12
0 mod
xx xµµ = µ
[ ]
( )
( )
p
xxµ
( )
xµ
( )
( )
( )
,1fx xµ=
( )
[ ]
( )
( )
p
fx x x
∈µ
n
qp=
q
( )
n
GF p
( )
n
GF p
( )
xµ
p
лентно равенству
стых полей. Если поле является расширением поля
поле имеет характеристику p (обозначение
говорят, что поле имеет нулевую характеристику, если оно является рас-
ширением поля |.
Рассмотрим фактор-кольцо
Это кольцо состоит из
определяется набором из n элементов поля
). Все остальные поля – расширения про-
, то говорят, что
). Аналогично
. (2.19)
элементов, так как каждый элемент
:
.
Пусть многочлен
емом фактор-кольце имеются делители нуля (в частности,
). Тогда в этом случае фактор-кольцо
– не поле. Наоборот, если многочлен
следовательно,
утверждению 6 означает обратимость всякого ненулевого элемента. Следовательно, в этом случае фактор-кольцо (2.19) есть конечное поле характеристики p, которое называется полем Галуа.
Конечное поле, состоящее из
(Galua Field).
Вопрос о существовании поля
,
приводим, тогда в рассматрива-
неприводим,
, что согласно
, обозначается как
, как мы только что обсудили,
или
эквивалентен вопросу о существовании многочлена
приводимого над полем
чисел n и p. Два конечных поля, построенных с помощью двух различ-
. Ответ на этот вопрос положителен для любых
54
степени n не-

ных неприводимых многочленов одной и той же степени n над одним
p
n
qp=
q
1q
−
( )
1qϕ−
( )
3
2GF
(
)
xµ
3n =
{ }
2
0,1=
2
(
)
3
1
xxµ=
( )
3
2
1xxµ=+
( )
3
3
xxxµ=+
( )
3
4
1
xxxµ = ++
( )
32
5
xxxµ=+
( )
32
6
1xxx
µ =++
( )
32
7
xxxx
µ =++
(
)
32
8
1xxxxµ = + ++
( )
[ ]
fx x
∈
( ) ( ) ( )
f x ax b g x= +
,ab∈
(
)
[ ]
gx x
∈
( )
fx
0
x ba=−∈
i
µ
( )
8
01µ=
и тем же простым полем
ской точки зрения существует только одно поле с количеством элементов
.
Приведем без доказательства важное утверждение.
Утверждение 8. Мультипликативная группа конечного поля
лична, имеет порядок
Пример 26. Рассмотрим поле, состоящее из 8 элементов
бы построить для этого поля таблицу сложений и умножений, необходимо
реализовать его как фактор-кольцо (2.19), т. е. выбрать неприводимый
многочлен
члены степени 3 над
степени
, изоморфны. Это означает, что с алгебраиче-
и содержит
над полем
:
примитивных элементов.
. Выпишем все много-
цик-
. Что-
,
Из этих многочленов надо выделить неприводимые. Заметим, что если
некоторый многочлен
литель, т. е.
имеет в поле корень
представляет собой произведение квадратичного и линейного многочле-
,
приводим над и имеет линейный де-
,
,
,
.
,
. Кубический приводимый многочлен
,
,
,
, то многочлен
нов, т. е. всегда имеет корень. В нашем случае те многочлены
приводимыми, для которых 1 или 0 не корни. В частности,
будут не-
,
55

т. е. 0 – не корень,
( ) ( )
8
1 1111 mod 2 0µ = +++ =
( )
( )
3
8
1xx
µ=+
4
µ
6
µ
i
f
i
g
(
)
(
)
i
i
fg
ψ
ψ=
4
xxµ=µ
(
)
8
GF
( )
{ }
22 2 2
0 12 3 4 5 6 7
8 0, 1, , 1, , 1, , 1GF g g g xg x g x g x g x xg x x= = = = =+ = = + = + = ++
( )
2
2 1 0 210
2
k
g k x kx k kkk= + +=
( )( ) ( )
22 3
22
111 110 1 mod 1xx xx xx× = ++ + ++ =
(
)
(
)
43
mod 1xx xx+ ++ =
(
)
2
2
1 100
xx x x= ++= =
3
1xx→+
( )
2
n
GF
. В данном случае имеется два неприводимых многочлена:
, т. е. 1 – корень,
и
. С помощью этих двух многочленов мы формально можем
построить два разных поля с 8 элементами и с разными таблицами сложения и умножения. Если элементы первого поля обозначать через
рого –
го отображения
жения идентичными. Выберем многочлен
, то изоморфизм определяет существование взаимно однозначно-
, которое делает таблицы сложения и умно-
и построим поле
, а вто-
согласно формуле (2.18).
Каждый элемент нашего поля естественным образом отождествляется
.
с трехбитовым числом
.
Операция сложения – это побитовое сложение по модулю 2 (XOR).
Рассмотрим пример умножения:
.
(Приведение по модулю в данном случае означает замену
.)
Рассмотрим подробнее операцию умножения в поле
предложить три принципиально различных способа умножения.
56
. Можно

Использование таблицы умножения
( )
3
2GF
2
001
2
010
2
011
2
100
2
101
2
110
2
111
2
001
2
001
2
010
2
011
2
100
2
101
2
110
2
111
2
010
2
010
2
100
2
110
2
011
2
001
2
111
2
101
2
011
2
011
2
110
2
101
2
111
2
100
2
001
2
010
2
100
2
100
2
011
2
111
2
110
2
010
2
101
2
001
2
101
2
101
2
001
2
100
2
010
2
111
2
011
2
110
2
110
2
110
2
111
2
001
2
101
2
011
2
010
2
100
2
111
2
111
2
101
2
010
2
001
2
110
2
100
2
011
( )
2
n
GF
163n =
163 163
22×
( ) ( )
n
xx xµ = −σ
( )
xµ
( )
n
xx→σ
( )
deg xnσ<
( )
xσ
( )
( )
1 10
2
2
n
n
M GF
−
= σ σσ ∈
( ) ( )
2
1 011xx Mσ = +↔ =
Это самый простой способ. Составим таблицу умножения и будем
к ней обращаться всякий раз, когда нам потребуется произвести умноже-
ние. Для примера составим таблицу умножения для поля
.
Этот способ является самым быстрым, но совершенно не пригоден
для больших полей. Например, в стандарте цифровой подписи США
(DSA EC) используются эллиптические кривые над полями
самое малое число
размер
.
. Таблица умножения в этом случае имела бы
, где
Вычислительный метод
Приведем один из возможных способов вычисления произведений, не
использующих каких-либо таблиц.
Пусть
по модулю
члену
есть замена
соответствует константа
, как говорилось выше (см. 1.2.4), приведение
. Поскольку
, то много-
. В пре-
дыдущем примере
.
57

Умножим элемент
2
0 010x ↔
1
1 10
n
n
g g x gx g
−
−
= ++ + ↔
( )
1 10
2
n
g gg
−
↔
( )
( )
1
1 10
n
n
xg x x g x g x g
−
−
= ++ + =
( )
( )
12
1 2 10
mod
nn
nn
g x g x gx g x x
−
−−
+ ++ + µ =
( )
(
) ( )
( )
12
2 1 0 1 1 10
2
2
0 010
n
n nn
g x gx g x g x g gg
−
− −−
= ++ + + σ ↔ × =
( )
2 10 1
2
0
nn
g gg g M
−−
= +⋅
( )
2
n
g GF∈
M
2
2
0 0100
x ↔
fg×
f
M
( )
( )
22
nn
GF GF→
[ ]
f
fgMg×=
( )
3
2
111 2
GF∈
g
[ ]
( )
[ ]
111 100 010 001
Mg M M M g= ++ =
( )
[ ]
010 010 010 001
MMMMg= ++α
001
M
010
M
22
111 110×
[ ]
010 2 2 2 2
110 100 011 111M =+=
( )
[ ] [ ]
010 010 2 010 2 2 2 2
110 111 110 011 101MM M= =+=α
[ ]
2 2 111 2 2 2 2 2
111 110 110 101 111 110 100M×= =++ =
:
на элемент
=
.
Иначе говоря, умножение x на элемент
есть сдвиг влево
на одну позицию и, если старший бит элемента g равен 1, то прибавляет-
ся константа
на
тать как действие линейного оператора
. Такую операцию назовем М-сдвигом. Умножение
есть 2 М-сдвига и т. д. Умножение
:
будем счи-
, т. е.
.
Например, умножение элемента
есть действие оператора
(
– единичный оператор;
М-сдвиг; α – композиция линейных операторов).
Вернемся к примеру и вычислим этим способом элемент
на элемент
,
.
–
:
,
58

Использование таблицы логарифмов
[ ]
( )
( )
qp
xxµ
char
q
p =
q
a
∗
∈
01kq≤<−
k
a = θ
logka
θ
=
q
∗
1q−
logka
θ
=, loglb
θ
=
( )
mod 1kl q
ab
+−
×=θ
12 1
12 1
log log log
q
q
aa a
aa a
−
θ θ θ−
ij
aa×
( )
log log mod 1
ij
ka a q
θθ
=+−
1q−
( )
1qϕ−
2
0 010x ↔
q
qq×
1q −
( )
3
2GF
2
010θ=
2222222
001 010 011 100 101 110 111
log
0132645
i
i
a
a
θ
Согласно утверждению 8 в конечном поле
(
существует неотрицательное целое число
) существует примитивный элемент θ, что для любого
, т.ч.
но называть это число логарифмом элемента a по основанию θ:
. Логарифм осуществляет изоморфизм циклической группы
тивной группы
(см. утверждение 3). Пусть
. Выпишем таблицу логарифмов:
Для того чтобы выполнить умножение
(2.20)
, необходимо сложить
. Умест-
и адди-
, тогда
соответствующие логарифмы
, найти это
число во второй строке, тогда результатом умножения будет соответствующий элемент в первой строке. Кроме того, алгоритм деления здесь заме-
няется вычитанием в кольце
.
Как уже говорилось, в утверждении 8 примитивных элементов
, однако всегда в качестве элемента θ можно взять
Если таблица умножения элементов поля
то таблица логарифмов – одна строка длиной
имеет размер
(первая строка таб-
.
лицы (2.20) – порядковые номера в двоичной записи). Поэтому этот спо-
соб перемножения является промежуточным между двумя вышеописанными («маленькая» таблица и простейшие вычисления).
Составим в качестве примера таблицу логарифмов поля
. Вы-
,
берем
:
(2.21)
59

Вернемся к примеру 26 и вычислим произведение, а также частное:
5 4 4 5 mod 7 2
22 2
111 110 100
+
× =θ⋅θ=θ =θ=
4 5 4 5 mod 7 6
22 2
110 111 101
−
=θ θ=θ =θ=
(
)
2
n
GF
( )
[ ]
( )
8 843
2
21GF x x x x x+ + ++
2
0y by c+ +=
,bc∈
2x yb= +
2
xa=
2
4ab c= −
p
2
mod xa p=
,
.
В заключение этого раздела заметим, что существуют и другие эф-
фективные алгоритмы умножения в полях
, поэтому (и не только)
эти поля широко используются в криптографии. Например, стандартная
симметрическая криптосистема AES (Advanced Enscription Standart) имеет
архитектуру «квадрат», в которой каждая клетка – элемент поля Галуа
.
2.3.3. Решение квадратных уравнений
в конечных простых полях
Рассмотрим квадратное уравнение над полем :
,
. (2.22)
Если характеристика поля не равна 2, то заменой переменной
это уравнение сводится к уравнению
где
. Совершенно очевидно, что уравнение (2.22) имеет реше-
, (2.23)
ние в поле тогда и только тогда, когда уравнение (2.23) имеет в поле
решение.
В данном разделе нас интересуют квадратные уравнения вида (2.23)
над простыми конечными полями
:
. (2.24)
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
