Tweakable-Cipher
如何確定使用了哪個調整
想像以下情況:
- 你有一個可調整的分組密碼
- 你有一個純文字塊
- 你有一個密文塊
- 您擁有用於加密純文字塊的密鑰
我有這些問題:
- 有沒有辦法確定使用的調整?(一種比暴力破解快得多的方法)
- 如果沒有快速的方法來做到這一點,可調整的密碼是否被認為更安全?
- 是否有任何可調整的分組密碼受到明確保護?
我的具體案例如下:我用python寫了一個三魚的實現。為了檢查我是否做錯了,我在網際網路上尋找測試向量。每個向量都有效,除了一個。此向量與同一頁面上的前一個範例之間的區別僅在於調整(以表明更改調整會導致另一個密碼塊)。所以我想知道是否有一種快速的方法來計算他們實際使用的調整。雖然這對三魚來說非常具體,但我很好奇這是否可能是可調整密碼的一般設計目標。
這超出了可調整分組密碼的目標。作為反例,以下是論文中安全(如果效率低下)可調整分組密碼的範例,該論文將可調整分組密碼作為定理 1(第 35 頁)介紹:
$$ \widetilde E_K(T, M) = E_K(T \oplus E_K(M)), $$在哪裡 $ E_K(M) $ 是分組密碼。如果你知道的話 $ K $ , $ M $ , 和 $ C = \widetilde E_K(T, M) $ , 那麼計算很簡單$$ T = E_K(M) \oplus {E_K}^{-1}(C). $$ 論文的介紹中明確了這種調整的故意不保密性:從攻擊者的角度來看,所有不確定性都包含在密鑰中;該調整隻是對一系列獨立秘密排列的索引。
任何可調整的分組密碼都不太可能旨在保守調整的秘密。如果您要意外地選擇它,您也可以使用更長的密鑰。但是,如果您提供有關預期應用程序的更多詳細資訊,可能會更清楚您需要什麼?