相关疑难解决方法(0)

从私有指数(d),公共指数(e)和模数(n)计算素数p和q

如何从e(publickey),d(私钥)和模数计算p和q参数?

我手头有BigInteger键我可以将粘贴复制到代码中.一个公钥,一个私钥和一个模数.

我需要从中计算出RSA参数p和q.但我怀疑有一个我无法用谷歌找到的库.有任何想法吗?谢谢.

这不一定是暴力,因为我不是在私钥之后.我只有一个遗留系统,它存储公钥,私钥对和模数,我需要将它们放入c#以与RSACryptoServiceProvider一起使用.


所以它归结为计算(p + q)

public BigInteger _pPlusq()
    {
        int k = (this.getExponent() * this.getD() / this.getModulus()).IntValue();

        BigInteger phiN = (this.getExponent() * this.getD() - 1) / k;

        return phiN - this.getModulus() - 1;

    }
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.你能发现问题吗?


5个小时后...... :)

好.如何在C#中选择Zn*(http://en.wikipedia.org/wiki/Multiplicative_group_of_integers_modulo_n)中的随机数?

c# cryptography rsa

8
推荐指数
2
解决办法
1万
查看次数

如何从P,Q和E计算用于RSA加密的D.

我试图找到D使用P,QE(Dp,Dq和可得).(p-1mod q)

根据这个答案这个答案并更新了这个问题用下面的方法,我应该得到D.

为了测试这一点,我生成了密钥对,并尝试从现有组件中计算组件,并将结果与​​原件进行比较.所有结果都很好,除了D.我从上面的答案中复制了我的计算错误.如果有人能告诉我我做错了什么会很棒.

测试代码

using System;
using System.Numerics;
using System.Security.Cryptography;
using System.Text;

class Program {

    static RSAParameters key = new RSAParameters() {
        P = new byte[]{
                0xDE, 0xA6, 0x35, 0x0B, 0x0A, 0xA5, 0xD7, 0xA0, 0x5C, 0x49, 0xEA, 0xD1, 0x3F, 0xA6, 0xF5, 0x12, 
                0x19, 0x06, 0x25, 0x8A, 0xD9, 0xA7, 0x07, 0xE7, 0x0D, 0x8A, 0x7C, 0xB1, …
Run Code Online (Sandbox Code Playgroud)

.net c# rsa chinese-remainder-theorem

5
推荐指数
1
解决办法
5187
查看次数

标签 统计

c# ×2

rsa ×2

.net ×1

chinese-remainder-theorem ×1

cryptography ×1