發布源:深圳維創信息技術發布時間:2020-11-23 瀏覽次數: 次
RSA 中的加密和解密過程都為求一個整數的整數次冪。
如果按其含義直接計算, 則中間結果運算量非常大, 運算速度慢, 且有可能超出計算機所允許的整數取值范圍。
如果利用模運算性質: ( a* b) mod n= [ (a mod n) * (b mod n) ] modn, 就可以減小中間結果, 提高運算速度。
求a的m次方mod n 可按如下步驟進行, 其中a, m 是正整數。
首先將 m 表示成二進制形式bk , bk- 1, ,,b0 , 然后按如下快速指數算法進行:
c= 0;d= 1for ( i= k; i< = 0; i- - ){ c= 2* c;d= (d* d) % n;if ( bi= = 1){c= c+ 1;d= ( d* a) % n;} }return d
其中, c 是指數; d 是中間結果;return d 為*終所求的結果。
例3: 求上面實例中的123的103次方mod 143。
將103 表示為 1100111, 算法的演示過程見表2, 得出123的103次方mod 143= 85。
表2 快速指數算法的結果
致力于加密算法的研究,并在視頻加密方面解決了視頻流大小與加密強度和加解密時間之前的沖突。
Copyright © 2021 深圳市維創信息技術有限公司 版權所有