对RSA的攻击——通过E和N求出D

一 点睛

密码破译者不知道D,但是却知道公钥中的E和N。在生成密钥对的过程中,D原本也是由E通过一定的计算求出来的,那么密码破译者是否能够通过E求出D呢?不能。

生成密钥对的方法中,在D和E的关系式中:

E*D mod L=1

出现的数字L,而L是lcm(p-1,q-1),因此由E计算D需要使用p和q,但是密码破译者并不知道p和q,因此不可能通过和生成密钥对时相同的计算方法来求出D。

对于RSA来说,有一点很重要,那就是质数p和q不能被密码破译者知道。把p和q交给密码破译者与把私钥交给密码破译者是等价的。

二 对N进行质因数分解攻击

p和q不能被密码破译者知道,但是N=p*q,而且N是公开的,那么能不能由N求出p和q呢?p和q都是质数,因此由N求p和q只能通过将N进行质因数分解来完成。因此,可以说:

一旦发现了对大整数进行质因数分解的高效算法,RSA就能够被破译。

如果能够快速地对大整数进行质因数分解,就能够将N分解成质数p和q,然后就可以求出D,这是事实。

然而,现在我们还没有发现对大整数进行质因数分解的高效算法,而且也尚未证明质因数分解是否真的是非常困难的问题,甚至也不知道是否存在一种分解质因数的简单方法。

三 通过推测p和q进行攻击

即便不进行质因数分解,密码破译者还是有可能知道p和q。

由于p和q是通过伪随机数生成器产生的,如果伪随机数生成器的算法很差,密码破译者就有可能推出出p和q,因此使用能够被推测出来的随机数是非常危险的。

四 其他攻击

只要对N进行质因数分解并求出p和q,就能够求出D。

但是至于“求D”与“对N进行质因数分解”是否是等价的,这个问题需要通过数学方法证明。2004年已证明了“求D”与“对N进行质因数分解”在确定性多项式时间内是等价的。

这样的方法目前还没有出现,而且我们也不知道是否真的存在这样的方法。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值