第三十二个知识点:基于博弈的证明和基于模拟的证明
第三十二个知识点:基于博弈的证明和基于模拟的证明
在基于博弈的安全定义中,安全是由博弈过程定义的。博弈围绕着一些通用的原始元素展开,通常由挑战者和对手共同参与,其中挑战者向对手提出挑战,并在脑海中设定一定的“目标”。对手也可能获取一些问询能力,如果对手提供了一些正确的输出,那么他就达成了目标,获胜了。一个对手的优势(advantage)定义成一个数字,这个数字大致反应了对手应该比普通对手的输出好多少。例如,如果敌手需要输出一个平均分布产生的随机数字的值,那么这个优势就是指的是它获胜的概率比1/2大多少。现在,一个密码学方案如果被认为满足安全定义,当且仅当所有‘有效率的‘攻击者在实际攻击中不能获得过大的优势。(优势应该是可忽略的。)
非正式地说,人们可能认为挑战者是一个想要使用加密方案的合法用户,而对手是一个想要违背合法用户意愿实现某些目标的坏人,而这种“成就”对应于对手的目标。一般来说,挑战者可以访问所有的秘密参数(考虑秘密或签名密钥),而对手只能访问一些问询(考虑公共哈希函数或公共密钥加密),以及挑战者在游戏中给出的任何参数(考虑公共参数和挑战)。
这个范例中的安全性证明包括两个重要的概念。他们使用归约来将博弈和计算困难问题产生联系,导致以下形式的声明:“如果敌人赢得比赛不可忽视的优势,那么就可以构造一个算法使用对手作为子程序有效地解决一些困难的问题。“另一个概念是通过game hopping。在这里,我们将对手赢得游戏的事件与一系列不同游戏中的事件联系起来。接下来的每一场比赛都与前一场比赛很接近,因为对手无法区分接下来的两场比赛,除非它能解决一些困难的问题,或者发生一些几乎不可能发生的事情。
本系列的前五篇博客文章包含了四个基于游戏的安全定义和一个基于游戏的证明示例,其中包含一系列游戏,因此我们在这里不考虑任何特定的示例。
在基于模拟的安全定义中,安全是由模拟器的存在和一些理想的“函数”来定义的。考虑现实世界中的密码方案,现在想象一下您希望该方案在理想世界中的行为。例如,在投票方案中,最好有一个受信任的第三方,该第三方拥有面向所有选民的安全通道,通过这些安全通道接收所有选票,只发布结果,而不发布其他内容。如果在现实世界中存在一个模拟器,它提供与现实世界中的对手相同的输出,同时与理想世界中的理想“功能”交互,那么密码方案现在是安全的。这意味着现实世界中任何可能的“攻击”都可以应用于理想世界中的理想功能。相反,如果理想的功能在理想世界中抵抗攻击,那么真实的方案也在现实世界中抵抗这些攻击。
Goldreich概念第一次出现在一篇论文,Micali, Widgerson,表明你可以玩任何游戏(这是一些由多个政党联合计算),这样在任何一步的游戏,任何一群只不过不到一半的球员知道他们会在一个理想的游戏与一个可信方的执行。最近,Ran Canetti在介绍通用可组合性的文章中提出了基于仿真的安全概念。它主要用于多方计算的设置。
有什么不同呢?在基于游戏的方法中,每个安全概念都有自己的游戏。如果这个概念正确地捕获或建模了您希望系统具有的真实世界属性,那么就完成了。如果您的方案需要满足各种各样的概念,那么您将需要为每个概念玩游戏。然而,在某些情况下存在一个已知的层次结构,例如,IND-CCA安全性意味着IND-CPA安全性。
相反,在基于模拟的方法中,安全性是由理想的功能建模的。从概念上讲,您的方案将不会受到破坏理想功能的攻击。这意味着这个模型捕获了不同的安全概念。