Protocol-Design

如何計算社會主義百萬富翁問題最後一步的結果?

  • June 20, 2017

我試圖了解 OTR 協議中的社會主義百萬富翁問題和解決方案,但我一直在弄清楚如何計算以及由誰計算 $ (Q_{a}Q_b{}^{-1})^{\alpha\beta} $ .

如果我是鮑勃,那麼我收到了 $ Q_{a} $ , 我可以計算 $ Q_{b}^{-1} $ 我知道我的 $ \beta $ . 然而我不知道 $ \alpha $ . 那它是如何計算的呢?

我正在上傳我要參考的維基百科頁面的螢幕截圖,以防將來被修改 維基百科截圖

答案是 Bob 和 Alice 各自計算 $ (Q_a Q_b^{-1})^{\alpha \beta} $ . Alice 計算數量 $ Q_a $ , Bob 計算 $ Q_b $ , Alice 計算 $ (Q_a Q_b^{-1})^\alpha $ 並將其發送給可以計算的 Bob $ c = (Q_a Q_b^{-1})^{\alpha \beta} $ .


讓我們逐步了解協議,記住OTR 參考(假設您進行了測試,我將其省略,因為它會使事情變得更加混亂):

$ \text{Alice} \rightarrow \text{Bob} $ : Alice 隨機選擇 $ a $ 和 $ \alpha $ , 發送 $ g_{2a} = h^{a} $ 和 $ g_{3a} = h^{\alpha} $ 給鮑勃。

$ \text{Bob} \rightarrow \text{Alice} $ : Bob 隨機選擇 $ b $ 和 $ \beta $ , 計算 $ g \equiv g_{2a}^{b} $ 和 $ \gamma \equiv g_{3a}^{\beta} $ , 隨機選取 $ s $ , 發送 $ P_b \equiv \gamma^s $ , $ Q_b = h^s g^y $ , $ g_{2b} = h^b $ , 和 $ g_{3b} = h^\beta $ 回到愛麗絲。**注意:**此時,Bob 已經計算了安全 $ g $ 和 $ \gamma $ .

$ \text{Alice} \rightarrow \text{Bob} $ : Alice計算 $ g = g_{2b}^{a} $ 和 $ \gamma = g_{3b}^{\alpha} $ , 計算 $ P_a \equiv \gamma^r $ , $ Q_a \equiv h^r g^x $ , 和 $ R_a = (Q_a Q_b^{-1})^{\alpha} $ , 發送 $ P_a, Q_a, R_a $ .

$ \text{Bob} \rightarrow \text{Alice} $ : Bob 計算 $ R_b \equiv (Q_a Q_b^{-1})^{\beta} $ , 計算 $ c = R_{ab} = R_a^{\beta} $ , 檢查是否 $ c = P_a P_b^{-1} $ , 發送 $ R_b $ .

$ \text{Alice} \rightarrow \text{Bob} $ : 計算 $ c = R_{ab} = R_b^{\alpha} $ , 還要檢查 $ c = P_a P_b^{-1} $ .

Bob 可以計算 $ c $ 在第四步,因為 Bob 計算了 $ Q_b $ 在步驟 2 中,並收到 $ R_a $ 在步驟 3 中來自 Alice。

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