цифровые подписи
\ < а < р - 2 и вычислим значение р = а а шос! р . Число а
является секретным ключом, а набор {р, а, /3) — открытым ключом.
Подпись для сообщения М вычисляется с помощью сле дующего алгоритма:
1.Выбрать случайное целое число г, 1 < г < р - 2 .
2.Вычислить у - а г шос! р .
3. Для х = М вычислить 8 = (х - ау)г~хтос!(р - 1).
4. Подписью для сообщения М положить пару (у; 8). Алгоритм проверки подписи заключается в проверке
сравнения Р Уу 3 = а х{то<\р). Если оно верно, то подпись
принимается, если нет, то отвергается.
Основным достоинством такой схемы цифровой подписи является возможность выработки цифровых подписей для большого числа сообщений с использованием одного секрет ного ключа. При этом попытка компрометации схемы сталки вается с необходимостью решения сложной математической задачи, связанной с нахождением решений показательных уравнений, в частности — с нахождением значения логариф
ма в поле Ъ р .
Сделаем два замечания.
Первое касается выбора числа г. Оно должно уничто жаться сразу после вычисления подписи. Действительно, зная число г и значение подписи, легко вычислить секретный ключ а:
а = ( х - гб)у~хтос1(р -1).
Поэтому подпись может быть полностью скомпрометирована. Кроме того, число г должно быть действительно случайным и не должно повторяться для различных подписей, полученных при одном значении секретного ключа. В противном случае также можно вычислить секретный ключ а.