許愛(ài)東 朱 靜 蔣屹新 張宇南 吳 濤 蔣龍生
1(南方電網(wǎng)科學(xué)研究院有限責(zé)任公司 廣東 廣州 510670) 2(重慶郵電大學(xué)通信與信息工程學(xué)院 重慶 400065) 3(重慶郵電大學(xué)網(wǎng)絡(luò)空間安全與信息法學(xué)院 重慶 400065)
隨著我國(guó)電網(wǎng)智能化的不斷發(fā)展,電網(wǎng)會(huì)產(chǎn)生大量的采樣數(shù)據(jù),電網(wǎng)采樣數(shù)據(jù)的采集、傳輸、保存需要大量的帶寬與存儲(chǔ)資源,同時(shí)中心化存儲(chǔ)也可能會(huì)造成用戶隱私信息的泄露[1]。隨著邊緣計(jì)算的興起,電網(wǎng)終端可以更好地支撐本地實(shí)時(shí)智能化業(yè)務(wù)處理。本地采集的原始數(shù)據(jù)可以在邊緣執(zhí)行初始分析,只傳有用數(shù)據(jù)到云端,從而減少網(wǎng)絡(luò)負(fù)擔(dān),降低傳輸成本,保證數(shù)據(jù)的隱私與安全,如圖1所示。邊緣的計(jì)算資源配置可以滿足小區(qū)域數(shù)據(jù)離線處理與分析,從而保障電力數(shù)據(jù)的安全傳輸與處理。因此如何對(duì)電網(wǎng)邊緣端存儲(chǔ)的用電數(shù)據(jù)進(jìn)行安全防護(hù)和按需檢索成為實(shí)現(xiàn)電網(wǎng)邊緣化智能計(jì)算的關(guān)鍵問(wèn)題。
圖1 邊緣化智能計(jì)算
為了保護(hù)數(shù)據(jù)隱私,Song等[2]提出第一個(gè)基于密文掃描思想的可搜索加密SWP方案,該方案對(duì)單個(gè)關(guān)鍵字的查詢需要掃描整個(gè)文件,故檢索效率較低,且無(wú)索引的可搜索對(duì)稱加密(Searchable Symmetric Encryption,SSE)方案需要研究部門開(kāi)發(fā)專門的加密算法,目前還無(wú)法應(yīng)用到智能電網(wǎng)中。Goh[3]提出了基于Z-IDX的SSE方案,并使用布隆過(guò)濾器作為單個(gè)文件的索引結(jié)構(gòu),然而布隆過(guò)濾器存在假陽(yáng)性,當(dāng)前智能電網(wǎng)的基礎(chǔ)設(shè)施是無(wú)法接受的這一缺點(diǎn)的。文獻(xiàn)[4]提出實(shí)現(xiàn)最優(yōu)搜索的2種方案(SSE-1、SSE-2),SSE-1方案針對(duì)選擇關(guān)鍵字攻擊是安全的,SSE-2對(duì)于自適應(yīng)選擇關(guān)鍵字攻擊是安全的,但是對(duì)于智能電網(wǎng)反向索引直接性更新困難,故效率過(guò)低。上述工作僅能解決單關(guān)鍵字密文檢索的問(wèn)題。
為了滿足用戶的查詢需求,多關(guān)鍵字密文檢索技術(shù)應(yīng)運(yùn)而生,文獻(xiàn)[5]引入K最近鄰(K-NN)技術(shù)實(shí)現(xiàn)移動(dòng)云計(jì)算環(huán)境下的高效多關(guān)鍵字安全排名搜索系統(tǒng)(EMRS),且能保證搜索結(jié)果的準(zhǔn)確性?,F(xiàn)在更多的研究將SSE方案應(yīng)用到實(shí)際問(wèn)題中,文獻(xiàn)[6]提出將可搜索加密方案應(yīng)用于加密電子健康數(shù)據(jù)上,可以有效和安全地搜索電子病歷。文獻(xiàn)[7]提出對(duì)智能家居模型的可搜索加密方案,實(shí)現(xiàn)對(duì)智能家居數(shù)據(jù)的高效管理及有效保護(hù)。
上述方法僅適用于文本文檔,但對(duì)海量的電力數(shù)據(jù)來(lái)說(shuō),還存在一些不足,鑒于此文獻(xiàn)[8]提出了一種實(shí)用的SSE方案,該方案通過(guò)犧牲少量信息公開(kāi)來(lái)實(shí)現(xiàn)更高的空間效率,但該方案僅支持單關(guān)鍵字檢索,故檢索效率較低。為此本方案提出多關(guān)鍵字的適合電力數(shù)據(jù)的密文檢索方案,本方案通過(guò)將AES算法與SHA-256算法相結(jié)合,實(shí)現(xiàn)多關(guān)鍵字陷門與記錄集合索引的精確匹配,并將搜索結(jié)果列表返回給用戶。
本文的主要貢獻(xiàn)體現(xiàn)在3個(gè)方面:
(1) 回顧分析了當(dāng)前典型的SSE方案的思想,并討論這些方案為什么不適用于電力數(shù)據(jù);
(2) 提出了一種面向智能電網(wǎng)邊緣計(jì)算的密文索引結(jié)構(gòu),將SHA-256算法與偽隨機(jī)函數(shù)結(jié)合構(gòu)建密文索引,實(shí)現(xiàn)高效安全檢索;
(3) 解決電力系統(tǒng)下密文檢索的多關(guān)鍵字檢索問(wèn)題,適用于智能電網(wǎng)邊緣計(jì)算下的密文檢索場(chǎng)景。
本文的系統(tǒng)模型中涉及3個(gè)實(shí)體,分別為數(shù)據(jù)所有者、數(shù)據(jù)檢索者和云服務(wù)器,如圖2所示。
圖2 系統(tǒng)框架
數(shù)據(jù)所有者:負(fù)責(zé)搜集數(shù)據(jù),建立索引,并把數(shù)據(jù)和索引加密外包到云服務(wù)器上。除此之外,數(shù)據(jù)所有者還需要給需要查詢數(shù)據(jù)的使用者合理授權(quán)。
數(shù)據(jù)檢索者:將生成的關(guān)鍵字的陷門發(fā)送給服務(wù)器,且只有得到數(shù)據(jù)所有者授權(quán)的情況下才能訪問(wèn)數(shù)據(jù)。
云服務(wù)器:提供了密文檢索所需的大量存儲(chǔ)空間和計(jì)算資源,云服務(wù)器一旦接到數(shù)據(jù)檢索者的合法請(qǐng)求,匹配所有包含該搜索關(guān)鍵字的列表,并返回給數(shù)據(jù)檢索者。
本方案假設(shè)數(shù)據(jù)所有者是可信任的,但云服務(wù)器是誠(chéng)實(shí)且好奇的[9-11],這表明云服務(wù)器會(huì)執(zhí)行操作者的所有命令,同時(shí)也會(huì)嘗試學(xué)習(xí)和分析服務(wù)器上的數(shù)據(jù)和索引結(jié)構(gòu),比如可能存在篡改加密數(shù)據(jù)、勾結(jié)惡意用戶并發(fā)送錯(cuò)誤的搜索結(jié)果、刪除一部分加密數(shù)據(jù),使存在更多的存儲(chǔ)空間并以此來(lái)賺取更多的利益等不誠(chéng)實(shí)的行為[12]。
本方案假設(shè)智能電網(wǎng)數(shù)據(jù)具有相同的數(shù)據(jù)結(jié)構(gòu),并包含同等數(shù)量的屬性集合。例如,電力數(shù)據(jù)應(yīng)包含年份、月份、時(shí)間、電器類型、用電類型、電表電量、功率等屬性。
本方案假設(shè)存儲(chǔ)在云服務(wù)器中的智能電網(wǎng)數(shù)據(jù)的記錄總數(shù)要遠(yuǎn)遠(yuǎn)大于每個(gè)記錄中的關(guān)鍵字總數(shù),即數(shù)據(jù)集數(shù)量要遠(yuǎn)遠(yuǎn)大于關(guān)鍵字?jǐn)?shù)量。
本方案的相關(guān)符號(hào)定義如表1所示。
表1 符號(hào)參數(shù)
該索引框架主要由Keygen(s)、BuildIndex(Ri,K)、Trapdoor(K,w)、Search(Tw,Ii)4個(gè)算法組成。
Keygen(s)密鑰生成函數(shù),s為安全參數(shù)。
BuildIndex(Ri,K):索引構(gòu)建函數(shù),數(shù)據(jù)所有者輸入密鑰K和記錄R,輸出記錄R的索引IR。
Trapdoor(K,w):陷門生成函數(shù),由數(shù)據(jù)檢索者輸入密鑰K和想要搜索的關(guān)鍵字w1,w2,…,wm,輸出關(guān)鍵字w的陷門Twm。
Search(Tw,Ii):用戶查詢函數(shù)。數(shù)據(jù)檢索者輸入關(guān)鍵字w1,w2,…,wm的陷門Twm和索引IR文件,服務(wù)器執(zhí)行匹配與查詢,若w1,w2,…,wm∈R則輸出1,否則輸出0。
MD5將任意長(zhǎng)度的“字節(jié)串”轉(zhuǎn)化為一個(gè)128 bit的散列值,且加密過(guò)程不可逆,即無(wú)法將一個(gè)MD5值轉(zhuǎn)換回原始的字符串,以防止被篡改[13-14]。MD5的計(jì)算速度要比其他哈希算法的計(jì)算速度要快,但MD5比較容易發(fā)生碰撞,且于2005年已經(jīng)被中國(guó)密碼學(xué)家王小云教授攻破,故安全性較低。
SHA-256算法是一個(gè)MD結(jié)構(gòu)迭代哈希函數(shù),該算法從分組長(zhǎng)度是512位的多重分組信息中創(chuàng)建一個(gè)256位的消息摘要,其過(guò)程是不可逆的[15-16]。SHA-256的安全性要比MD5高很多,且自MD5被破解后,SHA-256成為當(dāng)前最流行的安全加密算法。下面是常用哈希算法的特性對(duì)比如表2所示[17-18]。
表2 常用哈希算法的特性對(duì)比
根據(jù)系統(tǒng)模型,本文遵循一般的SSE方案[19-20]。我們假設(shè)智能網(wǎng)格數(shù)據(jù)是一個(gè)記錄集合,每個(gè)記錄包含N種關(guān)鍵字??紤]到集合中并非所有的關(guān)鍵字都是搜索必需的,可能數(shù)據(jù)檢索者只想通過(guò)幾個(gè)特定類型的關(guān)鍵字查詢記錄。因此,該方案設(shè)定數(shù)據(jù)檢索者需要查詢的關(guān)鍵字為N中的前n種屬性。
(1) 在確定數(shù)據(jù)檢索者需要查詢的n種屬性后,數(shù)據(jù)所有者運(yùn)行Keygen函數(shù)獲得一個(gè)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) 生成多關(guān)鍵字w1,w2,…,wm的陷門Twm。該方案選定記錄中的前10個(gè)屬性記為一個(gè)碼字?jǐn)?shù)組,作為記錄R的索引IR。數(shù)據(jù)檢索者輸入關(guān)鍵字w1,w2,…,wm后,通過(guò)Trapdoor函數(shù)計(jì)算w1,w2,…,wm的散列值h(w1),h(w2),…,h(wm),其中h:{0,1}*→{0,1}r,然后計(jì)算并輸出陷門Twm=fK(h(w1),h(w2),…,h(wm)),其中f為偽隨機(jī)函數(shù),即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
一個(gè)實(shí)際的密文檢索方案應(yīng)該能在數(shù)據(jù)更新時(shí)處理索引更新。本文是建立在直接索引的基礎(chǔ)上對(duì)數(shù)據(jù)進(jìn)行處理,故索引是動(dòng)態(tài)的且易于更新。數(shù)據(jù)所有者只需要重新運(yùn)行BuildIndex函數(shù),就可獲得數(shù)據(jù)更新之后的新索引,并將索引重新存儲(chǔ)到云服務(wù)器中。
本文所述文獻(xiàn)的索引類型、搜索復(fù)雜度性能對(duì)比如表3所示[21-22]。本文旨在提高密文檢索的效率與安全性,使攻擊者無(wú)法從索引中取得任何有關(guān)明文記錄的信息。由于碼字是隨機(jī)插入的,故用戶搜索復(fù)雜度為O(2d·n),而數(shù)據(jù)檢索者設(shè)置的屬性個(gè)數(shù)n在實(shí)際應(yīng)用中認(rèn)為是非常小的常數(shù),故該搜索方案有效。
表3 SSE方案特性對(duì)比
續(xù)表3
1) 數(shù)據(jù)保密性。在本文中,外包的電力數(shù)據(jù)被傳統(tǒng)的對(duì)稱加密AES算法加密。文獻(xiàn)[23]中已經(jīng)證明AES加密算法是安全的,任何實(shí)體沒(méi)有密鑰都無(wú)法恢復(fù)加密數(shù)據(jù),故加密數(shù)據(jù)的保密性可以實(shí)現(xiàn)。
2) 索引的隱私保護(hù)。該方案用SHA-256算法對(duì)碼字進(jìn)行哈希處理,并用偽隨機(jī)函數(shù)將碼字隨機(jī)寫入索引數(shù)組中,可以保證攻擊者無(wú)法從索引中學(xué)到原始的關(guān)鍵字,即保證索引的確定性和查詢的保密性。
3) 陷門的不可鏈接性。云服務(wù)器能夠通過(guò)分析關(guān)鍵字陷門來(lái)推斷識(shí)別關(guān)鍵字,鑒于此本文的碼字是由引入記錄的標(biāo)識(shí)符來(lái)構(gòu)建的,即記錄中的相同關(guān)鍵字在索引中具有不同的碼字。因此實(shí)現(xiàn)了陷門的不可鏈接性。
本實(shí)驗(yàn)的測(cè)試數(shù)據(jù)采用美國(guó)能源信息管理局(EIA)提供的AIM數(shù)據(jù),AIM數(shù)據(jù)表示為2016年度美國(guó)電力公司每月統(tǒng)計(jì)的電力消耗等20多個(gè)屬性,本實(shí)驗(yàn)采用該數(shù)據(jù)集驗(yàn)證本文方案的有效性。
為了驗(yàn)證本文方案有更高的搜索效率,對(duì)改進(jìn)方案與未改進(jìn)方案進(jìn)行對(duì)比實(shí)驗(yàn),主要從索引構(gòu)建時(shí)間、陷門生成、搜索效率進(jìn)行比較,其實(shí)現(xiàn)結(jié)果如圖3所示。可以看出,圖3(a)中未改進(jìn)方案構(gòu)建索引時(shí)間比改進(jìn)后所需時(shí)間要稍長(zhǎng)一點(diǎn)。圖3(b)中未改進(jìn)方案關(guān)鍵字陷門生成時(shí)間呈線性,而改進(jìn)后的方法近乎平行。圖3(c)中未改進(jìn)方案的搜索時(shí)間要比改進(jìn)后搜索時(shí)間明顯長(zhǎng)很多,因此,改進(jìn)后的方案在索引建立、陷門生成、搜索效率都有了很大的提升。
(a) 索引建立時(shí)間對(duì)比
本文在實(shí)驗(yàn)室電力邊緣計(jì)算安全防護(hù)平臺(tái)上測(cè)試其可行性。硬件設(shè)備如圖4所示,采用一臺(tái)具有超高性能、低功耗性能的超級(jí)計(jì)算機(jī)模塊——Jetson TX2;軟件界面展示如圖5所示。
圖4 硬件平臺(tái)——Jetson TX2
圖5 軟件平臺(tái)之建立索引
本文回顧比較了現(xiàn)有的比較典型的幾種SSE方案,并分析了這些方案不適合智能電網(wǎng)應(yīng)用的原因。在此基礎(chǔ)上,提出一種基于哈希函數(shù)的智能電網(wǎng)數(shù)據(jù)密文檢索框架、索引結(jié)構(gòu)和相應(yīng)的算法,并基于電力數(shù)據(jù)建立了密文檢索實(shí)驗(yàn)平臺(tái)驗(yàn)證了本文方案的有效性。
實(shí)驗(yàn)結(jié)果表明,本文方案支持密文多關(guān)鍵字檢索,且具有更高的安全性、查詢效率、更新方便等優(yōu)點(diǎn)。在未來(lái)的工作中,我們將在本文方案的基礎(chǔ)上進(jìn)一步擴(kuò)展,考慮轉(zhuǎn)發(fā)信息數(shù)據(jù)可能會(huì)被泄露的問(wèn)題,進(jìn)一步提高本文方案的安全性。