Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Схема подписи Эль-Гамаля - это схема цифровой подписи , которая основана на сложности вычисления дискретных логарифмов . Он был описан Тахером Эльгамалом в 1985 году [1].

Алгоритм подписи Эль-Гамаля на практике используется редко. Гораздо более широко используется вариант, разработанный в АНБ и известный как алгоритм цифровой подписи . Есть еще несколько вариантов. [2] Схему подписи Эль-Гамаля не следует путать с шифрованием Эль-Гамаля, которое также было изобретено Тахером Эльгамалом.

Обзор [ править ]

Схема подписи Эль-Гамаля - это схема цифровой подписи, основанная на алгебраических свойствах модульного возведения в степень вместе с проблемой дискретного логарифмирования. Алгоритм использует пару ключей, состоящую из открытого и закрытого ключей . Закрытый ключ используется для создания цифровой подписи сообщения, и такая подпись может быть проверена с помощью соответствующего открытого ключа подписывающей стороны. Цифровая подпись обеспечивает аутентификацию сообщения (получатель может проверить источник сообщения), целостность (получатель может убедиться, что сообщение не было изменено с момента его подписания) и неотказуемость (отправитель не может ложно утверждать, что они не подписал сообщение).

История [ править ]

Схема подписи Эль-Гамаля была описана Тахиром Эльгамалом в 1985 году [1].

Операция [ править ]

Схема включает четыре операции: генерацию ключа (которая создает пару ключей), распространение ключей, подпись и проверку подписи.

Генерация ключей [ править ]

Генерация ключа состоит из двух этапов. Первый этап - это выбор параметров алгоритма, которые могут использоваться разными пользователями системы, а на втором этапе вычисляется одна пара ключей для одного пользователя.

Генерация параметров [ править ]

Параметры алгоритма . Эти параметры могут совместно использоваться пользователями системы.

Ключи для каждого пользователя [ править ]

Учитывая набор параметров, на втором этапе вычисляется пара ключей для одного пользователя:

  • Случайным образом выбрать целое число из .
  • Вычислить .

- это закрытый ключ и открытый ключ.

Распределение ключей [ править ]

Подписывающая сторона должна отправить открытый ключ получателю через надежный, но не обязательно секретный механизм. Подписывающая сторона должна хранить секретный ключ в секрете.

Подписание [ править ]

Сообщение подписано следующим образом:

  • Случайным образом выбрать целое число из числа с взаимно простым до .
  • Вычислить .
  • Вычислить .
  • В том маловероятном случае, если это начнется снова с другим рандомом .

Подпись есть .

Проверка подписи [ править ]

Проверить, является ли подпись действительной подписью сообщения, можно следующим образом:

  • Убедитесь, что и .
  • Подпись действительна тогда и только тогда, когда

Правильность [ править ]

Алгоритм верен в том смысле, что подпись, созданная с помощью алгоритма подписи, всегда будет принята верификатором.

Вычисление при генерации подписи подразумевает

Поскольку относительно просто ,

Безопасность [ править ]

Третья сторона может подделывать подписи либо путем нахождения секретного ключа подписывающей стороны x, либо путем обнаружения коллизий в хэш-функции . Обе проблемы считаются сложными. Однако по состоянию на 2011 г. точного сведения к предположению о вычислительной сложности не известно.

Подписывающее лицо должно быть осторожным, чтобы выбрать другое k равномерно случайным образом для каждой подписи и убедиться, что k или даже частичная информация о k не просочится. В противном случае злоумышленник может получить секретный ключ x с меньшими трудностями, что, возможно, будет достаточно для практической атаки. В частности, если два сообщения отправляются с использованием одного и того же значения k и одного и того же ключа, злоумышленник может вычислить x напрямую. [1]

Экзистенциальная подделка [ править ]

Исходная статья [1] не включала хеш-функцию в качестве системного параметра. Сообщение m использовалось непосредственно в алгоритме вместо H (m) . Это делает возможным атаку, называемую экзистенциальной подделкой , как описано в разделе IV документа. Пойнтшеваль и Стерн обобщили этот случай и описали два уровня подделок: [3]

  1. Однопараметрическая подделка. Выберите такую ​​что . Установите и . Тогда кортеж является действительной подписью для сообщения .
  2. Двухпараметрическая подделка. Выберите , и . Установите и . Тогда кортеж является действительной подписью для сообщения . Однопараметрическая подделка является частным случаем двухпараметрической подделки, когда .

См. Также [ править ]

  • Модульная арифметика
  • Алгоритм цифровой подписи
  • Эллиптическая кривая DSA
  • Шифрование Эль-Гамаля
  • Подпись Шнорра
  • Алгоритм подписи Пойнтчеваля – Стерна

Ссылки [ править ]

  1. ^ а б в г Тахер Эль-Гамаль (1985). «Криптосистема с открытым ключом и схема подписи на основе дискретных логарифмов» (PDF) . IEEE Transactions по теории информации . 31 (4): 469–472. CiteSeerX  10.1.1.476.4791 . DOI : 10.1109 / TIT.1985.1057074 .(версия для конференции опубликована в CRYPTO '84, стр. 10–18)
  2. ^ К. Нюберг, Р.А. Rueppel (1996). «Восстановление сообщений для схем подписи на основе задачи дискретного логарифмирования» . Конструкции, коды и криптография . 7 (1–2): 61–81. DOI : 10.1007 / BF00125076 . S2CID 123533321 . 
  3. ^ Pointcheval, Дэвид; Стерн, Жак (2000). «Аргументы в пользу безопасности цифровых подписей и слепых подписей» (PDF) . J Криптология . 13 (3): 361–396. CiteSeerX 10.1.1.208.8352 . DOI : 10.1007 / s001450010003 . S2CID 1912537 .