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