计算机应用   2016, Vol. 36 Issue (12): 3322-3327  DOI: 10.11772/j.issn.1001-9081.2016.12.3322
0

引用本文 

罗小双, 杨晓元, 王绪安. 适用于社交网络的隐私保护兴趣度匹配方案[J]. 计算机应用, 2016, 36(12): 3322-3327.DOI: 10.11772/j.issn.1001-9081.2016.12.3322.
LUO Xiaoshuang, YANG Xiaoyuan, WANG Xu'an. Privacy preserving interest matching scheme for social network[J]. JOURNAL OF COMPUTER APPLICATIONS, 2016, 36(12): 3322-3327. DOI: 10.11772/j.issn.1001-9081.2016.12.3322.

基金项目

国家自然科学基金资助项目(61272492,61572521);陕西省自然科学基金资助项目(2014JM8300)

通信作者

罗小双(1992-), 男, 陕西安康人, 硕士研究生, CCF会员, 主要研究方向:信息安全、密码学.E-mail:1603709043@qq.com

作者简介

杨晓元(1959-), 男, 湖南湘潭人, 教授, 博士生导师, 硕士, 主要研究方向:信息安全、密码学;
王绪安(1981-), 男, 湖北公安人, 副教授, 博士, 主要研究方向:信息安全、密码学

文章历史

收稿日期:2016-05-17
修回日期:2016-06-30
适用于社交网络的隐私保护兴趣度匹配方案
罗小双1,2, 杨晓元1,2, 王绪安1,2    
1. 武警工程大学 电子技术系, 西安 710086 ;
2. 网络与信息安全武警部队重点实验室, 西安 710086
摘要: 针对社交网络中用户通过兴趣度匹配进行交友而产生的敏感信息泄露问题,设计了基于隐私属性的隐私保护兴趣度匹配方案。该方案利用Bloom Filters来获取双方兴趣爱好集合元素的交集,确定双方兴趣爱好的匹配程度,满足匹配要求的双方可以根据意愿互相添加为好友;方案基于半诚实模型,采用密码协议来保护数据的安全性,防止恶意用户非法获取用户敏感信息,避免造成信息的滥用和泄露。理论分析及运算结果均表明,该方案运行时间具有线性复杂度,并且可以支持较大规模数据集,可有效应用于信息种类繁杂、数据内容庞大的网络环境,满足用户实时高效的现实需求。
关键词: 社交网络    隐私保护    模糊匹配    不经意传输    秘密共享    
Privacy preserving interest matching scheme for social network
LUO Xiaoshuang1,2, YANG Xiaoyuan1,2, WANG Xu'an1,2     
1. Department of Electronic Technology, Engineering University of Chinese People's Armed Police Force, Xi'an Shaanxi 710086, China ;
2. Key Laboratory of Network and Information Security under the Chinese People's Armed Police Force, Xi'an Shaanxi 710086, China
Abstract: Concerning the sensitive information leakage problem resulted from making friends by interest matching in social network, a privacy preserving interest matching scheme based on private attributes was proposed. Bloom Filters were used to get the intersection of interest set for both sides, and the interest matching level was determined in the proposed scheme. Both sides intended to add each other as a friend according to their will as long as they met the matching requirements. Based on the semi-honest model, the cryptographic protocols were adopted to protect data security for preventing malicious users obtaining sensitive information illegally, which could avoid information abuse and leakage. Theoretical analysis and calculation results show that the proposed scheme has linear complexity about operational time, support large-scale data sets, and can be applied in Internet environments with different kinds of information and great number of data content, meet user's demands of real-time and efficiency.
Key words: social network    privacy preserving    fuzzy matching    oblivious transfer    secret sharing    
0 引言

社交网络[1]是为了方便社会成员进行信息交流而应运产生的一个多功能平台,社交网络服务提供者蕴含和提供了丰富的资源。目前,Facebook、Twitter、Orkut、Myspace、Cyworld等社交网络已经变得十分流行,数据统计发现,Facebook用户每天共享的内容超过40亿,Twitter每天处理的推特数量已经超过3.4亿。移动社交网络的发展,人们可以随时随地在社交网络上发布个人喜欢的视频、图片、文章等信息,使得人与人之间的交流互动变得更加快速便捷。通常来说,互相添加为好友的范围无非是亲戚、同事和同学等线下朋友,然而这并不能较好地满足交流的需要。比如说篮球爱好者喜欢关注篮球资讯、篮球技术等方面的资源,迫切需要找到志同道合的朋友来探讨篮球经验,相互学习借鉴。这就需要社交网络为用户提供好友发现交流的平台,可以让他们根据自身意愿互相添加为好友。然而发布出去的个人属性、地理位置等敏感信息一旦被不法人员利用,其后果不堪设想。为了保护个人隐私安全,现设想了一个应用场景,并采取了一些方法来解决安全问题。

考虑如下一种应用场景:社交网络中存在互不相识的两个社会成员Alice和Bob,Alice发现Bob的兴趣爱好与自己很相近,渴望Bob成为自己线上的朋友,但是面对陌生的对象Alice不愿意将自己的隐私泄露给他人。于是需要在保证各成员隐私安全的前提下实现两者的交流。 我们提出的一种解决方法如下:社交网络中,实际上通信双方不能直接进行交互,需要借助社交网络服务提供者(Social Network Service Provider,SNSP)进行中转。Alice和Bob均可以与SNSP进行通信,而Alice和Bob不能独立通信,如图 1所示。

图 1 用户兴趣度匹配

1) 假设Alice想要查询与自己兴趣爱好相同的朋友,并向SNSP发出申请。

2) SNSP接到Alice的申请后,对符合条件的用户进行初步筛选,并将Alice的兴趣爱好抽象为喜好向量集合,如Alice喜欢关注小说、卡通和电影,抽象出来的向量集合为VAlice={novel,cartoon,movie},筛选出来的用户同样抽象为类似Alice的向量集合,如VBob={basketball,novel,program}。

3) Alice和Bob分别使用向量集合中的某个向量与对方的对应向量进行模糊匹配,如果匹配成功,则互相加为好友;否则活动结束。

Alice和Bob相对于社交网络服务提供者来说是两个客户端,由于本文方案的构造是针对Alice和Bob而言的,为了方便标记和理解,本文将发起好友请求的Alice作为“客户端”,将筛选出来接受“客户端”请求的Bob作为“服务器”。Alice确定Bob满足了自己的匹配要求后才能申请Bob为好友,Bob同样要确定Alice是否与自己匹配,双方经历了这样的过程才能达到添加好友的目的。

2004年,Freedman等[2]首次提出了半诚实模型下基于多项式的模糊隐私匹配问题,设计了一个“2-out-of-3”匹配方案,Chmielewski等[3]认为该方案存在缺陷,证明了客户端能够在没有与服务器端相同元素的前提下获得服务器数据。Ye等[4]提出了基于交错所罗门码(interleaved Reed-Solomon code)的share-hiding error-correcting秘密共享方案,并构造了基于同态加密的模糊匹配协议。Hazay等[5]提出了以随机预言机为安全模型、在恶意模型下的隐私集合交集(Private Set Intersection,PSI)协议。Kamara等[6]在服务器辅助环境中设计了一个可支持十亿元素集合的PSI协议,Abadi等[7]设计了基于分值的外包可委托的O-PSI协议,它允许多个客户端独立的给服务器上传隐私数据集合,并且能够要求服务器计算出交集。Debnath等[8]设计了两个基于DDH(Decisional Diffie-Hellman)假设、能够抵抗恶意敌手的PSI-CA(Private Set Intersection CArdinality)协议。Shi 等[9]首次提出了欺骗敏感量子PSI协议,该方案能够支持大数据,相比以前经典方案更具有较低的通信复杂度。Dong等[10]提出了分别基于半诚实模型和恶意模型,可支持大数据、高效的PSI协议,其中Oblivious Bloom Filter协议具有线性复杂度。Hahn等[11]在文献[10]的基础上结合Merkle tree构造了可以抵抗恶意客户端用户的交集算法,但其效率有较低的退化。本文在文献[10]的基础上,将交集的生成方法应用于模糊匹配问题中,得到了两个交集公共元素的数量,以此判断两个集合是否匹配成功;其计算复杂度和通信复杂度均能够达到线性,较以前方案效率有较大提高。

1 相关知识 1.1 模糊匹配

在Eurocrypt'04上,Freedman等[2]提出了有关隐私的模糊匹配问题,其定义是双方分别拥有包含nC和nS个向量的集合,每个向量的长度为T,其中一方按照协议将向量集合中的某个向量与对方的对应向量进行运算,计算出交集,如果交集中至少存在t个相同部分,则这两个向量匹配。计算出交集的过程中要保证对方的集合安全且不会泄露任何信息,另一方不能知道交集的内容。

设客户端向量集合C*={C1,C2,…,CnC},服务器向量集合S*={S1,S2,…,SnS},每个向量都是由长度为T的元素组成,即Ci=(ai,1,ai,2,…,ai,T)(i∈{1,2,…,nC},Sj=(bj,1,bj,2,…,bj,T)(j∈{1,2,…,nS},当Ci与Sj中有t以上个数的相同元素,则Cit Sj

本文方案中,门限值t的大小直接决定匹配的程度和效果,t应当根据客户端与服务器双方的意愿进行设定。设匹配率η=t/T,如果双方要求兴趣匹配率越高,那么设置的t应该越大。

1.2 秘密共享

秘密共享是一个基本的密码学原语,广泛地应用于秘密信息的传递和存储。(t,n)秘密共享方案就是使用者将秘密s分成n份并设置门限值t,对方得到其中t份以上份额便能有效地恢复出秘密s。最为典型的应用方案就是Shamir秘密共享方案[12]。当t=n时,通过简单的异或操作就可以得到一个高效的(n,n)秘密共享方案[13]。其原理是使用者生成n-1个与s相同长度的随机比特串r1,r2,…,rn-1,计算出rn=r1⊕r2⊕…⊕rn-1⊕s,每个ri都是秘密的组成份额,通过计算r1⊕r2⊕…⊕rn便能够恢复出秘密s,并且少于n个份额的信息时不会泄露任何秘密。

1.3 不经意传输协议

不经意传输协议l[14]是一种保护隐私的双方通信协议。它允许发送方以一种保护双方安全的方式将信息发送给接收方,发送方并不知道接收方接收的是哪份消息,接收方也不会泄露发送方发送的其他部分。不经意传输协议可以表示为OTm,即发送方拥有m对lbit串(xj,0,xj,1)(0≤j≤m-1) ,接收方拥有mbit的选择串r=(r0,r1,…,rm-1)。当ri为0时,选择xj,r0,否则选择xj,r1。协议执行的最后结果为向量R=(x0,r0,x1,r1,…,xm,rm)。

但是,不经意传输协议在实际应用过程中开销很大,效率已经成为制约它应用的主要瓶颈。Beaverl[15]提出使用单向函数将不经意传输协议进行拓展,即在较小的数据输入情况下获得较大的数据传输量。Ishai等[16]提出了依赖于随机预言机模型的不经意传输拓展协议,能够将OTm转化为OTλλλ为安全参数。本文在调用Naro-Pinkals不经意传输协议[17]时,即利用这一良好特性将公钥加密的运算量m减少至λ

1.4 Bloom过滤器和Garbled Bloom过滤器

Bloom Filters[18]是一种紧凑的数据结构,支持数据存储和成员查询,实现了mbit的数组来表示最多有n个元素的向量S=(s1,s2,…,sn)。每个Bloom Filters具有k个均匀分布的哈希函数H={h0,h1,…,hk-1},其映射的值域为[0,m-1]。本文中用(m,n,k,H)-Bloom Filter来表示由(m,n,k,H)确定的参数,用BFS来表示数据集合S生成的Bloom Filters,用BFS[i]来表示BFS中第i个数据位。如图 2所示,初始化时,所有的数据位都被置为0,当插入元素x∈S时,k个哈希函数对x进行运算得到k个索引数,令相应位置为1,即BFS[hi(x)]=1,0≤i≤k-1。为了查询y是否在S中,y同样被k个哈希函数运算,得到k个哈希值来检查对应的数据位,如果其中任何一个数据位为0,则y不在向量S中;否则y可能存在于S中。

图 2 用Bloom Filter存放元素x哈希值

而Garbled Bloom Filters[10]是标准Bloom Filters的变形,是概念的引申,其本质没有差异,同样支持成员查询。插入和查询元素与标准Bloom Filters相同。其不同之处在于Garbled Bloom Filters使用的是λbit串而并非0、1比特。本文中,我们用(m,n,k,H,λ)-Garbled Bloom Filter来表示由(m,n,k,H,λ)确定的参数。用GBFS来表示数据向量S生成的Garbled Bloom Filters,用GBFS[i]来表示GBFS中第i个λbit串。

1.5 半诚实模型

半诚实模型[19]中,静态的半诚实敌手A控制着参与双方中的一方,并且严格按照协议的条件准确执行。敌手A可以通过另一方的输入推导出更多信息,但是不能对信息进行修改。

设协议π计算出一个输入映射为输出的函数f:{0,1}*×{0,1}*→{0,1}*×{0,1}*,f=(f1,f2)。对于每一对输入x,y∈{0,1}*来说,其输出为随机变量(f1(x,y),f2(x,y)),其中一方获得f1(x,y),另一方获得f2(x,y)。

在模型中,A如果通过协议中的一方计算出来的任何信息只能从输入与输出中获得,那么协议π是安全的。半诚实模型可以通过模拟来形式化表示。协议执行过程中,如果参与方的视图被模拟时只考虑输入与输出,那么参与方i的输入(x,y)在协议π执行过程中可以表示为viewiπ(x,y)=(w,r1i,mi,…,mti),其中w∈(x,y)是i的输入,rji是i内部随机硬币投掷值,mi表示i接收的第j份消息。 定义1 半诚实模型。设f=(f1,f2)是确定性函数,如果存在多项式时间的方案Sim1和Sim2,即:

$\begin{align} &{{\left\{ \text{Si}{{\text{m}}_{1}}\left( x,{{f}_{1}}\left( x,y \right) \right) \right\}}_{x,y}}\overset{c}{\mathop{\equiv }}\,{{\left\{ \text{View}_{\text{1}}^{\pi }\left( x,y \right) \right\}}_{x,y}} \\ &{{\left\{ \text{Si}{{\text{m}}_{2}}\left( y,{{f}_{2}}\left( x,y \right) \right) \right\}}_{x,y}}\overset{c}{\mathop{\equiv }}\,{{\left\{ \text{View}_{2}^{\pi }\left( x,y \right) \right\}}_{x,y}} \\ \end{align}$

那么协议π在静态半诚实敌手存在情况下是安全的计算函数f。

2 半诚实模型下的简单方案

此方案的安全性建立在半诚实模型下,参与双方(客户端与服务器)诚实的参与协议,可以记录协议执行的中间结果,同时也可以用中间结果推导出有用信息,但是不能对有用信息进行修改。假设客户端与服务器分别拥有向量集合C*={C1,C2,…,CnC},S*={ S1,S2,…,SnS},本文中模糊匹配的操作对象是针对C*中的某个向量Ci与S*中的某个向量Sj进行作用。为了字符标识方便,下文中将直接使用C和S作为向量,那么客户端对向量C生成BFC,服务器对向量S生成GBFS,客户端将BFC与GBFS进行作用产生交集GBFC∩S,将C中的元素作为查询元素对GBFC∩S进行查询,记录查询成功的个数。如果个数大于或等于门限值,则客户端输入向量C与S成功匹配,否则匹配失败。

2.1 协议初始建立阶段

首先介绍GBFS(S,m,k,H,λ)生成算法,具体如算法1所示。如图 3所示,当插入x1时,x1被分为s11,s12,s13,分别存放在相应位置。当插入x2时,GBFS[3]已经被x1的份额占据,于是保持该位置值不变,利用s12生成s21,s22,使得x2=s21⊕s22⊕s12。同理,当插入x3时,也按照上述方法解决。当所有元素都已经存放完毕时,则对Garbled Bloom Filters进行遍历,如果存在空位,则随机产生λbit串填充。当需要查询某个元素y时,同样用哈希函数进行运算,找到所有对应的比特串进行异或操作恢复出recovered值。如果recovered与y相同,则说明y∈S,否则y∉S。其如算法2所示。

图 3 存放多个元素过程

算法1  GBF(S,n,m,k,H,λ)生成算法。

输入 数据向量S,向量元素个数n,Bloom Filter位置个数m,哈希函数个数k,H={h0,h1,…,hk-1},安全参数λ

输出 An(m,n,k,H,λ)-Garbled Bloom Filter GBFS。 GBFS=new m-element array of bit strings

for i=0 to m-1 do

GBFS=NULL;//将m个位置赋空值

end

for each x∈S do //插入x

emptySlot=-1,finalShare=x;

for i=0 to k-1 do

j=hi(x);//将x哈希为k个索引值

if emptySlot==-1 then

emptySlot=j;

else

GBFS←{0,1}λ;//随机生成λbit串

finalShare=finalShare⊕GBFS

end

else

finalShare=finalShare⊕GBFS

end

end

GBFS=finalShare;

end

for i=0 to m-1 do

if GBFS=NULL then //遍历后空位随机填补

GBFS←{0,1}λ; //λbit串

end

end

算法2  GBF(GBFS,y,k,H)查询算法。

输入 GBFS,元素y,哈希函数个数k,H={h0,h1,…,hm-1};

输出 如果y∈S则返回正确,否则返回错误。

recovered={0}λ

for i=0 to k-1 do

j=hi(y);

recovered=recovered⊕GBFS

end

if recovered==y then

return true;

else

return false;

end

2.2 协议执行过程

客户端将自己产生的BFC与GBFS作用生成GBF′C∩S,当BFC[i]为1时,令GBF′C∩S[i]=GBFS[i],否则随机生成比特串进行填充。文献[10]已经证明了由C∩S生成的GBFC∩S=GBF′C∩S,此处不再详细论述。协议执行的算法具体如算法3。算法3中,第3行到第6行使用到了不经意传输协议。客户端将BFC作为选择参数参与OTλm协议。服 务器扮演发送方发送m对λbit串(xi,0,xi,1),xi,0是随机生成的字符串,而xi,1是GBFS[i]。当BFC[i]为0时,客户端收到随机字符串;当BFC[i]为1时,客户端收到GBFS[i]。由不经意传输协议OTλm生成的最终结果为GBFC∩Sπ=GBFC∩S,文献[10]已经证明了该等式的正确性,此处不再赘述。

算法3  GBFIntersection(GBFS,BFC,m)交集生成算法。

输入 参数(m,n,k,H,λ)GBFS,参数(m,n,k,H)BFC,Bloom Filter位置个数m;

输出 An (m,n,k,H,λ)-Garbled Bloom Filter GBFC∩S。 GBFC∩S=new m-element array of bit strings;

for i=0 to m-1 do

if BFC==1 then

GBFC∩S=GBFS;

else

GBFC∩S←{0,1}λ;

end

end

客户端利用BFC中元素进行查询的过程其实就是恢复出双方交集的过程,其算法具体如算法4所示。客户端将自己的集合作为查询的对象对GBFC∩S进行查询,通过GBFC∩S恢复出来的元素与查询的对象如果相同,则说明有一个元素匹配成功。算法中matchnumber记录能够恢复成功的数量,最后来判断交集个数,若大于等于门限值t,则说明两个向量是匹配的;否则说明两个向量不匹配。

算法4  IntersectionMatch(GBFC∩S,C,t,H)模糊匹配算法。 输入 GBFS,元素C,哈希函数个数k,哈希函数H={h0,h1,…,hk-1};

输出 如果matchnumber≥t返回正确,否则返回错误。 recovered={0}λ,matchnumber=0;

for j=0 to k-1 do

location=hj(C);

recovered=recovered⊕GBFS;

end

if recovered==C then

matchnumber++;

end

if matchnumber≥t then

return true;

else return false;

end

3 方案分析 3.1 安全性分析

本文方案的安全性依赖于双方交集生成过程的安全性以及用客户端元素进行查询交集GBFC∩S的安全性。上述方案在半诚实模型下安全,现给出方案的安全性证明。

定理1  设C、S分别是预定义的域,f是交集函数,f为两交集中共同元素的个数,那么C与S匹配的表达式为:

$\begin{align} &true=\left\{ \left| {{f}_{\cap }}\left( C,S \right) \right|\ge t \right\}=\left\{ \left| \left( {{f}_{C}}(C,S),{{f}_{C}}(C,S) \right) \right|\ge t \right\} \\ &=\left\{ \left| \left( C\cap S,\wedge \right) \right|\ge t \right\} \\ \end{align}$

假定不经意传输协议OTλm是安全的,则算法3能够安全地计算f,算法4得出匹配的结果是正确且安全的。

证明 如果OTλm是安全的,则发送者和接收者的模拟器保证存在,现利用这两个模拟器作为子程序构建出新的模拟器。

服务器视图 假设服务器遭到破坏后成为了恶意用户。本文构建了模拟器SimS,协议中它可以接收服务器的秘密输入和输出,生成服务器的视图。对于S来说,模拟器SimS均匀选取随机投掷硬币的结果rS,并且生成GBFS。然后SimS调用OT发送者SimOT的模拟器,最后SimS输出模拟视图(S,rS,SimOT(GBFS,∧))。真实协议执行的视图包括输入S,随机投掷硬币结果,以及协议中的消息。在模拟视图中,输入向量S与真实执行视图中的对应向量相同,随机投掷硬币的结果也是均匀选取,因此其分布与真实执行情况相同。如果OT协议是安全的,那么由SimsndOT(GBFS,∧)产生的视图分布与真实OT协议执行的视图分布具有不可区分性。因此可以得出结论:模拟视图与真实视图不可区分。

客户端视图 构建模拟器SimC,它可以接收秘密输入C和输出C∩S。SimC选择随机投掷硬币结果rC,分别生成BFC和GBFC∩S,然后用BFC和GBFC∩S调用接收者的模拟器SimOT。SimC获得OT协议的视图,输出模拟视图(C,rC,GBFC∩S,SimOT(BFC,GBFC∩S))。真实协议执行视图包括输入向量C、随机硬币投掷结果rC、GBFπ,以及协议中的消息。模拟视图中,输入向量C和硬币投掷结果rC与真实视图对应部分不可区分,GBFC∩S与GBFπ也是不可区分的。如果OT协议是安全的,那么模拟视图与真实视图OT协议中的消息也是不可区分的。因此可以得出结论:模拟视图与真实视图不可区分。

综上所述:

$\begin{align} &{{\left\{ Si{{m}_{S}}\left( S,{{f}_{S}}\left( C\cap S \right) \right) \right\}}_{C,S}}\overset{c}{\mathop{\equiv }}\,{{\left\{ \text{view}_{S}^{\pi }\left( C,S \right) \right\}}_{C,S}} \\ &{{\left\{ Si{{m}_{C}}\left( C,{{f}_{C}}\left( C\cap S \right) \right) \right\}}_{C,S}}\overset{c}{\mathop{\equiv }}\,{{\left\{ \text{view}_{C}^{\pi }\left( C,S \right) \right\}}_{C,S}} \\ \end{align}$

以上证明了C与S生成交集GBFC∩S的安全性,因此客户端用与GBFC∩S作用后得出相同元素个数的过程也是安全的,所以该方案安全性得证。

3.2 复杂度分析

该协议使用了OTλm协议,其效率主要决定于OT传输协议。如果调用Ishai等[16]构造的半诚实模型下的OT扩展协议以及Naor-Pinkas[17]传输协议,则:

计算复杂度 为了构建BFC和GBFC∩S,服务器和客户端都需要k·n次哈希操作。对于Naor-Pinkas不经意传输协议,双方分别需要λ次和2λ次公钥运算操作。对于OT扩展协议,双方都需要m=kn lb e≈1.44kn次哈希操作。用C查询交集GBFC∩S找出相同元素时,客户端需要k·n次哈希操作。

存储复杂度 客户端需要存放BFC和GBFC∩S,因此共需要(λ+1) mbit,服务器端需存放GBFS,因此需要λ·mbit。如果忽略运算过程中暂时占用的存储空间,则共需要(2λ+1) mbit。当Bloom Filters的存放位置数量确定后,存储复杂度仅与安全参数λ有关,且随着λ呈线性变化。

通信复杂度 服务器扮演发送者的角色通过不经意传输向客户端发送数据,此过程中需要发送m对λ比特串(xi,0,xi,1),因此需要2λ·mbit通信量,其他的通信开销因为比较小可以忽略不计。

表 1所示,如果单就对客户端和服务器的两个向量C和S进行讨论,则文献[2]构造的方案计算复杂度和通信复杂度均可以达到O(CTt),文献[4]中构造的方案其计算复杂度和通信复杂度均大于本文方案的O(T)线性复杂度,因而本文方案具有高效性。

表 1 几种模糊匹配算法比较
3.3 性能分析

文献[10]构造了半诚实模型下隐私集合交集协议,本文方案在此基础上设计了模糊匹配方案,并将此方案应用于社交网络中兴趣度的匹配。其不同之处如表 2所示。

表 2 文献[10]隐私集合交集方案与本文方案比较

在具体分析方案的性能时,用时间来衡量运行的效率。假设该方案在两台处理器为Intel Core2 1.83GHz 32位的计算机上运行,两者之间通过1000M Ethernet相连[20]。哈希函数采用SHA-1,公钥加密采用256bit的椭圆曲线算法GF(p),以此来估算出本文方案运行的时间量。其运行环境为Windows Vista Intel Core2 1.83GHz 32bit mode,Time Cycles为1/1.83s,采用SHA-算法(11.4时间周期/字节),ECIES over GF(p) 256bit。 每次操作运算用时为10-6s, 加密用时5.65s, 解密用时3.98s。

本文方案运行的时间主要由计算复杂度和通信复杂度决定,因此在不考虑其他时间因素时,其时间T主要包括运算时间和通信时间,其运算时间为: Tcomp=(2k·n+2m+k·n)thash+(2tEncryption+tDecryption)λ ,通信时间为: Tcomm=2λ·m/1000, 因此总时间T=Tcomp+Tcomm

通过估算得出的数据如表 3所示。从表 3中可以看出,方案的执行时间随着安全参数λ和集合元素个数n的增加而增加;当λ一定时,执行时间基本上随着n增加呈线性增长,与理论分析结果吻合。

表 3 不同n与不同λ对应的方案执行时间

图 4可以很好表示出不同n与不同λ所对应的方案执行时间,表明本文方案在大数据环境下也有一定的应用潜力。 如表 4所示,与文献[10]方案相比,本文方案时间大约只有它的一半。其原因是本文方案的执行时间只包含了运算时间和通信时间,没有将其他因素如程序的运行等考虑进去,因此在真实情况下,两者的性能应该大致相同。

图 4 本文方案运行时间柱状图
表 4 λ=80时本文方案与文献[10]方案时间对比
4 结语

本文使用Bloom Filters实现了对两个数据集合的求交集运算:其中一方可以直接得出两个数据集合交集的元素个数,由此判断数据集合之间是否匹配;另一方不能得出交集和交集个数,保证了双方在信息通信过程中的隐私安全。经过理论分析,本文案在计算复杂度和通信复杂度上较其他方案有所改进,达到线性水平,能够较好地应用于社交网络之中。由于本文方案基于半诚实模型情况下,所以不能完全抵御恶意模型下攻击者对数据集合的攻击。

参考文献
[1] GAYATHRI K S, THOMAS T, JAYASUDHA J. Security issues of media sharing in social cloud[J]. Procedia Engineering, 2012, 38 (4) : 3806-3815.
[2] FREEDMAN M J, NISSIM K, PINKAS B. Efficient private matching and set intersection[C]//Proceedings of the 2004 International Conference on Theory and Applications of Cryptographic Techniques, LNCS 3027. Berlin:Springer, 2004:1-19. http://cn.bing.com/academic/profile?id=2143087446&encoded=0&v=paper_preview&mkt=zh-cn
[3] CHEIELEWSKI L, HOEPMAN J. Fuzzy private matching (extended abstract)[C]//ARES 08:Proceedings of the Third International Conference on Availability, Reliability and Security. Piscataway, NJ:IEEE, 2008:327-334.
[4] YE Q, STEINFELD R, PIEPRZYK J, et al. Efficient fuzzy matching and intersection on private datasets[C]//Proceedings of the 2009 International Conference on Information Security and Cryptology, LNCS 5984. Berlin:Springer, 2009:211-228.
[5] HAZAY C, NISSIM K. Efficient set operations in the presence of malicious adversaries[J]. Journal of Cryptology, 2012, 25 (3) : 383-433. doi: 10.1007/s00145-011-9098-x
[6] KAMARA S, MOHASSEL P, RAYKOVA M, et al. Scaling private set intersection to billion-element sets[C]//Proceedings of the 2014 International Conference on Financial Cryptography and Data Security, LNCS 8437. Berlin:Springer, 2014:195-215. http://cn.bing.com/academic/profile?id=2212846837&encoded=0&v=paper_preview&mkt=zh-cn
[7] ABADI A, TERZIS S, DONG C. O-PSI:delegated private set intersection on outsourced datasets[C]//Proceedings of the 201530th IFIP TC 11 International Conference on ICT Systems Security and Privacy Protection, IFIP Advances in Information and Communication Technology 455. Cham, Switzerland:Springer International Publishing, 2015:3-17.
[8] DEBANTH S K, DUTTA R. Efficient private set intersection cardinality in the presence of malicious adversaries[C]//Proceedings of the 9th International Conference on Provable Security, LNCS 9451. Cham, Switzerland:Springer International Publishing, 2015:326-339.
[9] SHI R H, MU Y, ZHONG H, et al. An efficient quantum scheme for private set intersection[J]. Quantum Information Processing, 2016, 15 (1) : 363-371. doi: 10.1007/s11128-015-1165-z
[10] DONG C, CHEN L, WEN Z. When private set intersection meets big data:an efficient and scalable protocol[C]//Proceedings of the 2013 ACM SIGSAC Conference on Computer&Communications Security. New York:ACM, 2013:789-800. http://cn.bing.com/academic/profile?id=2004957971&encoded=0&v=paper_preview&mkt=zh-cn
[11] HAHN C, HUR J. Scalable and secure private set intersection for big data[C]//Proceedings of the 2016 International Conference on Big Data and Smart Computing. Washington, DC:IEEE Computer Society, 2016:285-288.
[12] SHAMIR A. How to share a secret[J]. Communication of the ACM, 1979, 22 (11) : 612-613. doi: 10.1145/359168.359176
[13] SCHNEIER B, SUTHERLAND P. Applied Cryptography-Protocols, Algorithms, and Source Code in C[M]. 2nd ed. New York: John Wiley & Sons, 1995 : 113 -117.
[14] RABIN M O. How to exchange secrets by oblivious transfer, TR-81[R]. Cambridge, MA:Harvard University, Aiken Computation Laboratory, 1981. http://userpages.umbc.edu/~bhushan1/Day-1.pdf
[15] BEAVER D. Correlated pseudorandomness and the complexity of private computations[C]//ISTOC'96:Proceedings of the Twenty-eighth Annual ACM Symposium on Theory of Computing. New York:ACM, 1996:479-488. http://cn.bing.com/academic/profile?id=1996068512&encoded=0&v=paper_preview&mkt=zh-cn
[16] ISHAI Y, KILIAN J, NISSIM K, et al. Extending oblivious transfers efficiently[C]//Advances in Cryptology-CRYPTO 2003, LNCS 2729. Berlin:Springer, 2003:145-161.
[17] NAOR M, PINKAS B. Efficient oblivious transfer protocols[C]//Proceedings of the Twelfth Annual ACM-SIAM Symposium on Discrete Algorithms. Philadelphia:Society for Industrial and Applied Mathematics, 2001:448-457. http://cn.bing.com/academic/profile?id=1982146060&encoded=0&v=paper_preview&mkt=zh-cn
[18] BLOOM B H. Space/time trade-offs in hash coding with allowable errors[J]. Communications of the ACM, 1970, 13 (7) : 422-426. doi: 10.1145/362686.362692
[19] GOLDREICH O. The Foundations of Cryptography-Volume 2, Basic Applications[M]. Cambridge: Cambridge University Press, 2009 : 620 -625.
[20] WEI DAI. Crypto++ library:5.6.0 benchmarks[EB/OL].[2016-03-11]. http://www.cryptopp.com.