对于多方安全计算,你是否也有这样的疑惑?
学习&转载文章:对于多方安全计算,你是否也有这样的疑惑?
问题
假设多方安全计算中有两个参与方
回答
对于安全多方计算协议来说,我们需要针对问题定义一个对应的ideal functionality「理想函数」,然后设计协议来模拟这个ideal functionality。
通俗来说,我们首先假设存在一个可信第三方(可能需要经过专门定制)的方案来解决对应的问题,然后我们要设计协议来取代这个可信第三方(或模拟可信第三方的存在),获得一个无可信第三方的协议。协议的安全性证明(不正式地描述)是,任何针对协议的攻击都可以转换成针对存在可信第三方的方案的攻击,因为存在可信第三方的方案非常简单,一眼就知道是安全的,那些攻击都是无力的(??),那么协议就是安全的。
针对题目中的场景,
那么,我们设计的想要移除可信第三方的协议,就没法保证做到比存在可信第三方时还要好。而在这个可信第三方存在的方案中,,则就算可信第三方存在,一方得到结果,肯定可以从另一方的输入中推算到另一方的输入,这不影响协议的安全性,因为协议我们只能要求它能够取代可信第三方的存在。换句话说,收到结果的一方通过协议(或者可信第三方存在的方案),只能得到结果以及自己输入所能推导出的信息。因为这里可以推导出另一方的输入,那这也是允许的。如果参与方是3人,计算
- 可信第三方存在的方案中,也会存在该问题:一方可能根据结果反推出另外一方输入信息
需要注意到,存在可信第三方的方案非常简单,一眼就知道是安全的,同时也需要注意到,这里
- 即使存在第三方,也无法阻恶意的输入获取对方输入信息
再稍微补充一下,为什么上面提到说可信第三方是需要经过定制的?
我们还是考虑上面的两方场景(上面讨论的是半诚实模型下的场景,即参与两方都会认真遵从协议,这里我们将讨论恶意模型,即参与方可能会偏离协议),并且我们的场景希望最后两方都得到结果 。理论上已经证明,对于两方协议,如果一方作恶偏离协议,那么协议没法达到这个完全公平的目标。从直觉上我们也可以知道,如果一方在拿到结果后直接跑路,另一方就没法得到结果。那么这里如果我们就要假设存在一个可信第三方的理想方案,我们不让可信第三方直接把结果发给二人(因为这样没有协议能做到模拟这种场景)。我们这里就需要定制这个可信第三方,让可信第三方把结果发给恶意的参与者,然后询问恶意参与者,是否要把结果发给另一个诚实参与者,如果恶意参与者同意则发,不同意则不发。基于这个定制,我们才能够设计的协议来模拟这个存在可信第三方的方案。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步