Secret-Sharing
兩方 GMW 協議範例
我一直在為兩方尋找GMW協議的具體範例。我正在嘗試使用以下範例進行計算 $ XOR $ 兩方:
- A的秘密位是 $ a = 0 $ , B 的秘密位是 $ b = 1 $ .
- A選擇一個長度為2的隨機字元串,即 $ a_1a_2 = 00 $ , 以便 $ a = a_1 \oplus a_2 = 0 \oplus 0 = 0 $ . B 也這樣做,他的秘密字元串是 $ b_1b_2 = 01 $ , 以便 $ b = b_1 \oplus b_2 = 1 $ .
- A 發送她的秘密字元串的第二位, $ a_2 $ 給 B。B 發送他的秘密字元串的第一部分 $ b_1 $ 對 A。
- A現在有 $ a = 0, a_1 = 0, b_1 = 0 $ . 乙有 $ b = 1, a_2 = 0, b_2 = 1 $ .
- 現在,GMW 協議說 A 和 B 可以本地計算 $ c_i = a_i \oplus b_i $ 兩者的結果應該相同。但是,正如您可以清楚地看到的那樣,在這個特定的範例中,它們並不相同。A 的異或為 0,B 的為 1。
我想我在某個地方有誤會,但我不知道在哪裡。請幫忙?
GMW 協議說 A 和 B 可以本地計算 $ c_i = a_i \oplus b_i $ 兩者的結果應該相同。
我突出顯示了不正確的部分。他們從秘密股份開始 $ a=0 $ 和秘密股份 $ b=1 $ . 現在他們擁有XOR的秘密股份 $ c= a \oplus b =1 $ .
只有當秘密值 $ c $ 為零,他們的份額是否相同(當然,他們無法知道是否是這種情況)。在你的例子中 $ c=1 $ 所以他們的份額會相反。
基本上,你可以看到 $ c_1 $ 和 $ c_2 $ 是有效的秘密份額 $ a \oplus b $ 自從: $$ c_1 \oplus c_2 = (a_1 \oplus b_1) \oplus (a_2 \oplus b_2) = (a_1 \oplus a_2) \oplus (b_1 \oplus b_2) = a \oplus b $$