Normal_RSA
你和小鱼走啊走走啊走,走到下一个题目一看你又一愣,怎么还是一个数学题啊 小鱼又一笑,hhhh数学在密码学里面很重要的!现在知道吃亏了吧!你哼一声不服气,我知道数学 很重要了!但是工具也很重要的,你看我拿工具把他解出来!你打开电脑折腾了一会还真的把答案 做了出来,小鱼有些吃惊,向你投过来一个赞叹的目光
主要考察RSAtool的使用,github 下载链接https://github.com/ius/rsatool
[工具]
1 | openssl和rsatool |
openssl在kali虚拟机里有,使用方法参考https://www.cnblogs.com/yangxiaolan/p/6256838.html
这道题给了两个文件,一个是加密过的的flag.enc,另一个是公钥pubkey.pem。
先用openssl提取出pubkey.pem中的参数
1 | openssl rsa -pubin -text -modulus -in warmup -in pubkey.pem |
得到Modulus(16)进制
把十六进制转化为十进制,转化地址 https://tool.lu/hexconvert/
结果:1
87924348264132406875276140514499937145050893665602592992418171647042491658461
用在线工具分解成两个素数,网址http://www.factordb.com/index.php?query=87924348264132406875276140514499937145050893665602592992418171647042491658461,得到1
2275127860351348928173285174381581152299
319576316814478949870590164193048041239
知道两个素数,随机定义大素数e,求出密钥文件,命令是:1
python rsatool.py -o private.pem -e 65537 -p 275127860351348928173285174381581152299 -q 319576316814478949870590164193048041239
然后我就出现了问题在这个地方emmm,可能是我的工具有问题emmmm我要存疑了
如果没有问题的话正常情况下会生成一个private.pem的文件,最后解密得到flag
1 | openssl rsautl -decrypt -in flag.enc -inkey private.pem |