安全多方计算技术(Security Multi-Party Computation, SMC)

来源:互联网 发布:免费开源cms系统 编辑:程序博客网 时间:2024/05/16 17:35

安全多方计算技术

(Security Multi-Party Computation, SMC)

 

一、             什么是安全多方计算?

为了说明什么是安全多方计算,首先我们先介绍几个实际生活中的例子。

1.  Alice认为她的了某种遗传疾病,想验证自己的想法。正好她知道Bob有一个关于疾病的DNA模型的数据库。如果她把自己的DNA样品寄给Bob,那么Bob可以给出她的DNA的诊断结果。但是Alice又不想别人知道,这是她的隐私。所以,她请求Bob帮忙诊断自己DNA的方式是不可行的。因为这样Bob就知道了她的DNA及相关私人信息。

2.  经过一次花费昂贵的市场调查后,A公司决定扩展在某些地区的市场份额来获取丰厚的回报。同时,A公司也注意到B公司也在扩展一些地区的市场份额。在策略上,两个公司都不想在相同地区互相竞争,所以他们都想在不泄露市场地区位置信息的情况下知道他们的市场地区是否有重叠。(信息的泄露可能会导致公司很大的损失。比如另一家对手公司知道AB公司的扩展地区,提前行动占领市场;又比如房地产公司知道AB公司的扩展计划,提前提高当地的房租等等)所以他们需要一种方法在保证私密的前提下解决这个问题。

3.  两个金融组织计划为了共同的利益决定互相合作一个项目。每个组织都想自己的需求获得满足。然而,他们的需求都是他们自己专有的数据,没人愿意透露给其他方,甚至是“信任”的第三方。那么他们如何在保护数据私密性的前提下合作项目呢?

 

以上三个例子的共有特点是:

<1>. 两或更多方参与基于他们各自私密输入的计算。

<2>. 而且他们都不想其他方知道自己的输入信息。

问题变成了在保护输入数据私密性的前提下如何实现这种计算? 我们称之为“安全多方计算(Secure Multi-party Computation)”问题。

通常讲,一个安全多方计算问题在一个分布网络上计算基于任何输入的任何概率函数,每个输入方在这个分布网络上都拥有一个输入,而这个分布网络要确保输入的独立性,计算的正确性,而且除了各自的输入外,不透露其他任何可用于推导其他输入和输出的信息。

当前,解决上述问题的策略是假设有可信任的服务提供者或是假设存在可信任的第三方。但是在目前多变和充满恶意的环境中,这是极具风险的。因此,可以支持联合计算并保护参与者私密的协议变的日益重要。理论上讲,通用的安全多方计算问题是可解决的。但是,正如Goldreich所指出的,源于针对特殊例子的安全多方计算的通用结果的安全多方计算方案是不切实际的。

最后,我们给出安全多方计算的定义:SMC是解决一组互不信任的参与方之间保护隐私的协同计算问题,SMC要确保输入的独立性,计算的正确性,同时不泄露各输入值给参与计算的其他成员。一个SMC模型由以下四个方面组成:

l         参与方。

l         安全性定义。

l         通信网模型。

l         信息论安全与密码学安全。

 

 

 (未完待续)