文件RSA解密

时间:2011-11-29 12:41:22

标签: c# .net rsa encryption crt

我有一个RSA加密文件&我想用.NET中的C#解密它

我有这个人。要解密的(1024位enc)消息(密文)的参数

  • 模量
  • public exponent
  • 私人指数
  • prime p
  • prime q
  • 主要指数p
  • 主要指数q
  • CRT系数

密文是HEX格式

我知道解密邮件的CRT方法,但不清楚如何使用它

m1 = (ciphertext ^ dP) Mod P
m2 = (ciphertext ^ dQ) Mod Q
h = (qInv * (m1 - m2)) Mod P
m = m2 + (h * Q)

我尝试使用foll namespace

执行解密
System.Security.Cryptography

有人可以帮我提供示例代码来实现解密,因为这是我第一次处理解密。

是否有可用的现成API?我只需要传递参数&我会收到所需的输出。

2 个答案:

答案 0 :(得分:2)

是的,您可以使用 System.Security.Cryptography 命名空间。 MSDN Reference有些例子只是深入了解 MSDN库。例如,此处有RSACryptoServiceProvider的示例。

答案 1 :(得分:0)

首先创建一个RSAParameters结构并使用您自己的RSA参数填充它。接下来创建一个RSACryptoServiceProvider实例,并在先前定义的参数上调用ImportParameters。此时,您应该能够使用OAEP填充(或不使用OAEP填充)为您的数据调用Decrypt

类似于:

RSAParameters p = new RSAParameters ();
p.D = d;
// ... all parameters
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider ();
rsa.ImportParameters (p);
byte[] decrypted = rsa.Decrypt (encrypted, false);