题目:
首先,审计题目,我们可以从中发现我们想要的N和e两个条件,出现hashlib.md5,在rsa中d也称为解密指数,当d比较小的时候,e也就显得特别大了。
适用情况:e过大或过小(一般e过大时使用)
接下来,我们先下载工具rsa-wiener-attack
https://github.com/pablocelayes/rsa-wiener-attack
在操作中需要注意的是,我们要将破译脚本放于与rsa-wiener-attack的同一个文件中。
#python2 import hashlib import RSAwienerHacker N = 101991809777553253470276751399264740131157682329252673501792154507006158434432009141995367241962525705950046253400188884658262496534706438791515071885860897552736656899566915731297225817250639873643376310103992170646906557242832893914902053581087502512787303322747780420210884852166586717636559058152544979471 e = 46731919563265721307105180410302518676676135509737992912625092976849075262192092549323082367518264378630543338219025744820916471913696072050291990620486581719410354385121760761374229374847695148230596005409978383369740305816082770283909611956355972181848077519920922059268376958811713365106925235218265173085 d = RSAwienerHacker.hack_RSA(e,N) print(d) flag = "flag{" + hashlib.md5(hex(d)).hexdigest() + "}" print(flag)
(需要注意的是,此处必须用python2执行,py3会一直出现报错。)
在使用工具后,根据题目将d进行md5哈希即可,
最终得到结果:
8920758995414587152829426558580025657357328745839747693739591820283538307445
flag{47bf28da384590448e0b0d23909a25a4}