天天看點

關于RSA硬體算法的實作問題!

        最近在研究RSA的算法。得出了一下心得:

1.軟體C實作都是通過32位的加減乘來實作大數的加,減,乘,除,模乘,模運算等。也就是單獨從算法上講,32位的處理器上實作RSA的運算量是減少不了了。

2. 加速RSA算法實作的最有效的途徑,就是使用更加位寬的處理器。硬體實作超寬的處理器代價比較大。

3.大數模幂的算法可以使用Montgomery算法進行加速,但是之前要進行預處理,也就是說,大數的模運算(大數的除法)是避免不了的。

4.在尋找大随機素數的時候,要使用試除法和Miller-Rabin的素性檢測法。是以也可以說大數的除法也是省不了的。

5.RSA的加密解密過程公式比較簡單,真正實作起來速度也比較快。在産生密鑰的過程是比較慢的。Openssl的程式中在PC産生RSA1024的密鑰一般在3秒之内,而RSA2048的密鑰一般在40-50秒左右。

        真正使用硬體來實作,如何能達到每秒鐘簽名速度為200次?32位的處理器,200MHz,是個挑戰!

繼續閱讀