Стандарт цифровой подписи DSS
В США принят стандарт на выработку и верификацию цифровой подписи, называемый DSS (Digital Signature Standard). Согласно этому стандарту, электронная цифровая подпись вырабатывается по следующей схеме:
1. Предварительный этап.
Выбираются числа p, q и g, такие, что p – простое число длины l, где l кратно 64 и 512 Ј l Ј 1024; q – простой делитель числа p – 1 длиной 160 бит; g – элемент порядка q в Zp. Эти три числа являются открытыми данными.
Выбирается секретный ключ x, 1 Ј x < q, и вычисляется открытый ключ для проверки подписи y = gx (mod p).
2. Выработка электронной цифровой подписи.
Вычисляется значение хэш-функции от сообщения h(m). При этом используется алгоритм безопасного хэширования SHA (Secure Hashing Algorithm), на который ссылается стандарт. Значение хэш-функции h(m) имеет длину 160 бит.
Далее подписывающий выбирает случайное значение k, 1 Ј k < q, вычисляет k?1
(mod q), и вырабатывает пару значений:
r = gk (mod p)(mod
q);
s = k?1 (h(m) + xr) (mod
q)
Эта пара значений (r, s) и является электронной подписью под сообщением M. После выработки цифровой подписи значение k уничтожается.
3. Верификация электронной цифровой подписи.
Пусть было принято сообщение m1. Тогда уравнение проверки выглядит следующим образом:
В самом деле: