RSA常见题型-共模攻击
共模攻击是一种针对使用相同模数(N)但不同公钥指数(e)的多个RSA加密算法进行的攻击。它利用了RSA算法中同一明文在不同公钥指数下进行加密后得到的密文之间的关系。(拥有一个相同的明文,但是进行了多次rsa的算法,通过在加密过程中,使用不同的公钥指数e,算出两个不同的密文,就是密文c1和c2。出题类型:给一个c1、c2,然后给两个公钥e1、e2,还有一个相同的模N,就是一个比较典型的共模攻击)
第1题:sameMod(Buuctf)
下载附件后得到一个txt文件
图中画红线的位置为相同的模量n,画绿线的位置为不同的公钥指数e,下面两个为加密之后的密文c1和c2,是比较典型的共模攻击。
整理后如图所示
编写Python脚本
调用了gmpy2库中的acdext函数,该函数用来计算e1和e2的乘法逆元,得到明文如图所示
可以观察到明文的特点,101 108 97 103(10进制)的ascll转换后为flag,所以我们需要将明文转换成ascll码
转换后的flag值如图所示。
RSA常见题型-低解密指数攻击
低解密指数攻击也叫“维纳攻击”,解密指数指的是私钥d,当私钥值过小会加速破译的过程。CTF中可以根据e的长度判断是否符合低解密指数攻击,此攻击方式适用于e值非常大的情况。
第2题:rsa2
下载插件后获得Python脚本,如图所示
可以发现e的值非常大,判断为低解密指数攻击,最后一行解释:解出的d的16进制形式的MD5值为flag
首先我们需要下载解题文件https://github.com/pablocelayes/rsa-wiener-attack,将我们写的Python脚本,和它放在同一个目录下
得到d之后,使用题给的py代码解得d的16进制的MD5值,得到最终flag。