- Эль-гамаль
-
Схема Эль-Гамаля (Elgamal) — криптосистема, предложенная в 1984 году. Схема Эль-Гамаля лежит в основе стандартов электронной цифровой подписи в США и России.
Содержание
Генерация ключей
- Генерируется случайное простое число p длины n.
- Выбирается произвольное целое число g, являющееся первообразным корнем по модулю p.
- Выбирается случайное число x из интервала (1,p), взаимно простое с p-1.
- Вычисляется y = gxmod p.
- Открытым ключом является тройка (p,g,y), закрытым ключом — число x.
Работа в режиме шифрования
Шифрование
Сообщение М шифруется так:
- Выбирается случайное секретное число k, взаимно простое с p − 1.
- Вычисляется a = gkmod p, b = ykMmod p, где M — исходное сообщение.
- Пара чисел (a,b) является шифротекстом.
Нетрудно видеть, что длина шифротекста в схеме Эль-Гамаль длиннее исходного сообщения M вдвое.
Расшифрование
Зная закрытый ключ x, исходное сообщение можно вычислить из шифротекста (a,b) по формуле:
При этом нетрудно проверить, что
- и .
Работа в режиме подписи
При работе в режиме подписи предполагается наличие фиксированной хеш-функции h(), значения которой лежат в интервале (1,p − 1).
Подпись сообщений
Для подписи сообщения M выполняются следующие операции:
- Вычисляется дайджест сообщения M: m = h(M).
- Выбирается случайное число 1 < k < p − 1 взаимно простое с p-1 и вычисляется
- С помощью расширенного алгоритма Евклида вычисляется число s, удовлетворяющее сравнению:
- Подписью сообщения M является пара (r,s).
Проверка подписи
Зная открытый ключ (p,g,y), подпись (r,s) сообщения M проверяется следующим образом:
- Проверяется выполнимость условий: 0 < r < p и 0 < s < p − 1. Если хотя бы одно из них не выполняется, то подпись считается неверной.
- Вычисляется дайджест m = h(M).
- Подпись считается верной, если выполняется сравнение:
Криптостойкость
Криптостойкость данной схемы основана на вычислительной сложности проблемы дискретного логарифмирования, где по известным p, g и y требуется вычислить х, удовлетворяющий сравнению:
Wikimedia Foundation. 2010.