crypto

记一下前天写的一道密码题

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)进制
1
把十六进制转化为十进制,转化地址 https://tool.lu/hexconvert/

结果:

1
87924348264132406875276140514499937145050893665602592992418171647042491658461

用在线工具分解成两个素数,网址http://www.factordb.com/index.php?query=87924348264132406875276140514499937145050893665602592992418171647042491658461,得到

1
2
275127860351348928173285174381581152299 
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