第一次解密码学的题目,有点小激动
首先搞清楚RSA加密:数学不好也能听懂的算法 - RSA加密和解密原理和过程_哔哩哔哩_bilibili
这个博主讲的非常好,具体笔记如下
瞄了一眼我人生中第一条密码学题目
再看了看公式,这不就是妥妥的送分题吗?
结果我用了暴力枚举,以为能枚举出来,结果是我想多了
其实D怎么求出来也问过数学很好的同学(同届的数学大神)
但是他最后也只能得出暴力枚举,这方法一听就知道是错的
现在试了试,果真如此
看了一下别人的WP,原来Python的密码学库这么叼,能直接计算出D
虽然也不知道库的函数底层算法是怎么写的,但咱们会用就行
import gmpy2
p=473398607161
q=4511491
T = (p-1) * (q-1)
E = 17
# 公式: ( D * E ) % T == 1
# 直接导库,套函数,强转int类型就可以了
# 只要把T计算好,也知道E,完美破解,没有任何技术含量
d = int(gmpy2.invert(E,T))
print(d)
虽然调库来打很简单, 但是RSA底层原理还是要懂的,上面哔哩哔哩的学习视频跳不过的