Secure Multi‐Party Computation
本文中的所有内容是基于自己所学和理解整理而成的,解释部分可能会因为个人的理解产生错误和不严谨的问题。仅供初学者参考,欢迎交流指正。
什么是Secure Multiparty Computation
A set of parties with private inputs wish to compute some joint function of their inputs.
各方希望保留一些安全属性。例如,隐私和正确性。
例子:安全选举协议,隐私保护ML
如果存在可信的第三方,MPC很容易实现,每方只需要将它们的信息告诉这个信任的第三方,由第三方进行统一整合处理。这样各方用户之间就不会暴漏彼此的相关信息。
我们希望用一个协议来取代信任的第三方(TTP),同时实现相同的安全性和正确性目标。
安全定义
Privacy and correctness.
Privacy: parties 之间互相不知道输入。
Correctness:输出对应的输入一定是正确的。
Ideal/real model
在这里我们通过理想的/真实的模型来定义安全。
模型的范例
理想模型:
各方将输入发送给受信任的一方,后者计算函数并发送输出。
真实模型:
各方在没有TTP帮助的情况下运行一个真正的协议
如果对真实协议的任何攻击都可以在理想模型中执行(或模拟),那么协议就是安全的。
由于在理想的模型中基本上不可能进行任何攻击,因此隐含了安全性。
结合图来说一下。
上图左边是 real world 右边是 ideal world 右上那个人是 trust third-party. 总得来说就是,如果左边 real world 的中红色的 attacker 有什么能力的话,右边 ideal world 会有一个红色的模仿者,它与左边的 attacker 有着相同的能力,如果左边人能够获得任何跟 x 有关的信息的话,右边的模仿者应该也能获得跟 x有关的信息,但是对于理想世界模型来说,这个模仿者不应该能获得跟 x 有关
的信息,所以 real world 和 ideal world 有区别,不