Protocol-Design

如何從 1-out-of-2 OT 實現 1-out-of-n OT?

  • November 30, 2017

如何實現 1-out-of- $ n $ 來自 1-out-of-2 OT 協議的不經意傳輸協議,可以抵抗被動損壞?假設我們可以訪問 1-out-of-2 OT $ n $ 次。

方法一

最簡單的方法是接收器,可以選擇 $ j \in {1,\dots,n} $ , 輸入 $ 1 $ 在裡面 $ j $ -th 1-out-of-2 OT 和 $ 0 $ 別處。發送者,有輸入 $ (x_1, \dots, x_n) $ , 輸入 $ (0,x_i) $ 在裡面 $ i $ - 舊約。

方法二

另一種協議(剛剛從與同事的討論中得出,並且似乎是積極安全的)是供發件人採樣 $ n $ 隨機字元串 $ r_1,\dots,r_n $ . 現在執行 $ n $ 發件人輸入的 1-out-of-2 OT:

$$ \begin{aligned} (r_1, ,& x_1) \ (r_2, ,& r_1 \oplus x_2) \ (r_3, ,& r_1 \oplus r_2 \oplus x_3) \ &\vdots \ (r_n, ,& r_1 \oplus r_2 \oplus r_3 \oplus \dots \oplus r_{n-1} \oplus x_n) \ \end{aligned} $$ 現在,應該很容易看出接收方如何做出正確的選擇。這裡的好處是作弊接收者不能輕易地學習任何其他選擇,因為每個 $ x_i $ 被一個新的隨機值掩蓋。

(警告:我只是簡單地考慮了這一點,並不能 100% 確定它的主動安全性)

方法 3(使用 $ \log n $ 舊版)

Naor 和 Pinkas給出了一個協議 $ \log_2 n $ 1-out-of-2 OT 開啟 $ k $ -位字元串(用於安全參數 $ k $ )。發件人輸入 $ \log{n} $ 隨機字元串對到 1-out-of-2 OT,接收者輸入他們的選擇,表示為 $ \log n $ 位。

現在對於每個 $ i \in {1,\dots,n} $ , 讓 $ b_1^i b_2^i \cdots b_{\log n}^i $ 表示位 $ i $ . 這 $ i $ -th 發送者的字元串定義為

$$ x_i = H(s^1_{b_1^i}|\cdots|s^{\log n}{b{\log n^i}}) $$ 在哪裡 $ s^j_0,s^j_1 $ 是在 $ j $ -第 1-out-of-2 OT。這得到了 1-of- $ n $ OT 隨機字元串,可以通過發送 XOR 輕鬆將其轉換為選擇的字元串。

(注意 Naor-Pinkas 協議使用了 PRF,但如果 $ H $ 被建模為隨機預言,那麼這也適用)

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