介绍一下RSA中常用的两款工具RSAtool和yafu。
1 RSAtool
没有找到RSAtool
自己的网站或是官方一点的下载地址,搜索引擎大致看了看也没看到比较好的介绍或是使用说明,只好自己随便写写了。
RSAtool
是一个非常方便实用的小工具,可以用来计算RSA
中的几个参数、生成密钥、加解密,一些不太复杂的破解工作也可以用它。
我们找一道题为例,来看看RSAtool
的基本用法。
还记得veryeasy RSA吗?是不是不难?那继续来看看这题吧,这题也不难。
已知一段RSA加密的信息为:0xdc2eeeb2782c且已知加密所用的公钥:
(N=322831561921859 e = 23)
请解密出明文,提交时请将数字转化为ascii码提交
比如你解出的明文是0x6162,那么请提交字符串ab
提交格式:PCTF{明文字符串}
这道题可以用Python算出来,在上一篇RSA
简单介绍里已经说过了,其实用RSAtool
可以更方便,因为不用自己去写脚本。
图中的P
、Q
、R
、D
、E
分别就是RSA
算法中的p
、q
、N
、d
、e
,右上角选择进制,注意不要弄错,e
只有十六进制可用,所以这里要把23
换成17
。
将N=322831561921859
填入,左下角有一个Factor N
的按钮,这是分解N
的意思,点一下,会自动开始分解因数,得到P=13574881
、Q=23781539
,再点一下Calc. D
,计算出d=42108459725927
,这时可以看到Test
按钮不再是灰色,表明可以使用简单的加解密功能,点它,弹出一个框。
第一个框是明文,第二个框是密文,输入明文6162
,点击Encrypt
,得到密文178401292768926
,这时就可以使用解密功能(好像必须先用一次加密才行)。
密文0xdc2eeeb2782c
,换算十进制242094131279916
,点Decrypt
,直接得到字符串3a5Y
。
2 yafu
yafu
主要是对比较大的N
进行分解,效率比普通的方法快很多。比如分解N = 87924348264132406875276140514499937145050893665602592992418171647042491658461
。
用RSAtool
会崩掉。。。
用法很简单,就是factor()
就好了。
过几分钟会出结果。
P39 = 275127860351348928173285174381581152299
P39 = 319576316814478949870590164193048041239