При генерации ЭЦП используются параметры трех групп:
общие параметры секретный ключ открытый ключ Общие параметры необходимы для функционирования системы в целом. Секретный ключ используется для формирования ЭЦП, а открытый — для проверки ЭЦП. Общими параметрами системы являются простые целые числа p, q, g, удовлетворяющие следующим условиям:
p: 2511.
q: простой делитель числа (p-1), который удовлетворяет условию.
2159.
g: так называемый генератор, удовлетворяющий равенству
g=h^((p-1)/q)mod p >1.
Параметры p, q, g публикуются для всех участников обмена ЭД с ЭЦП.
Секретный ключ x случайно выбирается из диапазона [1,q] и держится в секрете.
Открытый ключ вычисляется: y=g^x mod p.
Также при описании данной схемы будут использоваться следующие обозначения и дополнительные параметры: m — входное сообщение пользователя для схемы с ЭЦП; k — случайное число, удовлетворяющее условию 0
Процесс генерации ЭЦП состоит из нескольких этапов:
1. Вычисляется хэш-код сообщения m h=H (m)
2. Из диапазона [1,q] случайным образом выбирается значение k и вычисляется
r= (g^k mod p) mod q
3. Вычисляется
S= (k^-1(h+xr)) mod q
где k^-1 удовлетворяет условию
(k^-1*k) mod q =1
Значения r, s являются ЭЦП сообщения m и передаются вместе с ним по каналам связи.
Проверка ЭЦП
Пусть принято сообщение m1 и его подпись s1, r1.
Проверка ЭЦП происходит следующим образом:
— проверяется выполнение условий 0
— Вычисляются значения:
w= s1^-1 mod q
u1 = (H (m1)w) mod q
u2 = ((r1/w) mod q
v = ((g^u1y^u2) mod p) mod q
— проверяется равенство v = r1
Если последнее равенство выполняется, то подпись принимается. В данном стандарте специфицируется также процедура генерации основных параметров системы и проводится доказательство того, что если v=r1, то m1=m, r1=r, s1=s.