Rsa
RSA加密安全模式,明文長度限制vs.密鑰長度
我有兩個關於 RSA 加密的問題需要確認:
- 假設使用 RSA 2048 位密鑰對,安全加密模式是什麼?ECB / OAEPWithSHA -256AndMGF1Padding和ECB / OAEPWithSHA-1AndMGF1Padding 是安全模式嗎?
- 例如,我們知道要加密的明文的****最大長度受密鑰長度的限制。
RSA 不是為處理大量數據而設計的。您只能處理有限長度的消息,這取決於密鑰大小。密鑰越大,可以加密的消息越大。
對於 2048 密鑰,最大明文長度是多少?它們之間的數學關係是什麼?
讓我們在這裡假設 Java。在這種情況下,名稱中的 ECB 部分是用詞不當。ECB 是分組密碼最簡單的模式。這意味著將明文消息分成多個塊,然後分別加密它們。Java 的 RSA 實現不會拆分任何內容,您只能加密單個純文字塊。他們應該改用“無”或完全忽略它。
是的,如果正確實施,OAEP 是安全的。它需要使用密碼安全散列函式參數化的遮罩生成函式。您可以將 MGF1 與密鑰派生函式進行比較。對於這種用途,SHA-1 仍然是安全的。如果只是為了避免協議上的討厭問題,我仍然更喜歡 SHA-256。這種使用速度非常快,新處理器甚至包含加速算法的指令。
對於最大明文消息,我將簡單地參考以前的答案。如果使用 OAEP,它列出了 SHA-1 的 214 字節和 SHA-256 的 190 字節的有效負載大小。