1.工具:thonny
2.解题:
打开附件,看到如下
在一次RSA密钥对生成中,假设p=473398607161,q=4511491,e=17
求解出d
*RSA加密算法:
①算法原理:RSA是一种非对称加密算法;
②CTF中的常见题型:
a.给出p、q、e求d;
b.已知n、e、c,求明文m;
c.选择密文攻击;
d.共模攻击(相同的n,不同的e);
e.低指数攻击(e过小)。
③根据该题我们先介绍给出p、q、e求d的方法:
方法一:
a.计算模数n:
n = p * q = 2135733555619387051
b.计算欧拉函数φ(n):
φ(n) = (p-1) * (q-1) = 2135733082216268400
c.计算私钥指数d:
(1)d是e模φ(n)的模逆元:e × d ≡ 1 (mod φ(n))
(2)使用扩展欧几里得算法求得:d = 125631357777427553
于是我们得到了flag为cyberpeace{125631357777427553}
方法二:
正常情况下,再打ctf时、时间很重要,选手需要抢前三血,于是对常见的密码学都有现成的脚本,所以我们可以用现成的脚本进行解题,如下
然后我们运行脚本,如下
可以很快得到flag为cyberpeace{125631357777427553}