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

Параметры протокола голосования
1024
2n ≈
A
Sn<
A
S
( )
H ⋅
( )
Hx
В настоящем описании протокола используется алгоритм «слепой»
RSA-подписи Д. Чоума. Вместо RSA-подписи также можно выбрать
и другую подпись (в частности, подпись, основанную на эллиптических
кривых, например, ГОСТ 34.10-2018 или ECDSA).
Обозначения:
– параметр криптосистемы RSA; e – открытый
ключ избирательной комиссии (Ц); d – секретный ключ избирательной
комиссии. Легитимный («законный») избиратель Алиса (А) знает открытый ключ e.
Все возможные варианты выбора Алисы кодируются натуральным
числом
. Например, выбор одной из возможных кандидатур можно
представить в виде двоичного вектора, в котором позиция единичного бита соответствует списочному номеру выбранного Алисой кандидата. Этот
битовый вектор является числом
В протоколе используется одна из стандартных хеш-функций
в двоичной системе счисления.
.
Ее 256- или 512-битное значение естественным образом отождествляется
с натуральным числом, т. е.
– целое число.
Согласно данному протоколу избирательная комиссия ведет два реестра, открытых для всеобщего просмотра: реестр зарегистрированных
избирателей и реестр полученных бюллетеней.
Данный протокол предполагает, что бюллетени отправляются по некоторому подмножеству из множества интернет-адресов (узлов приема),
которые ведутся независимыми частными лицами и компаниями (иначе
говоря, всеми желающими). Каждый узел приема ведет свою базу данных
принятых бюллетеней, и по окончании процедуры голосования все базы
объединяются. Каждый владелец узла может самостоятельно проверить,
что все принятые им бюллетени присутствуют в общей базе (в реестре полученных бюллетеней).
111

Криптопротокол голосования
A
S
0,
AA
XY n<<
( )
,
AA
N H IdA Y=
IdA
(
) (
)
, mod
e
A A AA
K HX HN S n=
Ц
A
K →
{ }
,
A
IdA K
mod
d
AA
BK n=
A
BA→
{ }
,
A
IdA K
( )
/ mod
AA A
C B HX n=
{
}
,,
AA A
NSC
{ }
,, Ц
AA A
NSC →
(
)
mod ,
e
A AA
C n HN S=
{ }
,,
AA A
NSC
A
N
,
AA
SC
1. А: Осуществляет свой выбор
рассчитывает свое секретное число
и случайных чисел
(
– идентификатор
,
Алисы) и выражение
.
2. A: Производит вход на портал избирательной комиссии и после
авторизации на портале осуществляет посылку A:
.
3. Ц: Проверяет «легальность» избирателя (имеет ли право Алиса голосовать и не пытается ли проголосовать повторно), после чего заносит
в реестр зарегистрированных избирателей имя Алисы и ее персональный
код:
.
4. Ц: Вычисляет
5. A: Проверяет корректность своей записи
естре зарегистрированных избирателей, вычисляет
код проверки. Затем формирует кортеж чисел
и отсылает его Алисе: Ц:
в открытом ре-
– бюллетень.
.
–
6. А: Голосует, отправляя анонимным образом на некоторое число
узлов приема свой бюллетень: A:
.
7. Ц: Каждый узел приема, который получил бюллетень, проверяет
равенство
.
Если равенство выполняется, то узел приема добавляет в свою базу
(которая впоследствии попадает в открытый реестр полученных бюллете-
ней) строку
кальным номером
бор
– код проверки корректности бюллетеня.
. Последнее означает, что избиратель под уни-
(известным только самому избирателю) сделал вы-
112

Замечание к п. 6. Для обеспечения анонимности пересылки можно
{ }
,,
AA A
NSC
предложить следующее: отправить данные с мобильного устройства без
авторизации на соответствующий адрес через некоторое время или упако-
вать в архивный файл пересылаемый кортеж
по электронной почте на другое устройство (планшет, стационарный
компьютер и т. д.) и уже с этого устройства без авторизации отправлять
данные.
На основе базовых математических конструкций алгебры и теории
чисел предложены эффективные алгоритмы нахождения наибольшего
общего делителя, обратного элемента в кольце и возведения в степень по
модулю. Данные алгоритмы позволяют более удобно производить вычисления для основных асимметрических криптосистем. В частности, широко
известную криптосистему RSA, а также Хора – Ривеста и Эль-Гамаля.
, переслать его
113

Часть II
n
1) A = 123521,
B
= 144679;
B
B
B
B
B
B
B
B
11) A = 293597, B = 765481;
n
mod
k
an
1)
328n =, 206a =
,
37k =
;
315n =, 56a =, 194
k =
327n =
52a =
215k =
948n =, 663a =, 920k =
5)
937n =
,
276
a =
,
905k =
;
413n =, 197a =
170k =
627n =, 5a =, 583k =
449
n =, 448a
=
147k =
ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ
4. АЛГЕБРАИЧЕСКИЕ ОПЕРАЦИИ В КОНЕЧНЫХ КОЛЬЦАХ И ПОЛЯХ
4.1. ВЫЧИСЛЕНИЯ В КОЛЬЦАХ
4.1.1. Вычисление наибольшего общего делителя
Даны два числа A и B. Найти наибольший общий делитель этих чи-
сел (A, B).
2) A = 193159,
3) A = 265927,
4) A = 99553,
5) A = 111649,
6) A = 70691,
7) A = 55723,
8) A = 385691,
= 354509;
= 452261;
= 723301;
= 301981;
= 24307;
= 292681;
= 422509;
12) A = 99647, B= 373577;
13) A = 443929, B = 472621;
14) A = 582341, B = 460763;
15) A = 288217, B = 295091;
16) A = 49187, B = 52823;
17) A = 412963, B = 468791;
18) A = 465043, B = 550727;
9) A = 206267,
10) A = 371989, B = 171901;
4.1.2. Возведение в степень в кольце
Вычислить выражение
2)
3)
,
,
4)
= 35369;
;
;
19) A = 547867, B = 372863;
20) A = 172769, B = 186559.
.
6)
7)
;
8)
114
,
;
;
,
;

9)
797n
=
,
450
a =
,
344
k =
;
10)
695n =, 625a =, 49
k
=
280n =, 229
a =
64k =
243n =, 157
a =
71k =
829n
=
59
a =
122k
=
426n =
293, 249ak= =
15)
642n =, 240a =, 447k
=
;
368n =, 168a =, 231k =
459
n
=, 423a =, 197k =
821n =
470a
=
33k =
662n =, 226a =, 588k =
780n =, 454a =
163k =
1
mod ap
−
1)
733p =
,
541a =
;
139
p
=
116a =
829p =
746a =
347p =
148
a =
599p =
325a =
503p =
388a =
359p =
249a =
661p =
253a =
577p
=
42a =
307p =
139a =
11)
877p =
,
562
a =
;
311p =
55a
=
877p =
853a =
887p =
631a =
257p =
235a =
373p =
296
a =
227p
=
209a =
229
p
=
98a =
461p =
73a =
919p =
806a =
mod
ii
a ma
=
{ }
{
}
12
,,
i
a aa=
{ }
{ }
12
,,
i
m mm=
1)
{ }
{ }
9,52
i
a =
,
{ }
{ }
17,79
i
m =
2)
{ }
{ }
8,3,0
i
a =
,
{ }
{ }
13,23,71
i
m =
;
16)
;
11)
12)
13)
14)
Вычислить обратный элемент
2)
3)
,
,
4.1.3. Вычисление обратного элемента
,
,
,
,
,
в простом конечном поле
;
;
;
;
;
;
17)
18)
19)
20)
12)
13)
;
,
.
,
,
,
,
;
;
;
;
.
4)
5)
6)
7)
8)
9)
10)
Используя китайскую теорему об остатках, найти наименьшее нату-
ральное число a, т.ч.
,
,
,
,
,
,
,
4.1.4. Китайская теорема об остатках
;
;
;
;
;
;
;
14)
15)
16)
17)
18)
19)
20)
, где
,
,
,
,
,
,
,
,
;
;
;
;
;
;
.
:
;
115
;

3)
{
}
{
}
16,23,34
i
a
=
,
{ }
{
}
19,59,71
i
m =
;
{ }
{ }
13,2,46
i
a =
{
}
{ }
41,71,83
i
m =
{
}
{ }
55,2,49
i
a =
{
}
{ }
67,71,83
i
m
=
{
}
{ }
1,24,81
i
a =
{ }
{
}
31,79,89
i
m =
{ }
{ }
9,48
i
a =
{ }
{ }
23,79
i
m =
{ }
{
}
1, 43, 6
i
a
=
{ }
{ }
11,67,71
i
m =
{ }
{ }
23,5,68
i
a =
{ }
{ }
47,73,83
i
m =
{ }
{ }
26,27,74
i
a =
{ }
{
}
41,89,97
i
m
=
{ }
{ }
12,7, 29
i
a
=
{ }
{ }
17,23,67
i
m =
12)
{ }
{ }
16,5,21
i
a =
,
{ }
{ }
29,31,59
i
m =
{ }
{ }
8,63,24
i
a =
{ }
{ }
11,71,79
i
m =
{ }
{ }
11,80
i
a =
{
}
{ }
59,89
i
m =
{ }
{ }
4,10,60
i
a =
{ }
{
}
17,19,61
i
m =
{ }
{ }
30,22,0
i
a =
{ }
{ }
59,67,73
i
m =
{ }
{ }
16,54,79
i
a =
{ }
{ }
29,79,97
i
m =
{ }
{ }
0,79,81
i
a =
{ }
{ }
13,89,97
i
m =
{ }
{ }
8,9,37
i
a
=
{
}
{ }
13,67,97
i
m =
{ }
{ }
10,22, 25
i
a
=
{ }
{
}
23,37,73
i
m =
mod
n
ab p=
2 278 mod 883
n
=
3 423 mod 463
n
=
3 333 mod 617
n
=
2 469 mod 661
n
=
:
p
;
4)
5)
6)
7)
8)
9)
,
;
,
;
,
;
,
;
,
;
,
13)
14)
15)
16)
17)
18)
,
;
,
;
,
;
,
;
,
;
,
;
10)
11)
4.1.5. Задача дискретного логарифмирования
Решить задачу дискретного логарифмирования в поле
, т. е. n.
1)
,
;
,
;
в простом конечном поле
;
19)
20)
3)
;
,
;
,
.
;
2)
;
116
4)
;

5)
2 96 mod 101
n
=
3 272 mod 823
n
=
2 114 mod 653
n
=
2 84 mod 173
n
=
5 446 mod 743
n
=
6 270 mod 271
n
=
13 179 mod 457
n
=
5 12 mod 863
n
=
11 4 mod 839
n
=
7 406 mod 499
n
=
7 753 mod 919
n
=
3 180 mod 607
n
=
11 408 mod 719
n
=
2 31 mod 101
n
=
3 119 mod 809
n
=
3 464 mod 881
n
=
n
a
p
230
277
208
277
522
877
54
313
16
317
461
739
660
839
429
887
348
367
288
877
163
617
182
269
190
223
186
359
684
743
86
757
320
547
188
251
323
653
656
661
275
307
67
107
210
547
291
449
;
13)
;
6)
7)
8)
9)
10)
11)
12)
4.2.
;
;
;
;
;
;
;
РЕШЕНИЕ КВАДРАТНЫХ УРАВНЕНИЙ В КОЛЬЦАХ
4.2.1. Вычисление символов Лежандра
14)
15)
16)
17)
18)
19)
20)
;
;
;
;
;
;
.
Вычислить символы Лежандра
1) a)
c)
2) a)
c)
3) a)
; b)
; d)
; b)
; d)
; b)
;
;
;
;
;
:
4) a)
c)
5) a)
c)
6) a)
; b)
; d)
; b)
; d)
; b)
;
;
;
;
;
c)
; d)
;
117
c)
; d)
;

7) a)
114
251
607
853
150
401
140
503
191
36
313
41
379
194
647
587
881
723
739
617
719
546
929
90
269
460
599
437
647
162
709
353
677
471
631
946
967
9
101
303
631
45
353
495
937
390
677
309
691
170
479
114
773
578
953
317
761
204
419
263
523
266
283
582
761
257
647
255
105
307
304
863
171
489
599
129
281
94
617
30
499
907
627
739
9
997
175
911
58
313
190
761
667
877
65
109
449
823
30
307
238
557
190
709
314
677
48
227
; b)
;
14) a)
; b)
;
c)
8) a)
c)
9) a)
c)
10) a)
313
; d)
; b)
; d)
; b)
; d)
; b)
;
;
;
;
;
;
c)
15) a)
c)
16) a)
c)
17) a)
281
; d)
; b)
; d)
; b)
; d)
; b)
;
;
;
;
643
;
;
673
c)
11) a)
c)
12) a)
c)
13) a)
; d)
; b)
; d)
; b)
; d)
; b)
;
;
;
;
;
;
c)
18) a)
c)
19) a)
c)
20) a)
; d)
; b)
; d)
; b)
; d)
; b)
;
;
;
;
;
;
c)
; d)
;
118
c)
; d)
.

4.2.2. Решение квадратных уравнений
p
2
4 3 2 0 mod 53xx++ =
2
9 41 14 0 mod 47xx++ =
2
2 9 13 0 mod 19xx++ =
2
28 19 13 0 mod 43xx
++ =
2
23 52 72 0 mod 97xx++ =
2
7 4 2 0 mod 17xx++ =
2
44 23 47 0 mod 41
xx++ =
2
44 37 52 0 mod 53
xx++ =
2
12 11 0 mod 13xx+ +=
2
1 20 5 0 mod 43xx++=
2
39 26 45 0 mod 53
xx++ =
2
19 15 2 0 mod 37xx++=
2
1 10 8 0 mod 11
xx++=
2
28 13 26 0 mod 29xx++ =
2
11 92 59 0 mod 97xx++ =
2
18 10 11 0 mod 23xx++ =
2
43 60 57 0 mod 79xx++ =
2
67 78 61 0 mod 83xx++ =
2
6 21 12 0 mod 29xx++ =
2
16 31 19 0 mod 37xx++ =
2
38 91 59 0 mod 97xx++ =
2
27 38 35 0 mod 41xx++ =
2
8 3 0 mod 11xx++ =
2
3 40 5 0 mod 47
xx
++=
2
20 71 22 0 mod 79xx
++ =
2
43 27 35 0 mod 47xx++ =
2
29 20 42 0 mod 43xx++ =
2
32 81 48 0 mod 97xx++ =
2
42 14 8 0 mod 43xx++=
2
19 5 13 0 mod 23
xx++ =
2
19 51 34 0 mod 67xx++ =
2
15 69 7 0 mod 89xx++=
2
14 4 13 0 mod 23xx++ =
2
17 80 62 0 mod 83xx
++ =
2
25 18 0 mod 41xx+ +=
2
34 52 48 0 mod 53
xx++ =
2
16 8 35 0 mod 47xx++ =
2
7 16 10 0 mod 23xx++ =
2
10 70 38 0 mod 89xx
++ =
2
31 42 27 0 mod 43xx++ =
в простом конечном поле
Найти все решения квадратного уравнения над простым конечным
полем
1) a)
b)
2) a)
b)
3) a)
b)
4) a)
b)
5) a)
или указать, что решений нет.
;
11) a)
;
;
12) a)
;
;
13) a)
;
;
14) a)
;
;
15) a)
b)
b)
b)
b)
;
;
;
;
;
;
;
;
;
b)
6) a)
b)
7) a)
b)
8) a)
b)
9) a)
b)
10) a)
;
;
;
;
;
;
;
;
;
;
b)
16) a)
b)
17) a)
b)
18) a)
b)
19) a)
b)
20) a)
;
;
;
;
;
;
;
;
;
;
b)
;
119
b)
.

4.2.3. Решение квадратных уравнений
pq
n
n pq=
2
78 86 47 0 mod 143xx
++ =
2
1158 25 444 0 mod 1537xx++ =
2
403 114 813 0 mod 1633xx
++ =
2
2834 353 550 0 mod 3239xx++ =
2
1264 839 729 0 mod 2449
xx++ =
2
887 1011 987 0 mod 1219xx++=
2
56 2138 253 0 mod 2537xx++=
2
3051 446 4736 0 mod 4819xx++ =
2
513 538 247 0 mod 629xx
++ =
2
4276 5438 4721 0 mod 5963xx++ =
2
267 586 1938 0 mod 2077xx++ =
2
29 536 355 0 mod 589
xx++ =
2
103 252 207 0 mod 2747xx
++ =
2
1254 1016 689 0 mod 1349xx++=
2
816 385 77 0 mod 1037
xx++=
2
702 75 495 0 mod 1159xx
++ =
2
371 382 91 0 mod 473xx++=
2
806 284 945 0 mod 1079xx++ =
2
1228 1650 1004 0 mod 2923xx++ =
2
2869 3174 120 0 mod 3599xx++=
в кольце
Найти все решения квадратного уравнения над кольцом
.
1)
2)
3)
4)
5)
6)
7)
;
;
;
;
;
;
;
, где
8)
9)
10)
11)
12)
13)
14)
15)
16)
17)
;
;
;
;
;
;
;
;
;
;
18)
19)
20)
;
;
.
120
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
