Sha-512
我可以為部分已知的字元串找到特定的 SHA512 嗎?
我有一個純文字字元串“I-like-draww ing ”,這個字元串有一個 SHA512 值,假設 SHA512 是“ aabbcc ”。然後我向我的朋友展示 SHA512“ aabbcc ”並說:“這是我的字元串的 SHA512,我的字元串以 ’ ing ’ 結尾,我賭 20 美元你不知道我的字元串”。
我不想鬆散,所以我必須找到另一個以“ ing ”結尾的字元串,並且也有相同的 SHA512 “ aabbcc ”,我能找到那個字元串嗎?
您所描述的是對 SHA-512 的二次原像攻擊,您會發現它非常不可行,需要預期的 $ 2^{512} $ 雜湊計算。
現在,考慮一下你朋友的立場。
SHA-512 是一種單向函式,知道部分明文無助於反轉它以從雜湊中恢復整個明文。
相反,蠻力方法是必要的。您的朋友將計算與您告訴他的條件匹配的所有可能輸入的雜湊值(以“ing”結尾)。一旦他找到匹配項,他就會斷定他找到了你的字元串。
你的朋友對你的琴弦了解多少?它的長度?您可能使用的字元集?您將其發佈在 stackexchange 上的事實?您最大的希望是您的朋友不會找到您的字元串,因為如果他找到了,您將無法撒謊並提供具有相同雜湊值的另一個字元串。