Крок 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} перетворює групу з послідовними правилами складання:

  1. О + 0= О

  2. (х, у) + О = О + (х, у) = (х, у) для всіх (х, у) є Е (Fp}

  3. (х, у) + (х, -у) = О для всіх (х, у) є Е (Fp} (тобто від’ємною для точки (х, у) є точка мінус (х, у) = (х, -у))

  4. Правило для додавання двох різних точок, які не є інверсією одна для одної

Нехай (хъ Уі) є Е (Fp} І (х2, у2) є Е (Fp} такі дві точки, що Хї * х2 Тоді (х у^ + (х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

Множина точок Е (Р) перетворює групу за такими правилами додавання:

  1. О + О - О

  2. (х, у) + О = О + (х, у) = (х, у) для всіх (х, у) є Е (Р2п,)

  3. (х, у) + (х, х + у) = О для всіх (х, у) є E(F2J (тобто від’ємною для точки (х, у) є точка — (X, у) = (X, X + у))

  4. Правило додавання двох різних точок, які не є інверсією одна для одної Нехай (хъ у-і) є Е (Fzm) та (х2, у2) є Е (Е,т) — дві точки, такі, що Xj * х2. Тоді (х1; ут) + (х2, у2) = (х3, Уз), Де

х3 = А,2 + X + х-і + х2 + а, уз - А (х-і + х3) + х3 + ут та

Z - у1“у2 А — —■— •

Хі~Х2

  1. Правило для подвоєння точки

Нехай (x1f уі) є Е (Р2п)є такою точкою, що х-, * 0

Тоді 2 (x1t у-і) = (х3, уз), де

х3 = А2 + А + а, уз = х-і2 + (А + 1) х3 та

7 - х + Уі А — X 4 Ч »

Хі

Група Е (Р2п ) — абелева, це означає що р! + Р2 = Р2 + Рі для всіх точок Р-і та Р2 в Е (Р2™).

ДОДАТОК Е
(довідковий)

ЧИСЛОВІ ПРИКЛАДИ ЦИФРОВОГО ПІДПИСУ
НА ОСНОВІ СЕРТИФІКАТІВ З ДОПОВНЕННЯМ

  1. США. Алгоритм цифрового підпису (DSA)

У цьому прикладі наведені числа в шістнадцятковій системі числення, отримані згідно з алгорит­мом, наведеним у додатку 5 FIB PUB 186.

  1. Параметри 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




  1. DSA, заснований на еліптичних кривих

У наступних прикладах SHA-1 використовуються виключно як геш-функції, тому геш-атрибут — це просто значення SHA-1, перетворене згідно з додатком С у відповідні елементи даних.

Примітка. З погляду вимог безпеки важливо уникати криптографічних слабких кривих (наприклад, потрібно пере­конатися, що кожна крива не вразлива для атак на спеціальних прикладах обчислювання дискретного логарифма для цієї еліптичної кривої).

Національна примітка

  1. З метою скорочення назв пунктів та підпунктів у розділі Е.З під словом алгоритм маємо на увазі алгоритм DSA, заснований на еліптичних кривих.Приклад 1: Поле F2m, m = 191

E.3.1.1 Параметри алгоритму

Поле F2w подано у вигляді поліномів по модулю нескороченого поліному х191 + х9 + 1.

Крива Е: Y2 + XY = X3 + аХ2 + Ь над Е21Э1, де (в шістнадцятковій системі числення)