Block-Cipher

將 32/64 位條目插入 Feistel S-box 是否會消耗與插入單個字節相同的每個字節週期?

  • April 14, 2022

Blowfish 將一個 32 位字分成 4 個字節,並將每個字節作為一個條目插入到 S-box 中。

假設我做了同樣的事情,但使用了一個完整的單詞,32 位或 64 位。MARS 分組密碼對 32 位字的作用相同。

每個字節消耗的周期是否與插入單個字節的周期相同?

Blowfish 將一個 32 位字分成 4 個字節,並將每個字節作為一個條目插入到 S-box 中。

不,它沒有 - Blowfish 使用具有 32 位條目的 Sbox。特定的 Blowfish 實現可能會決定將每個字節分別插入 4 字節的 Sbox 條目中,但並非強制這樣做(並且有些實現會一次插入所有四個字節)。

每個字節消耗的周期是否與插入單個字節的周期相同?

這類問題是特定於硬體的。另一方面,對於微控制器之上的大多數東西,在一個對齊的 32 位字的一次寫入中寫入四個字節將至少與 8 位寫入一樣快(並且在某些平台上更快)(因此消耗的消耗要少得多每字節週期)。

順便說一句:你為什麼在乎?密鑰調度(至少在生成 sbox 時完成,對於那些具有動態 sbox 的密碼)通常完成一次(當您獲得密鑰時),並且通常不被視為性能瓶頸(至少,因為密碼通常被使用)。

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