ГОСТ Р 34.10-2001
Материал из Википедии — свободной энциклопедии
ГОСТ Р 34.10-2001 - Российский стандарт, описывающий алгоритмы формирования и проверки электронной цифровой подписи. Принят и введен в действие Постановлением Госстандарта России от 12 сентября 2001 г. Взамен ГОСТ Р 34.10-94. Полное название «ГОСТ Р 34.10-2001 Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи».
Содержание |
[править] Описание
ГОСТ Р 34.10-2001 основан на эллиптических кривых.
[править] Параметры подписи
[править] Параметры схемы цифровой подписи
- простое число p - модуль эллиптической кривой. p > 2255
- эллиптическая кривая E, задаваемая инвариантом J(E) или коэффициентами a,b из Fp
- целое число m – порядок группы точек эллиптической кривой
- простое число q, порядок циклической подгруппы группы точек эллиптической кривой ( m = nq, 2254< q < 2255)
- P(xP, yP) – точка эллиптической кривой, такая что qP = 0
[править] Секретный ключ подписи
- d - целое число, 0 < d < q
[править] Открытый ключ подписи
- Q(xQ, yQ) – точка эллиптической кривой, dP = Q.
[править] Алгоритм формирования подписи
Для получения подписи сообщения М, необходимо выполнить следующие действия:
- Вычислить хэш-код сообщения М: h = h(M)
- Вычислить целое число α, двоичным представлением которого является h, и определить е ≡ α (mod q). Если е = 0, то определить е =1
- Сгенерировать случайное (псевдослучайное) целое число k, удовлетворяющее неравенству: 0 < k < q
- Вычислить точку эллиптической кривой С = kP, и определить r ≡ xc (mod q), где xc – х- координата точки С. Если r = 0, то вернуться к шагу 3
- Вычислить значение: s ≡ (rd+ke) (mod q). Если s = 0, то вернуться к шагу 3.
Конкатенация двух двоичных векторов (r||s) - подпись.
[править] Алгоритм проверки подписи
- По полученной подписи ζ вычислить целые числа r и s. Если выполнены неравенства 0 < r < q, 0 < s < q, то перейти к следующему шагу. В противном случае подпись неверна.
- Вычислить хэш–код полученного сообщения М: h = h(M).
- Вычислить целое число α, двоичным представлением которого является вектор h, и определить е ≡ α (mod q). Если е = 0, то определить е =1.
- Вычислить v ≡ e-1 (mod q).
- Вычислить значения: z1 ≡ sv (mod q), z2 ≡ –rv (mod q)
- Вычислить точку эллиптической кривой С = z1P + z1Q и определить R ≡ xc(mod q), где xC – х-координата точки С.
- Если выполнено равенство R=r, то подпись принимается, в противном случае, подпись неверна.