Des

具有密鑰的按位補碼的 DES

  • August 22, 2019

我正在閱讀 Biham 和 Shamir 的論文,那裡已經提出了一個事實:如果 $ P_1 = \bar P_2 $ 我選擇一把鑰匙 $ K_1 = \bar K_2 $ 那麼在那種情況下

$$ T_1 = DES(P_1, K_1) $$ $$ T_2 = DES(P_2, K_2) $$ 然後 $ T_1 = \bar T_2 $ . 這是否僅適用於 S-box 的特定組合,或者對於任何 S-box 組合都相同。我的意思是,如果我隨機更換 S-box,那麼它仍然是一樣的嗎?

紙上還提到了另一件事,但我無法理解。PFB 圖像。

這裡輸出 $ T $ 將會 $ \bar T_2 $ 只有當我 $ P_2 $ 被插入 $ \bar K $ . 顯然我正在進入 $ P_1 $ (這是 $ \bar P_2 $ ) 因此輸出永遠不會是 $ T_2 $ . 請改正。

在此處輸入圖像描述

這被稱為互補性 $ DES $ ; 我原以為它實際上早於Biham 和 Shamir 的工作

無論如何,您的問題:

這是否僅適用於特定的組合 $ S $ -Box 或者它對任何一個都是一樣的 $ S $ -盒子組合?

即使你改變它也會保留 $ S $ - 隨意裝箱。原因是它實際上不是由 $ S $ -盒子。 $ DES $ 生成輸入到 $ S $ -盒子由 $ XOR $ 在 $ R_i $ 和 $ k_i $ . 這個屬性成立的原因是如果你補充 $ R_i $ 和 $ k_i $ ,結果 $ XOR $ 不會改變,所以輸入到 $ S $ -Box 完全相同(因此 $ S $ -Box 完全一樣)。

紙上還提到了另一件事,但我無法理解。

實際上,這是對該屬性的相當直接的利用。我會看看我是否可以更明確地說明它。

假設你知道兩個明文的密文,而這些明文恰好是互補的。也就是說,我們知道值 $ T_1 = E_k(P_1) $ 我們也知道價值 $ T_2 = E_k(P_2) $ , 在哪裡 $ P_1 $ 和 $ P_2 $ 是互補的(也就是說,無論在哪裡 $ P_1 $ 有一個 $ 0 $ 少量, $ P_2 $ 有一個 $ 1 $ 位,或者換句話說, $ \overline{P_1} = P_2 $

進一步考慮我們不知道密鑰 $ k $ ; 我們想找到它。

我們可以嘗試的一件事是選擇一個隨機密鑰 $ k’ $ , 並做一個試用加密 $ P_1 $ 用它。如果我們的 $ k’ $ 恰好是價值 $ k $ , 然後 $ E_{k’}(P_1) $ 將會 $ T_1 $ ,所以我們知道 $ k’ $ 可能是正確的值。

然而,考慮如果我們的 $ k’ $ 是的補碼 $ k $ (也就是說,我們都錯了)。在這種情況下,關鍵的互補性質將成立,我們將有 $ E_{k’}(P_1) = \overline{E_{\overline{k’}}(\overline{P_1})} = \overline{E_k(P_2)} = \overline{T_2} $ ,也就是說,我們會看到 $ T_2 $ . 因此,如果我們看到該值,那也可以告訴我們密鑰可能是什麼。

因此,通過做一個單一的 $ DES $ 加密,我們實際上可以測試兩個密鑰——這就是 Biham 和 Shamir 所指出的。

引用自:https://crypto.stackexchange.com/questions/19064