我正在使用 RSA from this webpage 的 Javascript 实现,我已经在那里生成了我的 key 对。因此,我有 p
, q
,公共(public)指数,公共(public)模,私有(private)指数和私有(private)逆。
如何使用 .NET 的 RSACryptoServiceProvider
只用这些值解密密文? .NET 文档列出了其他三个字段; DP
, DQ
和 InverseQ
我不确定如何提供。
最佳答案
RSA 私钥有两种表示形式(参见 PKCS#1)。
第一个表示由对 (n, d) 组成,第二个表示由五元组 (p, q, dP, dQ, qInv) 组成。公钥表示为 (n, e)。
q · qInv ≡ 1 (mod p)
两个私钥表示中的每一个都是“完整的”,即您只需要其中一个就可以执行 RSA 计算。由于您拥有第一个表示所需的一切,因此只需在您的
RSAParameters
上设置这些参数(即 n、p、q、e、d)就足够了。实例并省略其余部分。
关于.net - 在 .NET 中仅使用几个值解密 RSA 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6761091/