前言
之前我们介绍过两方的「隐私集合求交算法」,可以应用到计算广告的实际效果,寻找联系人,联邦学习的特征对齐等场景,例如:在新的APP上找到共同的微信好友、开会时找到所有参会者共同的空闲时间等,但是这协议是针对两方设计的,没办法安全的扩展到多方。
举个例子:现在有一个会议的发起者,他想要知道自己和其他所有参会者共同的空闲时间来确定会议的时间,一种简单的方案就是会议发起者依次和每一个参会者执行两方的隐私集合求交算法获取到每个参会者和自己的共同空闲时间,再从这些共同时间中筛选出所有参会者都空闲的时间。
但是这种方案有一个很明显的数据安全问题,会议发起者和某一个参会者有两个共同的空闲时间,本周一上午和本周二上午,但是其他所有参会者本周一上午是空闲时间但是本周二上午不是空闲的,这就导致了参会者额外的信息被会议发起者知道了,会议发起者本应该只得到本周一上午这一共同的空闲时间的信息。
本文主要介绍一种简洁高效的「多方隐私集合求交协议」,该协议是针对多方隐私集合求交场景设计的,解决了上述基于两方协议简单扩展到多方时产生的数据安全问题。该协议在CCS'21的-Simple,FastMaliciousMultipartyPrivateSetIntersection中提出,适用于半诚实无参与方勾结的场景。
相关技术
该协议主要使用不经意键值存储技术和两方隐私集合求交算法进行构建:
▲不经意键值存储
动态 | 报告:区块链等热点词促使童书科普百科类成交额同比增速最高:近日,京东图书与艾瑞咨询联合发布了《2019中国图书市场报告》。报告指出,AI、5G、区块链、机器人、VR、智能家居、AR这些热点词,不断点燃科技热潮,科技在改变大众生活的同时,也吸引了越来越多家长的关注,从小培养孩子对科技的兴趣和热爱。因此童书中科普百科类成交额同比增速最高,占比将近40%。[2020/1/8]
不经意键值存储是指能够在隐藏key和value内容的前提下保留key-vakue映射关系的一种数据结构。有一组键值对{(x1,y_1),(x2,y2),(x3,y3。,那么存在一个OKVS函数f,使得f(x1)=y1,f(x2)=y2,f(x3)=y3,并且对于其他的键f(x_other)为随机数。
▲两方隐私集合求交
两方隐私集合求交是指在不暴露双方集合交集之外数据的前提下获取交集部分的数据,常用的协议有基于ECDH的,基于OT的和基于同态的,本文介绍的多方隐私集合求交协议对于采用的两方协议不做限制。在前文《悄悄地找到共同点-隐私交集》中已介绍过一种实现方案,故本文中就不再详细讲解。
简单示例
现有A、B、C、D、E五方分别拥有数据集{1,2}、{1,2}、{1,3}、{1,3}、{1,4},他们想要安全的获取他们所有人的共同交集{1}。
所有方在进行求交之前已经协商好了共有的伪随机函数g(k,x),简单实现就是hash函数,k是加的盐用于和x拼接后再hash。
声音 | 浪潮集团云南分公司总经理:云南区块链产业发展需从“科普”到“专精”不断深化:据昆明日报消息,浪潮集团云南分公司总经理郑昕表示,云南区块链产业发展需从“科普”到“专精”不断深化。下一步,浪潮将继续加大云南农业产业高质量发展体系建设力度,重点以普洱茶等云南优势产业为切入点,打造云南“绿色、有机农产品高地”的品牌形象,并在此基础上,开展基于区块链的供应链金融服务,解决中小企业贷款难、贷款贵问题。[2019/11/11]
A方随机生成两个伪随机函数的key:k_B和k_C,分别发送给B、C两方;A方计算自己的键值对:{(1,g(k_B,1)⊕g(k_C,1)),(2,g(k_B,2)⊕g(k_C,2)。,并基于此键值对生成OKVS函数fA,并将fA发送给E方;B方计算自己的键值对:{(1,g(k_B,1)),(2,g(k_B,2)。,并基于此键值对生成OKVS函数fB,并将fB发送给D方;C方计算自己的键值对:{(1,g(k_C,1)),(3,g(k_C,3)。,并基于此键值对生成OKVS函数fC,并将fC发送给D方;D方收到B方和C方的OKVS函数后,使用本方的数据集通过收到两个OKVS函数计算出新的集合{fB(1)⊕fC(1),fB(3)⊕fC(3。,将构成OKVS的键值对带入进去后,就等价于{g(k_B,1)⊕g(k_C,1),random_number1⊕g(k_C,3。;E方收到A方的OKVS函数后,使用本方的数据集通过收到OKVS函数计算出新的集合{fA(1),fA(4。,将构成OKVS的键值对带入进去后,就等价于{g(k_B,1)⊕g(k_C,1),random_number2};D方和E方再使用两方隐私集合求交算法求出新集合{g(k_B,1)⊕g(k_C,1),random_number1⊕g(k_C,3。和{g(k_B,1)⊕g(k_C,1),random_number2}的交集{g(k_B,1)⊕g(k_C,1。,对应位置原来的数据集{1}就是所有方集合的交集。上述流程的一个核心思路就是:前三方通过OKVS函数将自己的数据集隐藏起来,分别发送给后两方,由后两方的数据集通过OKVS函数计算出映射后的数据集之后再执行隐私求交,通过OKVS函数的性质可以保证后两方的数据如果分别是前三方的集合的交集,那么映射出的数据是一致的,如果不是就变成随机数了,对映射后的数据集再求次交集就能获得所有方的交集。
动态 | 人民日报官方微博科普区块链 强调区块链不等于比特币:人民日报官方微博今早发表9图科普区块链。其中涉及区块链的特点有:1、安全;2、不可篡改;3、可访问;4、无第三方。区块链对未来的影响:1、不需繁琐个人证明;2、看病避免反复检查;3、旅行消费更加便捷;4、交易无需第三方。同时强调,区块链不等于比特币。比特币只是区块链技术的一种应用,区块链还有医疗卫生、食品安全、版权保护等诸多应用领域。[2019/10/28]
具体流程
协议的设计思路是将多方求交最终转化为两方求交,其他方通过OKVS的Encode方法和所拥有的伪随机函数的key来保护自己的数据集。
OKVS的Encode方法用于将一组键值对生成上述的OKVS函数f,Decode方法即是对一个键key计算出映射的f(key)
存在p1,...,pnn个参与方,分别拥有数据集a1,...,an,都拥有一个共同的OKVS方案和伪随机函数F(k,x)。
「具体流程」
1.p1随机生成n-2个随机数k2,...,k(n-2),然后将ki发送给pi。
2.p1将自己的数据集元素a1j作为key,计算F(k2,a1j)⊕F(k3,a1j)⊕...⊕F(k(n-2),a1j)作为对应的value使用OKVS进行编码生成Sn发送给pn。
动态 | 区块链技术入选科普杂志《科学美国人》2019十大突破性技术榜单:据新浪网今日新闻报道,美国科普杂志《科学美国人》公布 2019 十大突破性技术榜单。区块链技术因在保障食品安全中的作用而上榜。 入选榜单具体原因:区块链技术的发展应用将显著改善食品污染源数据追踪的困境。利用区块链云端系统,食品制造商可以依次在计算机储存各类过程的信息。[2019/9/29]
3.对于所有的pi(2<=i<=n-2)分别将自己的数据集元素aij作为key,计算F(ki,aij)作为对应的value使用OKVS进行编码生成Si发送给p(n-1)。
4.p(n-1)依次将自己的数据集a(n-1)的每个元素分别作为key在收到的Si(2<=i<=n-2)上进行解码,并将所有解码出的数据进行异或作为集合A(n-1)中的一个元素。
5.pn依次将自己的数据集an的每个元素分别作为key在收到的Sn上进行解码后的数据作为集合An中的一个元素。
6.p(n-1)和pn对集合A(n-1)和An执行两方隐私集合求交,获取出的交集元素对应序号的原数据集生成时使用的a(n-1)或an中的元素即是所有方集合交集中的一个元素。
正确性分析
该协议将n个参与方分成了两组,参与方1和参与方n是一组,参与方2到参与方n-2和参与方n-1是一组。
先看第一组的逻辑,p1将自己的数据集通过OKVS编码后发送给pn,pn将自己的数据集通过p1的OKVS结构解码一遍生成新的数据集An,按照OKVS的性质:如果pn的集合元素是p1集合中元素,即是这一组的集合交集元素,则对应到An中的元素就是F(k2,a1j)⊕F(k3,a1j)⊕...⊕F(k(n-2),a1j);如果pn的集合元素不是这一组的集合交集元素,则解码后的数据就是随机数。
金色财经独家分析 监管机构、媒体、业界提示风险 区块链科普道阻且长:新华社今日发文表示,近来“区块链”类案件频发,不法分子以“投资虚拟货币周期短、收益高、风险低”为借口,取用户信任并诱使其转账进行投资。无独有偶,同日消息,腾讯手机管家安全专家也提醒此类风险,并从技术上提出防建议。在美国,监管机构警示加密货币欺诈现象普遍承诺高收益而不披露潜在风险。金色财经独家分析,不法分子假借新技术之名进行,一方面是抓住民众趋利的心理,一方面反映出区块链科普的欠缺。区块链是新兴科技和底层技术并有改变社会生产关系的潜力,应该进行系统性的科普教育,当前,部分大学已经开始设置了区块链课程,但对于普通民众仍然有科普的需求,人们应该了解到系统和正确的知识,不仅要了解区块链的好,也要明确局限和弊端,以在高收益的诱惑下,保持清醒客观。[2018/4/11]
再看第二组的逻辑,参与方2到参与方n-2也同样使用OKVS编码自己的数据集再发送给p(n-1),p(n-1)将自己的数据集按照上面流程4的方式通过解码所有收到的OKVS结构再异或产生A(n-1),按照OKVS的性质:如果p(n-1)的集合元素是p2到p(n-2)集合中元素,即是这一组的集合交集元素,则对应到A(-1)中的元素就是Decode(Encode(a2j,F(k2,a2j)),a2j)⊕...⊕Decode(Encode(a2j,F(k(n2),a2j)),a2j)=F(k2,a2j)⊕F(k3,a2j)⊕...⊕F(k(n-2),a2j);如果p(n-1)的集合元素不是这一组的集合交集元素,则解码后的数据就是随机数。
An和A(n-1)中对于解码正确的数据的计算后对应的表达式都是一样的,易看出对An和A(n-1)进行隐私求交,求出的交集就表示了即是第一组内部集合交集的数据,也是第二组内部集合交集的数据,即所有方集合的交集数据。
安全性分析
对于p1来说:他将自己的数据使用k2到k(n-2)计算伪随机数据异或进行OKVS编码后再发送给pn,由于pn没有这些key,就算解码后的数据是他们的交集,pn也无法进行确定。对于p2,...,p(n-2)来说:他们将自己的数据使用自己拥有的ki计算伪随机后进行OKVS编码后再发送给p(n-1),由于p(n-1)没有这些key,就算解码后的数据是他们这一组的交集,p(n-1)也无法进行确定。对于p(n-1)和pn来说:他们只是使用了自己的数据集在收到的OKVS结构上进行解码,解码后再计算的数据集再和对方进行两方隐私求交来保证新的数据集的安全性。总结
该协议的流程也简单易理解比较实用,使用的OKVS只有一次交互且计算效率很高,只有最后的一次两方隐私求交,使得整个协议和其他协议相比效率更高的同时数据传输量也极低。附录
▲不经意键值存储详细定义
不经意键值存储是指能够在隐藏key的前提下保留键值映射关系的一种数据结构,包含了通过key-value构造OKVS的Encode方法和通过key查询value的Decode方法。
Encode((x1,y1),...(xn,yn)):将键值对列表编码成OKVS的数据结构,其中x是不定长bit串,y是长度为l的bit串,具体编码方式如下图:
其中v(x)是是预设好的将不定长的x映射到长度为m的bit串的函数。D=(d1,d2,...,dm)T,其中元素d_i是和y_i长度一致的bit串,D向量就是编码后的OKVS数据结构,其编码目标就是找到这个D向量,使得上述矩阵‘乘法’成立。
即将v(xi)产生的bit串中为1对应序号的D向量中的元素求异或的结果是等于yi的。
Decode(D,x):给定一个OKVS的数据结构(D向量)和一个key,获取这个key对应的value。
OKVS和普通的哈希表的区别主要是key和value都是隐藏的,只保留了key到value的一个映射关系,因此拥有key可以解出构建时对应的value,没有key则无法解出对应的value也无法推测有哪些key。
具体构造OKVS的方案本协议使用的是PSIfromPaXoS:Fast,MaliciousPrivateSetIntersection中提出的garbledcuckootable方案,构造出的OKVS结构体大小较小,且encode,decode效率也很高,具体实现可直接阅读该论文的第五部分。
Simple,FastMaliciousMultipartyPrivateSetIntersection.
?PSIfromPaXoS:Fast,MaliciousPrivateSetIntersection.
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。