一.[SWPUCTF 2021 新生赛]crypto2
该题附件中有两个e,所以应该是共模攻击,运用拓展欧几里得算法,这里我直接参照培训文件的题型五
第一题解出
二.[羊城杯 2021]Bigrsa
该题有两个n,所以是共享素数的题型,有三个素数,我们先用GCD函数求解q,再利用q依次求解p1,p2,上次培训文件中题型四例题中给了格式,但该题的c只有一个,需先求出c2,再求c1(不知道理解对不对),所以最后求解明文时pow套用pow,解出该题
三.[SWPU 2020]happy
根据题目内容,这里首先要进行一个二元方程组的求解,这里利用sympy工具包求解此工具包涉及支持符号计算、高精度计算、模式匹配、绘图、解方程、微积分、组合数学、离散 数学、几何学、概率与统计、物理学等方面的功能。功能较为强大,解方程组时性能也较好。
根据附件给出的两个式子,来求出p,q
求出p,q后,就是一个很常规的解密过程
第三题解出
四. [BJDCTF 2020]EasyRSA
该题首先要分析一个很重要的代码
z=Fraction(1,Derivative(arctan(p),p))-Fraction(1,Derivative(arth(q),q))
Fraction()是求一个分数,比如Fraction(2,9)就是九分之二,Derivative()是求导函数,包含两个参数,一个是函数表达式,一个是变量,arctan()是反正切函数,arth()是双曲正弦函数,这连个函数的倒数可以查以下,然后这个分数函数会把它变成倒数,最后表达式为
也是一个二元方程组求解,再求明文的过程
困难:对二元方程组的求解并不熟悉,借助题解帮助求出的
第四题解出
五.[HUBUCTF 2022 新生赛]RSAaaa
这道题我借助了一个工具来分解,536970330703利用yafu工具直接分解
直接利用求出发p,q,进行循环与s当中的内容进行一一匹配
困难 :最后匹配这里有点不太会,参照了题解,但没太看懂【2:3】是什么意思;
第五题做出
六.做题遇到的卡壳的地方
在做[SWPUCTF 2021 新生赛]crypto3这道题的时候
PR.<m> = PolynomialRing(Zmod(n))
一直显示语法错误,不知道该怎么做,这道题最后只能放弃了