Алгоритм можно описать как сначала выполняющий обмен ключами Диффи-Хеллмана для установления общего секрета , а затем использующий его как одноразовый блокнот для шифрования сообщения. Шифрование Эль-Гамаля выполняется в три этапа: генерация ключа, шифрование и расшифровка. Первый этап — это чисто обмен ключами, тогда как последние два смешивают вычисления обмена ключами с вычислениями сообщения.
Генерация ключей
Первая сторона, Алиса, генерирует пару ключей следующим образом:
Не обязательно придумывать группу и генератор для каждого нового ключа. Действительно, можно ожидать, что конкретная реализация ElGamal будет жестко закодирована для использования определенной группы или группы из определенного набора. Выбор группы в основном зависит от того, насколько большие ключи вы хотите использовать.
Выберите случайное целое число из .
Вычислить .
Открытый ключ состоит из значений . Алиса публикует этот открытый ключ и сохраняет его как свой закрытый ключ , который должен храниться в секрете.
Шифрование
Вторая сторона, Боб, шифрует сообщение для Алисы с помощью ее открытого ключа следующим образом:
Сопоставьте сообщение с элементом , используя функцию обратимого сопоставления.
Выберите случайное целое число из .
Вычислить . Это называется общим секретом .
Вычислить .
Вычислить .
Боб отправляет зашифрованный текст Алисе.
Обратите внимание, что если вы знаете и зашифрованный текст , и открытый текст , вы можете легко найти общий секрет , так как . Поэтому для каждого сообщения генерируется новый и, следовательно, новый для повышения безопасности. По этой причине также называется эфемерным ключом .
Расшифровка
Алиса расшифровывает зашифрованный текст с помощью своего закрытого ключа следующим образом:
Вычислить . Так как , , и, таким образом, это тот же самый общий секрет, который использовался Бобом при шифровании.
Вычислить , обратную величину в группе . Это можно вычислить одним из нескольких способов. Если — подгруппа мультипликативной группы целых чисел по модулю , где — простое число, то модульную мультипликативную обратную величину можно вычислить с помощью расширенного алгоритма Евклида . Альтернативой является вычисление как . Это обратная величина из-за теоремы Лагранжа , поскольку .
Вычислить . Это вычисление дает исходное сообщение , потому что ; следовательно .
Вернитесь к открытому текстовому сообщению .
Практическое использование
Как и большинство систем с открытым ключом, криптосистема ElGamal обычно используется как часть гибридной криптосистемы , где само сообщение шифруется с помощью симметричной криптосистемы, а затем ElGamal используется для шифрования только симметричного ключа. Это связано с тем, что асимметричные криптосистемы, такие как ElGamal, обычно медленнее симметричных при том же уровне безопасности , поэтому быстрее зашифровать сообщение, которое может быть произвольно большим, с помощью симметричного шифра, а затем использовать ElGamal только для шифрования симметричного ключа, который обычно довольно мал по сравнению с размером сообщения.
Безопасность
Безопасность схемы Эль-Гамаля зависит от свойств базовой группы , а также от любой схемы заполнения, используемой в сообщениях. Если вычислительное предположение Диффи-Хеллмана (CDH) выполняется в базовой циклической группе , то функция шифрования является односторонней . [2]
Шифрование Эль-Гамаля безусловно податливо , и поэтому не является безопасным при атаке с использованием выбранного шифротекста . Например, имея шифрование некоторого (возможно неизвестного) сообщения , можно легко построить действительное шифрование сообщения .
Для достижения безопасности выбранного шифротекста схема должна быть дополнительно модифицирована или должна быть использована соответствующая схема заполнения. В зависимости от модификации предположение DDH может быть необходимым или необязательным.
Также были предложены другие схемы, связанные с ElGamal, которые обеспечивают безопасность против атак с использованием выбранного шифртекста. Криптосистема Крамера–Шоупа безопасна при атаке с использованием выбранного шифртекста, предполагая, что DDH выполняется для . Ее доказательство не использует модель случайного оракула . Другая предложенная схема — DHIES , [4] доказательство которой требует предположения, которое сильнее предположения DDH.
Эффективность
Шифрование Эль-Гамаля является вероятностным , то есть один открытый текст может быть зашифрован множеством возможных шифртекстов, в результате чего общее шифрование Эль-Гамаля обеспечивает расширение размера открытого текста до размера шифртекста в соотношении 1:2.
Шифрование по Эль-Гамалю требует двух возведений в степень ; однако эти возведения в степень не зависят от сообщения и могут быть вычислены заранее, если это необходимо. Расшифровка требует одного возведения в степень и одного вычисления групповой инверсии, которые, однако, можно легко объединить в одно возведение в степень.
Смотрите также
Тахер Элгамал , разработчик этой и других криптосистем
AJ Menezes; PC van Oorschot; SA Vanstone. "Глава 8.4 Шифрование с открытым ключом Эль-Гамаля" (PDF) . Справочник по прикладной криптографии . CRC Press.
Дэн Боне (1998). "Решение проблемы Диффи-Хеллмана". Алгоритмическая теория чисел. Конспект лекций по информатике. Том 1423. С. 48–63 . CiteSeerX 10.1.1.461.9971 . doi :10.1007/BFb0054851. ISBN978-3-540-64657-0.
Ссылки
^ Тахер Эль-Гамаль (1985). «Криптосистема с открытым ключом и схема подписи на основе дискретных логарифмов» (PDF) . Труды IEEE по теории информации . 31 (4): 469– 472. CiteSeerX 10.1.1.476.4791 . doi :10.1109/TIT.1985.1057074. S2CID 2973271.(версия конференции появилась в CRYPTO '84, стр. 10–18)
^ Tsiounis, Yiannis; Yung, Moti (2006-05-24). "О безопасности шифрования на основе ElGamal". Криптография с открытым ключом . Конспект лекций по информатике. Том 1431. С. 117– 134. doi :10.1007/BFb0054019. ISBN978-3-540-69105-1.
^ Абдалла, Мишель; Белларе, Михир; Рогауэй, Филлип (2001-01-01). «Предположения Oracle Диффи-Хеллмана и анализ DHIES». Темы по криптологии — CT-RSA 2001. Конспект лекций по информатике. Том 2020. С. 143–158 . doi :10.1007/3-540-45353-9_12. ISBN978-3-540-41898-6.