参考文章:http://bobao.360.cn/learning/detail/3058.html
Easy RSA
N 和 e是给定的,先吧密文c(0xdc2eeeb2782c)转换成int,然后用
http://factordb.com/分解N(或者用yafu解开,命令factor(N)),然后用modinv和pow解出m,然后转换成ascii码,可以用在线网站解出来,或者python2.7下,
print '33613559'.decode('hex'),python3.5下,
codecs.decode('33613559','hex_codec')
Medium RSA
文件解压以后得到pubkey.pem和flag.enc,用openssl命令opensslrsa -inpubkey.pem-pubin -text -modulus,得到N和E,吧N先转换成10进制,然后用yafu分解出p和q,然后用rsatool直接生成私钥,然后再用openssl解密,openssl rsautl -decrypt -inkey pkey -in ../mediumRSA/flag.enc -out out.txt,得到flag。
ps:http://linux.51yip.com/search/openssl openssl命令用法
Extremely hard RSA
Openssl解码pubkey.pem,发现E=3,选择用低加密指数攻击,将flag.enc hex出16进制码,再转10进制,然后用脚本爆破,
得到十进制数组,再转16进制转ascii码。得出flag。
hard RSA
Openssl跑出来看到e=2,查了很久资料发现是radin加密,然后找到脚本破解
very hard RSA
文件夹下有两个flag文件,然后判断出来是共膜攻击,也就是密文相同用不同的e加密,
感觉写的不是很详细(周五为什么不能偷懒那),等有时间专门总结一下RSA相关知识。