Twofish
雙魚密鑰長度
我正在使用雙魚。假設您有一個 120 位密鑰,使用 128 位密鑰長度或 256 位密鑰長度有什麼區別嗎?
由於在這兩種情況下密鑰的最高有效數字都為零,所以 keylen 參數真的很重要嗎?
好吧,事實證明,從安全性和性能的角度來看,這並不重要。
從安全的角度來看,目標(據我們所知,Twofish 實現了)是,如果您知道除了 N 位之外的所有密鑰,它仍然需要大約 $ 2^N $ 試用解密以恢復剩餘的位。所以,如果你有一個 128 位的 Twofish 密鑰(並給攻擊者 8),或者如果你有一個 256 位的 Twofish 密鑰(給攻擊者 136)並不重要;他仍然需要遍歷剩餘的 120 位。
從性能的角度來看,128 位 Twofish 密鑰和 256 位 Twofish 密鑰之間的唯一區別在於密鑰調度操作期間;之後,加密和解密操作不依賴於密鑰大小。
另一方面,如果您仔細閱讀 Twofish 規範,我們會發現它們確實指定瞭如何使用奇數大小的鍵。您將零字節附加到下一個“標準”大小(在這種情況下為 128 位);這是本書的第 4.3.1 節。
鑑於有一種標準的方法來處理它,那麼,您不妨採用它。