我想在.NET中实现blind RSA signature。有没有办法使用标准System.Security.Cryptography
API来实现这一目标?
“显而易见”的想法不起作用:
using (var rsa = new RSACryptoServiceProvider())
signed = rsa.Decrypt(messageBytes, false);
// CryptographicException: bad data
我很欣赏盲目签名的危险,但让我们暂时忽略它们。另外,我对其他类型的数字签名不感兴趣。
答案 0 :(得分:4)
你将不得不自己动手。您可以使用.NET 4的BigInteger类,或者只使用Bouncycastle C#库。
答案 1 :(得分:1)
您可以使用“SignData”方法对您喜欢的任何数据进行签名。它具有字节数组和流的重载。在盲目性的情况下,你可能想要使用加密数据(使用签名者不可用的密钥),然后签名。