You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

仅给定N、e及密文C时能否破解RSA密钥?含长度限制与方法问询

针对你的RSA破解问题的解答

当然能破解!而且你的场景里N只有150位、e是5位,这个难度非常低,普通家用电脑分分钟就能搞定。

关于N或e的长度限制

  • 对于模数N:150位的长度远低于当前RSA的安全基线(现在至少要2048位才算勉强安全,1024位都已经被业界判定为不安全)。150位的N对应的两个素因子p和q大概各75位左右,用常规的因式分解工具就能快速拆分。
  • 对于公钥指数e:5位的小指数本身就存在安全风险(比如常见的e=3、17这类小指数,若明文满足特定条件甚至会直接泄露),但在你的场景里,e小反而会让后续的解密计算更高效。

具体操作步骤

1. 分解模数N,得到素因子p和q

因为N长度很短,用普通工具就能完成:

  • 用Python的sympy库,直接调用factorint(N)函数,几秒钟就能出结果。示例代码如下:
    from sympy import factorint
    N = 你的150位模数
    factors = factorint(N)
    p, q = list(factors.keys())
    
  • 或者用专门的因式分解工具如YAFU,针对这种短模数的分解速度极快。

2. 计算私钥指数d

得到p和q后,先计算欧拉函数φ(N) = (p-1)*(q-1),然后求e关于φ(N)的模逆元d——也就是找到d满足(e*d) ≡ 1 mod φ(N)。
在Python里可以直接用内置函数快速计算:

phi = (p - 1) * (q - 1)
d = pow(e, -1, phi)

3. 用私钥d解密密文C

得到d之后,直接用RSA的解密公式计算明文M:

C = 你的密文
M = pow(C, d, N)

这里用Python的三参数pow函数是因为它做的是高效的模幂运算,比自己实现快速幂要快得多。

额外小提示:小指数e的特殊玩法

如果e很小(比如你的5位e),甚至可以尝试用Coppersmith算法直接从C和e、N中恢复明文M,不过这种方法在已经分解N之后就没必要了,直接解密更简单。

内容的提问来源于stack exchange,提问作者user149925

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:20:59