Rsa

隨機硬幣翻轉

  • December 6, 2015

引用一個老問題:

考慮以下兩方 A 和 B 擲硬幣的協議(更複雜的版本可能用於網際網路賭博):

  1. 可信方T發布她的公鑰pk
  2. A選擇一個隨機位 $ b_A $ , 使用pk對其進行加密並公佈密文 $ c_A $ 給大家。
  3. B選擇一個隨機位 $ b_B $ , 使用pk對其進行加密並公佈密文 $ c_B $ 給每個人,有額外的限制 $ c_B \neq c_A $ .
  4. T解密兩個密文並公佈兩個明文。硬幣的價值被認為是兩個值的異或。

a) 論證即使A不誠實(但B誠實),硬幣的最終價值也是均勻分佈的。

b) 建議哪種類型的加密方案適合防止B作弊。定義適當的安全概念並證明您的建議符合此定義。

對於 a) 部分,我相信如果A不誠實,它沒有任何優勢,但是遵循協議規則和誠實的B總是會產生不同的密文。但是我很困惑,因為在確定性方案中,兩個差異值的 xor 將始終為 1。在這種情況下,這是如何均勻分佈的硬幣翻轉?

對於 b) 部分,我不確定如何定義安全概念?

這種協議比你想像的要復雜一些。首先,相對於加密,受信方的角色是什麼非常不清楚。具體來說,如果 $ T $ 是受信任的,為什麼不讓它稍微翻轉一下,然後發送給雙方 $ A $ 和 $ B $ . 如果 $ T $ 不可信,那麼你需要讓它證明它的行為是正確的(例如,通過證明解密是正確的)。在後一種情況下,你最好只執行一個直接的硬幣翻轉協議 $ A $ 和 $ B $ . 如果您希望在協議中使用硬幣的結果(例如,賭博),那麼您也需要組合來保存。因此,僅僅證明它與隨機無法區分可能還不夠。

關於問題的第二部分,您至少必須具有non-malleability。否則,給定密文 $ c_A $ 有可能生成加密相同值的隨機密文,然後結果將始終為 0。(同樣,可能始終生成加密相反值的密文並強制結果為 1。)但是,這也不是那麼簡單,因為您需要確定是否需要 CPA 或 CCA 安全,這與第一部分有關。如果提供了解密,那麼可能需要 CCA 安全性(尤其是在執行多次的情況下)。請注意,還需要包含某種會話 ID,以便將加密綁定到同一會話。

底線:您需要一個適當的安全模型和安全定義。然後你需要考慮到上面的問題。最後,你需要證明。

即使方案是隨機的,“兩個不同”位的異或“將始終為 1”。

在確定性方案的情況下,不會得到“均勻分佈的硬幣翻轉”,

因為沒有確定性方案可以提供“均勻分佈的硬幣翻轉”。

由於存在受信任的第三方,因此 A 對 B 的安全性是在UC 框架中定義的。

對於那個方向,人們必須假設 $ \big[\hspace{-0.02 in} $

$$ $\hspace{.02 in}$B never compromises T$\hspace{.03 in}$ $$

和 $ : \big[\hspace{-0.02 in} $ 如果 PKE 方案不是發送方不送出,則 B

永遠無法訪問 A 用來加密 b A的隨機性 $ \hspace{.02 in}\big]\big] $ . B 對 A 的安全性將是資訊論的 UC,即使 A

$$ compromises T$\hspace{.03 in}$ $$

和$$ sees B’s randomness as B generates it $$. ​​​然而,這種安全性可能會被 限制在沒有 c B ≠ c A限制的情況下 c B

的可預測性的兩倍。

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