2019年6月第一周打卡《rsa》解题wp
RSA加密,直接python解密即可:```
>>> c=4153372421328787064168548641845708183921443446990158572506114559735441950501706984118235944441928889749083563790293558028143373121367441549974248211570336802004821051820943229232421937298269855190652251294220483768084460779714162849925877879859830009443131489814222929347727735616113359695228615432020363240247474622132986939108457393618346100033147945959684443762976681454755482192433993286205527003029269574787026484389622816932835184754540312561890719407986296481186847292967270288752616
>>> gmpy2.iroot(c,3)
(mpz(16074357572745018593418837326290993512421736655307780242162599660198598253230550168811761868953242350136362894008095983571749530656901163555918436741973772511575306L), True)
>>> x=16074357572745018593418837326290993512421736655307780242162599660198598253230550168811761868953242350136362894008095983571749530656901163555918436741973772511575306
>>> x=libnum.n2s(16074357572745018593418837326290993512421736655307780242162599660198598253230550168811761868953242350136362894008095983571749530656901163555918436741973772511575306)
>>> x1=x[::-1].encode('rot13')
>>> x1
'This is the password you need for the ZIP file: flag{rsaM0reD33peR}\n'
``` 看到这个骚骚的题和题解,我决定做下备注{:6_131:}
第一眼看到这个rsa题目的时候,心想应该不会太难,不过就是nce,或公私钥转换,再难点也应该就是各种脑洞编码来一遍,于是开开心心打开了kali和之前写过的脚本emmmm
然而当我下载完题目emmmmmm
没有看到想要的n或密钥
一个大整数,还是个偶数emmmm
心中小马在奔腾{:6_148:}
绝望{:6_150:},第一次见这种RSA,,,
常规的应该是分解大素数,考点也就是欧几里得算法,扩展欧几里得算法,就是分解大素数呗
上来题目就来了个偶数emmmmm
心想会不会是密钥给编码了呢,然后一顿骚操作还原出来一堆乱码,,,mmp
等题解吧~{:6_149:}没思路。。。。。。。
=====================================以上为扯犊子和吐槽,下面是正文备注===================================
需要的模块,gmpy2和libnum
两大数学问题杀手
推荐python2.x,钥匙3.x的话可能语法上比较难用点
第一步:密文开三次根
mpz=gmpy2.iroot(c,3)
结果如下:
这步就是将大整数c开3次方根
开完根之后将结果进行n2s转字符串
res=libnum.n2s(mpz)
然后我们print以下res看看结果
被编码了emmm
Rot13,和那个回旋踢的题目类似了就
然后解码得到flag
不得不说这个思路有点骚,涨知识了{:6_117:}{:6_117:}{:6_117:}
总体上说,很简单,总结如下
先开三次根——再转可见字符——然后解码——答案到手
(··········我估计下次遇见还是找不到入手点emmmm)
Gu-f 发表于 2019-6-8 16:28
看到这个骚骚的题和题解,我决定做下备注
第一眼看到这个rsa题目的时候,心想应该不会太难,不过 ...
写的真好,补充了这个wp的文字~
页:
[1]