基於模擬的證明和通用可組合性證明
我最近閱讀了 Ran Canetti 著名的 UC 論文,但我仍在努力思考這些概念。我認為這個答案讓我有點困惑,特別是在它說的地方
獨立的基於模擬的定義為您提供順序組合下的安全性,通用組合性及其變體為您提供並發組合下的安全性
這到底是什麼意思?
此外,UC 證明如何工作?以下是否正確:
- 如果您表明環境無法判斷它是與真實對手和真實協議互動,還是與模擬器/理想對手和理想功能互動,則 UC 證明有效。
- 為此,為了證明,必須為每個真正的對手定義一個模擬器。
我的(另一個)問題是,我們如何定義這個模擬器?在證明中,我只看到模擬器被定義為它在收到來自理想功能的消息時的行為方式以及它在收到來自對手的消息時的行為方式?但是為什麼它從來沒有通過它從環境中接收到消息時的行為來描述呢?環境想要與真正的對手/模擬器進行雙向互動,對嗎?那麼我們是否必須定義模擬器,以便它知道如何響應和與環境互動?
另外,如果您能向我展示 UC 框架中的範例證明,我將不勝感激。越短/越容易越好,這樣我就可以理解它。我絕對會喜歡Shoup 關於遊戲跳躍證明的教程之類的論文。
非常感謝!
這到底是什麼意思?
環境的目的是對協議執行之外的“宇宙中發生的一切”進行建模。在 UC 模型中,攻擊者可以在協議執行*期間與環境對話。*因此 UC 安全意味著“無論世界上發生什麼其他事情,即使在協議執行期間世界上正在發生其他事情的安全性”。例如,攻擊者可能正在執行其他協議(或相同協議)的實例,針對可能使用相關輸入的誠實方等。
有幾種獨立的安全定義,並不全是等價的。但就這個問題而言,將獨立安全性視為與 UC 安全性完全相同,只是在協議執行期間不允許攻擊者與環境對話*。他們只能在行刑前後交談。在這個模型中,我們不能使用環境來擷取在我們的協議執行期間正在做“其他事情”的對手。*我們可以對在我們執行之後或之前與誠實方在相關輸入上執行其他協議的對手進行建模,但不能在.
如果一個協議在許多實例被順序執行時是安全的,那麼它就支持順序組合*,*可能在相關輸入上。在獨立模型和 UC 模型中都可以輕鬆表達這一點。您可以通過讓對手在執行之間傳遞其狀態來擷取順序組合。與環境的執行前/執行後通信足以做到這一點,因此在獨立模型中很好。
如果一個協議在多個實例同時執行時是安全的,那麼它就支持並發組合*,**可能*在相關輸入上。無法在獨立中表達這一點——只能在 UC 中。所以獨立安全並不能保證這個屬性,並且確實有獨立安全協議在並發執行時不安全的反例。
這種獨立安全性的限制(即在協議執行期間不與環境通信)實際上用於獨立模型的安全證明中。模擬器的一種常用技術是“倒帶”對手,這意味著將其內部狀態恢復到協議中的先前時間。這在獨立模型中是安全的,因為對手與環境分離。但這在 UC 模型中無效,因為如果您試圖將對手倒回到回合 $ r $ 在協議中,對手可能已經在回合中與環境進行了交談 $ r+1 $ . 環境不能倒帶,所以這會導致環境注意到真實和模擬之間的差異——這種技術不能用於 UC 安全證明。
如果您表明環境無法判斷它是與真實對手和真實協議互動,還是與模擬器/理想對手和理想功能互動,則 UC 證明有效。
是的。
為此,為了證明,必須為每個真正的對手定義一個模擬器。
是的,但有一條捷徑。以您希望考慮的任何環境和對手為例,並想像在邏輯上將對手移動到環境中,以便剩下的所有內容都是句法上的“虛擬對手”。虛擬對手只是說出邏輯對手(生活在環境中)告訴它的任何內容,並在收到消息時報告它看到的所有消息。這不會改變互動,它只會重新包裝元件。因此,每個 UC 互動都可以用等效互動來表示,其中對手是這樣一個虛擬對手。由於 UC 安全性對所有環境進行了量化,因此只需證明相對於虛擬對手的安全性就足夠了。
我的(另一個)問題是,我們如何定義這個模擬器?在證明中,我只看到模擬器被定義為它在收到來自理想功能的消息時的行為方式以及它在收到來自對手的消息時的行為方式?但是為什麼它從來沒有通過它從環境中接收到消息時的行為來描述呢?環境想要與真正的對手/模擬器進行雙向互動,對嗎?那麼我們是否必須定義模擬器,以便它知道如何響應和與環境互動?
也許這個問題在了解虛擬對手的情況下得到了解決。當您想像與虛擬對手的互動時,您會失去環境與嵌入環境中的邏輯對手之間的區別。所以收到來自
$$ logical $$對手/從環境中接收消息實際上指的是同一件事。我們只是不失一般性地知道,與環境的所有通信都將採用虛擬對手形式:環境說“這是要在協議中發送的消息”,虛擬對手/模擬器必須報告所有$$ simulated $$看到的協議消息。
另外,如果您能向我展示 UC 框架中的範例證明,我將不勝感激。越短/越容易越好,這樣我就可以理解它。
什麼都不會立刻浮現在腦海中。您可能想搜尋“UC 安全”+“講義”。此外,您可能對以下最近的論文感興趣,該論文提出了一個簡化的 UC 模型,但足以滿足 99% 的案例:
- Ran Canetti、Asaf Cohen 和 Yehuda Lindell:標準多方計算的通用可組合安全性的簡單變體,CRYPTO 2015。