RSA之初学维纳攻击

当RSA公钥中的指数e过大或过小时,Wiener's Attack可能威胁到RSA的安全性。如果满足特定条件,攻击者能在多项式时间内分解n。文章介绍了如何在不分解n的情况下,利用Wiener攻击求解私钥d,通过连分数展开计算渐进分数,从而找到d的值。给出了具体的e和n值,并提到实际操作中涉及的数学计算较为复杂。
摘要由CSDN通过智能技术生成

Wiener’s Attack

适用情况:e过大或过小。

在e过大或过小的情况下,可使用算法从e中快速推断出d的值。

Wiener 表示如果满足:

d<1/3n1/4

那么一种基于连分数的特殊攻击类型就可以危害 RSA 的安全。此时需要满足:

q<p<2q

如果满足上述条件,通过 Wiener Attack 可以在多项式时间中分解 n,思路如下:

N = pq

φ(n)=(p−1)(q−1)=pq−(p+q)+1=N−(p+q)+1

∵p, q 非常大 ,
∴pq≫p+q,
∴φ(n)≈N

∵ed≡1modφ(n),
∴ed−1=kφ(n),
这个式子两边同除 dφ(n)

可得:

eφ(n)−kd=1dφ(n)

∵φ(n)≈N,
∴eN−kd=1dφ(n),同样 dφ(n) 是一个很大的数,所以 eN 略大于 kd, e 和 N 是我们是知道的,公钥中给我们的,所以我们计算出 eN后,比它略小的 kd 用计算 eN 的连分数展开,依次算出这个分数每一个渐进分数,由于 eN 略大于 kd,wiener 证明了,该攻击能精确的覆盖 kd。

例题:
在不分解n的前提下,求d。

给定:

e = 1405869541701533407158801034658674979053991328

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值