Алгоритм цифровой подписи

From CryptoWiki
Jump to: navigation, search

DSA - это алгоритм цифровой подписи с открытым ключом, входит в стандарт DSS (Digital Signature Standard), действующий в США. Предназначен для формирования (вычисления) и проверки цифровой подписи.

Contents

Описание алгоритма цифровой подписи

Пусть p - простое число, q - простой делитель числа p-1, удовлетворяющие условиям:

Dsa1.png

Выбираем Dsa2.png - элемент поля Dsa3.png, имеющий порядок q. Для этого выбираем случайное число Dsa4.png и вычисляем Dsa5.png. Если Dsa2.png=1, выбираем число Dsa6.png заново.

Выберем случайное число a в интервале Dsa7.png и вычислим значение Dsa8.png. Число a является секретным ключом, а набор Dsa9.png - открытым ключом.

Алгоритм вычисления цифровой подписи

Алгоритм вычисления цифровой подписи для сообщения M имеет вид:

1. выбрать случайное целое число r, Dsa10.png;

2. вычислить Dsa11.png;

3. вычислить Dsa12.png по алгоритму SHA-1;

4. проверить условие Dsa13.png: если оно не выполнено, то выбрать новое значение r;

5. вычислить Dsa14.png;

6. подписью для сообщения M считать пару Dsa15.png.

Алгоритм проверки цифровой подписи

Алгоритм проверки цифровой подписи состоит из следующих действий:

1. вычислить Dsa16.png, Dsa17.png, Dsa18.png;

2. вычислить Dsa19.png;

3. проверить равенство Dsa20.png; если оно верно, то подпись принимается; если - нет, то отвергается.

Библиографический указатель

  • Черемушкин А.В. Криптографические протоколы. Основные свойства и уязвимости. - М.: Издательский центр "Академия", 2009. — 272 с.