Sha-256

SHA 512、SHA 512 Half、SHA 256 之間的區別

  • February 15, 2018

我試圖為 RIPPLE 加密貨幣創建一個 python 包裝器,但我遇到了我不知道的 SHA 512 一半,或者反向搜尋它無濟於事。有人可以幫我理解其中的區別。目前我假設它的任何 256 位 SHA512。 紋波地址編碼 在此處輸入圖像描述

SHA-256 是一個功能高達 $ 2^{64} $ 輸入位,分為 512 位塊,並具有 256 位輸出。據推測,它在(分別)128、256 和 256 位安全級別上具有碰撞、原像和第二原像抗性,但它具有給定的不幸屬性 $ \operatorname{SHA-256}(m) $ 但不是 $ m $ , 比較容易計算 $ \operatorname{SHA-256}(m \mathbin\Vert p \mathbin\Vert m’) $ 對於任意後綴 $ m’ $ , 在哪裡 $ p $ 只取決於長度 $ m $ .

SHA-512 是一個功能高達 $ 2^{128} $ 輸入位,分為 1024 位塊,並具有 512 位輸出。據推測,它在(分別)256、512 和 512 位安全級別上具有碰撞、原像和第二原像抗性,但它有一個不幸的特性,即 $ \operatorname{SHA-512}(m) $ 但不是 $ m $ , 比較容易計算 $ \operatorname{SHA-512}(m \mathbin\Vert p \mathbin\Vert m’) $ 對於任意後綴 $ m’ $ , 在哪裡 $ p $ 只取決於長度 $ m $ .

‘SHA-512half’可能是SHA-512 被截斷為 256 位。因此它需要多達 $ 2^{128} $ 位輸入,分成 512 位塊,並產生 256 位輸出。與 SHA-256 一樣,推測它在(分別)128 位、256 位和 256 位安全級別上具有碰撞、原像和第二原像抗性。 與 SHA-256 或 SHA-512 不同,計算 $ \operatorname{SHA-512half}(m \mathbin\Vert m’) $ 對於任何 $ m’ $ (是否有填充 $ p $ 與否)僅給出 $ \operatorname{SHA-512half}(m) $ 並不是 $ m $ ,據推測至少要花費預期的 $ 2^{255} $ SHA-512 計算。

函式 SHA-256 和 SHA-512 類似於函式的獨立統一隨機選擇,除了長度擴展屬性,而 SHA-512 和 SHA-512half 顯然不是獨立的,因為 SHA-512half 只是 SHA-512 輸出的一半相同的輸入。SHA-512/256 類似於 SHA-512half,不同之處在於它使用不同的初始化向量,因此類似於另一個獨立的統一隨機函式選擇。

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