Obfuscation
一個可學習的函式怎麼可能是可混淆的?
我在一次關於密碼學混淆的講座中無意中聽到可學習的函式是可混淆的。但對我來說,這似乎太違反直覺了。
讓我們以一個線性函式(作為可學習函式的一個例子)為例,然後假設我得到了該函式的任何混淆版本,我總是可以通過查詢可以訪問原始函式的 oracle 來找到原始函式 - 那麼我是如何設法做到的一開始就混淆原始的可學習函式?
我不確定您關心的混淆定義是什麼,但在密碼學中,我們通常會考慮虛擬黑盒混淆 (VBBO) 或不可區分混淆 (IO)。據我所知,這兩個定義都允許從混淆程序中提取可學習的資訊(這裡可學習的意思是通過查詢可以訪問原始函式的預言機來學習)。也就是說,加密混淆本質上並沒有隱藏任何關於可學習函式的資訊。
換句話說,密碼學混淆不排除從預言機中學習一些東西來訪問程序。相反,加密混淆確實排除了學習除預言機訪問或程序的輸入輸出行為之外的任何內容的可能性。特別是使用 VBBO 或 IO,在安全性方面混淆可學習功能是沒有意義的。
讓我簡要描述一下 VBBO 的(非正式)正式定義。編譯器 $ C $ 需要一個程序 $ P $ 並輸出另一個程序 $ C(P) $ 如果滿足以下條件,則稱為 VBBO:對於任何有效算法 $ A $ 什麼都知道 $ C(P) $ ,有模擬器 $ S $ 只有通過 oracle 訪問才能學到完全相同的東西 $ P $ . 更正式地說,它認為 $$ \Pr_{C,A} [A(C(P))\rightarrow 1] \approx \Pr_S[S^P ()\rightarrow 1]. $$ 我省略了安全參數、可忽略的差異等。此定義不會通過查詢有權訪問原始程序的預言機來阻止學習。
也許你對這個討論感興趣。