RSA 1024和AES 256两种加密算法,哪种更安全?

已邀请:

rix - 太不專業了

推荐来自: Joey 张沇 離娮

本來 RSA 是非對稱加密,而 AES 是對稱加密,兩者在使用場景上就有很大的不同,對比兩者就像是對比貨輪跟轎車一樣。安全性的對比建立在很多條件之上,對不同種類的加密算法也有不同的評價標準,所以對於 RSA 和 AES 兩種不同種類的算法,我們只能從特定的角度出發進行對比。
 
從算法複雜度的角度來說,這兩種算法的複雜度都是由密鑰長度決定的,根據 RSA Security 的說法,RSA 1024 的算法複雜度等價于 AES 80。從這點上來看,AES 256 比 RSA 1024 更複雜。
 
從加密空間大小的角度來說,RSA 只支持與其密鑰大小相等的區塊進行加密,比如 RSA 1024 只支持對 1024 bit 的數據塊進行加密,如果要加密的數據大於這個大小則需要將數據切割成多個數據塊分別進行加密。這個切分數據的過程目前並沒有一個統一的標準,不同的 RSA 實現都有自己的切分算法,所以這一塊有可能會產生安全隱患。而對於一個 n bit 的 AES 加密運算來說,其理論支持的數據大小能達到 n*2^(n/2) bit,就 AES 256 來說,能支持約 10^28 TB 的數據大小,基本上就可以說是無限了。所以 AES 加密是不需要進行數據分割的,這一點上能減少一些潛在的安全問題。
 
但是從應用的角度來看,使用 AES 的前提是要通訊雙方事先通過安全渠道交換密鑰。這個過程是無法靠 AES 算法本身保證安全性的。而且知道你的密鑰的人可以對所有用你的密鑰加密的數據進行解密,所以通常 AES 的加密通訊不會有第三方通訊機構的參與。然而 RSA 是非對稱的公鑰系統,公鑰的交換並不要求渠道的安全性,而且 RSA 規定了一套完整的通訊協議,允許多個人同時持有你的公鑰,並且他們相互之間不能解密對方發給你的密文。

要回答问题请先登录注册