这次roarCTF就简单看了看两道RSA的题目,感觉还是有新意的,现在特地记录一下
rsa
1 | A=(((y%x)**5)%(x%y))**2019+y**316+(y+1)/x |
很明显,这里需要我们通过A和n的值来求出p,q的值,进而求出私钥d,最后进行解密。
我们先进行第一步,将x,y进行爆破:
1 | #coding=utf-8 |
得到x,y之后,我们可以利用n=p*q
对z的取值进行爆破:
1 | #coding=utf-8 |
然后就可以求出d:
1 | # coding = utf-8 |
然后就可以直接解密了:
1 | #coding:utf-8 |
babyRSA
1 | import sympy |
以前没做过这种题目,现在遇到正好积累一下,关于三个合数的RSA
这里需要用到一个数学结论:
wilson
定理,公式表达大概如下,此处p
为素数
( p-1 )! = -1 mod p
应用:快速求阶乘
解密脚本如下:
1 | #coding=utf-8 |
RoarCTF{wm-CongrAtu1ation4-1t4-ju4t-A-bAby-R4A}