Схема шифрования Эль-Гамаля в современных криптографических системах работает следующим образом: 2
- Генерация ключей. 4 Выбирается случайное простое число p и целое число g — первообразный корень p. 14 Затем генерируется случайное целое число x, которое будет закрытым ключом. 14 После этого вычисляется значение y = gx mod p, где открытым ключом является тройка (p, g, y). 4
- Шифрование. 4 Сообщение М должно быть меньше числа P. 4 Выбирается сессионный ключ — случайное целое число k такое, что 1 < k < p -1. 4 Затем вычисляются числа a = gk mod p и b = ykM mod p, где пара чисел (a, b) является шифротекстом. 4 Длина шифротекста в схеме Эль-Гамаля длиннее исходного сообщения М вдвое. 4
- Расшифровывание. 4 Зная закрытый ключ x, исходное сообщение можно вычислить из шифротекста (a, b). 4
Безопасность схемы Эль-Гамаля зависит от сложности факторизации дискретных логарифмических задач, в которых сложно вычислить дискретные логарифмы над конечными полями с помощью атак грубой силы или статистических атак. 5