Yao 的亂碼電路:Bob 見過電路嗎?
我問了一個問題,姚氏亂碼電路的電路結構是否需要重新排列。我從Yehuda Lindell的回復中了解到,電路結構本身不需要更改或亂碼,只需要門密文進行亂碼。
新問題:這是否意味著 Bob 能夠知道電路的結構是安全的?他不應該知道線路上的值,但是他可以知道例如哪些門是與門嗎?
在我看來,這並不安全。這是我的推理:
讓我們說門 $ g_s $ 是帶有輸入線的電路中的與門 $ w_i $ 和 $ w_j $ 和輸出線 $ w_k $ . 基於此摘要,如果 $ g_s $ 是與門,Alice 計算了以下值:
$$ X_s^{0,0} = K_i^0 \oplus K_j^0 \oplus K_k^0 $$ $$ X_s^{0,1} = K_i^0 \oplus K_j^1 \oplus K_k^0 $$ $$ X_s^{1,0} = K_i^1 \oplus K_j^0 \oplus K_k^0 $$ $$ X_s^{1,1} = K_i^1 \oplus K_j^1 \oplus K_k^1 $$ 她已經改組並重命名了這些值 $ X_s^1,X_s^2,X_s^3,X_s^4 $ 並將它們發送給鮑勃。 $ K_i^0 $ 是關鍵 $ w_i $ 當它的值為0時等等。
Bob 還可以訪問每條線路的兩個密鑰的雜湊值,儘管他不知道哪個密鑰表示該線路為 0,哪個表示 1。
說鮑勃有 $ K_i^{v_i} $ 和 $ K_j^{v_j} $ 在哪裡 $ v_i,v_j\in{0,1} $ 是電線的值 $ w_i,w_j $ .
假設 Bob 計算 $ K_j^{v_j}\oplus X_s^{0,0}\oplus X_s^{0,1}=K_j^{v_j}\oplus K_j^0\oplus K_j^1 = K_j^{1-v_j} $
他仍然不知道是否關鍵 $ K_j^{1-v_j} $ 是 $ K_j^0 $ 或者 $ K_j^1 $ ,但他將擁有兩個電線鑰匙 $ w_j $ .
現在,他可能不知道是哪兩個 $ X_s $ 值是 $ X_s^{0,0} $ 和 $ X_s^{0,1} $ . 但他可以嘗試所有 6 種組合。自從愛麗絲給了他 $ AUTH(K_j^{1-v_j}) $ (其中 AUTH 是一個陷門函式)Bob 可以將此函式應用於所有 6 個值,並查看哪個值與 Alice 給他的值匹配。
以同樣的方式 Bob 可以找到 $ K_i^{1-v_i} $ .
Bob 仍然不知道哪些鍵代表 0,哪些代表 1。但他確實知道這是一個與門,所以如果他計算輸入線鍵值的所有 4 個組合的輸出線鍵值的值。對於其中三個,輸出鍵將是 $ K_k^0 $ 其中之一將是 $ K_k^1 $ . 所以 Bob 會知道哪個鍵代表 0,哪個代表 1。
據我了解,Bob 也沒有偏離算法,因為他仍然可以計算他要計算的內容並將輸出發送給 Alice。所以鮑勃仍然誠實但好奇。
因此,如果一個誠實但好奇的 Bob 知道電路有哪些類型的門,他似乎可以發現哪些鍵代表 0,哪些代表 1。
這種推理有缺陷嗎?
提前致謝。
你理解的那個總結對我來說似乎是虛假的。明顯一樣 $ K_i^b $ 值被用作一次性填充鍵,但被多次使用。這是一個重要的危險信號。
這是一個更簡單的攻擊:如果你對所有 4 個密文進行異或 $ X_s^{i,j} $ 你會得到 $ \Delta = K_k^0 \oplus K_k^1 $ . 由於構造的功能確保 Bob 將至少學習其中一個值 $ K_k^v $ ,他可以通過 $ K_k^{1-v} = \Delta \oplus K_k^v $ . 正如您所指出的,學習兩個電線標籤是對隱私權的侵犯。
雖然可以對亂碼電路使用類似一次性墊的東西(例如參見Kolesnikov 的這篇論文),但它需要更加小心,並且通常在實踐中不使用。
最好將亂碼門視為以下 4 個密文的隨機排列:
$ \qquad \textsf{Enc}{A_0,B_0}(C_0), \quad \textsf{Enc}{A_0,B_1}(C_0), \quad \textsf{Enc}{A_1,B_0}(C_0), \quad \textsf{Enc}{A_1,B_1}(C_1) $
在哪裡 $ \textsf{Enc} $ 是合法的加密方案。(我喜歡用 $ A_0,A_1 $ 作為左側輸入線上的線標籤, $ B_0,B_1 $ 用於右側輸入線上的線標籤,以及 $ C_0,C_1 $ 對於輸出線標籤)特別是,知道 $ Y $ 和 $ \textsf{Enc}_K(Y) $ 不應該讓你解決 $ K $ 就像它在一次性墊中一樣。
回答關於隱藏電路的更大問題。不需要對 Bob 隱藏電路。兩方計算的標准設置是雙方首先就計算的功能達成一致。函式的輸入是隱藏的,而不是函式本身。此外,大多數實際的亂碼電路結構都使用“Free XOR”優化,這要求 Bob 對 XOR 門和 AND 門採取不同的行為(因此他必須知道每個門的類型)。