ГОСТ Р 34.10-2001
Материал из Википедии — свободной энциклопедии
ГОСТ Р 34.10-2001 — российский стандарт, описывающий алгоритмы формирования и проверки электронной цифровой подписи. Введён в действие Постановлением Госстандарта России от 12 сентября 2001 года вместо ГОСТ Р 34.10-94. Полное название «ГОСТ Р 34.10-2001 Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи». Дата введения 2002-07-01
Содержание |
[править] Описание
ГОСТ Р 34.10-2001 основан на эллиптических кривых.
[править] Параметры подписи
[править] Параметры схемы цифровой подписи
- простое число p — модуль эллиптической кривой. p > 2255
- эллиптическая кривая E, задаваемая инвариантом J(E) или коэффициентами a, b из Fp, .
- целое число m — порядок группы точек эллиптической кривой
- простое число q, порядок циклической подгруппы группы точек эллиптической кривой (m = nq, 2254 < q < 2256)
- — точка эллиптической кривой, такая что qP = 0
- h(M) — хэш-функция сообщения M по ГОСТ Р 34.11-94
[править] Секретный ключ подписи
- d — целое число, 0 < d < q
[править] Открытый ключ подписи
- — точка эллиптической кривой, dP = Q.
[править] Алгоритм формирования подписи
Для получения подписи сообщения M, необходимо выполнить следующие действия:
- Вычислить хэш-код сообщения M: h = h(M)
- Вычислить целое число α, двоичным представлением которого является h, и определить . Если e = 0, то определить e = 1
- Сгенерировать случайное (псевдослучайное) целое число k, удовлетворяющее неравенству: 0 < k < q
- Вычислить точку эллиптической кривой C = kP, и определить , где xC — x-координата точки C. Если r = 0, то вернуться к шагу 3
- Вычислить значение: . Если s = 0, то вернуться к шагу 3.
Конкатенация двух двоичных векторов () — подпись.
[править] Алгоритм проверки подписи
- По полученной подписи ξ вычислить целые числа r и s. Если выполнены неравенства 0 < r < q, 0 < s < q, то перейти к следующему шагу. В противном случае подпись неверна.
- Вычислить хэш-код полученного сообщения M: h = h(M).
- Вычислить целое число α, двоичным представлением которого является вектор h, и определить . Если e = 0, то определить e = 1.
- Вычислить .
- Вычислить значения: ,
- Вычислить точку эллиптической кривой C = z1P + z2Q и определить , где xC — x-координата точки C.
Если выполнено равенство R = r, то подпись принимается, в противном случае, подпись неверна.
[править] Алгоритм асимметричного шифрования
Хотя ГОСТ и не описывает схемы асимметричного шифрования на базе ключей ГОСТ Р 34.10-2001, на практике используются такие схемы, построенные на тех же принципах, что и эллиптические кривые Диффи — Хеллмана — аналог алгоритма Диффи — Хеллмана для эллиптических кривых. См. например RFC4357 (глава 6, Key Wrap Algorithms).
[править] Использование в сертификатах открытых ключей
Использование ГОСТ Р 34.10-2001 в сертификатах открытых ключей описано в RFC4491.
[править] Использование в S/MIME (PKCS#7, Cryptographic Message Synatax)
Использование ГОСТ Р 34.10-2001 для защиты электронной почты описано в RFC4490: Using GOST with CMS.