攻防世界——Crypto新⼿练习区7题(easy_RSA)题解
题⽬分析
这道题⽬考察了对RSA⾮对称加密算法的理解,算法的原理及流程可以看这篇博客。
解题过程
⽬前p, q, e都是已知的,根据算法原理我们可以知道要求的d与e满⾜,⽽也可以计算出来。所以我们可以通过求e模的乘法逆元得到d的值。
这⾥我⽤到了⼀个python的库gmpy2来求解d,gmpy2的安装⽐较简单,直接在Anaconda Navigator的环境中搜索gmpy2安装即可,见下图:
安装好gmpy2之后,就可以利⽤该库求解d的值了,我的python代码如下:
import gmpy2
python新手代码练习p = 473398607161
q = 4511491
e = 17
phin = (p - 1) * (q - 1)
d = gmpy2.invert(e, phin)
print(d)
解出d之后就可以提交FLAG了。