Hash

可以圓函式嗎FFF在 Feistel 網路中實際上是任何不可逆函式?

  • October 20, 2015

這個問題可能看起來很傻,但是圓形函式的事實有多真實 $ F $ 不一定是可逆的?

我很想知道這一點,因為不可逆函式可能非常有損,即,可能會失去與輸入相關的大部分資訊,例如散列函式。

是的,您可以將散列函式用作輪函式,但如果您在所有輪次中都使用“相同的密鑰”,那麼您很容易受到滑動攻擊。使用散列函式不是一個好主意。

您的輪函式不應引入偏差,不應導致特殊差異(攻擊:差分密碼分析),也不應可寫為線性方程(攻擊:線性密碼分析)。你應該注意當輪密鑰被輕微修改時你的輪函式將如何工作(攻擊:相關密鑰攻擊),你應該注意不可能的差分。如果你做對了,你可以使用任何 $ F $ 它通過了這些標準。

簡短的回答是, $ F $ 需要仔細選擇。“是的”你感興趣,那 $ F $ 將“盡可能多地失去有關輸入的資訊”。

你的第二個問題:

這個問題可能看起來很傻,但是圓形函式的事實有多真實 $ F $ 不一定是可逆的?

你的 round 函式不需要是可逆的,因為經典的平衡 Feistel 結構將創建兩半,其中只有一半被修改,另一半保持明文/未修改。在每一輪之後,交換兩半,修改後的一半變成固定的一半,之前未修改的一半現在被加密。如果您現在顛倒密鑰/輪次的順序,您可以再次解密消息。Feistel 建構子是可逆的。

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