RSA算法密鑰長度的選擇 RSA算法密鑰長度的選取直接關系到加解密、簽名驗簽的安全強度和運算速度。密鑰的長度實際上是指公鑰模N的長度(以Bit為單位),理論上來講N越大,安全強度越高,算法運算速度越慢。因此,RSA算法密鑰長度要結合項目的實際情況來選取,以求在安全性和運算性能之間取得平衡點。例如:有些產品的應用場景要求RSA加解密必須具有很高的實時性,比依托于強大CPU性能,不需要過多考慮RSA運算速度,還有些終端產品如公交刷卡機。如果RSA運算時間過長會導致刷卡交易整體時間延長,用戶刷卡體驗變差,上下車客流速度變慢,因此這種應用場景不適合選取過高的公鑰模長。有些PC端產品,雖然MCU運算性能偏弱,但是增加了一顆帶有協處理器的加密芯片來協助MCU完成運算,這樣就能很好的實現運算加速,因此不需要過多擔心速度問題,可以選取較高的公鑰模長來提升系統安全強度。總體來說,現在市場上RSA公鑰長度應用較多的是1024位和2048位,簡稱RSA1204算法和RSA2048算法。 RSA幾個特性如下: (1)密鑰長度增長一倍,公鑰操作所需時間增加約4倍,私鑰操作所需時間增加約8倍,公私鑰生成時間約增長16倍。 (2) 一次能加密的密文長度與公鑰長度成正比,如RSA1024,一次能加密的內容長度為 1024/8 = 128byte(包含填充字節)。所以非對稱加密一般都用于加密對稱加密算法的密鑰,而不是直接加密內容。 (3) 加密后密文的長度為公鑰的長度,例如公鑰長度為1024Bit(128Byte),最后生成的密文固定為 1024Bit(128Byte)。 |
學習了,RSA的加密速度還得依托于CPU的性能,如果性能好,密鑰長度就可以選擇位數多一些的。 |
樓主的文章對于我這這種小白來說通俗易懂,漲知識了 |
這樣用帶有協處理器的加密芯片運算RSA,提升安全強度還實現運算加速,倒是一個不錯的方案 |
是不是RSA長度越長越好?越安全呢? |
不同行業中如何選擇1024和2048呢?比如我是想做個產品中的數據加密,能否用到RSA這種呢? |
RSA 1024和AES 256,這兩種加密算法哪種更安全 |
各有所長,前者是非對稱加密,是業內普遍使用的,加密效率較后者低,可能會被破,雖然在成本的限制下可行性不高。AES256是用于取代3DES的,破解的相對少些。 |
現在都4096了、1024都比較少了 |
其實跟用法有關,一般都是用RSA進行握手傳遞密鑰使用,所以位數確實要選高點。但如果做數據流加密,那肯定不能選太高,RSA4096的話,估計你都跑不起來 |
加密數據超過128字節或者不足可以加密嗎 |
看你用的是多少位的RSA了,明文長度需等于公鑰長度,不足需要填充,超了不行。 |
rsa算法密鑰長度那就看公鑰模長唄 |
密鑰越長,加密時間肯定就越長,那么選擇一個合適的長度就很重要了 |
這時間是以4的倍數增長嗎 |
文章里寫了,密鑰長度增長一倍,公鑰操作所需時間增加約4倍,私鑰操作所需時間增加約8倍 |
樓主幫忙推薦一款這種支持較高安全等級加密算法的芯片 |
凌科LKT4305-GM,LCS4110都不錯,大家也可以去官網上看下型號詳情 |
看來要使用RSA算法的話,還是要選擇具有RSA協處理器的安全芯片。 |
看來加密芯片還是需要有較高的技術才能保證安全 |