简析安全多方计算

source:

安全多方计算(Secure Multi-Party Computation, MPC)技术,亦称安全计算(Secure Computation)和隐私保护计算(Privacy-Preserving Computation)。安全多方计算是当今密码学的一个重要分支,是继成熟解决数据加密存储、传输之后的重要尝试,在密文数据上直接构建运算。

具体而言,安全多方计算由 n 个互相不信任的参与方进行,联合对一个协商确定的函数进行计算,能够保证参与方的隐私输入数据 x1,x2,···,xn 无法被其他参与方获得。姚期智院士 (Andrew C.Yao) 于 1982 年发表的文章「 Protocols for Secure Computation」首次提出姚氏百万富翁问题和安全多方计算的概念。这个有趣的问题是, 两个百万富翁希望知道谁更富有,但是不希望对方或第三方知道自己的财富值。之后 Goldreich,Micali 和 Widgerson 等密码学家将这个问题一般化成为现在的安全多方计算问题。此后该领域内学术研究和商业应用蓬勃发展,如今安全多方计算协议是多种密码协议的组合, 如同态加密、零知识证明、秘密分享等。近 10 年来,密码学界对安全多方计算的探索有了长足的发展,笔者在实践中发现一些特定协议的计算效率已经达到商用程度。与区块链类似,安全多方计算同样存在「不可能三角」,需要在安全性,通用性,计算效率这三点之间权衡。

当今使用的安全多方计算技术按底层技术分为两个分支,基于混淆电路(Garbled Circuit)的与基于秘密分享(Secret Sharing)。

  • 混淆电路与不经意传输(Oblivious Transfer)为姚期智院士提出的安全计算技术路径 。简单来讲,基于混淆电路的协议更适用于两方逻辑运算,通讯轮数固定,但是拓展性稍差。
  • 另一类基于秘密分享的安全多方计算中,数据输入和计算中间值都会以「密文分片」的方式存在。 秘密分享技术可以把隐私数据切割为 2 份或更多份后,将随机分片分发给计算参与方,这个过程保护了数据隐私又允许多方联合对数据进行计算。 之后,就可以利用分片间存在的同态计算性质来实现在分片上计算并重建得到隐私数据计算结果。基于秘密分享的安全多方计算目前主要由欧洲密码学界主导,如 Smart, Damgard 等密码学家,其拓展性较强, 理论上支持无限多方参与计算,计算效率高,但通讯负载较大。

隐私计算正在逐步被应用于金融和保险风控、OTC 交易、资产管理、互联网营销等领域。同时作为一项前沿技术,隐私计算的从业者在积极推动技术的标准化工作。2019 年 6 月,工信部直属单位中国信息通信研究院正式发布《基于安全多方计算的数据流通产品技术要求与测试方法》行业标准, ARPA、阿里巴巴、蚂蚁金服、百度等企业参与制定。国际上,IEEE 安全多方计算国际标准的制定和 MPC Alliance 企业联盟的建立也预示着隐私计算从学术界向工业界的拓展。

应用场景:金融、保险黑名单安全查询
黑名单主要用于记录个人或企业客户的不良行为。每个机构都会维护多种业务的黑名单,从小型商业公司到跨国机构,从金融交易到信用记录。机构之间的黑名单共享和查询有助于帮助机构规避风险,如多头借贷、多头骗保等,然而对于黑名单的明文共享既危害用户隐私也泄露商业机密。利用隐私计算进行的黑名单查询可以在保护隐私的情况下降低机构风险。这类计算需要对比两组列表并找出其中重合的部分,这个过程应能保证参与方无法获得除结果外的信息,并可以规避被查询方获得查询条件。