只用几个值解密.NET中的RSA数据

ano*_*ard 5 .net cryptography rsa

我在这个网页上使用了RSA的Javascript实现,并在那里生成了我的密钥对.因此,我有p,q公共指数,公共模数,私有指数和私有逆.

如何使用.NET RSACryptoServiceProvider来解密只有这些值的密文?.NET文档列出了其他三个字段; DP,DQInverseQ这我不知道如何提供.

emb*_*oss 5

RSA私钥有两种表示形式(参见PKCS#1).

第一种表示由对(n,d)组成,第二种表示由五元组(p,q,dP,dQ,qInv)组成.公钥表示为(n,e).

  • n是公共模数
  • p和q是两个素数
  • d是私人指数
  • e是公众指数
  • dP是p的中国剩余定理系数(e·dP≡1(mod(p - 1)))
  • dQ是q的CRT系数(e·dQ≡1(mod(q - 1)))
  • qInv是一个CRT系数,一个小于p的正整数,使得q·qInv≡1(mod p)

两个私钥表示中的每一个都是"完整的",即您只需要其中一个就能够执行RSA计算.由于您拥有第一个表示所必需的所有内容,因此仅在您的RSAParameters实例上设置这些参数(即n,p,q,e,d)就足够了,并省略其余部分.