Diffie-Hellman
關於最簡單不經意傳輸協議的問題
在論文The Simplest Protocol for Oblivious Transfer中,在接收者選擇的場景中 $ c=1 $ , 然後 $ B $ 計算為 $ Ag^b $ .
然後 $ k_1 $ 計算為 $ H( (B/A)^a) $ .
這意味著接收者可以計算相同的加密密鑰,並解密消息 $ M_1 $ (因為它是用加密的 $ k_1 $ .
這是否意味著 $ H( (B/A)^a ) = H( Ag^b) $ ?
我不明白它在這種情況下是如何工作的(接收者選擇 $ c=1 $ )
我不明白它在這種情況下是如何工作的(接收者選擇 $ C_1 $ )
最初,發送者隨機選擇一個 $ a $ 並發送 $ A = g^a $ .
那麼,在 $ C_1 $ 情況下,接收者隨機選擇一個 $ b $ 並發送 $ B = Ag^b $ ; 接收方還計算對稱密鑰 $ H(A^b) = H(g^{ab}) $
然後,發送方計算兩者 $ H(B^a) $ 和 $ H((B/A)^a) $ ,並發送由這兩個密鑰加密的兩條消息。
現在,因為我們在 $ C_1 $ 案例,我們有 $ H((B/A)^a) = H((Ag^b / A)^a) = H((g^b)^a) = H(g^{ab}) $ ,因此第二條消息由接收者知道的密鑰加密(因此可以讀取消息)。而且,因為另一個密鑰被加密 $ H(B^a) = H((Ag^b)^a) = H(g^{a^2+ab}) $ 是接收者不知道的值(假設 CDH 問題很困難並且 $ H $ 就像一個隨機的預言機),因此他無法閱讀第一條消息。