How To Simulate It – A Tutorial on the Simulation Proof Technique-Part3

Defining Security for Malicious Adversaries

Motivation

相比半诚实敌手下的安全性定义,恶意敌手会更难一些,因为恶意敌手可能会做出任何偏离协议规定的行为,只要求存在一个模拟器,能根据其规定的输入和输出生成被破坏方的视图就足够了。

但是,相较于之前的敌手,攻击者可能不使用给定的输入去输出,此外,除了要考虑到攻击者会从中获取额外的信息以外,还应当考虑到攻击者对于输出所带来的影响。

我们在分析协议的安全性时,会将对手在协议中能做的事情与在理想情况下能做的事情进行比较,而理想情况下的协议根据定义是安全的。此外,我们会设计一个不可篡改的可信第三方,各方将其输入发送给该第三方。受信任方计算输入的功能,并向各方返回各自的输出。

我们假设总是有一方被破坏。

The Definition

理想模型允许理想执行中的对手中止执行或在诚实方未获得输出的情况下获得输出。

参与方P1,P2P_1,P_2,敌手A\mathcal{A},函数f:{0,1}×{0,1}{0,1}×{0,1}f:\{0,1\}^*\times \{0,1\}^* \rightarrow \{0,1\}^*\times \{0,1\}^*的理想执行如下:

输入:x(P1),y(P2),z(A)x(P_1),y(P_2),z(\mathcal{A}),安全参数1n1^n

向可信方发送输入:诚实参与方PjP_j直接发送既定的输入给可信第三方。恶意参与方PiP_i可能会发送abort(通过发送一个abortiabort_i的特殊消息)、发送既定的输入、发送等长的其他输入。这个决定由攻击者决定,可能是由PiP_i的输入值和辅助值zz所影响的。定义发送给可信第三方的输入对为(x,y)(x^\prime,y^\prime)

提前终止选项:如果可信第三方收到了输入abortiabort_i,那么可信第三方发送abortiabort_iPjP_j并结束执行。

可信方发送输出给攻击者:此时可信第三方计算得到f1(x,y),f2(x,y)f_1(x^\prime,y^\prime),f_2(x^\prime,y^\prime)然后发送fi(x,y),f_i(x^\prime,y^\prime),给恶意参与方PiP_i

攻击者命令可信方继续或中止: 攻击者A\mathcal{A}发送comtinuecomtinue或者abortiabort_i给可信第三方。如果发送的是continuecontinue,那么可信第三方把fj(x.y)f_j(x^\prime.y^\prime)发送给诚实参与方PjP_j。如果攻击者A\mathcal{A}发送的是abortiabort_i,那么可信第三方发送abortiabort_i给诚实参与方PjP_j

输出:诚实参与方直接输出他从可信第三方中得到的输出值。恶意参与方什么都不输出。攻击者A\mathcal{A}根据恶意参与方的既定输入值、攻击者的辅助值、从可信第三方得到的输出fj(x,y)f_j(x^\prime,y^\prime),输出任意的结果。

因此,一个理想执行的输出表示为IDEALf,A(z)IDEAL_{f,\mathcal{A}(z)}

在真实模型中的执行中,不存在可信的第三方,对手A\mathcal{A}代替被破坏的一方发送所有信息,并且可以遵循任意多项式时间策略。与此相反,诚实的一方遵循协议π\pi的指令

真实协议的执行被记作REALπ,A(z),i(x,y,n)REAL_{\pi,\mathcal{A}(z),i}(x,y,n)

其中,π\pi是协议,当 P1 和 P2 都诚实时,两方在分别输入 x 和 y 的情况下执行 π\pi 后分别输出 f1(x,y)f_1(x,y)f2(x,y)f_2(x,y),安全参数是nn,辅助输入是zz

形式化定义

ff 是一个两方的functionality,令 π\pi 是一个两方的协议用于计算ff。如果对于现实模型下的所有的non-uniform概率多项式时间攻击者 A\mathcal{A} ,都存在一个对于理想模型下的non-uniform概率多项式时间的攻击者 SS ,满足对于 i{1,2}i \in \{1,2\}

{IDEALf,S(z),i(x,y,n}x,y,z,nc{REALπ,A(z),i(x,y,n}x,y,z,n\{IDEAL_{f,S(z),i}(x,y,n\}_{x,y,z,n}\stackrel{c}{\equiv}\{REAL_{\pi,\mathcal{A}(z),i}(x,y,n\}_{x,y,z,n}

其中x,y{0,1}.x=y,z{0,1},nNx,y\in\{0,1\}^*.|x|=|y|,z\in \{0,1\}^*,n\in N

那么则认为协议 π\pi 能够securely compute ff with abort in the presence of static malicious adversaries。

在本教程中,我们只考虑中止的安全性。因此,在后文中,当我们说 “安全地计算 ”时,其意图始终是终止计算。

请注意,上述式子包含了正确性和隐私性,因为理想分布和真实分布都包含了被破坏方和诚实方的输出。

Modular Sequential Composition

只要执行是按顺序进行的(即每次执行结束后才开始下一次执行),在顺序组合下安全的协议在多次运行时仍能保持其安全性。

模块化顺序组合:模块化顺序组合定理表述的基本思想是证明可以设计一个将理想功能作为子程序的协议,然后分析受信任方计算该功能时协议的安全性。

混合模型:双方运行一个协议π\pi,该协议包含对可信方的 “理想调用”,该调用计算一些功能 f1,...,fp(n)f_1,...,f_{p(n)}。这些理想调用只是向可信方发送输入的指令。收到受信任方的输出后,协议π\pi继续执行。协议π\pi规定,每ii次调用fif_i之前都要调用fi+1f_{i+1}。诚实方在同一轮中向可信方发送其输入,在收到其输出之前不会发送其他信息。

协议π\pi的hybrid执行被记作

HYBRIDπ,A(z),if1,...,fp(n)(x,y,n)HYBRID_{\pi,\mathcal{A}(z),i}^{f_1,...,f_{p(n)}}(x,y,n)

其中,x,y是输入,x是辅助输入

p(n)p(n)为多项式,设f1...fp(n)f_1、...、f_{p(n)}为双方概率多项式时间功能,设ρ\rho为协议,使得每个ρi\rho_i都能在存在恶意对手的情况下安全地计算fif_i。让gg是一个双方功能,让π\pi是一个在f1,...,fp(n)f_1,...,f_{p(n)}混合模型中,在存在恶意对手的情况下安全计算gg的协议。那么,πρ1,...,ρp(n)\pi_{\rho_1,...,\rho_{p(n)}}就能在存在恶意对手的情况下安全地计算 gg

Advanced Topics

Composition and Universal Composability

在现实世界中,许多安全和不安全的协议都是并发运行的,因此我们希望在这种情况下也能保证安全性。最流行的定义是通用可组合性(UC)

这个定义扩展了之前的定义,增加了一个环境机,它本质上是一个交互式区分器。环境机将输入写入各方的输入磁带,并读取它们的输出。此外,在整个执行过程中,它还与对手进行外部交互。环境的 “目标 ”是区分真实协议执行和理想执行。这一定义的一个非常重要的缺陷是,模拟器不能再在模拟中倒退对手。这是因为真正的对手实际上什么也做不了,只能执行环境的指令。现在,由于环境是真实对手和理想对手相互作用的外部机器,这意味着模拟器必须为外部对手进行模拟。由此可见,如果没有一个诚实的多数人,就不可能在没有任何可信设置的情况下安全地计算 UC 框架中的一大类功能。

一般 UC 框架相当复杂,因为它几乎可以为任何任务和任何环境建模。

Proofs in the Random Oracle Model

在许多情况下,随机Oracle模型被用来获得更高的效率或其他无法获得的特性。其中一个问题是,区分者是否能获得随机Oracle,如果能,又是如何获得的。在 UC 框架中,随机Oracle可以建模为计算随机函数的理想功能。

Adaptive Security

在本教程中,我们只考虑了静态对手的情况,即被破坏方的子集在协议执行开始前就已固定。与此相反,自适应对手可以根据所查看的信息,在整个协议过程中选择破坏哪一方。

对于适应性对手的情况,人们主要考虑了两种模型。第一种模式假定各方无法安全地删除数据,这被称为无删除模式。因此,一旦数据被擦除,敌方就会获得对方的全部信息–其输入、随机磁带和传入信息。

自适应安全性的一个较弱模型是假定各方可以安全地擦除数据;这被称为擦除模型。在这种情况下,各方有可能擦除部分数据。这使得模拟更容易,因为不需要生成整个视图,而只需要生成当前状态。