Sha-3

為什麼當 keccak 變成 sha3 時 padding 會改變?

  • July 17, 2018

在原始的 Keccak 中,您將通過添加一個 1 位,然後是預定數量的 0 位,然後再添加一個 1 位來填充。

當 Keccak 被標準化為 sha3 時,填充發生了變化。然後是(除非您只需要填充一個字元)0x06,然後是預定數量的 0 字節,然後是 0x80。

我的問題是……為什麼要進行這種更改?

它完成了兩件事。

  1. 相同輸入的 SHA-3 雜湊將不同於具有相同速率/容量的 Keccak 雜湊。
  2. 與 SHA-3 和 Keccak 相比,具有相同速率/容量的 XOF (SHAKE) 也將以不同的雜湊輸出開始

安全性或性能沒有變化,儘管讓 SHAKE 與相同輸入的雜湊共享前綴將被視為安全問題。

此外,實現和程式碼之間的填充約定不同,SHA-3 填充和 Keccak 填充之間的差異很小。SHA-3 仍然支持位而不是字節的輸入,並且填充也是基於位的。

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