吴云鹏,张书奎+,龙 浩,2,张 力
(1.苏州大学 计算机科学与技术学院,江苏 苏州 215006;2.徐州工业职业技术学院 信息与电气工程学院,江苏 徐州 221002)
移动群智感知(MCS)[1,2]通过从普通用户携带的嵌入了大量传感器的智能设备中获取感知数据,降低了任务所有者的数据采集成本,因此有着广阔的应用前景[3-5,7-10]。但是用户贡献的感知数据中会隐含着用户的年龄、行踪和健康状况等敏感信息[6]。当这些信息被攻击者窃取时,将会导致严重的隐私泄露甚至人身攻击[11-15]。现有的隐私保护方案虽然在一定程度上防止了隐私信息的泄露,但是当请求者在云端进行监听、请求者与诚实且好奇的云相互串通、请求者的同态加密私钥泄漏等情况发生时,用户的隐私信息将无法得到保护。
针对上述问题,本文提出了一种基于云辅助的隐私保护机制,结合数据扰动技术和密码学技术,通过对用户贡献的数据拆分处理使得数据脱敏,使用同态加密对拆分后的数据进行处理,并使用多个匿名凭证来隐藏身份,引入诚实且好奇的云对加密后的数据进行融合处理,实现了群智感知中在保护移动用户隐私信息的情况下进行数据的融合与分析。通过该方案,可防止攻击者、云、请求者直接获取用户贡献的数据,实现了对移动用户隐私信息的良好保护,并且由于诚实且好奇的云对数据融合后的结果仍是密文,防止了其数据提供给第三方,从而保护了请求者的权益并降低了请求者的计算与存储负担。
Ganti等提出移动群智感知这一技术时就给出了解决移动群智感知中隐私保护问题的3种主要思路:①匿名化[6,16],在将数据发送给第三方前隐藏身份信息;②密码学[17,18],使用密码技术来转换数据;③数据扰动,在提交感知数据之前,将噪声信息添加到感知数据中,但不会影响数据的准确性。这3种方式为群智感知中隐私保护的研究指明了方向。
文献[6]构建了一个具有隐私保护的移动群智感知系统,通过引入k-匿名机制,向同一用户颁发多个临时的匿名证书(数字证书,即假名,包含相应的私钥/公钥),使用ECDSA算法对数据样本进行签名,并通过不同时刻采用不同的假名向请求者发送数据,从而达到用户与数据的不可链接性,使得内部攻击者不能识别、跟踪和描述用户。
文献[18]为了实现参与者隐私保护,引入云辅助请求者汇总、存储和处理收集的数据,减少了请求者与参与者的直接通信,防止请求者直接接触数据,保护了参与者的隐私信息,同时使用BGV全同态加密将参与者的数据加密后发送给云进行处理,防止了诚实且好奇的云直接接触数据从而泄露参与者的隐私信息。
文献[19]也引入了云辅助请求者处理数据,为了对隐私信息进行保护,对用户贡献的数据进行BGV全同态加密,使用环签名组对用户身份进行认证,避免了诚实且好奇的云获得参与者的真实身份,保护了用户的隐私。
文献[20]为了保护用户的隐私,在一定时间间隔内,用户使用多个不同的假名同时提交多份报告来隐藏真实身份,但其中只有一个报告是真实信息,从而达到迷惑攻击者的目的,使得攻击者很难确定是否为同一用户。同时使用Paillier公钥密码对消息加密传递,防止了隐私信息的泄露。
上述的这些方案,虽然在一定程度上实现了对用户的隐私信息的保护,但仍然存在一些问题。文献[6]是明文发送,使得攻击者及请求者可以从贡献的数据中挖掘用户的隐私。文献[18-20]虽然引入了第三方云来防止请求者直接获取用户的数据,但当请求者在云端进行监听或者与诚实且好奇的云串通时,则无法保证用户的隐私信息安全。文献[18]与文献[19]使用全同态加密机制,使得请求者的成本过高。
Paillier公钥密码体制是1999年由Paillier发明的概率公钥加密系统,它的安全性基于判定复合剩余类的困难问题[21]。该加密算法是一种同态加密算法,支持任意多次的加法同态操作。和其它加密方案一样,它主要包含3种算法:KeyGen,Encrypt,Decrypt。
c=Epk(m)=gmrNmodN2
(1)
(2)
由于Paillier公钥加密算法具有加法同态性质,对消息M1和M2的密文做乘法操作就相当于对明文进行加法操作后再加密[22]
E(M1)×E(M2)=(gM1r1NmodN2)×(gM2r2NmodN2)=
gM1+M2(r1·r2)NmodN2=E(M1+M2)
(3)
本文所提方案主要包括移动用户(Mobile User),请求者(Requester),云(Cloud),可信任的权威机构(TA)以及匿名证书颁发机构(PCA)5个实体,如图1所示。
(1)可信任机构(trust authority,TA):TA负责对整个系统进行初始化,包括对请求者、云、移动用户、PCA等实体进行注册,生成公共参数,密钥分发以及感知任务分发等。
(2)请求者(Requester):请求者是群智感知任务的发起者,它想要获取移动用户数据的汇总统计数据,但是由于它的存储及计算能力的限制,请求者会将大部分任务委托给云。
(3)移动用户(Mobile User):移动用户是指拥有智能设备,同时愿意为请求者的感知任务提供数据的人。这些数据可以是传感器感知数据也可以是其它数据。
(4)云(Cloud):云接收移动用户的加密数据,然会根据请求者的要求对加密数据进行计算。
(5)匿名证书颁发机构(PCA):PCA根据移动用户的请求为其颁发多个匿名证书(即假名),这些假名之间没有任何联系。移动用户使用假名对自己提交的数据进行签名。
图1 系统架构
本文所提出的架构中,TA与PCA是可以完全信任的,不会被攻击者攻破,也不会与任何实体串通。假设请求者和云都是诚实且好奇的,这就意味着它们将严格遵循预定义的协议,但可能会根据现有信息挖掘它人隐私,泄露用户的数据[18]。
(1)移动用户:移动用户匿名的参与群智感知任务,其身份信息不应泄露。移动用户贡献的数据包含隐私信息,应该进行保护,即使发生请求者的同态加密私钥被攻击者窃取或者请求者在云端监听等情况,移动用户贡献的完整数据信息也无法被获取。同时用户的身份与数据信息是不可链接的。
(2)请求者:请求者应在无法知道任何移动用户明文数据的情况下,获得移动用户数据的融合结果。
(3)云:云在不知道移动用户身份与数据明文的情况下,根据请求者的要求诚实的对数据进行融合,同时将计算结果在不泄露的情况下传递给请求者。
初始时,TA向请求者、云、PCA和移动用户分配公钥/私钥,这些密钥用于相互之间的通信以及数字签名,保护数据的安全性及完整性。当请求者要获得特定数据的统计信息时,将它的请求以及同态加密公钥hpk发送给TA。TA收到任务请求时,广播请求者的任务及同态加密公钥给所有参与的移动用户。参与的移动用户从智能手机或者其它感知设备获取到所需数据m,从PCA通过安全通道获取n个匿名凭证AC,为了防止PCA颁发给用户的假名组被攻击者窃取,使用用户的公钥对其加密。为了解决现有方案中请求者在云端监听、请求者与云相互串通或请求者的密钥泄露等情况从而危及用户的隐私安全,本文将数据m分拆为n份脱敏并使用请求者同态加密公钥hpk进行加密处理,完整的数据可以通过同态加密的同态性来计算获得,接着使用匿名凭证AC对加密后的数据进行签名,最后将处理好的数据发送给云。云接收到用户传来的信息后,首先向PCA验证接收到的匿名凭证真实性,然后验证数据的真实性以及完整性,接着通过对密文进行计算获取统计信息,并将相应结果签名后发送给请求者。请求者接收到消息后验证数据的真实性以及完整性后,使用同态加密私钥hsk解密得到融合结果。
在此阶段,TA生成必要的参数和密钥,并将移动用户、请求者、云、PCA注册到系统,同时为请求者、云、移动用户、PCA生成RSA密钥,用于身份认证以及通信。请求者的公钥/私钥对记为pkr/skr,云的公钥/私钥对记为pkc/skc,移动用户Wi的公钥/私钥对记为pki/ski,PCA的公钥/私钥对记为pkPCA/skPCA。 为了方便叙述,表1将对本文所涉及到的符号加以解释说明。
表1 文中涉及符号
本节中将会对所提方案各步骤进行详细介绍。
3.3.1 任务生成
首先,请求者生成自己的Paillier同态加密公钥hpk=(N,g)和私钥hsk=λ(N)。 然后将任务τ与公钥hpk发送给TA,并用自己的私钥skr对其进行签名,以标注自己的身份。其中τ是任务标签,包含着任务的名称、操作类型、任务截止时间标签等。本文中主要任务为对所有用户贡献的数据进行统计求和。
3.3.2 任务分发
TA从请求者收到 {τ,hpk} 后,发送给所有参与任务的参与者,同时将τ发送给云和PCA,云接收后就会知道对于收到的数据做何种操作。
3.3.3 假名获取
用户为了隐藏真实身份,同时为了防止发送给云的信息被破解使得隐私信息泄露,用户Wi会从PCA请求多个假名(即匿名凭证),当PCA对用户的身份验证成功后,为其分配其请求数目的匿名凭证ACWi,j,其形式为
ACWi,j={PIDWi,j,skWi,j,τ,σskPCA,t}
(4)
其中,PIDWi,j是假名身份;skWi,j是对应于假名身份的密钥;τ是任务描述,表示此证书用于参与何种任务;σskPCA是PCA使用自己的私钥skPCA对其它字段生成的签名,用于验证假名的真实性;t为此证书的生命周期时间。
为了防止PCA颁发给用户的假名组被攻击者等窃取获得,PCA利用Wi的公钥pki将生成的所有假名ACWi加密后传送给用户Wi。
算法1:数据分解算法DSplit(m,n,M(1∶n))
输入: 感知数据m,假名个数n,数组M(1∶n)
输出: 分解结果M(1∶n)
(1)初始化数组M(1∶n),并赋初始值为0
(2)i←1,x←1
(3) whilei (4) ifm<=1 then break endif (5)x←随机生成一个1到m/2之间的整数 (6)M(i)←x (7)m←m-x (8)i++ (9) repeat (10)M(i)←m (11) returnM 3.3.4 感知数据提交 用户Wi收到从PCA颁发的假名后,使用自己的私钥ski对收到的信息进行解密,从而获得假名组ACWi={ACWi,1,ACWi,2,…,ACWi,j…}。 然后用户Wi将在任务规定的时间范围内参与任务,执行任务规定的内容,提交感知数据。 如果请求者在云端监听或者与诚实且好奇的云相互串通,或者请求者的同态加密私钥hsk被泄露,用户的隐私信息将会受到泄露的风险。为了防止用户提交给云的数据被请求者、云、攻击者窃取,对感知数据进行拆分脱敏,将拆分的数据分别与获得的假名组任意搭配传送给云。这样,请求者、诚实且好奇云和恶意攻击者即使获得了一份数据也无法在众多数据中获得其它分片数据,从而使敏感信息得到保护。 假设用户Wi需要提交给云的数据是mi,从PCA获得的假名数目是ni,将数据mi分解为 {mi,1,mi,2,…,mi,ni},mi=mi,1+mi,2+…+mi,ni。 然后将mi,j与请求得到的ACWi,j相对应传送给云。由于对数据进行拆分的方法多种多样,这里我们提供了算法1作为参考。 ci,j=Ehpk(mi,j)=gmi,jri,jNmodN2 (5) 由于Paillier公钥密码体制具有加法同态性,所以Ehpk(mi)=Ehpk(mi,1)×Ehpk(mi,2)×…×Ehpk(mi,n),云利用此属性得到用户贡献的完整数据。证明如下 Ehpk(mi,1)×Ehpk(mi,2)×…×Ehpk(mi,n)= (6) 当用户得到加密的数据后,将它们与ACWi相匹配,使用ACWi,j相对应的私钥skWi,j对ci,j进行签名,从而保证数据的完整性以及不可否认性,得到的签名为σskWi,j,则用户Wi上传的数据为 {ci,1,σskwi,1,ACWi,1} (7) 移动用户对数据的具体提交方式见算法2。 算法2:数据提交算法DSubmit(m,n) 输入:数据m,假名数n /*C(j)即密文ci,j,S(j)即签名σskWi,j*/ (1)M(1∶n),C(1∶n),S(1∶n) (2)DSplit(m,n,M(1∶n)) /*将数据分解为n份*/ (3)forj←1 tondo (4)C(j)=Ehpk(M(j)) /*Paillier同态加密处理*/ (5)S(j)←使用第j个假名ACWi,j相对应得私skWi,j对C(j)进行数字签名 (6) 将C(j),S(j)与匿名证书ACWi,j发送给云 (7)repeat 3.3.5 身份验证与数据丢失重传 云收到从用户W1,W2,…,Wi,…发来的消息 {ci,j,δskWi,j,ACWi,j} 后,首先验证匿名证书ACWi,j的真实性与有效性,并用匿名证书对应的签名公钥pkWi,j验证数字签名σskWi,j,从而证明用户身份的真实性以及数据的完整性。 用户发送给云的信息由于存在网络阻塞、故障等原因可能发生某份数据分片丢失未能传递给云的情况。数据分片的丢失,使得云无法获取用户的完整数据参与运算,将会污染计算结果,降低计算结果的精度,因此需要采用合理的机制对数据进行丢失重传。本文所采用的方案如下: 云向PCA验证匿名证书时,PCA根据云与其通信发来的匿名证书ACWi,j判定云是否接收到了用户Wi的所有数据分片。当PCA获取到云收到的用户Wi匿名凭证时,与分配给Wi的匿名组中的匿名证书进行比对,判断云是否收到了所有的数据分片,如果云未收到的匿名凭证组中的所有匿名,则发生了数据丢失,此时PCA会通知用户Wi对云未接收到的匿名证书所在的数据进行重传。若用户Wi一定时间内未对数据进行重传,则PCA会通知云丢弃用户Wi匿名凭证组所在的所有数据。 3.3.6 数据融合 云验证成功且与PCA交互完成后,对接收到的所有数据进行统计求和操作。假设云收到完整数据的用户数为t,用户Wi的匿名证书数为ni,根据Paillier密码体制的同态属性,云进行如下计算 (8) 其中,mi,j是用户Wi第j个假名所对应的数据。 3.3.7 融合结果获取 (9) 3.3.8 扩展 除了求和的计算之外,我们还可以计算获得平均值以及方差。 (1)平均值 (10) (2)方差 (11) 为了便于计算可以将公式进一步化简为 (12) (13) 在本章中将基于本文的安全模型与安全性要求对提出的方案进行安全性分析。 对于移动用户而言,我们通过k-匿名实现了对用户身份信息的保护。用户在参与群智感知任务时,会向PCA获取多个具有一定生命周期、无关联的匿名证书来隐藏自己的真实身份参与群智感知任务,通过k-匿名良好地保护了用户的身份隐私,实现了不可链接性,随着参与用户的增多,用户可以更好地隐藏在人群中。因此,攻击者、云、请求者将无法获得移动用户的真实身份,极好地实现了用户身份隐私的保护。 对于用户的数据安全,由于采用了Paillier同态加密,它是基于n次剩余困难问题,在已知密文和公钥或者只知道密文的情况下,很难计算获取到私钥从而解密得到明文,因此Paillier加密体制是单向的,攻击者或者云在不知道请求者同态加密私钥的情况下无法得知用户贡献数据的明文信息。 同时,当同态加密私钥被攻击者或者云通过某种手段获知的情况下,或者请求者拦截监听移动用户到云端的消息,请求者与云串通时,本文的方案同样可以良好保护用户的隐私。由于移动用户Wi参与移动群智感知任务时,其数据mi将会被拆分为ni个子数据,然后通过请求者的Paillier同态加密公钥进行加密后发送给云。假设请求者的同态加密私钥被攻击者或者云窃取,请求者拦截监听移动用户到云端的消息,或请求者与云串通时,由于用户对数据进行了拆分,并通过多个不同的无关联的匿名身份将数据通过匿名安全信道发送给云,攻击者、请求者、云也无法得到完整的真实数据。假如有n个移动用户参与移动群智感知任务,每个用户获取的假名平均为x(x>1),则攻击者、请求者或者云在得到一个数据的情况下,获取其它的分拆数据组成完整数据的概率为 (14) 由于x远远小于n,则攻击者或者云得到完整的数据的概率近似为1/(xn)x-1。 所以攻击者、请求者或者云要得到完整的真实数据是很难的。用户的真实完整数据良好隐藏在大量的数据中。因此实现了对用户数据的保护,解决了请求者的同态加密私钥被攻击者窃取或者请求者在云端监听等情况下用户的隐私安全。 在本文中,PCA可以对匿名证书的真实性以及有效性进行验证,通过云发送来的匿名证书验证信息来确认云是否接受到用户完整的数据分片,对于未收到的数据分片通过重传与丢弃机制对丢失的数据分片进行重传,防止了数据分片丢失影响融合结果的准确性,从而保证数据的完整性。 对于请求者来说,我们将数据的收集与计算委托给了云,请求者只能获得数据的融合结果,防止了请求者直接接触用户的数据,而且由于用户对贡献的数据进行了拆分出来,使得请求者在云端进行监听或者与云串通时也无法获取到用户的完整数据。 对于云,委托给云的计算,由于同态加密的存在,计算是在密文上进行的,结果是密文,云在没有同态加密私钥的情况下也无法获得计算结果的明文信息,这保障了请求者的权益,防止了诚实且好奇的云将计算结果泄露。同时由于同态加密的存在也防止了攻击者监听云与请求者的通信时,计算结果的泄露。 我们基于openssl库,将Paillier密码中N设置为1024位进行了模拟实验,使用来自文献[23]的开放数据集作为实验数据集,并与文献[6](记为R6)和文献[20](记为R20)中的方案进行对比分析。 首先,对移动用户在获取不同匿名证书数量的情况下参与移动群智感知任务时用户的加密以及签名成本进行实验分析。如图2所示,随着获取的证书增多,用户的数据分片也将增多,需要对每个数据分片进行加密与签名,因此随着用户获取匿名证书个数的增加,其加密以及签名成本呈线性增长。当用户获取的匿名证书数为x时,攻击者、云、请求者得到完整的数据的概率近似为1/(xn)x-1,由于感知任务参与人数n是一个较大的数,随着x的增大,得到完整的数据的概率逐渐降低,但当x过大时,用户需要付出较大的成本。为了在保证安全性的同时降低用户的成本,用户在参与移动群智感知任务时,其申请的匿名证书数应在合理的范围内。由于当x=2时,概率为1/2n,此时攻击者、云、请求者很难得到完整的数据,用户完整的数据将会隐藏在众多用户的数据之中,因此用户获取的匿名证书数应在2个~5个,此时既能保证安全性又能降低用户的成本。 图2 不同匿名证书数下的花费成本 假设每个用户获取3个匿名证书,所有的加密、签名成本为200个用户的平均值。如图3(a)所示,我们的方案与R6和R20的签名成本相差不大。但R6由于没有对用户贡献的数据进行加密等处理,所以R6的加密成本为零。我们的方案与R20的方案均使用了Paillier密码体制进行加密,所以成本相对较高,这是为了实现数据隐私保护做出的牺牲,但是如图3(b)所示,总成本在可接受的范围内。而且与R20相比,在实现更高的安全性的情况下,总成本要远低于R20,具有较好的性能。 图3 移动用户端成本比较 接着,实验模拟了200名用户选定参与移动群智感知任务时请求者的计算成本。由于R6没有对数据进行加密,所以其解密成本为零,而我们的方案与R20为了保护移动用户的隐私,对数据使用了Paillier同态密码进行加密,请求者接收到的消息依然是密文,因此需要解密获得结果,解密成本如图4(a)所示。如图4(b)与图4(c)所示,R6的200人签名验证成本为224 ms,200个用户数据融合成本为0.023 ms。由于本文中方案与R20将数据融合交给了云,数据融合成本为零,只需要对从云传来的结果的签名进行验证,签名验证成本为0.03 ms,远远小于R6。对于请求者的总成本如图4(d)所示,我们的方案与R20相比请求者的总成本相差不大,而R6要远高于我们的方案。 图4 相同用户数下请求者成本比较 如图5所示,由于本文中的方案与R20将数据的融合计算委托给了云,无论参与用户数量是多少,请求者只验证、解密从云中获取的单个结果,所以请求者花费的成本是不变的。而R6由于需要验证、计算从每个用户获取的数据,所以R6中请求者的成本随着参与用户数的提升而不断提高。 图5 不同用户数下请求者成本比较 最后,实验分析了方案扩展部分中平均值、方差的计算总成本。由于本文中的方案将数据的融合计算委托给了云,减轻了请求者的计算负担,所以此处的总成本指的是单个参与用户和请求者的成本之和,如图6所示。 图6 统计成本 大量移动智能设备的使用促进了移动群智感知的发展,降低了数据的采集成本。然而,移动用户在参与感知任务时可能面临隐私信息泄露。为了应对这一挑战,本文提出一种基于云辅助的解决方案,该方案中请求者将感知数据的融合计算委托给云,减轻了请求者的计算以及存储负担;用户申请多个假名并将贡献的数据进行拆分脱敏,使用同态加密对拆分后的数据进行处理,实现了对移动用户的隐私信息的保护,解决了现有方案中当请求者在云端监听或者与云服务器串通时无法良好保护用户隐私的问题。
gmi,i+mi,2+…+mi,n(ri,1ri,2…ri,n)NmodN2=
Ehpk(mi,1+mi,2+…+mi,n)=Ehpk(mi)
{ci,2,σskwi,2,ACWi,2}
…
{ci,n,σskwi,n,ACWi,n}4 安全性分析
5 实验分析
6 结束语