為什麼沒有人認為計數器重新加密是標準的分組密碼模式?
最簡單的密碼模式之一是將每個連續密鑰設置為
F
前一個密鑰的函式。K[0] = Master key C[i] = E(K[i],P[i]), K[i]=F(K[i-1])
這與計數器模式 CTR 類似,但增加的是密鑰而不是明文。
顯然這種模式比其他模式慢,因為密鑰調度通常比加密花費更多時間(AES 是 2 倍)。然而,一些密碼具有非常快速的重新加密。相關密鑰攻擊也存在問題,一些密碼沒有得到很好的保護——但這仍然不是所有密碼的問題。
我想知道為什麼它甚至沒有被提及作為替代塊模式,也沒有正確的名稱。
它有任何安全缺陷嗎?它壞了嗎?
一個可調整的塊密碼,其中調整設置為計數器,明文直接加密,具有與您的想法相同的屬性。
當需要這些屬性時,您可以使用專門的可調整分組密碼,例如三魚,或者將普通分組密碼轉換為可調整分組密碼。
使用 AES 時,一個典型的選擇是 XTS,它具有更高的性能並且避免了相關的密鑰。這種模式對磁碟加密很有用,TrueCrypt 就是一個使用它的突出例子。它的文件有XTS 的描述
我相信 OCB 的加密部分也可以被視為可調整的分組密碼。
這些模式實現了與您的想法相同的事情,同時避免了缺點(性能、相關密鑰),因此不使用密鑰更新來建構可調整的塊密碼也就不足為奇了。
如果您不使用 AES,而是使用具有快速重新加密且沒有相關密鑰漏洞的密碼,您可以簡單地連接密鑰和計數器,這與您的想法非常相似。我相信這將適用於 BLAKE 的塊密碼。Threefish 對 key 和 counter 的處理方式幾乎相同,因此您可以將 key 和 tune 的串聯視為它的 key。
您的模式的另一個缺點是它允許對密鑰進行多目標攻擊:
當您加密一個恆定的
n
塊文件(例如零初始化文件)時,蠻力攻擊者可以使用以下命令恢復您的密鑰 $ 2^k/n $ 操作在哪裡 $ k $ 是密鑰的大小,因此您應該使用更大的密鑰,可能是 160+ 位左右。攻擊者使用不同的密鑰加密固定和已知的明文塊,並將其與所有已知的密文塊進行比較。這種比較是使用雜湊表的 O(1)。每次嘗試都有一個 $ n $ 在 $ 2^k $ 成功的機會,因為有 $ n $ 目標。因此攻擊的代價是 $ 2^k/n $ 塊密碼的呼叫。