Слепая подпись RSA с использованием API .NET Cryptography?
-
09-10-2019 - |
Вопрос
Я хотел бы реализовать Слепая подпись RSA в .NET. Есть ли способ использовать стандарт System.Security.Cryptography
API для этого достичь?
«Очевидная» идея не работает:
using (var rsa = new RSACryptoServiceProvider())
signed = rsa.Decrypt(messageBytes, false);
// CryptographicException: bad data
Я ценю опасность слепой подписи, но давайте игнорируем тех, кто на мгновение. Кроме того, я не заинтересован в других типах цифровых подписей.
Решение
Вы собираетесь бросить вас. Вы можете использовать класс Biginteger .NET 4 или просто используйте библиотеку BouncycaCtle C #.
Другие советы
Вы можете использовать метод «Signdata», чтобы подписать любые данные, которые вам нравятся. Он имеет перегрузки для байтовых массивов и ручьев. Что касается ослепления, вы, вероятно, захотите использовать зашифрованные данные (используя ключ, недоступную для сигнала), а затем подписать это.