Перспективні ЕЦП в групі точок еліптичних кривих, страница 5

 Алгоритм EC-DSA був схвалений (та рекомендований) федеральним урядом Сполучених штатів, а уряд Південної Кореї запропонував до затвердження алгоритм EC-KCDSA.

Таблиця 1 - Порівняння описів та операцій

EC-DSA

EC_GDSA

EC-KCDSA

Таємні Параметри безпеки

Вимоги до

Особистий ключ

Обчислення відкритого ключа

Вироблення цифрового підпису

 Розмір цифрового підпису

Перевіряння цифрового підпису

Таблиця 2. Порівняння числа операцій

Процес

Операція

EC-DSA

EC-GDSA

EC-KCDSA

Вироблення цифрового підпису

1

1

2

1

1

0

1

0

0

Множення в

2

2

1

Додавання (або віднімання) в

1

1

1

Скалярне множення точки кривої

1

1

1

Перевіряння цифрового підпису

1

1

2

1

1

0

1

1

0

Множення в

2

2

0

Скалярне множення точки кривої

2

2

2

Додавання точок на кривій

1

1

1

Додаток B

(інформаційний)

Приклади

B.1 Числовий приклад для EC-GDSA

Всі числа в цьому прикладі дані в шістнадцятковій системі числення.

B.1.1 Параметри домену та параметри користувачів

B.1.1.1 Параметри домену.

Скінченне поле  задають простим числом

 D148F03F 28C5981C 59D0A732 DF3C94F0 DD0F4405 4C8320AF

Кожен елемент   подають як ціле число  .

Еліптична крива E над полем  задається у вигляді

де

a = 578EC8B0 4D37D261 C37D4472 4C22CC4D 53854A60 82204CDC  

та

b= 128A1341 26C047E7 D24E3EFA E77B93D1 3C66A4BE 533882117.4.

Тоді порядок еліптичної кривої  обчислюють та розкладають на множники таким чином:

#(E) = D148F03F 28C5981C 59D0A734 20C0337C 203CACD4 0C7DD24B =  

де подають таким чином:

n= 45C2FABF B841DD5E C89AE266 B595667E B5698EF1 597F46117.

Базову точку  , що породжує циклічну підгрупу простого порядку  кривої , подають таким чином:

= 89565C06 A278E3CE 5BC36D7D F76521F9 E8A13D8B 359DB4CC

= 5FB2293B 428E873C 3A7AD24B 65569F80 83ABDCA9 A406EE2E.

У цьому  прикладі  використовують RIPEMD-160 у якості геш-функції , що має довжину вихідних даних 160біт.

B.1.1.2 Параметри користувачів

Ключі для алгоритму EC-GDSA виробляють таким чином:

Об’єкт А обирає випадкове ціле число t , що належить діапазону    {1,..., n -1}. У цьому прикладі ми беремо

t = 268FE05E   70EEFB70   877B1729    061976EF   931F170A   C169C230.

Таким чином, особистий ключ об’єкта А є таким

 = 40F95B49A3B1BF55   311A56DF   D3B5061E   E1DF6439   84D41E35

а його чи її відкритий ключ є точкою  кривої E, де

= 0B1A7C6E F6F2FEC9 718F9CA6 D3D2A1CC 8BD95EBD 35340816    та

 =   6286423F   BB294E91   3006F359 A5BAF501   058ACB5C   7FF793417.

B.1.2 Процес вироблення цифрового підпису

Для того, щоб підписати повідомлення M = 'message digest' в ASCII-кодах, об’єкт A виконує такі кроки:

B.1.2.1 Обчислення геш-значення

1. Використовуючи алгоритм RIPEMD-160, об’єкт A одержує геш-значення

e = h(M) = 5D0689EF     49D2FAE5      72B881B1      23A85FFA     21595F317.4.3.

B.1.2.2 Обчислення на еліптичній кривій (арифметичні операції в базовому полі )

2. Об’єкт А обирає випадкове ціле число , що належить діапазону    {1, ... , n- 1}. Для цього прикладу, об’єкт A обирає

 k =19E489 19EA2B66 D69ADF2B 8110B35B 358DAB4D 185D4D817.4.2.

3. Об’єкт A обчислює точку еліптичної кривої :

*=1DF6E5EA 619D2CE8 B172B6BE AB159B8E 71A25CF0 B2CB5B19