Hash

看似隨機的輸出是否意味著雜湊函式的不可逆性?

  • May 5, 2017

我的問題主要源於以下對密碼散列函式屬性的觀察:

  1. 原像抗性:給定 $ H(x) $ , 很難找到 $ x $
  2. **第二原像抗性:**給定 $ m1 $ , 很難找到另一個 $ m2 $ 這樣 $ H(m1)=H(m2) $
  3. **碰撞阻力:**很難找到任何兩個不同的資訊 $ m1 $ , $ m2 $ 這樣 $ H(m1)=H(m2) $ .

據說屬性 3 意味著屬性 2,這意味著屬性 1。如果很難找到任何兩個不同的消息,我可以理解 $ m1 $ 和 $ m2 $ 為了 $ H(m1)=H(m2) $ 那麼就很難找到一個獨特的 $ m2 $ 給定的 $ m1 $ 為了 $ H(m1)=H(m2) $ (屬性 3 意味著屬性 2)。如果我有 $ m1 $ 和 $ H(m1) $ 然後從屬性 2 我可以說很難得到 $ m2 $ 從 $ H(m2) $ 如果 $ H(m1)=H(m2) $ , 並作為 $ H(m2)=H(m1) $ 很難得到 $ m1 $ 從 $ H(m1) $ 以及(屬性 2 意味著屬性 1)。

現在我的問題是雜湊函式是否具有此屬性:對於輸入的微小變化,它輸出的數字看起來是隨機的,因此從輸出中很難確定輸入的變化,它是否暗示上述任何屬性特別是屬性 1 ,即密碼散列函式的不可逆性?

我問這個是因為 $ m1 $ & $ m2 $ 我會得到 $ H(m1) $ & $ H(m2) $ 分別和如果 $ H(m1) $ & $ H(m2) $ 是相關的(不是隨機的),我知道 $ m1 $ 和 $ H(m1) $ (先驗資訊)然後從輸出的變化我可以很容易地知道輸入的變化從而知道哪個輸入產生輸出?稍微不同的是,如果輸出看起來不是隨機的,是否可以從輸入和輸出訓練散列函式,以便對於給定的輸出我會知道輸入?

現在我的問題是雜湊函式是否具有此屬性:對於輸入的微小變化,它輸出的數字似乎是隨機的,因此從輸出中很難確定輸入的變化,它是否暗示上述任何屬性,特別是屬性 1 ,即密碼散列函式的不可逆性?

不會。隨機性很難測試,而且很容易使用任何不安全的隨機數生成器來生成看起來隨機的輸出。所以任何“非隨機”的東西肯定不是不可逆的。

稍微不同的是,如果輸出看起來不是隨機的,是否可以從輸入和輸出訓練散列函式,以便對於給定的輸出我會知道輸入?

這有點相反。但如果你只是採取 $ H’(x) = H(x) | 1 $ 那麼應該清楚的是 $ H’(x) $ 是不可逆轉的 $ H(x) $ ,而輸出顯然不是隨機的。

引用自:https://crypto.stackexchange.com/questions/44737