许爱东 朱 静 蒋屹新 张宇南 吴 涛 蒋龙生
1(南方电网科学研究院有限责任公司 广东 广州 510670) 2(重庆邮电大学通信与信息工程学院 重庆 400065) 3(重庆邮电大学网络空间安全与信息法学院 重庆 400065)
随着我国电网智能化的不断发展,电网会产生大量的采样数据,电网采样数据的采集、传输、保存需要大量的带宽与存储资源,同时中心化存储也可能会造成用户隐私信息的泄露[1]。随着边缘计算的兴起,电网终端可以更好地支撑本地实时智能化业务处理。本地采集的原始数据可以在边缘执行初始分析,只传有用数据到云端,从而减少网络负担,降低传输成本,保证数据的隐私与安全,如图1所示。边缘的计算资源配置可以满足小区域数据离线处理与分析,从而保障电力数据的安全传输与处理。因此如何对电网边缘端存储的用电数据进行安全防护和按需检索成为实现电网边缘化智能计算的关键问题。
图1 边缘化智能计算
为了保护数据隐私,Song等[2]提出第一个基于密文扫描思想的可搜索加密SWP方案,该方案对单个关键字的查询需要扫描整个文件,故检索效率较低,且无索引的可搜索对称加密(Searchable Symmetric Encryption,SSE)方案需要研究部门开发专门的加密算法,目前还无法应用到智能电网中。Goh[3]提出了基于Z-IDX的SSE方案,并使用布隆过滤器作为单个文件的索引结构,然而布隆过滤器存在假阳性,当前智能电网的基础设施是无法接受的这一缺点的。文献[4]提出实现最优搜索的2种方案(SSE-1、SSE-2),SSE-1方案针对选择关键字攻击是安全的,SSE-2对于自适应选择关键字攻击是安全的,但是对于智能电网反向索引直接性更新困难,故效率过低。上述工作仅能解决单关键字密文检索的问题。
为了满足用户的查询需求,多关键字密文检索技术应运而生,文献[5]引入K最近邻(K-NN)技术实现移动云计算环境下的高效多关键字安全排名搜索系统(EMRS),且能保证搜索结果的准确性。现在更多的研究将SSE方案应用到实际问题中,文献[6]提出将可搜索加密方案应用于加密电子健康数据上,可以有效和安全地搜索电子病历。文献[7]提出对智能家居模型的可搜索加密方案,实现对智能家居数据的高效管理及有效保护。
上述方法仅适用于文本文档,但对海量的电力数据来说,还存在一些不足,鉴于此文献[8]提出了一种实用的SSE方案,该方案通过牺牲少量信息公开来实现更高的空间效率,但该方案仅支持单关键字检索,故检索效率较低。为此本方案提出多关键字的适合电力数据的密文检索方案,本方案通过将AES算法与SHA-256算法相结合,实现多关键字陷门与记录集合索引的精确匹配,并将搜索结果列表返回给用户。
本文的主要贡献体现在3个方面:
(1) 回顾分析了当前典型的SSE方案的思想,并讨论这些方案为什么不适用于电力数据;
(2) 提出了一种面向智能电网边缘计算的密文索引结构,将SHA-256算法与伪随机函数结合构建密文索引,实现高效安全检索;
(3) 解决电力系统下密文检索的多关键字检索问题,适用于智能电网边缘计算下的密文检索场景。
本文的系统模型中涉及3个实体,分别为数据所有者、数据检索者和云服务器,如图2所示。
图2 系统框架
数据所有者:负责搜集数据,建立索引,并把数据和索引加密外包到云服务器上。除此之外,数据所有者还需要给需要查询数据的使用者合理授权。
数据检索者:将生成的关键字的陷门发送给服务器,且只有得到数据所有者授权的情况下才能访问数据。
云服务器:提供了密文检索所需的大量存储空间和计算资源,云服务器一旦接到数据检索者的合法请求,匹配所有包含该搜索关键字的列表,并返回给数据检索者。
本方案假设数据所有者是可信任的,但云服务器是诚实且好奇的[9-11],这表明云服务器会执行操作者的所有命令,同时也会尝试学习和分析服务器上的数据和索引结构,比如可能存在篡改加密数据、勾结恶意用户并发送错误的搜索结果、删除一部分加密数据,使存在更多的存储空间并以此来赚取更多的利益等不诚实的行为[12]。
本方案假设智能电网数据具有相同的数据结构,并包含同等数量的属性集合。例如,电力数据应包含年份、月份、时间、电器类型、用电类型、电表电量、功率等属性。
本方案假设存储在云服务器中的智能电网数据的记录总数要远远大于每个记录中的关键字总数,即数据集数量要远远大于关键字数量。
本方案的相关符号定义如表1所示。
表1 符号参数
该索引框架主要由Keygen(s)、BuildIndex(Ri,K)、Trapdoor(K,w)、Search(Tw,Ii)4个算法组成。
Keygen(s)密钥生成函数,s为安全参数。
BuildIndex(Ri,K):索引构建函数,数据所有者输入密钥K和记录R,输出记录R的索引IR。
Trapdoor(K,w):陷门生成函数,由数据检索者输入密钥K和想要搜索的关键字w1,w2,…,wm,输出关键字w的陷门Twm。
Search(Tw,Ii):用户查询函数。数据检索者输入关键字w1,w2,…,wm的陷门Twm和索引IR文件,服务器执行匹配与查询,若w1,w2,…,wm∈R则输出1,否则输出0。
MD5将任意长度的“字节串”转化为一个128 bit的散列值,且加密过程不可逆,即无法将一个MD5值转换回原始的字符串,以防止被篡改[13-14]。MD5的计算速度要比其他哈希算法的计算速度要快,但MD5比较容易发生碰撞,且于2005年已经被中国密码学家王小云教授攻破,故安全性较低。
SHA-256算法是一个MD结构迭代哈希函数,该算法从分组长度是512位的多重分组信息中创建一个256位的消息摘要,其过程是不可逆的[15-16]。SHA-256的安全性要比MD5高很多,且自MD5被破解后,SHA-256成为当前最流行的安全加密算法。下面是常用哈希算法的特性对比如表2所示[17-18]。
表2 常用哈希算法的特性对比
根据系统模型,本文遵循一般的SSE方案[19-20]。我们假设智能网格数据是一个记录集合,每个记录包含N种关键字。考虑到集合中并非所有的关键字都是搜索必需的,可能数据检索者只想通过几个特定类型的关键字查询记录。因此,该方案设定数据检索者需要查询的关键字为N中的前n种属性。
(1) 在确定数据检索者需要查询的n种属性后,数据所有者运行Keygen函数获得一个k位的密钥K并将其保密。
算法1BuildIndex(Ri,K)
输入:file collectionR, keyK, file stored keyword type list。
输出:file encrypted indexIRi。
1.Allocate annelements empty arrayIRi, and set all elements to 0
2.foreach keyword typewi,jinRido
3.computeTwi,j=fK(h(wi,j))
5.random rankXi,j, updateXi,j
6.setIRi=Xi,j
7.endfor
(3) 生成多关键字w1,w2,…,wm的陷门Twm。该方案选定记录中的前10个属性记为一个码字数组,作为记录R的索引IR。数据检索者输入关键字w1,w2,…,wm后,通过Trapdoor函数计算w1,w2,…,wm的散列值h(w1),h(w2),…,h(wm),其中h:{0,1}*→{0,1}r,然后计算并输出陷门Twm=fK(h(w1),h(w2),…,h(wm)),其中f为伪随机函数,即f:{0,1}k×{0,1}r→{0,1}r。
算法2Search(Tw,Ii)
输入:file encrypted indexIRi, trapdoorTwm。
输出:search result list。
1.forrow in range (IRi.shape[0])do
3.X=set(Xwm) andI=set(IRi)
4.Determines whether setI.shape contains setX
5.ifX⊆I.shapethen
6.return listid(Ri)
7.else
8. return empty list
9.endif
10.endfor
一个实际的密文检索方案应该能在数据更新时处理索引更新。本文是建立在直接索引的基础上对数据进行处理,故索引是动态的且易于更新。数据所有者只需要重新运行BuildIndex函数,就可获得数据更新之后的新索引,并将索引重新存储到云服务器中。
本文所述文献的索引类型、搜索复杂度性能对比如表3所示[21-22]。本文旨在提高密文检索的效率与安全性,使攻击者无法从索引中取得任何有关明文记录的信息。由于码字是随机插入的,故用户搜索复杂度为O(2d·n),而数据检索者设置的属性个数n在实际应用中认为是非常小的常数,故该搜索方案有效。
表3 SSE方案特性对比
续表3
1) 数据保密性。在本文中,外包的电力数据被传统的对称加密AES算法加密。文献[23]中已经证明AES加密算法是安全的,任何实体没有密钥都无法恢复加密数据,故加密数据的保密性可以实现。
2) 索引的隐私保护。该方案用SHA-256算法对码字进行哈希处理,并用伪随机函数将码字随机写入索引数组中,可以保证攻击者无法从索引中学到原始的关键字,即保证索引的确定性和查询的保密性。
3) 陷门的不可链接性。云服务器能够通过分析关键字陷门来推断识别关键字,鉴于此本文的码字是由引入记录的标识符来构建的,即记录中的相同关键字在索引中具有不同的码字。因此实现了陷门的不可链接性。
本实验的测试数据采用美国能源信息管理局(EIA)提供的AIM数据,AIM数据表示为2016年度美国电力公司每月统计的电力消耗等20多个属性,本实验采用该数据集验证本文方案的有效性。
为了验证本文方案有更高的搜索效率,对改进方案与未改进方案进行对比实验,主要从索引构建时间、陷门生成、搜索效率进行比较,其实现结果如图3所示。可以看出,图3(a)中未改进方案构建索引时间比改进后所需时间要稍长一点。图3(b)中未改进方案关键字陷门生成时间呈线性,而改进后的方法近乎平行。图3(c)中未改进方案的搜索时间要比改进后搜索时间明显长很多,因此,改进后的方案在索引建立、陷门生成、搜索效率都有了很大的提升。
(a) 索引建立时间对比
本文在实验室电力边缘计算安全防护平台上测试其可行性。硬件设备如图4所示,采用一台具有超高性能、低功耗性能的超级计算机模块——Jetson TX2;软件界面展示如图5所示。
图4 硬件平台——Jetson TX2
图5 软件平台之建立索引
本文回顾比较了现有的比较典型的几种SSE方案,并分析了这些方案不适合智能电网应用的原因。在此基础上,提出一种基于哈希函数的智能电网数据密文检索框架、索引结构和相应的算法,并基于电力数据建立了密文检索实验平台验证了本文方案的有效性。
实验结果表明,本文方案支持密文多关键字检索,且具有更高的安全性、查询效率、更新方便等优点。在未来的工作中,我们将在本文方案的基础上进一步扩展,考虑转发信息数据可能会被泄露的问题,进一步提高本文方案的安全性。