Вопрос 7 DSA (DIGITAL SIGNATURE ALGORITHM)
Алгоритм DSA был предложен в США для использования в стандарте цифровой подписи DSS (Digital Signature Standard). Стойкость ЭЦП основана на сложности вычисления дискретного логарифма в циклической группе простого конечного поля, а также на стойкости используемой в США хэш-функции .
Базовые математические объекты, используемые в процессах формирования и проверки ЭЦП алгоритма DSA, очень похожи на параметры отечественного стандарта.
Пусть
— простое число,
,
— простое число,
и
является делителем для
,
— целое число,
, при этом
,
— целое число,
. Пусть
— секретный ключ пользователя для формирования подписи,
,
— открытый ключ пользователя для проверки подписи,
.
Числа
не являются секретными. Конкретный набор их значений может быть общим для группы пользователей. Целое число
, которое генерируется в процедуре подписи сообщения, должно быть секретным и должно быть уничтожено сразу после выработки подписи. Число
снимается с физического датчика случайных чисел или вырабатывается псевдослучайным методом с использованием секретных параметров.
Опишем теперь алгоритмы формирования и проверки цифровой подписи под сообщением пользователя.
Для получения цифровой подписи под сообщением
необходимо выполнить следующие шаги:
Шаг 1 — вычислить хэш-код сообщения
.
Шаг 2 — вычислить целое число
, соответствующее вектору
, и определить
. Если
, то определить
.
Шаг 3 — сгенерировать псевдослучайное целое число
, удовлетворяющее неравенству
.
Шаг 4 — вычислить два значения
и
. Если
, то вернуться к шагу 3.
Шаг 5 — с использованием секретного ключа
отправителя сообщения вычислить значение
. Если
, то вернуться к шагу 3.
Пара чисел
и является цифровой подписью под данным сообщением.
Для проверки цифровой подписи
под сообщением
необходимо выполнить следующие шаги:
Шаг 1 — проверить выполнение неравенств
. Если неравенства выполняются, то перейти к следующему шагу. В противном случае подпись неверна.
Шаг 2 — вычислить хэш-код сообщения
.
Шаг 3 — вычислить целое число
, соответствующее вектору
, и определить
. Если
, то определить
.
Шаг 4 — вычислить число
.
Шаг 5 — вычислить значения
и
.
Шаг 6 — вычислить значение
.
Вопрос 8 ГОСТ Р 34.10 - 94).
Стойкость ЭЦП основана на сложности вычисления дискретного логарифма в циклической группе простого конечного поля, а также на стойкости используемой хэш-функции по ГОСТ Р 34.11.
Опишем базовые математические объекты, используемые в процессах формирования и проверки ЭЦП.
Пусть
— простое число,
либо
,
— простое число,
и
является делителем для
,
— целое число,
, при этом
,
— целое число,
.
Пусть
— секретный ключ пользователя для формирования подписи,
,
— открытый ключ пользователя для проверки подписи,
.
Числа
не являются секретными. Конкретный набор их значений может быть общим для группы пользователей. Целое число
, которое генерируется в процедуре подписи сообщения, должно быть секретным и должно быть уничтожено сразу после выработки подписи. Число
снимается с физического датчика случайных чисел или вырабатывается псевдослучайным методом с использованием секретных параметров.
Опишем теперь алгоритмы формирования и проверки цифровой подписи под сообщением пользователя.
Для получения цифровой подписи под сообщением
необходимо выполнить следующие шаги:
Шаг 1 — вычислить хэш-код сообщения
.
Шаг 2 — вычислить целое число
, соответствующее вектору
, и определить
. Если
, то определить
.
Шаг 3 — сгенерировать псевдослучайное целое число
, удовлетворяющее неравенству
.
Шаг 4 — вычислить два значения
и
. Если
, то вернуться к шагу 3.
Шаг 5 — с использованием секретного ключа
пользователя (отправителя сообщения) вычислить значение
. Если
, то вернуться к шагу 3.
Пара чисел
и является цифровой подписью под данным сообщением.
Для проверки цифровой подписи
под сообщением
необходимо выполнить следующие шаги:
Шаг 1 — проверить выполнение неравенств
. Если неравенства выполняются, то перейти к следующему шагу. В противном случае подпись неверна.
Шаг 2 — вычислить хэш-код сообщения
.
Шаг 3 — вычислить целое число
, соответствующее вектору
, и определить
. Если
, то определить
.
Шаг 4 — вычислить число
.
Шаг 5 — вычислить значения
и
.
Шаг 6 — вычислить значение
.
Шаг 7 — если выполнено равенство
, то подпись принимается в противном случае подпись неверна.
Замечание. Важным моментом является получение чисел
, удовлетворяющих перечисленным требованиям.
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.