攻防世界-crypto-Normal_RSA

难度系数:5.0

你和小鱼走啊走走啊走,走到下一个题目一看你又一愣,怎么还是一个数学题啊 小鱼又一笑,hhhh数学在密码学里面很重要的!现在知道吃亏了吧!你哼一声不服气,我知道数学 很重要了!但是工具也很重要的,你看我拿工具把他解出来!你打开电脑折腾了一会还真的把答案 做了出来,小鱼有些吃惊,向你投过来一个赞叹的目光

附件给了两个文件,flag.enc 和 pubkey.pem

第1步:使用 openssl 从 pubkey.pem 中提取出 e 和 modulus(即大素数)的值

输入指令:openssl rsa -pubin -text -modulus -in warmup -in pubkey.pem

第2步:进制转换,将 modulus 从 16 进制转换为 10 进制

在线进制转换网站:https://tool.lu/hexconvert/

modulus(16): C2636AE5C3D8E43FFB97AB09028F1AAC6C0BF6CD3D70EBCA281BFFE97FBE30DD

modulus(10): 87924348264132406875276140514499937145050893665602592992418171647042491658461

第3步:大数分解找 p 和 q

在线分解网站:http://www.factordb.com/

第4步:使用 rsatool 工具生成私钥

rsatool 下载地址:https://github.com/adeptex/rsatool

接下来我们使用 rsatool 生成私钥文件

指令:python rsatool.py -o private.pem -e 65537 -p 275127860351348928173285174381581152299 -q 319576316814478949870590164193048041239

如果出现问题参照:https://blog.csdn.net/jcbx_/article/details/97250664

第5步:使用私钥解密flag

指令:openssl rsautl -decrypt -in flag.enc -inkey private.pem

PCTF

posted @ 2021-03-18 10:55  Moominn  阅读(325)  评论(0编辑  收藏  举报