Hash

計算綁定的證明正確嗎?

  • June 12, 2022

我已經定義了以下承諾方案,並想證明它是統計隱藏和計算綁定的,但我不確定我的證明是否準確:

為了 $ h $ ,一個抗碰撞的雜湊函式,我定義了以下方案:

$ C(b, 1^n) $ :

$ r \leftarrow U_n $ // 隨機統一長度字元串 $ n $

$ s \leftarrow U_n $

輸出 $ (h(s), r, \langle r, s \rangle \oplus b) $

證明:

計算綁定:

讓 $ A $ 做一個PPT算法。然後:

$$ \Pr_{(s,s’)\leftarrow A(1^n)}\big[ \langle r, s \rangle \oplus 0 = \langle r, s \rangle \oplus 1 \text{ }\wedge \text{ } h(s)=h(s’)\big] \leq \Pr_{(s,s’)\leftarrow A(1^n)}\big[ h(s)=h(s’)\big] \leq negl(n) $$

最後一次轉換是因為 $ h $ 假設是一個抗衝突的散列函式。

統計隱藏(~ 表示在統計上無法區分):

$$ C(0) = (h(s), r, \langle r, s \rangle \oplus 0) = (h(s), r, \langle r, s \rangle) \sim (h(s), r, U) \sim (h(s), r, U\oplus 1) \sim (h(s), r, \langle r, s \rangle \oplus 1)=C(1) $$

我主要關心的是計算綁定部分,因為這不是雜湊函式家族,所以最後的轉換感覺不對。

這是正確的嗎?任何意見將不勝感激。

綁定應該沒問題。你無法改變 $ b $ 不變的承諾 $ <r,s> $ . 自從 $ r $ 是承諾的一部分,你只能改變 $ s $ 這應該是不可行的,因為 $ h $ 是抗碰撞的。你是什​​麼意思 $ h $ 不是雜湊函式族嗎?為什麼應該這樣?

我對隱藏部分不太自信。如果 $ h $ 不需要抗原像,我們可以定義 $ h $ 作為 $ h(s)=s $ 承諾一點也不隱瞞。因此,我假設您的意思是安全雜湊函式。所以問題是“有沒有可能 $ h $ 透露足夠的資訊 $ s $ 給定一個隨機的 $ r $ 和 $ h(s) $ 在區分方面具有顯著優勢 $ <r,s> \oplus 1 $ 從 $ <r,s> \oplus 0 $ 並且仍然是一個安全的散列函式?”因為如果存在這樣的散列函式,則證明第一行中“=”之後的部分不成立。

編輯:

$ <r,s> $ 是一個鐵桿謂詞 $ f(s,r)=h(s),r $ 所以沒有這樣的 $ h $ 只要存在 $ h $ 是安全散列函式(單向和抗碰撞)。但這只會使其計算隱藏而不一定是統計隱藏。

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