隨機編碼和不可區分性混淆
隨機編碼是一種特殊類型的 iO 嗎?
不,隨機編碼並不是真正的混淆形式。直覺地說,在隨機編碼中,您對函式進行編碼 $ f $ 變成一個更簡單的功能 $ \hat f $ 使用隨機性:
$ \mathsf{Encode}(f;r) \rightarrow \hat f $
這樣給定 $ \hat f(x) $ , 你可以重構 $ f(x) $ ,僅此而已。
混淆有兩個關鍵的區別:(1)你不被允許看到 $ \hat f $ 很清楚,但只是對一個點的評估,並且(2)這個屬性只為您提供單一評估的安全性 $ \hat f $ : 如果你得到 $ \hat f(x_1), \hat f(x_2) $ ,這在一般情況下變得完全壞了!
另一方面,混淆會給你一些 $ \hat f $ 這並沒有透露哪個 $ f $ 被混淆了(在所有功能等效的候選者中),即使你在很多點上看到它的評估——實際上,即使你得到了 $ \hat f $ 在明確!
如果有幫助,隨機編碼基本上等同於亂碼電路,直到精確模板中的一些細節。更準確地說,亂碼電路就是我們所說的可分解隨機編碼,其中 $ \hat f(x) $ 包含與輸入無關的部分,表示為 $ \mathsf{G}(f) $ - 那是亂碼 $ f $ ,以及一個依賴於輸入的部分,表示為 $ \mathsf{T}_x $ .
例如,Yao 的標準亂碼電路結構是將所有多尺寸電路的計算隨機編碼為低深度電路。從某種意義上說,一個亂碼電路給你一個基於令牌的一次性混淆:給定一個電路 $ f $ ,你會得到一個亂碼的電路 $ \mathsf{G}(f) $ . 現在,給定 $ \mathsf{G}(f) $ 和適當的令牌 $ \mathsf{T}_x $ 對於輸入 $ x $ , 你可以計算 $ f(x) $ 僅此而已。
因此,可分解的隨機編碼(即亂碼電路)將是一種混淆形式,其中:
- 您無法在任意輸入上評估“混淆”電路:您需要為此輸入獲取特殊的評估令牌
- 您只能收到一個評估令牌
如果你放寬第二個屬性,你就會得到可重複使用的亂碼電路的概念,這在 LWE 等假設下是已知的。這更接近於混淆,但距離完全的混淆仍然很遠:您仍然需要一個具有私人資訊的外部方,它會為您想要評估的每個輸入發送令牌。