ГОСТ 34.10-2018. Межгосударственный стандарт. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи
6.2 Формирование цифровой подписи
Для получения цифровой подписи под сообщением необходимо выполнить следующие действия (шаги) по алгоритму I:
Шаг 1 - вычислить хэш-код сообщения
. (14)
Шаг 2 - вычислить целое число , двоичным представлением которого является вектор
, и определить
. (15)
Если e = 0, то определить e = 1.
Шаг 3 - сгенерировать случайное (псевдослучайное) целое число k, удовлетворяющее неравенству
0 < k < q. (16)
Шаг 4 - вычислить точку эллиптической кривой C = kP и определить
, (17)
где xc - x-координата точки C.
Если r = 0, то необходимо вернуться к шагу 3.
Шаг 5 - вычислить значение
. (18)
Если s = 0, то необходимо вернуться к шагу 3.
Шаг 6 - вычислить двоичные векторы и
, соответствующие r и s, и определить цифровую подпись
как конкатенацию двух двоичных векторов.
Исходными данными этого процесса являются ключ подписи d и подписываемое сообщение M, а выходным результатом - цифровая подпись .
Схема процесса формирования цифровой подписи приведена на рисунке 2.
Рисунок 2 - Схема процесса формирования цифровой подписи