ГОСТ Р 34.10-20016 Основные процессы
В данном разделе определены процессы формирования и проверки цифровой подписи под сообщением пользователя.
Для реализации данных процессов необходимо, чтобы всем пользователям были известны параметры схемы цифровой подписи, удовлетворяющие требованиям 5.2.
Кроме того, каждый пользователь должен иметь ключ подписи d и ключ проверки подписи Q(xq, yq), которые также должны удовлетворять требованиям 5.2.
6.1 Формирование цифровой подписи
Для получения цифровой подписи под сообщением М е V, необходимо выполнить следующие действия (шаги) по алгоритму I. _
Шаг 1 — вычислить хэш-код сообщения M'.h = h(M). (14)
Шаг 2 — вычислить целое число а, двоичным представлением которого является вектор h, и определить
е = а (mod q). (15)
Если е = 0, то определить е = 1.
Шаг 3 — сгенерировать случайное (псевдослучайное) целое число к, удовлетворяющее неравенству
0 < к < q. (16)
Шаг 4 — вычислить точку эллиптической кривой С = кР и определить
з (mod q), (17)
где хс — х-координата точки С. Если г = 0, то вернуться к шагу 3.
Шаг 5 — вычислить значение
s = (rd + %e)(mod q). (18)
Если s = 0, то вернуться к шагу 3. _ _
Шаг 6 —_ вычислить двоичные векторы г и s, соответствующие г и s, и определить цифровую подпись Z = (г || s) как конкатенацию двух двоичных векторов.
Исходными данными этого процесса являются ключ подписи d и подписываемое сообщение М, а выходным результатом — цифровая подпись Z-
Схематическое представление процесса формирования цифровой подписи приведено на рисунке 2.
6