Стандарт цифровой подписи DSS
Електронні цифрові підписи DSS, Шнорра, Ніберга-Руппеля
Схема подписи Эль-Гамаля
Подписывание сообщения Алисой.
Предположим, что Алиса хочет послать Бобу подписанное сообщение. Сообщение снова представлено числом из .
Алиса выбирает случайное целое , взаимно простое с , и вычисляет . Затем Алиса использует свой секретный показатель для вычисления числа , удовлетворяющего сравнению
Чтобы эффективно найти , можно использовать расширенную версию алгоритма Эвклида.
Алиса посылает Бобу тройку , где пара служит подписью к сообщению .
Проверка подписи Бобом.
Боб получает подпись вместе с сообщением и проверяет эту подпись, убеждаясь, что
Это сравнение должно выполняться, так как в силу соотношения (8.2)
Пример 8.5 (часть 3)
Продолжаем пример 8.5 с публичными параметрами , и . Число известно только Алисе. Предположим, что Алиса хочет подписать для Боба сообщение . Пусть случайное число, выбранное Алисой (оно простое). Алиса вычисляет
p=197; a=2; mA=56;
r=97; u=123; S=.;
R=PowerMod[a,r,197]
S/.Solve[{r*S==u-mA*R,Modulus==p-1},S][[1]]
|| 98
|| 171
чтобы найти подпись , которую она добавляет к своему сообщению . Боб проверяет эту подпись, убеждаясь, что
cA = 178; R = 98; S = 171;
PowerMod[a,u,p]==Mod[PowerMod[cA,R,p]*PowerMod[R,S,p],p]
|| True
Подпись к сообщению в схеме Эль-Гамаля состоит из двух частей:
· , равного со случайным , и
· , являющего решением сравнения (см. (8.2)).
Можно варьировать это так называемое уравнение подписи. В следующих трех схемах именно это и делается.
DSS (Digital Signature Standard) — американский стандарт, описывающий Digital Signature Algorithm (DSA), который может быть использован для генерации цифровой подписи.
В американском стандарте цифровой подписи DSS (Digital Signature Standard; см. [7]) уравнение подписи имеет вид
Эта система разработана Агентством национальной безопасности (АНБ, по-английски NSA) и принята в качестве стандарта Национальным институтом стандартов и технологии (NIST) США.
1) простое число , двоичное представление которого имеет длину , кратную и лежащую между и ;
2) простой делитель числа , имеющий длину от 160 битов до ;
3) значение ‑ генератор (примитивный элемент) подгруппы порядка , такой что , т.е.
Так как по теореме Ферма , мультипликативный порядок элемента делит . Но поскольку простое, этот порядок равен .
Каждый пользователь выбирает секретный показатель , вычисляет и делает публичным.
Когда Алиса хочет подписать файл , она сначала сжимает документ с помощью криптографически безопасной хэш-функции, называемой SHA (Secure Hash Algorithm), и получает SHA хэш-значение длиной (160-256) битов. Затем она выбирает случайное число и добавляет в качестве подписи к числа и длиной по (160-256) битов, определяемые равенствами
1.
2. , которое найдено из
Получатель проверяет аутентичность и целостность полученного сообщения путем самостоятельного вычисления (используя публичный ключ Алисы ) и сравнением его с полученным значением . Для этого берётся выражение , из которого находятся составные части :
а именно вычисляются
после чего можно найти
Если , документ считается подлинным и пришедшим от Алисы.
Назначение случайного числа — спрятать секретный ключ Алисы.