什麼是黑盒混淆?
我在某種直覺的層面上將黑盒混淆理解為-“對手從混淆的程序/電路/功能中學到的東西,就像他或她從對同一程序/電路/功能的黑盒訪問中學到的一樣多。” 但我沒有正式掌握它。
我從這個網站得到以下描述:
**黑盒混淆:**針對每個對手 $ A $ ,有模擬器 $ S $ 這樣對於每個程序 $ f $ 和區分器 $ D $ :
$$ Pr(D(A(O(f)))) ≈ Pr(D(S^{f}(|f|))) $$
我明白了大部分,但我不明白什麼是/模擬器 $ S $ 是以及它在定義中的用途。換句話說,模擬器的存在與什麼有關?
模擬器只是一種算法。這個想法是,對於任何對手 $ A $ , 你可以創建一個算法 $ S $ 可以“模擬”的 $ A $ ,也就是說,它的輸出與 $ A $ .
符號 $ S^{f} $ 意味著算法 $ S $ 無法直接訪問 $ f $ , 但只是 oracle 訪問, 即, 每次 $ S $ 想評價 $ f $ 在輸入 $ x $ ,它只是發送 $ x $ 到神諭並得到 $ f(x) $ . 這形式化了“ $ S $ 什麼都不知道 $ f $ 但是成對的輸入輸出 $ (x, f(x)) $ “. 的實際輸入 $ S $ 只是“程序的大小”。這就是為什麼我們寫 $ S^f(|f|) $ .
另一方面,我們有一個對手(也是一個算法),它有一個函式的混淆作為輸入,即 $ O(f) $ ,並且可以自行評估混淆函式,獲得 $ O(f)(x) = f(x) $ 對於任何 $ x $ . 但不僅如此,它實際上可以分析 $ O(f) $ 嘗試提取有關的額外資訊 $ f $ .
現在,當我們說這兩個機率分佈相同(或無法區分)時,我們是說兩者 $ S^f $ 和 $ A $ 行為方式相同,即它們輸出的值相同。特別是,如果 $ A $ 可以輸出一些關於 $ f $ , 所以可以 $ S^f $ . 但是隨後可以從輸入-輸出對中學習該資訊,因為僅此而已 $ S^f $ 有,這意味著混淆 $ O(f) $ 不會洩露有關的額外資訊 $ f $ , 如預期。
- 你有一個多項式黑盒攻擊者,他能夠向預言機發出多項式許多請求。
- 你有一個指數級的黑盒攻擊者,他能夠向預言機發出指數級的請求。
- 您有一個多項式白盒攻擊者,他可以訪問(混淆的)表示,並且可以做的不僅僅是查詢預言機,而且必須在多項式時間內工作。
虛擬黑盒屬性表示攻擊者 3 等同於攻擊者 1。如果攻擊者 3 獲得攻擊者 2 的權力,則混淆被打破。