本发明涉及一种雾协助工业物联网的隐私保护方法,属于计算机网络安全领域。
背景技术:
随着物联网(internetofthing,iot)在工业领域日益普及,工业物联网(industrialinternetofthing,iiot)作为物联网在工业中的重要应用,受到越来越多研究者的关注。iiot致力于互联工业场景中的任何设备,例如嵌入式传感器,机器设备和执行器等,它们可以在工业环境中采样,处理和应用实时数据以促进传统工业向智能工业的转型。由于设备和传感器资源受限,传统的iiot架构引入云计算技术,将所有收集的数据都被发送到云进行处理和存储,以降低本地设备的计算和存储成本。然而,随着iiot设备的快速部署,越来越多的数据被频繁地发送到远程的云端,这不仅导致了巨大的通信成本,而且给云端带来了巨大处理和存储压力。因此,仅依靠云进行数据处理对延迟敏感的iiot系统来说是不切实际的。在这种情况下,雾计算作为云计算的延伸被引入iiot,提高在网络边缘的本地数据处理和存储能力,有效降低时延和通信成本。例如,用户终端可以直接将其计算和存储任务迁移到位于网络边缘的雾节点,减轻云端的处理压力,实现低延迟。
数据聚合被认为是一种减少通信开销的有效方法,例如,雾节点可以对接收的数据实施数据聚合操作,然后将单个聚合结果传递给云,这可以显着减少数量数据传输。虽然数据聚合可以获得很大的性能提升,但是在不受信任的第三方执行的聚合操作通常会面临隐私和安全(机密性和完整性)威胁。例如,系统内部好奇的实体(例如,雾节点和云)可以从所接收数据中获知包含隐私内容的个体数据。
为了解决上述问题,近年来已经开发了一些基于雾计算的隐私保护数据聚合方案。然而现有的隐私保护方案仅用于支持全局聚合结果的计算,其不能提供细粒度数据服务。例如,云不能获知可能对一些应用程序有用的某个特定子区域的聚合结果。
技术实现要素:
本发明是提供一种雾协助工业物联网的隐私保护方法,可对物联网内数据传输进行隐私保护,并且可同时提供粗粒度服务和细粒度服务。
为达到上述目的,本发明所采用的技术方案是:一种雾协助工业物联网的隐私保护方法,包括以下步骤:雾协助工业物联网系统初始化;对感知层设备获取的数据进行加密,将获得的感知层密文cij,τ传输至该感知层设备所属子区域对应的雾节点;所述雾节点接收到所述感知层密文cij,τ后,对感知层密文cij,τ进行聚合,得到子区域聚合密文ci,τ及并将所述子区域聚合密文ci,τ传输至工业云;工业云接收到子区域聚合密文ci,τ后,对子区域聚合密文ci,τ进行二次聚合得到全局聚合密文cτ并解密;根据解密后的全局聚合密文,获得每个子区域的统计和di,τ,每个子区域相应的均值ei,τ,k个子区域的全局统计和dτ和k个子区域相应均值eτ。
进一步地,所述感知层密文cij,τ由公式(1)计算得到:
其中,n为同态加密的公钥,m’ij,τ=mij,τ·ai,mij,τ为在时刻tτ感知设备iidij收集的原始感知数据,ai为子区域ai的系数,sij为感知设备iidij的私密密钥,h(tτ)为以tτ作为哈希函数h输入值计算得到的哈希值,
进一步地,所述方法还包括在获得的感知层密文cij,τ时,对感知层密文cij,τ当前的哈希链值hij,τ进行计算,并将所述哈希链值hij,τ传送至雾节点,所述哈希链值hij,τ用于雾节点对感知层密文cij,τ的完整性验证。
进一步地,所述雾节点对感知层密文cij,τ的完整性验证包括以下步骤:雾节点基于感知层密文cij,τ计算用于验证的哈希链值h’ij,τ;检验等式h’ij,τ=hij,τ是否成立,若成立,则感知层密文cij,τ完整。
进一步地,所述方法还包括在获得子区域聚合密文ci,τ时,对子区域聚合密文ci,τ对应验证码hi,τ的计算,并将所述验证码hi,τ传送至工业云,所述验证码hi,τ用于工业云对子区域聚合密文ci,τ的完整性验证。
进一步地,所述子区域聚合密文ci,τ由公式(2)计算得到:
其中,m’ij,τ=mij,τ·ai,mij,τ为在时刻tτ收集的原始感知数据,ai为子区域ai的系数,n为雾节点fogi管辖的子区域ai所容纳的感知设备数量,h(tτ)以tτ作为哈希函数h输入值计算得到的哈希值,
进一步地,所述全局聚合密文cτ由公式(3)计算得到:
其中,
进一步地,所述对子区域聚合密文ci,τ进行解密包括以下步骤:使用工业云密钥s0将全局聚合密文cτ简化并解密获得一个伪全局聚合值w,所述伪全局聚合值w由公式(7)计算得到:
其中,ai为子区域ai的系数,mij,τ为在时刻tτ感知设备iidij收集的原始感知数据,1≤i≤k,1≤j≤n,k为感知层子区域数量,n为雾节点fogi管辖的子区域ai所容纳的感知设备数量。
进一步地,所述每个子区域的统计和di,τ,每个子区域相应的均值ei,τ,k个子区域的全局统计和dτ和k个子区域相应均值eτ由公式(8)计算得到:
其中,w为伪全局聚合值,
进一步地,所述方法还包括对不完整的聚合密文进行容错处理。
本发明通过在雾节点进行数据聚合,显著减少了数据传输量;通过采用同态加密为数据隐私和机密性提供有效保护,同时对数据采用哈希链机制保证了数据的完整性。本发明采用分层聚合使得云可以通过获得各子区域和整个区域的聚合结果以提供粗细粒度数据服务,同时由于进行了容错处理,当感知设备或传输通道存在故障时,云端仍然可以解密不完整的聚合密文并获得正确的聚合结果,提高了系统的安全性能,更适用于实际应用场景。
附图说明
图1为本发明实施例提供的一种雾协助工业物联网的隐私保护方法的流程示意图;
图2为本发明与seda聚合方案和lpda-ec聚合方法计算开销方面的比较;
图3为本发明与seda聚合方案和lpda-ec聚合方法在数据传输量上的比较。
具体实施方式
为了更好的理解本发明的实质,下面结合具体实施例和附图对本发明作进一步的阐述。
本发明系统模型分为三层:感知层、雾层和云层,主要包括五个实体:感知设备iidij、雾节点、工业云(ic)、可信的管理权威机构(trustedmanagementauthority,tma)和用户。感知层根据地理位置划分为多个子区域,每个子区域都包含具有感知、处理和通信功能的工业物联网感知设备iidij,负责实时收集数据,并通过雾节点定期将其加密数据转发到工业云。本发明具体步骤如图1所示:
步骤1,雾协助工业物联网系统初始化:
1)计算每个子区域的系数ai。雾协助工业物联网系统初始化安全参数(μ=512bits,l=50bits),然后受信任的管理权威机构随机选择两个大的素数q1和q2,|q1|=|q2|=μ。同时,计算同态加密的公钥n和私钥g(n=q1q2,g=1+n),|n|=1024bits,|n2|=2048bits。假设感知层存在k个子区域以及每个子区域ai中有n(n=200,400,600,800,1000)个传感设备,tma选择k个互质正整数p1,p2,…,pk,|pi|=l,1≤i≤k,l为系统安全参数,计算每个子区域ai的系数ai,计算过程如下:
2)计算感知设备iidij的私密密钥sij。tma使用伪随机数生成器产生k*n个不相关随机数{s11,…,s1n,…,sk1,…,skn},分别分配给相应的感知设备作为私密密钥。
3)计算ic的私密密钥s0并发送给ic:
其中,
4)再生成一组伪随机数{i11,…,i1n,…,ik1,…,ikn}以构建一组哈希链头{h00,…h0n,…,hk0,…hkn},每个哈希链头附上tma的签名σ后发送给相应的iiot感知设备和雾节点。
tma选择一个循环群g,|g|=160bits和两个安全加密哈希函数h和h,其中
5)计算雾节点fogi和ic之间的共享密钥ki。tma选择一个160bits的随机数ki作为雾节点fogi和ic之间的共享密钥。
步骤2,对感知层设备获取的数据进行加密,获得感知层密文cij,τ。对感知层密文cij,τ当前的哈希链值hij,τ进行计算,并将感知层密文cij,τ和哈希链值hij,τ传输至该感知层设备所属子区域对应的雾节点。
感知设备持续收集实时感知数据,并通过雾节点定期将采集的数据发送到ic。假设感知层中存在k个子区域ai,满足条件
1)在时刻tτ,iidij先以tτ作为哈希函数h输入值计算得到哈希值
其中,m’ij,τ=mij,τ·ai。
2)计算感知层密文cij,τ的当前哈希链值hij,τ:
其中,h(cij,τ)为以cij,τ作为哈希函数h的输入值计算出的哈希值,hij,τ-1为前一时刻tτ-1的哈希链值。
3)形成感知层报告(cij,τ,hij,τ),并将感知层报告(cij,τ,hij,τ)发送给上层所属雾节点fogi。
步骤3,雾节点fogi接收到感知层密文cij,τ后,验证感知层密文cij,τ的完整性,将完整的感知层密文cij,τ进行聚合,得到子区域聚合密文ci,τ。对子区域聚合密文ci,τ对应验证码hi,τ进行计算,并将子区域聚合密文ci,τ和验证码hi,τ传输至工业云。
1)当雾节点fogi在时隙tτ接收到其所管辖子区域ai内所有感知设备发送的感知报告(cij,τ,hij,τ)时,首先通过检验报告中哈希链值hij,τ的正确性依次验证所有接收数据的完整性,具体过程为:fogi基于感知层密文cij,τ计算用于验证的哈希链值
2)当获得n个已验证的感知层密文cij,τ,1≤j≤n,时,fogi利用同态加密密文的加性同态性,在不解密的情况下,对所管辖子区域ai的n个已验证的感知层密文cij,τ进行聚合,得到子区域聚合密文ci,τ:
其中,
3)为了保证子区域ai的子区域聚合密文ci,τ的完整性,fogi通过与工业云之间的共享秘钥ki计算验证码hi,τ=h(ci,τ||ki),为ic提供验证证据,形成雾节点报告(ci,τ,hi,τ),并由雾节点fogi传送至ic。其中,h(ci,τ||ki)为以ci,τ和ki的串联结果作为哈希函数h输入值计算得到的哈希值。
步骤4,工业云接收到子区域聚合密文ci,τ后,依次验证所有子区域子区域聚合密文ci,τ的完整性,对通过验证的子区域聚合密文ci,τ进行聚合并解密。
1)工业云接收到k个雾节点的雾节点报告(ci,τ,hi,τ),1≤i≤k,后,依次验证所有子区域聚合密文ci,τ的完整性,具体过程为:工业云依据前一个哈希链值hi,τ-1计算
2)将所有子区域的密文聚合形成一个全局聚合密文cτ。
其中,
3)使用工业云的私密密钥s0消除cτ表达式中包含h(tτ)的项,经过化简后获得一个值b:
4)依据值b,工业云可以解密获得一个伪全局聚合值w:
5)基于已知的系统参数pi,工业云可以获得每个子区域的统计和di,τ,每个子区域相应的均值ei,τ,k个子区域的全局统计和dτ和k个子区域相应均值eτ:
步骤5,容错。
子区域中的某些设备在某个时间出现故障,雾节点无法接收到其报告,致使雾节点和云接收到不完整的聚合结果。由于云仅具有一个密钥s0,获取不完整聚合密文将导致上述的解密过程无法成功执行,云将无法正确解密出聚合密文。
令
其中,
然后将h'(tτ)回复给fogi。接收到h'(tτ)之后,fogi通过以下计算将其与c’τ组合获取可解密的密文c”τ:
其中,
然后,通过上述同样的解密过程,云端仍然可以解密不完整的聚合密文并获得聚合统计值。
针对当前工业物联网数据聚合研究方案在实现安全高效的数据收集和应用过程中需要牺牲大量的计算和带宽资源,本发明通过采用同态paillier加密和轻量级的哈希链机制,可为数据隐私,机密性和完整性提供有效保护。特别是,单个设备的数据隐私在半可信任的雾节点和云也得到了保护。同时,通过在雾节点执行本地数据聚合,显著减少了数据传输量。此外,分层聚合使得云端可以通过获得子区域和整个区域的聚合结果来提供细、粗粒度数据服务。此外,在云端的解密过程中支持容错,即使一些感知设备或信道链路发生故障,云端仍然可以解密不完整的聚合密文并获得正确的聚合结果。有本方法与现存方法的比较分析结果表明本方法具有更少的计算和通信成本,如图2和图3所示。
图2为本发明与其他两种聚合方案:seda和lpda-ec在计算开销方面的比较。本发明相较于其他两种方法显著减少了计算时间,尤其随着越来越多的感知设备加入,本发明计算开销低的优势更加突出。
另外,图3为本发明与seda和lpda-ec两种聚合方法在数据传输量上的比较,本发明实现了最少的数据传输量,有效减少了工业物联网中的通信开销和带宽消耗。
应当指出,虽然通过上述实施方式对本发明进行了描述,然而本发明还可有其它多种实施方式。在不脱离本发明精神和范围的前提下,熟悉本领域的技术人员显然可以对本发明做出各种相应的改变和变形,但这些改变和变形都应当属于本发明所附权利要求及其等效物所保护的范围内。