Des

DES的補屬性

  • May 23, 2014

我應該展示 DES 的補碼屬性( $ c=DES(p,k) => \bar c = DES(\bar p, \bar k) $ ).

我的想法是從算法開始 $ \bar p $ 看看會發生什麼(暫時忽略初始排列)。我一步一步地看著它,明白了 $ R1 = \bar L1 \oplus f(\bar k1, \bar R0) $ . 所以我想我必須證明 $ f(\bar k1, \bar R0) = \bar f(k1,R0) $ . 到目前為止,這是否正確?因為我被困在使用 S-Box 的地方。為什麼會 $ S(\bar x) = \bar S(x) $ ?

在其他地方我讀到一些關於使用歸納的正式證明的東西,但我也不知道我會怎麼做……

我想我明白了:我要證明,在第 i 輪之後,結果將是 $ \overline{L_i} $ 和 $ \overline{R_i} $ 當輸入是 $ \overline{L_{i-1}} $ 和 $ \overline{R_{i-1}} $ 並使用 $ \overline k $ 作為關鍵。

$ L_i=R_{i-1} \implies \overline{L_i} = \overline{R_{i-1}} $

$ \overline{R_i} = \overline{L_{i-1}} \oplus f(\overline{R_{i-1}}, \overline{k_i}) = \overline{L_{i-1}} \oplus f(R_{i-1}, {k_i}) = \overline{L_{i-1} \oplus f(R_{i-1}, k_i)} $ .

$ f(\overline R, \overline k)=f(R, k) $ 因為在函式內展開的補碼(R)和 $ \overline k $ 是異或,它消除了補碼。

這樣一來,最終結果將是 $ \overline c $ 使用時 $ \overline m $ 作為輸入和 $ \overline k $ 作為關鍵。初始排列不會改變這一點。

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