擁有一個全為零的 SHA-256 散列的字元串會導致對 SHA-256 的攻擊嗎?
擁有一個全為零位的 SHA-256 雜湊的字元串會導致對 SHA-256 的攻擊嗎?
我可以很容易地想像一個專門的攻擊洩露瞭如何做到這一點的知識,但我同樣可以想像一個比特幣礦工隨機攻擊一個。
擁有一個全為零位的 sha-256 散列的字元串會導致對 sha-256 的攻擊嗎?
不,它不會導致對 SHA-256 的任何有用攻擊。你只會有一個散列到 256 個零位輸出的輸入字元串。了解和查看可能會很好,但它不會為您提供任何有用的攻擊 SHA-256。總而言之,它與通過將某個值散列到另一個特定的 SHA-256 輸出而產生的任何其他散列值沒有什麼不同。僅僅因為您的輸入呈現 256 個零位的 SHA-256 輸出並不意味著也不表明 SHA-256 已損壞,並且它肯定不會在 SHA-256 上打開攻擊向量。
我可以很容易地想像,一次專門的攻擊洩露瞭如何做到這一點的知識,
在撰寫本文時,尚無此類攻擊。請記住,SHA-256 已經存在了幾年。該算法已經過政府機構以及全球獨立人士的測試、分析、攻擊和驗證。如果算法中有任何弱點/捷徑可以使某人產生 256 個零位散列,那麼它就會被發現。但是沒有這樣的發現……這就是為什麼我們都將 SHA-256 稱為“經過嚴格審查的、加密安全的雜湊”。
此外,能夠說“我有這組字節,當我將其提供給 SHA-256 時,會輸出一個全零雜湊”並不會為密碼攻擊打開任何大門。這與知道“hello world”雜湊為“b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9”沒有什麼不同。
了解類似的東西並不指向弱點或攻擊媒介。這就是 SHA-256 所做的:將特定輸入散列到特定輸出中。如果該輸出恰好是
000…000
那麼就這樣吧。有些人知道如何產生 256 個零位輸出可能很好,但它對 SHA-256 的安全聲明沒有任何影響。如果發現算法中的一些弱點使我們能夠產生我們喜歡的任何特定的、選擇的輸出,情況就會有所不同……例如:256 個單位 (FFF…FFF) 或另一系列 256 個輸出位 (123…321)。更有趣的是找到一種為 SHA-256 產生衝突的方法(其中兩個不同的輸入產生相同的輸出),這將是災難性的。但一切並非如此。多年來沒有發現這樣的弱點。
但我同樣可以想像一個比特幣礦工隨機選擇一個。
老實說,我懷疑任何比特幣礦工僅僅通過尋找下一個比特幣區塊就會產生任何對 SHA-256 有任何影響的東西。即使比特幣礦工碰巧找到了 256 個零位輸出,它也不會為你帶來任何好處,因為它仍然像我上面提到的“hello world”雜湊範例。知道哪些輸入字節產生 256 個零位散列的 SHA-256 輸出並不能為您購買任何可以用作攻擊的東西……甚至連一杯咖啡都沒有。
一些遙遠相關的問答可能(或可能不)對進一步閱讀感興趣: