print(pow(2, e, n))
print(pow(4, e, n))
print(pow(8, e, n))
'''
128509160179202
518818742414340
358553002064450
'''
設c1=128509160179202 c2=518818742414340 c3=358553002064450
由代碼得出方程組:
c1=2^e mod n
c2=4^e mod n=2^2e mod n
c3=8^e mod n=2^3e mod n
轉換成乘模運算為:
c2=2^2e mod n=(2^e * 2^e) mod n=(2^e mod n)(2^e mod n) mod n=c1^2 mod n=c1^2-kn
同理c3=c1*c2-pn(k和p都是倍數變數,無實際意義)
然后就能用gcd求最大公因數來求解n:
n = gcd(pow(c1,2)-c2,c1*c2-c3)
最后就可以通過離散對數求出e了:
e = sympy.discrete_log(n,c1,2)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/356740.html
標籤:其他
上一篇:【題解】《演算法零基礎》第22講:字串演算法(2):字串比較
下一篇:程式人生今日啟航
