Алгоритм цифровой подписи DSA (Digital Signature Algorithm)

Алгоритм цифровой подписи DSA (Digital Signature Algorithm)

Особенностью схемы цифровой подписи ЭльГамаля является генерация случайного числа k. Не допускается использовать одно и то же значение А: для подписи двух разных сообщений, поскольку на основе двух разных подписей, сформированных при одном и том же значении k, имеется возможность вычислить закрытый ключ.

Кроме того, при известном значении к нарушитель сможет вычислить и закрытый ключ. Поэтому при формировании цифровой подписи, как и в случае криптографического закрытия информационных блоков, следует избегать повторений чисел к и уничтожать эти числа сразу же после их применения.

В реально используемых системах большое случайное число k генерируется для каждого сообщения и гарантированно уничтожается после применения. При программной реализации обеспечиваемся такая схема шифровывания и формирования подписи, при которой число к появляется только в регистрах микропроцессора и оперативной памяти, а каждое новое число k записывается в ячейки памяти на место предыдущего.



Алгоритм цифровой подписи DSA (Digital Signature Algorithm) является развитием алгоритмов цифровой подписи ЭльГамаля и К.Шнорра. Схема формирования электронной подписи в соответствии с алгоритмом DSA сводится к следующей цепочки действий.

Отправитель и получатель электронного документа используют при вычислении большие целые простые числа: g и р длиной по / бит каждое (512 < l< 1024), а также q — большое простое число, делитель числа (р — 1). Числа g, р, q являются открытыми и могут быть общими для всех пользователей сети. Отправитель также выбирает случайное целое число х, 1 < х < q. Число х является секретным ключом отправителя для формирования электронной цифровой подписи.

Число у служит открытым ключом для проверки подписи отправителя. Оно передается всем получателям документов.

Для того чтобы подписать документ М, отправитель преобразует его, вычисляя хэш-функцию. Хэш-функция представляет собой одностороннюю криптографическую функцию от сообщения произвольной длины. Значение хэш-функции зависит от каждого бита сообщения и реализуется, как правило, в виде некоторой итерационной процедуры. Значение этой функции h (M) — хэш-код — для сообщения М произвольной длины имеет фиксированный размер m (обычно 128 или 160 бит). Этот код и является эталонной характеристикой сообщения М. В системах электронной цифровой подписи сообщение М считается подписанным, если подписана его хэш-функция. Поэтому к h (M) предъявляются следующие основные требования:



  • вычислительно неосуществимо нахождение сообщения M, хэш-функция которого была бы равна заданному значению А;
  • вычислительно неосуществимо создание двух разных сообщений M1 и М2 с равными значениями хэш-функций, т.е. сообщений, удовлетворяющих условию h (М1) = h (M2).

Если эти требования не выполняются, то потенциальный злоумышленник может подделать сообщение, подписанное хэш-функцией. Трудоемкость атаки, заключающейся в создании ложного сообщения с тем же значением хэш-функции, что и у данного истинного, и не зависит от качества криптографических преобразований. Это обстоятельство определяет длину хэш-кода m не менее 128 бит.

Яндекс.Метрика