06-08-2023
Схема Эль-Гамаля (Elgamal) — криптосистема с открытым ключом, основанная на трудности вычисления дискретных логарифмов в конечном поле. Криптосистема включает в себя алгоритм шифрования и алгоритм цифровой подписи. Схема Эль-Гамаля лежит в основе бывших стандартов электронной цифровой подписи в США (DSA) и России (ГОСТ Р 34.10-94).
Схема была предложена Тахером Эль-Гамалем в 1984 году.[1] Эль-Гамаль разработал один из вариантов алгоритма Диффи-Хеллмана. Он усовершенствовал систему Диффи-Хеллмана и получил два алгоритма, которые использовались для шифрования и для обеспечения аутентификации. В отличие от RSA алгоритм Эль-Гамаля не был запатентован и, поэтому, стал более дешевой альтернативой, так как не требовалась оплата взносов за лицензию. Считается, что алгоритм попадает под действие патента Диффи-Хеллмана.
Сообщение шифруется следующим образом:
Нетрудно видеть, что длина шифротекста в схеме Эль-Гамаля длиннее исходного сообщения вдвое.
Зная закрытый ключ , исходное сообщение можно вычислить из шифротекста по формуле:
При этом нетрудно проверить, что
и поэтому
Для практических вычислений больше подходит следующая формула:
Так как в схему Эль-Гамаля вводится случайная величина ,то шифр Эль-Гамаля можно назвать шифром многозначной замены. Из-за случайности выбора числа такую схему еще называют схемой вероятностного шифрования. Вероятностный характер шифрования является преимуществом для схемы Эль-Гамаля, так как у схем вероятностного шифрования наблюдается большая стойкость по сравнению со схемами с определенным процессом шифрования. Недостатком схемы шифрования Эль-Гамаля является удвоение длины зашифрованного текста по сравнению с начальным текстом. Для схемы вероятностного шифрования само сообщение и ключ не определяют шифротекст однозначно. В схеме Эль-Гамаля необходимо использовать различные значения случайной величины для шифровки различных сообщений и . Если использовать одинаковые , то для соответствующих шифротекстов и выполняется соотношение . Из этого выражения можно легко вычислить , если известно .
Цифровая подпись служит для того чтобы можно было установить изменения данных и чтобы установить подлинность подписавшейся стороны. Получатель подписанного сообщения может использовать цифровую подпись для доказательства третьей стороне того, что подпись действительно сделана отправляющей стороной. При работе в режиме подписи предполагается наличие фиксированной хеш-функции , значения которой лежат в интервале .
Для подписи сообщения выполняются следующие операции:
Зная открытый ключ , подпись сообщения проверяется следующим образом:
Число должно быть случайным и не должно дублироваться для различных подписей, полученных при одинаковом значении секретного ключа.
то легко удостовериться в том,что пара является верной цифровой подписью для сообщения .
В настоящее время криптосистемы с открытым ключом считаются наиболее перспективными. К ним относится и схема Эль-Гамаля, криптостойкость которой основана на вычислительной сложности проблемы дискретного логарифмирования, где по известным p, g и y требуется вычислить x, удовлетворяющий сравнению:
ГОСТ Р34.10-1994, принятый в 1994 году в Российской Федерации, регламентировавший процедуры формирования и проверки электронной цифровой подписи, был основан на схеме Эль-Гамаля. С 2001 года используется новый ГОСТ Р 34.10-2001, использующий арифметику эллиптических кривых, определенных над простыми полями Галуа. Существует большое количество алгоритмов, основанных на схеме Эль-Гамаля: это алгоритмы DSA, ECDSA, KCDSA, схема Шнорра.
Сравнение некоторых алгоритмов:
Алгоритм | Ключ | Назначение | Криптостойкость, MIPS | Примечания |
RSA | До 4096 бит | Шифрование и подпись | 2,7•1028 для ключа 1300 бит | Основан на трудности задачи факторизации больших чисел; один из первых асимметричных алгоритмов. Включен во многие стандарты |
ElGamal | До 4096 бит | Шифрование и подпись | При одинаковой длине ключа криптостойкость равная RSA, т.е. 2,7•1028 для ключа 1300 бит | Основан на трудной задаче вычисления дискретных логарифмов в конечном поле; позволяет быстро генерировать ключи без снижения стойкости. Используется в алгоритме цифровой подписи DSA-стандарта DSS |
DSA | До 1024 бит | Только подписание | Основан на трудности задачи дискретного логарифмирования в конечном поле; принят в качестве гос. стандарта США; применяется для секретных и несекретных коммуникаций; разработчиком является АНБ. | |
ECDSA | До 4096 бит | Шифрование и подпись | Криптостойкость и скорость работы выше, чем у RSA | Современное направление. Разрабатывается многими ведущими математиками |
Криптосистемы с открытым ключом | |
---|---|
RSA • DSA • DSS • NTRUEncrypt • Эль-Гамаля • Меркла — Хеллмана • Шнорра • Эллиптические • На решётках • ГОСТ Р 34.10-2001 • ГОСТ Р 34.10-2012 • ДСТУ 4145-2002 • Подпись Лэмпорта • Криптосистема Рабина |
Схема Эль-Гамаля.