Слепая подпись RSA с использованием API криптографии .NET? - PullRequest
3 голосов
/ 07 декабря 2010

Я бы хотел реализовать слепую подпись RSA в .NET. Есть ли способ использовать стандартные System.Security.Cryptography API для достижения этой цели?

«Очевидная» идея не работает:

using (var rsa = new RSACryptoServiceProvider())
  signed = rsa.Decrypt(messageBytes, false);
                // CryptographicException: bad data

Я ценю опасность слепой подписи, но давайте на мгновение проигнорируем ее. Кроме того, я не заинтересован в других типах цифровых подписей.

Ответы [ 2 ]

4 голосов
/ 07 декабря 2010

Тебе придется катиться самому. Вы можете использовать класс BigInteger .NET 4 или просто использовать библиотеку Bouncycastle C #.

1 голос
/ 07 декабря 2010

Вы можете использовать метод "SignData", чтобы подписать любые данные, которые вам нравятся. Имеет перегрузки для байтовых массивов и потоков. Что касается ослепления, вы, вероятно, захотите использовать зашифрованные данные (используя ключ, недоступный для подписывающего лица) и затем подпишите это.

...