Hash

SHA-256 中的 SHACAL

  • January 10, 2019

我正在閱讀雜湊函式,即 SHA,我讀到它是由 Merkle-Damgård 結構構成的。然後文中說使用的壓縮函式是基於Davis-Meyer壓縮函式的。文中還提到 SHA-256 是基於分組密碼 SHACAL-2 的。

我對構成 SHA-256 的建構塊有點困惑。SHACAL-2 是分組密碼還是壓縮功能或兩者兼而有之?使用 SHACAL-2 而不是 AES-128 有什麼優勢?

SHACAL-2 是一種分組密碼。一種方式的壓縮函式通常使用分組密碼作為建構塊,但添加一些簡單的操作使函式成為一種方式。在 SHA-256 的情況下,壓縮函式是Davies-Meyer 模式下的 SHACAL-2 。反過來,SHA-256 由帶有Merkle-Damgård 填充和連結的壓縮函式組成。

關於您的最後一個問題,SHACAL-2 的塊大小為 256 位。這意味著當在任何常見的操作模式中使用密碼時,您幾乎不可能純粹偶然地發生狀態衝突。AES 的塊大小為 128 位,因此在使用相同的對稱密鑰加密大量數據時,在某些情況下,狀態衝突的風險可能太高而無法舒適。

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