本篇作為課程作業的筆記,著重在 RSA 加解密的實作流程與加速方法,不涉及其數學證明與推導。
git clone https://github.com/Petingo/RSA
cd RSA/code
python3 test.py
快速驗證一個數是否為質數,根據計算,當 key 的長度在 2048 bits 時,迭代的次數最好 ≥ 40。
在 Miller-Rabin test 以及加解密的過程中會,需要不斷計算 ;可以採用 square and multiply(快速冪)進行加速。
詳細推導可以參考這篇文章。 當擁有 、 時,可以下列式子加速運算( 為明文, 為密文):
上面可以先算好並存起來,每次解密時需要執行: