Стандарт цифровой подписи DSS
Согласно определению стандарта DSS, алгоритм DSA предусматривает применение в качестве хэш-функции алгоритм SHA. Заметим, что параметры алгоритма не засекречены.
DSS базируется на применении больших простых чисел одинаковой размерности (от 512 бит) - G и P. Среди его параметров присутствует и простое число q размерностью 160 бит - делитель числа (P - 1). Что же касается секретного ключа Ks, то он представляет собой целое число, случайно выбираемое из диапазона
Процедуры вычисления ЭЦП как (r, s) и ее проверки согласно алгоритму DSS
Последовательность вычислений |
Последовательность проверок |
|||
Операция | Формула/условие | Операция | Формула/условие | Результат |
Вычисление хэша сообщения | m = h(M) | Проверка условий |
0 < r > q |
Нет - любое = ЭЦП неверна |
Выбор случайного числа x |
1 < x < q | Вычисление промежуточных величин | m = h(M) w = 1/s * mod q u1 = (m ( w) mod q u2 = (r ( w) mod q |
Н/п |
Определение первой части, r | Определение первой части ЭЦП | Н/п | ||
Определение второй части, 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 есть ряд достоинств.
при любом достижимом уровне криптостойкости, который определяется размерностью чисел P и Q, числа q, Ks, r, s имеют фиксированную размерность (каждое по 160 бит), поэтому и ЭЦП присуща фиксированная размерность - 320 бит. Отсюда следует, что время вычислений для DSA существенно меньше, чем при использовании, например, RSA с тем же уровнем криптостойкости.
при проверке ЭЦП большинство операций с числами w, u1, u2, s также выполняются по модулю 160 бит, что, в свою очередь, сокращает объем требуемых ресурсов.
Недостатком DSA является наличие в нем ресурсоемких операций определения обратных величин по модулю q.
АИСС БКБ, www.orioncom.ru, tel (495) 783-5510