如今,互联网已经完成了从IT时代向DT时代转变,数据已经成为DT时代企业的核心竞争力。而数据作为一种新能源,只有流动起来才能产生价值。不过,大多数企业考虑到数据安全和个人隐私等问题,对数据共享都非常谨慎。在现实生活中,我们时常会受到下列问题的困扰:
· 医院需要共享医疗信息,但是又不想泄露单个患者的隐私;
· 政府机构需要统计选举数据,但是又不想公开投票选民的选举记录;
· 一家制造厂商想要以行业标准检验产品水准,但又不想让竞争对手知道他们真实的生产数据。
针对这种“数据孤岛”现象,安全多方计算(Secure Muti-party Computation)提供了一种解决方案,为实现数据的可控共享做出了重大贡献。
安全多方计算理论的提出
安全多方计算(Secure Muti-party Computation,简称MPC,亦可简称SMC或SMPC)问题首先由华裔计算机科学家、图领奖获得者姚期智教授于1982年提出,也就是为人熟知的百万富翁问题:两个争强好胜的富翁Alice和Bob在街头相遇,如何在不暴露各自财富的前提下比较出谁更富有?
【姚期智教授】
姚氏“百万富翁问题”后经O Goldreich、Micali以及Wigderson等人的发展,成为现代密码学中非常活跃的研究领域,即安全多方计算,其数学描述为,“ 有n个参与者P1,P2,…Pn,要以一种安全的方式共同计算一个函数,这里的安全是指输出结果的正确性和输入信息、输出信息的保密性。具体地讲,每个参与者P1,有一个自己的保密输入信息X1,n个参与者要共同计算一个函数f(X1,X2, … ,Xn)=(Y1,Y2, … ,Yn),计算结束时,每个参与者Pi只能了解Yi,不能了解其他方的任何信息。”
简单来说,安全多方计算协议作为密码学的一个子领域,其允许多个数据所有者在互不信任的情况下进行协同计算,输出计算结果,并保证任何一方均无法得到除应得的计算结果之外的其他任何信息。换句话说,MPC技术可以获取数据使用价值,却不泄露原始数据内容。
安全多方计算的技术架构如下图所示:
【MPC技术框架图 | 中国信息通信研究院《数据流通关键技术包皮书》】
当一个MPC计算任务发起时,枢纽节点传输网络及信令控制。每个数据持有方可发起协同计算任务。通过枢纽节点进行路由寻址,选择相似数据类型的其余数据持有方进行安全的协同计算。参与协同计算的多个数据持有方的MPC节点根据计算逻辑,从本地数据库中查询所需数据,共同就MPC计算任务在数据流间进行协同计算。在保证输入隐私性的前提下,各方得到正确的数据反馈,整个过程中本地数据没有泄露给其他任何参与方。
安全多方计算