對於採用隨機值的散列函式,是否有與 IND-CPA 相當的屬性?
我想要一個功能 $ F(x, rnd) $ , 在哪裡 $ rnd $ 是一個新的隨機值,因此很難,給定 $ x_0 $ 和 $ x_1 $ , 區分 $ F(x_0, rnd) $ 從 $ F(x_1, rnd) $ ,編輯:但值應該不同,即我應該能夠從 $ x_0 $ 和 $ rnd $ 並看到它是正確的值。
我可以使用具有 IND-CPA 屬性的非對稱加密函式來做到這一點,但就我而言,我不需要解密。因此,我想到了使用雜湊函式,我的第一個簡單想法是簡單地連接隨機性, $ H(x || rnd) $ ,但我不確定這是否足夠。
我已經研究過鍵控散列函式,但我真的不想使用鍵,只是一個隨機值。我並沒有真正找到具有與 IND-CPA 相當的屬性的“隨機散列函式”。
對於我的情況,我是否需要其他東西,例如偽隨機函式?我可以從散列函式構造一個嗎?
感謝您的幫助。
不僅是您使用的想法 $ H(x|| r) $ 足夠了,它甚至通常會提供無條件的安全性,如果 $ H $ 滿足一些規律性性質,即(大致)是原像的大小 $ H $ 具有給定前綴 $ x $ 總是大致相同的大小。
要重新提出您的問題,您要問是否 $ H(x || r) $ 導致隱藏承諾方案,即無法區分 com 的方案 com $ (x_0) $ 來自 com $ (x_1) $ 給定 $ x_0 $ 和 $ x_1 $ .
如果您使用將長字元串映射到較短字元串的任何標準散列函式,請注意散列函式的任何給定輸出通常會有許多原像。這意味著給定一個雜湊值 $ h $ 和字元串 $ x_0 $ 和 $ x_1 $ , 幾乎總是存在值 $ r_0,r_1 $ 這樣 $ H(x_0|| r_0) = H(x_1||r_1) = h $ (並且這些值的數量應該基本相同 $ x_0 $ 和 $ x_1 $ )。這意味著無法確定是否 $ h $ 是通過散列得到的 $ x_0 $ 或者 $ x_1 $ ,即使對手在計算上是無限的。
如果您想要更正式的細節,本文研究了該方案的改進變體(他們表明他們的方案也具有約束力 - 即,您不能改變主意 $ x $ 如果您稍後揭示您已提供給雜湊函式的輸入 - 並獲得一個完美隱藏的承諾方案,甚至不必假設 $ H $ 是正常的)。