如何提取RSACryptoServiceProvider生成的素数?

时间:2017-10-10 15:14:25

标签: c# cryptography primes rsacryptoserviceprovider

以下代码试图获取由RSACryptoServiceProvider生成的两个RSA素数。我正在测试primeq的素数,它总是变成非素数。我在这里做错了什么?

RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(384);
var p = rsa.ExportParameters(true);
var primeq = new BigInteger(p.Q);

1 个答案:

答案 0 :(得分:1)

我自己也在努力解决这个问题。我发现有两个问题。

  1. 首先, If cell.Offset(,1).Value = "ACCEPT" And cell.Offset(,2).Value = "ST" Then fgSht.Cells(fgSht.Rows.Count, 1).End(xlUp).Offset(1).Value = cell.Offset(1).Value 使用BigInteger
  2. 中的不同字节序
  3. RSACryptoServiceProvider已签名并使用两个恭维符号,而RSA密钥是无符号整数。
  4. 要解决此问题,我会修改您的代码,如下所示:

    BigInteger

    使用以下代码测试:

    RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(384);
    var p = rsa.ExportParameters(true);
    var primeq = new BigInteger(p.Q.Reverse().Concat(new Byte[1]).toArray());