1 Методи та механізми 2014. 1. 1 Основні послуги при застосуванні, уніфікація та стандартизація криптографічних перетворень
Скачать 1.75 Mb.
|
Алгоритм обчислення цифрового(електронного) передпідпису . 1. Обчислюється випадкове ціле число е згідно з п.6.3 стандарту. 2. Обчислюється точка еліптичної кривої R = e P = (x , y ). 3. Якщо координата , то перейти до кроку 1, інакше і необхідно перейти до кроку 4. 4. Результат виконання алгоритму – цифровий передпідпис Fe і таємний випадковий параметр е. Умови обчислення, зберігання й використання таємного параметра е мають унеможливлювати несанкціонований доступ до нього, його частин, а також до проміжних даних, які використовувалися в процесі обчислення цифрового перед підпису. Припускається попереднє обчислення необхідного числа цифрових перед підписів, але за умови унеможливлення його модифікації чи підміни, а також обов’язкового знищення разом з відповідним таємним параметром е. Порядок обчислення ЦП(ЕП) Обчислення ЕП має виконуватися в такому порядку. Задані та є доступними такі вхідні дані: - загальні параметри цифрового підпису; - особистий ключ цифрового підпису d; - повідомлення Т довжини ; - функція гешування H згідно з п.6.2 стандарту; - довжина цифрового підпису , що вибирається для групи користувачів, виходячи з умов конкретної реалізації алгоритму цифрового підпису з урахуванням умов кроку 3 наведеного нижче алгоритму. Результат виконання алгоритму: повідомлення Т і цифровий підпис D, що дають змогу утворити підписане повідомлення у вигляді . Алгоритм цифрового підписування 1. Перевіряється правильність загальних параметрів цифрового підпису згідно з п. 8.1–8.3 стандарту. Якщо загальні параметри цифрового підпису обчислено неправильно, то обчислення цифрового підпису припиняється. 2. Перевіряється правильність особистого ключа цифрового підпису згідно з п. 10.2 стандарту. Якщо особистий ключ неправильний, то обчислення цифрового підпису припиняють. 3. Перевіряється виконання умов: – число, кратне 16; . Якщо хоча б одна із цих умов не виконується, то обчислення цифрового підпису припиняється. 4. Якщо використовується ідентифікатор геш-функції iH, то перевіряється, чи діє цей ідентифікатор у відповідній групі користувачів. Якщо ні, то обчислення цифрового підпису припиняється. 5. Якщо нормативні документи, що визначають порядок обчислення функції гешування, накладають обмеження на довжину повідомлення , то перевіряють виконання цих обмежень. Якщо ці обмеження не виконані, або повідомлення відсутнє, або , то обчислення цифрового підпису припиняється. 6. Для повідомлення Т обчисляється геш-значення h = H(T). 7. Результат обчислення функції гешування H(T) перетворюють на елемент основного поля h згідно з п. 6.9 стандарту. Якщо h = 0, то приймають h = 6. 8. Якщо вже існує набір цифрових перед підписів, обчислених заздалегідь, то береться будь-який із них разом з відповідним таємним параметром. Інакше цифровий передпідпис обчислюється в спосіб, указаний вище в п. 2.6.6. 9. Обчислюється елемент основного поля . 10.Елемент основного поля y перетворюють на ціле число r згідно з п.6.8 стандарту. 11. Якщо r = 0, то перейти до кроку 8; інакше перейти до кроку 12. 12. Обчислюється значення підпису у вигляді цілого числа . 13.Якщо s = 0, то перейти до кроку 8; інакше перейти до кроку 14. 14. Пару цілих чисел (r,s) перетворюють на цифровий підпис D довжиною згідно з п.6.10 стандарту. Результат виконання алгоритму – підписане повідомлення . Порядок перевіряння ЦП Перевіряння ЦП виконується в такому порядку. Заданими та доступними є такі вхідні дані: - загальні параметри цифрового підпису; - відкритий ключ цифрового підпису підписувача Q; - підписане повідомлення довжиною ; - функція гешування H згідно з п.6.2 стандарту. Результатом виконання алгоритму є повідомлення «підпис дійсний» або «підпис не дійсний». Алгоритм перевіряння цифрового підпису: 1. Якщо використовується ідентифікатор геш-функції iH, то перевіряється, чи діє цей ідентифікатор у відповідній групі користувачів. Якщо ні, то видається повідомлення «підпис не дійсний» і припиняється перевіряння ЕП. 2. Виходячи з iH (або за умовчуванням), визначають . 3. Перевіряється виконання умов, що – число, кратне 16, та . Якщо хоча б одна з цих умов не виконується, то видається повідомлення «підпис не дійсний» і перевірку припиняють. 4. Перевіряють правильність обчислення загальних параметрів цифрового підпису згідно з пп. 8.1–8.3 стандарту. Якщо загальні параметри цифрового підпису обчислено неправильно, то видається повідомлення «підпис не дійсний» і перевірку припиняють. 5. Згідно з п.10.1 стандарту ДСТУ 4145 - 2002 перевіряється правильність відкритого ключа ЦП. Якщо відкритий ключ обчислено неправильно, то видають повідомлення «підпис не дійсний» і перевірку припиняють. 6. Обчислюється . У випадку відсутності тексту, або при видається повідомлення «підпис недійсний» і перевірку припиняють. Якщо нормативні документи, які встановлюють обчислення функції гешування, накладають обмеження на довжину повідомлення , то перевіряють виконання цих умов. Якщо ці умови не виконані, то видають повідомлення «підпис недійсний» і перевірку підпису припиняють. 7. Для повідомлення Т обчислюється геш-значення h = Н(Т). Геш - значення Н(Т) перетворюється на елемент основного поля h згідно з п.6.9 стандарту. Якщо h = 0, то приймається h = 6. 8. Згідно з п.6.11 стандарту цифровий підпис D перетворюється на пару цілих чисел (r,s). Якщо умова 0 < r < n не виконана, то видається повідомлення «підпис не дійсний» і перевірка припиняється. 9. Якщо умова 0 < s < n не виконана, то видається повідомлення «підпис не дійсний» і перевірка припиняється. 10. Обчислюється точка еліптичної кривої . 16. Обчислюється елемент основного поля . 12. Елемент основного поля у перетворюють на ціле число згідно з п.6.8 стандарту. 13. Перевіряється умова ; якщо вона виконується, то видається повідомлення «підпис дійсний», інакше видають повідомлення «підпис не дійсний». Доведемо, що обчислення ЦП з використанням виразу та перевірка згідно п. 10.1 стандарту з використанням (1.170) є правильними. Для цього зробимо такі перетворення. Помножимо ліві та праві частини (6.62) на базову точку P. У результаті маємо: s P = e P + r Q. За умови, що R = e P = (x , y ) маємо, що R = s P – r Q. З урахуванням того, що Q = – d P отримаємо (1.170 ). 1.7.12 Порівняння складності виконання ЕП національних та міжнародних стандартів У таблиці 1.19 наведені результати порівняння складності виконання стандартів ЕП – ДСТУ 4145-2002, ГОСТ 34.10-2001, ЕC GDSA, ECDSA та EC KCDSA[191, 235, 265, 234, 218]. Порівняння зроблено в частині оцінки видів та числа операцій, які мають виконуватись при обчисленні та перевірці вказаних електронних цифрових підписів. Таблиця 1.19 Порівняння числа операцій ЦП для міжнародних і національних стандартів
1.7.13 Оцінка криптографічної стійкості ЕП в групі точок ЕК від атак типу «повне розкриття» Стандартна задача визначення особистого ключа способом розв’язання дискретного логарифма в групі точок еліптичної кривої. Залежно від вхідних даних задачу розв’язання дискретного логарифмічного рівняння можна розглядати з такими формулюваннями [6, 10-12, 20-23,119-120 ]. Відомо порядок базової точки = n, також відомо, що особистий (таємний) ключ обраний випадково з інтервалу , причому відкритий ключ QA пов’язаний з особистим через базову точку, тобто , (1.171) над довільним простим полем Галуа з модулем q. Параметри еліптичної кривої а та b над простим полем Галуа мають задовольняти умові: . (1.172) Це стандартна задача визначення особистого ключа способом розв’язання дискретного логарифма в групі точок еліптичної кривої. Задача розв’язання дискретного логарифмічного рівняння на еліптичній кривій з розв’язком, що лежить у деякому відомому класі може бути вирішена (приблизно) за час [6, 20-22] (1.173) Детальний огляд існуючих методів розв’язання дискретного логарифмічного рівняння в групі точок еліптичних кривих наведений у [6]. Існуючі методи розв’язання дискретного логарифму в групі точок ЕК відносно особливостей виконання й точності результату можна розділити на такі два великих класи: 1) детерміновані (точні) – алгоритми, які використовують стратегію пошуку, що дає точне рішення; 2) імовірнісні – алгоритми, які використовують імовірнісну стратегію пошуку, що впливає на час пошуку рішення. Очевидно найменшу складність мають методи - Полларда та - Полларда[ 6, 20-22]. |