Hash

基於 SHA-3 的 MAC 是否需要 HMAC?

  • August 2, 2021

HMAC 進行嵌套散列以防止長度擴展攻擊

鑑於您使用 SHA-3 雜湊(可以抵抗長度擴展攻擊),您是否仍需要通過過程才能生成安全的 MAC?

不用說,我們仍然會使用一個密鑰,我們將它預先或附加到消息中,但這對於 MAC 來說就足夠了嗎?

鑑於您使用 SHA-3 雜湊(可以抵抗長度擴展攻擊),您是否仍需要通過該過程才能生成安全的 MAC?

不,你不需要這樣做,但你可以。

不用說,我們仍然會使用一個密鑰,我們將它預先或附加到消息中,但這對於 MAC 來說就足夠了嗎?

是的,您可以在消息前加上密鑰,即使用 $ H(K||M) $ .

引用 Keccak (SHA3) 網站

與 SHA-1 和 SHA-2 不同,Keccak沒有長度擴展的弱點,因此不需要 HMAC 嵌套結構。相反,可以通過簡單地在消息前加上密鑰來執行 MAC 計算。

但是,原標準並沒有規定這種MAC模式,只是一個hash函式。

現在有一個基於 SHA-3 或特別是 SHAKE 可擴展輸出函式的 KMAC(和其他結構)規範(pdf)。從“將鍵添加到消息”的變化是鍵填充以及包含常量和輸出長度,這些都是為了域分離而完成的。

可以使用 SHAKE128/SHAKE256 以這種形式實現 KMAC,但不使用其他 SHA-3 變體。

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