Algorithm-Design

SHA256 - 接收相同雜湊的替代算法?

  • September 4, 2022

我的問題是是否可以使用“另一種”算法而不是 sha256 來散列數據,但最終得到相同的 sha256 散列(顯然不使用 sha256 算法)?

由於鴿巢原理,任何隨機函式最終都會與任何其他隨機函式產生碰撞。畢竟,可能的輸入遠多於可能的輸出(對於大多數傳統的加密雜湊)。但是,沒有任何方法可以創建一種算法,該算法始終為**相同的輸入生成與 SHA-256 相同的雜湊值,而該算法不是SHA-256。


給定兩個隨機函式 $ f $ 和 $ g $ (任何好的密碼散列都足以近似於所有意圖和目的的隨機函式), $ \exists{m}:f(m) = g(m) $ . 這意味著將存在一些消息 $ m $ 使用這兩個函式產生相同的散列。確實可以存在兩條不同的消息,當它們使用不同的函式進行雜湊處理時,會產生相同的結果(即 $ \exists m,n: f(m) = g(n) $ ,稱為)。然而,如果 $ \forall{m}:f(m) = g(m) $ (即*,每條*消息在與另一個函式進行散列時都會產生相同的散列),那麼這些函式是相同的。沒有任何情況可以做到這一點,但是 $ f $ 和 $ g $ 不一樣。

在我看來,這取決於您所說的“另一種”(即“不同”)算法的含義。

這裡有兩種算法。每個都將一個數字作為輸入,並產生一個新數字作為輸出:

(1)

  • 取輸入號
  • 加 25

(2)

  • 取輸入號
  • 加 30
  • 減 5

這些是相同的算法嗎?

從一個角度來看,顯然不是——其中一個只有兩個步驟,另一個有三個。

但從另一個角度來看,是的——給定相同的輸入,它們都產生完全相同的輸出。

就像許多問題一樣,這實際上取決於問題中術語的實際含義。對於您的問題,這取決於您對“另一種算法”一詞的實際含義。

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