杨 青,于大为
(苏州信息职业技术学院,江苏 苏州 215200)
将海量实体与传感设备相连,并借助互联网技术实现信息的互通互联是物联网的深层意义所在。在物联网的海量混合数据中,智能化查询所需数据信息是现代社会人们获取信息的主要方式[1]。在智能化查询过程中,往往涉及用户的隐私信息,关系着个人的名誉、财产等方方面面的信息,一旦隐私信息泄露,必然会导致严重后果,不仅会造成财产损失,甚至威胁生命安全。另外,物联网查询目标和查询范围的广阔性、查询数据的实时性和动态性、查询关键字的多样性和繁杂性等特点[2-3],决定了物联网查询中实施用户隐私保护的高难度性、挑战性。因此,用户隐私保护是限制物联网海量混合数据查询发展的瓶颈。
陈琳等人[4]针对物联网平台不同场景应用不同通信协议导致原有安全通信方案具有孤立性,无法对用户隐私信息进行有效保护的问题,提出构建适合各场景的通用模型,并利用条件代理重加密方法实现数据防御的安全方案。该方法可对用户访问权限进行识别,非合法用户不具备数据查询资格,但该方法的网络开销较高,且在数据查询过程中未对关键字索引进行加密处理,容易泄露用户的偏好信息。赵志远等人[5]针对物联网数据安全问题,通过建立基于隐藏访问结构的属性基加密方法,实现物联网数据的隐私保护及访问管理。该方法虽在运算效率方面具有较好效果,但加密后数据仍有攻击风险。因此,本文提出考虑用户隐私保护范围的物联网海量混合数据查询方法,通过对用户身份进行认证,为其设定不同的访问权限,通过G-CP-ABE加密方案实现互联网海量混合数据加密,以降低物联网查询开销,确保用户隐私安全。
图1为考虑用户隐私保护范围的物联网海量混合数据查询方案。其中涉及到的参与者如下:
图1 考虑用户隐私保护范围的物联网海量混合数据查询方案
(1)属性权威中心(Attribute Authority Center, AAC):该参与者是考虑用户隐私保护范围的物联网海量混合数据查询方案中享有较高声望、在业界具有权威性的机构,可由数个属性权威中心构成[6],其职责是对物联网参数进行初始设置,产生公开参数,能依据数据查询者的身份及其属性信息,为其创建密钥并将其发送至数据查询者。在数据拥有者拒绝数据访问需求时,不再为数据查询者提供数据访问权限,并将查询用户的权限撤销证书传输给代理服务器。
(2)数据拥有者(Data Owner, DO):该参与者与代理服务器协同获取密文索引,并将其与加密数据文件一同传输给可实现物联网查询业务的一方。对于需要上传的加密混合数据文件,DO可对其设定相应的访问策略,各访问策略可存在差异性,设定完成后可将其保存在密文中。
(3)数据查询者(Data Searcher, DS):一部分特定属性集合为数据查询者特有,同时含有密钥信息,DS可发送数据查询申请,获取的查询信息是与其查询权限相符合的查询结果。对获取的查询信息进行解密处理,在考虑用户隐私保护范围的物联网海量混合数据查询方案中,DS可下载到本地的数据文件均为其能实现解密的数据文件,此种方式可有效降低其通信开销[7]。另外,在本文设计的查询方案中,代理服务器可完成部分解密工作,但不会获取数据的明文信息,以此解决因DS查询设备性能的限制造成的网络开销大的问题。
(4)代理服务器(Proxy Server, PS):PS可帮助DS获取密文索引、查询陷门,并为DS提供部分数据文件解密服务。
(5)物联网查询服务商(IoT Search Provider, IoT SP):其职责是保存和查询数据、校验属性、筛选数据。当数据查询者上传查询申请,SP会获取其访问权限,筛选出与之权限相适应的加密数据传送给代理服务器PS,在数据通信时SP存在企图得到明文数据的风险。
(6)认证中心(Certificate Authority, CA):其职责是认证互联网用户的身份信息,为数据拥有者、查询者发放访问权限证书。
数据查询者在进行物联网海量混合数据查询前,需在AAC进行身份验证,在提交查询申请时需对查询关键字作加密处理,在代理服务器的协同下获取查询陷门;经过物联网查询服务商的数据过滤,筛选出与数据查询者访问权限相当的加密文件,代理服务器对其中部分文件进行解密处理,传输给数据查询者;数据查询者收取混合数据文件,经解密得到明文信息。下文为考虑用户隐私保护范围的物联网海量混合数据查询方案实施流程的详细描述。
1.2.1 系统初始化阶段
AAC对物联网参数进行初始设置,其算法表示为ABE.Setup()→(PK, MSK, KMSK)。MSK为输出主密钥,PK为公开密钥,KMSK为主查询密钥,AAC将PK经由安全信道提供给数据拥有者、物联网查询服务商,存储MSK、KMSK。KMSK==k(k∈Zp)遵循任意性原则进行选取,设定双线性组为G0,双线性映射为e,p为其素数,g为生成器,任意选取α、β,且α,β∈Zp,对PK、MSK进行求解,则有:
1.2.2 认证证书发放
数据查询者及拥有者需在CA进行身份认证,并由CA发放身份证书,表示为Did,该证书是用户身份的证明,且每个用户只有一份证书[8]。用户的身份信息独立于其属性信息,更有利于保护数据查询者的身份,降低信息泄露风险。
1.2.3 G-CP-ABE数据文件加密
数据查询者、拥有者的私钥可通过其组属性集进行识别,H:{0, 1}*→G0表示希函数,将其属性用二进制进行描述[9],再通过该希函数将其与任意组元素进行一一对应。U={A1, A2,..., An}表示属性集合,G-CP-ABE数据文件加密需经历设定对称密钥、对称加密、对称解密等阶段,对于大数据量造成的计算开销较大的问题,可通过对称加密实现。
(PK, MSK, S)→SKS密钥获取:S为组属性集,将其作为密钥生成算法的输入,可获取SKS,即为私密密钥,属性集合S可识别SKS。i为S的各个属性,密钥生成算法任意选取r、ri赋予各属性i,且r,ri∈Zp。SKS可通过下式获得:
对于各属性的集中属性数量,m为其最大值,最小值为1,所用任意密钥之和表示为m,CP-ABE密钥长度及运算难度受属性数量的影响,且二者为正比关系,本文通过G-CPABE对CP-ABE进行改进,使属性数量大大减少,密钥获取效率大幅提升,并降低了运算难度[10]。
数据拥有者通过子例程对数据文件进行加密,得到(PK,K, A)。公钥为PK,对称密钥集为K,组查询结构表示为A,C2为通过此算法得到的密文。当数据查询者的属性集与解密密钥一一对应时,方可获取解密密钥[11]。x1, x2, ..., xm为数据拥有者任选的数,来自于Zp,数量为m,密文Ci1、Ci2的求解可通过下式进行描述:
因m很小,有效降低了G-CP-ABE算法的运算难度;y为访问树中的各节点,根据G-CP-ABE算法可确定其多项式qy,按从上至下顺序任意选取节点信息。针对各节点y,设定ky-1为其多项式阶数,其阈值为ky。R为访问树的根节点,将其作为起点,数据拥有者对其进行初始设定,令qR(0)=x1,其多项式qR可通过其余节点进行设定,设定多项式节点分别为层次节点、访问树的任意节点,令qy(0)=qparenty。L为访问树的叶子节点集合,z为其叶子节点,数据拥有者可通过下式获取各节点的Ci1(z)、Ci2(z)。
对于各属性子集,需利用m个密钥对其进行迭代加密,完成对称加密操作。{C1, C2}为数据拥有者得到的数据文件的加密密文,将之上传。
加密数据文件的解密文件为(C, SKS)。数据查询者通过循环执行子例程实现数据文件的解密。设定(C2, SKS, y)表示递归函数解密节点,其中y为节点,C2为密文,SKS为用户密钥。
当y为叶子节点,可确定属性i=att(y)。若该属性存在于属性集合S,则有:
若i不属于属性集合S,即设定DecryptNode(C2, SKS, y)值是null。
当y为非叶子节点,z=child(y)内的各节点,则执行DecryptNode(C2, SKS, y),其值在Fz中保存。对于子节点z,令Sx为其集合,kx为集合中节点数量,以确保Fz为非空。若该节点无法找到,则说明该节点不符合条件,此时确定结果为null。反之,则通过下式进行确定:
数据查询者属性个数是影响解密效率的重要因素[12],在本文的G-CP-ABE中,由于数据查询者属性个数不多,因此具有更好的解密优势。
根据层次结构,子节点的密钥可通过父节点确定,但该过程不可逆,反过来则无法实现。对于当下节点为Si、{ki, ki+1, ...,km}为解密密钥的情况,其获取过程可通过逐个求解e(g, g)αSi、e(g, g)αSi+1、…、e(g, g)αSi+m 实现。获得解密密钥后,数据
查询用户可对加密数据进行解密,并对密钥表的属性进行查询,属性表示为{Ai, Ai+1, ..., Am}。对应的描述公式为:
1.2.4 建立关键字索引
数据查询者在物联网查询数据时,需依据关键字索引检索实现加密数据的查询,因此建立关键字索引是必不可少的步骤[13]。物联网内的数据信息由物联网查询服务商保存,存储形式为文本方式,设定已从文本中获取到关键字,表示为{w1, w2, ..., wn},关键字索引的建立步骤如下:
(1)wi表示各关键字,wi∈W,W为关键字集合,数据拥有者求解Ai=h(wi)ri,将关键字向G0的任意数进行映射,其散列函数可表示为h,ri为Zp内的任意数。
(2)代理服务器接收来自数据拥有者的身份证书Did及获得的(A1, A2, ..., An),并以Did作为依据对数据拥有者的PDid进行检索。针对各Ai,对Bi=e(Ai, PDid)进行求解,再将获得的{Bi, 1≤i≤n}返回给数据拥有者。
(3)数据拥有者对ki=h(Vi(ri)-1UDid)进行求解,设定 Iwi=(Ri, [Ri]ki),其中[Ri]ki代表可针对任意数并具有较高安全性的对称密钥算法;ki代表密钥加密方式。
Iw={IW1, IW2, ..., IWn,}为关键字集合W的加密索引。1.2.5 查询陷门生成
其中:ru为任意数;IDu代表身份。该用户的当下坐标及检索半径表示为((xu, yu), R),其检索关键词表示为Wq;数据查询者在对其感兴趣的内容进行检索时,其兴趣属性区间表示为,其数据检索时间戳表示为Tq。数据查询者对查询内容进行加密处理,是确保个人隐私安全性的关键手段[14]。Q'为生成的查询陷门,数据查询者只将Q'提交给代理服务器。
(2)确定查询关键字陷门。数据查询者使用关键字进行信息查询时,关键字常能反映查询者的偏好等涉及个人隐私方面的信息[15]。为避免信息泄露,在上传查询申请前,需对查询关键字作加密处理。关键字陷门生成流程如下:
第一步,数据查询者任选一个数r',且r'∈Zq*。
第二步,对T1=SKuh2WqPKL+r'P2,T2=r'PKS进行求解。
第三步,TWq={T1, T2}为得到的查询关键字陷门。
(3)确定兴趣点区间属性查询陷门。物联网查询服务商为数据查询者提供密钥组,以实现查询者感兴趣内容查询区间[∂u1, ∂u2]的加密处理。[∂u1, ∂u2]陷门确定流程如下:
第一步,数据查询者任选一个数ρ,且ρ∈Zq*,并对向量Ou=ρOo进行求解。
第二步:∂u1为查询的左界限,确定loc∂、loc-1值,并依据其值在向量Ou适合位置代入1、∂u1,由此获取向量∂u1。
第三步:经矩阵乘法确定TIu1=MT2∂u1,其目的是使数据难以区分;∂u2为查询右界限,以相同方法确定TIu2=MT2∂u2。由此可确定TI={TIu1, TIu2}为POI区间属性查询陷门。
综上,确定查询陷门Q'={Did, Tcord, TWq, TI, Tq},将其上传给代理服务器。
以物联网海量混合数据为研究对象,构建数据集,其中包含混合数据信息10 000条。在确保用户隐私信息不泄露的前提下,采用本文方法对混合数据进行查询,验证本文方法的查询性能。
为实现物联网混合数据的用户隐私保护,需对数据拥有者的混合数据信息进行加密处理。以数据集中的3 000个采样点语音数据为例,采用本文方法对其进行加密处理。通过对比加密前后的语音数据的信号波形,分析本文方法的加密效果,实验结果如图2所示。
由图2可知,采用本文方法加密后的语音数据波形已完全不具备原有波形特征,无法识别出原语音数据信息。实验结果表明,本文方法具备物联网海量语音数据加密性能,且加密优势突出,可有效保护用户数据安全。
图2 本文方法加密前后语音数据波形对比
数据查询者在查询到物联网混合数据时,需先对其进行解密操作,解密密钥准确方可获取混合数据的明文信息。均方误差(RMSE)、平均失真度(RNADM)是度量数据解密效果的重要指标,本文通过分析解密密钥正确和存在偏差两种情况下的指标值,验证本文方法的解密效果,实验结果见表1所列。
表1 混合数据解密的均方误差、平均失真指标
根据表1可知,以正确密钥的解密结果作为对比,当密钥发生偏差时,其RMSE指标较之小两个数量级以上,RNADM指标较之大一个数量级。由此可确定,当解密密钥具有偏差时,解密后的语音数据并非为原始数据,数据失真严重。实验结果表明,本文方法可对物联网混合数据起到保护作用,安全性较高。
数据查询者在物联网平台进行混合数据查询时,平台通过云计算实现,因此处理效率高;查询时间主要消耗在关键字索引生成、查询陷门生成及混合数据加密和解密操作。通过分析查询总开销验证本文方法的高效性,实验结果如图3所示。
图3 查询总开销分析
由图3可知,由于部分解密是通过代理服务器实现,解密开销很小,其余三项操作所需开销随着属性数量的不断增多而不断增大。当属性数量达到20个时,查询总开销可达到180 ms左右,但在物联网海量混合数据查询中,可能并不需要设置如此多的访问属性。由此可见,本文方法具有较高的处理效率。
以物联网海量混合数据为研究对象,在确保物联网混合数据隐私安全的前提下,采用本文方法对其进行查询,以验证本文方法的有效性。本文以物联网语音数据为例,采用本文方法对其进行加密处理,通过对比加密前后的语音数据波形分析加密效果;在解密密钥正确及存在偏差两种情况下,通过RMSE、RNADM指标分析本文方法的解密性能;通过分析查询总开销验证本文方法的高效性。实验结果表明:本文方法的加密、解密性能突出,查询开销较小。