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),
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/248546.html
標籤:其他
上一篇:Jarslink原始碼決議-----ModuleLoaderImpl
下一篇:JAVA多執行緒之JUC總結
