Схема была предложена Тахером Эль-Гамалем в 1984г. Эль-Гамаль разработал один из вариантов алгоритма Диффи-Хеллмана. Он усовершенствовал систему Диффи-Хеллмана и получил два алгоритма, которые использовались для шифрования и для обеспечения аутентификации. В отличие от RSA алгоритм Эль-Гамаля не был запатентован и, поэтому, стал более дешевой альтернативой, так как не требовалась оплата взносов за лицензию. Считается, что алгоритм попадает под действие патента Диффи-Хеллмана.
Безопасность схемы Эль-Гамаля обусловлена сложностью вычисления дискретных логарифмов в конечном поле.
Для того чтобы генерировать пару ключей (открытый ключ - секретный ключ), сначала выбирают некоторое большое простое число Р и большое целое число G, причем G < Р. Числа Р и G могут быть распространены среди группы пользователей.
Затем выбирают случайное целое число X, причем Х<Р. Число Х является секретным ключом и должно храниться в секрете.
Далее вычисляют Y = GX (mod P). Число Y является открытым ключом.
Для того чтобы зашифровать сообщение М, выбирают случайное целое число К, 1<К<Р - 1, такое, что числа К и (Р-1) являются взаимно простыми.
Затем вычисляют числа
a=GK (mod P),
b = YK М (mod P).
Пара чисел (а,b) является шифротекстом. Заметим, что длина шифротекста вдвое больше длины исходного открытого текста М.
Для того чтобы расшифровать шифртекст (а,b), вычисляют
При этом нетрудно проверить, что
и поэтому
.
Для практических вычислений больше подходит следующая формула:
§ Шифрование
1. Допустим что нужно зашифровать сообщение .
2. Произведем генерацию ключей:
1) пусть . Выберем - случайное целое число такое, что .
2) Вычислим .
3) Итак , открытым является тройка ,а закрытым ключом является число .
3. Выбираем случайное целое число такое, что 1 < k < (p − 1). Пусть .
4. Вычисляем число .
5. Вычисляем число .
6. Полученная пара является шифротекстом.
§ Расшифрование
1. Необходимо получить сообщение по известному шифротексту и закрытому ключу .
2. Вычисляем M по формуле :
3. Получили исходное сообщение .
В реальных схемах шифрования необходимо использовать в качестве модуля Р большое целое простое число, имеющее в двоичном представлении длину 512-1024 битов.
Вывод:
В настоящее время криптосистемы с открытым ключом считаются наиболее перспективными. К ним относится и схема Эль-Гамаля, криптостойкость которой основана на вычислительной сложности проблемы дискретного логарифмирования, где по известным p, g и y требуется вычислить x, удовлетворяющий сравнению:
ГОСТ Р34.10-1994, принятый в 1994 году в Российской Федерации, регламентировавший процедуры формирования и проверки электронной цифровой подписи, был основан на схеме Эль-Гамаля. С 2001г. используется новый ГОСТ Р 34.10-2001, использующий арифметику эллиптических кривых, определенных над простыми полями Галуа. Существует большое количество алгоритмов, основанных на схеме Эль-Гамаля: это алгоритмы DSA, ECDSA, KCDSA, схема Шнорра.
Технология применения системы ЭЦП предполагает наличие сети абонентов, посылающих друг другу подписанные электронные документы. Для каждого абонента генерируется пара ключей: секретный и открытый. Секретный ключ хранится абонентом в тайне и используется им для формирования ЭЦП. Открытый ключ известен всем другим пользователям и предназначен для проверки ЭЦП получателем подписанного электронного документа. Иначе говоря, открытый ключ является необходимым инструментом, позволяющим проверить подлинность электронного документа и автора подписи. Открытый ключ не позволяет вычислить секретный ключ.
Для генерации пары ключей (секретного и открытого) в алгоритмах ЭЦП, как и в асимметричных системах шифрования, используются разные математические схемы, основанные на применении однонаправленных функции. Эти схемы разделяются на две группы. В основе такого разделения лежат известные сложные вычислительные задачи:
задача факторизации (разложения на множители) больших целых чисел;