Hmac
從部分散列值已知的多個實例中反轉 SHA256 散列值
如果這個問題已經得到回答,我提前道歉。但是,我無法找到現有的答案——儘管我想這個案例非常簡單和常見。也許有一些我不知道的術語讓我錯過了顯而易見的東西。
所以這裡是:
假設我們反復對一個與不同數字連接的“秘密”值進行 SHA256 雜湊處理,並讓攻擊者知道雜湊值和每個雜湊值的連接數字。
例如:
假設秘密是“Pa55word”,然後我們散列以下值並讓對手知道每個散列的整數和散列值:
Pa55word0,
Pa55word1,
Pa55word2,
Pa55word3…
然後 - 我的問題是 - 如果對手在知道部分散列值和幾個不同實例的散列時獲得了找到秘密的優勢。他是否比知道他知道部分明文和散列的單個實例更好。
或者,簡單地說,該方案是否安全?
特別是對於 SHA256,更容易爭論它的安全性(不是正式的證明)。如果我們不考慮雜湊的最終確定和填充,在 Merkle Damgard 構造中,您可以進行長度擴展。取一個已知的散列,併計算具有選定後綴的相同未知純文字的散列。
如果給定 H(x),您可以在不知道 x 的情況下計算 H(x||c),那麼告訴使用者 H(x||c),c 除了 H(x) 對提取 x 沒有明顯幫助.
由於填充,這並不直接適用於 SHA256,但我仍然認為這是支持安全性的有力論據。即,對於多個 c 值已知 SHA256(x||c),c 並不比僅已知 SHA256(x) 更容易找到 x。
對於 SHA256,我們可以進行擴展,但不能用於任意後綴,我們需要從填充作為下一個塊開始,但這非常接近。