本周主要学习的是rsa加密算法,目前rsa有三大种题目:
1.已知pqec,求m。这种题是利用pq的欧拉函数,计算phin=(p-1)*(q-1),然后根据e*d mod phin=1,利用gmpy2库中invert函数,d = gmpy2.invert(e, phin)得出d,最后得到明文m。
2.已知nedc,求m。利用e*d mod phin =1,爆破反推phin以及pq.
3.已知nec,求m。这类题目是我目前遇到的最难的题,目前我已知的解法只有爆破拆分n,得到pq,希望能多遇到这类题,以便找到更好的解法。
rsa基本公式:
c = m^e mod n
m = c^d mod n
e*d mod phin = 1
phin = (p-1)*(q-1)