天天看點

第三十二個知識點:基于博弈的證明和基于模拟的證明

第三十二個知識點:基于博弈的證明和基于模拟的證明

在基于博弈的安全定義中,安全是由博弈過程定義的。博弈圍繞着一些通用的原始元素展開,通常由挑戰者和對手共同參與,其中挑戰者向對手提出挑戰,并在腦海中設定一定的“目标”。對手也可能擷取一些問詢能力,如果對手提供了一些正确的輸出,那麼他就達成了目标,獲勝了。一個對手的優勢(advantage)定義成一個數字,這個數字大緻反應了對手應該比普通對手的輸出好多少。例如,如果敵手需要輸出一個平均分布産生的随機數字的值,那麼這個優勢就是指的是它獲勝的機率比1/2大多少。現在,一個密碼學方案如果被認為滿足安全定義,當且僅當所有‘有效率的‘攻擊者在實際攻擊中不能獲得過大的優勢。(優勢應該是可忽略的。)

非正式地說,人們可能認為挑戰者是一個想要使用加密方案的合法使用者,而對手是一個想要違背合法使用者意願實作某些目标的壞人,而這種“成就”對應于對手的目标。一般來說,挑戰者可以通路所有的秘密參數(考慮秘密或簽名密鑰),而對手隻能通路一些問詢(考慮公共哈希函數或公共密鑰加密),以及挑戰者在遊戲中給出的任何參數(考慮公共參數和挑戰)。

這個範例中的安全性證明包括兩個重要的概念。他們使用歸約來将博弈和計算困難問題産生聯系,導緻以下形式的聲明:“如果敵人赢得比賽不可忽視的優勢,那麼就可以構造一個算法使用對手作為子程式有效地解決一些困難的問題。“另一個概念是通過game hopping。在這裡,我們将對手赢得遊戲的事件與一系列不同遊戲中的事件聯系起來。接下來的每一場比賽都與前一場比賽很接近,因為對手無法區分接下來的兩場比賽,除非它能解決一些困難的問題,或者發生一些幾乎不可能發生的事情。

本系列的前五篇部落格文章包含了四個基于遊戲的安全定義和一個基于遊戲的證明示例,其中包含一系列遊戲,是以我們在這裡不考慮任何特定的示例。

在基于模拟的安全定義中,安全是由模拟器的存在和一些理想的“函數”來定義的。考慮現實世界中的密碼方案,現在想象一下您希望該方案在理想世界中的行為。例如,在投票方案中,最好有一個受信任的第三方,該第三方擁有面向所有選民的安全通道,通過這些安全通道接收所有選票,隻釋出結果,而不釋出其他内容。如果在現實世界中存在一個模拟器,它提供與現實世界中的對手相同的輸出,同時與理想世界中的理想“功能”互動,那麼密碼方案現在是安全的。這意味着現實世界中任何可能的“攻擊”都可以應用于理想世界中的理想功能。相反,如果理想的功能在理想世界中抵抗攻擊,那麼真實的方案也在現實世界中抵抗這些攻擊。

Goldreich概念第一次出現在一篇論文,Micali, Widgerson,表明你可以玩任何遊戲(這是一些由多個政黨聯合計算),這樣在任何一步的遊戲,任何一群隻不過不到一半的球員知道他們會在一個理想的遊戲與一個可信方的執行。最近,Ran Canetti在介紹通用可組合性的文章中提出了基于仿真的安全概念。它主要用于多方計算的設定。

有什麼不同呢?在基于遊戲的方法中,每個安全概念都有自己的遊戲。如果這個概念正确地捕獲或模組化了您希望系統具有的真實世界屬性,那麼就完成了。如果您的方案需要滿足各種各樣的概念,那麼您将需要為每個概念玩遊戲。然而,在某些情況下存在一個已知的層次結構,例如,IND-CCA安全性意味着IND-CPA安全性。

相反,在基于模拟的方法中,安全性是由理想的功能模組化的。從概念上講,您的方案将不會受到破壞理想功能的攻擊。這意味着這個模型捕獲了不同的安全概念。