XTS 模式,以調整鍵為唯一秘密
XTS 的鍵空間是 $ 2^{512} $ 由於它使用兩個不同的密鑰,而最有效的攻擊(中間相遇攻擊)將其降低到 $ 2^{384} $ . 這意味著主密鑰或調整密鑰的知識不會顯著降低安全性。讓我感到困惑的是,即使主密鑰已知並且只有調整密鑰保密,該方案仍然是安全的。這個想法是我從另一個問題的答案中得到的,該問題指出,暴露主密鑰而不是調整密鑰的攻擊不是致命的攻擊,使方案剩下 $ 2^{256} $ 鍵空間。查看 XEX 模式的圖表,並試圖想像它在何時保持安全 $ K_1 $ 是已知的,我想不出任何可能的方式它會是真的:
$ K_1 $ 是主鍵和 $ K_2 $ 是調整鍵。
XTS 模式,無密文竊取,定義為:
$$ C_{ij} = E_{K_1}(P_{ij} \oplus (E_{K_2}(i) \otimes \alpha^j)) \oplus (E_{K_2}(i) \otimes \alpha^j) $$
這裡, $ i $ 是扇區號和 $ j $ 是扇區內的塊號。就本問題而言,只有一個部門如此重要 $ i $ 可以認為是常數。因為這使得它 $ E_{K_2}(i) $ 是一個永遠不會改變的秘密值,我們可以定義 $ K^\prime = E_{K_2}(i) $ ,給我們:
$$ C_{j} = E_{K_1}(P_{j} \oplus (K^\prime \otimes \alpha^j)) \oplus (K^\prime \otimes \alpha^j) $$
因為 $ K_1 $ 對我們的目的來說不是秘密,我們可以建模 $ E_{K_1} $ 作為公共 PRP $ \pi $ :
$$ C_{j} = \pi(P_{j} \oplus (K^\prime \otimes \alpha^j)) \oplus (K^\prime \otimes \alpha^j) $$
如果我們簡化事情並看一個單一的 $ j $ , 我們可以說 $ K^{\prime\prime} = K^\prime \otimes \alpha^j $ . 現在我們有:
$$ C = \pi(P \oplus K^{\prime\prime}) \oplus K^{\prime\prime} $$
這不可能提供靜態數據的安全性!在我看來,知識 $ K_1 $ 允許具有明文/密文對的攻擊者輕鬆推導出 $ K_2 $ ,根據上面連結的答案,這是不正確的。我的邏輯錯誤在哪裡?
實際上,您無法刪除 $ E_{k_2} $ 像你一樣。你有過:
$$ C_{j} = E_{K_2}(P_{j} \oplus (K^\prime \otimes \alpha^j)) \oplus (K^\prime \otimes \alpha^j) $$
讓我換個詞 $ (K^\prime \otimes \alpha^j) $ 和 $ K^{\prime\prime} $ 並消除 $ j $ 使事情更容易閱讀。結果是:
$$ C = E_{K_2}(P \oplus K^{\prime\prime}) \oplus K^{\prime\prime} $$
這種形式是一種 Even-Mansour 密碼。它是由公共(偽隨機)排列形成的分組密碼 $ \pi $ 和一個或多個長度等於塊長度的密鑰。看起來像:
$$ C = \pi(P \oplus K_a) \oplus K_b $$
XEX 模式使用相同的結構來製作可調整的分組密碼。在 XEX 中,使用的排列不是公開的。(它是一個帶有密鑰的分組密碼。)對於一個 EM 分組密碼,排列不需要是秘密的。(因此您可以使用帶有非密鑰的分組密碼。)它的安全聲明僅取決於塊大小,假設 $ \pi $ 是偽隨機排列,並且密鑰是不可預測的並且來自均勻分佈。
你無法消除 $ \pi $ 像你一樣。
$$ \pi(P \oplus K_a) \oplus K_b \neq (P \oplus {K_a}^\prime) \oplus {K_b}^\prime $$
給定明文密文對:
如果你省略 $ K_a $ 然後你可以輕鬆恢復 $ K_b $ . $$ C = \pi(P) \oplus K_b $$ $$ C \oplus \pi(P) = K_b $$
如果你省略 $ K_b $ 然後你可以輕鬆恢復 $ K_a $ . $$ C = \pi(P \oplus K_a) $$ $$ \pi^{-1}(C) = P \oplus K_a $$ $$ \pi^{-1}(C) \oplus P = K_a $$
如果兩個密鑰都存在,那麼對通用單輪* EM 密碼的最佳攻擊需要大約 $ D $ 明文/密文對(D 表示數據)和 $ T $ 的評價 $ \pi $ (T 表示時間)使得 $ DT \geq 2^n $ 在哪裡 $ n $ 是塊大小。
至於問題“所以本質上,輸出 $ \pi $ 由於[更正: $ K_a $ ] 添加到輸入中?”
是的,基本上。確切的行為有點微妙,我不想引起混淆。所以實際上要麼 $ K_a $ 或者 $ K_b $ 如果沒有明文/密文對已知,則未知足以使對手無法預測密文。
我其實是說 $ K_a $ 添加到輸入 $ \pi $ 使新的輸出 $ \pi $ , 那是 $ \pi(x \oplus K_a) $ ,對手無法計算,因為“真實”輸入,即 $ x \oplus K_a $ ,他不知道。
如果您跳過第二個 XOR ( $ K_b $ ) 然後從一對中恢復 $ K_a $ 如上所述,使用的倒數 $ \pi $ .
同樣,如果有秘密 $ K_b $ 對手可以計算 $ \pi^{-1}(x) $ 但不是 $ \pi^{-1}(x \oplus K_b) $ . 對手需要知道兩者之間的區別 $ E^{-1}(C) = K_a \oplus \pi^{-1}(C \oplus K_b) $ 和 $ \pi^{-1}(C \oplus K_b) $ 恢復 $ K_a $ .
所以你無法恢復預密鑰( $ K_a $ ) 在不知道後密鑰 ( $ K_b $ )。在不知道預密鑰的情況下,您無法輕鬆恢復後密鑰。兩者都是必不可少的。一個保護另一個不被恢復。
我希望這是有道理的。在不訴諸正式論點的情況下,我努力以一種有意義的方式來表達它。我稍後會尋找參考資料。
不過,聲稱 EM 密碼是安全的可能無法通過氣味測試。那是因為我忘了強調你實際上不能聲稱他們的安全級別等於他們的密鑰大小。 $ |K_a| + |K_b| = 2n $ 但最壞情況下的安全級別是 $ O(n / 2 $ ) 如果在測量方面 $ min(D + T) $ . 而且你不限制 $ D $ .
出於這個原因,最好使用更大的分組密碼或排列。我記得使用更多輪次閱讀會使安全級別更接近 $ n $ 位。
(如果由於某種原因我們失去了使用典型分組密碼的能力,我們只使用一個“標準”塊大小為 256 位而不是 128 位的一輪 EM 密碼就可以了。我們也不需要雙倍的密鑰量,如果我們這樣做了。不同的子密鑰可以由 KDF 生成。對於單輪版本,如果前密鑰和後密鑰相等,則通用構造的安全性沒有損失。)
此外,結構的對稱性使非正式推理更容易一些。無論邏輯適用於加密或前向公共置換函式也適用於解密和逆置換函式。IE。
$$ E_1(P, K_a, K_b) \text{ corresponds to:}\ \begin{align} X &= P \oplus K_a; \ Y &= \pi(X); \ C &= Y \oplus K_b \end{align} $$
$$ E_2(P, K_b, K_a) \text{ corresponds to:}\ \begin{align} X &= P \oplus K_b; \ Y &= \pi^{-1}(X); \ C &= Y \oplus K_a \end{align} $$
- EM 密碼上下文中的輪數是指次數 $ \pi $ 用來。一輪是異或→置換→異或。二是異或→置換→異或→置換→異或。等等。