如果 Alice 和 Bob 的消息是從共享列表中挑選出來的,那麼社會主義百萬富翁不是很脆弱嗎?
我對 Alice 和 Bob 各自從一副 52 張牌中挑選牌的情況感興趣,並且想測試他們是否選了同一張牌而不透露牌是什麼(“心理撲克”情況)。想到的協議是“社會主義百萬富翁”。
但是,如果我正確理解了目前在維基百科上的社會主義百萬富翁的文章,並且如果該文章是準確的,那麼我認為如果鮑勃都在挑選他們的秘密消息,那麼鮑勃就有可能了解愛麗絲的秘密消息(反之亦然)來自共享列表,例如抽卡場景。
我想到的技巧是,在協議完成後,Bob 有足夠的資訊,他可以選擇他的秘密的不同值並測試它們。如果他們只是從 52 張卡片中挑選,他只需要測試他的秘密資訊的 52 個值,直到他得到“是的,它們是相等的”,然後他就會知道 Alice 有什麼。
使用維基文章中的符號,回答是否 $ c = P_aP_b^{-1} $ 相當於問題的答案 $ x=y $ , 在哪裡 $ x $ 是愛麗絲的秘密資訊並且 $ y $ 是鮑勃的。
維基文章說
注意 :$$ \begin{align} P_aP_b^{-1} &= \gamma^r \gamma^{-s} = \gamma^{r - s} \ &= h^{\alpha\beta(r - s)} \end{align} $$
因此:$$ \begin{align} c &= \left(Q_aQ_b^{-1}\right)^{\alpha\beta} \ &= \left(h^r g^x h^{-s} g^{-y}\right)^{\alpha\beta} = \left(h^{r - s} g^{x - y}\right)^{\alpha\beta} \ &= \left(h^{r - s} h^{ab(x - y)}\right)^{\alpha\beta} = h^{\alpha\beta(r - s)} h^{\alpha\beta ab(x - y)} \ &= \left(P_aP_b^{-1}\right) h^{\alpha\beta ab(x - y)} \end{align} $$.
現在,在我看來,鮑勃知道 $ c $ 來自他們之前所做的 Diffie-Hellman 密鑰交換。
$ P_a $ 和 $ P_b $ 以明文形式傳輸,因此 Bob 可以計算 $ \left(P_aP_b^{-1}\right) $ .
他知道 $ h^{ab} $ 和 $ h^{\alpha\beta} $ 他們做了另外兩個DHKE。所以 Bob 可以將一個提升到另一個的冪並得到 $ h^{ab\alpha\beta} $ .
他知道 $ y $ 因為那是他的秘密資訊。
因此,如果他想針對新的秘密消息進行測試( $ y’ $ ) 離線,他所要做的就是找到:
$$ \begin{align} c_1 &= c\left(P_aP_b^{-1}\right)^{-1} \ &= h^{ab\alpha\beta(x-y)} \end{align} $$ 然後找到:
$$ \begin{align} c_2 &= \left(c_1\right)^{y} \ &= h^{ab\alpha\beta x} \end{align} $$ 現在,Bob 想要測試 Alice 的卡片是否是特定的 $ y’ $ 鮑勃選擇的。於是他計算:
$$ \begin{align} c_3 &= c_2^{\left(y’\right)^{-1}} \ &= h^{ab\alpha\beta(x-y’)} \end{align} $$ 最後,他計算:
$$ \begin{align} c_4 &= c_3\left(P_aP_b^{-1}\right) \ &= \left(P_aP_b^{-1}\right)h^{ab\alpha\beta(x-y’)} \end{align} $$ 而如果 $ c_4 = P_aP_b^{-1} $ , 那麼這意味著 $ x=y’ $ Bob 發現了 Alice 的卡片是什麼。這些步驟都不涉及從愛麗絲那裡接收新的秘密號碼或向愛麗絲發送任何東西,因此他可以嘗試盡可能多的新密碼 $ y’ $ 如他所願。愛麗絲無法阻止他,甚至知道他正在這樣做。
Bob 可以嘗試所有 52 張卡片,他可以找出哪一張是 Alice 的秘密 $ x $ .
我是對的嗎?有什麼我想念的嗎?
您所指的攻擊稱為離線字典攻擊,它會根據給定的成績單檢查所有可能的值。然而,社會主義百萬富翁問題的典型安全概念應該禁止這種攻擊。事實上,設計一個安全的“除了離線字典攻擊”的協議是微不足道的:雙方玩家只需對他們的輸入進行雜湊處理,使用一些公共雜湊函式,然後交換輸出;如果它們相等,則它們擁有相同的值;否則,他們不會。攻擊本質上相當於散列所有可能的消息。
你描述的協議比較複雜,實際上對這種離線字典攻擊是免疫的;它的主要目的本質上是為了避免它們。您推理中的錯誤是以下句子:
他知道 $ h^{ab} $ 和 $ h^{\alpha\beta} $ 他們做了另外兩個DHKE。所以 Bob 可以將一個提升到另一個的冪並得到 $ h^{ab\alpha\beta} $ .
這不是真的:可以計算 $ h^{ab\alpha\beta} $ 從 $ h^{ab} $ 和 $ \alpha\beta $ ,或從 $ h^{\alpha\beta} $ 和 $ ab $ ,但不是從 $ h^{ab} $ 和 $ h^{\alpha\beta} $ . 計算 $ h^{ab\alpha\beta} $ 從 $ h^{ab} $ 和 $ h^{\alpha\beta} $ 相當於打破了計算 Diffie-Hellman 假設。事實上,在決策 Diffie-Hellman 假設下, $ h^{ab\alpha\beta} $ 與隨機無法區分,即使兩者都給出 $ h^{ab} $ 和 $ h^{\alpha\beta} $ . 這是該協議安全論點的基礎觀察。