Hash
SHA-256“幾乎是獨一無二的”?
我在網際網路上看到很多人將 SHA-256 描述為生成“幾乎唯一”的雜湊值。
展品A。還有更多。
幾乎唯一性有什麼數學基礎嗎?我原以為 SHA-256 是一種均勻分佈的(?)散列算法,它可以接受任何消息(無限多)作為輸入並產生固定長度(有限)散列 - 那麼實際上會有一個無限數每個可能的輸出 - 我認為這很難被稱為“幾乎是獨一無二的”。
這種說法有依據嗎?
理論上,由於 SHA-256 的域包含 $ 2^{2^{64}-1} $ 不同的消息和值集只包含 $ 2^{256} $ 不同的消息摘要,必須存在至少一種可能的輸出,該輸出具有多個可能的原像。
另一個重要的一點是 SHA-256 是一個確定性函式。這意味著如果您對同一消息進行兩次雜湊處理,您將獲得相同的摘要。因此,“幾乎唯一”應該被理解為意味著 SHA-256 可能會為每個不同的輸入消息產生不同的散列。這在抽象的數學意義上可能是錯誤的,但在更實際的意義上可能是正確的:
在實踐中,唯一性不是由抽象的理論不存在碰撞決定的,而是由實際的不存在碰撞決定的。為了在 SHA-256 中找到衝突,您可能需要執行一些算法 $ 2^{128} $ 次。這不太可能很快發生,即使您計算整個宇宙中任何人執行 SHA-256 的總次數。
如果消息屬於定義明確的抽象集合,它是否“存在”,或者它“存在”是因為它實際上是由物理現實中的某人或某物產生並表示的?