Feistel-Network
具有全“0”輪函式的 Feistel 網路的輸出
當輸入為時,r 輪 Feistel 網路的輸出是多少 $ (L_0, R_0) $ 並且每個輪函式都輸出全 0,而不管輸入如何?
如果每個輪函式輸出所有 $ 0 $ 那麼如果 $ r $ 是一個偶數,你得到原始字元串。如果 $ r $ 是一個奇數,您只需交換 $ (L_0, R_0) $ 輸入的組成部分。XOR 基本上對字元串沒有影響。只需遵循此答案中給出的證明Luby-Rackoff 定理混淆
輪函式的輸出和前半塊的輸出會發生什麼?幾乎每個 Feistel 網路都對它們進行 XOR。如果您將任何塊與全“0”塊進行異或會發生什麼?你得到了前一個塊。具有 8 位塊的二進製表示法範例:
$$ \text{0100 1100} \oplus \text{0000 0000} = \text{0100 1100} $$ 所以即使有一百萬發,輸出也不會改變。現在是兩半的問題。在每一輪之後,他們都會被交換。如果輪數 $ r $ 是偶數,比 Feistel 網路的最終輸出是 $ (L_0, R_0) $ . 如果 $ r $ 是奇數,然後交換輸出: $ (R_0, L_0) $ . 一些 Feistel 網路在最後一輪之後不會交換輸出(或交換兩次,這就像根本不交換),因為它在密碼學上是無用的。如果發生這種情況,那麼奇數的輸入沒有變化 $ r $ . 一個偶數 $ r $ 將交換兩半。