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

Параметры схемы цифровой подписи
509 512
22p<<
1020 1024
22p<<
254 256
22q<<
1p −
p
p
p
a ∈
( )
1
mod
pq
ap
−
= θ
xq<
mod
x
ya p=
( )
mod m HM q
=
( )
H ⋅
0m =
:1m =
kq<
(
)
mod mod
k
ra p q
=
0r =
( )
mod s xr km q= +
0s =
{ }
,rs
( )
m HM=
0m =
:1m =
1
mod vm q
−
=
1
mod z sv q=
( )
2
mod z q rv q= −
( )
12
mod mod
zz
u ay p q=
Выбирается простое число
мент
порядка q (если θ – примитивный элемент поля
стве элемента
),
можно взять
– простой делитель числа
Выбирается случайное натуральное число
жить секретным ключом. Число
(в альтернативной версии
, a – эле-
, то в каче-
).
, которое будет слу-
является открытым ключом.
Генерация электронной подписи
1. Вычисляем значение хеш-функции сообщения и приводим по мо-
дулю
256 бит. Если
. Здесь
, то присваиваем
– хеш-функция с длиной значения
.
2. Выбираем случайное натуральное число
3. Вычисляем
. Если
предыдущий шаг.
4. Используя секретный ключ x, вычисляем
, то возвращаемся на шаг 2.
5. Подписью сообщения M является пара чисел
Проверка электронной подписи
1. Вычисляем значение хеш-функции сообщения
, то полагаем
2. Вычисляем
.
.
.
, то возвращаемся на
. Если
.
. Если
3. Вычисляем
4. Подпись действительна, если выполняется равенство u = r, и не
действительна в противном случае.
,
101
,
.

Покажем, что в случае «правильной» подписи выполняется равенство
ur
=
( )
(
)
( )
1
1
12
mod mod mod mod
q rm
zz
sm x
u ay p q a a p q
−
−
−
= = =
( )
( )
(
)
1
1
1
mod mod 1 mod mod
xm
xm
m s rx
qk
a a pqa pqr
−
−
−
−
= = =
=1 mod
q
ap
p
a ∈
q
mod
mod mod
z zq
a pa p=
(
)
ab p
E
255
2p >
ab
Ep≠
P
( )
( )
,
P P ab p
Px y E
∈
qP=
254 256
22q<<
qP O=
0 mod
t
pq≠
1, 2, ,tB=
31B ≥
( )
0JE≠
( )
1728JE≠
( )
3
32
4
1728 mod
4 27
a
JE p
ab
=
+
dq<
( )
ab p
Q dP E= ∈
:
.
Здесь мы использовали равенство
пени элемента
автоматически приводятся по модулю
, в силу которого сте-
.
3.3.3. Электронная подпись (ГОСТ 34.10-2018)
Параметры схемы цифровой подписи
Подпись ГОСТ 34.10-2018 [13] базируется на задаче дискретного логарифмирования в группе точек несингулярной эллиптической кривой
над простым конечным полем. Требуется, чтобы
,
– циклическая подгруппа, порожденная точкой
:
,
,
– большое простое число,
, (
требуется
,
,
,
;
;
Секретным ключом является натуральное число
ключом служит точка
102
.
). Кроме того,
.
, открытым

Генерация электронной подписи
( )
m HM=
( )
H ⋅
mod
em q=
0e =
:1e =
kq<
C kP=
mod
C
rx q=
0r =
( )
mod s rd ke q
= +
0s =
rsξ=
, rs
, rs
ξ
,
rs
( )
m HM=
mod em q=
0e =
:1e =
1
mod ve q
−
=
1
mod z sv q=
2
mod z rv q= −
12
D zP zQ= +
mod
D
Rx q=
Rr=
( ) ( ) ( )
11 11
12
D z P z Q e sP rQ e sP rdP e s rd P e keP
−− −−
=+= −= − = − = =
kP C= =
DC
x x Rr= ⇔=
1. Вычисляем значение хеш-функции сообщения:
– хеш-функция (ГОСТ Р 34.11-2012) с длиной значения 256 бит.
2. Вычисляем
. Если
, то полагаем
3. Выбираем случайное натуральное число
4. Находим точку
и полагаем
возвращаемся на предыдущий шаг.
5. Находим число
. Если
третий шаг.
6. Подписью является двоичный вектор
ры, являющиеся двоичной записью целых чисел
. Здесь
.
.
. Если
, то
, то возвращаемся на
. Здесь
– векто-
.
Проверка электронной подписи
1. Извлекаем из подписи
2. Вычисляем значение хеш-функции сообщения:
3. Вычисляем
4. Вычисляем
5. Вычисляем точку
6. Проверяем равенство
пись принимается, в противном случае – нет.
Покажем, что «правильная» подпись должна быть принята. Вычислим
числа
. Если
и
.
, то полагаем
,
.
.
и полагаем
. Если равенство справедливо, то под-
.
.
точку
. Таким образом,
103
.

3.3.4. Электронная подпись ECDSA
*
p
( )
p
EC
( )
2
n
EC
( )
p
EC
( )
2
n
EC
( )
EC
( )
N EC=
11
xq<<−
Q xP=
QO≠
qQ O=
Параметры схемы цифровой подписи
Протокол электронной подписи ECDSA принят как стандарт (ANSI
в 1999 г., IEEE и NIST в 2000 г.). Алгоритм ECDSA копирует алгоритм
электронной подписи DSA, только в нем вместо мультипликативной
группы
вой над простым конечным полем
рактеристики 2:
дискретного логарифмирования над простым конечным полем и над группой точек эллиптических кривых последняя рассматривается над значительно меньшими полями, что в итоге приводит к возрастанию скорости
вычислений.
В качестве открытых параметров в протоколе ECDSA выбирается эл-
липтическая кривая
простого поля используется группа точек эллиптической кри-
или над конечным полем ха-
. При примерно одинаковой сложности задач
над простым конечным полем или кривая
над полем характеристики 2. В документе FIPS PUB 186-4 (Feder-
al Information Processing Standarts Publication) Digital Signature Standard
(DSS) приводятся рекомендованные стандартные эллиптические кривые
, указан их порядок
большое простое число (делитель числа N).
Далее выбирается секретный ключ x – случайное число из интервала
. Открытым ключом является точка эллиптической кривой
. Каждому участнику, получившему публичный ключ Q, следует
проверить, что точка
вой, а также равенство
и принадлежит заданной эллиптической кри-
.
, базовая точка P и ее порядок q –
104

Генерация электронной подписи
( )
m HM=
1 kq<<
( )
11
,R kP x y=
1
mod qrx=
0
r
=
(
)
1
mod s k m xr q
−
= +
0s =
{ }
,rs
{ }
,
rs
( )
m HM
=
1
1
mod u sm q
−
=
1
2
r mod us q
−
=
( )
1 2 22
',R uP uQ x y=+=
2
' mod rx q=
'rr
=
'rr=
( )
11 1
12
''R u P u Q s mQ s rxQ s m xr Q kQ R r r
−− −
= + = + = + = =⇒=
1. Вычисляем значение хеш-функции сообщения:
2. Выбираем случайное число k из интервала:
3. Вычисляем точку эллиптической кривой
. Если
, то возвращаемся на предыдущий шаг.
4. Вычисляем значение
щаемся на шаг 2.
5. Подписью сообщения M является пара чисел
Проверка электронной подписи
Для того чтобы проверить подпись
выполнить следующие действия:
1) вычислить значение хеш-функции сообщения
.
.
и число
. Если
, то возвра-
.
сообщения M, необходимо
;
2) определить два числа
3) вычислить координаты точки
число
.
и
;
и определить
Подпись принимается, только если имеет место равенство
Покажем, что для действительной подписи должно выполняться ра-
венство
.
3.4. ПРИМЕРЫ КРИПТОПРОТОКОЛОВ
3.4.1. Протокол аутентификации Шнорра
.
.
Протоколы аутентификации решают задачу доказательства подлинности одного из участников (протокол односторонней аутентификации)
или двух взаимодействующих участников (протокол двусторонней
105

аутентификации). В протоколе односторонней аутентификации один
512
2p ≈
140
2
q
≈
( )
|1qp−
p
g
∈
=1 mod
q
gp
sq<
mod
s
bg p
−
=
q
k
∗
∈
mod
k
rg p=
72
2e <
(
)
mod t k se q= +
mod
te
gb p r=
участник P (Prover) доказывает другому V (Verifier) свою подлинность путем доказательства знания некоторого секрета. При этом сам секрет
не раскрывается. В силу этого протоколы аутентификации являются
обобщением протоколов доказательства с нулевым разглашением.
Параметрами протокола Шнорра является простое число
и простое число
, т.ч.
, а также элемент
порядка q:
.
В протоколе аутентификации Шнорра доказывающий P доказывает
проверяющему V, что он знает секретное число
проверяющий знает число
.
. Предполагается, что
Протокол Шнорра:
1. Доказывающий P выбирает случайное число
, вычисляет
и посылает это число проверяющему V.
2. Проверяющий V задает вопрос, выбирая случайное число
и отсылая это число доказывающему.
3. Доказывающий P вычисляет
и отсылает его про-
веряющему V.
4. Проверяющий V принимает ответ, если выполняется равенство
.
3.4.2. Протокол Диффи – Хеллмана
Целью протокола является выработка совместного секретного ключа
двумя участниками. При этом предполагается, что все сообщения проходят по открытым каналам связи и доступны для прослушивания пассивным злоумышленникам. Впервые схема такого протокола была предло-
106

жена в совместной работе Уитфилда Диффи (Whitfield Diffie) и Мартина
p
g ∈
α
11p<α< −
mod ag p
α
=
β
11p<β< −
mod bg p
β
=
mod Kb p
α
=
mod Ka p
β
=
( ) ( )
mod mod
gpgp
αβ
βα
=
mod
ag p
α
=
mod bg p
β
=
Хеллмана (Martin Hellman), а также независимо от них Ральфом Мерклом
(Ralph Merkle) в 1976 году.
Пусть участники Алиса и Боб обмениваются сообщениями, которые
прослушиваются злоумышленником Евой. По условию до начала обмена
сообщениями Алиса и Боб никакими общими секретами не владели. Результатом работы протокола является общий секрет Алисы и Боба, неизвестный Еве.
Согласно протоколу Диффи – Хеллмана обмен сообщениями выглядит следующим образом.
Алиса, Боб: выбирают большое простое число p и примитивный
элемент
Алиса: выбирает случайное число
(Ева тоже знает эти числа).
,
, вычисляет
и отсылает его Бобу (Ева знает число a).
Боб: выбирает случайное число
,
, вычисляет
и отсылает его Алисе (Ева знает число b).
Алиса: вычисляет секретный ключ
Боб: вычисляет секретный ключ
Отметим, что в силу равенства
.
.
секретный
ключ K у Алисы и Боба один и тот же.
Еве, для того чтобы определить этот ключ, необходимо решить задачу
дискретного логарифмирования: из равенства
числам p, g, a вычислить α или из равенства
числам p, g, b вычислить β.
Протокол Диффи – Хеллмана безопасен относительно прослушивания
пассивного злоумышленника (Евы), но совершенно беззащитен относи-
по известным
по известным
107

тельно атак активного злоумышленника (Мэлори), перехватывающего
AM B
( )
,nk
kn≤
( )
[ ]
xxµ∈
1k −∈
( )
,
ii
xy∈×
1, ,ik=
( )
ii
yx= µ
( )
1
k
j
i
i ji
ij
xx
xy
xx
= ≠
−
µ=
∑∏
−
и модифицирующего сообщения. Такая атака называется «человек посередине» (Man in the middle):
.
Ее суть заключается в следующем. Мэлори перехватывает все сообщения и при общении с Алисой выдает себя за Боба, а при общении с Бобом выдает себя за Алису. В результате вырабатывается общий секретный
ключ как у Алисы и Мэлори, так и у Боба и Мэлори.
Чтобы защититься от атаки «человек посередине», перед началом работы протокола Диффи – Хеллмана Алиса и Боб должны провести процедуру взаимной аутентификации. Протоколы аутентификации и протокол
Диффи – Хеллмана являются составными частями защищенных интернетпротоколов SSL и TLS.
3.4.3. Протокол разделения секрета Шамира
Целью протоколов разделения секрета (
-схема) является реше-
ние задачи, в которой секрет (число s) разделяется между участниками
на n долей, и для того чтобы восстановить этот секрет, должны собраться
вместе не менее k участников (
). Предполагается также, что собра-
ние менее k участников не дает никакой информации о секрете.
Протокол Шамира базируется на том факте, что произвольный мно-
гочлен
точек
степени
,
, где
однозначно определяется набором k
:
. (3.13)
Формула (3.13) называется интерполяционной формулой Лагранжа.
108

Протокол разделения секрета Шамира строится следующим образом.
(
)
x
µ
1k −
p
=
( )
0
p
s =µ∈
nk≥
i
x
(
)
ii
yx
= µ
i
S
( )
,
ii
xy
( )
1
0
l
m
ml
k
i
i
m lm
ii
x
sy
xx
= ≠
−
=µ=
∑∏
−
47
p =
( )
[ ]
2
47
17 24xx x xµ =+ +∈
(
)
0 24s
=µ=
{ }
{ }
7
47
2,5,6,17,38,41,45
i
x = ∈
( )
ii
yx= µ
{ }
{ }
15,40,21,38,46,5,41
i
y =
i
S
1
S
2
S
3
S
4
S
5
S
6
S
7
S
(
)
2,15
( )
5,40
( )
6,21
(
)
17,38
(
)
38,46
( )
41, 5
( )
45,41
7
S
6
S
3
S
( ) (
) ( ) ( ) (
) ( )
1 65 41 45 1 28 45 6 41 156 41 6 mod 47 24s = ⋅ ⋅ + ⋅ ⋅− + ⋅− ⋅− =
Выбирается произвольным образом многочлен
простым конечным полем
Далее выбирается
Долей секрета участника
шиеся k произвольных участников могут с помощью интерполяционной
формулы Лагранжа (3.13) восстановить секрет:
Шамир также предложил схему, в которой каждый участник может
проверить, что он действительно владеет частью секрета.
различных точек
является пара
. Секретом является число
и вычисляются
степени
. Очевидно, что собрав-
. (3.14)
над
.
.
Пример протокола Шамира.
Рассмотрим (7,3)-схему разделения секрета. Выберем простое число
и многочлен
секрет. Выберем произвольным образом 7 произвольных точек
и посчитаем 7 значений
. Таким образом каждый i-й участник получа-
ет свою долю секрета
Пусть объединяются участники со своими долями секрета
:
. Здесь
–
:
,
,
и вычисляют секрет по формуле (3.14):
109
.

3.4.4. Протокол голосования
Основные требования
Целью использования протокола голосования является обеспечение
прозрачной и честной процедуры выборов.
Если в качестве злоумышленника выступают органы государственной
власти, владеющие всей конфиденциальной информацией об избирателях,
то никакой протокол не в состоянии обеспечить справедливость и честность выборов (заметим, что в этом случае теряется весь смысл проведения выборов). Если же злоумышленниками являются отдельные лица,
пусть даже из числа членов избирательной комиссии или технического
персонала, то правильно организованная процедура выборов может нивелировать большую часть угроз.
Перечислим требования, которым удовлетворяет предлагаемый криптопротокол голосования.
1. В выборах могут принимать участие только «законные» избирате-
ли и только один раз.
2. Протокол обеспечивает анонимность голосования, т. е. никто,
включая членов избирательной комиссии и технического персонала, не
может определить результат голосования никакого избирателя.
3. Избиратель имеет возможность узнать, как учтен его голос, вслед-
ствие чего никому, включая членов избирательной комиссии и технического персонала, не удастся тайным образом изменить выбор проголосовавшего избирателя.
4. Избиратель, обнаруживший, что его голос подсчитан не верно,
имеет возможность в суде доказать свою правоту.
5. Избирательная комиссия не может отказаться от приема корректно
заполненного бюллетеня.
6. Каждый человек (не только избиратель) может проверить коррект-
ность всех принятых бюллетеней и самостоятельно подсчитать голоса избирателей.
7. Избиратель (возможно, состоящий в сговоре с третьми лицами),
умышленно совершивший подлог, не сможет впоследствии обвинить
в этом избирательную комиссию.
110
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
