Крок 9. Нехай с = х mod 2Q і припустимо Р = х - (с-1). Відзначаємо, що Р конгруентно 1 за модулем 2Q.
Крок 10. Якщо Р < 2 L-1, то переходимо на крок 13.
Крок 11. Виконуємо сильне тестування на простоту числа Р.
Крок 12. Якщо Р пройшов тест, виконаний на кроці 11, переходимо на крок 15.
Крок 13. Нехай counter = counter + 1 та offset = offset + п + 1.
Крок 14. Якщо counter > 212 = 4096, переходимо на крок 1, інакше (тобто, якщо counter < 4096), переходимо на крок 7.
Крок 15. Збережемо значення SEED і значення counter, щоб використати під час підвтерджуван- ня правильності генерування Р і Q.ДОДАТОК D
(довідковий)
МАТЕМАТИЧНІ ОСНОВИ ЕЛІПТИЧНИХ КРИВИХ
Текст у цьому довідковому додатку взятий безпосередньо з ANSI Х9.62-1998, Public Key Cryptography For the Financial Services Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA). Цей текст включено для ознайомлення користувачів з додатковими математичними основами еліптичних кривих на доповнення до того, що наведено в нормативних розділах цього стандарту. Для глибшого ознайомлення з предметом див. Menezes A. «Elliptic Curve Public Key Cryptosystems».
Національна примітка
Див. також ДСТУ 4145.
Відзначимо, що частина познак у цьому додатку трохи відмінна від тих, що використовуються в цьому стандарті. Наприклад, цей додаток описує арифметику в адитивних познаках, в той час як у розділі А.2 використані мультиплікативні познаки. Як приклад, дх перетворюється в xG, a ab перетворюється в А + В.
D.1 Еліптичні криві та точки
Еліптична крива Е, визначена над Fq, — це множина точок Р = (хр, ур), де хр і ур — елементи Fq, які задовольняють деяке рівняння, разом з точкою на нескінченності, що позначається через О. Fq інколи називають базисним полем.
Якщо q~p — просте непарне число (базисне поле — Fp) та р > 3, то а, b повинні задовольняти 4а3 + 27b2 = 0 (mod р), і кожна точка Р = (хр, ур) на Е (відмінна від точки О) повинна задовольняти в Fp наступне рівняння:
Ур2 + хр3+ахр +Ь.
Якщо q = 2т— степінь 2 (базисне поле — Г2т), то b повинно бути відмінним від нуля в F?m , і кожна точка Р = (хр, ур) на Е (відмінна від точки О) повинна задовольняти таке рівняння в Е,т:
Ур2 + Хр ур = хр3+ ахр2 +Ь.
Будь-яка точка еліптичної кривої Р (яка не є точкою О на нескінченності) подається двома елементами поля, координатами Р по х і у: Р = (хр, уР).
D.1.1 Правила додавання для еліптичних кривих над Fp
Множина точок Е (Fp} перетворює групу з послідовними правилами складання:
О + 0= О
(х, у) + О = О + (х, у) = (х, у) для всіх (х, у) є Е (Fp}
(х, у) + (х, -у) = О для всіх (х, у) є Е (Fp} (тобто від’ємною для точки (х, у) є точка мінус (х, у) = (х, -у))
Правило для додавання двох різних точок, які не є інверсією одна для одної
Нехай (хъ Уі) є Е (Fp} І (х2, у2) є Е (Fp} такі дві точки, що Хї * х2 Тоді (х1э у^ + (х2, у2) = (х3, у3), де:
х3- 13 - X! - х2, Уз = X (X! - х3) - у1 та
х=Уг-У1.
х2-х,
V) Правило для подвоєння точки
Нехай (x1t у-]) є Е (Fp} є такою точкою, що у! * 0. Тоді 2 (x1f y-f) = (х3, у3), де x3 = /?-2x1f у3 = X (х-і - х3)-у! та
Зх2 + а
2Уі
Група Е (Fp} — абелева, а це означає, що Рі + Р2 = ?2 + Рі для всіх точок р! та Р2 в Е (Fp). Кажуть, що крива суперсингулярна, якщо # Е (Fp) = р + 1, інакше вона не суперсингулярна.D.1.2 Правила додавання для еліптичних кривих над F2m
Множина точок Е (Р2т) перетворює групу за такими правилами додавання:
О + О - О
(х, у) + О = О + (х, у) = (х, у) для всіх (х, у) є Е (Р2п,)
(х, у) + (х, х + у) = О для всіх (х, у) є E(F2J (тобто від’ємною для точки (х, у) є точка — (X, у) = (X, X + у))
Правило додавання двох різних точок, які не є інверсією одна для одної Нехай (хъ у-і) є Е (Fzm) та (х2, у2) є Е (Е,т) — дві точки, такі, що Xj * х2. Тоді (х1; ут) + (х2, у2) = (х3, Уз), Де
х3 = А,2 + X + х-і + х2 + а, уз - А (х-і + х3) + х3 + ут та
Z - у1“у2 А — —■— •
Хі~Х2
Правило для подвоєння точки
Нехай (x1f уі) є Е (Р2п)є такою точкою, що х-, * 0
Тоді 2 (x1t у-і) = (х3, уз), де
х3 = А2 + А + а, уз = х-і2 + (А + 1) х3 та
7 - х + Уі А — X 4 Ч »
Хі
Група Е (Р2п ) — абелева, це означає що р! + Р2 = Р2 + Рі для всіх точок Р-і та Р2 в Е (Р2™).
ДОДАТОК Е
(довідковий)
ЧИСЛОВІ ПРИКЛАДИ ЦИФРОВОГО ПІДПИСУ
НА ОСНОВІ СЕРТИФІКАТІВ З ДОПОВНЕННЯМ
США. Алгоритм цифрового підпису (DSA)
У цьому прикладі наведені числа в шістнадцятковій системі числення, отримані згідно з алгоритмом, наведеним у додатку 5 FIB PUB 186.
Параметри DSA
L = 200 (51210)
SEED |
= d5014e4b |
60ef2ba8 |
b6211b40 |
62ba3224 |
e0427dd3 |
||
F |
= 2 |
|
|
|
|
||
Р |
= 8df2a494 |
492276aa |
3625759b |
b06869cb |
eac0d83a fb8d0cf7 |
||
|
cbb8324f |
0d7882e5 |
d0762fc5 |
b7210eaf |
c2e9adac 32ab7aac |
||
|
49693dfb |
f83724c2 |
ec0736ee |
31c80291 |
|
||
Q |
= c773218c |
737ec8ee |
993b4f2d |
ed30f48e |
dace915f |
||
G |
= 626d0278 |
39ea0a13 |
413163a5 |
5b4cb500 |
29965522 956cefcb |
||
|
3bff10f3 |
99ce2c2e |
71cb9de5 |
fa24babf |
58e5b795 21925c9c |
||
|
c42e9f6f |
464b088c |
c572af53 |
e6d78802 |
|
||
Е.1.2 Ключ підпису та ключ перевіряння DSA |
|
|
|||||
X |
= 2070b322 |
3dba372f |
delcOffc |
7b2e3b49 |
8b260614 |
||
Y |
= 19131871 |
d75b1612 |
a819f29d |
78d1b0d7 |
346f7aa7 7bb62a85 |
||
|
9bfd6c56 |
75da9d21 |
2d3a36ef |
1672ef66 |
0b8c7c25 5cc0ec74 |
||
|
858fba33 |
f44c0669 |
9630a76b |
ОЗОееЗЗЗ |
|
Е.1.3 Дані повідомлення DSA |
|||||
К = 358dad57 1462710f |
50e254cf |
1a376b2b |
deaadfbf |
||
/С1 = od516729 8202e49b 4116ac10 M = ASCII form of «abc» = 616263 |
4fc3f415 |
ae52f917 |
|||
h (M) = a9993e36 4706816a E.1.4 Підпис DSA |
ba3e2571 |
7850c26c |
9cd0d89d |
||
R = 8bac1ab6 6410435c |
b7181f95 |
b16ab97c |
92b341c0 |
||
S = 41e2345f 1f56df24 E.1.5 Перевіряння даних DSA |
58f426d1 |
55b4ba2d |
b6dcd8c8 |
||
R = 8bac1ab6 6410435c |
B7181f95 |
b16ab97c |
92b341c0 |
Е.2 Алгоритм підпису Pointcheval/Vaudenay
Значення всіх величин представлено в шістнадцятковій системі числення.
E.2.1 Параметри Pointcheval/Vaudenay |
||||||||
L |
200 (= 51210; |
|
|
|
|
|
||
F |
2 |
|
|
|
|
|
||
p |
8df2a494 |
492276aa |
3d25759b |
b06869cb |
eac0d83a |
fb8d0cf7 |
||
|
cbb8324f |
0d7882e5 |
d0762fc5 |
b7210eaf |
c2e9adac |
32ab7aac |
||
|
49693dfb |
f83724c2 |
ec0736ee |
31C80291 |
|
|
||
Q = |
C773218C |
737ec8ee |
993b4f2d |
ed30f48e |
dace915f |
|
||
G |
626d0278 |
39ea0a13 |
413163a5 |
5b4cb500 |
299d5522 |
956cefcb |
||
|
3bff10f3 |
99ce2c2e |
71cb9de5 |
fa24babf |
58e5b795 |
21925c9c |
||
|
C42e9f6f |
464b088c |
c572af53 |
e6d78802 |
|
|
||
E.2.2 Ключ підпису та ключ перевіряння Pointcheval/Vaudenay |
|
|||||||
X = |
2070b322 |
3dba372f |
delcOffc |
7b2e3b49 |
8b260614 |
|
||
У = |
19131871 |
d75b1612 |
a819f29d |
78d1b0d7 |
346f7aa7 |
7bb62a85 |
||
|
9bfd6c56 |
75da9d21 |
2d3a36ef |
1672ef66 |
0b8c7c25 |
5cc0ec74 |
||
|
858fba33 |
f44c0669 |
9630a76b |
ОЗОееЗЗЗ |
|
|
||
E.2.3 Дані повідомлення Pointcheval /Vaudenay |
|
|
||||||
К = |
358dad57 |
1462710f |
50e254cf |
1a376b2b |
deaadfbf |
|
||
/с1 = |
0d516729 |
8202e49b |
4116ac10 |
4fc3f415 |
ae52f917 |
|
||
м = |
ASCII form of «abc» = 616263 |
|
|
|
||||
Е.2.4 Підпис Pointcheval/Vaudenay |
|
|
|
|
||||
R |
= 8bac1ab6 |
6410435c |
b7181f95 |
Ы6аЬ97с |
92b341c0 |
|
||
RM |
= 8bac1ab6 |
6410435c |
b7181f95 |
Ы6аЬ97с |
92b341c0 |
616263 |
||
h (RM) |
= 2048680b |
36d19516 |
cf78e869 |
beae7bc9 |
ab5dc543 |
|
||
S |
- 5bfdac3d |
665fa38f |
6ed315b3 |
b2f41b86 |
15187ccd |
|
||
E.2.5 Дані перевіряння Pointcheval/Vaudenay |
|
|
|
|||||
П = |
2fc6cb9a |
сЗЬеОеас |
3daf02ee |
fb 96fca3 |
846708a2 |
8dd05730 |
||
|
165fe509 |
42f7f07e |
dfef8e52 |
fcb9369e |
3814aa24 |
607e8047 |
||
|
5d0e61ad |
461d6b16 |
b6cec5ba |
ae58946e |
|
|
||
R = |
8bac1ab6 |
6410435c |
b7181f95 |
M6ab97c |
92b341c0 |
|
DSA, заснований на еліптичних кривих
У наступних прикладах SHA-1 використовуються виключно як геш-функції, тому геш-атрибут — це просто значення SHA-1, перетворене згідно з додатком С у відповідні елементи даних.
Примітка. З погляду вимог безпеки важливо уникати криптографічних слабких кривих (наприклад, потрібно переконатися, що кожна крива не вразлива для атак на спеціальних прикладах обчислювання дискретного логарифма для цієї еліптичної кривої).
Національна примітка
З метою скорочення назв пунктів та підпунктів у розділі Е.З під словом алгоритм маємо на увазі алгоритм DSA, заснований на еліптичних кривих.Приклад 1: Поле F2m, m = 191
E.3.1.1 Параметри алгоритму
Поле F2w подано у вигляді поліномів по модулю нескороченого поліному х191 + х9 + 1.
Крива Е: Y2 + XY = X3 + аХ2 + Ь над Е21Э1, де (в шістнадцятковій системі числення)