,
1) проверить m, что 0<s<q, 0<r’<q. Если хотя бы одно из неравенств нарушено, то подпись отвергается;
Вычислить ;
3) выбрать число е: ;
4) если е(mod q)=0, то е=1;
5) ;
6) , ;
7) ;
8) .
, => 0<r’<q и пункт 6);
=> 0<s<q и пункт 8);
;
Корректность: .
Проверим, что :
;
;
;
По малой теореме Ферма:
Из теоремы Эллера:
=> ;
;
;
=>
Стойкость:
1) Атака на закрытый ключ:
y=>x
=>можно решить задачу дискретного логарифмирования:
(если длина р=1024 бит);
если учесть, что 0<x256<q=>метод Полларда;
(если длина q=256 бит).
2) Атака на неотказуемость:
Мошенник пытается отказаться от подписанного им сообщения.
m – сообщение, s – подпись.
(m1,s1) => получатель
(m2,s2) предъявляет как истинное (m2,s2) и отказывается от первого сообщения.
Можно: s1=s2.
,
Следовательно, противник формирует сообщение с одинаковой подписью (m1,s), (m2,s), посылает (m1,s), предъявляет (m2,s), отказывается от m1.
;
;
, ;
одинаково для m1,m2.
Необходимо определить, совпадают ли следующие две формулы:
;
;
;
фиксируем х1,k,e2,e1 => вычисляем x2.
Для того чтобы противостоять этой атаки, противник не должен знать полное содержание сообщения m1,m2 в момент генерации ключа. Это реализуется путем добавления в подписываемое сообщение атрибутов сертификата открытого ключа, которое формируется удостоверяющим центром, а не самим пользователем.