物联网中云端数据完整性检测方案的研究

作者: 茅磊

物联网中云端数据完整性检测方案的研究0

摘要:随着5G通信技术和电子技术的不断发展,物联网设备已被广泛应用于商业、医疗、交通、工业等各项领域。然而物联网设备由于自身存储空间有限、计算能力弱,导致其终端采集的数据需要上传到云端才能进行复杂的数据处理。数据在上传云端时,保证其完整性是一个重要研究内容。该文在我国商用基于标识的密码算法标准——SM9的基础上,设计了一种适用于检测物联网中云端海量数据的完整性的同态签名方案。文章首先详细介绍了基于标识同态签名的形式化定义、安全模型、具体方案,然后分析了其安全性,最后通过JPBC密码学库对上述方案的性能进行了仿真实验。实验结果表明,该同态签名方案可以提升验证物联网系统云端数据完整性的速率。

关键词:同态签名;SM9签名算法;物联网技术;信息安全;密码学

中图分类号:TP393        文献标识码:A

文章编号:1009-3044(2023)31-0088-03

开放科学(资源服务)标识码(OSID)

物联网技术的快速发展给人们的日常生活带来了极大的便利。物联网主要是通过各种无线传感设备、射频识别设备以及定位系统等相关技术采集获取现实世界中的各种数据,并使用各种智能分析方法对信息进行加工处理,从而达到对客观世界的感知,进一步实现智能控制与决策。无论是在军事、工业、农业、交通、医疗卫生、智慧城市以及智能家居等各种领域都能看到物联网的应用,例如在智能家居系统中,物联网技术可以将安防、智能家庭/建筑、信息家电、室内灯光控制、地板采暖、居家健康保健、卫生防疫等有机结合在一起,通过网络化综合智能控制和管理,实现更舒适方便、更安全环保的全新家居生活体验[1]。

物联网的终端一般是各种无线传感设备,它们负责收集、采集四周的环境数据,但由于物联网终端设备往往存在存储容量小、计算能力弱等特点,所以物联网终端收集的数据一般存放于第三方云端,并由云服务商提供数据的处理和共享服务。云作为一种拥有巨大计算能力和存储容量的先进技术,可以对物联网设备采集到的海量数据进行存储和分析,使得物联网设备变得越来越智能化。然而,尽管物联网设备数据存储在云端的方式有很多吸引人的优点,但是也出现了许多令人担忧的数据安全问题。数据放在云端使得用户失去了对其物理占有和控制,数据的拥有者会担心存放在云端数据有可能被云服务商有意无意地删除和篡改。不诚实的云服务商可能会因为经济原因删除一些长期没有访问的数据,但对外仍声称数据被很好地保存,有时还会对数据丢失的事件避而不谈,以免对其自身的经济和信用造成损失。因此,越来越多的学者对存放在云端数据的完整性保护展开了研究。赛伟等人[2]针对云数据的完整性展开研究,分析了在物联网设备数据云存储中的安全挑战,提出了云存储数据完整性的验证框架和设计目标。董一潇等人[3]提出了基于国密SM9算法的物联网安全解决方案,文中分析了SM9算法的优势,并详细论述了SM9在物联网的应用层、网络层和感知层的部署架构。郭良等人[4]以无线射频识别(RFID) 和无线传感器网络(WSN) 为主线,分析了物联网自动远程交互技术的深渗透性,对其主要存在的安全问题给出了解决途径,并对下一代物联网可能的安全问题进行了讨论。高昊昱等人[5]把区块链技术引入数据完整性保护领域,将现有数据完整性保护技术分类并与区块链数据完整性保护技术进行比较,分析传统数据完整性保护技术的不足与区块链数据完整性保护技术的优势,在此基础上总结传统数据完整性保护技术的不足之处,并给出解决思路。钱萍[6]提出了基于同态椭圆曲线加密(ECC) 算法的物联网数据隐私保护方法和基于同态 Hash 函数的隐私保护方法,实现了物联网安全认证和数据验证隐私保护,并深入分析了基于安全路由协议的物联网隐私保护方法和安全网络编码的物联网隐私保护方法。

1 相关工作

1.1 SM9基于标识密码算法介绍

商密SM9密码算法是我国自主研发的一种基于标识的商用密码算法,现执行标准为《GB/T 38635.1-2020信息安全技术SM9标识密码算法第1部分:总则》和《GB/T 38635.2-2020 信息安全技术SM9标识密码算法第2部分:算法》,包括SM9密钥封装协议、数字签名算法、密钥交换算法和公钥加解密算法[7]。与传统的公钥密码算法不同,SM9基于标识的密码算法在使用部署时,直接采用用户的标识信息(例如邮箱地址、公民的身份证号、电话号码等)作为公钥,使用过程中无须预先协商交换证书,减少了传统公钥密码系统中颁发公钥证书、维护公钥证书、密钥库管理等环节,从而极大地降低了传统公钥密码体系统中公钥证书存储校验和计算等方面的开销,为公钥密码学开辟了新的研究方向。

商密SM9密码算法在设计上采用了有限域、椭圆曲线上双线性映射运算的相关技术,安全性能上有极高的保障,SM9算法的加密强度相当于RSA 3072位的安全强度,现有计算能力在有限的时间内很难实施有效的攻击[8],因此使用基于SM9算法保护用户数据将无须担心被窃听和篡改。2017年,SM9数字签名算法被确定为ISO/IEC国际标准。王明东等人[9]对SM9算法BN曲线R-ate双线性对中的模幂运算优化设计,大幅度降低了R-ate双线性对计算复杂度、提高算法的执行效率,并通过实验证明与传统实现方式相比,使用他们的方法SM9的性能提升了近3倍。方婷等人[10]在跨区域医疗背景下设计了协同双向SM9身份验证方案,该方案是DH算法和国密SM9算法的相结合,使用DH算法协商出的共同密钥作为验证因子,并结合数字签名实现双向验证。基于SM9密码算法的应用目前已有很多研究成果,SM9算法中数字签名实现过程如图1所示。

1.2 基于SM9同态签名在物联网中数据完整性检测的应用

密码学中的数字签名技术可以为互联网、云存储中的数据提供真实性、完整性和不可否认性的有力保障。同态签名是一种特殊的数字签名,假设签名的消息空间[M]中运算为#、签名空间[Θ]中的运算为[*],对于来自[M]和[Θ]上的消息签名对[m1,λ1]和[m2,λ2](其中[λ1=fm1],[λ2=fm2]) ,若签名算法f是代数系统[M,#]到[Θ,*]上同态映射,则有[fm1#m2]=[fm1*fm2]=[ λ1*λ2]成立。同态签名特有的上述性质在物联网的无线传感网络和云端数据完整性验证中有着重要的实用价值。

在物联网系统中的无线传感器每时每刻都在收集应用场景中的相关数据,通过网络上传至云平台中进行分析处理。如果这些收集到的数据在互联网中传输时或者在云端存储时,受到破坏,那么错误的数据就会直接影响物联网系统的正常工作。若采用普通的数字签名来保证采集数据的完整性,对于每一时刻收集的数据都要对其进行计算签名,然后将数据和对应的签名通过网络传送至云平台进行处理。这种方式不但会增加网络中传输的代价,而且当需要检验存储在云端数据的完整性时,还要逐一下载验证每一个数据块对应的签名,这样的验签方式对于海量数据而言并不实用。使用同态签名则可以减少上述动态增长数据签名的数量,降低签名验证时的代价。在物联网系统中可以将一个终端设备在一段时间内收集的数据看成一个数据集,该数据集中的签名在产生后使用上述同态组合算法进行运算得到一个同态签名,最后只需将该数据集中的数据打包和生成的同态签名一起通过网络传至云平台保存。云端在验证用户数据完整性时,只需验证该同态签名是否合法,即可判定云端的对应数据的完整性。

综上,由于商密SM9算法具有高度的安全保障,因此本文将研究适应于物联网系统的SM9同态签名算法,有效地提升物联网系统无线传感网中检验数据完整性时验签的效率。

2 基于SM9的同态签名方案

2.1 基于SM9同态签名算法描述

1) 系统建立算法

KGC输入系统安全参数[1k]和正整数N后,输出系统的公开参数params[=(G1,GT,N,e,g,Ppub,H0,H1,H2,φ)],其中,[G1,G2,GT]是N阶的循环群,[P1]是[G1]的生成元,[P2]是[G2]的生成元;双线性映射[e:G1×G2→GT]。[φ]是[G2]到[G1]上的同态映射[φP2=P1];计算[GT]中的元素[g=eP1,Ppub-s];系统主私钥[s∈Z*N],[ Ppub-s=ks∙P2];密码学Hash函数分别为:[H0]:[0,1*→Z*N],[H1]:[0,1*→Z*N],[ H2:{0,1}*→G1]。

2) 用户私钥提取算法

系统输入公开参数params,用户标识[ID∈{0,1}*]和主私钥[s],计算[h*=H0(ID)],再计算用户的签名私钥[dsID=ks(h*+ks)-1∙P1],最后通过秘密信道将[dsID]发送给用户。

3) 签名算法

系统输入公开参数params,用户标识ID,用户私钥[dsID],数据集标识信息[M]和消息向量[m=m1,m2,...,mn∈ZnN],签名用户选择两个随机数[α,r∈Z*N]。如下计算消息的签名[ϑ]:

①计算 [w=eP1,Ppub-sr]和[Q=α∙P2]

②计算 [h=H1(M∥w)]

③计算 [l=r-h mod N]

④计算 [ε=l∙dsID]

⑤设置数据集标签 [τ=(h,w,ε,Q)]

⑥计算 [Ti=H2ID∥τ∥i]

⑦计算 [σ=α∙i=1nmi∙Ti]

⑧输出的签名为:[ϑ]=([τ,σ])

4) 同态组合算法

输入用户标识ID和[k]个元组[βi,mi,σiki=1],输出导出的向量签名对:[y=i=1kβi∙mi],[σ=i=1kβi∙σi]。

5) 验证算法

系统输入公开参数params,用户标识ID,数据集标识信息[M],消息向量[y=(y1,y2,...,yn)∈ZnN]和由数据集标签[τ=(h,w,ε,Q)]所标识数据集中的消息向量[y=(y1,y2,...,yn)∈ZnN]对应的签名[ϑ]=([τ,σ])。系统输出签名验证是否合法的结果,如果合法则输出1,否则输出0。

验证的过程为:

①计算[h*=H0(ID)]

②[P=h*P2+Ppub]

③[w'=eε,PeP1,Ppubh]

④[h'=H1(M∥w')]

验证是否有[h'=h]成立,若成立则进入下一步,否则输出0。

接下来验证下面的等式是否成立,其中[Ti=H2ID∥τ∥i]:

[eσ,P2=ei=1nyi∙Ti,Q]

如果上式成立则该算法输出1,否则输出0。

2.2 基于SM9同态签名的安全性分析

赖建昌等人[11]在文献中基于q-SDH困难问题假设,已证明标准的商密SM9数字签名算法在随机预言模型下满足适应性选择消息、标识攻击下的存在性不可伪造 (existentially unforgeable against adaptive chosen message and identity attacks, EUF-CMIA)的安全性。基于标识的SM9同态签名方案在安全性能上应能达到适应性选择数据集、适应性选择标识下的存在性不可伪造(existentially unforgeable against adaptive chosen dataset and identity attacks, EUF-CDIA)。因为本文设计的基于SM9同态签名的数据集标签[τ]是由标准的SM9签名算法产生的,所以本方案中的数据集标签不可伪造,本文提出的同态签名方案满足同态签名方案EUF-CDIA的安全性。

3 基于SM9同态签名方案性能实验

本节针对上述设计的基于SM9同态签名方案使用Java语言编程进行了仿真实验。在仿真实验中使用斯坦福大学开发的JPBC库(The Java Pairing-Based Cryptography Library)。测试环境的硬件配置为CPU(Intel Core i7 @2.2GHz),内存16GB,操作系统Windows 10 (x64) 教育版。仿真实验选取的比较对象为标准的SM9签名方案。仿真实验中选取的每个数据块大小为5MB,分别使用标准的SM9签名方案和本文设计的SM9同态签名方案依次对10个、20个、……、50个上述实验数据块进行签名和验证。由此得到的验签上述数据块组签名时所花费的时间数据如图2所示。

上一篇 点击页面呼出菜单 下一篇