previous up down next index index
Previous: 6.4.4 Безопасная почта PGP    UP: 6 Сетевая безопасность
Down: 7 Программирование для сетей (новые идеи, принципы и возможности)
    Next: 6.4.6 Алгоритм Диффи-Хелмана

6.4.5 Алгоритм Эль Гамаля
Семенов Ю.А. (ГНЦ ИТЭФ)

Алгоритм Эль-Гамаля может использоваться для формирования электронной подписи или для шифрования данных. Он базируется на трудности вычисления дискретного логарифма. Для генерации пары ключей сначала берется простое число p и два случайных числа g и x, каждое из которых меньше p. Затем вычисляется:

y = gx mod p

Общедоступными ключами являются y, g и p, а секретным ключом является х. Для подписи сообщения M выбирается случайное число k, которое является простым по отношению к p-1. После этого вычисляется a = gk mod p. Далее из уравнения M = (xa + kb) mod (p-1) находим b. Электронной подписью для сообщения M будет служить пара a и b. Случайное число k следует хранить в секрете. Для верификации подписи необходимо проверить равенство:

yaab mod p = gM mod p.

Пара a и b представляют собой зашифрованный текст. Следует заметить, что зашифрованный текст имеет размер в два раза больше исходного. Для дешифрования производится вычисление:

M = b/ax mod p

Previous: 6.4.4 Безопасная почта PGP    UP: 6 Сетевая безопасность
Down: 7 Программирование для сетей (новые идеи, принципы и возможности)    Next: 6.4.6 Алгоритм Диффи-Хелмана