О программе

Алгоритм цифровой подписи Elgamal (ЕGSА)

 

 

·       Генерация секретного и открытого ключей. Выбирается некоторое большое простое целое число Р и большое целое число G, такое что G < Р. Далее выбирается случайное целое число X, 1 <Х £ Р-1, и вычисляется

Y = GX mod Р.

Число Y является открытым ключом, используемым для проверки подписи отправителя и открыто передается всем потенциальным получателям документов. Число Х является секретным ключом отправителя для подписывания документов и должно храниться в секрете.

·       Процедура подписания сообщения. Сообщение М хэшируется с помощью хэш-функции h() в целое число m:

m = h(М), 1 < m < Р-1,

и генерируется случайное целое число К, 1 < К  < Р-1, такое что К и Р-1 являются взаимно простыми. Вычисляются целое число а по формуле

а = GK mod Р

и, с помощью секретного ключа Х, целое число b из уравнения

m = Х*а + К*b (mod (Р-1)).

Пара чисел (а, b) образует цифровую подпись S:

S = (а, b).

Тройка чисел (М, а, b) передается получателю, а пара чисел (Х, К).держится в секрете.

·       Процедура проверки. Принятое сообщение М хэшируется, т.е. вычисляется число

M = h(М).

Вычисляется значение

А = Ya ab (mod Р).

Получатель признает сообщение М подлинным, если и только если

А = Gm (mod Р).





Работа с электронной цифровой подписью EGSA



  •  

    Хэширование входных данных и генерация ЭЦП

    Выберите функцию хэширования