Encryption

不經意的轉移變化問題

  • December 4, 2014

現在我正在做一個不經意轉移的變體,我必須使用 2 個人、鵝卵石和盒子。我需要找出 Alice 和 Bob 之間誰的數字更大(姚的百萬富翁問題的變體)。這就是我想出的:

  1. Bob 進入一個單獨的房間,裡面有 100 個盒子,他在第 n_B 個盒子裡插入了一顆鵝卵石。
  2. 愛麗絲獨自進入盒子所在的房間,她在第 n_Ath 個盒子中插入了一顆鵝卵石,每個盒子都插入了一顆鵝卵石。 $ (n_A+1) $ 第一個盒子,直到她到達最後一個盒子( $ 100 $ 盒)。她不能搖動任何盒子,因為在外面等候的鮑勃會聽到噪音。
  3. Bob 進入房間,他改變了盒子的順序。出於同樣的原因,他不能搖動盒子。
  4. 愛麗絲進入房間,她改變了盒子的順序。出於同樣的原因,她不能搖動盒子。
  5. 現在愛麗絲和鮑勃都進入了房間,他們搖晃著每個盒子。如果他們聽到 $ 2 $ 鵝卵石在一個盒子裡,這意味著 $ n_A < n_B $ . 愛麗絲現在只知道 $ n_B $ 必須大於她的數字。如果一個盒子裡沒有兩顆鵝卵石,那麼 $ n_A > n_B $ . 愛麗絲現在只知道 $ n_B $ 比她少。

現在唯一的問題是,它只有在 Bob 的數字大於 Alice 的情況下才有效。如果 Alice 的數字比 Bob 大,那麼沒有一個盒子有 $ 2 $ 鵝卵石,他們都會知道鮑勃的數字比愛麗絲大。然而,鮑勃在計算愛麗絲的數量方面具有優勢,因為愛麗絲在她的盒子裡放了鵝卵石,而且所有的盒子都更大。

使用 10 個盒子的範例:

Alice's number = 7, Bob's number = 3

x    x   x   x               x
10   9   8   7   6   5   4   3   2   1

After the randomization process, Alice and Bob both know that Alice's number is
larger than Bob's. But the Prob(of b = 4 or 5 or 6) = 0% because all Bob has to do
is subtract the number of boxes with a pebble in it from the number of boxes
(10 - 4 (it's because he put a pebble in his box)) and he knows that Alice's number
has to be 10, 9, 8, or 7.

如果您不關注,我可以嘗試使其更清楚。

實際上,Bob 的數量是否大於或小於 Alice 的數量都沒有關係。在任何一種情況下,Bob 都可以計算 $ n_A $ (這裡我用 $ n_A $ 和 $ n_B $ 分別是 Alice 和 Bob 的私人號碼)。Bob 可以簡單地記下里面有一顆鵝卵石的盒子的數量和里面有兩顆鵝卵石的盒子的數量,讓我們稱這些數字 $ p_1 $ 和 $ p_2 $ 分別。也讓 $ N $ 表示盒子的總數。如果 $ p_2 = 0 $ 然後 $ p_1 = N - (n_A - 1) + 1 $ , 而如果 $ p_2 = 1 $ 然後 $ p_1 = N - (n_A - 1) - 1 $ . 一般來說,我們可以這樣寫 $ p_1 = N - (n_A - 1) + (1 -2p_2) $ . 如果我們重寫這個,我們得到 $ n_A = N + 2(1 - p_2) - p_1 $ . 所以你看,不管它們之間的關係如何 $ n_A $ 和 $ n_B $ Bob 可以計算 $ n_A $ .

你可以通過簡單地不讓鮑勃搖晃任何盒子來解決這個問題,這樣他就永遠不會學習 $ p_1 $ 或者 $ p_2 $ . 即,在最後一步,而不是 Alice 和 Bob 搖動每個盒子,你應該讓 Alice 進入房間搖動所有的盒子。然後她會知道結果,並可以將結果告訴 Bob。事實上,在這種情況下,Alice 不必洗牌,只有 Bob 需要這樣做。

您可能會爭辯說,在這種情況下,愛麗絲可能會作弊並告訴鮑勃一個不正確的結果。但是,您已經信任 Alice 會遵循前面步驟中的協議,所以這應該不是問題。

請注意,如果一個盒子包含兩顆鵝卵石,則意味著 $ n_A \leq n_B $ , 不是 $ n_A < n_B $ 正如你所說。

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