Aes
使用不同的密鑰重新迭代 AES-128 是否有任何好處?
我不是密碼學專家,但我有這個疑問……
假設我有 2 個不同的鍵:
secretkey1
secretkey2
和一個純文字:
myReallySecretPlainText
如果我使用第一個密鑰在純文字上使用 AES-128,我會得到:
U2FsdGVkX19fHxumDqEB9Kuyvhj+aoHpctLCdo2VEvt1danATMo+sBaz3nsCaS/Z
現在,如果我在這個密文上使用我的第二個密鑰,我得到了這個:
U2FsdGVkX1/AqJ3w8nTRAHvm1ZbDTdwmq7LTVBDR/z4O9ngaXGuAIqcqTzPj+flPRIV6++twqBnIEHgUVVe7oO1D75VO14ezRX5tqcjBTPUUtr7YDqCks5ZW7fX8crqg
看起來很安全,但我有一個疑問:這是否具有與 AES-256 相同的安全性?或者它是否具有等同於單個 128 位密鑰的安全性?
您描述的想法很容易受到中間相遇攻擊,這種攻擊大約在 $ 2^{128} $ 時間和 $ 2^{128} $ 記憶。攻擊假定知道明文/密文對。給定一對,您使用每個可能的密鑰 1 加密明文並儲存這些值。然後,您使用每個可能的密鑰 2 解密密文,並在兩個數據集之間尋找匹配項。說你發現 $ E_{k_1}(P)=D_{k_2}(C) $ . 很可能這是你的兩把鑰匙。這可以通過查看額外的明文/密文對來驗證。
正如codeinchaos所說,這種攻擊可能不一定適用於現實的成本模型,但它是一個理論上的突破,因此被認為比一開始就使用更大的密鑰空間要弱。另外,我必須相信這個想法比僅使用 AES-256 慢。