Генерация ЭЦП ( Алгоритм DSA)
При генерации ЭЦП используются параметры трех групп:
- общие параметры;
- секретный ключ;
- открытый ключ.
Общие параметры необходимы для функционирования системы в целом. Секретный ключ используется для формирования ЭЦП, а открытый - для проверки ЭЦП. Общими параметрами системы являются простые целые числа p,q,g, удовлетворяющие следующим условиям:
p: 2^511<p<2^512
q: простой делитель числа (p-1), который удовлетворяет условию 2^159<q<2^160.
g: так называемый генератор, удовлетворяющий равенству g=h^((p-1)/q)mod p >1.
Параметры p,q,g публикуются для всех участников обмена ЭД с ЭЦП. Секретный ключ x случайно выбирается из диапазона [1,q] и держится в секрете.
Открытый ключ вычисляется: y=g^x mod p.
Также при описании данной схемы будут использоваться следующие обозначения и дополнительные параметры: m - входное сообщение пользователя для схемы с ЭЦП; k - случайное число, удовлетворяющее условию 0<k<q, хранящееся в секрете и меняющееся от одной подписи к другой; H - хэш-функция, h - хэш-код сообщения.
Процесс генерации ЭЦП состоит из нескольких этапов:
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 и передаются вместе с ним по каналам связи.