周由胜,谭畅,唐飞
(1.重庆邮电大学计算机科学与技术学院,重庆 400065;2.重庆邮电大学网络空间安全与信息法学院,重庆 400065)
工业物联网(IIoT,industrial Internet of things)是物联网系统与工业自动化系统的融合,具有全面感知、互联传输、智能处理等特点,是物联网技术未来的主要发展方向之一。工业物联网应用系统的重要任务之一是分析和处理物联网设备传感数据,如果将物联网设备的传感数据全部汇集到控制中心进行处理,不仅可能因网络拥塞引起系统较高时延,而且会使系统面临单点失效的风险。近年来兴起的边缘计算模式通过充分利用网络边缘侧设备的算力,可有效缓解传统集中式计算模式下存在的性能瓶颈和安全风险[1]。通过在工业物联网边缘部署雾设备,可以在网络边缘侧对物联网中传感数据进行预处理,提高服务质量[2-3]。
物联网设备的传感数据保护问题是雾增强型工业物联网系统需要考虑的重要问题之一。例如,在雾增强型工业互联网系统中,运维人员需要实时监控系统中的物联网设备是否正常运行,即查询物联网设备的传感数据是否处于合理的范围从而确定其运行状态。出于安全性考虑,查询过程中传感数据和查询结果均不能泄露给其他任何非授权方,因此必须设计安全的数据查询方案。在数据安全查询方面,目前诸多学者考虑了外包加密数据的查询,例如,Wang 等[4]使用布鲁姆过滤器构建查询索引,实现了对加密数据的模糊多关键词排序范围查询。Dai 等[5]针对双层无线传感器网络下的数据查询问题提出了一种融合桶分区、身份认证和校验码等技术的范围查询方法。Shen 等[6]研究了外包数据的多维度保密范围查询问题,提出了一种个体化的、权限灵活的查询方案。近年来,针对非外包加密数据的范围查询吸引了研究人员的关注,如Lu[7]提出了一种范围查询矩阵化的方法,利用同态加密技术设计了单维安全范围查询方案。现有支持隐私保护特性的范围查询的研究主要集中在查询范围以及满足条件的查询子集的保密性上,不支持多维度查询,且通信开销较高。
由于在工业互联网中有些大型物联网设备有多种不同类型的传感器,因此对其进行状态监控需要获取归属该设备的多个传感数据,即进行多维数据查询,而采用传统的数据查询只能使用多次查询的方式实现,增加系统计算开销和通信开销,因此,有必要设计针对工业物联网的多维数据查询方案。此外,设计方案时还需要兼顾传感数据的机密性和用户查询模式保护问题。基于同态加密构造面向多维数据的查询陷门和陷门匹配是解决该问题的一个可行思路,如BGN(Boneh-Goh-Nissim)同态加密算法[8]和Paillier[9]提出的算法。用户将查询范围进行保密处理形成查询陷门,物联网设备在收到密文形式的查询陷门后与自身的传感数据进行匹配,利用同态加密算法的自盲性将传感数据形成新的密文并上报给雾设备。雾设备对其所属的物联网设备所提交的满足条件的传感数据密文进行汇集,并将汇集结果返回给查询用户进行计算和解密。
本文提出了一种面向雾增强型工业物联网的具有隐私保护特性的多维度安全范围查询方案,该方案采用查询区间矩阵化、基于辅助向量的矩阵分解和重构等方法降低存储开销和通信开销,利用同态加密实现隐私保护。本文方案首先将涉及多个不同量纲、不同起始点的n维数据的范围映射到一个查询矩阵,该矩阵的大小由总的查询区间大小而定,不受所需查询维度量纲的影响;其次,构造多个辅助向量将该矩阵分解和重构;再次,利用BGN 同态加密设计查询陷门生成过程和陷门匹配过程;最后,通过仿真实验对方案的可行性和性能进行验证分析。
本节介绍本文方案使用的2 种基本数学方法,即大合数N=pq阶双线性映射e:G×G→GT和BGN同态加密算法。
令p、q是2 个同长度的大素数,即其比特长度|p|=|q|。令N=pq,当在群G和GT间存在满足如下3个属性的可计算的映射关系e:G×G→GT时,映射e(G,GT)可被称为合数阶双线性映射。
1) 双线性。对任意的(g,h)∈G2,a,b∈ZN,有e(ga,hb)=e(g,h)ab。
2) 非退化性。存在g∈G,使e(g,g)在N阶群GT上。
3) 可计算性。存在一种高效算法,当(g,h)∈G时,所有e(g,h)∈GT都是可计算的。
大合数阶双线性参数生成器CGen(K)是一种概率算法,其以安全参数K作为输入值,输出一个五元组(N,g,G,GT,e)。其中,N=pq,p和q是2 个K bit 的素数;G和GT是2 个N阶的群;g∈G是群G的一个N阶生成元;e:G×G→GT是一个非退化性的、可以高效计算的双线性映射。
令g是G的一个生成元,此时由h=gq∈G可以生成一个p阶子群Gp={g0,g1,…,gp−1},而g′=g∈G可以生成一个q阶子群Gq=Gp={g′0,g′1,…,g′q−1}。此时,G群上的子群区分(SGD,sub-groupdecision)难题[9]可以表述为:给定五元组(N,g,G,GT,e),如果元素x是随机从群G或其子群Gq中选取的,则确定x是否为Gq中元素是困难的。若此难题成立,则BGN 同态加密算法的安全性得到保证[9]。
BGN 同态加密算法是著名的全同态加密算法,由3 个阶段组成,即密钥生成阶段、加密阶段和解密阶段。
1) 密钥生成阶段
给定安全参数K,合数阶双线性映射参数组(N,g,G,GT,e)由生成器CGen(K)生成。此处N=pq,其中p,q是2 个K bit 的素数,G和GT是2 个N阶的群,g∈G是群G的一个N阶生成元。设h=gq,h是G的一个随机p阶生成元。此时,公钥pk=(N,G,GT,e,g,h),私钥sk=p。
2) 加密阶段
3) 解密阶段
给定密文c=E(m,r)=gmhr∈G,明文可用密钥sk进行恢复。观察可知cp=(gmhr)p=(gp)m,若要解密m,相当于求解以gp为底的cp离散对数问题,而由于0≤m≤Δ,使用Pollard lambda 算法求解这个问题的时间复杂度为。
此外,BGN 同态加密算法拥有自盲性,即,给定密文E(m,r)∈G,有E(m,r+r′)=E(m,r)hr′∈G是m的一个有效密文。
BGN 同态加密算法拥有以下同态特性。
①群G上的加法同态性。给定E(m1,r1)∈G和E(m2,r2)∈G,有
本文方案是一种面向各类雾增强工业物联网聚合式查询方案,本文中的多维度是指一个物联网设备的传感数据由多个不同维度的数据构成,如一个物联网设备的传感数据包含水温、电压、水量、材料余量等。根据实际需求,可能需要同时对该设备不同维度的传感数据进行查询。例如,在某个工厂中通过统计水温、电压、水量、材料余量的平均值,不仅可以及时了解并预测设备运行状态,还可以为优化生产工艺的流程提供依据。
需要说明的是,在实际的工业物联网环境中,不同维度的数据具有不同量纲和精度,例如电力消耗数据、水量消耗数据等可能会出现小数的情况。由于每个物联网设备在制造后不太可能通过OTA(over the air)升级等软件手段来改变其探测精度,为了简化计算和适应多维度查询的需求,本文方案做如下处理。精度小于1 的传感数据在参与计算时需要进行转换,如电力传感数据某个时间节点的值为10.37 W,在计算时将其乘以100,即变为1 037 再进行范围查询。这样,可以在不损失精度的情况下实现多个维度的范围查询。事实上,某个维度的数据的扩增倍数可在物联网设备部署时写入设备。
本文方案中有三类实体,即位于网络边缘侧的雾设备、位于雾设备管辖范围内的工业物联网设备D={D1,D2,…,DN}以及查询用户,方案模型如图1 所示。
图1 方案模型
1) 工业物联网设备D={D1,D2,…,DN}是一组物联网设备的集合,其分布于各个特定的物联网域中。每个物联网设备不只拥有探测和收集特定数据的能力,同时其也拥有数据传输的能力,使每个物联网设备Dk可以周期性地向其所属域内的雾设备上报传感数据。
2) 本文方案的模型中的雾设备均位于网络边缘,每个雾设备有自身的管辖范围,这个管辖范围可以根据具体应用场景而定,如一台生产设备、一个车间,乃至一个厂区。雾设备可以在其管辖范围内对设备的传感数据进行收集和计算,并完成用户发来的查询请求。相对于物联网设备而言,雾设备拥有更强的计算和存储性能,并可以实时完成对物联网设备的传感数据收集和回应。
3) 本文方案的模型中,查询用户可以直接生成多个维度的范围查询并发送给雾设备,从雾设备上获得所需数据。例如,用户可能想要知晓有多少个雾设备范围内的设备传感数据可以同时满足维度1,范围[B1,T1],维度2,范围[B2,T2],…,维度m,范围[Bm,Tm];哪些设备的传感数据满足条件;满足条件的设备在各个维度上传感数据的均值是多少。雾设备可以收集到管辖范围内的所有设备反馈的满足条件的传感数据,然后根据其反馈数据生成相关度,最后将相关度和传感数据返回给用户。
本文方案在单查询区间矩阵化算法[7]的基础上进行了改进,使多维度范围查询得以矩阵化,且维持较低的通信开销。
通过观察可以发现,任意给定的查询区间均可分解成2 种类型的行,分别为不完全行(PR,partial row)和连续行(CR,continuity row)。图2 为2 个查询区间映射后的查询矩阵,深灰色部分为PR,浅灰色部分为CR。这种矩阵结构为进一步压缩矩阵提供了可能。一般情况下,一个典型的查询区间可以分解得到2 个PR 和一个CR。
图2 2 个查询区间映射后的查询矩阵
设总的查询区间数为n。首先,定义4 种特殊的辅助向量。
1)Xk=(xk1,xk2,…,xkn)。其生成规则为,当第k个矩阵中第i行元素全为1 时,设定xki=0;否则xki=1。
2)Yk=(yk1,yk2,…,ykn)。其生成规则为,当第k个矩阵中第j列元素有至少一个1 时,设定ykj=0;否则yki=1。
本文分别对矩阵中的不完全行和连续行进行处理。首先,将n个查询区间对应的不完全行独立拆分为多个矩阵R1,R2,…,R2n,将所有的连续行拆分成一个矩阵RC,如图3 所示。显然,原查询矩阵R=R1∪R2∪…∪R2n∪RC。
图3 查询矩阵的拆分结果
此时,矩阵中所有元素均可通过向量运算得到。用Rk表示与不完全行相关的矩阵,用RC表示与连续行相关的矩阵,将矩阵的与运算表现为按位与运算,将矩阵的或运算表现为按位或运算,并整理为向量乘法和向量加法的形式,如式(3)所示。
经过计算可知,向量XC在重构中无作用,最终所需的向量个数为4n+1 个。
本文方案流程主要由三部分组成。首先,密钥管理服务器生成查询密钥,将私钥分发给用户,公钥分发给雾设备FDi。用户进行数据范围查询时,使用私钥对所查询范围和查询维度进行加密生成陷门,并将其发送给雾设备FDi。然后,雾设备在收到用户发来的查询陷门和查询维度密文后,将查询陷门下发给其所管辖的物联网设备进行查询。物联网设备在计算出本次查询的结果ω后,发送给雾设备进行聚合。雾设备通过聚合和计算得到ζ并反馈给用户。最后,用户将收到的ζ进行计算和解密,即可得到查询结果。整个流程如图4 所示。下面将具体介绍本文方案的流程。
图4 系统流程
为方便描述数据查询流程,将流程构造中使用到的主要参数在表1中列出。
表1 主要参数及其定义
1) 密钥生成
给定安全参数K,密钥管理服务器由生成器CGen(K)生成合数阶双线性映射参数组(N,g,G,GT,e)。其中N=pq,p,q是2 个K bit 的随机素数,G,GT是2 个N阶的群,g∈G是群G的一个N阶生成元,e:G×G→GT是大合数阶双线性映射。设h=gq,则h是G的一个随机p阶生成元。密钥管理服务器生成公钥pk=(N,G,GT,e,g,h),私钥sk=p。之后,密钥管理服务器分发私钥sk 至查询用户,分发公钥pk至全体雾设备FDi,并由雾设备下发至其管辖域上的物联网设备。用户设定自己的消息空间为1,…,Δ},Δ≪q。
2) 查询陷门生成
对于每个确定的使用场景,用户每次发起的查询涉及的维度数量和种类是确定的。本文方案中设定所查询数据的维度数量为n,即用户查询的区间数量为n。需要说明的是,流程中所指的查询区间[Bquery,Tquery]均为经过倍增处理的传感数据区间,物联网端也已对数据进行了相同的倍增处理,故不再赘述数据倍增过程。一次范围查询的陷门生成由以下几个步骤构成。
①数据映射和转换。将本次查询的任一查询维度设定为第一区间,之后按照以下规则确定每个区间在查询序列中的开始点。其中,li为区间i的区间长度。
即任一区间i的起始点为区间i−1 的结束点后增加一个区间长度后的位置,以防止多个区间相连,形成太多CR 区块。确定起始点后,任一区间i的结束点为
该查询区间的数据偏移βi可以由查询区间的开始点来确定,设偏移后该查询区间内第k个元素为vik,则βi和vik满足式(8)所示条件。
由最后一个查询区间的结束点确定矩阵阶数m,然后构建m阶查询矩阵R。为了将查询区间映射到查询矩阵R中,将vik映射到矩阵元素R(i,j),如式(9)所示。
矩阵的阶数m由最后一个查询区间的结束点而不是单个查询区间的上界决定,故每个向量的存储空间需求与多维度查询的单个区间的上界无关,只与所有查询区间长度之和有关,存储开销为O(m)。
② 向量生成与加密。在生成查询矩阵R后,按照3.2 节所述方法,由查询矩阵生成相应的向量X,Y,X′,Y′,并筛选出所需的4n+1 个向量进行存储和加密。即
至此,查询陷门α生成完毕。将其发送至雾设备FDi,然后下发给其物联网域上的各物联网设备Dk进行查询。此外,用户还需要生成并向雾设备FDi发送本次查询所需的维度密文ET(n)。
3) 物联网设备端的处理
与用户端发送的维度标识γ相对应,每个物联网设备Dk拥有自己的维度标识。物联网设备依次提取用户发送的查询陷门α中的和其对应的哈希值Hi来进行计算和比对。首先,物联网设备计算并比对用户发来的Hi,若一致则从中取出这条向量内的维度标识γi与设备自身的维度标识比对。经过比对,物联网设备筛选出符合自身维度的查询,并将相关联的向量一同从查询陷门中提取出来并组成queryVector 进行下一步计算。具体流程如算法1 所示。算法1 的时间复杂度为O(n)与用户发来查询陷门内向量个数n有关。
获取queryVector 后,物联网设备首先从其中提取出本次查询的偏移量βk对自身的传感数据v*k进行数据偏移,得到偏移后的值v′k,并使用ElementShift 函数得到其在矩阵中的位置(i,j)。此时,物联网设备根据(i,j)从queryVector 提取对应的向量进行计算。具体流程如算法2 所示。每个物联网设备只需执行一次算法2,时间复杂度为O(1)。
通过执行算法1、算法2,可以将物联网设备的传感数据v*k转换为查询矩阵对应位置的值在GT群的映射ck,至此完成一次查询。此外,还可以通过sk在查询匹配的情况下返回物联网设备的实际传感数据。完成计算后,将ωk发送给物联网设备所属域的雾设备FDi。
4) 雾设备端的处理
雾设备FDi接收到其下属的k个物联网设备发来的ωk后,从中提取物联网设备对本次n维度查询的结果ck并进行计算。雾设备将所有维度数据ck相乘,根据BGN 算法的同态性,得到的结果即k个维度上反馈的所有结果之和,FDi本次查询的匹配程度σi即为此和值与用户发来的经加密的查询维度信息ET(n)的差值。FDi将σi和所有ωk的值构建成ζi发送给用户。具体流程如算法3 所示。算法3 的时间复杂度O(n)与雾设备FDi所属物联网设备个数k有关。
5) 用户解析数据
用户收到FDi发来的数据ζi后,首先提取查询匹配程度值σi并解密。当且仅当σi=0 时,雾设备FDi返回的结果完全与查询匹配。用户对雾设备返回的完全匹配的数据分维度进行累乘,并计算完全匹配的设备个数。具体流程如算法4 所示。算法4的时间复杂度与雾设备FDi的个数n有关,为O(n)。
此时,VD 即为返回的有效数据的个数,将Sγ解密后即可得到维度γ下符合查询条件数据之和。经过处理后,不匹配的ζi被全部置0,剩余的元素来自返回了有效数据的雾设备,即可定位返回了有效数据的具体雾设备。
本节对本文方案的安全性进行分析,包括前向安全性、后向安全性、隐私保护性、不可链接性等关键安全特性,并且介绍了近年来一些针对加密范围查询方案设计的攻击模式,分析了本文方案在面对这些攻击模式时的安全性。
1) 前向安全及后向安全
假定敌手A获得了某次查询中所使用的私钥sk=p,其仅能对当次查询的密文进行解密。由于在每次进行查询时,用户均会使用新生成的公钥和私钥进行查询,敌手A使用私钥sk=p仅可得知用户生成密钥所用的安全参数K,无法由此计算出用户此前所生成密钥的任何信息,从而无法解密除当次查询数据外此前任何一次查询的数据。由此,本文方案满足前向安全及后向安全。
2) 查询模式隐私保护
假定敌手A拦截了用户U在某次查询中使用的陷门,由于其在公开信息中仅能获得公钥pk=(N,G,GT,e,g,h)和对当次查询的维度总量的加密信息ET(n),因此其无法解密出查询陷门的具体内容,也无法获知当次查询的查询维度总量。进一步地,由于BGN 算法具有语义安全性,攻击者无法区分陷门中加密向量的内容,也无法通过多次拦截陷门分析出用户的查询规律。
除敌手A外,物联网设备Dk和雾设备FDi也无法获知查询陷门的具体信息。由于本文方案与传统的查询方案不同,使用了同态加密计算来取代传统的比对过程,Dk根据查询偏移量β来确定自身原始传感数据v*k并提取查询陷门内对应的加密向量进行计算。在这个过程中,Dk并不能获取查询区间[Bk,Tk]的具体值。而FDi在方案中仅对运行于其所在物联网域内的物联网设备发来的反馈ωk进行聚合,也无法获知各维度上具体的查询区间。因此,本文方案的查询陷门不会泄露任何有用的信息,如查询模式、查询区间等,查询陷门的隐私得到了保护。
3) 传感数据机密性
假定敌手A拦截了物联网设备Dk在某次查询中发送到雾设备FDi的消息ωk,由于其在公开信息中不能获取除公钥和当次查询维度总量以外的信息,其无法解密出ωk的具体内容,无法获知Dk是否满足本次查询或得到Dk的原始传感数据v*k。由于物联网设备向雾设备发送信息时使用了不同的随机数,敌手A无法通过多次拦截ωk来分析出任何有用的信息。
假定敌手A拦截了雾设备FDi发往用户的消息ζi,由于其无法获得私钥sk=p,其无法对ζi进行解密,无法获知满足查询条件的物联网设备及其传感数据v*k。与前述相同,随机数的引入使敌手无法通过多次拦截ζi来分析获知查询规律等有用的信息。
除敌手A外,雾设备FDi也无法获知物联网设备Dk的原始传感数据v*k是否满足查询。FDi收到Dk的反馈ωk后,由于其仅能掌握公钥pk,其无法解密ωk的具体内容,无法获知Dk是否满足本次查询或得到Dk的原始传感数据v*k。因此,除查询用户和物联网设备外的任何一方均无法获知物联网设备的传感数据v*k,传感数据的机密性得到保证。
4) 不可链接性
本文方案中,由于随机数的使用,所有由用户U生成的查询陷门具有随机性,即使由同一个用户发送的2 个或多个查询陷门,外部攻击者无法确定这些查询是否来自同一个用户,也就意味着攻击者无法将两次不同的查询关联到某一个特定用户。因此,本文方案提供了不可链接性,攻击者无法通过拦截查询陷门的方式来关联查询者身份。
5) 查询陷门完整性
为了防止数据传输过程中可能出现的数据完整性损坏,本文方案中,用户U生成查询陷门时,将成对的查询向量进行连接并计算消息指纹,生成的哈希值被发送给各物联网设备Dk。Dk在提取某一组加密向量内容前,首先利用哈希值对消息进行校验,若校验未通过,该组向量被视作已损坏向量并丢弃。通过这种方式,查询陷门的数据完整性得到了保证。
6) 密钥更新
本文方案中,对物联网设备传感数据所进行的查询过程本质上是一个基于BGN 的同态加密计算过程,其过程中不涉及解密操作,物联网设备和雾设备仅需获知系统公钥pk,而私钥sk 仅由查询用户掌握。因此,密钥管理和更新涉及实体较少,密钥管理成本较低。
7) 对其他攻击方式的防护
除上述常见的安全攻击类型外,近年来,出现了多种针对加密范围查询的攻击方式。其中,Islam 等[10]使用访问模式泄露的方式对加密数据查询进行攻击。Naveed 等[11]对属性加密方案中的 DTE(deterministic encryption)和OPE(oder preserving encryption)加密方式实施攻击,并使用加密信息和公开的辅助数据完成明文恢复。Kellaris 等[12]定义了2 种基本的泄露来源,如访问模式泄露和通信容量泄露,并开发了一种通用的、适用于任何支持范围查询且其访问模式或通信容量存在泄露的系统的重放攻击方式。Lacharité 等[13]使用范围查询中泄露的包括查询模式、排序信息在内的数据,提出了一种改进的对加密数据的重放攻击。
与文献[10-13]讨论的数据库查询场景有所不同,本文方案主要考虑雾增强工业物联网中进行具有隐私保护特性的范围查询,是一种聚合式的隐私保护查询。本文方案可以保护范围查询中的上下界与符合查询条件的设备子集的隐私,不会泄露查询模式及关键词频度等相关信息。此外,对于任何一次范围查询,本文方案返回的查询结果的数据体积均相同,不会有流量信息被泄露。因此,本文方案可以抵抗上述几种较为典型的对安全范围查询的攻击。
本节将本文方案与现有同类方案的性能进行分析比较,主要包括查询陷门生成阶段、服务器查询阶段的计算开销和通信开销的比较。所有仿真实验均在一台配置为Intel i7-9750H 2.60 GHz,内存为16 GB,运行Windows 10 1903 系统的笔记本电脑上进行,使用Java.Math 的大数计算库和JPBC 库[14]进行实现算法。此外,对加法运算、哈希运算等时间消耗较低的运算,在比较中忽略不计。
1) 各阶段计算开销
方便起见,定义Tm、To、Tp和Tem分别表示单次整数乘法、整数模幂、双线性映射和椭圆曲线上点乘的时间开销。设l为每个维度上查询区间的长度,k为维度总数,q为单个查询区间的上界。对于只支持单个维度查询的方案,如文献[7]方案,将一次多维度查询视作进行多次单维度查询来处理。各阶段计算开销对比如表2 所示。
表2 各阶段计算开销对比
本文方案和文献[7]方案均是由物联网设备直接在网络边缘侧参与查询,故传感数据不需要加密存储于服务器上,其加密阶段不产生计算开销。
2) 全维度查询计算开销
本节考虑在维度总数一定的情况下,每次查询均对所有维度的数据进行查询时的计算开销。设维度总数k=10,查询区间长度l=36,查询区间上界q=50,则使用文献[7]方案、文献[15]方案、文献[16]方案、文献[17]方案和本文方案完成一次全维度查询分别约需22.641 ms、15.864 ms、20.191 ms、21.638 ms 和20.360 ms。
图5 显示了本文方案和对比方案进行指定维度的全维度查询计算开销的比较结果。其中,本文方案与文献[7]方案在查询过程中引入了双线性映射运算,计算开销相较于使用整数加密运算的文献[15]方案和文献[16]方案更高,但是文献[15]方案、文献[16]方案和文献[17]方案需预先将传感数据加密发送到第三方数据存储服务器,该过程必然存在时延,且产生加密开销。本文方案与文献[7]方案则不需要加密和发送传感数据,支持用户对传感数据进行实时查询。文献[7]方案由于仅支持单维度查询,在进行多维度查询时,其整体计算开销高于本文方案。
图5 全维度查询计算开销比较
3) 部分维度查询计算开销
部分维度数量查询是指在维度总数一定的情况下,每次查询均仅对部分维度的传感数据进行查询。设维度总数k=10,查询区间长度l=36,查询区间上界q=50,分别进行维度为5、7、9 的部分维度查询。图6展示了本文方案与对比方案在进行部分维度查询时的计算开销对比结果。需要说明的是,考虑到即使进行部分维度查询,数据存储服务器存储的数据数量也应与进行全维度查询时一致,因此对于需要对传感数据加密存储的方案,其加密开销仍等价于全维度查询的计算开销。虽然本文方案与文献[7]方案、文献[17]方案都因使用双线性映射运算导致查询阶段开销较高,但由于本文方案与文献[7]方案是对传感数据进行实时查询,不需要对传感数据进行预先加密和存储,所以在给定维度总数的条件下进行较少维度查询时(维度为5、7 查询),总体计算开销仍比需要加密存储传感数据类方案低。而文献[7]方案由于仅支持单维度查询,在进行多维度查询时需要重复发送查询陷门,其整体计算开销也高于本文方案。
图6 不同维度数量查询计算开销比较
4) 不同区间长度查询计算开销
不同区间长度的查询是指在维度总数、查询区间长度上限、查询区间上界一定的情况下,每次查询仅对有限区间长度进行查询。设维度总数k=10,查询区间长度上限l=100,查询区间上界q=100,分别进行25%、50%、75%长度区间查询时,将本文方案与对比方案在完成一次查询时的计算开销进行比较,结果如图7 所示。
图7 不同区间长度查询的计算开销比较
根据本文部分维度数量查询计算开销中分析可知,对于需要对原始传感数据加密存储类方案,其加密开销与全维度查询时计算开销相同。除本文方案和文献[7]方案外,其他3 个查询方案的计算开销均与查询区间长度无关,而与查询维度总数有关。但是,由于文献[15]方案、文献[16]方案和文献[17]方案需要预先对原始传感数据进行加密存储,使其在查询区间长度较大、维度总数较高时,总体计算开销较高。文献[7]方案由于不支持多维度查询,在进行多维度查询时重复发送单维度查询陷门,其所使用的向量个数比本文方案多,计算开销较高。
本节对本文方案和对比方案的通信开销进行比较。设定维度总数k=10,查询区间长度l=36,查询区间上界q=50 的全维度查询,对不同方案全流程的通信开销进行比较。为了公平比较各方案的通信开销,做以下假设。
1) 各方案安全参数(或密钥长度)均为128 bit。
2) 各方案所用哈希算法均为SHA-1,因此,各方案的哈希摘要长度均为160 bit。
3) 各方案所用随机数均为64 bit。
本文方案的通信过程主要在于查询陷门发送阶段、物联网设备反馈雾设备阶段和雾设备反馈查询用户阶段。由于本文方案是将查询矩阵向量化进行查询,查询陷门通信开销较大,其余阶段开销较小。查询陷门发送阶段生成的查询陷门通信开销约为31 016 B,物联网设备反馈雾设备阶段通信开销约为1 365 B,雾设备反馈查询用户部分通信开销约为1 370 B,共计约33 751 B。表3 给出了本文方案和对比方案的通信开销。
表3 通信开销比较
文献[15]方案使用了改进自SHE 加密方案的整数域上的同态加密算法,其在相同条件下密文长度较小,但其算法易受密文中噪声影响,当密文中噪声较大时可能影响解密。文献[16]方案较本文方案通信开销略低,但其与文献[15]方案均是对传感数据加密并传输到服务器的数据进行查询,且其方案需要2 个服务器参与计算,传输时延较大,不能实现传感数据的实时查询。文献[17]方案查询陷门体积较小,使其通信开销较本文方案和文献[7]方案低,但其计算开销较高,且不支持传感数据的实时查询。支持实时数据查询的文献[7]方案由于只支持单维度查询,对个多维度传感数据查询时需要发起多次查询,其通信开销高于本文方案。
综上所述,本文方案在计算开销、通信开销以及多维度查询特性支持上实现了较好的平衡。
本文面向雾增强工业物联网设计了一种拥有较高通信效率的带有隐私保护特性的多维度安全查询方案。本文方案使用BGN 同态加密算法对查询陷门进行加密,并融合了矩阵分解和重构技术,保护了查询模式的隐私,同时确保传感数据不会泄露给非授权方。安全性分析和仿真实验表明,本文方案在保证多种安全特性和多维查询功能的情况下,计算开销及通信开销均维持在较低水平。下一步的工作将进一步优化本文方案,例如进一步提高通信的效率、降低通信开销等。