Des
S-Box 及其線性度
我試圖弄清楚為什麼 S-box 必須是非線性的。我一直在尋找一些材料,但無法找到明確的證據,為什麼這意味著如果我們在 DES 中使用 S-box,它也是線性的。我正在看 Coursera 的密碼學課程。我不明白這個矩陣在哪裡 $ B $ 來自。我們想將 64 位映射到 64 位。
- 但是我們為什麼要使用 $ [m, k_1, k_2,\ldots,k_{16}] $ 柱子?
- 我們如何建構 $ B $ 矩陣?
首先,記住我們可以寫出每個密文位$$ c_i = f_i(m_0,\ldots,m_{63}, k_1,\ldots, k_{63}) $$作為非線性函式的輸出 $ f_i $ , $ f_i \neq f_j, i \neq j $ . 如果我們從 DES 中移除非線性部分 $ f_i $ 將是線性函式 $ f^l_i $ . 現在,回到矩陣 $ B $ ;
- 我們如何建構 $ B $ 矩陣?
一旦我們建構了線性 $ f^l_i $ 的比構造矩陣 $ B $ 簡單。寫 $ f^l_i $ ‘一個行向量,使得內積與 $ [m,k_1,k_2,\ldots,k_{16}] $ 會發出 $ c_i $ s。為了構造它們,我們需要新線性 S-box 的實際定義,然後我們可以線上性 DES 上編寫程序來找到 $ f^l_i $ 的,然後是向量。
- 但是我們為什麼要使用 $ [m,k_1,k_2,\ldots,k_{16}] $ 柱子?
非線性 DES 版本現在由矩陣表示 $ B $ . 每個 $ c_i $ 只不過是的線性組合 $ {m_0,\ldots,m_{63},k_1,k_2,\ldots,k_{16}} $ . 如果乘以列向量,它將給出密文。
- 832從何而來
$ 832 = 16\cdot 48+64 $ ,DES的16輪,每輪48位密鑰,64為明文大小。
- 為什麼我們有圓鍵 $ [k_1,k_2,\ldots,k_{16}] $ 不是方程式中的關鍵位。
DES 的密鑰生成不是線性的。為了使方程保持線性形式,文件的作者,首選方程的圓形鍵以保持線性。