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

Расшифрование. Для расшифрования криптотекста
{ }
12
,cc
(
)
mod 1
21
mod
tcc p
−−
= ⋅
( ) ( ) (
) (
)
21
mod mod mod
x k kx xk kx
cc pty g ptg g pt
−− −
⋅=⋅⋅=⋅⋅=
59p =, 2g =
43x =
43
2 mod 59 18y = =
44k =
15t =
{
}
12
,cc
44
1
2 mod 59 36c = =
44
2
15 18 mod 59 27c =⋅=
{ }
36,27
43 mod 58 15
27 36 mod 59 27 36 mod 59 15
t
−
=⋅ =⋅=
{ }
i
C
2
n
x ∈
требуется
знать секретный ключ x:
.
Действительно,
.
Хорошо видно, что для взлома этого шифра необходимо найти либо
число k, либо секретный ключ x. В обоих случаях эта задача является задачей дискретного логарифмирования в простом поле (3.2).
Пример.
Выберем следующие параметры шифра Эль-Гамаля:
(здесь g – примитивный элемент), в качестве секретного ключа возьмем
случайное число
. Тогда открытый ключ будет равен
. Для зашифрования возьмем случайное число
Результатом зашифрования текста
,
Для расшифрования криптотекста
будет пара чисел
вычисляем
, где
.
.
.
3.2.3. Криптосистема Хора – Ривеста
Шифр Хора – Ривеста основан на задаче об укладке рюкзака. Основная проблема всех рюкзачных криптосистем заключается в построении
такой последовательности натуральных чисел
тору
соответствовало бы уникальное значение S из формулы (3.5).
91
, чтобы каждому век-

Один из возможных способов – это выбрать сверхвозрастающую последова-
1
1
1
i
j
ij
CC
−
=
+
>
∑
mod
ii i
C C wC M
→=⋅
2
n
x ∈
i
i
x xm
≡=
∑
,nm
V
( )
{ }
,1 2
,, |
n
nm n i
i
V x x x x xm== ∈ ≡=
∑
{
}
i
CC=
i
ii
S x C Cx=∗=
∑
(
)
[ ]
( )
(
)
m
p
GF p x x
µ
(
)
deg
xm
µ=
( )
[ ]
p
zz
α
µ∈
( )
0
α
µ α=
( )
m
GF p
α
∈
p
α+
{
}
( )
, 1, 2, , 1
m
p
p GF p
∗
α+ = α α+ α+ α+ − ⊂
( )
m
GF p
∗
1
p
iα+ − ∈α+
( )
log 1 1
m
i
C ip
θ
= α+ − < −
1
i
C
iθ =α+ −
1, ,ip=
np
=
,nm
xV∈
,,nm
xy V∈
xy≠
тельность
. Такая последовательность используется в криптосистеме Меркля – Хеллмана, в которой в криптографических целях свойство сверхсходимости скрывалось путем замены
.
В 1982 году Эдди Шамир осуществил эффективную атаку на этот шифр,
и с тех пор эта система не используется на практике.
В 1986 г. Хор предложил другую схему. В этой схеме в качестве век-
торов
ющие условию
берутся не произвольные векторы, а векторы, удовлетворя-
, где m – фиксированное натуральное число
(параметр криптосистемы Хора – Ривеста). Множество таких векторов
обозначим через
:
.
Последовательность
, для которой число
будет уникальным, строится следующим образом.
Выберем элемент α поля
степени m (минимальный многочлен
имеет степень m). Рассмотрим множество
Пусть θ – примитивный элемент циклической группы
гда каждому элементу
, т.ч.
соответствует натуральное число
,
).
(
,
элемента
:
.
(здесь и далее
)
, то-
Покажем, что для любых элементов
обладает свойством уникальности. Действительно, пусть
и
.
сумма S из формулы (3.5)
92

Предположим, что
S xC yC=∗=∗
( ) ( )
( ) ( )
11 1 1
11
ii
ii
ii ii
ii i i
pp p p
xy
xy
xC yC
CC
S
ii i i
ii
= = = =
∑∑
θ =θ =θ ⇒ θ = θ ⇔ α+ − = α+ −
∏∏ ∏ ∏
( ) ( ) ( )
[ ]
11
11
ii
pp
xy
p
ii
fz zi zi z
= =
=∏ +− −∏ +− ∈
x ym= =
1
m −
xC yC
∗=∗
{ }
,n pm=
log
i
C
θ
= α
200p ≈
25m ≈
n
S
σ∈
( )
(
)
{
}
i
C CC
σ
=σ=
C
( )
,
m
GF p
α θ∈
{ }
,θα
( )
21m
pϕ−
( )
12
,,
m
m
tt t= ∈
,nm
xV∈
(
)
1
2
, , ,0,0, ,0 ,1,1, ,1
m
pt m
m
mt
xt t
+−
−
=
, тогда
Иначе говоря, элемент α является корнем многочлена
.
.
В силу условия
этот многочлен имеет степень не выше
, что противоречит условию равенства m степени минимального мно-
гочлена элемента α. Следовательно, наше предположение о том, что
, не верно.
Величины
являются параметрами криптосистемы Хора –
Ривеста. Для того чтобы иметь возможность вычислить дискретные логарифмы
ленькие числа:
Выберем случайным образом перестановку
следовательность
крытым (публичным) ключом; элементы поля
, cоздатели криптосистемы рекомендуют выбирать ма-
и
.
и сформируем по-
. Последовательность
является от-
, последова-
тельность C и перестановка σ держатся в секрете. Отметим, что количе-
ство различных пар
равно
, т. е. количество секретных
ключей велико.
Текстом в шифре являются битовые строки
рые перед зашифрованием расширяются до битовых строк
ющим способом:
93
. (3.8)
, кото-
следу-

Произвольный элемент
(
)
( )
1 10
m
m
p
GF p
−
β= β ββ ∈
( )
[ ]
( )
( )
1
1 10
m
mp
x x x xx
−
−
β =β + +β +β ∈ µ
p
(
)
[ ]
1
1 10
m
mp
g z g z gz g z
−
α−
= ++ + ∈
( )
( )
( )
mod g x xx
α
α µ=
( )
gz
α
[ ]
( )
( )
p
xxµ
[ ]
( )
( )
p
zz
α
µ
( ) (
)
( )
( )
( )
[ ]
( )
( )
mod
p
x z gz z z z
αα α
β →β =β µ ∈ µ
C
1
n
ii
i
S xC
=
=
∑
S
γ=θ
( )
fz
( ) (
)
( )
( ) (
)
mod fz g z z z
α αα
=γ µ +µ
( )
fz
p
( )
( )
1
m
k
k
fz z i
=
= +
∏
p
{ }
12
1 ,1 , ,1
m
I ii i=++ +
2
n
y ∈
( )
1yj=
jI∈
( )
0yj=
отождествляется
с многочленом
систему линейных уравнений над полем
, найдем многочлен
, т.ч.
Многочлен
и
осуществляет изоморфизм полей
:
Зашифрование. Зашифрование осуществляется с помощью публич-
ного ключа
, широтекстом при этом является число S:
, (3.9)
где вектор x связан с вектором текста t соотношением (3.8).
. Решив
.
.
Расшифрование. Процедура расшифрования осуществляется в опре-
деленной последовательности:
1. Вычислим элемент
и многочлен
степени m:
.
2. Разложим многочлен
на множители над полем
:
.
Отметим, что алгоритм нахождения корней многочлена в простых конечных полях имеет полиномиальную сложность. В нашем случае простое
число р мало, и поэтому разложение на множители выполняется особенно
быстро (например, можно использовать полный перебор элементов
).
3. Сформируем множество
согласно условию:
, если
94
, и
и вектор
– в противном случае.

4. Построим вектор x, применив перестановку
σ
( )
xy= σ
( )
i
i
xy
σ
=
2
m
t ∈
11p =
4m =
11
( )
2 34
77 3x x xx
µ=+ ++
(
)
[
]
( )
4 2 34
11
11 7 7 3
GF x x x x+++
11
2715θ=
4
11 1 14640−=
( )
4
11
51034 11GFα= ∈
4
m =
( )
2 34
9 8 10 6z z z zz
α
µ =++ + +
(
)
23
10 6 6 3
gz z z z
α
=++ +
{ }
i
CC=
(
)
log 1
i
Ci
θ
= α+ −
1, ,11i =
{ }
4564,501,11600,6756,14454,2961,13049,12236,7072,1637,13530C
=
11
Sσ∈
( )
3,8,2,6,7,11,4,9,5,1,10σ=
( )
CC= σ
{ }
1637,11600,4564,13049,7072,6756,14454,501,12236,13530,2961C =
( )
0,1,1, 0t =
( )
0,1,1,0,0,0,0,0,0,1,1x =
2 3 10 11
32655SC C C C=++ + =
( )
32655
11
2715
S
γ=θ =
( )
11
59210γ=
( )
( )
23
10 2 10 6 6 3z zz zγ =+ ++ + +
к вектору y:
,
5. Первые m битов вектора x дают искомый вектор текста
Пример.
Выберем параметры шифра:
лем
элемент θ поля
порядка
многочленом степени
многочлен
Вычисляя дискретные логарифмы, определим последовательность
.
) и элемент
,
. В этом случае
,
и неприводимый над по-
. Выберем также примитивный
:
с минимальным
(элемент
.
.
,
Случайным образом выберем перестановку
является открытым ключом.
Пусть требуется зашифровать текст
гласно формуле (3.8), массив
,
. Последовательность
:
.
:
, имеющая вид
,
. Сформируем, со-
. Вычислим по
формуле (3.9) шифротекст
Произведем дешифрование. Вычислив элемент
лучим
. Построим многочлен
95
.
, по-

(
)
(
)
(
)
23
23 23 234
9 10 6 6 3 5 10 6 6 3 mod 9 8 10 6
zz z zz z z z zz
+ ++ + + ++ + ++ + + =
2
24 4
zz
=++
и многочлен
( )
2 34
36fz z z z z=+++
( )
fz
11
( ) ( )( )( )
2 5 10fz z z z z=++ +
{ }
1,3,6,11I =
( )
1,0,1,0, 0,1,0, 0,0, 0,1y =
( ) ( )
0,1,1,0,0,0,0,0,0,1,1xy=σ=
( )
0,1,1, 0t =
ii i
ct= ⊕γ
2
,,
ii i
ctγ∈
ii i
tc= ⊕γ
( )
,
iK
iγ=Γ
mod 4 mod 4 3pq= =
11
1
pq
−−
= = −
. Разложим многочлен
на сомножители над полем
множество
зом,
исходный текст
3.2.4. Потоковый шифр на основе BBS-генератора
Принцип работы потоковых шифров заключается в наложении на би-
ты текста битов псевдослучайной последовательности (гаммы):
. (Здесь ⊕ – операция сложения по модулю 2). При расшиф-
и вектор
псевдослучайных битов
:
. Первые четыре бита вектора x дают
.
. Получаим
. Таким обра-
,
ровании биты шифротекста складываются с битами гаммы:
Биты гаммы производятся с помощью генератора Γ псевдослучайной
последовательности:
«секрета» K, а также он может зависеть от нескольких предыдущих битов
гаммы и других параметров.
Подобно асимметрическим криптосистемам потоковые шифры могут
быть устроены таким образом, что для зашифрования достаточно знать
несекретные параметры генератора, а для расшифрования необходимо
знать некоторый секрет. Примером такого шифра может служить шифр,
основанный на BBS-генераторе (BBS – Blum – Blum – Shub) пcевдослучайных битов.
Пусть p, q – простые числа, т.ч.
. Генератор Γ зависит от некоторого
. Такие числа
.
обладают свойством (утверждение 11, п. 2)
96
. Это озна-

чает, что либо a, либо – a является квадратичным вычетом по модулю p
n pq=
2
mod xa n=
1
aa
pq
= =
1 11 2 2
X xe x e= +
2 11 2 2
X xe x e= −
3 11 2 2
X xe xe=−+
4 11 22
X xe x e
=−−
1
x
2
x
2
1
mod xa p=
2
2
mod xa q=
1
e
2
e
i
X
( )
, 0 12nm m
BBS x =γγ γ
n pq=
0 n
x ∈
n
2
1
mod
ii
xx n
+
=
0,1, , 1im= −
mod 2
ii
xγ=
1, ,im=
( )
2 mod 1
0
mod
i
p
i
xx p
−
=
34pk= +
( )
14p +
(или по модулю q).
при
,
Число
Здесь
,
– числа из формулы (2.15). Для числа Блюма n из четырех решений
называется числом Блюма. Квадратное уравнение
(3.10)
имеет четыре решения:
,
,
,
– решения уравнений:
,
,
квадратного уравнения (3.10) ровно одно является квадратичным вы-
.
четом по модулю p и по модулю q одновременно, т. е. квадратом некото-
рого числа по модулю n.
BBS-генератор
BBS-генератор производит псевдослучайную последовательность би-
тов:
– число Блюма (параметр генератора),
число. Вычисляется последовательность элементов
по следующему алгоритму:
– случайное
:
. Псевдослучайным битом является бит
.
Очевидно, что
. Кроме того, как следует из
,
,
формулы (2.28), извлечение квадратного корня по модулю
возведение в степень
есть
.
97

Получателю шифротекста передается последовательность
( )
12 1 , 0m m nm
c c c t t BBS x= ⊕
m
x
0
x
1
e
2
e
( )
1
1
mod 1
4
m
p
sp
+
= −
( )
2
1
mod 1
4
m
q
sq
+
= −
1
1
mod
s
m
ux p=
2
2
mod
s
m
ux q=
0 11 2 2
mod x ue ue n= +
2
1
mod
xx n=
( )
1 1 ,0m m nm
t t c c BBS x= ⊕
11p =, 19q =
209n pq= =
0
43x =
( ) ( )
209,5
43 1, 0,1,1,1BBS =
5
199
x =
5
x
и конечное число
.
Отметим, что для зашифрования нужно знать лишь параметр n (чис-
ло
вырабатывается каждую передачу заново).
Расшифрование. Процедура расшифрования осуществляется в определенной последовательности:
1. Вычисляем
,
по формуле (2.15) из китайской теоремы об
остатках.
2. Находим числа
,
3. Рассчитываем
,
.
. (Заметим, что данная формула
,
дает один из четырех возможных корней уравнения
, но это
не влияет на результат расшифрования).
4. Получаем последовательность битов
.
В заключение этого раздела заметим, что для расшифрования требуется знание секрета – делителей p, q числа n. Таким образом, представ-
ленный потоковый шифр является асимметрической криптосистемой,
криптостойкость которой базируется на сложности задачи факторизации
целых чисел (как и шифр RSA).
Пример.
Выберем простые числа
. Используя случайное число
вательность
По заданному числу
. При этом получим
восстановим псевдослучайную последова-
и посчитаем число Блюма
, cгенерируем последо-
.
тельность.
98

Изложенный выше алгоритм дает:
1
177e =
2
77e =
1
3s =
2
11s =
1
1u =
2
5u =
0
100x =
0
100x =
0
43
x =
22
001
mod mod 177x nx nx= = =
(
)
( ) ( )
209,5 209,5
43 100 1, 0,1,1,1BBS BBS= =
( )
A
k
sE M=
M
A
k
{ }
,Ms
( )
A
k
DsM=
A
k
,
Полученное здесь число
, но является ему сопряженным:
;
,
;
,
;
не совпадает с «задуманным»
и поэтому
.
, т. е. гамма была получена верно.
3.3. ЭЛЕКТРОННАЯ ПОДПИСЬ
3.3.1. Основные понятия электронной подписи
Протокол электронной подписи не только решает те же задачи, что
и обычная рукописная подпись, но и обладает важными преимуществами.
Основные задачи, решаемые протоколом электронной подписи:
• защита от отказа авторства сообщения отправителем;
• защита от фальсификации – получатель не может подделать или из-
менить сообщение.
• контроль целостности сообщения.
Самая простая схема электронной подписи заключается в зашифрова-
нии с помощью секретного ключа передаваемого сообщения. А именно,
• Алиса подписывает сообщение М, вычисляя
и передает получателю Бобу сообщение
(3.11)
и его подпись s. Здесь
секретный ключ Алисы.
• Боб по полученной паре
верифицирует подпись, проверяя
равенство
–
Здесь
– публичный ключ Алисы. Если равенство (3.12) выполняет-
ся, то подпись принимается, в противном случае – отвергается.
. (3.12)
99

Очевидно, что равенство (3.12) имеет место только в том случае, если
A
k
M
M
( )
m HM=
( )
A
k
sE m
=
(
) (
)
A
k
D s HM=
{ }
,
Ms
{
}
,
AA
kk
{ }
,
BB
kk
M
( )
( )
B
A
k
k
sE D m=
{
}
,Ms
( )
( )
(
)
A
B
k
k
E D s HM
=
{ }
,rs
число s получено с помощью секретного ключа Алисы
муле (3.11) и в процессе пересылки сообщение M не было изменено.
Поскольку при зашифровании длина шифротекста не меньше длины
исходного текста, то в изложенной выше схеме подпись s будет иметь такую же длину, что и сообщение
общение
Проверка подписи:
Отметим, что в приведенной здесь схеме проверить корректность
подписи может любой получатель пары
Алисы считается общеизвестным. Если же сообщение предназначено Бобу
и предполагается, что только Боб может проверить подпись Алисы, то
, а значение его хеш-функции
. Поэтому подписывается не само со-
, т. е.
.
, так как публичный ключ
по фор-
.
применяется усложненная схема.
Пусть
Алиса генерирует подпись сообщения
Боб, получив пару
Как правило, в протоколах электронной подписи требуется, чтобы
подпись зависела также и от даты, т. е. чтобы подпись одного и того же
сообщения менялась при повторном подписании. Для достижения этой
цели в протокол электронной подписи вводят элемент случайности,
вследствие чего подпись, как правило, представляется парой чисел
,
– закрытые и открытые ключи Алисы и Боба.
, вычисляя
, проверяет равенство:
.
.
,
3.3.2. Электронная подпись (ГОСТ Р 34.10-94)
Криптостойкость рассматриваемой здесь подписи [12] базируется
на сложности задачи дискретного логарифмирования в простом конечном поле.
100
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
