Hash

使用雜湊分組函式有什麼問題,您可以在其中找到 2 個不同雜湊之間的離散對數關係?

  • October 14, 2022

我正在閱讀一些關於組函式的天真散列的筆記。

考慮一個加密雜湊函式$$ H: {0,1}^{*}\to {0,1}^{k} $$

考慮一個離散對數硬組 $ G $ 帶發電機 $ g $ . 我們可以建立一個雜湊分組功能$$ HG(a) = g^{H(a)} $$

(我們提出 $ g $ 雜湊輸出的數字表示)

顯然,這樣做的問題是很容易找到此 Hash 的 2 個雜湊輸出與 group 函式之間的關係。

假設有兩個輸入, $ a_1 & a_2 $

讓數值表示 $ H(a_ 1) $ 在 $ Z_n $ 是 $ n_1 $

讓數值表示 $ H(a_2) $ 是 $ Z_n $ 是 $ n_2 $

$ HG(a_1) = g^{n_1} $

$ HG(a_2) = g^{n_2} $

讓 $ {n_1}^{-1} $ 倒數 $ n_1 $ 在 $ Z_n $ .

讓 $ c = n_2 \cdot {n_1}^{-1} $

現在 $ {HG(a_1)}^c = {g^{n_1}}^c = g^{n_1\cdot {n_1}^{-1}.n2} = g^{n_2} = HG(a_2) $

所以我們現在可以找到 Hash 與 Group 之間的關係 $ a_1 $ & $ a_2 $ .

$ HG(a_2) = {HG(a_1)}^c $


我明白了這一點。但是,如果你能找到這樣的關係,有什麼問題呢?這可以用來以某種方式攻擊 Hash to Group 功能嗎?

如果可以找到這種關係,許多使用散列對函式進行分組的方案將被破壞。問題的一個很好的例子可能是Boneh-Franklin IBE 方案,其中 $ H_1 $ 需要是一個安全的散列來分組功能。

該方案中的公鑰計算為 $ H_1(ID) $ 例如,愛麗絲的公鑰可能是 $ Q_A=H_1({\tt"Alice"}) $ 鮑勃的可能是 $ Q_B=H_1({\tt"Bob"}) $ . 注意 $ Q_A $ , $ Q_B $ , $ n_A $ 在哪裡 $ H_1({\tt"Alice"})=n_AG $ 和 $ n_B $ 在哪裡 $ H_1({\tt"Bob"})=n_BG $ 眾所周知。

現在,Alice 的私鑰應該是 $ d_A=sQ_A $ 在哪裡 $ s $ 是只有中央機關知道的秘密。然而,鮑勃知道 $ d_B=sQ_B $ 可以計算 $ d_A $ 因為 $ d_A=sQ_A=s(cQ_B)=c(sQ_B)=cd_B $ 在哪裡 $ c=n_A/n_B $ 以組順序為模。

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