Ссылаясь, https://web.archive.org/web/20140212143556/http://courses.cs.tamu.edu:80/pooch/665_spring2008/Australian-sec-2006/less19.html
RSA
RSA-шифрование и дешифрование являются коммутативными
следовательно, он может использоваться непосредственно в качестве схемы цифровой подписи
учитывая схему RSA {(e, R), (d, p, q)} * 1009 *
чтобы подписать сообщение М, вычислите:
S = M мощность d (мод R)
чтобы проверить подпись, вычислите:
M = S power e (mod R) = M power e.d (mod R) = M (mod R)
RSA может использоваться как для шифрования, так и для цифровых подписей,
просто изменив порядок, в котором используются показатели:
секретный показатель (d) для создания подписи, открытый показатель (e)
для любого, чтобы проверить подпись. Все остальное идентично.
DSA (алгоритм цифровой подписи)
DSA - это вариант алгоритмов Эль-Гамаля и Шнорра
создает 320-битную подпись, но с 512-1024-битной безопасностью
безопасность опять-таки зависит от сложности вычисления дискретных логарифмов
был довольно широко принят
Генерация ключей DSA
сначала выбираются общие общие значения открытого ключа (p, q, g):
выберите большое простое число p = 2 степени L
где L = от 512 до 1024 битов и кратно 64
выберите q, 160-битный простой множитель p-1
выберите мощность g = h (p-1) / q
для любого h1
затем каждый пользователь выбирает закрытый ключ и вычисляет свой открытый ключ:
выберите х
вычислить y = g power x (mod p)
Генерация ключей DSA связана, но несколько сложнее, чем El Gamal.
Главным образом из-за использования вторичного 160-битного модуля q, используемого для помощи
ускорить вычисления и уменьшить размер получаемой подписи.
Создание и проверка подписи DSA
подписать сообщение M
генерировать случайный ключ подписи k, k
вычислить
r = (мощность g k (mod p)) (mod q)
s = k-1.SHA (M) + x.r (mod q)
отправить подпись (-и) с сообщением
для проверки подписи, вычислите:
w = s-1 (mod q)
u1 = (SHA (M) .w) (mod q)
u2 = r.w (mod q)
v = (g power u1.y power u2 (mod p)) (mod q)
если v = r, то подпись проверяется
Создание подписи снова похоже на Эль-Гамаль с использованием
за сообщение временный ключ подписи k, но выполняющий calc first mod p,
затем мод q, чтобы уменьшить размер результата. Обратите внимание, что использование
хеш-функция SHA здесь явно. Проверка также состоит из
сравнивая два вычисления, опять же, немного сложнее, чем
но связано с Эль Гамаль.
Обратите внимание, что почти все вычисления являются мод q, и
следовательно, намного быстрее.
Но, в отличие от RSA, DSA можно использовать только для цифровых подписей
DSA Security
Наличие подсознательного канала существует во многих схемах (любой, для которых необходимо выбрать случайное число), а не только в DSA. Это подчеркивает необходимость «системной безопасности», а не просто хорошего алгоритма.