Wiener‘s attack on RSA

这个攻击本身不复杂,代码也不难写,离谱的是全网几乎找不到好的例子,遂决定自己写一篇。

原理参考Wiener的原文:https://ieeexplore.ieee.org/document/54902

例子参考:【密码学】RSA的攻与防_3.0

注意到论文中给出的的例子是错的,ed\equiv1(mod\ \phi(n)))不成立,可以看到表格里给出的(p-1)(q-1)也不对。表格中的Guess of (p-1)(q-1)应为\left \lfloor (edg-1)/k \right \rfloor

而上述网址中给出的例子:

分母应该也不是d,而是dg.

另一个值得注意点是本人在运行较大例子时会出现g=0的情况,这是由于k=1(多次debug得出的结果),因此需要在k=1时单独设置g=1.

只靠小例子判断所写代码正确性是不够的,这里给出一个大数例子:

N=13944220401877938113014934848099117271555842144465711135230872813021395268695304462884287334296659283504546204155028953304304152419500276351517026203090560312682332100557949888340674488347457083400825956841368247339132128545661778946404948547066296060177763630405864758766614366952316600616993369171973988711601072880358006049128862543088069228671596572559102238313290682720666719883296361722526485195136936001869087770636745643885209795529748130091587883621035733051140981054393173745532828558933056050658667881198651606339538768702135427015143742705493428714835468242036488501979845083076916758773475058112957196487
E=3728438759195168737135992109727249348803612435894359189081738936348226606690336984297449194984522245267347608647851637838095872369329569971857522894319893342321565064748765439590130905828618062110655958711360104101926567503619653408915623418784429679330189884729041367661885435565586952318599099463080887219162354874117983707707854892379461221207015463083472995141690891986170606756925711854474324916913314927750891337011838020040295424415142917065939663073173249929035030071510843219620490640863993468878684803620906049125234829708750801749587906700784584868164495039453453030247421811968896558706354352374798351579
供大家参考,本人运行的结果为:
d为:1865706158898930814843809973391391034496627416722408491295843373203743091025794096703721242838624399241153730983346949870533083381882052282159560103118099
 p为:121461017779406049848489347897713382205791467689209582195015689935976662595699858242402168514720046479479431373136076211744954984597479774309799835471091417384034696095871495595647543810642132849509349068058566570710266454235788404789710732122238681322545770100205873706287715756839117698678607284781913505889
 q为:114804079998761607723819621113849449305755921790125862371299014361836740027443464359523526297901794605247367760276307484949495866258090216594983819494842052422959105378400632945986818824710121492709366803430535681636050846862693751555083970347705957227281044389381704329672254191951210435382868214269902969383
验证通过 :) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值