Collision-Resistance
是否有可能與部分已知數據發生 SHA256 雜湊衝突
我有一個包含
448 digits [0-9] [a-f]
*(HEX 格式)*的文本句子。這段文字部分被截斷,但我知道中間,而且開頭和結尾都損壞了。
我所知道的是
322 known digits
在一個文本句子的中間。
74 unknown digits
一開始
52 unknown digits
在最後也就是說,整個文本*
Size: 224 bytes
*都使用我知道的SHA256雜湊算法進行雜湊處理。在這種情況下是否可以簡化對相同雜湊的搜尋? (簡化蠻力)
322 known digits
既然我在文本中間知道,是否有可能偶然發現這個雜湊的衝突?
不,沒有比嘗試蠻力更簡單的方法了。
雜湊是故意構造的,即使是兩個非常接近的輸入也可以產生兩個非常不同的雜湊輸出。這種特性被稱為雪崩效應。
由於我知道文本中間有 322 個已知數字,是否有可能偶然發現此雜湊的衝突?
也沒有,還沒有已知的 SHA256 衝突。
我將問題解讀為:
從 224 字節的文本中,我們從十六進制轉儲中知道除了前 37 字節和後 26 字節之外的所有內容,它們都已損壞。我們還知道文本的(32 字節)SHA-256。我們如何才能找到全文,或者俱有相同雜湊的全文?
正如現有答案所暗示的那樣,雜湊不允許直接找到
- 缺少什麼:SHA-256 具有抗原像性。我們也錯過了 63 個字節,散列只給出了 32 個字節,因此我們可以預期大約 $ 256^{31} $ 缺失字節的組合導致散列。
- 其他提供相同雜湊的東西:SHA-256 是抗衝突的。
然而,語句的«文本句子»可能意味著 224 字節具有高冗餘,例如使用可辨識的語言和編碼。此外,聲明的“損壞”意味著有一些有用的資訊可以被清除,幫助猜測。這可能允許從已知的中心部分和亂碼的末端猜測完整的消息,或者將可能性減少到足夠少的候選者,每個候選者都可以被散列。然後散列允許可靠地測試假設:如果猜測通過散列測試,它一定是正確的猜測,因為 SHA-256 是抗衝突的。