Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книгаэллиптич .docx.doc
Скачиваний:
37
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Пример выполнения контрольного задания 4.Умножение точки на число.

Найти точку 𝑛𝑃

Кривая:

𝑛 = 122

𝑃 = (49, 568)

Расчет

𝑛𝑃 = 122 ⋅ (49, 568) = 2 ⋅ (49, 568) + ⋅ (49, 568) + ⋅ (49, 568) +

+ ⋅ (49, 568) + ⋅ (49, 568) = (173, 132) + (327, 108) +

+ (519, 713) + (425, 663) + (377, 456) = (417, 614)

Примеры генерации и проверки подписи.

Пример 1. Пусть используется эллиптическая кривая и генерирующая точка G = (384, 475) порядка n = 13 (13 – наибольший из делителей порядка кривой N = 728). Предположим, абонент подписывает личным секретным ключом d = 12 сообщение, хеш-свертка которого равна e = 12.

Пусть абонент, подписывающий сообщение, выбрал случайное k = 3. Тогда он вычисляет kG = = = (596, 318) и затем . Используя расширенный алгоритм Евклида, определяем (так как ). Наконец, . Таким образом, – цифровая подпись данного абонента для сообщения.

Пример 2.Пусть теперь необходимо проверить подлинность данной подписи. Открытый ключ абонента, подписавшего сообщение, равен . Проверка подписи начинается с проверки условий , – в данном случае они соблюдаются. Затем последовательно вычисляем , и . Находим точку . Наконец, сравниваем значения r = 11 и – они совпадают, следовательно, подпись действительная.

Пример3.Генерация подписи

Входные данные

Кривая:

Генерирующая точка: 𝐺 = (416, 55)

Порядок генерирующей точки: 𝑛 = 13

Значение хэш - свертки: 𝑒 = 6

Секретный ключ подписи: 𝑑 = 12

Случайное число: 𝑘 = 7

Расчет подписи

𝑘𝐺 = 7 ⋅ (416, 55) = (596, 433)

𝑟 = 𝑥 𝑚𝑜𝑑 𝑚 = 596 𝑚𝑜𝑑13 = 11

𝑧 = 𝑚𝑜𝑑 𝑛 = 2

𝑠 = 𝑧(𝑒 + 𝑑𝑟)𝑚𝑜𝑑 𝑛 = 2 ⋅ (6 + 12 ⋅ 11)𝑚𝑜𝑑13 = 3

Подпись: (𝑟, 𝑠) = (11, 3)

Пример 4.Проверка подписи

Входные данные

Кривая:

Генерирующая точка: 𝐺 =(562, 89)

Порядок генерирующей точки: 𝑛 = 13

Значение хэш – свертки: 𝑒 = 8

Открытый ключ подписи: 𝑄 = (135, 82)

Подпись: (𝑟, 𝑠) = (11, 10)

Проверка

𝑟, 𝑠 удовлетворяют условию 1 ≤ 𝑟 ≤ 𝑛 – 1; 1 ≤ 𝑠 ≤ 𝑛 – 1

𝑣 = 𝑚𝑜𝑑 𝑛 = 4

= 𝑒 ⋅ 𝑣 𝑚𝑜𝑑 𝑛 = 6

= 𝑟 ⋅ 𝑣 𝑚𝑜𝑑 𝑛 = 5

𝑋 = ⋅ 𝐺 + ⋅ 𝑄 = 6 ⋅ (562, 89) + 5 ⋅ (135, 82) = (596, 433)

596 𝑚𝑜𝑑 13 = 11 = 𝑟 ⟶ Подпись подлинная.

* * *

Для дальнейшего изучения описанных алгоритмов рекомендуются источники [1; 3; 6; 16; 19].

Контрольные задания

1. Шифрование. Зашифруйте открытый текст с помощью алфавита, приведенного в табл. 9 (используется кривая и генерирующая точка G = (0, 1)):

№ варианта

Открытый текст

Открытый

ключ B

Значения случайных чисел k

для букв открытого текста

1

передряга

(489, 468)

18, 15, 14, 18, 5, 10, 19, 14, 19

2

латышский

(179,275)

15, 17, 12, 2, 2, 4, 8, 6, 17

3

регрессор

(425, 663)

6, 12, 16, 4, 9, 4, 19, 9, 18

4

симметрия

(179, 275)

11, 17, 18, 19, 16, 6, 12, 8, 2

5

уверовать

(425, 663)

6, 14, 5, 7, 12, 11, 4, 9, 19

6

терновник

(188, 93)

8, 14, 17, 17, 2, 10, 8, 2, 2

7

терпеливо

(725, 195)

17, 5, 4, 17, 13, 2, 17, 14, 19

8

ремонтный

(188, 93)

2, 2, 4, 18, 15, 19, 11, 2, 15

9

ренессанс

(725, 195)

2, 19, 4, 8, 2, 2, 16, 10, 2

10

репарация

(435, 663)

12, 11, 18, 7, 16, 18, 17, 2, 3

11

пролежень

(179, 275)

9, 5, 17, 2, 2, 2, 3, 17, 15

12

прокрутка

(618, 206)

10, 15, 16, 2, 3, 4, 2, 11, 16

13

прокопать

(489, 468)

3, 16, 17, 5, 16, 18, 3, 7, 15

14

отступить

(188, 93)

7, 9, 3, 8, 18, 18, 8, 11, 16

15

отставной

(286, 136)

5, 3, 3, 2, 4, 19, 2, 4, 10

16

отслужить

(16, 416)

2, 8, 4, 2, 6, 10, 3, 3, 18

17

отследить

(188, 93)

19, 2, 13, 5, 19, 5, 7, 8, 5

18

новенький

(425,663)

19, 12, 13, 2, 12, 14, 19, 18, 12

19

нищенский

(489, 468)

2, 2, 7, 11, 19, 4, 2, 15, 6

20

никелевый

(568, 355)

9, 9, 2, 3, 8, 19, 6, 18, 9

21

низменный

(286, 136)

12, 5, 7, 17, 18, 2, 12, 10, 11

22

неэтичный

(489, 468)

14, 18, 11, 11, 6, 6, 17, 2, 5

23

мысленный

(346, 242)

6, 17, 18, 11, 18, 2, 4, 2, 12

24

муштровка

(618, 206)

5, 19, 8, 2, 5, 8, 15, 19, 6

25

латентный

(725, 195)

9, 10, 13, 2, 2, 12, 12, 5, 7

26

купальщик

(188, 93)

17, 17, 9, 12, 17, 7, 15, 7, 16

27

излечимый

(179, 275)

10, 14, 2, 2, 10, 10, 14, 3, 7

28

звездочка

(725, 195)

11, 17, 10, 10, 5, 2, 10, 19, 4

29

аберрация

(56, 419)

16, 2, 17, 19, 8, 4, 3, 2, 8

30

белиберда

(286, 136)

2, 9, 18, 2, 19, 4, 5, 11, 9

2. Расшифрование. Дан шифртекст. С помощью алфавита, приведенного в табл. 9 (используется кривая и генерирующая точка G = (–1, 1)), и зная секретный ключ найдите открытый текст:

№ варианта

Секретный ключ

Шифртекст

1

29

{(440, 539), (128, 672)}; {(489, 468), (282, 341)};

{(489, 468), (45, 720)}; {(72, 254), (227, 299)};

{(188, 93), (251, 506)}; {(72, 254), (319, 518)};

{(745, 210), (129, 659)}; {(286, 136), (515, 684)};

{(568, 355), (395, 414)}

2

25

{(72, 254), (397, 184)}; {(188, 93), (526, 412)};

{(188, 93), (328, 290)}; {(135, 82), (433, 47)};

{(179, 275), (711, 341)}; {(568, 355), (546, 670)};

{(16, 416), (734, 170)}; {(568, 355), (371, 14)};

{(596, 433), (604, 610)}; {(16, 416), (734, 170)}

3

40

{(188, 93), (573, 583)}; {(188, 93), (128, 79)};

{(425, 663), (703, 125)}; {(489, 468), (109, 200)};

{(568, 355), (348, 27)}; {(377, 456), (323, 657)};

{(72, 254), (399, 65)}; {(16, 416), (660, 275)};

{(179, 275), (267, 670)}; {(568, 355), (642, 53)}

4

34

{(618, 206), (426, 662)}; {(72, 254), (67, 667)};

{(286, 136), (739, 574)}; {(16, 416), (143, 602)};

{(618, 206), (313, 203)}; {(618, 206), (114, 607)};

{(618, 206), (438, 711)}; {(188, 93), (573, 168)}

5

41

{(283, 493), (314, 127)}; {(425, 663), (561, 140)};

{(568, 355), (75, 433)}; {(440, 539), (602, 627)};

{(188, 93), (395, 414)}; {(179, 275), (25, 604)};

{(72, 254), (47, 349)}; {(72, 254), (417, 137)};

{(188, 93), (298, 225)}; {(56, 419), (79, 111)}

6

44

{(377, 456), (367, 360)}; {(425, 663), (715, 398)};

{(188, 93), (279, 353)}; {(179, 275), (128, 79)};

{(568, 355), (515, 67)}; {(568, 355), (482, 230)};

{(377, 456), (206, 645)}; {(188, 93), (300, 455)};

{(489, 468), (362, 446)}; {(16, 416), (69, 510)};

{(425, 663), (218, 601)}

7

12

{(16, 416), (128, 672)}; {(56, 419), (59, 386)};

{(425, 663), (106, 24)}; {(568, 355), (145, 608)};

{(188, 93), (279, 398)}; {(425, 663), (99, 295)};

{(179, 275), (269, 187)}; {(188, 93), (395, 337)};

{(188, 93), (311, 68)}; {(135, 82), (556, 484)};

{(56, 419), (106, 727)}; {(16, 416), (307, 693)}

8

45

{(745, 210), (259, 401)}; {(568, 355), (606, 147)};

{(188, 93), (407, 82)}; {(56, 419), (739, 574)};

{(286, 136), (329, 447)}; {(425, 663), (520, 749)};

{(72, 254), (374, 315)}; {(188, 93), (149, 97)};

{(745, 210), (13, 134)}; {(440, 539), (235, 19)};

{(425, 663), (128, 79)}

Продолжение таблицы

№ варианта

Секретный ключ

Шифртекст

9

32

{(188, 93), (623, 166)}; {(725, 195), (513, 414)};

{(346, 242), (461, 4)}; {(489, 468), (739, 574)};

{(725, 195), (663, 476)}; {(745, 210), (724, 522)};

{(725, 195), (663, 476)}; {(618, 206), (438, 40)};

{(286, 136), (546, 670)}; {(179, 275), (73, 72)}

10

18

{(179, 275), (269, 564)}; {(179, 275), (73, 72)};

{(440, 539), (189, 454)}; {(618, 206), (628, 458)};

{(568, 355), (660, 275)}; {(72, 254), (709, 595)};

{(745, 210), (12, 314)}; {(188, 93), (36, 664)};

{(618, 206), (530, 22)}; {(286, 136), (532, 50)};

{(425, 663), (660, 275)}; {(725, 195), (482, 230)}

11

27

{(745, 210), (185, 105)}; {(188, 93), (681, 385)};

{(377, 456), (576, 465)}; {(440, 539), (138, 298)};

{(745, 210), (520, 2)}; {(188, 93), (681, 385)};

{(286, 136), (282, 410)}; {(72, 254), (200, 721)};

{(72, 254), (643, 94)}; {(745, 210), (476, 315)};

{(440, 539), (724, 229)}

12

25

{(425, 663), (651, 191)}; {(188, 93), (177, 562)};

{(286, 136), (603, 562)}; {(440, 539), (588, 707)};

{(72, 254), (269, 187)}; {(56, 419), (49, 568)};

{(16, 416), (426, 662)}; {(425, 663), (557, 28)};

{(188, 93), (149, 97)}; {(179, 275), (711, 341)}

13

48

{(179, 275), (712, 186)}; {(725, 195), (395, 414)};

{(72, 254), (434, 136)}; {(425, 663), (251, 506)};

{(16, 416), (383, 340)}; {(745, 210), (102, 484)};

{(346, 242), (78, 271)}; {(179, 275), (712, 186)};

{(725, 195), (739, 574)}; {(346, 242), (78, 271)}

14

51

{(425, 663), (273, 481)}; {(188, 93), (85, 716)};

{(16, 416), (422, 162)}; {(283, 493), (36, 87)};

{(179, 275), (100, 364)}; {(188, 93), (298, 225)};

{(56, 419), (555, 303)}; {(745, 210), (100, 387)};

{(377, 456), (526, 412)}; {(286, 136), (316, 228)};

{(745, 210), (49, 183)}; {(179, 275), (428, 247)}

15

27

{(618, 206), (99, 456)}; {(425, 663), (31, 136)};

{(377, 456), (688, 741)}; {(425, 663), (636, 747)};

{(16, 416), (298, 526)}; {(188, 93), (356, 175)};

{(489, 468), (147, 390)}; {(346, 242), (546, 670)};

{(72, 254), (114, 144)}; {(377, 456), (25, 147)}

16

48

{(16, 416), (724, 522)}; {(489, 468), (719, 538)};

{(56, 419), (205, 372)}; {(72, 254), (628, 293)};

{(188, 93), (594, 337)}; {(440, 539), (588, 707)};

{(568, 355), (707, 556)}; {(489, 468), (719, 538)};

{(16, 416), (590, 376)}; {(56, 419), (612, 329)};

{(188, 93), (594, 337)}

Продолжение таблицы

№ варианта

Секретный ключ

Шифртекст

17

51

{(56, 419), (739, 177)}; {(16, 416), (282, 410)};

{(425, 663), (221, 138)}; {(188, 93), (329, 447)};

{(286, 136), (235, 19)}; {(725, 195), (496, 31)};

{(56, 419), (236, 712)}; {(440, 539), (514, 662)};

{(377, 456), (323, 94)}; {(179, 275), (203, 324)};

{(568, 355), (197, 606)}

18

16

{(745, 210), (268, 597)}; {(725, 195), (310, 582)};

{(618, 206), (59, 365)}; {(440, 539), (371, 14)};

{(188, 93), (348, 27)}; {(72, 254), (434, 136)};

{(16, 416), (623, 166)}; {(188, 93), (235, 19)};

{(440, 539), (660, 275)}; {(188, 93), (434, 615)};

{(725, 195), (73, 679)}; {(188, 93), (642, 53)}

19

34

{(725, 195), (538, 325)}; {(725, 195), (176, 413)};

{(425, 663), (689, 670)}; {(346, 242), (652, 315)};

{(283, 493), (463, 736)}; {(16, 416), (744, 133)};

{(179, 275), (542, 351)}; {(56, 419), (298, 225)};

{(286, 136), (719, 538)}; {(568, 355), (319, 518)};

{(16, 416), (704, 46)}

20

25

{(725, 195), (329, 304)}; {(440, 539), (59, 386)};

{(618, 206), (543, 357)}; {(188, 93), (520, 749)};

{(489, 468), (585, 211)}; {(179, 275), (707, 556)};

{(596, 433), (419, 38)}; {(377, 456), (643, 94)};

{(188, 93), (385, 749)}; {(725, 195), (150, 355)};

{(725, 195), (197, 606)}

21

58

{(16, 416), (93, 484)}; {(489, 468), (531, 397)};

{(188, 93), (654, 102)}; {(489, 468), (218, 150)};

{(16, 416), (530, 729)}; {(425, 663), (295, 219)};

{(725, 195), (742, 299)}; {(188, 93), (367, 360)};

{(188, 93), (235, 732)}; {(618, 206), (251, 245)};

{(425, 663), (688, 10)}

22

50

{(179, 275), (326, 675)}; {(725, 195), (83, 378)};

{(440, 539), (340, 78)}; {(425, 663), (67, 84)};

{(425, 663), (620, 71)}; {(72, 254), (251, 245)};

{(568, 355), (75, 318)}; {(725, 195), (228, 271)};

{(188, 93), (734, 170)}; {(188, 93), (704, 705)};

{(286, 136), (235, 732)}

23

19

{(618, 206), (294, 595)}; {(188, 93), (13, 617)};

{(188, 93), (206, 106)}; {(188, 93), (67, 667)};

{(56, 419), (350, 184)}; {(440, 539), (275, 456)};

{(745, 210), (301, 17)}; {(346, 242), (588, 707)};

{(188, 93), (256, 121)}; {(425, 663), (209, 82)};

{(16, 416), (687, 660)}

Окончание таблицы

№ варианта

Секретный ключ

Шифртекст

24

54

{(188, 93), (295, 219)}; {(618, 206), (646, 706)};

{(440, 539), (573, 583)}; {(16, 416), (694, 581)};

{(179, 275), (585, 540)}; {(377, 456), (701, 570)};

{(618, 206), (67, 667)}; {(286, 136), (36, 664)};

{(72, 254), (727, 65)}; {(568, 355), (438, 40)}

25

55

{(725, 195), (9, 150)}; {(745, 210), (138, 453)};

{(56, 419), (36, 87)}; {(283, 493), (39, 580)};

{(377, 456), (515, 684)}; {(346, 242), (458, 261)};

{(283, 493), (105, 369)}; {(568, 355), (326, 675)};

{(425, 663), (529, 358)}; {(283, 493), (668, 409)}

26

24

{(16, 416), (150, 355)}; {(188, 93), (394, 20)};

{(725, 195), (13, 134)}; {(377, 456), (209, 669)};

{(56, 419), (514, 662)}; {(56, 419), (243, 87)};

{(618, 206), (719, 538)}; {(618, 206), (159, 13)};

{(618, 206), (326, 76)}; {(188, 93), (557, 28)}

27

43

{(440, 539), (279, 398)}; {(568, 355), (295, 219)};

{(16, 416), (724, 229)}; {(346, 242), (730, 240)};

{(72, 254), (334, 226)}; {(188, 93), (310, 169)};

{(72, 254), (36, 664)}; {(179, 275), (481, 369)};

{(188, 93), (236, 39)}; {(377, 456), (438, 711)};

{(377, 456), (307, 58)}

28

20

{(16, 416), (675, 505)}; {(72, 254), (611, 579)};

{(72, 254), (727, 686)}; {(489, 468), (39, 171)};

{(72, 254), (531, 354)}; {(568, 355), (36, 87)};

{(188, 93), (588, 44)}; {(618, 206), (70, 195)};

{(568, 355), (267, 81)}; {(56, 419), (525, 674)}

29

47

{(725, 195), (651, 560)}; {(425, 663), (147, 361)};

{(286, 136), (109, 551)}; {(440, 539), (90, 730)};

{(618, 206), (668, 342)}; {(745, 210), (109, 200)};

{(425, 663), (147, 361)}; {(72, 254), (228, 480)};

{(346, 242), (530, 22)}

30

50

{(16, 416), (726, 608)}; {(188, 93), (395, 337)};

{(440, 539), (163, 513)}; {(188, 93), (269, 187)};

{(725, 195), (177, 562)}; {(188, 93), (115, 509)};

{(188, 93), (734, 170)}; {(745, 210), (110, 622)};

{(179, 275), (576, 286)}; {(188, 93), (325, 297)}

3. Сложение точек. Даны точки P, Q, R на кривой . Найдите точку 2P + 3Q – R:

№ варианта

Координаты точек

P

Q

R

1

(58, 139)

(67, 667)

(82, 481)

2

(61, 129)

(59, 365)

(105, 369)

3

(62, 372)

(70, 195)

(67, 84)

4

(56, 332)

(69, 241)

(83, 373)

5

(59, 386)

(70, 195)

(72, 254)

6

(72, 497)

(61, 622)

(70, 556)

7

(74, 170)

(53, 277)

(86, 25)

8

(48, 702)

(69, 241)

(98, 338)

9

(59, 386)

(61, 129)

(100, 364)

10

(72, 497)

(53, 474)

(90, 730)

11

(59, 365)

(59, 386)

(105, 382)

12

(61, 622)

(61, 622)

(90, 730)

13

(61, 129)

(69, 510)

(72, 497)

14

(70, 556)

(56, 419)

(86, 726)

15

(67, 84)

(69, 241)

(66, 199)

16

(73, 72)

(56, 332)

(85, 35)

17

(69, 241)

(53, 277)

(106, 24)

18

(74, 581)

(53, 277)

(85, 35)

19

(56, 419)

(69, 510)

(79, 640)

20

(58, 612)

(67, 84)

(83, 373)

21

(62, 379)

(53, 474)

(110, 622)

22

(53, 277)

(66, 552)

(99, 456)

23

(67, 667)

(53, 474)

(105, 382)

24

(69, 241)

(66, 552)

(69, 510)

25

(69, 510)

(53, 277)

(105, 369)

26

(72, 497)

(62, 372)

(69, 241)

27

(61, 129)

(59, 365)

(105, 369)

28

(61, 622)

(59, 365)

(102, 267)

29

(58, 139)

(67, 84)

(85, 35)

30

(69, 510)

(62, 372)

(74, 170)

4. Умножение точки на число. Дана точка P на кривой и натуральное число n. Найдите точку nP.

№ варианта

P

n

1

(62, 372)

128

2

(43, 527)

116

3

(39, 171)

110

4

(43, 527)

107

5

(36, 87)

111

6

(49, 568)

122

7

(39, 580)

109

8

(75, 318)

142

9

(45, 720)

111

10

(78, 480)

147

11

(53, 474)

120

12

(43, 527)

109

13

(49, 568)

124

14

(39, 171)

108

15

(49, 183)

126

16

(58, 139)

121

17

(33, 355)

111

18

(39, 580)

101

19

(44, 366)

113

20

(73, 72)

103

21

(85, 716)

159

22

(66, 199)

103

23

(44, 385)

113

24

(45, 720)

111

25

(39, 171)

107

26

(34, 677)

106

27

(34, 74)

107

28

(34, 677)

105

29

(79, 640)

149

30

(58, 139)

124

5. Генерация подписи. Сгенерируйте ЭЦП для сообщения с известным значением хэш-свертки e, зная секретный ключ подписи d при данном значении выбираемого случайным образом числа k. Используйте кривую и генерирующую точку G = (416, 55) порядка n = 13:

№ варианта

e

d

k

1

9

3

5

2

3

9

6

3

12

9

2

4

3

4

7

5

5

12

6

6

6

12

7

7

8

5

5

8

8

2

5

9

11

5

6

10

3

3

11

11

10

9

2

12

11

2

8

13

8

6

3

14

3

10

6

15

4

6

11

16

6

12

11

17

2

11

5

18

10

5

11

19

11

5

7

20

6

10

7

21

10

9

11

22

6

10

2

23

9

6

6

24

8

12

8

25

3

2

8

26

6

5

6

27

6

7

11

28

7

3

7

29

9

11

2

30

5

12

8

6. Проверка подписи. Проверьте подлинность ЭЦП для сообщения с известным значением хэш-свертки e, зная открытый ключ проверки подписи Q. Используйте кривую и генерирующую точку G = (562, 89) порядка n = 13:

№ варианта

e

Q

(r, s)

1

4

(596, 318)

(11, 4)

2

5

(455, 368)

(3, 7)

3

6

(135, 669)

(5, 7)

4

6

(562, 662)

(5, 7)

5

2

(135, 669)

(7, 6)

6

8

(135, 82)

(11, 10)

7

4

(384, 475)

(11, 9)

8

7

(596, 433)

(11, 1)

9

7

(455, 368)

(11, 11)

10

7

(384, 475)

(5, 5)

11

5

(384, 475)

(11, 1)

12

10

(455, 383)

(11, 10)

13

8

(384, 276)

(3, 1)

14

3

(135, 669)

(11, 10)

15

6

(455, 383)

(3, 1)

16

2

(596, 433)

(3, 10)

17

10

(455, 368)

(11, 6)

18

5

(596, 433)

(11, 12)

19

9

(135, 82)

(7, 7)

20

2

(596, 433)

(11, 4)

21

6

(596, 318)

(7, 5)

22

5

(596, 318)

(7, 4)

23

12

(135, 669)

(5, 11)

24

12

(562, 89)

(3, 2)

25

6

(562, 662)

(7, 10)

26

12

(135, 82)

(7, 8)

27

7

(384, 276)

(5, 2)

28

8

(596, 318)

(11, 6)

29

10

(384, 276)

(7, 6)

30

9

(416, 696)

(11, 11)

Ответы