攻防世界 —— Crypto新手练习区7题(easy_RSA)题解

题目分析

这道题目考察了对RSA非对称加密算法的理解,算法的原理及流程可以看RSA介绍这篇博客。

解题过程

目前p, q, e都是已知的,根据算法原理我们可以知道要求的d与e满足ed\equiv 1(mod\ \varphi(N)),而\varphi (N)=(p-1)(q-1)也可以计算出来。所以我们可以通过求e模\varphi (N)的乘法逆元得到d的值。

这里我用到了一个python的库gmpy2来求解d,gmpy2的安装比较简单,直接在Anaconda Navigator的环境中搜索gmpy2安装即可,见下图:

攻防世界 —— Crypto新手练习区7题(easy_RSA)题解_第1张图片

安装好gmpy2之后,就可以利用该库求解d的值了,我的python代码如下:

import gmpy2
p = 473398607161
q = 4511491
e = 17
phin = (p - 1) * (q - 1)
d = gmpy2.invert(e, phin)
print(d)

解出d之后就可以提交FLAG了。

你可能感兴趣的:(CTF)