Схема подписи Эль-Гамаля - ElGamal signature scheme
В Схема подписи Эль-Гамаля это цифровая подпись схема, основанная на сложности вычислений дискретные логарифмы. Это было описано Тахер Эльгамал в 1985 г.[1]
Алгоритм подписи Эль-Гамаля на практике используется редко. Вариант, разработанный в АНБ и известный как Алгоритм цифровой подписи гораздо более широко используется. Есть еще несколько вариантов.[2] Схему подписи Эль-Гамаля не следует путать с Шифрование Эль-Гамаля который также был изобретен Тахером Эльгамалом.
Обзор
Схема подписи Эль-Гамаля - это схема цифровой подписи, основанная на алгебраических свойствах модульного возведения в степень вместе с проблемой дискретного логарифмирования. Алгоритм использует пара ключей состоящий из открытый ключ и закрытый ключ. Закрытый ключ используется для создания цифровая подпись для сообщения, и такая подпись может быть проверено с помощью соответствующего открытого ключа подписывающей стороны. Цифровая подпись обеспечивает аутентификацию сообщения (получатель может проверить источник сообщения), целостность (получатель может проверить, что сообщение не было изменено с момента его подписания) и невозможность отказа от авторства (отправитель не может ложно утверждать, что они не подписал сообщение).
История
Схема подписи Эль-Гамаля была описана Тахиром Эльгамалом в 1985 году.[1]
Операция
Схема включает четыре операции: генерацию ключа (которая создает пару ключей), распространение ключей, подпись и проверку подписи.
Генерация ключей
Генерация ключей состоит из двух этапов. Первый этап - это выбор параметров алгоритма, которые могут использоваться разными пользователями системы, а на втором этапе вычисляется одна пара ключей для одного пользователя.
Генерация параметров
- Выберите длину ключа .
- Выберите -немного простое число
- Выберите криптографическая хеш-функция с выходной длиной биты. Если , только крайний левый используются биты хеш-вывода.
- Выберите генератор из мультипликативная группа целых чисел по модулю п, .
Параметры алгоритма: . Эти параметры могут совместно использоваться пользователями системы.
Ключи для каждого пользователя
Учитывая набор параметров, на втором этапе вычисляется пара ключей для одного пользователя:
- Выберите целое число случайно из .
- Вычислить .
это закрытый ключ и это открытый ключ.
Распределение ключей
Подписывающая сторона должна отправить открытый ключ к приемнику через надежный, но не обязательно секретный механизм. Подписывающая сторона должна хранить закрытый ключ секрет.
Подписание
Сообщение подписывается следующим образом:
- Выберите целое число случайно из с участием относительно простой .
- Вычислить .
- Вычислить .
- В том маловероятном случае, если начать снова с другого случайного .
Подпись .
Проверка подписи
Можно убедиться, что подпись действительная подпись для сообщения следующим образом:
- Подтвердите это и .
- Подпись действительна тогда и только тогда, когда
Правильность
Алгоритм верен в том смысле, что подпись, созданная с помощью алгоритма подписи, всегда будет принята проверяющим.
Расчет при генерации подписи подразумевает
поскольку относительно проста с ,
Безопасность
Третья сторона может подделать подписи, найдя секретный ключ подписывающей стороны. Икс или найдя коллизии в хэш-функции . Обе проблемы считаются сложными. Однако по состоянию на 2011 г. резкого снижения до предположение о вычислительной сложности известен.
Подписывающая сторона должна быть осторожна при выборе другого k равномерно случайным образом для каждой подписи и чтобы убедиться, что k, или даже частичную информацию о k, не просочился. В противном случае злоумышленник может узнать секретный ключ. Икс с пониженной сложностью, возможно, достаточной для практической атаки. В частности, если два сообщения отправляются с одинаковым значением k и тот же ключ, тогда злоумышленник может вычислить Икс прямо.[1]
Экзистенциальная подделка
Оригинальная бумага[1] не включал хеш-функция как системный параметр. Сообщение м использовался непосредственно в алгоритме вместо H (м). Это позволяет атаковать под названием экзистенциальная подделка, как описано в разделе IV документа. Пойнтшеваль и Стерн обобщили этот случай и описали два уровня подделок:[3]
- Однопараметрическая подделка. Выберите такой, что . Набор и . Тогда кортеж действительная подпись для сообщения .
- Двухпараметрическая подделка. Выбрать , и . Набор и . Тогда кортеж действительная подпись для сообщения . Однопараметрическая подделка является частным случаем двухпараметрической подделки, когда .
Смотрите также
- Модульная арифметика
- Алгоритм цифровой подписи
- Эллиптическая кривая DSA
- Шифрование Эль-Гамаля
- Подпись Шнорра
- Алгоритм подписи Пойнтчеваля – Стерна
использованная литература
- ^ а б c d Тахер Эль-Гамаль (1985). «Криптосистема с открытым ключом и схема подписи на основе дискретных логарифмов» (PDF). IEEE Transactions по теории информации. 31 (4): 469–472. CiteSeerX 10.1.1.476.4791. Дои:10.1109 / TIT.1985.1057074. (версия конференции появилась в КРИПТО '84, стр. 10–18).
- ^ К. Ниберг, Р. А. Руппель (1996). «Восстановление сообщений для схем подписи на основе задачи дискретного логарифмирования». Конструкции, коды и криптография. 7 (1–2): 61–81. Дои:10.1007 / BF00125076. S2CID 123533321.
- ^ Поинтшеваль, Дэвид; Стерн, Жак (2000). «Аргументы в пользу безопасности цифровых подписей и слепых подписей» (PDF). J Криптология. 13 (3): 361–396. CiteSeerX 10.1.1.208.8352. Дои:10.1007 / s001450010003. S2CID 1912537.