Lecture_11_1
.pdfРоссийский стандарт, введенный 01.01.1995 (утратил силу в 2001)
Определяет алгоритм, который относится к семейству алгоритмов ElGamal и аналогичен алгоритму, реализованному в стандарте DSS
Использует хэш-функцию стандарта ГОСТ Р 34.11-94, которая создает хэш-код длиной 256 бит. Это обуславливает требования к выбираемым параметрам (простым числам p и q )
Определяет процедуру получения простых чисел p и q (рассмотрена ранее)
Выбирается простое число , 2509 < < 2512 или 21020 < < 21024 битами.
Выбирается другое простое число , 2254 < < 2256, которое соответствует размеру дайджеста 256 битов, такое , что
− 1 = 0
Выбирается 1, такое, что 1 = 1 путем вычисления 1 =0 −1/ , где 0 первообразный корень (теорема Ферма)
Выбирается целое < и вычисляется 2 = 1
Объявляется открытый ключ (1, 2, , ) Назначается закрытый ключ
Выбирается случайное число , 1 < < ( заново выбирается для каждого нового сообщения)
Вычисляется первая часть подписи
1 = (1 )
Вычисляется дайджест ( ) по ГОСТ Р 34.11-94
Вычисляется вторая часть подписи |
|
2 = × ( ) + × 1 |
|
Проверяем :
0 < 2 < ; 0 < 1 <
Вычисляем
= ( )−1
1 = × 2
2 = − 1 ×
= 1 1 × 2 2
Если V ≡ 1 подпись действительна
Подписи, созданные с использованием алгоритмов ГОСТ Р 34.10-94 или DSS, называются рандомизированными, так как для одного и того же сообщения с использованием одного и того же закрытого ключа каждый раз будут создаваться разные подписи ( 1, 2), поскольку каждый раз будет использоваться новое значение
Подписи, созданные с применением алгоритма RSA, называются детерминированными, так как для одного и того же сообщения с использованием одного и того же закрытого ключа каждый раз будет создаваться одна и та же подпись
Стандарт цифровой подписи (ECDSS) принят ANSI в 1999 и NIST в 2000 г.
Функция 1 создает новую точку для секретного ключа подписывающего лица
Функция 2 создает новую точку из двух общедоступных ключей подписывающего лица
Каждый экстрактор извлекает первые координаты соответствующей точки в модульной арифметике
В процессе подписания две функции 1 и 2 и экстрактор (извлекающее устройство) создают две части подписи
В процессе проверки (верификации) обрабатывают выход одной функции 2 (после прохождения через экстрактор) и сравнивают ее с первой частью подписи
Выбирается эллиптическая кривая , , − простое
Выбирается другое простое число для дальнейших вычислений
Выбирается целое число и назначается закрытым ключом
Выбирается точка на кривой = ( 1, 1)
Вычисляется другая точку на кривой = × Объявляется открытый ключ ( , , , , , )
Выбирается секретное случайное число,
, 1 < < − 1
Выбирается третья точка на кривой,
, = ×
Используем абсциссу , чтобы вычислить первую часть подписи
1 =
Используем дайджест сообщения ( ), закрытый ключ , секретное случайное число и 1, чтобы вычислить вторую часть подписи
2= + × 1 × −1