Подпись сообщения.
1. Допустим,что нужно подписать сообщение .
2. Произведем генерацию ключей:
1. Пусть
переменные, которые известны некоторому сообществу. Секретный ключ
— случайное целое число
такое, что
.
2. Вычисляем открытый ключ :
.
3. Итак,открытым ключом является тройка .
3. Теперь вычисляем хэш-функцию: .
4. Выберем случайное число такое, что выполняется условие
. Пусть
.
5. Вычисляем .
6. Находим число . Такое
существует, так как НОД(k,p-1)=1. Получим что
.
7. Итак, мы подписали сообщение: .
· Проверка подлинности полученного сообщения.
1. Вычисляем хэш-функцию: .
2. Проверяем сравнение .
3. Вычислим левую часть по модулю 23: .
4. Вычислим правую часть по модулю 23: .
5. Так как правая и левая части равны, то это означает что подпись верна.
Главным преимуществом схемы цифровой подписи Эль-Гамаля является возможность вырабатывать цифровые подписи для большого числа сообщений с использованием только одного секретного ключа. Чтобы злоумышленнику подделать подпись, ему нужно решить сложные математические задачи с нахождением логарифма в поле . Следует сделать несколько комментариев:
· Случайное число должно сразу после вычисления подписи уничтожаться,так как если злоумышленник знает случайное число
и саму подпись, то он легко может найти секретный ключ по формуле:
и полностью подделать подпись.
Число должно быть случайным и не должно дублироваться для различных подписей, полученных при одинаковом значении секретного ключа.
· Использование свертки объясняется тем,что это защищает подпись от перебора сообщений по известным злоумышленнику значениям подписи. Пример: если выбрать случайные числа
,удовлетворяющие условиям
, НОД(j,p-1)=1 и предположить что
то легко удостовериться в том,что пара является верной цифровой подписью для сообщения
.
· Цифровая подпись Эль-Гамаля стала примером построения других подписей, схожих по своим свойствам. В их основе лежит выполнение сравнения: , в котором тройка
принимает значения одной из перестановок ±r, ±s и ±m при каком-то выборе знаков. Например, исходная схема Эль-Гамаля получается при
,
,
.На таком принципе построения подписи сделаны стандарты цифровой подписи США и России. В американском стандарте DSS (Digital Signature Standard), используется значения
,
,
, а в Российском стандарте:
,
,
.
· Еще одним из преимуществ является возможность уменьшения длины подписи с помощью замены пары чисел на пару чисел
),где
является каким-то простым делителем числа
. При этом сравнение для проверки подписи по модулю
нужно заменить на новое сравнение по модулю
:
. Так сделано в американском стандарте DSS (Digital Signature Standard).
Криптостойкость и особенности
В настоящее время криптосистемы с открытым ключом считаются наиболее перспективными. К ним относится и схема Эль-Гамаля, криптостойкость которой основана на вычислительной сложности проблемы дискретного логарифмирования, где по известным p, g и y требуется вычислить x, удовлетворяющий сравнению:
ГОСТ Р34.10-1994, принятый в 1994 году в Российской Федерации, регламентировавший процедуры формирования и проверки электронной цифровой подписи, был основан на схеме Эль-Гамаля. С 2001 года используется новый ГОСТ Р 34.10-2001, использующий арифметику эллиптических кривых, определенных над простыми полями Галуа. Существует большое количество алгоритмов, основанных на схеме Эль-Гамаля: это алгоритмы DSA, ECDSA, KCDSA, схема Шнорра.