1. Степінь основного поля міститься в таблиці 1.

  2. Основне поле задано примітивним тричленом або примітивним п’ятичленом; перевіряння примітивності многочлена виконують згідно з 6.11; це перевіряння не виконують, якщо при­мітивний многочлен міститься в таблиці 1.

Якщо основне поле задане оптимальним нормальним базисом, то перевіряється виконання такої умови:

  1. Степінь основного поля міститься в таблиці 2.

Якщо умови 1, 2 або 3 виконані, то основне поле обрано правильно.

Означене в цьому підрозділі перевіряння можна не виконувати, якщо використані в конкретній реалізації алгоритму цифрового підписування способи вибору та зберігання основного поля гаран­тують виконання умов 1, 2 або 3.

  1. Перевіряння правильності вибору рівняння еліптичної кривої і порядку базової точки Коефіцієнти (Д, В) рівняння еліптичної кривої повинні задовольняти такі умови:

  1. Коефіцієнт В належить основному полю, тобто є двійковим рядком довжини т.

  2. Коефіцієнт Д дорівнює 0 або 1.

  3. Коефіцієнт В * 0.

Порядок п базової точки еліптичної кривої повинен задовольняти такі умови:

  1. п — просте непарне число; простота перевіряється згідно з 6.12.

  2. л>тах(2160,4(^+1)).

  3. 2т** 1 mod п для к= 1,..., 32 (умова Менезеса-Окамото-Венстона). Ця умова перевіряється згідно з 6.13.

Якщо умови 1 — 6 виконано, то рівняння еліптичної кривої й порядок базової точки обрано правильно.

Означені в цьому підрозділі перевірки можна не виконувати, якщо використані в конкретній реалізації алгоритму цифрового підписування способи отримання й зберігання коефіцієнтів рівняння еліптичної кривої й порядку базової точки цієї кривої гарантують виконання умов 1 — 6.

  1. Перевіряння правильності базової точки

Базова точка Р=(хрр) еліптичної кривої повинна задовольняти такі умови:

  1. Координати базової точки Р= (хР>уР) належать основному полю, тобто є двійковими рядками довжини т.

  2. Р*О.

  3. Точка Р-(хР>уР) лежить на еліптичній кривій, тобто її координати задовольняють рівняння вибраної еліптичної кривої.

  4. пР=О.

Якщо умови 1 — 4 виконано, то базова точка еліптичної кривої є правильна.

Означене в цьому підрозділі перевіряння можна не виконувати, якщо використані в конкретній реалізації алгоритму цифрового підписування способи обчислення й зберігання базової точки га­рантують виконання умов 1 — 4.

  1. ОБЧИСЛЕННЯ КЛЮЧІВ ЦИФРОВОГО ПІДПИСУ

У цьому розділі встановлено порядок обчислення особистого d і відкритого Q ключів цифро­вого підпису.

  1. Обчислення особистого ключа цифрового підпису

Особистий ключ d цифрового підпису обчислюють таким чином.

  1. Обчислюють випадкове ціле число d згідно з 6.3.

  2. Якщо d * 0, то d обирають як особистий ключ цифрового підпису. Інакше переходять до кроку 1.

Умови обчислення й зберігання особистого ключа цифрового підпису повинні унеможливлю­вати несанкціонований доступ до особистого ключа або його частини, а також до проміжних даних, які використовувались у процесі обчислення особистого ключа. Умови зберігання особистого ключа повинні унеможливлювати його модифікацію, знищення або підміну.

  1. Обчислення відкритого ключа цифрового підпису

Відкритий ключ цифрового підпису обчислюють як точку еліптичної кривої виду Q = -dP, де Р — базова точка еліптичної кривої, d особистий ключ цифрового підпису.

Умови зберігання відкритого ключа мають унеможливлювати модифікацію або підміну відкритого ключа цифрового підпису. Припускається зберігання й передача відкритого ключа цифрового підпи­су у стисненому вигляді. Стискання відкритого ключа цифрового підпису виконують згідно з 6.9, відновлення відкритого ключа виконують згідно з 6.10.

  1. ПЕРЕВІРЯННЯ ПРАВИЛЬНОСТІ КЛЮЧІВ ЦИФРОВОГО ПІДПИСУ

Висока криптографічна стійкість цифрового підпису, обчисленого згідно з цим стандартом, гарантується тільки в тому випадку, якщо особистий і відкритий ключі цифрового підпису правильні, тобто обчислені строго відповідно до цього стандарту. Цей розділ встановлює правила перевіряння правильності відкритого й особистого ключів цифрового підпису.

  1. Перевіряння правильності відкритого ключа цифрового підпису

Відкритий ключ Q цифрового підпису повинен задовольняти такі умови:

  1. Координати точки еліптичної кривої, що представляє відкритий ключ цифрового підпису, належать основному полю, тобто є двійковими рядками довжини т.

  2. Q *0.

  3. Відкритий ключ Q = (xo, yQ) лежить на еліптичній кривій, тобто його координати задоволь­няють рівняння вибраної еліптичної кривої.

  4. nQ = О.

Якщо умови 1 — 4 виконані, то відкритий ключ цифрового підпису є правильний.

Означене в цьому підрозділі перевіряння можна не виконувати, якщо використані в конкретній реалізації алгоритму цифрового підписування способи зберігання відкритого ключа цифрового підпису унеможливлюють його підміну, модифікацію або знищення.

  1. Перевіряння правильності особистого ключа

Перевіряння правильності особистого ключа виконує тільки власник особистого ключа таким чином:

  1. Обчислюють точку еліптичної кривої Q' = -dP, де Р — базова точка еліптичної кривої, d особистий ключ цифрового підпису.

  2. Якщо Q'= Q, де Q — відкритий ключ цифрового підпису, то особистий ключ відповідає відкритому ключу цифрового підпису і є правильним.

Означену в цьому підрозділі перевірку можна не виконувати, якщо використані в конкретній реалізації алгоритму цифрового підписування способи зберігання особистого ключа цифрового підпису унеможливлюють його підміну, модифікацію або знищення.

  1. ОБЧИСЛЕННЯ ЦИФРОВОГО ПЕРЕДПІДПИСУ

  2. цьому розділі встановлено алгоритм обчислення цифрового передпідпису.

Вхідні дані алгоритму: загальні параметри цифрового підпису.

Результат виконання алгоритму — цифровий передпідпис Fe, що відповідає таємному ви­падковому параметру е, де е — ціле число, 0<е<п, Fee GF(2m).

Алгоритм обчислення цифрового передпідпису:

  1. Обчислюють випадкове ціле число е згідно з 6.3.

  2. Обчислюють точку еліптичної кривої R = eP= (xR, Ур).

  3. Якщо координата xft=0, то переходять до кроку 1, Інакше приймають Fe= xR і перехо­дять до кроку 4.

  4. Результат виконання алгоритму — цифровий передпідпис Fe та таємний випадковий пара­метр е.

Умови обчислення й зберігання таємного параметра е мають унеможливлювати несанкціоно­ваний доступ до нього, його частин, а також до проміжних даних, які використовувались у процесі обчислення цифрового передпідпису.

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

12 ОБЧИСЛЕННЯ ЦИФРОВОГО ПІДПИСУ

У цьому розділі встановлено алгоритм обчислення цифрового підпису.

Вхідні дані алгоритму:

  • загальні параметри цифрового підпису;

  • особистий ключ цифрового підпису d;

  • повідомлення Т довжини LT> 0;

  • функція гешування Н згідно з 6.2;

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

Результат виконання алгоритму: повідомлення Т і цифровий підпис D, що дають змогу утворити підписане повідомлення (ІН, Т, D).

Алгоритм цифрового підписування:

  1. Перевіряють правильність загальних параметрів цифрового підпису згідно з 8.1 — 8.3. Якщо загальні параметри цифрового підпису обчислено неправильно, то обчислення цифрового підпису припиняють. Цю перевірку не виконують у випадках, передбачених 8.1 — 8.3.

  2. Перевіряють правильність особистого ключа цифрового підпису згідно з 10.2. Якщо осо» бистий ключ неправильний, то обчислення цифрового підпису припиняють. Цю перевірку не виконують у випадках, передбачених 10.2.

  3. Перевіряють виконання умов: LD число, кратне 16, LD^ 2L(n). Якщо хоча б одна з цих умов не виконана, то обчислення цифрового підпису припиняють.

  4. Якщо використовується ідентифікатор геш-функції ІН, то перевіряють, чи цей ідентифі­катор діє у відповідній групі користувачів. Якщо ні, то обчислення цифрового підпису припиняють.

  5. Якщо нормативні документи, що встановлюють обчислення функції гешування, накладають обмеження на довжину повідомлення LT, то перевіряють виконання цих обмежень. Якщо ці обмеження не виконані, або повідомлення відсутнє, або LT< 0, то обчислення цифрового підпису припиняють.

  6. За повідомленням Т обчислюють функцію гешування Н(Т).

  7. Результат обчислення функції гешування Н(Т) перетворюють на елемент основного поля h згідно з 5.9. Якщо h = Q, то приймають /?=1.

  8. Якщо існує набір цифрових передпідписів, обчислених заздалегідь згідно з розділом 11, то беруть будь-який з них разом з відповідним таємним параметром. Інакше обчислюють цифровий передпідпис згідно з розділом 11. Нехай на цьому кроці алгоритму отримано передпідпис Fe та відповідний таємний параметр е.

  9. Обчислюють елемент основного поля y=hFe.

  10. Елемент основного поля у перетворюють на ціле число г згідно з 5.8.

  11. Якщо г=0, то переходять до кроку 8, інакше переходять до кроку 12.

  12. Обчислюють ціле число s = (e + dr) mod n.

  13. Якщо s = 0, то переходять до кроку 8, інакше переходять до кроку 14.

  14. Пару цілих чисел (г, s) перетворюють на цифровий підпис D довжини LD згідно з 5.10.

  15. Результат виконання алгоритму — підписане повідомлення (ІН, T,D).

13 ПЕРЕВІРЯННЯ ЦИФРОВОГО ПІДПИСУ

У цьому розділі встановлено алгоритм перевіряння цифрового підпису.

Вхідні дані алгоритму:

  • загальні параметри цифрового підпису;

  • відкритий ключ цифрового підпису Q;

  • підписане повідомлення (ІН, Т, D) довжини L = L(iH) + LT+ LD',

  • функція гешування Н згідно з 6.2.

Результат виконання алгоритму: повідомлення «підпис дійсний» або повідомлення «підпис недійсний».

Алгоритм перевіряння цифрового підпису:

  1. Якщо використовується ідентифікатор геш-функції ІН, то перевіряють, чи діє цей іденти­фікатор у відповідній групі користувачів. Якщо ні, то видають повідомлення «підпис не­дійсний» і припиняють перевірку цифрового підпису.

  2. Виходячи з ІН (або за промовчанням), визначають LH.

  3. Перевіряють виконання умов: LD число, кратне 16, LD> 2Цп). Якщо хоча б одна з цих умов не виконана, то видають повідомлення «підпис недійсний» і припиняють перевірку цифрового підпису.

  4. Перевіряють правильність обчислення загальних параметрів цифрового підпису згідно з 8.1 — 8.3. Якщо загальні параметри цифрового підпису обчислено неправильно, то видають повідомлення «підпис недійсний» і припиняють перевірку цифрового підпису. Цю перевірку не виконують у випадках, передбачених 8.1 — 8.3.

  5. Перевіряють правильність відкритого ключа цифрового підпису згідно з 10.1. Якщо відкритий ключ обчислено неправильно, то видають повідомлення «підпис недійсний» і припиняють перевірку цифрового підпису. Цю перевірку не виконують у випадках, передбачених 10.1.

  6. Обчислюють LT= L - Ld- У випадку відсутності тексту, або при LT< 0 видають повідомлення «підпис недійсний» і припиняють перевірку цифрового підпису. Якщо нор­мативні документи, які встановлюють обчислення функції гешування, накладають обме­ження на довжину повідомлення LT, то перевіряють виконання цих умов. Якщо ці умови не виконані, то видають повідомлення «підпис недійсний» і припиняють перевірку циф­рового підпису.

  7. За повідомленням Т обчислюють функцію гешування Н(Т).

  8. Геш-код Н(Т) перетворюють на елемент основного поля h згідно з 5.9. Якщо h = 0, то прий­мають h = 1.

  9. Цифровий підпис D перетворюють на пару цілих чисел (г, з) згідно з 5.11.

  10. Якщо умова 0 < г < п не виконана, то видають повідомлення «підпис недійсний» і припи­няють перевірку цифрового підпису.

  11. Якщо умова 0 < s < п не виконана, то видають повідомлення «підпис недійсний» і припи­няють перевірку цифрового підпису.

  12. Обчислюють точку еліптичної кривої R = sP + rQ, R=(xr, yR).

  13. Обчислюють елемент основного поля y = hxR.

  14. Елемент основного поля у перетворюють на ціле число f згідно з 5.8.

  15. Якщо г~г, то видають повідомлення «підпис дійсний», інакше видають повідомлення «підпис недійсний».