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