日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

SAGE(SAGEMATH)密码学基本使用方法

發布時間:2025/3/21 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SAGE(SAGEMATH)密码学基本使用方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

求逆元

inv=inverse_mod(30,1373) print(30*inv%1373) #1

擴展歐幾里得算法

d,u,v=xgcd(20,30) print("d:{0} u:{1} v:{2}".format(d,u,v))#d:10 u:-1 v:1

孫子定理(中國剩余定理)

計算參考:
https://blog.csdn.net/destiny1507/article/details/81751168

def chinese_remainder(modulus, remainders):Sum = 0prod = reduce(lambda a, b: a*b, modulus)for m_i, r_i in zip(modulus, remainders):p = prod // m_iSum += r_i * (inverse_mod(p,m_i)*p)return Sum % prod chinese_remainder([3,5,7],[2,3,2]) #23

求離散對數

2x2^x2x ≡≡ 131313 modmodmod 232323

x=discrete_log(mod(13,23),mod(2,23)) #或discrete_log(13,mod(2,23)) print(x)

取模求根

x2x^2x2 ≡≡ 555 modmodmod 414141

x=mod(5,41) r=x.nth_root(22)

歐拉函數

print(euler_phi(71)) #70

輸出表達式近似值

result=pi^2 result.numerical_approx()

素數分布(Pi(x))

π(x)x/In(x)\frac{\pi(x)}{x/In(x)}x/In(x)π(x)?

result=prime_pi(1000)/(1000/log(1000)) result.numerical_approx() #1.16050288686900

創建整數域中的橢圓曲線

y2=x3+a4x+a6y^2=x^3+a_4x+a_6y2=x3+a4?x+a6?

a4=2;a6=3;F=GF(7); E=EllipticCurve(F,[0,0,0,a4,a6]) print(E.cardinality()) #6 print(E.points()) #[(0 : 1 : 0), (2 : 1 : 1), (2 : 6 : 1), (3 : 1 : 1), (3 : 6 : 1), (6 : 0 : 1)]

創建點

point1=E([2,1]) point2=E([3,6]) print(point1+point2)#(6 : 0 : 1) print(point1-point2)#(2 : 6 : 1) 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的SAGE(SAGEMATH)密码学基本使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。