RSA算法密鑰長度的選擇

RSA算法密鑰長度的選取直接關係到加解密、簽名驗籤的安全強度和運算速度。密鑰的長度實際上是指公鑰模N的長度(以Bit爲單位),理論上來講N越大,安全強度越高,算法運算速度越慢。因此,RSA算法密鑰長度要結合項目的實際情況來選取,以求在安全性和運算性能之間取得平衡點。例如:有些產品的應用場景要求RSA加解密必須具有很高的實時性,比如公交刷卡機。如果RSA運算時間過長會導致刷卡交易整體時間延長,用戶刷卡體驗變差,上下車客流速度變慢,因此這種應用場景不適合選取過高的公鑰模長。有些PC端產品依託於強大CPU性能,不需要過多考慮RSA運算速度,還有些終端產品,雖然MCU運算性能偏弱,但是增加了一顆帶有協處理器的加密芯片來協助MCU完成運算,這樣就能很好的實現運算加速,因此不需要過多擔心速度問題,可以選取較高的公鑰模長來提升系統安全強度。總體來說,現在市場上RSA公鑰長度應用較多的是1024位和2048位,簡稱RSA1204算法和RSA2048算法。
RSA幾個特性如下:
(1)密鑰長度增長一倍,公鑰操作所需時間增加約4倍,私鑰操作所需時間增加約8倍,公私鑰生成時間約增長16倍。
(2) 一次能加密的密文長度與公鑰長度成正比,如RSA1024,一次能加密的內容長度爲 1024/8 = 128byte(包含填充字節)。所以非對稱加密一般都用於加密對稱加密算法的密鑰,而不是直接加密內容。
(3) 加密後密文的長度爲公鑰的長度,例如公鑰長度爲1024Bit(128Byte),最後生成的密文固定爲 1024Bit(128Byte)。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章