- •Лекція 11 державний стандарт україни 4145-2002
- •11.1 Операції на еліптичних кривих над полями характеристики p≠3
- •11.2 Параметри та формат цифрового підпису
- •11.3 Алгоритм механізму цифрового підпису дсту 4145-2002
- •11.4 Криптографічний генератор випадкових послідовностей
- •11.5 Питання обчислення параметрів механізму цифрового підпису
11.3 Алгоритм механізму цифрового підпису дсту 4145-2002
Основними процедурами алгоритма цифрового підпису, що встановлений ДСТУ 4145-2002 є обчислення передпідпису, обчислення підпису, та перевірка цифрового підпису.
Обчислення
передпідпису полягає у виборі першої
координати секретної, випадково вибраної
точки з орбіти точки
.
Вхідні дані до цієї процедури: загальні параметри цифрового підпису.
Результат
– рандомізатор
та цифровий передпідпис
,
що відповідає рандомізатору - секретному
випадковому лишку за модулем
,
де![]()
.
Алгоритм обчислення цифрового перепідпису:
- вібір
рандомізатора
на основі криптографічного генератора
ПВЧ;
-
обчислення точки еліптичної кривої
;
- перевірка
значення координати
( якщо
,
то повторити процедуру з вибору
рандомізатора) ;
- інакше
приймають
.
Інше позначення:
- «проекція
».
Після використання цифрового передпідпису його негайно знищують разом з відповідним рандомізатором.
Цифровий підпис обчислюється на основі повідомлення та передпідпису
(допускається підготовка масива передпідписів заздалегіль).
Вхідні дані алгоритму ЦП:
- загальні параметри цифрового підпису;
- особистий
ключ цифрового підпису
;
-
повідомлення
довжини
;
- функція
гешування
,
з довжиною геш-коду
та ідентифікатором
;
- довжина
цифрового підпису
,
що вибирається для групи користувачів.
Результат
виконання алгоритму: цифровий підпис
повідомлення
і
підписане
повідомлення у виді
.
Для обчислення ЦП виконують наступні дії:
- перевіряють коректність загальних параметрів, ключів, та виконання умов і обмежень щодо значень проміжних величин, відповідно до процедур визначених стандартом;
- за
повідомленням
обчислюють геш-код
;
- геш-код
перетворюють на елемент основного поля
за встановленою стандартом процедурою
і, якщо
,
то приймають
;
-
вибірають рандомізатор
;
-
обчислюють цифровий передпідпис
;
-
обчислюють елемент основного поля
(добуток - у
);
(фактично,
).
- за
встановленою стандартом процедурою,
елемент основного поля
перетворюють на ціле число
(якщо
,
то переходять до вибору нового
рандомізатора);
-
обчислюють ціле число
(якщо
,
то переходять до вибору нового
рандомізатора);
- пару
цілих чисел
перетворюють на цифровий підпис
довжини
як описано вище.
Результат
виконання алгоритму
підписане повідомлення
.
Для перевірки цифрового підпису використовуються:
- загальні параметри цифрового підпису;
- відкритий
ключ цифрового підпису
;
- підписане
повідомлення
довжини
;
- функція
гешування
.
В результаті виконання алгоритму приймається рішення «підпис дійсний» або «підпис недійсний».
Для перевірки ЦП виконують наступні дії:
- перевіряють коректність загальних параметрів, ключів, та виконання умов і обмежень щодо значень проміжних величин, відповідно до процедур визначених стандартом;
- якщо
ідентифікатор геш-функції
у групі користувачів не використовується,
то видають «підпис недійсний» і перевірка
закінчується;
-
виходячи з
(або за промовчанням) визначають
;
-
перевіряють умови
,
,
якщо хоч одна з них не виконується,
вважається, що підпис недійсний і
перевірка закінчується;
-
перевіряють наявність тексту повідомлення
та його довжину
,
у випадку відсутності тексту, або при
- «підпис недійсний» і перевірка
закінчується;
- за
повідомленням
обчислюють геш-код
;
- за
встановленою стандартом процедурою,
геш-код
перетворюють на елемент основного поля
(якщо
,
то приймають
);
- з
цифрового підпису
вибірають пару цілих чисел
;
- якщо
умова
,
або умова
не виконана, то видають «підпис недійсний»
і перевірка закінчується;
-
обчислюють точку еліптичної кривої
,
;
-
обчислюють елемент основного поля
(добуток - у
);
- за
встановленою стандартом процедурою,
елемент основного поля
перетворюють на ціле число
;
- якщо
,
то видають повідомлення видають «підпис
дійсний», інакше, видають повідомлення
видають «підпис недійсний» .
Коректність
цифрового підпису випливає з порявняння
і співвідношення
.
Дійсно,
.
Таким
чином, при істинному підписі, координата
точки
дорівнює
.
Тому
і після перетворення елемента
на ціле число
,
має виконуватися рівність
,
що й доводить коректність алгоритму
перевірки ЦП.
Криптографічна
стійкість цифрового підпису основана
на складності задачі дискретного
логарифмування
в циклічній підгрупі групи точок
еліптичної кривої.
