科普 | 隐私交集是什么?_以太坊:区块链用大白话解释

为什么要隐私交集

安全多方计算技术是现在国家极为重视的技术,在数据要素市场的建设中也扮演了非常重要的角色。运用安全多方计算算法,可以实现数据不出库前提下做到数据价值传递,是一种统筹数据资源的重要手段。在安全多方计算的家族中,隐私交集是非常重要的一个部分,也是目前为止使用最为广泛的算法之一。

什么是隐私交集

所谓隐私交集,就是在不暴露隐私的情况下求出两个集合的交集。怎么才能不暴露隐私呢?首先可以确定,我们想要的数据的“交集”不属于隐私的部分,在此可以认为除了“交集部分”的信息都是“隐私信息”。

回头看我们的标题——“悄悄地发现共同点”,我们可以从实际生活中找到一个隐私交集的例子。假设现在小明和小红在进行相亲,两人之前是没有任何的交集的陌生人,小明担心双方会尴尬,希望找些话题。

最好的话题当然就是两人之间的共同爱好,比如美食、电影等,小明决定从一个相对他来说比较好切入的点——美食,进行进一步沟通。小明不知道小红喜欢吃什么,但又希望尽可能避开雷区。

TRON数字钱包科普资料《波场钱包的现在过去与未来》已上线:据最新消息显示,由TokenPocket联合波场TRON官方,以及 TokenPocket 社区志愿者共同撰写的《波场钱包的现在过去与未来》已正式上线。《波场钱包的现在过去与未来》又称为波场钱包小白书,详细介绍了当前TRON钱包与TRON生态密切结合的实例,是目前市面上最为详细的TRON数字钱包科普资料。波场钱包作为波场公链生态中极为重要的入口,是波场生态的重要构成要素。波场钱包从一开始只提供权限管理、转账收款、节点投票等基础功能,到如今不仅可以为用户提供法币交易、闪兑和去中心化交易所等方便快捷的交易服务,还能让用户直接在钱包上体验波场上DApp,挖矿、DeFi、Staking等资产增值服务。详情见原文链接。[2020/8/20]

最稳妥的办法是直接问小红“你喜欢吃什么”,小红把自己喜欢吃的东西都说一遍,小明从里面挑几个自己也喜欢吃的东西然后展开话题。但小红也有和小明一样的顾虑,把自己喜欢吃的东西都告诉小明也可能会引起激烈的冲突。

人大附中物理老师李永乐科普拜占庭将军问题和区块链:5月14日,人大附中物理老师、科普视频网红李永乐在其公众号发布视频《拜占庭将军问题是什么?区块链如何防范恶意节点?》。李永乐老师在视频中对拜占庭将军问题和区块链进行了讲解,他表示,拜占庭将军问题本质上指的是,在分布式计算机网络中,如果存在故障和恶意节点,是否能够保持正常节点的网络一致性问题。在近40年的时间里,人们提出了许多方案解决这一问题,称为拜占庭容错法。例如兰波特自己提出了口头协议、书面协议法,后来有人提出了实用拜占庭容错PBFT算法,在2008年,中本聪发明比特币后,人们又设想了通过区块链的方法解决这一问题。区块链通过算力证明来保持账本的一致性,也就是必须计算数学题,才能得到记账的权力,其他人对这个记账结果进行验证,如果是对的,就认可你的结果。与拜占庭问题比起来,就增加了叛徒的成本。[2020/5/14]

在这种情况下最稳妥的办法就是隐私交集,双方都不告诉对方自己所有喜欢的美食是什么,最后双方却能知道两个人共同喜欢的美食是什么。

人民数字FINTECH推出区块链科普动画:人民日报数字传播发布微博称,人民数字FINTECH出品《趣味科普|区块链动画》。[2020/3/31]

怎么做

▲?简单算法

说到这里,可能就有人会好奇了,那该怎么去做这个问题呢?

最简单的一个做法是双方约定一个方法,比如双方记录自己喜欢的美食的汉字总共多少笔,然后交换笔画,之后双方看看笔画是不是一样多,如果一样多的话那就就说明我们喜欢的美食是一个东西。

看到这里你可能会说了,等等,可是很多美食的笔画是一样多的呀,比如面条和苹果都是16笔。那这个时候你可能就需要修改你的算法了,比如说每个字多少笔。

在计算机中,苹果和香蕉这些食物你可以认为是字符串,而这里的算法就是哈希函数。上面提到的算法中,面条和苹果作为输入,输出都是16,这就是哈希碰撞。哈希碰撞是简单算法会出现的第一个问题,但是其问题不仅仅这一点,现在的密码学算法已经足够强大,哈希碰撞发生的概率其实不是很高,最为重要的是安全性问题。

动态 | 报告:区块链等热点词促使童书科普百科类成交额同比增速最高:近日,京东图书与艾瑞咨询联合发布了《2019中国图书市场报告》。报告指出,AI、5G、区块链、机器人、VR、智能家居、AR这些热点词,不断点燃科技热潮,科技在改变大众生活的同时,也吸引了越来越多家长的关注,从小培养孩子对科技的兴趣和热爱。因此童书中科普百科类成交额同比增速最高,占比将近40%。[2020/1/8]

我们知道其实美食的种类听起来很多,但又不是很多,如果小明知道了小红有一个喜欢的食物总共24笔,其实他自己去网上搜一下食物的名称,很快就能发现,比如香蕉,就是24笔,那么小明就知道了小红是喜欢吃香蕉的。这就是简单算法的暴力破解问题。随着计算机运算能力的增强,暴力破解也成为了需要防备的攻破方式之一。比如现实生活中,两个人想要看号码簿的交集,如果只是简单使用哈希函数计算然后进行比较,因为手机号只有11位,对于现在的计算机来说在可接受时间内进行破解也并非难事。

▲?双重加密

简单算法既然不够安全,那么该用什么样的办法规避这种不安全的问题?其实之前的算法中只有一方进行了加密,且加密的方法双方都是知道的,这样确实会存在暴力破解的危险,那么如果让双方同时进行加密可以吗?

动态 | 新浪财经:官媒针对区块链的报道从科普宣传转向打假监管:据新浪财经今日消息,“1025新政”满月,一个月间,官媒对区块链的态度风向已转。据11月初的一项统计,七家党媒在新政一周内发布了65篇直接相关报道,当时文章中的关键词是数据、产业、安全、创新等,大量文章偏向于科普区块链的概念以及应用介绍,提醒警惕虚拟货币炒作的仅有3篇。近期,官媒的批评焦点则纷纷指向借区块链之名进行的虚拟货币发行和炒作行为。据统计,新华网、人民网收录转载的,以打击虚拟货币或揭露假借区块链行为主题的文章,自10月25日到11月25日午间,共28篇;其中,11月19日至11月25日的一周内就高达15篇。这些文章主要围绕三个观点展开:厘清区块链和虚拟货币的关系,说明二者概念不等;打击伪“区块链”局,或是虚拟货币局揭露;提醒民众,区块链不能成为炒作的噱头,更不是行的招牌,需警惕此类活动,理性投资。[2019/11/26]

比如双方事先准备一张图片,双方事先约定如果喜欢吃苹果呢就把图片顺时针旋转10度,香蕉的话就是顺时针旋转20度等等,对所有的美食都对应着一个相应的旋转角度。

然后小明先把图片按照自己喜欢的食物按照约定好的规则进行旋转,但这个时候小明不能直接把图片发送给小红,因为这样的话小红知道原始图片,又知道各个食物对应的角度,那她立刻就知道了小明喜欢的食物是什么。

所以小明会自己偷偷定一个旋转,比如逆时针旋转20度,在第一次根据食物对图片进行旋转后,再偷偷的按照自己的规则去旋转一次。

因为小红并不知道小明自己偷偷定下的规则中具体是旋转多少度,所以这个时候小红就算拿到了图片也不知道具体对应的是什么食物,因为这个时候不论什么食物都是有可能的。

小红看到小明的做法,感觉小明很聪明,也学小明偷偷定了一个自己的旋转角度,比如顺时针旋转10度。拿到了小明发给自己的图片以后就按照自己定下的角度再旋转一次。

同样的,小红也把图片按照自己自己喜欢的食物对应的角度旋转一下,再按照自己偷偷定下的角度旋转一下,然后发给小明,小明也将这个图片按照自己偷偷定下的角度进行旋转。

然后两个人就直接比较旋转后的图片,如果图片一模一样那就说明两个人喜欢吃的食物是一样的,否则就说明两个人喜欢吃的食物是不一样的。

通过两次加密的方式,我们就杜绝了穷举破解的问题,因为双方都不知道对方的秘密旋转角度是多少。

▲?非对称加密

刚刚的算法乍一听看似有点道理,但是实际上是有一点问题的,如果稍微观察一下就会发现,在最后比较的时候其实小红或者小明是拿到了两个人手里最后的结果的。

假设小明拿到了小红手里的图片,我们先回忆一下小红手里的图片是怎么构成的。首先是小明根据自己的食物选择旋转的角度,然后再按照自己偷偷定下的角度进行旋转,最后小红再按照自己偷偷定下的角度进行旋转。

那么小明其实已知三次旋转中的两次角度是什么、图片的初始状态是什么,此时小明就可以很容易地推断出小红的秘密旋转角度是什么,得到小红的秘密旋转角度后通过自己手上的另一张图片就可以很容易知道小红喜欢吃的食物是什么了。

之前提出的算法其实是基于对称加密的一个双重加密方法,因为对称加密的局限性,故双重加密总会有一个问题,即最后获取结果后比较结果时的信息泄露问题。

这个问题有三种解决办法。

?第一种是有一个居中调节方,调节方来比较最后的结果。

因为调节方并不知道双方的秘密角度,故调节方没有办法获知双方具体喜欢的食物是什么,但是居中调节方只要愿意与任何一方进行合作,那么另外一方的数据会立刻暴露,无疑是有风险的,其次如果有居中协调方那么整个算法无疑不再是分布式的了。

?第二种是在最后一步比较结果的时候使用隐私比较的技术进行比较,即保护双方数据的情况下进行比较是否相等。

但是这样会存在两个问题:首先无法确认再引入一个新的算法去解决问题,效率上是否会有问题;其次,如果两者结果相等的话,双方都能获取对方的秘密角度,在下次进行比较的时候又需要重新生成一个新的秘密角度,这也会增加每次比较时的工作量。

第三种是使用非对称加密的方式进行比较。通过非对称加密,我们可以使用最简单的办法完成这个问题。

还是刚刚的场景,如果小明和小红都有各自的公钥,相对应的,也有一份私钥。非对称加密下,如果使用公钥对数据进行加密,那么加密后的数据是只能通过对应的私钥进行解密的。

通过这种方式我们就可以规避之前的双重加密方法的问题,在算法的最后即使小明或者小红获得了两重加密的结果,但是因为加密的结果只能通过私钥解密,故无法反推出小红喜欢的食物是什么。

总结

通过上述的描述我们可以知道交集算法最简单即为明文计算,之后使用简单算法可以保护一点隐私,但是会存在暴力破解的可能,双重加密可以解决暴力破解的可能,但是由于对称加密的局限性,最后要么丢失安全性,要么会丢失分布式的特性,非对称加密的算法则可以克服以上的所有缺点。

如果你熟悉密码学,一定知道大名鼎鼎的RSA算法就是使用非对称加密进行运算的,其中存在大量的模指运算,故效率较低,想要完成大规模数据的运算还需要对算法进一步的升级。

作者简介

刘毅恒

来自数据网格实验室BitXMesh团队一个鲜为人知的知名程序员

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:0ms0-6:646ms