Garbled-Circuits
不同輸出的姚氏亂碼電路
在一次演講中,有人告訴我有一種可能修改 Yao 的亂碼電路協議,以便最終雙方都得到輸出的一部分,而不是另一部分。這可以通過操縱電路來實現。
有沒有人有一些提示如何做到這一點?
提前致謝。
假設你想讓 Alice 學習 $ f_A(x,y) $ 和鮑勃學習 $ f_B(x,y) $ . 然後讓 Alice 選擇隨機字元串 $ r_A $ 並讓 Bob 選擇隨機字元串 $ r_B $ . 雙方應在雙方都學習的情況下執行安全計算 $ (f_A(x,y) \oplus r_A, f_B(x,y) \oplus r_B) $ . 基本上每一方的指定輸出都被一個只有該方知道的一次性填充物所掩蓋。
我將在半誠實模型中給出一個可能的解決方案(儘管可能不是最好的),但請注意,這是對協議而不是電路的修改。我假設 Yao 具有點和置換,即每根線都有一個隨機位,並且在評估期間,評估器學習密鑰和“外部值”,這只是與隨機位異或的真實值(評估器使用這個外部值知道在每個門解密哪一行,但通常不能從中學到任何東西,因為它獨立於實際值)。
- 對於求值器的輸出線,亂碼器還為求值器提供隨機排列位。因此,評估者可以從外部值中了解這些導線的真實值。然後,評估者不能簡單地將它學到的輸出發送回亂碼器。
2)對於亂碼器的輸出,求值器沒有置換位。但是,它確實學習了外部值(和鍵)。因此,評估器將外部值發送回亂碼器,它當然知道隨機排列位,因此學習了真正的輸出。
當然,(2)在 Yao 中也是可能的,沒有點和置換,通過讓評估器將(亂碼器輸出的)鍵發送回亂碼器。
我不知道該解決方案如何在惡意模型中發揮作用,但我想這也取決於您如何從半誠實變為惡意。