Protocol-Design

隨機不經意轉移協議?

  • October 23, 2013

如果我們將 Oblivious Transfer 定義如下:

愛麗絲輸入 $ (x_0,x_1) \in F^2 $ , 在哪裡 $ F $ 是一個欄位,Bob 輸入 $ b\in{0,1} $ ,然後 Alice 得到一個虛擬輸出(她對 b 一無所知),Bob 得到 $ x_b $ . 現在,如果我們使用隨機功能 R,它不需要輸入但輸出隨機位 $ (z_0,z_1)\in F^2 $ 給愛麗絲和 $ (c,z_c) $ 到鮑勃,在哪裡 $ c \in {0,1} $ 也是隨機位。

我如何設計一個協議,以便在協議開始時只訪問 R 一次就可以安全地實現 OT?

我認為協議應該如下:

首先,Alice 輸入 $ (x_0,x_1) $ ,然後她得到 $ (x_0 \oplus z_0,x_1 \oplus z_1) $ 作為輸出,因此什麼也學不到。現在鮑勃得到 $ (c,z_c) $ , 對待 $ c $ 作為他的輸入 $ b $ ,那麼他可以恢復 $ x_c $ 從 $ (x_0 \oplus z_0,x_1 \oplus z_1) $ .

我不知道它是否會起作用,或者我的工作方向錯誤?

不,正如所寫,您的協議不起作用 - 問題是應該允許 Bob 選擇 $ b $ ,您的協議會為他隨機選擇一個。

但是,它很接近 - 這是我認為確實有效的修改:

首先,假設愛麗絲有她的價值觀 $ (x_0, x_1) $ ,鮑勃有他的一點 $ b $ .

他們執行他們的隨機函式 R,所以 Alice 得到了值 $ (z_0, z_1) $ , Bob 得到值 $ (c, z_c) $ .

現在,鮑勃向愛麗絲發送比特 $ e $ 定義為 $ e = b \oplus c $ ; Alice 發回一對值 $ (y_0, y_1) $ 定義為 $ (y_0, y_1) = (x_0 \oplus z_e, x_1 \oplus z_{1 \oplus e}) $ .

然後 Bob 計算 $ z_c \oplus y_b = x_b $ .

我聲稱愛麗絲沒有得到關於價值的資訊 $ b $ ,並且 Bob 沒有得到關於 $ (x_{1 \oplus b}) $ ,因此這是一個有效的不經意傳遞函式。

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