Стандарт цифровой подписи DSS

 

Согласно определению стандарта DSS, алгоритм DSA предусматривает применение в качестве хэш-функции алгоритм SHA. Заметим, что параметры алгоритма не засекречены.

DSS базируется на применении больших простых чисел одинаковой размерности (от 512 бит) - G и P. Среди его параметров присутствует и простое число q размерностью 160 бит - делитель числа (P - 1). Что же касается секретного ключа Ks, то он представляет собой целое число, случайно выбираемое из диапазона DSS01.gif (1314 bytes)

Процедуры вычисления ЭЦП как (r, s) и ее проверки согласно алгоритму DSS

Последовательность вычислений

Последовательность проверок

Операция Формула/условие Операция Формула/условие Результат
Вычисление хэша сообщения m = h(M)

Проверка условий

0 < r > q
0 < s < q>

Нет - любое = ЭЦП неверна

Выбор случайного числа x

1 < x < q Вычисление промежуточных величин m = h(M)
w = 1/s * mod q
u1 = (m ( w) mod q
u2 = (r ( w) mod q
Н/п
Определение первой части, r DSS02-2.gif (1452 bytes) Определение первой части ЭЦП DSS03-2.gif (1731 bytes) Н/п
Определение второй части, s* s = [(m + r * Ks)/x] * mod q Проверка равенства v = r Нет - ЭЦП неверна
Примечания: Ks - секретный ключ; Kp - открытый ключ. Н/п - неприменимо. * Поскольку все вычисления выполняются в конечном поле, определяемом значением q, то s - целое число и вычисляется как s = (m + r * Ks) * (1/x) mod q, где (1/x) - целое, элемент конечного поля, обратный x, которое вычисляется по обобщенному алгоритму Евклида.

Существует строгое математическое доказательство, что условие v = r выполняется тогда и только тогда, если подпись (r, s) вычислена для сообщения M именно с помощью ключа Ks, на основании которого был определен использованный при проверке ключ Kp. Если же сообщение было изменено в процессе передачи, то значения m и u1 (которое зависит от m) будут неверными, и в итоге значения v и r не совпадут.

По сравнению с алгоритмом RSA у DSA есть ряд достоинств.

ball1.gif (146 bytes)     при любом достижимом уровне криптостойкости, который определяется размерностью чисел P и Q, числа q, Ks, r, s имеют фиксированную размерность (каждое по 160 бит), поэтому и ЭЦП присуща фиксированная размерность - 320 бит. Отсюда следует, что время вычислений для DSA существенно меньше, чем при использовании, например, RSA с тем же уровнем криптостойкости.

ball1.gif (146 bytes)      при проверке ЭЦП большинство операций с числами w, u1, u2, s также выполняются по модулю 160 бит, что, в свою очередь, сокращает объем требуемых ресурсов.    

Недостатком DSA является наличие в нем ресурсоемких операций определения обратных величин по модулю q.

 

01LEFT.JPG (1550 bytes)01RIGHT.JPG (1552 bytes)

АИСС БКБ, www.orioncom.ru, tel (495) 783-5510