Как заставить эту библиотеку RSA (с функцией en / decryption только (!)) Что-то подписывать? - PullRequest
0 голосов
/ 31 августа 2010

Или конкретно - я использую эту библиотеку javascript RSA для клиентского кода моего экспериментального проекта ... Я хотел бы иметь возможность подписывать и проверять сообщения (-> шифровать с помощью private и расшифровыватьс открытым ключом)

Есть ли способ изменить данные ключа таким образом, чтобы алгоритмы en / расшифровки делали это с "обратным" ключом?Я пытался поменять местами e и d (потому что это то, что мне показалось из википедии, разница есть) - для «подписи» это сработало (но я предполагаю, что это был неразборчивый мусор) ... для «проверки» я попытался вычислитьmod (p-1), d mod (q-1) и 1 / q mod p с e вместо e для использования алгоритма дешифрования для проверки ... но действительно ли я так думаю?Если бы это было так, я полагаю, что его не нужно было бы хранить в закрытом ключе, потому что его было бы очень легко вычислить, имея d, p и q ...?

Суть: Если есть способ передать измененный закрытый ключ в алгоритм шифрования для подписи и то же самое для контрагента - как мне это сделать?Какие изменения должны быть сделаны для клавиш?

Ответы [ 2 ]

1 голос
/ 31 августа 2010
0 голосов
/ 01 сентября 2010

Вы не можете.

Шифрование и подписи имеют разные отступы.Иногда вы видите предложения зашифровать хеш вашего сообщения, чтобы получить подпись.Однако это предположение неверно.Это приводит к тому, что несовместимо с правильными схемами подписи.Более того, ваша реализация может быть небезопасной.Прокладки RSA имеют долгую историю недостатков.Даже комитеты по стандартизации не всегда понимают это правильно.

...