Block-Cipher

Feistel 分組密碼中的子密鑰是如何為每一輪派生的?

  • June 20, 2015

我對 Feistel 密碼中使用的子密鑰有點困惑。我知道所有的子鍵 k i都是從主鍵 K 派生的,但是怎麼做呢?

假設我有一個 i 輪的簡化 Feistel 分組密碼,那麼說每個密鑰 k i是密鑰的 K/i 部分是否正確?

所以如果密鑰是 4 個字節並且有 4 輪,那麼我使用前 1 個字節作為第一輪的子密鑰,然後第二個字節作為第二輪的子密鑰,依此類推?

在查看 Feistel 密碼的文章/解釋時,我似乎找不到此資訊。我正在嘗試解決一個練習,並希望確保我可以假設密鑰應該除以輪數,然後使用其中的子密鑰。

注意:在練習中指定了 Feistel 密碼使用 8 位獨立的輪密鑰 k i。我不確定這是否符合我上面的假設。

我知道所有的子鍵 $ k_i $ 來源於主鍵 $ K $ ,但如何?

但是密碼設計者感覺像。Feistel 設計提供了有關如何處理塊的指導(並且以一種使密碼反轉容易的方式),但是它沒有提供有關實際生成子密鑰的指導。設計師可以做任何他們喜歡的事情,並且仍然稱自己為“Feistel Network”。

在練習中指定了 Feistel 密碼使用 8 位獨立的輪密鑰 ki。我不確定這是否符合我上面的假設。

該指令的重點是您不應該假設不同輪密鑰之間的任何必要關係。這可能是因為它們來自鍵的獨立部分;也可能是因為子鍵是通過不可逆函式生成的。它如何發生與練習無關。

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