II этап

I этап

ГОСТ Р 34.10.94

ГОСТ Р 34.10.2001

ЭЦП —«реквизит электронного документа, предназначенный для зашиты данного электронного документа от подделки, полученный в результате криптографического преобразования информации с использованием закрытого ключа ЭЦП и позволяющий идентифицировать владельца сертификата ключа подписи, а также установить отсутствие искажения информации в электронном документе» (Закон «Об электронной цифровой подписи» от 10.01.2002 г. N 01-ФЗ).

ГОСТ Р34.10-94 "Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма".

01.06. 2002 года вступил в силу новый стандарт ЭЦП - ГОСТ Р 34.10-2001, разработанный специалистами ФАПСИ (задача дискретного логарифмирования в группе точек эллиптической кривой). Алгоритмы создания и проверки ЭЦП, базирующиеся на математическом аппарате эллиптических кривых, являются более стойкими по сравнению со схемами, базирующимися на сложности решения задач дискретного логарифмирования в простом поле.

выбираются числа p, q и a.

Число р – простое, должно находиться в диапазоне

2^509 < p < 2^512.

Число q – простое, является делителем числа (p-1)

Число a– не обязательно простое, 1 < a < (p-1),

причем a^q mod p = 1.

Числа p,q и a выбираются не часто, используются какое-то время.

генерируются ключи.

x- генерируется как случайное число 0 < x < q – секретный ключ,

y - вычисляется по формуле y = a^x mod p -открытый ключ

III этап:вычисление ЭЦП по ГОСТ Р 34.10-2001– процедура выработки ЭЦП:

  1. На основе алгоритма по ГОСТ Р34.11-94 вычислить h(m) - хэш-функцию от сообщения m. Если h(m) mod q=0, то h(m)=1
  2. Выработать случайное число k , 0 < k < q.
  3. Вычислить r=a^k mod p, r1 = r mod q. Если r1=0, то переход к пункту 2.
  4. С использованием секретного ключа вычисляется значение подписи

s = ( x*r1 + k*h(m)) mod q. Если s = 0, то перейти к пункту 2.

  1. Подписью сообщения m будет являться вектор {r1, s} , каждая из составляющих размером 256 бит.

IV этап: происходит процедура проверки подписи на стороне получателя. Получатель получает сообщение m1 и подпись {r1,s}. У получателя есть ключ y - открытый ключ.

  1. Проверяется, что элементы подписи удовлетворяют условиям 0 < s < q, 0 < r1 < q. Если не удовлетворяет, то подпись не действительна.
  2. На основе алгоритма по ГОСТ Р34.11-94 вычисление хэш-функции h(m1) полученного сообщения. Если h (m1) mod q = 0 то h(m1) = 1.
  3. Вычисление значения v = h(m1)^(q-2) mod q
  4. Вычисление значений z1= (s*v) mod q , z2 = (q-r1)* v mod q.
  5. Вычисление значения u = ((a^z1 *y^z2) mod p) mod q.
  6. Проверить условие r1 = u. Если оно выполняется, то получатель принимает решение о том, что подпись действительна, целостность сообщения не нарушена. Иначе подпись не действительна.

ГОСТ Р 34.10-2001 Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи