第三十二個知識點:基於博弈的證明和基於模擬的證明
在基於博弈的安全定義中,安全是由博弈過程定義的。博弈圍繞着一些通用的原始元素展開,通常由挑戰者和對手共同參與,其中挑戰者向對手提出挑戰,並在腦海中設定一定的“目標”。對手也可能獲取一些問詢能力,如果對手提供了一些正確的輸出,那么他就達成了目標,獲勝了。一個對手的優勢(advantage)定義成一個數字,這個數字大致反應了對手應該比普通對手的輸出好多少。例如,如果敵手需要輸出一個平均分布產生的隨機數字的值,那么這個優勢就是指的是它獲勝的概率比1/2大多少。現在,一個密碼學方案如果被認為滿足安全定義,當且僅當所有‘有效率的‘攻擊者在實際攻擊中不能獲得過大的優勢。(優勢應該是可忽略的。)
非正式地說,人們可能認為挑戰者是一個想要使用加密方案的合法用戶,而對手是一個想要違背合法用戶意願實現某些目標的壞人,而這種“成就”對應於對手的目標。一般來說,挑戰者可以訪問所有的秘密參數(考慮秘密或簽名密鑰),而對手只能訪問一些問詢(考慮公共哈希函數或公共密鑰加密),以及挑戰者在游戲中給出的任何參數(考慮公共參數和挑戰)。
這個范例中的安全性證明包括兩個重要的概念。他們使用歸約來將博弈和計算困難問題產生聯系,導致以下形式的聲明:“如果敵人贏得比賽不可忽視的優勢,那么就可以構造一個算法使用對手作為子程序有效地解決一些困難的問題。“另一個概念是通過game hopping。在這里,我們將對手贏得游戲的事件與一系列不同游戲中的事件聯系起來。接下來的每一場比賽都與前一場比賽很接近,因為對手無法區分接下來的兩場比賽,除非它能解決一些困難的問題,或者發生一些幾乎不可能發生的事情。
本系列的前五篇博客文章包含了四個基於游戲的安全定義和一個基於游戲的證明示例,其中包含一系列游戲,因此我們在這里不考慮任何特定的示例。
在基於模擬的安全定義中,安全是由模擬器的存在和一些理想的“函數”來定義的。考慮現實世界中的密碼方案,現在想象一下您希望該方案在理想世界中的行為。例如,在投票方案中,最好有一個受信任的第三方,該第三方擁有面向所有選民的安全通道,通過這些安全通道接收所有選票,只發布結果,而不發布其他內容。如果在現實世界中存在一個模擬器,它提供與現實世界中的對手相同的輸出,同時與理想世界中的理想“功能”交互,那么密碼方案現在是安全的。這意味着現實世界中任何可能的“攻擊”都可以應用於理想世界中的理想功能。相反,如果理想的功能在理想世界中抵抗攻擊,那么真實的方案也在現實世界中抵抗這些攻擊。
Goldreich概念第一次出現在一篇論文,Micali, Widgerson,表明你可以玩任何游戲(這是一些由多個政黨聯合計算),這樣在任何一步的游戲,任何一群只不過不到一半的球員知道他們會在一個理想的游戲與一個可信方的執行。最近,Ran Canetti在介紹通用可組合性的文章中提出了基於仿真的安全概念。它主要用於多方計算的設置。
有什么不同呢?在基於游戲的方法中,每個安全概念都有自己的游戲。如果這個概念正確地捕獲或建模了您希望系統具有的真實世界屬性,那么就完成了。如果您的方案需要滿足各種各樣的概念,那么您將需要為每個概念玩游戲。然而,在某些情況下存在一個已知的層次結構,例如,IND-CCA安全性意味着IND-CPA安全性。
相反,在基於模擬的方法中,安全性是由理想的功能建模的。從概念上講,您的方案將不會受到破壞理想功能的攻擊。這意味着這個模型捕獲了不同的安全概念。