Key-Size

為什麼 Blowfish 最大密鑰長度是 448

  • March 8, 2018

請問有人能告訴我Blowfish算法的誕生歷史嗎?具體來說,Blowfish 密鑰長度在 32 到 448 位範圍內的證明是什麼?為什麼,例如,它不是 64-512,所以它的最小密鑰可能比 AES 短 2 倍,而最大密鑰可能比 256 位密鑰的 AES 高 4 倍?

Bruce Schneier對新的可變長度密鑰、64 位分組密碼 (Blowfish) 的描述在 1993 年 12 月舉行的第一次 FSE 會議的會議記錄中)定義 Blowfish 的密鑰為 4 到 56 字節(32 到 448 位) , 以這個理由為最大值:

密鑰大小的 448 限制確保每個子密鑰的每一位都依賴於密鑰的每一位。(請注意,每一點 $ P_{15} $ , $ P_{16} $ , $ P_{17} $ , 和 $ P_{18} $ 不會影響密文的每一位,並且任何 S-box 條目只有一個 $ .06 $ 影響任何單個密文塊的機率。)

為 Blowfish 使用超過 56 字節的密鑰違背了它的定義和設計原理:超過 72 的密鑰字節沒有任何影響,而之前的少數幾個字節的傳播可能會少一些(儘管沒有上面引用的那麼糟糕) . 一些 Blowfish 實現仍然接受具有任何正字節數的鍵。

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