Когда вы говорите, что «шифруете с помощью закрытого ключа RSA», вы фактически не шифруете вещи. Это историческая путаница. То, что вы делаете, это цифровая подпись , которую плагин проверяет с помощью соответствующего открытого ключа. Путаница возникает из-за того, что при адекватном освещении подписи RSA можно рассматривать как своего рода «обратное шифрование», когда первым действует личный ключ. Однако он отличается некоторыми деталями (например, заполнением и использованием хэш-функции), что делает его совершенно другим, когда дело доходит до реализации.
Если вы используете правильную схему цифровой подписи RSA (например, одну из описанных в PKCS # 1 , раздел 8 "Схемы подписи с приложением") ) с достаточно большим ключом RSA (1024 бита или более), сгенерированным с помощью правильно реализованного алгоритма генерации ключа, , а затем не существует известного вычислительно выполнимого способа для злоумышленника использовать полученные подписи для того, чтобы подделать новые подписи (и, a fortiori , взломать закрытый ключ RSA). Никоим образом не доказано, что ваши подписи не помогают злоумышленнику, но 30-летние публичные исследования по этому вопросу не привели к такому нарушению.
Обратите внимание, однако, что детали использования, в частности заполнение (начальная часть, которая преобразует подлежащие подписи данные в большое число, которое может обработать математическое ядро RSA), оказались деликатными; Многие предложенные способы заполнения были успешно атакованы. Заполнения PKCS # 1 находились под пристальным вниманием в течение достаточно долгого времени (два десятилетия для заполнения "v1.5") и до сих пор сопротивлялись всем таким попыткам. Семейство прокладок "ISO 9796" не очень хорошо, многие варианты были сломаны.
Если вы не вычисляете свои подписи в соответствии с устоявшимся стандартом (т. Е. PKCS # 1), то вы ищете проблему. Не делай этого. К счастью, большинство реализаций RSA (в криптографических библиотеках и языках / средах программирования) следуют PKCS # 1.