15

简单写写安全多方计算

 3 years ago
source link: https://blog.csdn.net/gaixiaoyang123/article/details/113130885
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

|0x00 什么是安全多方计算

多方安全计算最近很火,不仅是因为欧盟出了一个数据隐私法规《通用数据保护条例》(General Data Protection Regulation,简称GDPR),也在于存量市场竞争下,大家都有了更多数据合作的场景。例如:两家公司都有一份用户数据,但不想让对方知道自己的用户是谁,但又想知道自己的用户跟对方的用户,有多少是重叠的,这时候我们通过怎样的算法,才能让自己用户信息不泄露的情况下,获得自己想要的结果?

安全多方计算起源于著名的“百万富翁”问题:有两个富翁想比较一些谁更富有,彼此的财产都是0-10之间的整数,问如何在不透露自己财产的情况下,比较谁更富有?

有人提出一个解决方案:找一个天平,两边各放上一个封闭的盒子,让富翁在盒子里放上等重的苹果,有多少财富,就放几个苹果,最后看哪边重就行了,很简单。

真的简单吗?

这个方案有一个很致命的问题,就是天平是谁来提供的?试想这两个富翁,如果两个人没有共同信任的第三人,那么这个问题要怎么解决?天平的提供方会不会同时知道两个人的财富?如果天平不是公平的,那么什么才能保证公平呢?

这里面就涉及到了一个非常关键的问题:“可信第三方”。这个问题虽然简单,但解决起来很复杂。

在1982年,姚期智先生在其发表的文章《安全计算协议》里,提出了“安全多方计算”(英文:Secure Multi-Party Computation)的概念,来解决这个问题。研究的主要内容,是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题。

作为密码学的一个子领域,“安全多方计算协议”允许多个数据所有者在互不信任的情况下进行协同计算,输出计算结果,并保证任何一方均无法得到除应得的计算结果之外的其他任何信息。换句话说,各方的输入数据只有自己知道,通过一种加密的算法,让各方得到自己想要的结果。

随着用户隐私、数据安全的问题被越来越多的重视,“安全多方计算”也就越来越火热了起来,为解决数据孤岛问题,打破数据在行业、企业间流动的壁垒,提供了一种技术上的实现思路。

|0x01 多方安全计算有哪些算法

主流的多方安全计算,目前有四种实现方式:

  • 第一种是“混淆电路”,又称姚氏电路,这是一种密码学协议,历史非常悠久,1986年由姚期智教授提出,核心是将安全计算函数编译成布尔电路的形式。
  • 第二种是“秘密分享”算法,因为电路设计总是非常复杂的,因此通过简单的数学思路将这个问题简化。“秘密分享”算法的基本思路是将每个数字拆散成多个数,并将这些数分发到多个参与方,每个参与方拿到的都是原始数据的一部分,只有大家把各自的数据凑在一起时才能还原真实数据。
  • 第三种是“同态加密”,同态加密是指这样一种加密函数,对明文进行加法和乘法运算再加密,与加密后对密文进行相应的运算,结果是等价的。由于这个良好的性质,人们可以委托第三方对数据进行处理而不泄露信息。
  • 第四种是“茫然随机访问机”,英文是“ORAM”,一种可以用来完全隐藏IO操作的数据加密方案,完全消除了内存访问轨迹中的信息泄漏,除了交集外的双方集合的任何元素不会被泄露。

以上算法都可以在网上搜到,这里就不展开讲了。其实还有一些其他的方法,比如差分隐私,有兴趣的可以自行搜索。

但不论是哪种方法,最终目标,都是在保护数据隐私的前提下,尽可能的提升计算性能,并提供更加丰富的数据加工手段。

|0x02 多方安全计算的特点

多方安全计算的特点是什么呢?简单讲,有三种:

  • 去中心化:多方安全计算各个数据的输入方,在不泄露各自数据的情况下,完成相应的计算,各参与方地位平等,不存在任何有特权的参与方;这个原理与区块链的理念比较类似,避免了大型的中心化节点,也就防止了数据被几家巨头所垄断,而数据的拥有者成为了数据交换的主体;
  • 计算高效:过去复杂的密码学策略,并不适用于海量数据,但随着近年来越来越多的人参与进来,提升了相关算法的效率,使得一些算法的复杂度能够达到线性,已经能够适应当今大数据的海量计算需求;
  • 输入隐私:多方安全计算包括了很多种类型的加密协议和算法,基于不同的加密学原理而得到,详情见|0x02,理论上,安全性与我们熟悉的加密算法,没有什么不同。

自2018年后,工业界已经能够在海量数据的场景下,解决数据的隐私保护为题,这是一个非常明确的转折点信号,国家可以通过这项技术,来真正落实个人的数据隐私问题。欧洲的GDPR、中国的密码法、美国加州的CCPA,也都是在这种背景下诞生的。

|0xFF 多方安全计算的应用场景

首先,多方安全计算最重要的应用场景,就是个人隐私了,大量的互联网服务都需要个人的隐私数据,这都需要隐私算法来完成对个人的保护。

其次,不仅是企业内部需要解决数据互通的问题,各个政府、大企业之间,也有数据互通的需求,但也都互相需要进行相应数据的保密。过去因为技术问题,被动导致了很多“数据孤岛”问题,随着今天多方安全计算的发展,已经能够得到解决了。

再次,即便是企业内部,也存在数据泄露的风险,自己人权限设置不当,很容易导致企业自己的核心数据泄露,而多方安全计算能够将原始数据加密,即便你拿到了数据,也无法破解。

当然,多方安全计算的性能,毕竟还是存在局限的,需要消耗更多的机器算力来支持,这对于成本也是一种巨大的挑战。

不管怎样,我们还是要适应GDPR以后的互联网行业,数据隐私问题将会长期受到关注,而懂一些数据安全算法,很有必要。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK