Feistel-Network
非平衡Feistel網路函式
我試圖了解不平衡的 Feistel 網路是如何工作的。我遇到了這張圖片:
它說該功能需要 $ b $ 位到 $ y $ 位。這在第一步有效,但顯然不適用於下一步。我沒有得到什麼?如果你總是將函式應用到一邊 $ b $ 比特會破壞密碼嗎?我猜是的。
讓它形式化
- 圓形功能 $ R:{0,1}^b \to {0,1}^y $ (這是不好的命名, $ F $ 這里和 DES 一樣好)
- 每一輪的輸入是 $ b+y $ 位寄存器/數組 $ I $ .
- 每一輪的輸出 $ O = (R(\texttt{MSB}(b,I)) \oplus \texttt{LSB}(y,I)) \mathbin| \texttt{MSB}(b,I) $
所以 $ O $ 又是 $ b+y $ 位寄存器/數組作為下一輪的輸入。
- $ \texttt{MSB}(b,I) $ 最重要的_ _ $ b $ B其寄存器 $ I $ .
- $ \texttt{LSB}(y,I) $ 最不重要的_ _ $ y $ B其寄存器 $ I $ .
例子
讓 $ I=\texttt{[0,1,1,1,0,1,0,0,1,0,0,1,1,0,0,1]} $ 然後是 16 位寄存器
- $ \texttt{MSB}(3,I) = \texttt{[0,1,1]} $ , 和
- $ \texttt{LSB}(12,I) = \texttt{[1,0,1,0,0,1,0,0,1,1,0,0,1]} $
請注意,這裡我們使用二進製表示 $ I $ ,而不是數組表示。